gpt4 book ai didi

c# - AES 加密中易受攻击的 IV 和盐

转载 作者:行者123 更新时间:2023-11-30 21:53:39 28 4
gpt4 key购买 nike

我正在检查这个 AES 加密/解密项目 http://www.codeproject.com/Articles/769741/Csharp-AES-bits-Encryption-Library-with-Salt

但我读到它在 IV 和加盐方面存在漏洞。这些漏洞是如何发生的?

我知道 AES 不受已知明文攻击的影响,但如果此实现是错误的,是否有一种简单的方法来破解它并获取 key 或明文?

最佳答案

该代码包含多个版本。最后一个带有随机盐的版本(Getting Randomized Encryption Result with Salt)几乎没问题。

如您所见,IV 是从 PBKDF2 生成的,这意味着使用相同的盐和密码时将生成相同的 IV。这是一种不良影响,因为这意味着相同的明文将创建相同的密文。攻击者可能仅通过观察密文就推断出您再次发送了相同的消息。这当然在语义上不安全,这就是为什么需要一些随机性的原因。 解决这个问题的一种方法是使用随机盐。

此代码的另一个问题是1000 次的低迭代次数。如今,应该使用至少 60,000 到几百万次的迭代次数。否则,攻击者很容易尝试许多流行的密码并找到您使用的一个密码。因此,增加迭代次数也会严重限制离线攻击者的吞吐量。

代码的另一个重要问题是没有对密文进行身份验证。根据您的系统架构,攻击者可能会发起填充 oracle 攻击并解密您通过多个在线查询发送的任何密文。防止这种情况的方法是使用经过身份验证的操作模式,如 GCM 或 EAX,或使用 encrypt-then-MAC具有强 MAC 的方案,例如 HMAC-SHA256。

最后一个问题是 PBKDF2 用于从密码派生 key IV。 This is not a good idea.

我找到了 this code似乎没有上面讨论的任何问题。

关于c# - AES 加密中易受攻击的 IV 和盐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33738292/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com