对IV一直使用全零的安全威胁是什么?如果它允许解密加密文本,攻击者怎么能这样做呢?
更新:那么,如果第一块未加密的数据有一个永不重复的时间戳,是否还需要IV?
答案 0 :(得分:10)
一旦攻击者有一条明文消息和匹配的密文(也许她在其他地方拦截了它,比如目的地),她就能知道何时发送具有相同起始序列的任何其他消息。由于她可以了解加密邮件的内容,因此这是不安全的。
它还允许攻击者执行频率分析。例如,假设您的纯文本消息是指向股票市场平台后端的命令,因此它们都以"COMMAND=BUY"
或"COMMAND=SELL"
开头。这意味着加密的消息仅以两个不同的密文序列开始。攻击者无法直接解密他们 - 但如果她能够通过观察市场数据后来观察您下达了多少卖出订单,那么她将能够返回并找出哪个是哪个,从现在起她就是'我会确切地知道你放置它们的订单。
频率分析是简单的替换密码是如何被破坏的,这并非巧合 - 使用固定的IV意味着消息的初始部分实际上只是使用替换,一次一个块。
答案 1 :(得分:5)
CBC的要点是随机化输入块,因为给定的输入块总是使用给定的密钥加密(AES是确定性的)。输入块通过与前一个输出块进行异或来随机化。第一个块没有先前的块,它通过与IV进行异或来随机化。
因此,使用非随机IV意味着您不随机化第一个块。 如果你从不使用相同的密钥两次,即你在加密新邮件时使用新密钥,那么然后全零IV不是问题。只有当存在两个使用相同密钥加密的非随机化输入块时,非随机化输入块的问题才是相关的。如果您对单个消息使用给定密钥,那么只有该消息的单个第一个块将是非随机的,因此没有问题。但这是一个很大的“如果”。特别是,如果您可以为每条消息生成一个新密钥,那么您可能还可以为每条消息生成一个新的IV。需要一个非常具体的方案来证明使用CBC的全零IV。
答案 2 :(得分:3)
不容易,但它确实暴露了有关消息的信息,这是加密试图避免的事情。
假设您使用相同的密钥和零IV。嗅探流量的人可以注意到消息以相同的密文开头。这给了他们一些信息。通过随机化IV,这种信息泄漏消失了。通过更多地了解明文数据的结构,可以启动更强大的攻击。此外,如果您以这种方式发送许多消息,攻击者可以慢慢地了解有关正在使用的密钥的更多信息,因为方差减少(只有明文不同,而不是明文和IV
答案 3 :(得分:1)
如果IV始终为零,则所有在开始时具有公共文本的消息(例如,具有相同的前两个或三个密码块的电子邮件用于'From'或'From:'信息)将被加密相同。这使攻击者可以利用您的密钥。这是无条件的坏事。只要您使用合理随机的IV,攻击者就会失去该杠杆。不要冒风险。