程式碼安全測試第四期:可逆的單向雜湊漏洞

zktq2021發表於2021-05-21

可逆的單向雜湊漏洞是一種 程式缺陷,顧名思義,是由於單向雜湊在某些情況下可逆導致的。想要了解可逆的單向雜湊漏洞,首先我們需要學習一下什麼是單向雜湊。

1、 單向雜湊是什麼?

雜湊(Hash),是把任意長度的輸入,透過雜湊演算法變換成固定長度的輸出,該輸出就是雜湊值。這種轉換是一種壓縮對映,也就是,雜湊值的空間通常遠小於輸入的空間,不同的輸入可能會雜湊成相同的輸出,所以理論上來說,從雜湊值無法確定唯一的輸入值,因此雜湊是具備單向性的。

但隨著計算機算力的進步,一些單向雜湊已經無法保證其單向性。無法保證單向性的雜湊,被稱為可逆單向雜湊。當可逆單向雜湊被用於需要具備單向屬性的安全演算法時,可造成嚴重危害。例如,一個身份驗證系統將傳入的密碼生成雜湊值,並存入資料庫。攻擊者可透過比較該雜湊值和已儲存在資料庫中另外的雜湊值,去碰撞得出一個可生成同樣雜湊值的密碼,從而透過身份驗證。

2、常見單向雜湊函式(Hash函式)有哪些?

MD5(Message Digest Algorithm5):是RSA資料安全公司開發的一種單向雜湊演算法,MD5被廣泛使用,可以用來把不同長度的資料塊進行暗碼運算成一個128位的數值。1996年後該演算法被證實存在弱點,可以被加以破解,對於需要高度安全性的資料,專家一般建議改用其他演算法,如SHA-2。2004年,證實MD5演算法無法防止碰撞(collision),因此不適用於安全性認證,如SSL公開金鑰認證或是數字簽名等用途。

SHA(Secure Hash Algorithm):這是一種較新的雜湊演算法,可以對任意長度的資料運算生成一個160位的數值。SHA家族的五個演算法,分別是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,由美國國家安全域性(NSA)所設計,並由美國國家標準與技術研究院(NIST)釋出;是美國的政府標準。後四者有時並稱為SHA-2。但SHA-1的安全性如今被密碼學家嚴重質疑;雖然至今尚未出現對SHA-2有效的攻擊,它的演算法跟SHA-1基本上仍然相似;因此有些人開始發展其他替代的雜湊演算法。

MAC(Message AuthenticationCode):訊息認證程式碼,是一種使用金鑰的單向函式,可以用它們在系統上或使用者之間認證檔案或訊息。HMAC(用於訊息認證的金鑰雜湊法)就是這種函式的一個例子。

CRC(Cyclic Redundancy Check):迴圈冗餘校驗碼,CRC校驗由於實現簡單,檢錯能力強,被廣泛使用在各種資料校驗應用中。佔用系統資源少,用軟硬體均能實現,是進行資料傳輸差錯檢測地一種很好的手段(CRC 並不是嚴格意義上的雜湊演算法,但它的作用與雜湊演算法大致相同,所以歸於此類)。

3、可逆的單向雜湊漏洞會造成哪些後果?

關鍵詞:繞過身份驗

因對資料的加密演算法不再安全,攻擊者透過提供與備用密碼相同的目標雜湊值,繞過身份驗證,從而進行惡意行為。

4、如何修補可逆的單向雜湊漏洞?

及時更新加密演算法,使用安全性高的加密演算法取代不再被認為是安全的加密演算法。

5、可逆的單向雜湊漏洞樣例:

6、課後小問題:

可逆單向雜湊漏洞的構成條件是什麼?

( 答案:當使用不再被認為是安全的加密演算法對資料進行加密,就構成了一個該型別的安全漏洞。)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2773240/,如需轉載,請註明出處,否則將追究法律責任。

相關文章