Hash
公鑰 + 散列會產生安全漏洞嗎?
標題確實說明了一切……假設我有一個數據包,我的一個應用程序需要使用公鑰(例如,RSA,私鑰保存在其他地方)加密儲存該數據包。假設應用程序還需要一種方法來確定是否已經儲存了所述數據包,因此我將它與隨機生成的鹽結合起來並保存數據包+鹽的雜湊值,以便以後檢查它(例如 MD5)。儲存這三個數據的組合……即加密數據包、鹽和雜湊……會導致數據的安全性明顯低於單獨的加密數據包嗎?
我意識到“安全性顯著降低”是一個任意指標。我不追求任何軍事等級(因為想要一個更好的荒謬術語),我只是想確保我沒有做任何明顯愚蠢的事情。
散列不會以任何方式損害安全性。假設您正在計算散列(密文+鹽),散列沒有提供可以訪問您的密文的攻擊者沒有的新資訊。
像 SHA-3 這樣的安全雜湊是一種單向函式,即使在加鹽的明文上也是安全的,並且此類的輸出儲存在經過身份驗證的加密中。實際上,您可以通過使用 HMAC 而不僅僅是散列並結合身份驗證機制來增強您的系統。
至於整個系統是否安全,這取決於您儲存的內容。
檢查數據包是否已被儲存很可能會為側通道攻擊創建一個預言。如果攻擊者可以發送數據包進行加密,並且您的響應或其時間對於重複項有任何不同,他們可以驗證某個感興趣的文件或某個密碼是否儲存在您的系統中。
是否有效取決於明文的搜尋空間。如果它很小,例如密碼或人們不想被人知道擁有的文件,那就是一個漏洞。重複數據刪除通常與安全性不一致,創建安全的重複數據刪除是目前的挑戰。
注意我只討論了安全性,而不是上面的實用程序。請記住,您只能比較具有相同鹽的雜湊,因此該方案可能對重複數據刪除效果有限。