SSL/TLS加密原理

HTTPS=HTTP+SSL/TLS
TLS是SSL的升级版,SSL由于某种原因被废除了。
https是在http基础上进行了加密保护,这个加密协议就是tls,利用抓包工具可以看出我们用浏览器访问http网页和https网页的不同,https多出了许多数据包。

1.下图是加密过程

SSL/TLS加密原理_第1张图片

  1. 客户端提交https请求
  2. 服务器响应客户,并把证书公钥发给客户端
  3. 客户端验证证书公钥的有效性
  4. 有效后,会生成一个会话密钥
  5. 用证书公钥加密这个会话密钥后,发送给服务器
  6. 服务器收到公钥加密的会话密钥后,用私钥解密,回去会话密钥
  7. 客户端与服务器双方利用这个会话密钥加密要传输的数据进行通信

2.理解公钥和私钥

放在后面的原因是看懂了这个再回去你会觉得豁然开朗。
https://www.cnblogs.com/shenkebky/p/8461841.htm这篇博客对公钥和私钥的讲解很形象

个人理解:公钥和私钥是对应的,一个公钥加密的数据用对应的私钥来解密,加密就是按某种方式把数据改变了解密再改回来。用私钥加密的,可以用公钥来验证,公钥别人是可以知道的,但是他不知道私钥即使你得到了我的数据,你没有私钥还是无法解密。私钥是服务器才有的。

3.整体总结

  • 客户端发送https请求
  • 服务器返回一个公钥
  • 客户端验证有效后生成一个随机密钥,之后传数据就是用这个值加密的
  • 客户端把这个值用公钥加密传过去,服务器用私钥解密
  • 客户端服务器都知道了这个随机值,用这个值就可以加密通信。

参考地址:
https://www.wosign.com/FAQ/faq_2018093001.htm Tls/SSL的加密原理

https://zhidao.baidu.com/question/717551910440658845.html 百度论坛

https://www.cnblogs.com/shenkebky/p/8461841.html对公钥和私钥很好的讲解

你可能感兴趣的:(网络编程)