Encryption
為什麼使用經過身份驗證的 AES 模式更好地進行就地數據保護?
我總是看到人們警告不要使用未經身份驗證的操作模式,例如 CBC for AES 。為什麼呢 ?我的意思是,如果您使用帶有隨機 IV 的 AES-CBC,您很可能會保護您的數據。因此,對於您的文件,您需要什麼 MAC/身份驗證模式(如 GCM)。如果您不能確保您的數據在您自己的硬碟上被篡改,那麼您無論如何都會被搞砸。
編輯 :
這個問題是關於就地加密的。我了解像 GCM 這樣的經過身份驗證的流密碼在發送數據的上下文中的相關性。
對於 CBC 模式,問題歸結為您無法檢測到中間人是否修改了消息。數據仍然是機密的,中間的人沒有密鑰無法讀取它,但他們可以修改它,它仍然會在接收者處被解密。
理想情況下,您希望確保數據完整性。特別是對於 CBC 模式,您可以執行 CBC 字節翻轉攻擊。讓我們假設一條消息是加密的,並且您知道一個塊。由於 CBC 連結的工作原理,您可以將該塊轉換為您想要的任何塊。下一個塊的明文與前一個塊的密文異或。因此,通過更改先前的塊密文,您可以更改明文解密到的塊。因此,作為讓一個塊解密為亂碼的交換,攻擊者可以控制下一個塊解密的內容。這是不可取的。因此使用了認證模式,例如 CCM 和 GCM。
在客戶端和伺服器之間通過 Internet 發送數據(例如在 TLS 中)時 GCM 模式的範例案例。您不希望 CBC 字節翻轉成為可能。您要確保您解密的數據實際上是另一端發送給您的數據。
同樣對於您關於加密硬碟的觀點,能夠擁有任何數據篡改的證據是一個理想的屬性。CBC 字節翻轉攻擊只能通過文件損壞來證明,當通過其各自的程序查看時。被篡改的文件可能會被渲染為有效。