[TCP/IP] SSL的通讯原理
程序员文章站
2022-03-31 20:59:19
SSL:位于传输层和应用层之间,专门实现在传输之前加密,在接收端给应用层之前解密;使用非对称加密技术 SSL原理 1.客户端与服务端建立连接 2.互相Hello(包含支持的版本、算法;加上随机数) 3.服务端发送公钥 客户端发送公钥(双向验证才需要,单向跳过) 服务端验证客户端公钥(双向验证才需要, ......
ssl:位于传输层和应用层之间,专门实现在传输之前加密,在接收端给应用层之前解密;使用非对称加密技术
ssl原理
1.客户端与服务端建立连接
2.互相hello(包含支持的版本、算法;加上随机数)
3.服务端发送公钥
客户端发送公钥(双向验证才需要,单向跳过)
服务端验证客户端公钥(双向验证才需要,单向跳过)
4.客户端验证服务端公钥
5.交换dh参数(如果用dh密钥交换算法)
6.客户端使用公钥生成premaster secret,并发送给服务端(dh根据随机数和参数直接算)
7.服务端使用私钥解密premaster secret,得到对称密钥(dh根据随机数和参数直接算)
8.使用对称密钥通讯
ssl客户端(也是tcp的客户端)在tcp链接建立之后,发出一个clienthello来发起握手,这个消息里面包含了自己可实现的算法列表和其它一些需要的消息,ssl的服务器端会回应一个serverhello,这里面确定了这次通信所需要的算法,然后发过去自己的证书(里面包含了身份和自己的公钥)。client在收到这个消息后会生成一个秘密消息,用ssl服务器的公钥加密后传过去,ssl服务器端用自己的私钥解密后,会话密钥协商成功,双方可以用同一份会话密钥来通信了。
tls(传输层安全)是更为安全的升级版 ssl,tls是升级版的ssl,但是还有按照传统称为了ssl