https://en.wikipedia.org/wiki/Transport_Layer_Security#Protocol_details
我正在研究 SSL/TSL 握手的工作原理,虽然我了解了非对称加密部分的要点,但我不了解握手过程中的密码套件信息。
下面是我对握手所做的简要总结。
客户您好
发送 session 信息、可用的密码套件和随机字符串。服务器问候
发送其证书信息,选择密码套件和随机字符串。客户
- 从证书中提取公钥
- 将两个随机字符串放在一起并用它们创建一个预掌握的 secret
- 使用公钥加密预先掌握的 secret
- 发送加密的预掌握 secret
服务器
- 使用私钥解密预掌握的 secret
客户端和服务器
- 他们自己从预掌握的 secret 中生成主 secret
- 有了Master secret,两者都会生成一个对称 key 以供使用
客户端更改密码套件
- “(未加密)好的,现在更改密码套件”,“(加密)完成。”消息类型
服务器更改密码套件
- “(未加密)好的,现在更改密码套件”,“(加密)完成。”消息类型
安全连接
初始密码套件信息与此交换有何关联?
如果我对TSL/SSL Handshake的理解有误,请指正。谢谢!
最佳答案
密码套件定义了用于 key 交换、消息加密和消息身份验证的 TLS 握手算法集。 The article in wikipedia解释的很好。
关于security - 在 TSL/SSL 握手中,如何使用 ClientHello 中发送的 Cipher Suite 信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48136215/