加密
基本概念:
加密:混淆数据的机制,避免被其它人看到;
身份验证:验证消息的来源是否正确;
完整性:消息是否被伪造和篡改;
对称加密:加密和解密的key是同一个;
非对称加密:加密和解密的key不是同一个,但是加密key和解密key是一一对应的;
TLS:传输层安全, 加密信息在报文中的位置
应用层(HTTP,电子邮件,即时通讯...)
会话层(TLS)
物理层
数据链路层
网络层(IP)
传输层(TCP/UDP)
要想在TLS层中为数据加密,就需要在应用层中采用HTTPS,相较于HTTP,HTTPS是HTTP的升级版,增加了数据加密的功能。
TLS过程:
发送端
1:SYN
5:client key exchange
change chiper spec finished
7:应用数据
接收端
2:SYN ACK
3:ACK client hello
4:server hello
certificate
serverhello done
6:change chiper spec finished
8:应用数据
28ms
56ms
TCP连接完成
84ms
112m s
140ms
168ms
196ms
224ms
1~2 : TLS是在TCP层之上运行,意味着先要建立TCP连接(三次握手)。
3: 建立TCP连接后,发送端给服务端发送TLS协议版本、支持的加密套件列表。
4: 接收端从发送端发送过来支持的加密套件列表中选择一个加密套件,生成一对非对称加密(公钥+私钥),再把公钥和自己的认证证书发给发送端(认证证书,用于发送端验证服务端的可靠性)。
5: 发送端生成一对对称加密密钥,然后用接收端的公钥加密后,再加上自己的认证证书发送给接收端。
6:接收端通过私钥解密成发送端的对称加密密钥,然后验证消息的可靠性(mac校验),然后给发送回复finished。
7:发送端通过堆成密钥解密信息,mac验证。
8: 建立信道,发送数据。
为什么要用非堆成加密密钥对对称加密密钥进行加密? 因为非对称密钥对数据的加密和解密非常耗时,基于性能考虑,采用对称加密密钥对数据进行加密。
为什么发送端不直接把对称密钥发给接收端?因为是明文发送,消息容易被监听窃取。

浙公网安备 33010602011771号