代码之家  ›  专栏  ›  技术社区  ›  rook

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

  •  40
  • rook  · 技术社区  · 14 年前

    我理解IV的目的。特别是在CBC模式下,这可以确保使用相同密钥加密的两条消息的第一个块永远不会相同。但是如果静脉注射是连续的,为什么它是一个漏洞呢?根据 CWE-329

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

    3 回复  |  直到 14 年前
        1
  •  106
  •   erickson    14 年前

    可预测的IVs可以被选择的纯文本所利用。

    1 =E (四) ).

    因为伊芙是保险公司的受益人,她可以为自己的病历选择纯文本,因为她是DBA,她可以检查任何人的密码文本。除了使用可预测的IVs之外,草率的应用程序开发人员在验证应用程序输入方面做得很差。如果伊芙能预测将应用于她的静脉注射(IV 爱丽丝 )预先录制时,她可以为自己的录制选择纯文本,如下所示:P 前夕 前夕 爱丽丝

    C 前夕 =E (四) 前夕 P )=E k 前夕 (四) 前夕 爱丽丝

    第四部分 前夕 取消,这意味着 前夕 =E k 爱丽丝 “假”)

    现在伊芙可以比较C 前夕 和C 爱丽丝

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

        2
  •  7
  •   Community dbr    7 年前

    我想用WEP解释你的问题,WEP是易受攻击的,现在使用了WPA2等其他协议。

    基本原则是永远不要用一把钥匙+IV两次,永远不要

    WEP受损的原因之一是由于IV产生的原因。

    alt text

    如果有人知道在数据包传输过程中IV的生成或重叠(因为IV是24位,意味着2^24个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,会重叠。

        3
  •  7
  •   Trisped    11 年前

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

    CBC(密码块链)通过 XORing

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

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