讓您全面了解并上手億速云產品
常見入門級使用教程
對外 API 開發文檔中心
您歷史提交的工單
您的每一條意見,我們都嚴謹處理
您的每一條建議,我們都認真對待
如果你聽說過很多種形式的“SHA”,但不完全確定它的含義,或者為什么它很重要,那么請繼續讀下去。我們首先要解釋什么是散列,然后是SSL證書如何使用散列來形成數字簽名,這是了解SHA-1和SHA-2的重要背景。
散列算法是一種將數據壓縮為固定大小的數學函數。舉個例子,如果我們通過一個叫CRC32的特定的散列算法把這個句子“快速的棕色狐貍跳過了懶惰的狗”運算以下,我們就會得到“07606bb6”——這個結果被稱為“散列”。
對于計算機可能想要識別、比較或以其他方式對文件和數據串進行計算的情況來說,散列是很方便的。對于計算機來說,首先計算一個散列然后再對它們進行比較,比起對原始文件進行比較要容易得多。
散列算法的一個關鍵特性是確定性。世界上任何一臺了解你所選擇的散列算法的計算機,都可以在本地計算我們的例句的散列,并得到相同的答案。
今天,我們關心的是SHA算法。SHA代表安全散列算法——它的名字給出了它的目的——它是用于密碼安全的算法。
加密散列算法的最重要的因素是,它們產生不可逆轉且唯一的散列結果。散列結果不可逆轉使得當你只有散列結果的時候,你無法用它來找出原始數據,因此使得原始數據保持了安全性和未知性。散列結果唯一使得兩個不同的數據不能產生相同的散列結果——下一節將解釋為什么這如此重要。
注意:為了便于閱讀和理解本文,我們使用的示例數據字符串和散列算法比實際使用的要短得多。到目前為止,你所見的散列并不是任何類型的SHA散列。
現在你已結有了合適的知識背景,我們可以繼續來看這個話題的核心內容了。
正如我之前所說的,SHA代表安全散列算法。SHA-1和SHA-2是該算法的兩個不同版本。它們兩者之間在構造上(散列結果是怎樣被原始數據創建出來的)和簽名的位數上都有不同和簽名的位長。你應該把SHA-2看作是SHA-1的繼承者,因為這是一個整體上的改進。
首先,人們關注的是位數,這被看作是重要的區別。SHA-1是一個160位的散列值。SHA-2實際上是一系列散列的“家族”,其長度各不相同,其中最受歡迎的是256位的。
SHA-2的多樣性可能會導致一些混亂,因為網站和作者們用不同的方式表達它們。如果你看到“SHA-2”、“SHA-256”或者“SHA-256位”,這些名字都指向同一個東西。如果你看到“SHA-224”、“SHA-384”或者“SHA-512”,它們指的是不同位數的SHA-2版本。你可能還會看到一些站點的表述更加明確,將算法和位數都寫出來,比如“SHA-2 384”。
SSL行業選擇了SHA作為數字簽名的散列算法。從2011年到2015年,SHA-1是主要的算法。越來越多的研究表明了SHA-1的弱點,這促使人們重新評價這一算法。從2016年開始,SHA-2成為新的標準。如果你今天收到證書,那么它必須至少使用了這種簽名。
你偶爾會看到使用SHA-2 384位的證書。而你很少會看到24位的版本,它未得到批準用于公開的可信證書,你也很少會看到512位的版本,軟件對它的支持范圍比較狹窄。
如果一個散列算法能夠為每一個可能的輸入產生唯一的散列值,那么會有多少個可能的散列結果呢?
一個比特位有兩個可能的值:0和1。唯一散列值的可能數量可以表示為,可能的值的數量與位數的乘方。對于SHA-256算法,有2256種可能的組合。
所以,2256種組合。這是多少呢?這是一個巨大的數字。請認真對待。它使得像萬億和億億億(一億的三次方)這樣的數字相形見絀。它遠遠超過了世界上沙粒的數量。
可能的散列值的數量越大,兩個散列值產生相同散列結果的可能性就越小。
從技術上講,有無數個可能的輸入,但是輸出的數量是有限的。因此,最終每一個散列算法,包括安全的算法,都會產生沖突。但我們最關心的是這樣的情況發生的可能性有多大。SHA-1算法被認為是不安全的,由于它的體量和結構的原因,產生沖突的結果是可以實現的。
注意,位數很多并不意味著一個散列算法會產生安全的散列結果。該算法的結構也非常重要——這就是為什么SSL行業使用專門為加密安全設計的散列算法的原因。
SSL行業經歷了“向SHA-2算法的過度”。這需要對現有的數以千計的證書進行重新發布,以便新的文件可以通過SHA-2算法創建并進行簽名。這還涉及到公開可信的證書頒發機構所運行的證書頒發軟件(這樣的軟件有好幾十個)的重大更新。
如果你遇到SHA-1證書,那么你等于看到了一個安全等級降低的標志。在谷歌Chrome瀏覽器中,2016年到期的所有SHA-1證書都不會顯示意味著安全連接的綠色掛鎖標志,而是顯示與不安全的HTTP連接相同的圖標。你可以點擊這個圖標來獲得更多信息,來了解為什么會這樣顯示,因為還有其他與簽名無關的原因。
如果你今天在你的瀏覽器中看到一個SHA-1證書,它應該就是下面這個樣子(在谷歌Chrome瀏覽器中)。要看看這個頁面在你的瀏覽器中會怎樣顯示,請訪問站點:https://sha1-2016.badssl.com
瀏覽器在處理SHA-1簽名的2017年失效的證書時,會產生一個更強烈的警告。這是因為簽名的安全性是與它的有效期直接相關的。
Copyright ? Yisu Cloud Ltd. All Rights Reserved. 2018 版權所有
廣州億速云計算有限公司 粵ICP備17096448號-1 粵公網安備 44010402001142號 增值電信業務經營許可證編號:B1-20181529