【发布时间】:2018-08-13 07:36:45
【问题描述】:
我对 SSL 工作原理的理解:
客户端发送一个 hello 消息,其中包含 SSL 版本号、支持的密钥、密码和哈希方法以及随机生成的数字。
服务器回复选择密钥、密码和哈希方法、随机生成的数字及其证书。
客户端和服务器根据上述随机生成的数字生成主密钥。
客户端请求更改密码,服务器回复更改密码,现在它们都使用主密钥加密。
我的问题是,第三方(例如中间人)不能拦截初始的 hello 消息,使用拦截的随机生成的数字并找出主密钥,从而能够找出什么是其余消息是针对整个连接的?谢谢!
【问题讨论】:
-
这里有几个虚假陈述。该“随机”数字是链接到私钥的公钥。但是,是的,如果没有证书(由受信任的第三方签名),这很容易受到中间人的攻击。
-
SSL/TLS 密钥派生使用两个非秘密的“随机”值,以及 是秘密的“预主密钥”,并根据所使用的密钥交换而变化其中有几种可能性,你没有给出你正在使用的线索。此外,主密钥不直接用于加密,而是派生 多个 工作密钥。请参阅security.stackexchange.com/questions/20803/how-does-ssl-work 或更具体的security.stackexchange.com/questions/63971/… ...
-
... 或 RFC,它们因版本而异(略有)——您的意思是 actual SSL(Netscape 的安全套接字层)现在已损坏且已过时并且未使用,或 TLS(IETF 的传输层安全性),它是几乎所有相同软件实现的改进/固定版本,其中大部分仍然使用过时的 name SSL?
标签: ssl network-security