-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Labels
Description
基于HTTPS的网络通信增加了通信的安全性,可以有效的解决:
- 窃听风险。所有信息加密传播,第三方无法窃听。
- 篡改风险。具有校验机制,信息一旦被篡改,就会被通信双方发现。
- 伪装风险。配备身份证书,防止第三方伪装。
TLS是SSL的升级版本,目前应用较广泛的版本是TLS 1.0, SSL 3.0, TLS 1.2等。
TLS/SSL在TCP/IP协议层中的位置如下:
基于RSA加密算法的SSL/TCL握手过程
阶段一:Client Hello
- 产生并发送client random number(r1)
- 发送cipher suites supported(加密支持套件),即客户端支持哪些加密算法
- 发送支持的协议版本
阶段二: Server Hello
- 确认使用的加密协议版本如TLS1.0
- 生成server random number (r2)
- 携带RSA加密算法公钥(public key)的数字证书
阶段三:客户端响应
- 生成第三个随机数(r3),并用RSA公钥加密,称为premaster key
- 编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送。
- 客户端握手结束通知,表示客户端的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供服务器校验。
阶段四: 服务器最后的响应
- 用private key解密premaster key,得到r3
- 编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送。
- 服务器握手结束通知,表示服务器的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供客户端校验。
阶段五: 生成session key
客户端和服务端根据r1 r2 r3同时加密生成session key,也称为对话密钥,因此通信双方便产生了基于session key的对称加密,之后所有的通信内容都采用session key加密,确保了安全性。