密碼攻擊:對混亂思想的解釋

當你聽到「密碼學」這個詞時,有些人會記住他們的 WiFi 密碼、他們最喜歡的網站地址旁邊的綠色掛鎖,以及進入別人的電子郵件有多麼困難。 其他人則回憶起近年來出現的一系列漏洞,其中包括明顯的縮寫(DROWN、FREAK、POODLE...)、時尚的徽標和緊急更新瀏覽器的警告。

密碼學涵蓋了這一切,但是 本質 在另一個。 關鍵是簡單和複雜只有一線之隔。 有些事情做起來很容易,但要重新組合很難,就像打破雞蛋一樣。 有些事情很容易做,但當一個小的、重要的、關鍵的部分丟失時,就很難恢復了:例如,當「關鍵部分」是鑰匙時,打開一扇鎖著的門。 密碼學研究這些情況以及如何在實踐中使用它們。

近年來,密碼攻擊的集合已經變成了一個充滿華麗標誌的動物園,充滿了科學論文中的公式,並引起了一種普遍的陰暗感覺,即一切都被破壞了。 但事實上,許多攻擊都是基於一些通用原則,無休無止的公式往往被歸結為易於理解的想法。

在本系列文章中,我們將研究不同類型的加密攻擊,並專注於基本原理。 一般來說,並非完全按照這個順序,但我們將介紹以下內容:

  • 基本策略: 暴力破解、頻率分析、插值、降級和跨協議。
  • 品牌漏洞: 怪胎、犯罪、貴賓犬、溺水、阻塞。
  • 進階策略: 預言機攻擊(Vodenet 攻擊、Kelsey 攻擊); 中間相遇方法、生日攻擊、統計偏差(差分密碼分析、積分密碼分析等)。
  • 側頻道攻擊 及其近親,故障分析技術。
  • 對公鑰密碼學的攻擊: 立方根、廣播、相關訊息、Coppersmith 攻擊、Pohlig-Hellman 演算法、數篩、Wiener 攻擊、Bleichenbacher 攻擊。

這篇特別的文章涵蓋了凱爾西攻擊之前的上述材料。

基本策略

以下攻擊很簡單,因為無需太多技術細節就可以幾乎完全解釋它們。 讓我們用最簡單的術語解釋每種類型的攻擊,而不涉及複雜的範例或高級用例。

其中一些攻擊基本上已經過時,並且已經很多年沒有被使用了。 其他人則是老前輩,在 21 世紀仍然經常偷偷摸摸毫無戒心的密碼系統開發人員。 現代密碼學時代可以被認為是隨著 IBM DES 的出現而開始的,IBM DES 是第一個能夠抵禦此清單中所有攻擊的密碼。

簡單的暴力破解

密碼攻擊:對混亂思想的解釋加密方案由兩部分組成:1)加密函數,將訊息(明文)與金鑰組合,然後建立加密訊息-密文; 2) 解密函數,採用密文和金鑰並產生明文。 加密和解密都必須易於使用金鑰進行計算,而沒有金鑰則難以計算。

假設我們看到密文並嘗試在沒有任何附加資訊的情況下解密它(這稱為僅密文攻擊)。 如果我們以某種方式神奇地找到了正確的密鑰,如果結果是合理的訊息,我們可以輕鬆驗證它確實是正確的。

請注意,這裡有兩個隱含的假設。 首先,我們知道如何進行解密,也就是密碼系統是如何運作的。 這是討論密碼學時的標準假設。 對攻擊者隱藏密碼的實現細節似乎是一種額外的安全措施,但一旦攻擊者發現了這些細節,這種額外的安全性就會悄悄且不可逆轉地喪失。 這就是如何 克希霍夫原理:系統落入敵人手中不應造成不便。

其次,我們假設正確的金鑰是唯一能夠實現合理解密的金鑰。 這也是一個合理的假設; 如果密文比密鑰長得多且可讀,則滿足。 這通常是現實世界中發生的情況,除了 巨大的不實用的鑰匙最好把其他惡作劇放在一邊 (如果你不喜歡我們跳過了解釋,請參考定理 3.8 這裡).

鑑於上述情況,出現了一個策略:檢查每個可能的按鍵。 這被稱為暴力破解,這種攻擊最終肯定能對抗所有實用的密碼。 例如,暴力破解就足夠了 凱撒密碼,一種古老的密碼,其中密鑰是字母表中的一個字母,意味著超過 20 個可能的密鑰。

不幸的是,對於密碼分析人員來說,增加密鑰大小可以很好地防禦暴力破解。 隨著密鑰大小的增加,可能的密鑰數量呈指數增長。 對於現代密鑰大小,簡單的暴力破解是完全不切實際的。 為了理解我們的意思,讓我們以 2019 年中期已知最快的超級電腦為例: Summit 來自IBM,峰值性能約為每秒1017次操作。 如今,典型的密鑰長度為 128 位,這意味著 2128 種可能的組合。 為了搜尋所有金鑰,Summit 超級電腦將需要大約宇宙年齡 7800 倍的時間。

暴力是否應該被視為歷史奇觀? 完全不是:它是密碼分析手冊中的必要成分。 密碼很少會如此脆弱,以至於只能透過巧妙的攻擊來破解,而無需使用某種程度的武力。 許多成功的駭客攻擊首先使用演算法方法削弱目標密碼,然後進行暴力攻擊。

頻率分析

密碼攻擊:對混亂思想的解釋大多數文字都不是亂碼。 例如,在英語文本中,有許多字母“e”和冠詞“the”; 在二進位檔案中,有許多零位元組作為資訊片段之間的填充。 頻率分析是利用這一事實的任何攻擊。

易受此攻擊的密碼的典型範例是簡單替換密碼。 在這個密碼中,密鑰是一個所有字母都被替換的表。 例如,“g”被“h”替代,“o”被j替代,因此單字“go”變成“hj”。 這個密碼很難被暴力破解,因為有很多可能的查找表。 如果您對數學感興趣,有效密鑰長度約為 88 位元:即
密碼攻擊:對混亂思想的解釋。 但頻率分析通常可以很快完成工作。

考慮使用簡單替換密碼處理的以下密文:

XDYLY ALY 醜陋 XDWNKE WN DYAJYN ANF YALXD DGLAXWG XDAN ALY FLYAUX GR WN OGQL ZDWBGEGZDO

Y 經常出現,包括出現在許多單字的末尾,我們可以初步假設這是這個字母 e:

XDeLe Ale UGle XDWNKE WN DEAJEN ANF eALXD DGLAXWG XDAN Ale FLeAUX GR WN OGQL ZDWBGEGZDO

情侶 XD 在幾個單字的開頭重複。 特別是,組合 XDeLe 清楚地暗示了這個詞 thesethere,所以讓我們繼續:

LE ALE UGLE THWNKE WN HEAJEN ANF EALTH DGLAtWG 比 ALE FLEAUt GR WN OGQL ZDWBGEGZDO

讓我們進一步假設 L 對應於 r, A  - a 等等。 這可能需要幾次嘗試,但與完整的暴力攻擊相比,這種攻擊可以立即恢復原始文字:

天地間的事物比你的哲學所夢想的還要多

對於某些人來說,解決此類「密碼」是一項令人興奮的愛好。

頻率分析的想法比乍看之下更基礎。 它適用於更複雜的密碼。 縱觀歷史,各種密碼設計都試圖使用「多字母替換」來對抗這種攻擊。 這裡,在加密過程中,字母替換表會以複雜但可預測的方式進行修改,具體取決於密鑰。 所有這些密碼都被認為很難一次破解。 然而適度的頻率分析最終擊敗了所有這些。

歷史上最雄心勃勃、也可能最著名的多字母密碼是二戰時期的恩尼格瑪密碼。 與它的前輩相比,它相對複雜,但經過大量的努力,英國密碼分析學家利用頻率分析破解了它。 當然,他們不可能發展出像上圖這樣優雅的攻擊; 他們必須比較已知的明文和密文對(所謂的「明文攻擊」),甚至促使 Enigma 用戶加密某些訊息並分析結果(「選擇明文攻擊」)。 但這並沒有讓戰敗的敵軍和擊沉的潛艇的命運變得好過一些。

在這次勝利之後,頻率分析從密碼分析的歷史中消失了。 現代數位時代的密碼設計用於處理位,而不是字母。 更重要的是,這些密碼的設計是基於對後來被稱為「黑暗」的理解。 施奈爾定律:任何人都可以創建自己無法破解的加密演算法。 加密系統還不夠 似乎 困難:為了證明它的價值,它必須接受許多密碼分析師無情的安全審查,他們將盡最大努力破解密碼。

初步計算

密碼攻擊:對混亂思想的解釋以假設的普雷科姆高地市為例,人口為 200 萬人。 該市的每戶家庭平均擁有價值 000 美元的貴重物品,但價值不超過 30 美元。Precom 的安全市場被 ACME Industries 壟斷,該公司生產傳奇的 Coyote™ 級門鎖。 根據專家分析,Coyote級鎖只能透過非常複雜的假設機器來破解,製造該機器需要大約五年時間和000萬美元的投資。 城市安全嗎?

很可能不會。 最終,一個相當野心勃勃的罪犯將會出現。 他會這樣推理:「是的,我會承擔大量的前期費用。 五年的耐心等待,以及 50 美元。但是當我完成後,我將可以訪問 這座城市的所有財富。 如果我的策略正確,這項投資將獲得數倍的回報。”

密碼學也是如此。 針對特定密碼的攻擊需要嚴格的成本效益分析。 如果該比率有利,則攻擊不會發生。 但是,同時針對許多潛在受害者的攻擊幾乎總是會得到回報,在這種情況下,最佳設計實踐是假設它們從第一天就開始了。 我們本質上有墨菲定律的加密版本:“任何能夠真正破壞系統的東西都會破壞系統。”

易受預計算攻擊的密碼系統的最簡單範例是常數無密鑰密碼。 情況就是如此 凱撒密碼,它只是將字母表中的每個字母向前移動三個字母(該表是循環的,因此字母表中的最後一個字母被第三次加密)。 克希霍夫原則再次發揮作用:系統一旦被駭客入侵,它就永遠被駭客入侵。

這個概念很簡單。 即使是新手密碼系統開發人員也可能會認識到威脅並做出相應的準備。 縱觀密碼學的發展,這種攻擊對於大多數密碼來說都是不合適的,從凱撒密碼的第一個改進版本到多表密碼的衰落。 隨著現代密碼時代的到來,這類攻擊才捲土重來。

這種回報歸因於兩個因素。 首先,足夠複雜的密碼系統終於出現,被駭客攻擊後被利用的可能性並不明顯。 其次,密碼學變得如此廣泛,以至於數以百萬計的外行人每天都在決定在哪裡以及重用密碼學的哪些部分。 經過一段時間,專家才意識到其中的風險並發出警報。

請記住預計算攻擊:在文章的末尾,我們將查看兩個現實生活中的密碼範例,其中它發揮了重要作用。

Интерполяция

這是著名偵探夏洛克福爾摩斯對倒楣的華生醫生進行的插值攻擊:

我立刻猜到你是從阿富汗來的……我的思路是這樣的:「這個人是醫生類型,但他有軍人氣質。 所以,軍醫。 他剛從熱帶地區來到這裡——他的臉是黑的,但這不是他皮膚的自然色調,因為他的手腕要白得多。 面容憔悴──顯然,他受過很多苦,飽受病痛之苦。 他的左手受傷了——他握著它一動也不動,而且有點不自然。 英國軍醫在熱帶哪裡會受苦受傷? 當然,是在阿富汗。” 整個思路沒有花一秒鐘的時間。 所以我說你來自阿富汗,你很驚訝。

福爾摩斯只能從每件證據中單獨提取很少的資訊。 他只有綜合考慮之後才能得出結論。 插值攻擊的工作原理類似,透過檢查由相同金鑰產生的已知明文和密文對。 從每一對中提取單獨的觀察結果,從而可以得出有關密鑰的一般結論。 所有這些結論都是模糊的,似乎毫無用處,直到它們突然達到臨界點並得出唯一可能的結論:無論多麼令人難以置信,它一定是真的。 此後,要么密鑰被洩露,要么解密過程變得如此精細以至於可以複製。

讓我們用一個簡單的例子來說明插值是如何運作的。 假設我們想閱讀我們的敵人鮑伯的個人日記。 他使用從《密碼學模擬》雜誌的廣告中了解到的簡單密碼系統對日記中的每個數字進行加密。 系統的工作原理如下:鮑伯選擇兩個他喜歡的數字: 密碼攻擊:對混亂思想的解釋 и 密碼攻擊:對混亂思想的解釋。 從現在開始,加密任意數字 密碼攻擊:對混亂思想的解釋,它計算 密碼攻擊:對混亂思想的解釋。 例如,如果鮑伯選擇 密碼攻擊:對混亂思想的解釋 и 密碼攻擊:對混亂思想的解釋,然後是數字 密碼攻擊:對混亂思想的解釋 將被加密為 密碼攻擊:對混亂思想的解釋.

假設 28 月 XNUMX 日,我們注意到鮑伯正在他的日記中亂畫。 當他完成後,我們會悄悄地拿起它並觀看最後一個條目:

日期: 235/520

親愛的日記,

今天是個好日子。 透過 64 今天我和艾莉莎有個約會,她住在公寓裡 843。 我真的認為她可能是 26!

由於我們非常認真地關注 Bob 的約會(在這種情況下我們都是 15 歲),因此了解日期以及 Alice 的地址至關重要。 幸運的是,我們注意到鮑伯的密碼系統容易受到插值攻擊。 我們可能不知道 密碼攻擊:對混亂思想的解釋 и 密碼攻擊:對混亂思想的解釋,但我們知道今天的日期,所以我們有兩個明文-密文對。 也就是說,我們知道 密碼攻擊:對混亂思想的解釋 加密在 密碼攻擊:對混亂思想的解釋密碼攻擊:對混亂思想的解釋 -在 密碼攻擊:對混亂思想的解釋。 這就是我們要寫下的內容:

密碼攻擊:對混亂思想的解釋

密碼攻擊:對混亂思想的解釋

由於我們已經 15 歲了,我們已經知道有兩個未知數的兩個方程組,在這種情況下足以找到 密碼攻擊:對混亂思想的解釋 и 密碼攻擊:對混亂思想的解釋 沒有任何問題。 每個明文-密文對都對 Bob 的金鑰施加約束,這兩個約束一起足以完全恢復金鑰。 在我們的例子中,答案是 密碼攻擊:對混亂思想的解釋 и 密碼攻擊:對混亂思想的解釋 (在 密碼攻擊:對混亂思想的解釋 密碼攻擊:對混亂思想的解釋, 所以 26 日記中的 對應於單字“the one”,即“同一個” - 大約。 車道)。

當然,插值攻擊並不限於這些簡單的例子。 每個簡化為易於理解的數學物件和參數清單的密碼系統都面臨插值攻擊的風險——物件越容易理解,風險就越高。

新來者經常抱怨密碼學是「將事物設計得盡可能醜陋的藝術」。 插值攻擊可能是罪魁禍首。 鮑伯可以使用優雅的數學設計,也可以將他與愛麗絲的約會保密 - 但可惜的是,通常不能兩者兼得。 當我們最終討論公鑰密碼學的主題時,這一點將變得非常清楚。

跨協定/降級

密碼攻擊:對混亂思想的解釋在《驚天魔盜團》(2013)中,一群魔術師試圖騙取腐敗的保險巨頭阿瑟‧特雷斯勒的全部財產。 為了進入亞瑟的銀行帳戶,魔術師必須提供他的用戶名和密碼,或強迫他親自出現在銀行並參與該計劃。

這兩種選擇都非常困難; 這些傢伙習慣了在舞台上表演,而不是參與情報行動。 所以他們選擇了第三個可能的選擇:他們的同夥打電話給銀行並假裝是亞瑟。 銀行會詢問幾個問題來驗證身份,例如叔叔的名字和第一個寵物的名字; 我們的英雄提前 他們使用巧妙的社會工程輕鬆地從亞瑟那裡提取了這些信息。 從此時起,出色的密碼安全性不再重要。

(根據我們親自核實核實的都市傳說,密碼學家伊萊·比漢姆曾經遇到一位堅持設置安全問題的銀行櫃員。當櫃員詢問他外祖母的名字時,比漢姆開始口述:「資本X ,小y,三…」)。

在密碼學中也是如此,如果並行使用兩種密碼協議來保護同一個資產,並且其中一種比另一種要弱得多。 由此產生的系統很容易受到跨協議攻擊,即攻擊較弱的協議,以便在不接觸較強協議的情況下獲得獎勵。

在一些複雜的情況下,僅僅使用較弱的協定來聯繫伺服器是不夠的,還需要合法客戶端的非自願參與。 這可以使用所謂的降級攻擊來組織。 為了理解這種攻擊,我們假設我們的魔術師面臨著比電影中更困難的任務。 假設一位銀行員工(出納員)和 Arthur 遇到了一些不可預見的情況,產生了以下對話:

防盜: 你好? 這是阿瑟·特雷斯勒。 我想重置我的密碼。

出納員: 偉大的。 請查看您的個人密碼書,第 28 頁,第 3 個單字。以下所有訊息都將使用該特定單字作為金鑰進行加密。 PQJGH。 LOTJNAM PGGY MXVRL ZZLQ SRIU HHNMLPPPV…

防盜: 嘿嘿嘿,等等,等等。 這真的有必要嗎? 就不能像正常人一樣說話嗎?

出納員: 我不建議這樣做。

防盜: 我只是...聽著,我今天過得很糟糕,好嗎? 我是 VIP 客戶,我沒有心情去挖掘這些愚蠢的密碼書。

出納員: 美好的。 如果你堅持的話,特雷斯勒先生。 你想要什麼?

防盜: 拜託,我想將我所有的錢捐給亞瑟特雷斯勒國家受害者基金會。

(暫停)。

出納員: 現在清楚了嗎。 對於大額交易,請提供您的 PIN。

防盜: 我的什麼?

出納員: 根據您的個人要求,這種規模的交易需要 PIN 碼才能進行大額交易。 該代碼是在您開設帳戶時提供給您的。

防盜:…… 我失去了它。 這真的有必要嗎? 你就不能批准這筆交易嗎?

出納員: 不。 對不起,特雷斯勒先生。 再次強調,這是您所要求的安全措施。 如果您願意,我們可以將新的 PIN 碼發送到您的郵箱。

我們的英雄推遲了手術。 他們竊聽特雷斯勒的幾筆大筆交易,希望聽到密碼; 但每次在說出任何有趣的事情之前,談話都會變成編碼的胡言亂語。 終於,在一個晴朗的日子裡,計劃付諸實施。 他們耐心地等待特雷斯勒必須透過電話進行一筆大額交易的那一刻,他接通電話,然後…

特雷斯勒: 你好。 我想完成一項遠端交易。

出納員: 偉大的。 請看一下您的個人密碼書、頁面...

(竊賊按下按鈕;收銀員的聲音變成難以理解的噪音)。

出納員: - #@$#@$#*@$$@#* 將使用該單字作為金鑰進行加密。 AAAYRR PLRQRZ MMNJK LOJBAN…

特雷斯勒: 抱歉,我不太明白。 再一次? 在哪一頁? 什麼詞?

出納員: 這是頁@#$@#*$)#*#@()#@$(#@*$(#@*)。

特雷斯勒: 什麼?

出納員: 字數二十@$#@$#%#$。

特雷斯勒: 嚴重地! 已經足夠! 你和你的安全協議就像是某種馬戲團。 我知道你可以正常地跟我說話。

出納員: 我不推薦…

特雷斯勒: 我不建議你浪費我的時間。 在你解決電話線問題之前我不想再聽到任何關於此事的消息。 我們能否完成這筆交易?

出納員:… 是的。 美好的。 你想要什麼?

特雷斯勒: 我想向 Lord Business Investments 轉帳 20 美元,帳號...

出納員: 請等一分鐘。 這是一件大事。 對於大額交易,請提供您的 PIN。

特雷斯勒: 什麼? 哦,正是如此。 1234.

這裡是向下攻擊。 較弱的協議“直接說話”被設想為 選項 在緊急情況下。 但我們現在就在這裡。

您可能想知道誰心智正常,會設計一個真正的「安全,除非另有要求」的系統,就像上面描述的那樣。 但正如虛構的銀行冒險留住不喜歡加密技術的客戶一樣,系統通常會傾向於對安全性漠不關心甚至完全敵視的要求。

這正是 2 年 SSLv1995 協定所發生的情況。 美國政府很早就開始將密碼學視為一種最好遠離國內外敵人的武器。 程式碼片段被單獨批准從美國出口,通常的條件是演算法被故意削弱。 Netscape 是最受歡迎的瀏覽器 Netscape Navigator 的開發商,僅透過本質上易受攻擊的 2 位元 RSA 金鑰(以及 RC512 的 40 位元)獲得了 SSLv4 的許可。

到本世紀末,規則已經放寬,現代加密技術變得廣泛可用。 然而,由於維持對任何遺留系統的支援的相同慣性,客戶端和伺服器多年來一直支援弱化的「匯出」加密。 客戶認為他們可能會遇到不支援其他任何功能的伺服器。 伺服器也做了同樣的事情。 當然,SSL 協定規定,當有更好的協定可用時,客戶端和伺服器絕不應該使用較弱的協定。 但同樣的前提也適用於特雷斯勒和他的銀行。

這個理論在 2015 年兩次引人注目的攻擊中得到了體現,這兩次攻擊動搖了 SSL 協議的安全性,這兩次攻擊均由 Microsoft 研究人員發現, INRIA。 首先,FREAK 攻擊的細節在 XNUMX 月被揭露,三個月後又發生了另一次名為 Logjam 的類似攻擊,我們將在繼續討論公鑰加密攻擊時更詳細地討論該攻擊。

密碼攻擊:對混亂思想的解釋脆弱性 FREAK 當研究人員分析 TLS 客戶端/伺服器實作並發現一個奇怪的錯誤時,(也稱為「Smack TLS」)被曝光。 在這些實作中,如果客戶端甚至不要求使用弱匯出加密,但伺服器仍然使用此類金鑰進行回應,則客戶端會說「哦,好吧」並切換到弱密碼套件。

當時,出口加密技術被廣泛認為過時且不受限制,因此這次攻擊完全令人震驚,並影響了許多重要領域,包括白宮、國稅局和國家安全局網站。 更糟糕的是,事實證明,許多易受攻擊的伺服器透過重複使用相同的密鑰而不是為每個會話產生新密鑰來優化效能。 這使得在降級協定後進行預計算攻擊成為可能:破解一個金鑰仍然相對昂貴(發佈時為 100 美元和 12 小時),但攻擊連線的實際成本卻顯著降低。 選擇一次伺服器金鑰並破解從那一刻起所有後續連接的加密就足夠了。

在我們繼續之前,需要提及一種高級攻擊…

神諭攻擊

密碼攻擊:對混亂思想的解釋莫克西·馬林斯派克 最著名的身份是跨平台加密訊息應用程式 Signal 之父; 但我們個人喜歡他的一項鮮為人知的創新 - 密碼學厄運原理 (密碼學末日原則)。 稍微解釋一下,我們可以這樣說:「如果協議執行 任何 對來自潛在惡意源的消息執行加密操作,並根據結果採取不同的行為,這是注定的。” 或者用更尖銳的形式:“不要從敵人那裡獲取信息進行處理,如果必須這樣做,那麼至少不要顯示結果。”

讓我們先不考慮緩衝區溢位、指令注入等問題; 它們超出了本次討論的範圍。 由於協議的行為完全符合預期,違反「末日原則」會導致嚴重的密碼學駭客攻擊。

作為範例,我們採用具有易受攻擊的替換密碼的虛構設計,然後示範可能的攻擊。 雖然我們已經看到了使用頻率分析對替換密碼進行的攻擊,但這不僅僅是「破解相同密碼的另一種方法」。 相反,預言機攻擊是一項更現代的發明,適用於頻率分析失敗的許多情況,我們將在下一節中看到對此的演示。 這裡選擇簡單密碼只是為了讓範例更清晰。

因此,愛麗絲和鮑伯使用簡單的替換密碼進行通信,使用的密鑰只有他們自己知道。 他們對訊息的長度非常嚴格:訊息長度正好是 20 個字元。 因此,他們一致認為,如果有人想要發送較短的訊息,他們應該在訊息末尾添加一些虛擬文本,使其恰好為 20 個字元。 經過一番討論,他們決定只接受以下虛擬文字: a, bb, ccc, dddd 因此,任何所需長度的虛擬文字都是已知的。

當Alice或Bob收到訊息時,他們首先檢查訊息的長度是否正確(20個字元),並且後綴是否是正確的虛擬文字。 如果情況並非如此,那麼它們會以適當的錯誤訊息進行回應。 如果文字長度和虛擬文字正常,收件者將讀取訊息本身並發送加密的回應。

在攻擊過程中,攻擊者冒充鮑伯並向愛麗絲發送虛假訊息。 這些訊息完全是無稽之談——攻擊者沒有密鑰,因此無法偽造有意義的訊息。 但由於協議違反了厄運原則,攻擊者仍然可以誘騙 Alice 洩露關鍵訊息,如下所示。

防盜: PREWF ZHJKL MMMN. LA

愛麗絲: 無效的虛擬文字。

防盜: PREWF ZHJKL MMMN. LB

愛麗絲: 無效的虛擬文字。

防盜: PREWF ZHJKL MMMN. LC

愛麗絲: ILCT? TLCT RUWO PUT KCAW CPS OWPOW!

竊賊不知道愛麗絲剛才說了什麼,但注意到這個符號 C 必須對應 a,因為愛麗絲接受了虛擬文字。

防盜: REWF ZHJKL MMMN. LAA

愛麗絲: 無效的虛擬文字。

防盜: REWF ZHJKL MMMN. LBB

愛麗絲: 無效的虛擬文字。

經過多次嘗試...

防盜: REWF ZHJKL MMMN. LGG

愛麗絲: 無效的虛擬文字。

防盜: REWF ZHJKL MMMN. LHH

愛麗絲: TLQO JWCRO FQAW SUY LCR C OWQXYJW. IW PWWR TU TCFA CHUYT TLQO JWFCTQUPOLQZ.

同樣,攻擊者不知道 Alice 剛剛說什麼,但注意到 H 必須匹配 b,因為 Alice 接受了虛擬文字。

依此類推,直到攻擊者知道每個字元的含義。

乍一看,該方法類似於所選的明文攻擊。 最後,攻擊者選擇了密文,伺服器就乖乖地處理了。 使這些攻擊在現實世界中可行的主要區別在於,攻擊者不需要存取實際的記錄——伺服器回應,即使是像「無效的虛擬文字」這樣無害的回應就足夠了。

雖然這種特殊的攻擊很有啟發性,但不要太關注「虛擬文字」方案的細節、使用的特定密碼系統或攻擊者發送的訊息的確切序列。 基本想法是愛麗絲如何根據明文的屬性做出不同的反應,並且在不驗證相應的密文實際上來自受信任方的情況下這樣做。 因此,愛麗絲允許攻擊者從她的答案中榨取秘密訊息。

在這種情況下,有很多可以改變的地方。 愛麗絲對符號的反應,或是她行為的差異,甚至是使用的密碼系統。 但原則將保持不變,整個攻擊將以一種或另一種形式仍然可行。 這種攻擊的基本實作幫助發現了幾個安全漏洞,我們很快就會看到這些漏洞; 但首先需要學習一些理論教訓。 如何在可以對真正的現代密碼起作用的攻擊中使用這個虛構的「愛麗絲腳本」? 即使在理論上,這是否可能?

1998年,瑞士密碼學家丹尼爾·布萊辛巴赫(Daniel Bleichenbacher)對這個問題給了肯定的答案。 他示範了使用特定訊息方案對廣泛使用的公鑰密碼系統 RSA 進行的預言機攻擊。 在某些 RSA 實作中,伺服器根據明文是否與方案相符來回應不同的錯誤訊息; 這足以進行攻擊。

四年後,即2002 年,法國密碼學家Serge Vaudenay 演示了一種與上面的Alice 場景中描述的幾乎相同的神諭攻擊- 只不過他破解的是人們實際使用的一整類受人尊敬的現代密碼,而不是虛構的密碼。 特別是,Vaudenay 的攻擊針對固定輸入大小的密碼(「區塊密碼」),當它們用於所謂的「CBC 加密模式」並採用某種流行的填充方案時,基本上相當於 Alice 場景中的方案。

同樣在 2002 年,美國密碼學家 John Kelsey(合著者) Twofish的 - 提出了對壓縮訊息然後加密訊息的系統的各種預言機攻擊。 其中最引人注目的是利用通常可以從密文的長度推斷明文的原始長度這一事實的攻擊。 理論上,這允許預言機攻擊恢復部分原始明文。

以下我們提供了對 Vaudenay 和 Kelsey 攻擊的更詳細描述(當我們繼續討論公鑰密碼學的攻擊時,我們將更詳細地描述 Bleichenbacher 攻擊)。 儘管我們盡了最大努力,文本還是變得有些技術性; 因此,如果以上內容對您來說足夠了,請跳過接下來的兩部分。

沃登的攻擊

為了理解沃德奈攻擊,我們首先需要更多地討論分組密碼和加密模式。 如前所述,「分組密碼」是一種採用金鑰和特定固定長度(「分組長度」)的輸入並產生相同長度的加密分組的密碼。 分組密碼被廣泛使用並且被認為相對安全。 現已退役的 DES 被認為是第一個現代密碼,是一種分組密碼。 如上所述,如今廣泛使用的 AES 也是如此。

不幸的是,分組密碼有一個明顯的弱點。 典型的區塊大小為 128 位,即 16 個字元。 顯然,現代密碼學需要處理更大的輸入數據,這就是加密模式發揮作用的地方。 加密模式本質上是一種破解:它是一種以某種方式應用僅接受特定大小的輸入的分組密碼到任意長度的輸入的方法。

Vodene 的攻擊主要針對流行的 CBC(密碼塊鏈)操作模式。 該攻擊將底層分組密碼視為一個神奇的、堅不可摧的黑盒子,並完全繞過了其安全性。

下圖顯示了 CBC 模式的工作原理:

密碼攻擊:對混亂思想的解釋

密碼攻擊:對混亂思想的解釋

帶圓圈的加號表示 XOR(異或)運算。 例如,收到第二塊密文:

  1. 透過對第二個明文區塊與第一個密文區塊執行異或運算。
  2. 使用密鑰透過區塊密碼對結果區塊進行加密。

由於 CBC 大量使用了二進位 XOR 運算,讓我們花點時間回顧它的一些屬性:

  • 冪等性: 密碼攻擊:對混亂思想的解釋
  • 交換性: 密碼攻擊:對混亂思想的解釋
  • 關聯性: 密碼攻擊:對混亂思想的解釋
  • 自可逆性: 密碼攻擊:對混亂思想的解釋
  • 位元組大小:第n個位元組 密碼攻擊:對混亂思想的解釋 =(位元組n 密碼攻擊:對混亂思想的解釋) 密碼攻擊:對混亂思想的解釋 (位元組 n 密碼攻擊:對混亂思想的解釋)

通常,這些屬性意味著如果我們有一個涉及 XOR 運算和一個未知數的方程,則可以求解該方程。 例如,如果我們知道 密碼攻擊:對混亂思想的解釋 與未知的 密碼攻擊:對混亂思想的解釋 和著名的 密碼攻擊:對混亂思想的解釋 и 密碼攻擊:對混亂思想的解釋,那麼我們可以依靠上面提到的屬性來求解方程 密碼攻擊:對混亂思想的解釋。 透過在方程式兩邊應用 XOR 密碼攻擊:對混亂思想的解釋,我們得到 密碼攻擊:對混亂思想的解釋。 這一切很快就會變得非常重要。

我們的 Alice 場景和 Vaudenay 的攻擊之間有兩個細微差別和一個主要差別。 兩個小問題:

  • 在腳本中,愛麗絲期望明文以字元結尾 a, bb, ccc 等等。 在 Wodene 攻擊中,受害者反而期望明文以 N 位元組結束 N 次(即,十六進位 01 或 02 02,或 03 03 03,等等)。 這純粹是外觀上的差異。
  • 在 Alice 場景中,很容易透過回應「錯誤的虛擬文字」來判斷 Alice 是否接受了訊息。 在Vodene的攻擊中,需要更多的分析,受害者這邊的精確實施很重要; 但為了簡潔起見,我們假設這種分析仍然是可能的。

主要區別:

  • 由於我們沒有使用相同的密碼系統,攻擊者控制的密文字節和秘密(金鑰和明文)之間的關係顯然會有所不同。 因此,攻擊者在創建密文和解釋伺服器回應時必須使用不同的策略。

這個主要區別是理解 Vaudenay 攻擊的最後一塊拼圖,所以讓我們花點時間思考為什麼以及如何對 CBC 進行預言機攻擊。

假設我們得到了 247 個區塊的 CBC 密文,並且我們想要解密它。 我們可以向伺服器發送虛假訊息,就像我們之前可以向 Alice 發送虛假訊息一樣。 伺服器將為我們解密訊息,但不會顯示解密結果 - 相反,與 Alice 一樣,伺服器將僅報告一位資訊:明文是否具有有效的填充。

考慮在愛麗絲的場景中,我們有以下關係:

$$顯示$$文字{SIMPLE_SUBSTITUTION}(文字{密文},文字{金鑰}) = 文字{明文}$$顯示$$

我們稱之為「愛麗絲方程式」。 我們控制了密文; 伺服器(Alice)洩漏了有關收到的明文的模糊訊息; 這使我們能夠推斷出有關最後一個因素的資訊——關鍵。 以此類推,如果我們能找到CBC腳本的這樣一個連接,我們也許也能從那裡提取一些秘密資訊。

幸運的是,確實存在著我們可以利用的關係。 考慮解密分組密碼的最終呼叫的輸出,並將該輸出表示為 密碼攻擊:對混亂思想的解釋。 我們也表示明文塊 密碼攻擊:對混亂思想的解釋 和密文區塊 密碼攻擊:對混亂思想的解釋。 再看一下 CBC 圖並注意會發生什麼:

密碼攻擊:對混亂思想的解釋

我們稱之為「CBC 方程式」。

在愛麗絲的場景中,透過監視密文並觀察相應的明文洩漏,我們能夠發動攻擊,恢復等式中的第三項——密鑰。 在CBC場景中,我們也監控密文並觀察對應明文的資訊外洩。 如果類比成立,我們可以獲得以下資訊: 密碼攻擊:對混亂思想的解釋.

假設我們真的恢復了 密碼攻擊:對混亂思想的解釋, 然後怎樣呢? 好吧,那我們可以一次印出整個最後一塊明文(密碼攻擊:對混亂思想的解釋),只需輸入 密碼攻擊:對混亂思想的解釋 (我們有)和
已收到 密碼攻擊:對混亂思想的解釋 代入 CBC 方程式。

既然我們對整體進攻計畫持樂觀態度,現在是時候制定細節了。 請注意明文資訊在伺服器上是如何洩漏的。 在 Alice 的腳本中,發生洩漏是因為如果 $inline$text{SIMPLE_SUBSTITUTION}(text{ciphertext},text{key})$inline$ 以該行結尾,Alice 只會回應正確的訊息 a (或者 bb等等,但這些條件被偶然觸發的機會很小)。 與 CBC 類似,伺服器接受填充當且僅當 密碼攻擊:對混亂思想的解釋 以十六進位結尾 01。 所以讓我們嘗試同樣的技巧:用我們自己的假值發送假密文 密碼攻擊:對混亂思想的解釋直到伺服器接受填充。

當伺服器接受我們的假訊息之一的填充時,這意味著:

密碼攻擊:對混亂思想的解釋

現在我們使用字節字節異或屬性:

密碼攻擊:對混亂思想的解釋

我們知道第一項和第三項。 我們已經看到,這使我們能夠恢復剩餘的項目——最後一個位元組 密碼攻擊:對混亂思想的解釋:

密碼攻擊:對混亂思想的解釋

這也透過 CBC 方程式和逐字節屬性為我們提供了最終明文區塊的最後一個位元組。

我們可以就此打住,並對我們已經對理論上強大的密碼進行了攻擊感到滿意。 但事實上我們可以做更多的事情:我們實際上可以恢復所有文字。 這需要一個 Alice 原始腳本中沒有的技巧,也不是預言機攻擊所必需的,但它仍然值得學習。

要理解它,首先註意輸出最後一個位元組的正確值的結果是 密碼攻擊:對混亂思想的解釋 我們有一個新的能力。 現在,在偽造密文時,我們可以操縱對應明文的最後一個位元組。 同樣,這與 CBC 方程式和逐字節屬性有關:

密碼攻擊:對混亂思想的解釋

既然我們現在知道了第二項,我們就可以利用對第一項的控制來控制第三項。 我們簡單計算一下:

密碼攻擊:對混亂思想的解釋

我們以前不能這樣做,因為我們還沒有最後一個位元組 密碼攻擊:對混亂思想的解釋.

這對我們有什麼幫助? 假設我們現在創建所有密文,使得在對應的明文中最後一個位元組等於 02。 如果明文以以下內容結尾,伺服器現在只接受填充 02 02。 由於我們更正了最後一個位元組,因此只有當明文的倒數第二個位元組也是02 時才會發生這種情況。我們不斷發送偽造的密文區塊,更改倒數第二個字節,直到伺服器接受其中一個位元組的填充。 此時我們得到:

密碼攻擊:對混亂思想的解釋

我們恢復倒數第二個位元組 密碼攻擊:對混亂思想的解釋 就像上次恢復一樣。 我們本著同樣的精神繼續:我們將明文的最後兩個位元組更正為 03 03,我們對倒數第三個位元組重複此攻擊,依此類推,最終完全恢復 密碼攻擊:對混亂思想的解釋.

那麼文本的其餘部分呢? 請注意該值 密碼攻擊:對混亂思想的解釋 其實是$inline$text{BLOCK_DECRYPT}(text{key},C_{247})$inline$。 我們可以放置任何其他塊來代替 密碼攻擊:對混亂思想的解釋,攻擊仍然會成功。 事實上,我們可以要求伺服器對任何資料執行$inline$text{BLOCK_DECRYPT}$inline$。 此時,遊戲結束了 - 我們可以解密任何密文(再看一下 CBC 解密圖即可看到這一點;並注意 IV 是公開的)。

這種特殊的方法在我們後面會遇到的預言機攻擊中扮演了至關重要的角色。

凱爾西的進攻

我們的志趣相投的約翰·凱爾西(John Kelsey)闡述了許多可能的攻擊背後的原理,而不僅僅是針對特定密碼的特定攻擊的細節。 他的 2002年文章 是對加密壓縮資料可能的攻擊的研究。 您是否認為加密前壓縮資料的資訊不足以進行攻擊? 事實證明這就足夠了。

這令人驚訝的結果歸因於兩個原則。 首先,明文的長度和密文的長度有很強的相關性; 對於許多密碼來說完全相等。 其次,在進行壓縮時,壓縮訊息的長度與明文的「雜訊」程度,即非重複字元的比例(專業術語是「高熵」)之間也存在很強的相關性。 )。

要了解原理的實際應用,請考慮兩個明文:

明文1: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

明文2: ATVXCAGTRSVPTVVULSJQHGEYCMQPCRQBGCYIXCFJGJ

我們假設兩個明文都經過壓縮然後加密。 您將獲得兩個密文,並且必須猜測哪個密文與哪個明文匹配:

密文1: PVOVEYBPJDPVANEAWVGCIUWAABCIYIKOOURMYDTA

密文2: DWKJZXYU

答案很明確。 明文中,只有明文1可以被壓縮成長度微薄的第二個密文。 我們在不了解壓縮演算法、加密金鑰甚至密碼本身的情況下就解決了這個問題。 與可能的加密攻擊的層次結構相比,這有點瘋狂。

凱爾西進一步指出,在某些異常情況下,這原理也可以用來進行預言機攻擊。 特別是,它描述瞭如果攻擊者可以強制伺服器加密表單資料(明文後跟),他將如何恢復秘密明文 密碼攻擊:對混亂思想的解釋當他掌控一切的時候 密碼攻擊:對混亂思想的解釋 並且可以以某種方式檢查加密結果的長度。

同樣,與其他預言機攻擊一樣,我們有以下關係:

密碼攻擊:對混亂思想的解釋

再一次,我們控制一項(密碼攻擊:對混亂思想的解釋),我們看到有關另一個成員(密文)的少量資訊洩漏,並嘗試恢復最後一個成員(明文)。 儘管有這樣的類比,但與我們所見過的其他預言機攻擊相比,這種情況有些不尋常。

為了說明這種攻擊如何發揮作用,讓我們使用我們剛剛提出的虛構壓縮方案:TOYZIP。 它會尋找文字中先前出現過的文字行,並用三個佔位符位元組取代它們,這三個佔位符位元組指示在哪裡可以找到該行的較早實例以及它在那裡出現的次數。 例如,該行 helloworldhello 可以壓縮成 helloworld[00][00][05] 與原來的 13 個位元組相比,增加了 15 個位元組。

假設攻擊者試圖恢復表單的明文 password=...,其中密碼本身未知。 根據凱爾西的攻擊模型,攻擊者可以要求伺服器壓縮然後加密表單訊息(明文後跟 密碼攻擊:對混亂思想的解釋), 在哪裡 密碼攻擊:對混亂思想的解釋 - 自由文本。 當伺服器完成工作後,它會報告結果的長度。 攻擊過程是這樣的:

防盜: 請壓縮並加密明文,不要進行任何填充。

服務器: 結果長度14。

防盜: 請對附加的明文進行壓縮和加密 password=a.

服務器: 結果長度18。

破解者註意到:[原來的14]+[替換的三個位元組 password=] + a

防盜: 請對新增的明文進行壓縮和加密 password=b.

服務器: 結果長度18。

防盜: 請對新增的明文進行壓縮和加密 password=с.

服務器: 結果長度17。

破解者註意到:[原來的14]+[替換的三個位元組 password=c]。 這假設原始明文包含字串 password=c。 即密碼以字母開頭 c

防盜: 請對新增的明文進行壓縮和加密 password=сa.

服務器: 結果長度18。

破解者註意到:[原來的14]+[替換的三個位元組 password=с] + a

防盜: 請對新增的明文進行壓縮和加密 password=сb.

服務器: 結果長度18。

(… 一段時間之後…)

防盜: 請對新增的明文進行壓縮和加密 password=со.

服務器: 結果長度17。

破解者註意到:[原來的14]+[替換的三個位元組 password=co]。 使用相同的邏輯,攻擊者得出結論,密碼以字母開頭 co

依此類推,直到整個密碼恢復。

讀者可能會認為這純粹是學術練習,而這種攻擊場景在現實世界中永遠不會出現。 唉,我們很快就會看到,最好不要放棄密碼學。

品牌漏洞:CRIME、POODLE、DROWN

最後,在詳細研究理論後,我們可以看到這些技術如何應用於現實生活中的密碼攻擊。

犯罪

密碼攻擊:對混亂思想的解釋如果攻擊針對受害者的瀏覽器和網絡,有些會更容易,有些會更困難。 例如,很容易看到受害者的流量:只需和他坐在同一家有 WiFi 的咖啡館裡。 因此,通常建議潛在受害者(即每個人)使用加密連線。 代表受害者向某些第三方網站(例如 Google)發出 HTTP 請求會更加困難,但仍然是可能的。 攻擊者必須使用發出請求的腳本引誘受害者存取惡意網頁。 Web 瀏覽器將自動提供適當的會話 cookie。

這看起來很神奇。 如果鮑伯去 evil.com,該網站上的腳本是否可以要求 Google 將 Bob 的密碼透過電子郵件發送至 [email protected]? 嗯,理論上是的,但實際上不是。 這種場景稱為跨站請求偽造攻擊(跨站請求偽造、CSRF),並在 90 年代中期流行。 今天如果 evil.com 嘗試這個技巧時,Google(或任何有自尊的網站)通常會回應:「很好,但是您用於此交易的 CSRF 令牌將是......嗯...... три триллиона и семь。 請重複這個號碼。” 現代瀏覽器有一種稱為「同源策略」的東西,即網站 A 上的腳本無法存取網站 B 發送的資訊。因此, evil.com 可以發送請求到 google.com,但無法讀取回應或實際完成交易。

我們必須強調,除非 Bob 使用加密連接,否則所有這些保護都是毫無意義的。 攻擊者可以簡單地讀取 Bob 的流量並恢復 Google 的會話 cookie。 有了這個 cookie,他只需打開一個新的 Google 標籤而無需離開自己的瀏覽器,並且可以模擬 Bob,而不會遇到討厭的同源策略。 但不幸的是,對於竊賊來說,這種情況越來越少見。 整個網路長期以來一直在向未加密的連線宣戰,而鮑伯的傳出流量可能是加密的,無論他是否喜歡。 此外,從協議實施之初,流量也受到影響。 縮小了 加密前; 這是減少延遲的常見做法。

這就是它發揮作用的地方 犯罪 (壓縮比Infoleak Made Easy,透過壓縮比簡單洩漏)。 該漏洞由安全研究人員 Juliano Rizzo 和 Thai Duong 於 2012 年 XNUMX 月披露。 我們已經研究了整個理論基礎,這使我們能夠了解他們做了什麼以及如何做。 攻擊者可以強制 Bob 的瀏覽器向 Google 發送請求,然後以壓縮、加密的形式監聽本地網路上的回應。 因此我們有:

密碼攻擊:對混亂思想的解釋

在這裡,攻擊者控制請求並有權存取流量嗅探器,包括資料包大小。 凱爾西的虛構場景變成了現實。

在了解這個理論後,CRIME 的作者創建了一個漏洞,可以竊取 Gmail、Twitter、Dropbox 和 Github 等多種網站的會話 cookie。 該漏洞影響了大多數現代 Web 瀏覽器,導致發布的修補程式悄悄地將壓縮功能隱藏在 SSL 中,使其根本無法使用。 唯一免受此漏洞影響的是古老的 Internet Explorer,它根本不使用 SSL 壓縮。

獅子狗

密碼攻擊:對混亂思想的解釋2014年XNUMX月,Google安全團隊在安全界掀起波瀾。 他們能夠利用 SSL 協定中的一個漏洞,該漏洞在十多年前就已修復。

事實證明,雖然伺服器正在運行閃亮的新 TLSv1.2,但許多伺服器已經放棄了對舊版 SSLv3 的支持,以向後相容於 Internet Explorer 6。我們已經討論過降級攻擊,因此您可以想像會發生什麼。 對握手協議進行精心策劃的破壞,伺服器已準備好返回舊的 SSLv3,從根本上破壞了過去 15 年的安全研究。

就歷史背景而言, 以下是 Matthew Green 對 SSL 版本 2 的歷史的簡要總結:

傳輸層安全性 (TLS) 是 Internet 上最重要的安全協定。 [..] 幾乎您在網路上進行的每筆交易都依賴 TLS。 [..] 但 TLS 並不總是 TLS。 該協議開始於 網景通訊 稱為“安全通訊端層”或 SSL。 有傳言稱 SSL 的第一個版本非常糟糕,以至於開發人員收集了所有程式碼的列印輸出並將它們埋在新墨西哥州的一個秘密垃圾掩埋場中。 因此,第一個公開可用的 SSL 版本實際上是 版本 SSL 2。 這非常可怕,而且 [..] 它是 90 年代中期的產物,現代密碼學家將其視為“密碼學的黑暗時代」 我們今天所知道的許多最令人髮指的加密攻擊尚未被發現。 結果,SSLv2 協定的開發人員基本上只能在黑暗中摸索,他們面臨著 很多可怕的怪物 - 讓他們懊惱,但對我們有利,因為對 SSLv2 的攻擊為下一代協議留下了寶貴的教訓。

這些事件發生後,1996 年,沮喪的 Netscape 從頭開始重新設計了 SSL 協定。 結果是 SSL 版本 3,它 修復了其前身的幾個已知安全問題.

幸運的是,對於竊賊來說,「一些」並不意味著「全部」。 總體而言,SSLv3 提供了發動 Vodene 攻擊所需的所有建構塊。 該協定使用 CBC 模式分組密碼和不安全的填充方案(這已在 TLS 中修正;因此需要降級攻擊)。 如果您還記得我們對 Vaudenay 攻擊的原始描述中的填充方案,那麼 SSLv3 方案非常相似。

但不幸的是,對於竊賊來說,「相似」並不意味著「相同」。 SSLv3 填充方案是「N 個隨機位元組後面跟著數字 N」。 在這些條件下,嘗試選擇一個假想的密文區塊,並執行 Vaudene 原始方案的所有步驟:您會發現攻擊成功地從對應的明文區塊中提取了最後一個位元組,但沒有進一步進行。 解密密文的每 16 個位元組是一個很棒的技巧,但這並不是一個勝利。

面對失敗,Google團隊採取了最後的手段:他們轉向了更強大的威脅模型——CRIME中使用的模型。 假設攻擊者是在受害者瀏覽器標籤中運行的腳本,並且可以提取會話 cookie,那麼攻擊仍然令人印象深刻。 雖然更廣泛的威脅模型不太現實,但我們在上一節中看到這個特定模型是可行的。

鑑於攻擊者擁有更強大的能力,攻擊現在可以繼續進行。 請注意,攻擊者知道加密的會話 cookie 出現在標頭中的位置,並控制其前面的 HTTP 請求的長度。 因此,它能夠操縱 HTTP 請求,使 cookie 的最後一個位元組與區塊的末尾對齊。 現在這個位元組適合解密。 您只需在請求中添加一個字符,Cookie 的倒數第二個位元組將保留在同一位置,適合使用相同的方法進行選擇。 攻擊以這種方式繼續,直到cookie檔案完全恢復。 它被稱為 POODLE:在降級的舊加密上填入 Oracle。

密碼攻擊:對混亂思想的解釋正如我們已經提到的,SSLv3 有其缺陷,但它與其前身有本質上的不同,因為洩漏的 SSLv2 是不同時代的產物。 在那裡你可以在中間打斷訊息: соглашусь на это только через мой труп 轉換成 соглашусь на это; 客戶端和伺服器可以在線上見面,建立信任並在攻擊者面前交換秘密,然後攻擊者可以輕鬆地冒充兩者。 還有導出密碼學的問題,我們在考慮 FREAK 時提到。 這些是加密的所多瑪和蛾摩拉。

2016 年 2 月,一群來自不同技術領域的研究人員聚集在一起,得出了一個驚人的發現:SSLv2 仍在安全系統中使用。 是的,攻擊者無法再將現代 TLS 會話降級為 SSLv2,因為漏洞在 FREAK 和 POODLE 之後已關閉,但他們仍然可以連接到伺服器並自行啟動 SSLvXNUMX 會話。

您可能會問,為什麼我們關心他們在那裡做什麼? 他們有一個易受攻擊的會話,但它不應該影響其他會話或伺服器的安全性 - 對嗎? 嗯,不完全是。 是的,理論上應該是這樣。 但不行 - 因為產生 SSL 憑證會帶來一定的負擔,導致許多伺服器使用相同的證書,從而為 TLS 和 SSLv2 連接使用相同的 RSA 金鑰。 更糟糕的是,由於 OpenSSL 錯誤,這個流行的 SSL 實作中的「停用 SSLv2」選項實際上不起作用。

這使得對 TLS 的跨協定攻擊成為可能,稱為 (使用過時且弱化的加密解密 RSA,使用過時且弱化的加密解密 RSA)。 回想一下,這與短攻擊不同。 攻擊者不需要充當“中間人”,也不需要讓客戶端參與不安全的會話。 攻擊者只需發起與伺服器本身不安全的 SSLv2 會話,攻擊弱協議,並恢復伺服器的 RSA 私鑰。 此金鑰對於 TLS 連線也有效,從此時起,再多的 TLS 安全性也無法阻止它受到損害。

但要破解它,您需要對 SSLv2 進行有效攻擊,這樣您不僅可以恢復特定流量,還可以恢復秘密 RSA 伺服器金鑰。 儘管這是一個複雜的設置,但研究人員可以選擇 SSLv2 之後完全關閉的任何漏洞。 他們最終找到了一個合適的選擇:Bleichenbacher 攻擊,我們之前提到過,我們將在下一篇文章中詳細解釋。 SSL 和 TLS 受到保護,免受這種攻擊,但 SSL 的一些隨機功能與出口級加密中的短密鑰相結合,使得這種攻擊成為可能 DROWN的具體實現.

截至本文發佈時,25% 的網路頂級網站受到 DROWN 漏洞的影響,即使是頑皮的孤獨駭客也可以利用有限的資源來實施攻擊。 檢索伺服器的 RSA 金鑰需要 440 個小時的計算和 2 美元,SSLvXNUMX 從過時變成了放射性。

等等,《心血》呢?

這不是上述意義上的密碼攻擊; 這是緩衝區溢出。

休息一下吧

我們從一些基本技術開始:暴力破解、插值、降級、跨協議和預計算。 然後我們研究了一種先進技術,它可能是現代密碼攻擊的主要組成部分:預言機攻擊。 我們花了相當多的時間來弄清楚——不僅了解了底層原理,還了解了兩個具體實現的技術細節:針對 CBC 加密模式的 Vaudenay 攻擊和針對預壓縮加密協議的 Kelsey 攻擊。

在回顧降級和預計算攻擊時,我們簡要概述了 FREAK 攻擊,該攻擊透過將目標網站降級為弱密鑰然後重複使用相同的密鑰來使用這兩種方法。 在下一篇文章中,我們將保留(非常相似的)Logjam 攻擊,該攻擊針對公鑰演算法。

然後我們看了另外三個應用這些原則的例子。 首先,CRIME 和 POODLE:這兩種攻擊依賴於攻擊者在目標明文旁邊注入任意明文的能力,然後檢查伺服器的回應並 然後使用預言機攻擊方法,利用這些稀疏資訊來部分恢復明文。 CRIME 採用了 Kelsey 對 SSL 壓縮的攻擊路線,而 POODLE 使用了 Vaudenay 對 CBC 攻擊的變體,具有相同的效果。

然後我們將注意力轉向跨協定 DROWN 攻擊,該攻擊使用舊版 SSLv2 協定建立與伺服器的連接,然後使用 Bleichenbacher 攻擊恢復伺服器的金鑰。 我們暫時跳過了這次攻擊的技術細節; 就像 Logjam 一樣,它必須等到我們對公鑰密碼系統及其漏洞有充分的了解才能實現。

在下一篇文章中,我們將討論進階攻擊,例如中間相遇、差分密碼分析和生日攻擊。 讓我們快速探討一下側頻道攻擊,然後繼續有趣的部分:公鑰密碼系統。

來源: www.habr.com

添加評論