关于HTTPS的相关知识点

本文参考 掘金——沐华——20分钟助你拿下HTTP和HTTPS,巩固你的HTTP知识体系 个人学习用,侵删

https

是个啥玩意呢!?说白了就是https+ssl罢了

SSL/TLS

  • TLS是SSL的升级版本

  • 浏览器和服务器通信前会进行一个协商,选出他们彼此都支持的加密套件,实现安全通信当中会用到多种算法
    RUNOOB 图标

  • 为什么会有这么多的算法呢? 目的就是保证信息安全;

TLS的加密算法

对称加密算法:加密解密使用同一密钥

过程:

  • 浏览器给服务器发送一个随机数和一个加密方法列表
  • 服务器给浏览器返回另外一个随机数和双方都支持的加密方法
  • 二者用加密方法将两个随机数混合生成密钥
  • 此种方法存在问题,双方如何安全的传递随机数和加密方法,可能在传递过程中被窃取

非对称加密:存在一对密钥,公钥和私钥,一个密钥加密后的数据,只能让另外一个密钥解密。

  • 浏览器给服务器发送一个随机数client-random和一个加密方法列表
  • 服务器把另一个随机数server-random,加密方法,公钥传递给浏览器
  • 浏览器用公钥将两个随机数加密,生成密钥,这个密钥只能用私钥解密

注意:使用公钥反推出私钥是非常困难,但不是做不到,随着计算机运算能力提高,非对称密钥至少要2048位才能保证安全性,这就导致性能上要比对称加密要差很多


TLS实际是使用两种加密算法混合加密。(面试被考到过!!!)

通过非对称加密交换对称加密算法的密钥,交换完成后,再用对称加密**进行传输数据

过程:

  • 浏览器给服务器发送一个随机数client-random和一个支持的加密方法列表
  • 服务器把另一个随机数server-random,加密方法,公钥传给浏览器
  • 浏览器又生成另一个随机数pre-random,并使用公钥加密后传给服务器。
  • 服务器再用私钥解密,得到pre-random
  • 浏览器和服务器都将三个随机数用加密方法混合生成最终密钥

注意:如果一开始就被DNS劫持,我们拿到的公钥是中间人,而不是服务器给我们的,数据还是会被窃取,所以需要数字证书。

数字证书的重要性

验证服务器的身份,如果没有的话,可能会被中间人截取,中间人拿他的公钥给客户端,客户端之后把信息给中间人去了,然后中间人解密之后拿到数据,再去服务器请求,拿到服务器的公钥,再发信息给服务器,还是会被窃取信息。

先发证书给客户端!!!先验证身份

  • 服务器配置好证书,以后客户端连接服务器,都先把证书发给客户端验证并获取服务器的公钥。
  • 单向认证和双向认证,大多数都是单向认证的。

http和https的区别

  • HTTP是明文传输,不安全的,HTTPS是加密传输,安全的多
  • HTTP标准端口是80,HTTPS标准端口是443
  • HTTP不用认证证书免费,HTTPS需要认证证书要钱
  • 连接方式不同,HTTP三次握手,HTTPS中TLS1.2版本7次,TLS1.3版本6次
  • HTTP在OSI网络模型中是在应用层,而HTTPS的TLS是在传输层
  • HTTP是无状态的,HTTPS是有状态的
posted @ 2021-12-27 14:56  春天游泳。  阅读(111)  评论(0编辑  收藏  举报