首页 » 信息技术 »

HTTPS的加密原理

2018年5月26日 / 183次阅读
HTTP

HTTPS就是安全的HTTP协议,所有数据都是通过加密的方式传输,安全可靠。本文介绍其实现原理。

 

HTTPS提供的安全通信,应用了对称加密,非对称加密,数据签名等技术。

在HTTPS的正常通信过程中,采用的对称加密,速度快,但是问题是客户端(就是指浏览器,以下同略)和服务器(网站服务器,以下同略)需要协商加密算法和秘钥,因为加密算法和秘钥要相同,才能正常使用对称加密。

这个协商的过程,就要用到非对称加密算法。服务器拥有私钥,客户端拥有公钥,于是相互直接都能解开协商过程的数据包。

但是,以上过程还是不够安全,如果遇到中间人攻击(MAN-IN-MIDDLE),客户端是无法判断其收到的服务器的公钥,是否真的就是真正的那个服务器发出来的。

因此,CA机构登场,CA的作用是给网站服务器制作数字证书(可以理解为一个特别的文件)。CA机构给网站颁发数字证书文件后,客户端其实获取到的是服务器的CA证书。这个证书里面包含的服务器的公钥,并且能够证明这是真的服务器的公钥。

 

这里有几个重要细节要梳理:

1, CA机构是行政发牌照,这一个环节是非技术因数;

2, CA机构发布的数字证书,其实就是用CA机构的私钥对服务器的公钥进行加密,客户端要使用CA机构的公钥来解密,获取服务器的公钥;由于第1点,一般浏览器或操作系统都已经存储了多家认证的CA机构的公钥,所以客户端在本地就可以直接使用CA的公钥解密;

3, 数字证书里面除了含有加了密的服务器的公钥之外,还有此证书本身验证真伪的必要信息,最重要的,是数字证书的签名;这个签名是一个信息摘要HASH(比如SHA),然后用CA机构的私钥加密;客户端要先用CA的公钥解密,然后使用收到证书中约定的方式,计算HASH值,然后对比,如果一致,表示证书是真的;

4, CA数字证书是不可篡改的,因为HASH值使用了CA机构的私钥加密,就算有中间人攻击,中间人可以解开并查看证书里面的所有信息,但是却无法修改这个证书,因为中间人没有CA机构的私钥;中间人如果用自己的私钥篡改证书数据,客户端是解不开的;中间人用CA机构的公钥篡改数据,客户端同样无法解开;中间人如果直接使用相同CA机构给它发的其它证书来代替,数字签名验证不会成功,因为其无法用CA机构的私钥做加密;(用CA的公钥,只能解开CA私钥加密的数据;任何不使用CA私钥加密的数据,浏览器中的公钥都解不开)

5, 客户端拿到服务器的公钥之后,将对称加密的秘钥加密后,发给服务器,中间人无法用相同服务器的公钥来解密,所以看不到对称加密的秘钥;中间人如果篡改数据,效果相当于中间人成了另一个客户端;服务器在确定了对称加密的秘钥之后,使用其对信息进行加密,然后传输给客户端,双方正常加密通信,中间人毫无办法。

以上第4和5是理解整个过程安全性的关键点。

 

整个HTTPS的流程,可以用下图来理解:

HTTPS的流程

HTTPS的流程

关键点就是那个CA证书,让客户端获取到了真实的服务器公钥,然后用这个公钥来加密协商后面的秘钥。整个HTTPS流程的安全关键在于CA机构,这个是政府认证的,另外就是私钥的安全,不能被窃取。

本文链接:https://www.maixj.net/ict/https-18091

相关文章

留言区

《HTTPS的加密原理》有4条留言

  • 麦新杰

    CA发的证书,证明了网站的公钥是可信的。 []

  • 麦新杰

    只要不是自己的私钥加密,自己的公钥以及任何其它私钥公钥,都解不开。 []

  • 麦新杰

    有免费的CA证书可以申请,人家还搞出来一个ACME协议,自动签发更新证书。 []

  • 麦新杰

    CA证书要花钱购买,年费比云服务器还贵!! []


前一篇:
后一篇:
-->只要几分钟回答问卷,就能轻松赚现金!

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top