关于IV生成,加密以及在发送方和接收方之间共享IV有很多问题,但我想明确发布关于将IV从发送方发送到接收方的最佳方式。
从我到目前为止看到的所有帖子中,我不确定以“明文”发送IV是否安全,方法是将其添加到密文中。所以第一个问题是,这样做是否安全?
第二,在通过交换消息进行通信时,是否有更安全的方式在发送方和接收方之间共享IV?
干杯
答案 0 :(得分:12)
是的,明确发送IV是安全的。以下是原因的“证据”:
以CBC模式为例:
您可以看到块的密文与下一个块的明文进行异或。我们需要IV的原因是因为在第一个块上,没有先前使用的密文。如果IV存在安全隐患,那么之后每个块都会存在安全风险,因为密文与IV具有相同的作用。
尽管如此,你需要确保你MAC。根据您执行消息身份验证代码的方式,有人篡改IV可能会在解密时篡改生成的明文。仅加密并不能提供消息的完整性。
此外,对于IV生成,它取决于您的要求。但大多数情况下,你的IV需要是随机的,不可预测的。
答案 1 :(得分:2)
是的,这是安全的。许多协议(如WEP和WPA)将以纯文本形式传输IV。这通常是一项要求,因为在不知道iv的情况下无法解密消息。最常见的WEP攻击涉及捕获数千个IV,但这是因为RC4容易受到Related Key Attack的攻击。如果您使用安全的对称密码,那么您不必担心。
我所知道的与IV相关的已知漏洞是CWE-329,这要求IV是随机的,而this is why这是一个问题。另一个潜在的问题是使用相同的IV加密2条消息。这是一个问题,因为攻击者可能通过加密许多已知消息来识别另一个密文短信,从而在不知道密钥的情况下有效地猜测捕获的密文可能是什么。
答案 2 :(得分:1)
是的,以明文形式做是安全的,但需要注意的是不应重复这些内容。