目录
1、客户端请求服务端,发送TLS版本,和加密套件,和第一个随机数
2、服务器收到请求后,向客户端发送生成的第二个随机数,TLS版本和加密套件。
首先使用HTTPS协议会有80端口使用443端口
SSL:安全套阶层,于1994年由网景公司设计,1995发布3.0版本
TLS:传输层安全性协议,是IETF在SSL的基础上设计的协议(也就是HTTPS后边的S)
一、从网络层协议理解HTTPS
层级基本不变,只不是在HTTP的基础上加上TLS用来保证安全
HTTP:超文本传输协议
HTTPS:超文本传输安全协议
TLS:位于HTTP和TCP之间的协议,其内部有TLS握手协议,TLS记录协议
HTTPS是由HTTP进行通信,利用TLS保证安全
二、从密码学理解
这里的安全包括两部分,一部分是出书内容加密,另一部分是服务端身份验证
三、加密
对称加密
A发送一段信息,通过密钥key加密后发送,发送到B以后B同样用密钥Key解密,这样的加密就叫做加密
非对称加密
1、客户端请求服务端,发送TLS版本,和加密套件,和第一个随机数
2、服务器收到请求后,向客户端发送生成的第二个随机数,TLS版本和加密套件。
3、服务器还会把自己的公钥和证书发送给客户端
假设一个场景:你访问baidu.com时候,有一个极其相似的网站baidv.com,你访问的网站是不对的,这就体现了证书的用处,客户端会向CA验证证书是否正确。保证访问无误。
4、客户端生成第三个随机数(预主密钥),
这时客户端不会将第三个随机数直接发送,而是用获得公钥加密后发送
5、服务器接收到预主密钥后,会用自己的私钥进行解密
这时候就保证通讯安全,因为这时候只有服务器知道预主密钥
6、生成会话密钥
客户端和服务器 同时利用利用第一随机数,第二随机数,和预主密钥生成会话密钥
7、此后的对话全部用会话密钥进行对称加密回话,
如果次次都利用非对称加密,不仅浪费时间,性能还会大大影响效率,这时候只要不暴露自己的回话密钥就是安全的。
过程图
密码小结
密码 | 作用 | 组成 |
---|---|---|
消息认证码 | 确认消息的完整、并对消息的来源认证 | 共享秘钥+消息的散列值 |
数字签名 | 对消息的散列值签名 | 公钥+私钥+消息的散列值 |
公钥密码 | 解决秘钥的配送问题 | 公钥+私钥+消息 |
证书 | 解决公钥的归属问题 | 公钥密码中的公钥+数字签名 |
密码技术
-
伪随机数生成器:秘钥生成随机性,更难被猜测
-
对称密码:对称密码使用的秘钥就是由伪随机数生成,相较于非对称密码,效率更高
-
消息认证码:保证消息信息的完整性、以及验证消息信息的来源
-
公钥密码:证书技术使用的就是公钥密码
-
数字签名:验证证书的签名,确定由真实的某个 CA 颁发
-
证书:解决公钥的真实归属问题,降低中间人攻击概率