Gcm

當擁有除附加數據之外的所有內容時,是否可以恢復 AES-GCM 明文?

  • March 12, 2018

window.crypto在瀏覽器中使用該庫。

我使用ivfrom window.crypto.getRandomValueskeyfromwindow.crypto.subtle.generateKeyadditionalDatafrom 使用者輸入的密碼。

加密後,我將iv, key, 和encrypted_content儲存在本地儲存中。

如果有人得到了這三樣東西,他們有沒有可能破解它additionalData

AES-GCM 在內部直接使用給定的密鑰用於 AES-CTR 模式,而不執行任何派生。該模式的初始計數器僅依賴於 IV/nonce;給定 12 字節 IV 的推薦預設值,IV/nonce 也直接使用。因此,當攻擊者獲得密鑰時,絕對沒有什麼可以阻止攻擊者解密消息。計算正確的認證標籤需要額外的數據,但它根本不影響解密。因此,在附加數據中設置密碼並不能確保消息的機密性。

身份驗證標籤也依賴於相同的密鑰來保證安全。儘管攻擊者可能無法驗證身份驗證標籤的正確性,但可以將數據附加到未檢測到的消息中(解密最後的 GHASH 結果,然後繼續 GHASH 計算,最後再次加密結果 - 基本上是執行長度擴展攻擊)。生成的明文可能與預期結果不匹配,但它是否會產生錯誤以及該錯誤是否表明被篡改取決於協議。因此,出於這些原因,將密碼放入附加數據中並不能提供消息的完整性或真實性。

對於任何對稱密碼,失去密鑰都是致命的。最好使用基於密碼的密鑰派生函式(又名密碼雜湊),例如 Argon2 - 正如cipherfox正確辨識的那樣。將結果值用作鍵,將結果的另一部分用作 IV。即便如此,密碼的強度對於密碼散列提供的安全性也是至關重要的。

引用自:https://crypto.stackexchange.com/questions/56381