Encryption
我應該驗證從經過驗證的磁碟文件載入的記憶體數據嗎?
只有在文件的 HMAC 驗證成功後,加密欄位才會從磁碟文件載入到程序記憶體。數據仍然在記憶體中加密,稍後將在需要向使用者顯示時按需解密(密碼在程序啟動時初始化)。該系統還允許使用者添加新數據,這些數據將被加密到記憶體中,然後保存到磁碟。使用CBC模式。
除了文件的 HMAC 之外,將 HMAC 添加到每個加密欄位並在解密之前對其進行驗證是否有意義?或者換句話說,我應該驗證從經過驗證的磁碟文件載入的記憶體數據嗎?目標是使應用程序盡可能安全並最大限度地減少篡改的可能性。
$$ D $$oes 將 HMAC 添加到每個加密欄位並在解密之前對其進行驗證是否有意義?
不會。由於您對數據進行了一次身份驗證,因此您可以相信它與最初加密和身份驗證的數據相同。也就是說,驗證密文也驗證明文。
目標是使應用程序盡可能安全並最大限度地減少篡改的可能性。
這聽起來像是一個不錯的目標,但實際上並非如此。一個好的目標是製定特定的安全目標和您想要阻止的攻擊類型。例如,您應該考慮在攻擊者 1) 能夠讀取磁碟映像或 2) 能夠在磁碟上寫入任意數據的情況下,您會期望什麼樣的安全性。