TLS协商密件和TLS版本,以便在握手时使用。它证实握手没有被篡改,加密套件和TLS版本也没有使用协商密码被降级,正如解释的这里。但是,此验证依赖于在握手时协商的密码,因此如果攻击者选择的密码足够弱到足以迅速破坏,他可能也能够发送这些确认消息。
我的问题是,为什么服务器不使用它的私钥来签署它的加密套件和TLS版本(以及validUntil的时间戳),以便客户端能够检测降级攻击?当客户端当时没有公钥时,客户端可以保留签名,直到证书得到验证和验证为止。为什么TLS协议没有做到这一点?
发布于 2018-04-28 21:37:38
服务器确实在密室签名。整个协议协商(包括密室、密钥等)签了名。这是握手中的最后一件事:Finished消息。有关更多细节,请参见什么能阻止攻击者在SSL/握手过程中篡改发送的数据?和SSL/TLS是如何工作的?。
你注意到:
此验证依赖于在握手时协商的密码,因此如果攻击者选择的密码足够弱到足以迅速破坏,他可能也能够发送这些确认消息。
并问:
为什么服务器不使用它的私钥来签署它的加密套件和TLS版本(以及validUntil的时间戳),这样客户端就可以检测到降级攻击了?
再次,服务器确实使用其私钥来对密匙进行签名,而客户端也确实对其进行了验证。这种情况发生在握手结束时,因为只有在客户端和服务器就服务器的密钥以及应该信任的原因达成一致之前,才可能发生这种情况。
您担心的是攻击者说服客户端使用弱密件,以便他们可以伪造签名。有两个案子。
https://security.stackexchange.com/questions/184738
复制相似问题