Hash

使用 Web Crypto API (SubtleCrypto) 進行加密

  • June 23, 2020

我想在無狀態環境中端到端加密項目。這些項目有一個標識符(隨機字元串)。現在我想通過添加隨機密鑰來添加加密。URL 可以是https://server.tld/item#key使用者可以相互共享的 URL。

我只想使用 Web Crypto API ( SubtleCrypto) 而沒有任何其他庫。

到目前為止我的想法:

現在我需要一個iv. 我考慮過通過使用項目標識符的雜湊window.crypto.subtle.digest()。但是 AES-CBC 需要16 個字節

使用 SHA-1 的前 16 個字節(20 個字節長)作為 IV 是否是個好主意?

這是不是一個好主意

$$ from a security perspective $$使用 SHA-1 的前 16 個字節(20 個字節長)作為 IV?

這取決於.

對於 CBC,主要要求是 IV 是攻擊者應該是不可預測的。特別是,您永遠不應該多次使用相同的 IV 來加密同一密鑰下的消息。

這意味著,在您的系統中,應該不可能編輯或覆蓋這些項目。如果編輯一個項目是可能的,那麼從項目標識符派生 IV 絕對是一個壞主意

如果你想支持項目的編輯,你應該總是生成一個(偽隨機)IV。(即它不應該是攻擊者可預測的。)

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