为了为我的网站选择一个很好的SSL证书配置(使用常规的LAMP配置),我正在做一些讲座,我想知道使用poly1305流密码的可能性和安全替代方案是什么?
为什么我听不到ChaCha20没有Poly1305?
发布于 2016-07-27 07:50:59
ChaCha20和Salsa20是流密码。它们的目的是提供保密,只要用于种子的密钥仍然是秘密的。然而,Poly1305是一个消息认证代码(MAC),它应该为发送的消息提供完整性和真实性。
一般来说,应该可以单独使用它们,因为它们似乎不相互依赖(但是,Poly1305可以并且确实使用ChaCha20作为底层密码)。例如,NaCl密码库允许您使用Salsa20进行加密、使用Poly1305进行身份验证或使用这两种方案进行身份验证。
但是,不可能在TLS中单独使用它们。其原因是,TLS使用一种方案来识别密钥交换算法/密码/MAC的组合,称为“密码套件”。由于客户端总是发送它在每个"Client Hello“数据包(建立TLS连接所需的第一个数据包)中支持的所有密码套件,所以所有可能的密码套件都是预先定义的,因此一个2字节的ID就足以表示单个密码套件。
正如RFC7539所指出的,包括使用ChaCha20和Poly1305的可能性的主要原因是,在发现弱点时,可以使用AES的替代方案,以及在缓慢的硬件第2页上使用的快速替代方案。
您可以在的TLS参数规范上看到所有定义的密码套件及其表示形式。或者,查看RFC7539 (schroeder的评论链接到您的帖子),它指定了使用ChaCha/poly所有可能的密码套件。
https://security.stackexchange.com/questions/131071
复制相似问题