Telegram 真的是加密應用程式嗎?

作者:Matthew Green 編譯:Block unicorn

關於作者,Matthew Green 是密碼學家,也是約翰霍普金斯大學的教授。我設計並分析了無線網路、支付系統和數位內容保護平台中使用的加密系統。在我的研究中,我研究了使用加密技術保護使用者隱私的各種方式。

這篇文章的靈感來自最近令人擔憂的新聞,即Telegram 的CEO Pavel Durov 因未能充分監管內容而被法國當局逮捕。雖然我不清楚具體情況,但利用刑事指控來脅迫社群媒體公司是一種相當令人擔憂的升級,事情看起來並不像表面那麼簡單。

但今天我並不想談論這次逮捕事件。

我想要談的是報道中的一個具體細節,特別是:幾乎每一篇關於這次逮捕的新聞報道都將Telegram 稱為“加密應用”,以下是幾個例子:

這種說法讓我抓狂,因為從非常有限的技術角度來看,它並沒有錯。然而,在每一個重要的層面上,它基本上誤導了人們對Telegram 的認知以及它在實際中的運作方式。這種誤導對記者和Telegram 的用戶,尤其是那些可能因此受到嚴重傷害的用戶,都是不利的。

現在讓我們來談談細節。

Telegram 到底有沒有加密?

許多系統都會以某種方式使用加密,然而,當我們在現代私人訊息服務的背景下談論加密時,這個詞通常有一個非常具體的含義:它指的是使用預設的端對端加密來保護用戶的訊息內容。當按照業界標準方式使用時,這項功能可確保每個訊息都使用只有通訊雙方才知道的加密金鑰進行加密,而服務業者無法獲知這些金鑰。

從你作為用戶的角度來看,「加密的訊息應用程式」意味著每次你開始對話時,你的訊息只能被正在和你聊天的人讀取。如果訊息服務的運營商試圖查看你的訊息內容,他們看到的只會是無用的加密資料。同樣的保證也適用於任何可能駭入提供者伺服器的人,以及那些向提供者遞交傳票的執法機構,無論這種情況是好是壞。

Telegram 顯然不符合這個更嚴格的定義,原因很簡單:它並未預設啟用端對端加密。如果你想在Telegram 中使用端對端加密,必須手動為每個私人對話啟動一個名為「加密聊天」的可選端對端加密功能。這個功能明確地並未為大多數對話啟用,並且僅適用於一對一的對話,絕不會在超過兩人的群組聊天中使用。

作為一種奇怪的“附加功能”,對於非專業用戶來說,實際上啟動Telegram 的端對端加密功能非常麻煩。

首先,啟動Telegram 加密功能的按鈕在主對話窗或主畫面上是看不見的。要在iOS 應用程式中找到它,我至少要點擊四次——一次進入用戶的資料頁面,一次讓一個隱藏選單彈出顯示選項,最後還要確認我想要使用加密。而且即便這樣,我也無法真正開始加密對話,因為「加密聊天」功能只會在你的對話對象剛好在線上時才會運作。

在最新的Telegram iOS 應用程式中開始與我的朋友Michael 的“加密聊天”,從普通的聊天介面中,這個選項並不直接可見。激活它需要四次點擊:

(1)進入Michael 的個人檔案頁(左圖),

(2)點選「…」按鈕顯示隱藏的選項集(中圖),

(3)選擇“開始秘密聊天”,

(4)在「您確定要繼續嗎」確認對話方塊中點選確認。之後,我仍然無法給Michael 發送任何訊息,因為Telegram 的秘密聊天功能只有在對方也在線時才能啟用。

總體來說,這與在現代行業標準的加密訊息應用程式中啟動新的加密聊天的體驗大相徑庭,後者只需打開一個新的聊天視窗即可。

雖然這看起來可能像是挑剔,但預設端對端加密與這種體驗之間的差異可能非常顯著。實際上,這意味著絕大多數一對一的Telegram 對話——以及每個群組聊天——可能都能被Telegram 的伺服器看到和記錄,伺服器可以查看並記錄用戶之間發送的所有訊息內容。這對每個Telegram 用戶來說可能是個問題,也可能不是,但這顯然不應該被宣傳為特別安全加密的。

(如果你對詳細資訊感興趣,以及對Telegram 實際加密協議的一些進一步批評,我會在下面進一步說明。)

預設加密真的很重要嗎?

也許重要,也許不重要!可以從兩個不同的角度來看這個問題。

一個角度是,Telegram 缺乏預設加密對很多人來說完全沒問題。現實是,很多用戶根本不把Telegram 當加密的私人訊息工具。對許多人來說,Telegram 更像是社交媒體網絡,而不是私人訊息應用程式。

具體來說,Telegram 有兩個受歡迎的功能使其非常適合這種用例。一個是創建和訂閱「頻道」的功能,每個頻道都像一個廣播網絡,一個人(或少數幾個人)可以向數百萬讀者推送內容。當你向成千上萬的陌生人廣播訊息時,保持聊天內容的保密並不是那麼重要。

Telegram 也支援包含數千用戶的大型公開群組聊天。這些群組可以對公眾開放,也可以設定為僅邀請制。雖然我個人從未想過要與成千上萬的人共享群聊,但我聽說很多人喜歡這個功能。在這個大型公開群體中,Telegram 群聊的未加密性其實也沒那麼重要——畢竟,在公共廣場上談話時,誰在乎加密性呢?

但Telegram 不僅限於這些功能,許多加入這些功能的使用者也會做其他事情。

想像一下,你在一個「公共廣場」裡進行大型群組聊天。在這種環境中,可能沒有強隱私的預期,因此端對端加密對你來說並不重要。但假設你和五個朋友離開廣場進行一個私密對話。這個對話是否值得強迫隱私保護?這並不重要,因為Telegram 不會提供這種保護,至少在預設的加密中,它無法保護你免受Telegram 伺服器的內容共享。

類似地,假設你使用Telegram 的社群媒體功能,主要是消費內容而不是產生內容。但有一天你的朋友也因為類似的原因使用Telegram,發現你在平台上並決定寄給你私人訊息。現在你是否擔心隱私?你們是否會手動開啟「加密聊天」功能——儘管這需要透過隱藏選單進行四次明確的點擊,並且如果其中一個人離線,它將阻止你們立即溝通?

我強烈懷疑,許多人可能是因為Telegram 的社群媒體功能而加入,但最終也會用它來進行私人聊天。我認為Telegram 知道這一點,並傾向於將自己宣傳為“安全的訊息應用程式”,並談論平台的加密功能,正是因為他們知道這會讓人們感到更舒適。但實際上,我也懷疑這些用戶中很少人真的在使用Telegram 的加密功能。許多用戶可能甚至不知道他們需要手動開啟加密,可能以為自己已經在使用加密功能。

這引出了我接下來的觀點。

Telegram 知道它的加密功能開啟起來很困難,但仍繼續宣傳自己的產品為安全的訊息應用

自2016年以來(可能更早),Telegram 的加密功能就因我在這篇文章中提到的許多原因受到嚴重批評。事實上,其中許多批評是由包括我在內的專家在多年前與Pavel Durov 在Twitter 上的對話中提出。

儘管與Durov 的互動有時比較尖銳,但那時我還是大多相信Telegram 是出於善意。我認為Telegram 正忙於擴大其網絡,隨著時間的推移,他們會改善平台的端到端加密的品質和可用性:例如,透過將其設為預設、支援群組聊天,並使得與離線用戶開始加密聊天成為可能。我假設,雖然Telegram 可能是追隨者而不是領頭者,但最終它將在加密協議上達到與Signal 和WhatsApp 相當的功能水平。當然,另一種可能性是Telegram 會完全放棄加密,專注於成為一個社群媒體平台。

實際發生的情況讓我感到更加困惑。

Telegram 的擁有者並未改善其端對端加密的可用性,自2016年以來,其加密使用者體驗幾乎沒有變化。儘管平台所使用的底層加密演算法有些升級,但2024年的秘密聊天使用者體驗與八年前幾乎沒有差異。儘管如此,Telegram 的用戶數量在同一時期增加了7到9倍。

同時,Telegram CEO Pavel Durov 繼續積極宣傳Telegram 作為「安全訊息應用」。最近,他在個人Telegram 頻道上對Signal 和WhatsApp 進行了尖銳的批評,暗示這些系統被美國政府設置了後門,只有Telegram 的獨立加密協議才真正值得信賴。

如果這是在兩個都支援預設端對端加密的平台之間進行的合理技術爭論,這可能是可以理解的。然而,Telegram 在這討論中確實沒有立足之地。看到Telegram 組織鼓勵用戶遠離預設加密的訊息應用,而自己卻拒絕實施那些能廣泛加密用戶訊息的基本功能,已經不再覺得有趣。實際上,這開始顯得有些惡意。

還有哪些加密細節呢?

這是一個加密學博客,所以如果我不花點時間講解那些無聊的加密協議,那就有些不盡職了。我也會錯過一個大好的機會來驚嘆於Telegram 加密的內部細節,每次我查看這些細節時,幾乎都是目瞪口呆。

為了減少痛苦,我會在一段話中講解這些細節,如果你不感興趣,可以隨意跳過。

根據我認為是最新的加密規範,Telegram 的秘密聊天功能是基於一個名為MTProto 2.0 的自訂協定。這個系統使用2048 位元有限域Diffie-Hellman 金鑰交換,群組參數(我認為)由伺服器選擇。 (因為Diffie-Hellman 金鑰交換需要兩個使用者線上交互,所以如果一個使用者離線時,加密聊天無法設定)MITM 保護由終端使用者處理,他們必須比較金鑰指紋。伺服器提供了一些奇怪的隨機非ces(隨機值),我不完全理解其用途*——過去這些隨機數曾使密鑰交換在惡意伺服器面前完全不安全(但這問題早已解決*)。產生的金鑰然後用於最令人驚嘆的、非標準的認證加密模式——一種名為“無限混淆擴展”(IGE)的模式,它基於AES,並使用SHA2 處理認證。 **

註:在上面的段落中,每個我標記為「*」的地方,是專家密碼學家在類似專業安全審計的背景下會舉手提問的點。我不打算深入探討,可以說,Telegram 加密是非常不尋常的。

如果你讓我猜Telegram 秘密聊天的協議和實作是否安全,我會說可能是安全的。老實說,但這並不重要,因為如果人們實際上不使用它,那麼再安全也沒用。

Block unicorn註解:簡單來說,Telegram 的加密系統使用了一些複雜的技術來保護訊息,但在使用者體驗上,它的設定和使用都比較複雜。有些技術細節可能會讓人覺得不太透明,特別是隨機數的使用和金鑰的保護方式。

最後

儘管端對端加密是我們為防止資料外洩所開發的最佳工具之一,但這並不是故事的全部。訊息傳遞中的一個最大隱私問題是大量的元資料——基本上是關於誰在使用服務、他們與誰交談以及何時交談的資料。

這些資料通常不會受到端對端加密的保護。即使在只有廣播功能的應用程式中,例如Telegram 的頻道,也有很多關於誰在收聽廣播的有用元資料。這些資訊本身對人們很有價值,這一點從傳統廣播公司花費巨額資金收集這些數據中可以看出。目前,所有這些資訊可能都存在於Telegram 的伺服器上,任何想要收集這些資訊的人都可以獲得。

我並不是專門批評Telegram,因為幾乎所有其他社群媒體網路和私人訊息應用程式也存在同樣的問題。但應該要提到這一點,但我提到這些問題是為了避免讓你覺得,只要有加密就夠了。

Total
0
Shares
Related Posts