Encryption
像 RFC 3394 這樣的密鑰包裝如何保護我的加密密鑰?
所以我在使用 RFC 3394 AES Key Wrap 引擎的 BouncyCastle 庫中亂搞,我試圖了解它的好處。
我遇到的問題是如何將密鑰安全地儲存在手機甚至筆記型電腦或台式機等設備上。我需要包裝鑰匙,這樣任何在記憶體中窺探的人都不能只拿到這些鑰匙。RFC 3394看起來好像是為了解決這個問題而設計的。
我只能做
$$ \bar k = \operatorname{wrap}_{k^*, IV}(k) $$
並儲存 $ \bar k $ 代替 $ k $ , 並使用
$$ k = \operatorname{unwrap}_{k^*, IV}(\bar k) $$
檢索 $ k $ 當我需要的時候再一次。
我已經用 C# 編寫了這段程式碼來測試它。這似乎工作正常,除了我試圖了解這是如何更安全的事實。在某些時候我必須儲存密鑰加密密鑰 $ k^* $ 在我的記憶中,在我看來,任何可以得到他們手的黑客 $ k^* $ 現在已經掌握了加密密鑰。
那麼這如何保護記憶體中的加密密鑰呢?
是的,你是對的; 密鑰包裝算法假設您有一個長期安全密鑰,您可以使用它來保護其他密鑰。RFC 3394 的作者假定您確實有一個安全密鑰加密密鑰 (KEK)。
在您的情況下,這似乎不是一個有效的假設。在您的情況下,即使有人可以佔用您的整個記憶體空間,您也需要進行加密操作;這聽起來像你需要白盒密碼學。