HTTPS通信原理-证书交换_BlackFee的博客-CSDN博客_证书交换
协议需求
1、对内容进行加密
建立一个信息安全通道,来保证数据传输的安全。SSL/TLS协议进行加解密,常用的非对称算法为RSA。公钥加密,私钥解密。
2、能够进行身份认真
确认对方的真实性。证书由受信任的数字证书机构(Certificate Authority, CA)所颁发的,就认为对方是真的。
3、能够保证数据的完整性
防止内容被第三方冒充或篡改。
4、需要具备兼容性
5、需要具备可扩展性
6、需要考虑性能
TSL握手过程
握手简述(以RSA为例):
- client hello:客户端给出TSL协议号、支持的加密算法、随机数client Random、扩展字段
- server hello:服务端确认双方可支持的加密算法,并把数字证书下发给客户端,同时也会生成一个随机数server random
- 客户端检验证书的有效性,并重新生成一个随机数premaster secret,使用证书中的公钥加密随机数,发送给服务端
- 服务端使用私钥解密数据获取随机数
- 客户端和服务端根据约定的加密算法,使用前