我一直在阅读很多关于客户端和服务器之间的 SSL/TLS 握手的文章,而且很多文章都非常矛盾。
有人说,将用于两方通信的对称密钥从客户端传输到服务器(ofc,使用服务器的公钥加密),仅此而已。
有人说正在使用 DH 算法,首先客户端发送一个预主密钥来帮助生成共享密钥(为什么首先加密预主密钥,攻击者不会获得任何机密信息)。
令人困惑的是共享对称密钥生成的整体流程。a) 是否使用了 DH(如果没有,如何生成对称密钥,客户端建议它,通过 RSA 加密发送它,仅此而已?)
b) 如果使用 DH,谁先开始?必须有人首先建议用于生成秘密的整体素数,然后发送他们的计算(或者整体算法是否预先确定)?