一文带你了解HTTPS

什么是HTTPS

说起https就不得不说一下http,http是一个超文本传输协议,基于请求和响应,最大的特点就是无状态,并不会记录通信双方的状态行为,并且是不安全,而https是安全通信的传输协议,这就表示https其实是在http的基础上做了某些改进,https其实就是在http的基础上通过SSL/TLS建立全信道,加密数据包,来验证通信双方的身份和数据的完整性,对了,就是加密

对称加密和非对称加密

对称加密算法

对称加密就是通信双方利用相同的算法加密,相同的密钥解密,通信双方会在通信前协商一个密钥,方便之后通信进行解密,这种加密算法大家一看就知道有什么问题,没错,就是这个协商密钥的过程,通信的一方如何把密钥发送到另外一方,网络上不安全,如果这个密钥被不法人员截获,那就危险了

有什么方法可以避免这种密钥被人截获的危险呢?非对称加密算法

非对称加密算法(RSA)

非对称加密算法,要求通信双方生成一对公私钥对,公钥是公开的,私钥则需要自己保密,在通信前将自己的公钥发送给对方。非对称加密算法的核心在于,数据用公钥加密后,只能用对应的私钥才能解开,用私钥加密的数据,只能用对应的公钥才能解开

非对称加密算法可以避免密钥泄露的情况,但是它也有缺点,加解密的速度太慢了,对比对称加密来说,简直是一个天上,一个地下,那么https是使用哪种加密算法呢?

https使用混合加密算法,也就是综合对称加密算法和非对称加密算法的优势,利用非对称加密算法去传输对称加密的算法的密钥,后续的通信就可以利用对称加密来进行了,这样既保证了密钥的安全性,也保证了加解密的速度。

中间人攻击

假设A想和B通信,A会将自己的公钥发送给B,但是有一个攻击者(以下称为中间人),它将A的消息截获了,然后将自己的公钥发给A,让A以为是B发送给它的公钥。然后中间人将自己的公钥发送给B,B以为是中间人想和它通信,就会将自己(B)的公钥发给中间人,到现在,中间人完美的在A和B之间窃取他们的通信数据

https是如何防止中间人攻击的呢?

消息摘要,数字签名,数字证书

为了防止这种攻击,认证中心(简称CA)出来了,CA会为真正的服务端提供认证服务,让客户端不在上假网,具体请看下面。

消息摘要

服务端将自己的公钥信息,个人信息和一些其它信息通过hash算法得到一个hash码,知道hash算法的都知道,hash算法是一个不可逆的算法,意味着只能算出hash码,而不能通过hash码得到原本的信息。这个hash码就是消息摘要

数字签名

然后让认证中心,使用自己的私钥加密消息摘要,就可以得到数字签名

数字证书

然后将还没有计算hash码的原始信息和数字签名组合在一起,就可以得到数字证书了

 服务端将数字证书发给客户端,客户端的浏览器中就会存着受信任的CA机构的公钥

 

 使用CA的公钥,对数字证书中的数字签名进行解密,就可以得到消息摘要,然后在使用hash算法,对原本数据加密,也可以得到消息摘要,这样就可以对比两个消息摘要是否相等,数据是否被篡改

有了数字证书,上面那种情况就不可能发生了,因为中间者无法伪造数字证书,CA只会给真实的网站拥有者颁发数字证书

一次简单的https请求过程

客户端向服务端发送请求

服务端将响应数据和数字证书返回回去

客户端检查数字证书的正确性,如果数字证书记载的网页和你正在浏览的网页不一致,浏览器会告知你,你网站的数字证书(安全证书)有问题,如果这个数字证书不是浏览器的受信任机构颁发的,浏览器也会提示安全警告。如果一切正常的话,客户端就得到了服务端的公钥。

客户端生成一个对称密钥,然后用服务端的公钥加密,发送给服务端

服务端用自己的私钥解密,得到对称密钥

至此,双方都得到了对称密钥,之后的数据交换就可以用对称加密来进行了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值