密碼學:從理論到現(xiàn)實

毛球科技
在解決密碼問題時,會出現(xiàn)不可抗力的情況。多年來,許多科學家都在考慮每一個細節(jié),但現(xiàn)實往往會讓你感到驚訝。在很多方面,正是這種無休止的循環(huán),由一系列開發(fā)新的密碼解決方案、識別漏洞,然后才發(fā)現(xiàn)漏洞是怎樣形成的,也才吸引人們去研究密碼學。

2345截圖20211028093243.png

“一切都會出錯”是任何規(guī)劃都應該遵循的主要原則之一。

不穩(wěn)定是事實

在解決密碼問題時,會出現(xiàn)不可抗力的情況。多年來,許多科學家都在考慮每一個細節(jié),但現(xiàn)實往往會讓你感到驚訝。在很多方面,正是這種無休止的循環(huán),由一系列開發(fā)新的密碼解決方案、識別漏洞,然后才發(fā)現(xiàn)漏洞是怎樣形成的,也才吸引人們去研究密碼學。

例如,著名的TLS協(xié)議在他的歷史發(fā)展進程中有一個很有趣的插曲:

在2001年,Hugo Krawczyk首次對TLS 1.1中使用的數(shù)據保護方案的安全性進行了數(shù)學證明,但不到一年后,出現(xiàn)了一種攻擊,表明該協(xié)議在數(shù)據保護方面存在不穩(wěn)定性。

不幸的是,這樣的事件在密碼學中并不罕見,上面提到的漏洞問題,在TLS協(xié)議中肯定也不是最后一次出現(xiàn)。

每年,在密碼學會議和研討會上,都會出現(xiàn)一些令人驚奇的攻擊案例,這些攻擊乍一看,與理論研究相矛盾,此刻,有個問題就被提出:密碼學理論家的“失誤”原因是什么?

在回答這個問題之前,讓我們試著弄清楚密碼學的支柱是什么,對手的模型是什么,以及關于“信息安全”這樣一個復雜而多方面的概念的知識是如何在世界上形成和擴展的。

模型作為基礎

解決信息安全問題的系統(tǒng)的開發(fā)是一個極其復雜和耗時的過程。事實證明,理論研究知識此類系統(tǒng)生命中眾多階段中的一個。同樣重要的是系統(tǒng)的建模、實施和運行階段,從普通用戶的角度來說,運行階段才是最重要的,理論永遠是理論。

每一個階段都是基于前一個階段,并且是前一個階段的邏輯延續(xù):例如,理論研究階段沒有建模是不可能的,因為推理的嚴謹性需要對研究的屬性和對象進行形式化。

密碼學中的建模涉及到對正在開發(fā)的系統(tǒng)的所有屬性、用戶與之互動的所有可能方式的深入分析,有時甚至涉及到系統(tǒng)運行的物理條件。

建模的結果是系統(tǒng)的數(shù)學模型,其中特別包括所謂的對手模型,事實上,它決定了一個安全的穩(wěn)定的系統(tǒng)意味著什么。

對手模型由三個部分組成:攻擊類型、威脅模型和關于對手可用資源的假設。這三個部分加在一起,使我們有可能清楚地定義我們的系統(tǒng)所處的世界:敵人如何與之溝通,他可以從對手那里學到什么,他究竟想要實現(xiàn)什么以及他擁有哪些資源。

攻擊類型決定了敵人在與分析系統(tǒng)交互方面的定性能力。因此,攻擊的類型決定了對手可以接收什么樣的系統(tǒng)信息,以及他可以如何干擾其運行過程。

一個例子是敵人可以攔截和修改通信渠道上的數(shù)據的攻擊類型。在這里,敵人的能力應該考慮到所有已知的違反所研究系統(tǒng)安全的實踐和理論方法,并盡可能接近在實踐中使用該系統(tǒng)時出現(xiàn)的方法。

威脅模型定義了違反安全屬性的任務,這是對手想要解決的。例子包括偽造信息簽名或泄露機密信息。如果敵人解決了指定的任務,他們就說他“意識受到了威脅”。威脅模型反映了哪些情況違反了特定系統(tǒng)的安全性的想法。

關于敵人資源的假設也是模型中極其重要的部分,現(xiàn)在其決定了敵人的定量能力。通常它們是由一整套因素決定的:敵人的時間和計算資源、程序的大小以及他可以通過與系統(tǒng)交互而接收的信息量。

如果沒有這些限制,談論實踐中使用的大多數(shù)系統(tǒng)的安全性是完全沒有意義的,因為,對他們來說,總有一個對手,擁有無限的資源,可以通過簡單的暴力手段找到所需的密鑰,而不使用任何復雜的方法。

客觀現(xiàn)實

一旦研究對象的數(shù)學模型出現(xiàn),就有可能應用合適的數(shù)學方法,其結果是先驗絕對準確的(如果作者沒有在計算中出錯并且最初的假設是正確的)。

使用這種方法可以揭示被研究對象的深層屬性,并且在對時間延長的過程的研究中,實際上可以預測它們的未來。

在物理學中,我們預測扔出的石頭會在多少秒內掉在地上,而在密碼學中,我們預測未來幾年密碼系統(tǒng)是否會被黑客入侵。

因此,如果研究的數(shù)學部分是準確進行的,其結果不包含錯誤,那么理論和實踐之間出現(xiàn)看似奇怪的矛盾的主要原因在于對手的模型和系統(tǒng)在實踐中運行的真實條件之間的差異。在這種情況下,模型被認為還是不相關的。

同時,也不應該把責任歸咎于負責建模的員工,在系統(tǒng)開發(fā)過程的任何階段,從想法到運行,模型都可能變得不相關。然而,現(xiàn)實和模型之間的差異可能出現(xiàn)在構成模型的三個部門中的任何一個。

攻擊類型不匹配

讓我們看一下TLS1.1中使用的數(shù)據保護方案的安全性的數(shù)學證明示例,看看現(xiàn)實與Hugo Krawczyk在他的工作中使用的模型之間的差異發(fā)生在哪里,以及導致這種差異的錯誤發(fā)生在哪里。

2001年的相同工作證明了MAC-then-Encrypt認證加密方案的強度,其中首先將模擬插入附加到消息,然后在消息和插入的串聯(lián)之后以CBC模式加密。CBC加密模式的特殊性在于它只能處理可以分成一定固定大小的塊的字符串。

因此,為了能夠處理任何長度的信息,通常采用填充法:在向信息中添加插入物后,根據一定的規(guī)則,將產生的字符串填充到所需的大小。在接收方處理信息時,首先進行解密和驗證加法的正確性,然后才檢查模擬的插入。

在Hugo Krawczyk的作品發(fā)表不到一年,就出現(xiàn)了針對CBC模式的填充預言機攻擊,它利用對手在檢查解密消息的補碼時獲取有關接收方是否遇到錯誤的信息。

攻擊的結果是違反了傳輸數(shù)據的保密性。起初,人們認為TLS協(xié)議免受填充預言機攻擊,因為其中的錯誤僅以加密形式返回,因此添加中的錯誤與模擬插入中的錯誤無法區(qū)分。

然而,密碼分析者能夠確定,對于大多數(shù)實現(xiàn),在錯誤添加的情況下發(fā)布錯誤的時間與發(fā)布其他錯誤的時間不同,因為在錯誤添加的情況下,錯誤會立即發(fā)布,并且沒有采取進一步行動。

這個時間差使得可以區(qū)分接收端返回的錯誤并將填充預言機攻擊應用于TLS協(xié)議。

然而,在Krawczyk的模型中,沒有考慮到對手可以在解密期間接收有關錯誤發(fā)生位置的信息。

這種遺漏導致攻擊類型與敵人的實際能力不匹配,事實證明這比模型假設的要多。這種機會的出現(xiàn)是由于系統(tǒng)功能的特殊性(錯誤處理的順序)出現(xiàn)在其實施階段。

因此,起初給這位受人尊敬的科學家的工作蒙上陰影的整個情況遠沒有那么可怕:Krawczy的證明是絕對正確的,只是進行證明的模型變得無關緊要。

威脅模型不匹配

同樣有趣的是威脅模型不匹配引起的漏洞。如果一些可能的情況沒有被認為是負面的,它們就會出現(xiàn)。這種漏洞的一個例子是能夠恢復加密的VoIP對話的近似轉錄,只知道加密數(shù)據包的長度。

最初,人們認為對手存在這種信息并不構成違反保密性的巨大威脅,最多只能揭示對話的語言或某些短語的存在。

但是北卡羅來納大學的科學家們發(fā)現(xiàn),通過結合某些編碼語音信息的方法和保留消息長度的流密碼,使用計算語言學和統(tǒng)計方法,可以準確地重新創(chuàng)建整個對話的轉錄。

因此,識別威脅的錯誤在建模階段就悄悄出現(xiàn)了。由于該系統(tǒng)是專門為加密語音電話而創(chuàng)建的,這樣的威脅本可以在加密協(xié)議開發(fā)的初始階段就被注意到。

對敵方資源的假設不一致

反過來,Sweet32攻擊基于對敵人資源的假設不匹配而產生的漏洞。Sweet32攻擊破壞了機密性,并使用塊長度較小的塊密碼(例如3DES或塊長度為64位的Blowfish密碼)來針對CBC加密模式。

這種攻擊基于生日悖論,為了成功,需要保持與服務器的連接時間大約38小時,以發(fā)送大約785GB的流量。

其實,早在2000年,就有一篇發(fā)表的作品中已經給出了破解CBC模式的概率對加密數(shù)據量的依賴。在那個年代,即使使用64位分組密碼,加密如此大量的數(shù)據,足以打破CBC模式,實際上是不切實際的。

因此,基于64位分組密碼的CBC模式在實踐中被認為是強大的。然而,隨著時間的推移,實施Sweet32所需要的資源不再顯得那么出色。

只是沒有注意到,在操作階段,模型與現(xiàn)實之間存在不匹配。因此,在實踐中,敵人可用的資源比模型中假設的要多得多。

進化斗爭

應該注意的是,系統(tǒng)通發(fā)現(xiàn)任何漏洞的常見做法是:當所考慮的示例中描述的每個漏洞的出版物發(fā)布后,立即采取措施解決這些漏洞。

然而,在無誤的理論研究的前提下,發(fā)現(xiàn)的漏洞會觸發(fā)另一個同樣重要的過程:分析對手模型與實際情況的差異及其后續(xù)擴展,將作為新一輪理論研究的一部分,這個過程本質上是對手模型的演變。

因此,在現(xiàn)實中,一個系統(tǒng)的發(fā)展是一個封閉的循環(huán),其中,在解決方案的整合之后,一個同樣重要的運行過程發(fā)生了,它也進行了自身的調整。

在操作過程中,我們對敵人能力和安全屬性的鏈接會顯著擴大,有時是根據第三方或內部要求的結果對系統(tǒng)進行黑客攻擊的結果,這樣的“發(fā)現(xiàn)”開始了系統(tǒng)生命周期的新迭代。

不完美是不可避免的

但是不應該將此開發(fā)順序流程視為不合理,應該將其周期性視為流程不完善的標志。密碼學與其他科學沒有什么不同,類似的情況隨處可見。

有一個例子是:人們對地球形狀的理解的發(fā)展,它是最有形和最廣為人知的模型之一。該模型經歷從平坦地球模型到球狀地球模型、自轉橢球模型和大帝水準面模型的演變。

在這種情況下,出現(xiàn)與理論預測不一致的情況類似于在實踐中破壞理論上穩(wěn)定的密碼系統(tǒng)。

對手模型(并在開發(fā)真實系統(tǒng)時考慮其結果)增加了這樣的可能性:在系統(tǒng)被破壞的情況下,發(fā)現(xiàn)的漏洞將加深我們對信息安全方面的總體理解。

還值得注意的是,理論研究允許在實際實施之前預測許多攻擊。例如,1997年表明使用具有可預測初始化向量的CBC模型是不安全的。

然而,由于所提出的攻擊似乎過于理論化,所以沒有對使用這種加密方法的協(xié)議的實施進行修改。

到2011年,盡管有大量研究警告對TLS進行此類攻擊的可能性,但該漏洞仍未得到修復,密碼分析人員提出了該攻擊的實際實現(xiàn),稱為BEAST。直到那時漏洞才被關閉。

總之,在毛球科技看來,系統(tǒng)開發(fā)的每個階段都很重要,應該與前幾個階段相互作用,如此這樣的過程確保了知識的精確進化,而不僅僅是“修補漏洞”。因此,不要忽視任何一個階段,適當關注新模型的發(fā)展和理論研究是非常重要的。

量子威脅

大多數(shù)人認為,絕大多數(shù)支持分布式賬本交易的加密協(xié)議都容易受到強大的量子計算機的攻擊。

量子計算機主要是一種模擬計算系統(tǒng),它利用量子力學所描述的物理現(xiàn)象來處理數(shù)據和傳輸信息。更具體點說,量子計算機使用量子疊加和量子糾纏來計算。

在數(shù)據不變性的層面上,區(qū)塊鏈得到了很好的保護,甚至不受量子力量的影響。有關交易的信息存儲在注冊表中,該數(shù)據的重復記錄可供區(qū)塊鏈的所有主體使用,所有參與者相互獨立。

在這方面,為了改變網絡上的數(shù)據以修改向交易(竊取支付),必須影響所有區(qū)塊,這在沒有百萬用戶確認的情況下是不可能發(fā)生的。

只要用戶的錢包才會出現(xiàn)問題和漏洞。這是由于在可預見的未來,量子計算機的力量可能足以成功攻擊64位數(shù)的私鑰,而這也是量子計算威脅的唯一假設真實機會。

基于理論假設,俄羅斯聯(lián)邦政府金融大學副教授弗拉基米爾·吉辛表示,在擁有100量子比特量子計算機的世界中,比特幣區(qū)塊鏈可能被黑客入侵。

現(xiàn)在,上面的都是基于理論假設,還沒有實際的量子計算機出現(xiàn),就算谷歌制造的49位量子位設備的存在也尚未被證實。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論