45

我了解 IV 的目的。特别是在 CBC 模式下,这可确保使用相同密钥加密的 2 条消息中的第一个块永远不会相同。但是,如果 IV 是连续的,为什么它是一个漏洞呢?根据CWE-329 NON-Random IV 允许字典攻击的可能性。我知道在实践中,像 WEP 这样的协议不会努力隐藏 IV。如果攻击者拥有 IV 和密文消息,那么这就为针对密钥的字典攻击打开了大门。我看不出随机 iv 如何改变这一点。(我知道针对 wep 的攻击比这更复杂。)

随机静脉注射有什么安全优势?这仍然是“理想分组密码”的问题吗?(一种完全安全的分组密码,没有任何可能的弱点。)

4

3 回答 3

111

可预测的 IV 可以通过选择的纯文本来利用。

假设 Eve 是一家保险公司的 DBA。该公司从受益人那里收集病史,其中包括许多关于医疗状况的真/假复选框。这家公司也发生在自己的健康保险提供商身上。夏娃意识到,如果爱丽丝发现爱丽丝患有特别令人尴尬的医疗状况,她可能会被勒索。但是,每个字段中的值都是加密的,因此即使 Eve 是 DBA,她也只能访问密文。

在 CBC 中,IV 与纯文本进行异或运算(下面用“⊕”表示),然后遍历分组密码:C 1 = E k (IV ⊕ P 1 )。

由于 Eve 是保险公司的受益人,她可以为自己的病历选择明文,并且由于她是 DBA,她可以检查任何人的密文。除了使用可预测的 IV 之外,草率的应用程序开发人员在验证应用程序输入方面做得很差。如果 Eve 可以提前预测将应用于她 (IV eve ) 和 Alice 的 (IV alice ) 记录的 IV,她可以为自己的记录选择纯文本,如下所示:P eve = IV eve ⊕ IV alice ⊕ "false "

应用程序像这样加密这个纯文本:

C eve = E k (IV eve ⊕ P eve ) = E k (IV eve ⊕ (IV eve ⊕ IV alice ⊕ "false"))

IV eve ⊕ IV eve抵消,这意味着 C eve = E k (IV alice ⊕ "false")

现在 Eve 可以比较 C eve和 C alice。如果它们不同,则她知道 Alice 必须为该医疗状况输入“真实”。

使 IV 不可预测可以阻止这种攻击,使它们不可预测的一种简单方法是在提供纯文本后随机选择它们。

于 2010-06-09T18:06:35.580 回答
7

我想通过使用易受攻击的 WEP 来解释您的问题,现在使用其他协议,例如 WPA2。

简单的规则 IEEE 说:

基本规则是永远不要使用 key+IV 两次

WEP 遭到破坏的原因之一是由于 IV 生成的原因。

替代文字

如图所示,当 WEP 首次出现时,如果攻击者知道 IV 是如何生成的,或者在这种情况下 IV 足够小,攻击者可以利用消息。

如果有人知道 IV 的生成或它在传输数据包期间重叠(因为 IV 是 24 位,这意味着 2^24 IV),那么嗅探流量的攻击者可以:如果 IV 是连续的,则意味着仍然存在IV可能会在一段时间内重叠。

让我们假设,

passphrase key Kp

initialization vector Ivi

plaintext data D1, D2 (for separateblocks)

Traffic Key:Kti=Kp||Ivi

Ciphertext: E(Kti,Di)=RC4(Kti) xor Di

并假设

IV1=IV2  (created sequentially and from 0 to 2^24 again returns back)

攻击者有,

(RC4(Kt1) xor D1) Xor  (RC4(Kt1) xor D2) = D1 XOR D2

这可以通过使用网络跟踪使用 Aircrack-NG 来解决。我展示的想法是可以做出一个更复杂的基本假设,再次永远不要使用将重叠的相同 IV。

于 2010-06-09T17:48:46.670 回答
7

其他答案很好,尽管技术含量很高。

为什么在 CBC 模式下使用非随机 IV 是一个漏洞?

当您使用密钥加密数据时,如果数据和密钥相同(未更改),则加密数据将相同。如果加密数据相同,则可以分析加密数据集的模式,然后使用这些模式获取有关加密数据的知识。

CBC(密码块链接)通过将前一个块中的加密数据与要加密的数据进行异或来解决此问题。这意味着如果来自前一个块的加密数据不同,即使密钥相同,具有相同数据的块也会不同。

CBC 的问题在于如何处理第一个块,因为没有前一个块可以从中获取加密数据。相反,数据与称为 IV(初始化向量)的随机位块进行异或。

您可以认为 IV 的安全性与加密数据块的安全性相同。换句话说,如果他们可以得到加密数据,那么他们也可以得到 IV。

于 2013-02-28T22:46:01.797 回答