什麼是密鑰擴展?如何確保密碼安全?

2023-12-22     51CTO

原標題:什麼是密鑰擴展?如何確保密碼安全?

譯者 | 陳峻

為了訪問自己的數字帳戶,我們通常需要用到密碼或口令。不過,正如現實生活中開鎖的鑰匙可能並不總是牢靠一樣,並非所有的密碼都是安全的。為了加強在線防禦,安全專家開發了一系列技術和方法,來提高密碼的安全性。這些方法包括:散列(Hashing)、加鹽(Salting)、摻雜(Peppering)和密鑰擴展(Key Stretching)等。下面,讓我們來探討一下密鑰擴展的重要性,以及它是如何大幅提高在線安全性的。

什麼是密鑰擴展?

作為一種加密技術,密鑰擴展可被用於增強密碼和口令的安全性,尤其是在原始密碼的隨機性或長度不足以抵禦各種攻擊(如:蠻力攻擊或字典攻擊)的情況下。總體而言,密鑰擴展會通過對密碼或密鑰進行多次散列處理,來實現更強大的安全性。

密鑰擴展也被稱為密鑰強化,通常是將一個相對較弱、較短的密碼或加密密鑰,應用某種加密函數或算法,以生成一個更強且更長的密鑰。新生成的密鑰輸出又作為後續的輸入,如此反覆進行,直到能夠輸出所需的密鑰。從根本上說,此舉的目的在於:使得攻擊者即使獲得了原始密鑰的散列或加密版本,也需要耗費大量的計算成本和時間,才可能恢復原始密鑰。

目前,密鑰擴展在在線帳戶、金融交易、以及數據保護等具有高安全性要求的應用中,發揮著至關重要的作用。它是確保已存密碼和加密密鑰安全性的重要組成部分,並最終可以保障用戶帳號與數據可信。

密鑰擴展是如何工作的?

為了理解密鑰擴展是如何將弱密碼轉換成強大安全的密碼,讓我們來看一個簡單的例子:想像一下,您有一個類似"iloveyou"這樣再普通不過的密碼。那麼對於攻擊者來說,該密碼可能都稱不上什麼秘密。他們很容易通過暴力破解單詞表和字典的方式,打開這扇「大門」。而事實上,攻擊者的確只需 30 秒,就能破解並訪問該帳戶。

而密鑰擴展會對這個易受攻擊的密碼進行散列處理,以創建更長、更複雜的密碼。例如:"iloveyou"會變成"e4ad93ca07acb8d908a3aa41e920ea4f4ef4f26e7f86cf8291c5db289780a5ae"。不過,整個擴展過程並未就此結束。

接著,這個新密碼通過再次散列,就變成了:"bc82943e9f3e2b6a195bebdd7f78e5f3ff9182ca3f35b5d415cf796ab0ce6e56"。

而將其繼續做一次散列,就會得到:"46e95d6374c00c84e4970cfe1e0a2982b2b11b1de9343a30f42675a2154a28f5"。以此類推,您可以根據需求執行多次此類操作。

那麼,我們是否需要自己從頭開始寫代碼,以實現整個過程呢?顯然不需要。目前,業界已有一些用於密鑰擴展的代碼庫,可以為您完成此類繁重的工作。其中,較為典型和流行的密鑰擴展算法有:PBKDF2、scrypt、Argon2和bcrypt。其中當屬bcrypt和PBKDF2最廣為人知。

具體而言,bcrypt採用blowfish密碼進行多輪散列,使之成為保護密碼安全的可靠選擇。而PBKDF2(Password-Based Key Derivation Function,基於密碼的密鑰推導函數2)是另一種增強密鑰或密碼安全性的可靠選擇。這些工具都可以確保即使是最微弱的密碼,也能夠得到極大限度的屏蔽,以防止未經授權的訪問。

密鑰擴展與加鹽

密鑰擴展和加鹽都是密碼安全領域的重要技術,它們在增強密碼強度等方面,各自發揮著獨特的作用。

如上所述,密鑰擴展主要是對密碼進行多輪散列處理,從而有效地將弱密碼轉化為更安全的版本。因此,執行的次數越多,密碼就越安全。而密碼加鹽則提供了額外的一層防禦。它需要在應用散列過程之前,在密碼中添加一串不同的字符,即,通過增加複雜性,來提高密碼的強度。

在實際中,這兩種技術可以被協同使用,以增強密碼的整體強度。不過,需要注意的是,加鹽並非事後補救之法,而應當從一開始便融入其中,從而在弱密碼進行散列處理之前,就對其進行增強。從本質上講,密鑰擴展和加鹽就像一個協作團隊,共同為您的敏感信息提供額外的保護。

密鑰擴展的重要性

密鑰擴展通常被用於基於密碼的加密和身份驗證系統。它有助於降低弱口令或易猜密碼的風險性,使得攻擊者即使獲得了原始口令的散列或加密版本,也很難恢復其經歷了高昂計算代價的原始信息。在諸如:保護已存密碼和加密密鑰等各種實際應用場景中,我們時常可以用到它。下面,我為您總結了密鑰擴展的4項典型安全功能:

使用密碼強化技術確保資產安全

雖然密碼是安全的第一道防線,但是如果過於簡單,被破解就只是時間問題了。如今,攻擊者正變得越來越狡猾,破解水平也在持續增強。因此,若想在這場「貓鼠遊戲」中保持領先,密鑰的處理機制就需要「多走一步」。例如採取上文提到的密鑰擴展、加鹽和摻雜等先進技術,就能夠很好地協助用戶將弱密碼轉化為可以抵禦潛在威脅的堅固之盾。

譯者介紹

陳峻(Julian Chen),51CTO社區編輯,具有十多年的IT項目實施經驗,善於對內外部資源與風險實施管控,專注傳播網絡與信息安全知識與經驗。

原文標題:What Is Key Stretching? Here's How Your Passwords Can Be Kept Secure,作者:CHIOMA IBEAKANMA

文章來源: https://twgreatdaily.com/zh-cn/a669765554ed81397753ecc7d39442a1.html