一次對(duì)“電報(bào)”開(kāi)發(fā)人員的加密挑戰(zhàn)
這周早些時(shí)候,一家叫做“電報(bào)”的公司發(fā)布了一種“安全”移動(dòng)信息產(chǎn)品。多安全呢?用他們?cè)诔R?jiàn)問(wèn)題解答中的話來(lái)說(shuō),“非常安全”。出于好奇,為了 了解更多,我查看了他們的協(xié)議,然后立即產(chǎn)生了一些問(wèn)題和擔(dān)憂。然而,當(dāng)觸及技術(shù)細(xì)節(jié)時(shí),他們用開(kāi)發(fā)人員的學(xué)歷(數(shù)學(xué)博士)來(lái)回答,而不是進(jìn)行一次更講道 理的對(duì)話。他們同時(shí)謝絕了我以任何形式與之合作的嘗試。
最近,他們選擇了用一次加密破解挑戰(zhàn)賽對(duì)安全社區(qū)的憂慮作出回應(yīng)!
加密測(cè)試的謬誤
一如既往,這些東西都是不好的信號(hào)。通過(guò)用他們的方式設(shè)計(jì)的測(cè)試,“電報(bào)”開(kāi)發(fā)人員正利用一個(gè)作弊的挑戰(zhàn)來(lái)欺騙公眾。他們沒(méi)有花費(fèi)時(shí)間更新他們的常見(jiàn)問(wèn)題解答,以說(shuō)明他們舉辦的比賽是他們絕對(duì)安全的堅(jiān)實(shí)證據(jù),即便這基本上已毫無(wú)意義。
所以,“電報(bào)”開(kāi)發(fā)人員們,作為一種回應(yīng),我為你們準(zhǔn)備了我自己的加密破解測(cè)試。下面展示一個(gè)極差的“安全”協(xié)議,它在實(shí)際環(huán)境中面對(duì)攻擊連一秒都不能堅(jiān)持,但是在與“電報(bào)”挑戰(zhàn)賽完全一樣的測(cè)試框架中卻變得“牢不可破”。
Alice
使用了一個(gè)美國(guó)國(guó)家安全局(NSA)有后門的隨機(jī)數(shù)生成器,叫做Dual_EC_DRBG,并用它生成一段隨機(jī)的32字節(jié)值作為超級(jí)密鑰,叫做super_secret
。Alice
向Bob發(fā)送一條消息請(qǐng)求他的公鑰。Bob
用bob_public
——一個(gè)896bit的RSA公鑰——來(lái)回復(fù)。沒(méi)有簽名,沒(méi)有驗(yàn)證,我們僅寄希望于不會(huì)有中間人攻擊。Alice
用bob_public
作為公鑰,采用“教科書(shū)RSA”(譯者注:主要與生產(chǎn)環(huán)境中更安全的“部署用RSA”相比,這種RSA有明顯弱點(diǎn))加密super_secret
,然后發(fā)送給Bob
。沒(méi)有任何隨機(jī)填充,僅僅是全零填充。e=65537。Alice
和Bob
現(xiàn)在用super_secret
計(jì)算出短信密碼message_key=MD2(super_secret)
(我們知道你們喜歡過(guò)時(shí)的加密方式,所以我們覺(jué)得你們應(yīng)該會(huì)喜歡用MD2作哈希函數(shù))。Alice
給Bob發(fā)信息時(shí),這樣計(jì)算密文:ciphertext = message xor message_key
。陳舊到完美的方案,我們的異或加密方式甚至比你們的70年代加密方式更古老,那么現(xiàn)在會(huì)發(fā)生什么呢?
這樣,我們就構(gòu)建了一個(gè)信息協(xié)議,它使用了NSA有后門的隨機(jī)數(shù)生成器(Dual_EC_DRBG),弱公鑰算法(896位RSA,沒(méi)有填充,沒(méi)有簽名,沒(méi)有認(rèn)證),盡可能最差的加密哈希函數(shù)(MD2),以及用異或作為加密算法。Alice
和Bob
之間通信的全部副本在下面附錄中,Alice
每天都會(huì)把同一條信息發(fā)給Bob
一次(正如“電報(bào)”公司的測(cè)試一樣)。
測(cè)試框架完全與“電報(bào)”的一樣(沒(méi)有中間人攻擊,沒(méi)有已知明文攻擊,沒(méi)有選擇明文攻擊,沒(méi)有選擇密文攻擊,沒(méi)有篡改,沒(méi)有重放,等等)。如果“電報(bào)”想要證明他們的協(xié)議比這個(gè)絕對(duì)的垃圾協(xié)議更好,那么我質(zhì)疑他們能否發(fā)布Alice
信息中的明文。如果他們使用他們建立的框架,不能在這個(gè)明顯殘缺的協(xié)議中展示一次破解,那么,我們就會(huì)明白他們的測(cè)試在胡說(shuō)。
按照他們的邏輯,這個(gè)測(cè)試“證明”了這個(gè)殘缺協(xié)議令人費(fèi)解的安全,盡管他所能證明的只是這樣的測(cè)試不過(guò)是用于騙人的工具。
對(duì)于我們其余的人
讓我們來(lái)把這件事做好,并且建立一個(gè)真正的開(kāi)源安全異步信息傳輸解決方案,使它不只是騙人的萬(wàn)靈油或營(yíng)銷噱頭。
我們?cè)贠penWhisperSystems開(kāi)發(fā)了開(kāi)源應(yīng)用TextSecure,并使用了我們認(rèn)為能夠代表當(dāng)今安全異步信息傳輸解決方案的精髓。 我們已經(jīng)與Cyanogen公司合作,將TextSecure協(xié)議,透明的集成到他們的產(chǎn)品CyanogenMod中,這給了我們1000萬(wàn)脫離了像“電 報(bào)”這樣不誠(chéng)信開(kāi)發(fā)者的用戶。
請(qǐng)加入我們這次集體開(kāi)源的努力。加入郵件列表并幫助開(kāi)發(fā),設(shè)計(jì)或者編寫(xiě)文檔的工作。如果你想要贊助我們,你可以資助我們的BitHub實(shí)例,這會(huì)給任何無(wú)償貢獻(xiàn)者一個(gè)獲得贊助的機(jī)會(huì),同時(shí)我們會(huì)提供機(jī)會(huì)讓你能夠精確的查看你的錢是怎么花的。
不論多少,任何你能提供的幫助都使我們向著一個(gè)真正的隱私信息傳輸解決方案更進(jìn)一步,這會(huì)讓如“電報(bào)”這樣的騙子更容易消失于大眾視野。這需要我們所有人。
附錄——測(cè)試傳輸日志
- 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
原文鏈接:http://thoughtcrime.org/blog/telegram-crypto-challenge/