[英]Vulnerable IV and salt in AES encryption
我正在檢查此AES加密/解密項目http://www.codeproject.com/Articles/769741/Csharp-AES-bits-Encryption-Library-with-Salt
但我讀到它具有IV和鹽析的漏洞。 這些漏洞如何發生?
我知道AES不受已知的明文攻擊的影響,但是如果此實現錯誤,是否有簡單的方法可以將其破解並獲取密鑰或明文?
該代碼包含多個版本。 帶有隨機鹽的最新版本( 使用Salt獲取隨機加密結果 )幾乎可以。
如您所見,IV是從PBKDF2生成的,這意味着使用相同的salt和密碼將產生相同的IV 。 這是不希望有的效果,因為這意味着相同的明文將創建相同的密文。 攻擊者可能僅通過觀察密文來推斷出您再次發送了相同的消息。 當然這在語義上是不安全的,這就是為什么需要一定的隨機性的原因。 解決該問題的一種方法是使用隨機鹽。
該代碼的另一個問題是迭代計數低至1000 。 如今,應該使用至少60,000到數百萬的迭代次數。 否則,攻擊者很容易嘗試使用許多常用密碼並找到您使用的一個密碼。 因此,增加迭代次數也會嚴重限制離線攻擊者的吞吐量。
該代碼的另一個重要問題是沒有對密文進行身份驗證 。 根據您的系統體系結構,攻擊者可能會發起填充oracle攻擊並解密您通過多個在線查詢發送的任何密文。 防止這種情況發生的方法是使用經過身份驗證的操作模式(例如GCM或EAX),或者采用帶有強MAC的先加密后MAC方案,例如HMAC-SHA256。
最后一個問題是,PBKDF2用於從密碼中派生密鑰和 IV。 這不是一個好主意。
我發現此代碼似乎沒有上面討論的任何問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.