Encryption
ECB模式下的AES弱點
在我目前正在進行的一個項目中,我們正在使用 AES 和 ECB 模式在數據庫中加密一些數據。每條被加密的數據都非常小,不超過 10 個字元。
非常重要的是,該數據庫的每個條目都使用不同且唯一的密鑰進行加密。如果我們在這種特定情況下切換到具有 CBC 模式的 AES,我們會獲得任何安全性嗎?
另外,現在想像一下,我們在 ECB 模式下使用 AES 來加密數據庫中的數據,但我們現在使用相同的密鑰來加密每一個條目。如果攻擊者闖入我們的數據庫並竊取我們的數據,他需要多少條目才能利用 ECB 的弱點並能夠解密資訊?
對於最後一種情況,我想我想知道的是,如果攻擊者只有大約 10 條加密消息,他是否可以解密一些 AES ECB 加密數據。
謝謝!
僅根據您所說的,並假設密鑰是以強方式創建和儲存的,使用不同的密鑰來加密數據庫條目可以緩解 ECB 模式的問題。即相同的明文,當用相同的密鑰加密時,總是輸出相同的密文。切換到 CBC 模式不會獲得任何安全性(假設您可以輕鬆安全地儲存所有密鑰,但請查看 @Thomas Pornin 對此有何評論)。切換到 CBC 模式的實際好處是您只需安全地儲存一個密鑰。IV 通常不需要保護。
在 ECB 模式下的所有條目使用完全相同的密鑰的第二種情況下,攻擊者獲得的優勢是,如果他知道明文/密文對,他現在就知道明文出現在整個數據庫中的任何地方。
例如,假設攻擊者自己的資訊恰好在數據庫中。他可以查找他的性別的加密版本。他現在知道數據庫中其他所有人的性別(如果密文與他的相同,他知道該條目是男性,否則是女性)。同樣的想法可以擴展到其他領域(年齡、名字、姓氏等)。這一優勢的關鍵在於攻擊者必須擁有明文/密文對。