Https加密过程详解

  Http相必都应该熟悉,在Http通信过程中,当我们使用wireshark进行抓包,会发现我们在网页上输入的数据直接就是明文,我们的密码或者任何隐私的东西,都是"裸奔"在互联网中的,很明显这样是不安全的,那如何去保证安全呢?就是今天的主题——Https

对比一下Http和Https的网络分层模型:
Https加密过程详解_第1张图片
  在应用层和传输层之间,加上了一个SSL层,该层就是用来保证安全的加密层,要想理解的更深刻,不如循序渐进,一起跟着思路来思考

  既然明文传输是不安全的,那我们就使用加密算法进行加密,加密算法都有哪些?怎么划分?

对称加密

  对称加密就是加密和解密使用同一个密钥,也叫做共享密钥加密,共享密钥加密的方式效率会比较高。客户端和服务端要约定共享密钥是什么,共享密钥就得明文在互联网中传输,一旦攻击者拿到了共享密钥,那么后续所有使用共享密钥加密过的消息内容安全性也就不存在了。
Https加密过程详解_第2张图片

非对称加密

  非对称加密有两把密钥,公钥加密后的内容只能由私钥进行解密,私钥加密的内容只能由公钥进行解密,公钥通过服务器发送到客户端,然后私钥就留在服务器,这样进行加密通信也是不安全的,为什么呢?因为公钥在发送的过程中可能被攻击者拦截,然后攻击者会给客户端发送一个假的公钥,客户端拿到假的公钥后给攻击者发送加密后的消息,攻击者使用假的私钥解密,这样是不安全的,通过下图了解一下:
Https加密过程详解_第3张图片
  到这里,就会引入一个第三方的机构,既然无法确定双方的身份,就和支付宝一样,用户和商家无法对货款和货物做出判断,那么就交由第三方进行监督,这里也是一样的,CA机构就是做这件事情的,在进行交换消息之前,服务器会向CA机构申请一个证书,CA证书,CA证书使用数字签名的方式加密,这里了解即可,CA机构会审核服务器的身份后,才会颁发给服务端,CA证书具有权威性,中间的攻击者是很难伪造的,在颁发的同时还会有公钥和私钥,这时公钥就具有了权威性,中间人无法伪造,客户端在接收到公钥和证书后会首先对CA证书进行验证,如果验证通过才会继续后面的通信。

  到这里,可以看到非对称加密已经达到了安全的目的,但是非对称加密效率会比对称加密要慢一些,Https就打出了一套"组合拳",对称加密密钥是明文的,那就通过非对称加密对共享加密(对称加密)的密钥进行加密,在约定好了密钥后,然后后续的消息传递使用对称加密,这样算下来效率会提高很多。

  讲到这里,Https加密的大体框架已经出来了,在实现细节上还有一点差距,差距就在Hash算法上,Hash算法也是一种加密方式,该算法可以将任意长度的信息转换为固定长度的值,这里了解即可。

  在了解完了这些后,最后揭开Https的最终面纱,下图便是Https的整个过程:
Https加密过程详解_第4张图片

文章参考:
https://www.kuacg.com/22672.html#images-7
https://blog.csdn.net/u011779724/article/details/80776776
《图解HTTP》

你可能感兴趣的:(计算机网络,Https,安全,Http)