https简解

83 阅读2分钟

ssl和tls

ssl

ssl 是netscape公司发布的

tls

tls是国际标准发布了ssl的升级版

设计思想

ssl/tls采用公钥加密法,客户端向服务器索要公钥,采用公钥加密,服务器收到加密信息,然后采用私钥,解密

问题

1,如何保证公钥不被篡改
公钥保存在数字证书中
2,公钥加密计算量大

ssl/tls 协议基本过程

1, 客户端向服务器端索要并验证公钥
2,双方协商生成对话密钥
3,双方采用对话密钥进行加密通信

image.png

握手阶段,所有通信是明文的

握手过程

1,客户端 发出请求
消息内容
(1) 支持的协议版本,例如SSL/TLS的版本
(2) 客户端生成随机数,用于生成对话密钥
(3) 支持的加密方法,比如RSA公钥加密
(4) 支持的压缩方法 2,服务器回应
消息内容
(1) 确认使用的加密通信协议版本,例如TLS 1.0版本,如果浏览器与服务器支持的版本不一致,服务器关闭加密通信 (2) 服务器生成随机数,用于生成对话密钥
(3) 确认使用加密算法
(4) 服务器证书
3,客户端回应
客户端收到服务器回应,首先验证服务器证书,如果证书是不可机构版本,或者证书的域名与实际域名不一致,或者证书已经过期,就会向访问者显示一个警告,由用户是否还要继续通信
消息内容
(1) 一个随机数,采用服务器公钥加密
(2) 编码改变通知,表示随后的信息都将用双方商定的加密算法和密钥发送
(3) 客户端握手结束通知,同时发送所有内容的hash值,用来供服务器检验
4,服务器最后的回应
服务器收到客户端的第三个随机数,计算本次的会话密钥
消息内容
(1) 编码改变通知,随后采用双方约定的加密方法和密钥发送
(2) 服务器握手结束通知,发送前面所有的内容的hash值,用来供客户端校验

image.png

参考文章:www.ruanyifeng.com/blog/2014/0…