我理解IV的目的。特别是在CBC模式下,这确保了使用相同密钥加密的2个消息中的第一个块将永远不会相同。但是,如果IV是连续的,为什么它是一个漏洞呢?根据{{3}} NON-Random IV允许字典攻击的可能性。我知道在实践中像WEP这样的协议不会隐藏IV。如果攻击者拥有IV和密文短信,那么这就打开了对密钥进行字典攻击的大门。我不知道随机iv如何改变这一点。 (我知道对wep的攻击比这更复杂。)
随机静脉注射有哪些安全优势?这仍然是“理想分组密码”的问题吗? (一种完全安全的分组密码,没有可能的弱点。)
答案 0 :(得分:94)
可以通过选择的纯文本来利用可预测的IV。
假装Eve是一家保险公司的DBA。该公司收集受益人的病史,其中包括许多关于医疗状况的真/假复选框。该公司也适用于自己的健康保险提供商。如果她发现爱丽丝有一个特别令人尴尬的医疗条件,夏娃意识到爱丽丝可能会受到勒索。但是,每个字段中的值都是加密的,因此即使Eve是DBA,她也只能访问密文。
在CBC中,IV用纯文本进行异或(用下面的“⊕”表示),然后运行分组密码:C 1 = E k ( IV⊕P 1 )。
由于Eve是保险公司的受益人,她可以选择纯文本作为自己的医疗记录,因为她是DBA,所以她可以检查任何人的密文。除了使用可预测的IV之外,草率的应用程序开发人员在验证应用程序输入方面做得很差。如果Eve可以提前预测将应用于她的IV(IV eve )和Alice的(IV alice )记录,她可以为自己的记录选择纯文本像这样:P eve = IV eve ⊕IV alice ⊕“false”
应用程序加密此纯文本,如下所示:
C eve = E k (IV eve ⊕P eve )= E k < / sub>(IV eve ⊕(IV eve ⊕IV alice ⊕“false”))
IV eve ⊕IV eve 取消,这意味着C eve = E k (IV alice ⊕“false”)
现在夏娃可以比较C eve 和C alice 。如果他们不同,她知道爱丽丝必须为这种健康状况输入“真实”。
使IV无法预测会阻止这种攻击,并且让它们变得不可预测的一种简单方法是在提供纯文本后随机选择它们。
答案 1 :(得分:7)
我想通过使用易受攻击的WEP解释您的问题,现在使用其他协议,如WPA2。
简单规则IEEE表示:
基本规则永远不会使用键+ IV两次,
WEP受到损害的原因之一是由于IV生成的原因。
如图所示,当WEP首次出现时,如果攻击者知道IV是如何产生的,那么IV的长度是24位(后来增加了48位),在这种情况下,IV对于攻击者来说足够小利用这些信息。
如果有人知道IV的产生或它重叠(因为IV是24位,这意味着2 ^ 24个IV)在传输数据包时,嗅探流量的攻击者可以: 如果IV是连续的,则意味着IVs有可能在一段时间内重叠。
让我们假设,
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重叠。
答案 2 :(得分:7)
其他答案都很好,虽然技术性很强。
为什么使用带有CBC模式的非随机IV是一个漏洞?
使用密钥加密数据时,如果数据和密钥相同(未更改),则加密数据将相同。如果加密数据相同,则可以分析加密数据集的模式,然后可以使用这些模式获取有关加密数据的知识。
CBC(Cipher Block Chaining)通过XORing来自前一个bock的加密数据和要加密的数据来解决此问题。这意味着如果来自前一个块的加密数据不同,即使密钥相同,具有相同数据的块也会不同。
CBC的问题是如何处理第一个块,因为没有先前的块来从中获取加密数据。相反,数据与一个称为IV(初始化向量)的随机位块进行异或。
您可以将IV的安全性视为与加密数据块的安全性相同。换句话说,如果他们可以获得加密数据,那么他们也可以获得IV。