密鑰包裝提供了多少額外的安全性?
維基百科說:
密鑰包裝。密鑰包裝結構是一類對稱加密算法,旨在封裝(加密)加密密鑰材料。Key Wrap 算法適用於諸如在不受信任的儲存中保護密鑰或通過不受信任的通信網路傳輸密鑰等應用。
現在密鑰包裝需要另一個密鑰來包裝。這不就像一個雞蛋問題。我們現在需要保護另一個密鑰。
如果有人需要通過網路傳輸密鑰,他/她不會使用 SSL/TLS 而不是包裝密鑰嗎?
對於儲存密鑰,不會有人使用受密碼保護的密鑰庫嗎?
這完全取決於使用的密鑰包裝。密鑰包裝只不過是用另一個密鑰加密一個密鑰。儘管密鑰包裝方案確實存在(並且通常被認為相當安全),但其他密鑰方案可能會使用對稱和非對稱的常用加密方法。最後,加密的強度取決於使用的方法。
我已經看到使用 AES-CBC 對 AES 密鑰進行加密,這對於 AES-128 和 AES-256 密鑰來說非常好。以這種方式包裝 AES-192 密鑰可能已經使其容易受到填充 oracle 攻擊。使用 CBC 和零字節的 IV(許多 HSM 使用)加密結構化 RSA 密鑰甚至可能會被動地將資訊洩露給對手。
加密本身已經是一個雞蛋問題。您已經獲得了想要保密的數據。現在您可以對其進行加密,但您現在需要保護密鑰。
那麼為什麼加密或包裝有用呢?好吧,並非所有鍵都具有相同的屬性。一些密鑰(例如非對稱系統的公鑰)可以使用公鑰基礎設施分發,但它們可以完美地用於包裝 AES 密鑰以執行密鑰建立。其他密鑰是提前分發的,利用可以建立密鑰的時間。還有一些利用 HSM 或智能卡中的硬體保護。所以密鑰包裝是執行密鑰管理的重要工具。請注意,一個包裝密鑰可用於包裝許多其他密鑰。
至於您的範例:是的,可以通過 TLS 傳輸密鑰。但是,TLS 是點對點傳輸安全性。剝離 TLS 後,您將擁有密鑰。包裝密鑰並提供端到端安全性要安全得多。運氣好的話,密鑰可能會直接在 HSM 中解包,甚至不會出現在記憶體中。請注意,早期形式的 TLS,即 TLS_RSA 密碼套件,實際上執行了一種密鑰包裝形式,以建立主密鑰以從中派生會話密鑰。
可以使用受密碼保護的儲存。通常,儲存的這些密鑰中的密鑰也可以單獨保護。例如,PKCS#8 可以被視為一種高級形式的密鑰包裝。
然而,這樣的密鑰庫並不總是有用的。例如,您可能希望將密鑰包裝在 HSM 中以將其與另一個 HSM 同步。在這種情況下,您將需要兩個設備中的包裝密鑰。通常,HSM 不能簡單地為此創建受密碼保護的密鑰庫。
同樣,如果記憶體有限,設備可以解除安裝包裝的密鑰。這是 PC 中 TPM 模組中的一種常見方法:不是使用高端智能卡晶片,而是使用 TPM 特定密鑰包裝密鑰並儲存在系統驅動器上。當需要它們時,只需將它們放回原處並使用。這樣,密鑰在靜止和使用時都可以得到保護,即使它們沒有儲存在硬體設備中。
用另一個具有相同訪問級別的對稱密鑰包裝/解包單個對稱密鑰可能沒有太大意義。但是對於密鑰管理來說,密鑰包裝是一個非常重要(如果不是必不可少的話)的工具。