处理iv(初始化向量)的传输

5
我有一个网站A和网站B,网站A需要将敏感的加密数据发送给网站B以供网站B解密。我知道最好使用随机加密初始化向量(iv)对每个秘密字符串进行加密,并使之保持唯一性,但是我的问题是:
在使用https进行传输时,将iv与密码文本一起发送是否安全?有哪些最佳实践可用于传输iv?
我的理解是iv是密文开头的一部分,因此我倾向于认为在明文中有iv并没有真正的安全威胁。
谢谢!

所以你想要确保发送它是可以的?为什么你觉得这样做不好?你读了什么让你对它的安全性产生怀疑? - Artjom B.
2
我投票关闭此问题,因为它不是关于编程的,而是关于[crypto.se]。 - Artjom B.
1
这个问题已经在这里详细讨论了:http://crypto.stackexchange.com/q/31760/13022。请确保遵循重复链接。 - Artjom B.
@ArtjomB。我刚刚看到了完全相同的问题。是的,那是一个更完整的答案(也是正确的问题网站)。 - Rob Napier
直到现在我从来不知道那个网站。谢谢! - yekta
按照惯例,IV会被添加到加密数据的前面,它本身并不是一个秘密。 - zaph
1个回答

9

随机初始化向量并不是一个秘密。它和密文本身一样敏感度很低。您可以把它与密文一起传输而无需担心。

在一个正确设计的加密系统中,唯一的秘密是密钥(显然还有明文)。其他所有内容(如IV、盐值、算法、填充等等)都被攻击者视为已知。


那不正确。对于某些加密模式而言,明文比密文更为敏感。以纯文本形式发送数据会打开某些攻击突破口。例如,如果攻击者获得了单个已编码的消息及其明文,则可以使用未加密的初始化向量来伪造加密的消息,而不需要知道密钥。参见https://dev59.com/Wbfna4cB1Zd3GeqPyL-D?rq=1 - Gera
@Gera,您正在描述身份验证,这是一个单独的问题。解决方案不是尝试隐藏IV(这是无望的,因为您仍然需要一种交换IV的方式,这只会递归您的问题)。解决方案是使用经过身份验证的模式(GCM)或格式(CBC + HMAC)。IV不应该是秘密的。如果必须是,则您的加密系统已损坏。正如此答案所指出的那样,IV与密文本身一样敏感。没有身份验证,您链接到的攻击可能针对任何密文,而不仅仅是预置的IV。 - Rob Napier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接