是时候理解下HTTPS的原理及流程了

1.什么是HTTP协议?

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议),位于TCP/IP模型当中的应用层。HTTP协议经过请求/响应的方式,在客户端和服务端之间进行通讯。HTTP协议的信息传输彻底以明文的方式,不作任何加密,至关于在网络上“裸奔”,因此容易遭受中间人的恶意截获甚至篡改(中间人攻击)。html

640?wx_fmt=png

2.什么是HTTPS协议?

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,所以加密的详细内容就须要SSL。算法

img

3.对称加密和非对称加密

对称加密浏览器

对称加密采用了对称密码编码技术,它的特色是文件加密和解密都是使用相同的密钥。安全

这种方法在密码学中叫作对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另外一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,并且对计算机功能要求也没有那么高。网络

非对称加密网站

与对称加密算法不一样,非对称加密算法须要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。编码

公开密钥与私有密钥是一对,若是用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;若是用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。加密

由于加密和解密使用的是两个不一样的密钥,因此这种算法叫做非对称加密算法。操作系统

4.HTTPS流程

1.服务端首先把本身的公钥(Key1)发给证书颁发机构,向证书颁发机构申请证书。.net

640?wx_fmt=png

2.证书颁发机构本身也有一对公钥私钥。机构利用本身的私钥来加密Key1,而且经过服务端网址等信息生成一个证书签名,证书签名一样通过机构的私钥加密。证书制做完成后,机构把证书发送给了服务端。

640?wx_fmt=png

3.当客户端向服务端请求通讯的时候,服务端再也不直接返回本身的公钥(Key1),而是把本身申请的证书返回给客户端。

640?wx_fmt=png

4.客户端收到证书之后,要作的第一件事情是验证证书的真伪。须要说明的是,各大浏览器和操做系统已经维护了全部权威证书机构的名称和公钥。因此客户端只须要知道是哪一个机构颁布的证书,就能够从本地找到对应的机构公钥,解密出证书签名。

客户端对证书验证成功后,就能够放心地再次利用证书机构公钥,解密出服务端的公钥Key1。

扩展:

如今有一些银行网站在进行支付上还会要求用户在电脑上下载安装该银行网站的数字证书,缘由就是银行网站使用的是私有的证书颁发机构,用户电脑并无内置该证书颁发机构的数字证书(含该证书机构的公钥等),因此须要用户自行下载安装。

640?wx_fmt=png

5.客户端生成本身的对称加密密钥Key2,而且用服务端公钥Key1加密Key2,发送给服务端。

640?wx_fmt=png

6.服务端用本身的私钥解开加密,获得对称加密密钥Key2。因而客户端与服务端开始用Key2进行对称加密的通讯。

640?wx_fmt=png

你还有什么不理解的呢?欢迎下方评论。

本文参考资料及图片来源:

http://www.javashuo.com/article/p-mqymjxjy-ho.html

http://www.javashuo.com/article/p-zestqzvu-nr.html

https://blog.csdn.net/luweicheng24/article/details/80579731

https://www.jianshu.com/p/14cd2c9d2cd2

https://blog.csdn.net/love_hot_girl/article/details/81164279

相关文章
相关标签/搜索