天天看點

SHA-1 碰撞攻擊将會對我們産生怎樣的現實影響?

近期,google和荷蘭國家數學和計算機中心(centrum wiskunde & informatica,cwi)的研究人員完成了針對第一例sha-1的碰撞攻擊,創造了兩個hash值完全相同但内容截然不同的檔案。然而,在真實的資訊安全世界中,這種攻擊又會怎樣對個人群組織機構造成何種威脅呢?

對sha-1算法不安全的擔心由來已早。在2015年荷蘭國家數學和計算中心和新加坡南洋理工大學研究員聯合發表的論文中,描述了sha-1碰撞攻擊的各種理論性可能。同時,在rsa 2016的密碼學家研讨會上,該篇論文得到了很多關注,參會的著名密碼學專家adi shamir也預測,真實的sha-1碰撞攻擊在未來幾個月将會成功實作。在此次會議之後,一些安全公司正式對外宣布sha-1機制可能存在缺陷;與此同時,因為沒有真實的攻擊成功案例,這種攻擊也帶來了諸多質疑。

SHA-1 碰撞攻擊将會對我們産生怎樣的現實影響?

但為了防止任何理論攻擊可能,去年開始,一些安全公司開始反對繼續使用sha-1算法。盡管谷歌、facebook、微軟和mozilla等公司已采取措施替換sha-1算法,但哈希函數仍在廣泛使用。當google和cwi的實驗成功之後,sha-1碰撞攻擊再次受到關注。這種攻擊已經成為現實,是以,我們應該如何去防範和修複呢?

影響分析

幾年前,針對md5算法存在“構造字首碰撞攻擊”(chosen-prefix collisions),而真實案例中,flame(火焰)病毒就使用了此種攻擊方法。sha-1碰撞攻擊實作後,惡意軟體開發者将會創造什麼樣的病毒,值得想像。

在此,我們就針對一些利用微軟簽名校驗的惡意程式,結合sha-1碰撞作一些攻擊可能的探讨。為了說明sha-1碰撞攻擊的現實威脅,我們找到了一例很有趣的例子:微軟核心模式代碼簽名政策,攻擊針對目标是加載的核心模式驅動程式簽名認證,以下是包括win 10在内的該類簽名規範和要求:

SHA-1 碰撞攻擊将會對我們産生怎樣的現實影響?

我們可以看到,其中列出的哈希機制就包括sha-1,是以,毫無疑問,sha-1碰撞攻擊将會産生驅動簽名濫用情況,為惡意核心代碼程式的利用傳播敞開大門。事實上,sha-1簽名校驗的驅動程式并不少見,以下就是一些我們發現的執行個體:

SHA-1 碰撞攻擊将會對我們産生怎樣的現實影響?
SHA-1 碰撞攻擊将會對我們産生怎樣的現實影響?

在win 10系統中,這類存在“風險隐患”的驅動程式是不是就非常少呢?但由于存在很多第三方驅動,是以,情況讓你超乎想像。雖然微軟在最新的系統适配産品中明确反對sha-1機制認證程式,但很多第三方驅動依然大範圍存在此種情況。另外,在一些之前的作業系統版本(win 7win 8)中,還存在着大量且多年未更新的此類驅動。例如:

SHA-1 碰撞攻擊将會對我們産生怎樣的現實影響?
SHA-1 碰撞攻擊将會對我們産生怎樣的現實影響?
SHA-1 碰撞攻擊将會對我們産生怎樣的現實影響?
SHA-1 碰撞攻擊将會對我們産生怎樣的現實影響?

從這裡就可以看出,sha-1将會成為很多組織機構和相關系統的一個心頭大患。受影響的系統和服務包括:數字證書簽名、郵件、pgp/gpg 簽名、軟體釋出簽名、備份系統、備援熱備份系統、git……等等,除了網絡安全之外,影響将會波及很多使用傳統作業系統的大型組織機構。這種很多第三方軟體公司持續使用的,運作機制本身就存在的問題,将會成為一個嚴重的資訊安全問題。要保證安全,隻有從核心和本質上進行處理,但對很多軟體公司來說,這又會成為一個“牽一發動全身”的棘手問題。

深入研究之後,我們甚至發現一些固件和硬體也受到此問題影響。例如,普遍使用的僅支援sha-1驗證的tpm 1.2晶片,sha-1碰撞攻擊将會直接對一些使用sha-1算法的固件可信啟動機制造成影響。在這方面,微軟在win10系統中已經作了一些限制,如其加密方式不支援tpm1.2晶片。

sha-1碰撞攻擊的惡夢才剛剛開始,我們應該盡快結束使用sha-1的時代。谷歌将在接下來的90天内公布sha-1碰撞攻擊的測試工具。

sha-1碰撞會被用到一些野生攻擊中嗎?

證據表明,攻擊者必須在擁有原始檔案和已知哈希的情況下才能完成碰撞攻擊,另外,由于攻擊利用了定向編輯,不是每次編輯都會有效。換句話說,即使是破解了ssh或tls的認證證書,也都不可能實作,需要對原始檔案進行一些非常細微的定向更改才能保證碰撞攻擊成功。

雖然在某種程度上來說,更改簽名驗證很容易實作,但如果要進行僞裝式的sha-1碰撞攻擊,想要讓受害者迷惑,完全對看不出馬腳,這就需要對利用文檔進行破壞性的改造,而不隻是通常性修改。後續可能會有一些針對sha-1碰撞攻擊的檢測研究。

總體上來說,要實作該項攻擊需要很大的代價成本。如果攻擊者使用類似于比特币挖礦的專業裝備和技能,攻擊可能将會變得更加便捷。google和cwi聲稱,該攻擊實作需要大量的cpu和gpu計算,同時還需高效的分布式操作,攻擊第一階段攻擊是在google的異質cpu叢集上進行的,并擴充至8個實體位址;第二階段攻擊代價更高,是在google的k20、k40和k80異質gpu叢集上進行的。經相關研究人員計算得出,使用亞馬遜雲服務aws進行第二階段的攻擊,耗資約56萬美元。但是,若攻擊者足夠耐心并利用現場參考案例,成本可降至11萬美元。

如何修複和預防這種攻擊呢?

作為安全和開發團隊來說,最好的方法就是使用sha-256等更複雜的算法,或使用兩個獨立的加密算法。當然,對于攻擊檢測來說,仍然可以使用google釋出的開源檢測代碼。

繼續閱讀