TLS 重放攻击 - serverHello nonce 的要求

信息安全 密码学 tls 随机数
2021-08-20 22:30:51

众所周知,SSL/TLS 协议要求客户端和服务器都交换(以明文形式)随机数或随机数。这大概是用来防止重放攻击的。

我不清楚服务器端随机数要求是什么。它必须是独一无二的吗?或者它也必须是不可预测的?如果攻击者可以预测服务器端生成的随机数(如果有的话),会有什么影响?

我欢迎任何有关重放攻击的认真工作的来源,这可以帮助更好地理解服务器端的 nonce 要求。

谢谢。

路易斯

1个回答

在 SSL/TLS 中,随机数用于生成对称密钥,并在握手期间作为签名和检查的一部分。对于所有这些用法,随机数只是简单地连接(与一些其他数据)并散列。假设散列函数的行为类似于“随机预言”(神话般的完美散列函数),那么唯一的随机数就足够了。

但是,直到(包括)TLS 1.1 的 SSL/TLS 使用 MD5 和 SHA-1 作为散列函数,其弱点已被证明。它们不是随机的神谕。我不知道将这些弱点转化为对 SSL/TLS 本身的攻击的任何结果;但是,安全总比后悔好:使用不可预测的随机数。这不会造成损害,并且客户端和服务器都必须已经可以访问加密安全的 alea 源,因此不可预测的随机数不应该是一个太高的要求。