這周早些時候,一家叫做“電報”的公司釋出了一種“安全”移動資訊產品。多安全呢?用他們在常見問題解答中的話來說,“非常安全”。出於好奇,為了瞭解更多,我檢視了他們的協議,然後立即產生了一些問題和擔憂。然而,當觸及技術細節時,他們用開發人員的學歷(數學博士)來回答,而不是進行一次更講道理的對話。他們同時謝絕了我以任何形式與之合作的嘗試。
最近,他們選擇了用一次加密破解挑戰賽對安全社群的憂慮作出迴應!
加密測試的謬誤
一如既往,這些東西都是不好的訊號。通過用他們的方式設計的測試,“電報”開發人員正利用一個作弊的挑戰來欺騙公眾。他們沒有花費時間更新他們的常見問題解答,以說明他們舉辦的比賽是他們絕對安全的堅實證據,即便這基本上已毫無意義。
所以,“電報”開發人員們,作為一種迴應,我為你們準備了我自己的加密破解測試。下面展示一個極差的“安全”協議,它在實際環境中面對攻擊連一秒都不能堅持,但是在與“電報”挑戰賽完全一樣的測試框架中卻變得“牢不可破”。
Alice
使用了一個美國國家安全域性(NSA)有後門的隨機數生成器,叫做Dual_EC_DRBG,並用它生成一段隨機的32位元組值作為超級金鑰,叫做super_secret
。Alice
向Bob傳送一條訊息請求他的公鑰。Bob
用bob_public
——一個896bit的RSA公鑰——來回復。沒有簽名,沒有驗證,我們僅寄希望於不會有中間人攻擊。Alice
用bob_public
作為公鑰,採用“教科書RSA”(譯者注:主要與生產環境中更安全的“部署用RSA”相比,這種RSA有明顯弱點)加密super_secret
,然後傳送給Bob
。沒有任何隨機填充,僅僅是全零填充。e=65537。Alice
和Bob
現在用super_secret
計算出簡訊密碼message_key=MD2(super_secret)
(我們知道你們喜歡過時的加密方式,所以我們覺得你們應該會喜歡用MD2作雜湊函式)。Alice
給Bob發資訊時,這樣計算密文:ciphertext = message xor message_key
。陳舊到完美的方案,我們的異或加密方式甚至比你們的70年代加密方式更古老,那麼現在會發生什麼呢?
這樣,我們就構建了一個資訊協議,它使用了NSA有後門的隨機數生成器(Dual_EC_DRBG),弱公鑰演算法(896位RSA,沒有填充,沒有簽名,沒有認證),儘可能最差的加密雜湊函式(MD2),以及用異或作為加密演算法。Alice
和Bob
之間通訊的全部副本在下面附錄中,Alice
每天都會把同一條資訊發給Bob
一次(正如“電報”公司的測試一樣)。
測試框架完全與“電報”的一樣(沒有中間人攻擊,沒有已知明文攻擊,沒有選擇明文攻擊,沒有選擇密文攻擊,沒有篡改,沒有重放,等等)。如果“電報”想要證明他們的協議比這個絕對的垃圾協議更好,那麼我質疑他們能否釋出Alice
資訊中的明文。如果他們使用他們建立的框架,不能在這個明顯殘缺的協議中展示一次破解,那麼,我們就會明白他們的測試在胡說。
按照他們的邏輯,這個測試“證明”了這個殘缺協議令人費解的安全,儘管他所能證明的只是這樣的測試不過是用於騙人的工具。
對於我們其餘的人
讓我們來把這件事做好,並且建立一個真正的開源安全非同步資訊傳輸解決方案,使它不只是騙人的萬靈油或營銷噱頭。
我們在OpenWhisperSystems開發了開源應用TextSecure,並使用了我們認為能夠代表當今安全非同步資訊傳輸解決方案的精髓。我們已經與Cyanogen公司合作,將TextSecure協議,透明的整合到他們的產品CyanogenMod中,這給了我們1000萬脫離了像“電報”這樣不誠信開發者的使用者。
請加入我們這次集體開源的努力。加入郵件列表並幫助開發,設計或者編寫文件的工作。如果你想要贊助我們,你可以資助我們的BitHub例項,這會給任何無償貢獻者一個獲得贊助的機會,同時我們會提供機會讓你能夠精確的檢視你的錢是怎麼花的。
不論多少,任何你能提供的幫助都使我們向著一個真正的隱私資訊傳輸解決方案更進一步,這會讓如“電報”這樣的騙子更容易消失於大眾視野。這需要我們所有人。
附錄——測試傳輸日誌
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Alice: 7075 626c 6963 206b 6579 2070 6c7a Bob : 3081 8c30 0d06 092a 8648 86f7 0d01 0101 0500 037b 0030 7802 7100 acc3 ec17 9fea 0d19 b29d f347 cc62 423c 02d9 e49b ba54 b9a7 4cea 7c82 0f99 dcf1 c221 fca2 7882 0b67 4c7e 8d67 b0e5 4a2b 8873 438d ef0b f5d1 6862 fecc ae0d 8736 5e69 cb5e 1346 f612 49d2 e8ce 1463 8be0 8022 8ef2 01d9 6917 6a03 19fc 2a03 ddad aad4 eb28 d655 107c 52bf c1ae e800 a501 0203 0100 01 Alice: 53ce e8e4 f6c4 b330 a6aa 0830 81f2 c5e3 00b2 c3ac 0e54 7cee c9a6 be0e 7a54 9bf0 dbf2 11c2 853a 8443 da72 4dcf 96ad bc9a 9373 5f68 6a33 0f5b ea49 f40b 8324 3f8a 168a 7d78 3e08 85a1 f774 7c6a 10f9 646c a13e d6c3 00b3 670a 2af3 d2d6 b153 20b2 5b1c 2fd1 6599 989a 1938 2c18 1acf 68a5 Alice: 12a6 077f 4625 5523 c23b 2c43 e60f dd39 |