为了账号安全,请及时绑定邮箱和手机立即绑定

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

2019.08.16 16:08 347浏览

1.什么是HTTP协议?

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

https://img4.mukewang.com/5d56640300017e9f05820210.png

2.什么是HTTPS协议?

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


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

对称加密

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

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

非对称加密

与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。

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

因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

4.HTTPS流程

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

https://img1.mukewang.com/5d56641f0001158a07060456.png

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

https://img2.mukewang.com/5d5664370001a66606440426.png

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


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

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

客户端本地如何验证证书呢?

证书本身就已经告诉客户端怎么验证证书的真伪,也就是证书上写着如何根据证书上的方法自己生成一个证书编号,如果生成的证书编号与证书上的证书编号相同,那么证明这个证书是真实的。同时,为避免证书编号本身又被调包,所以使用第三方机构的私钥进行加密。

证书就是HTTPS中的数字证书,证书编号就是数字签名,而第三方机构就是指数字证书签发机构(CA)

https://img1.mukewang.com/5d5664550001d69106460469.png

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

https://img.mukewang.com/5d5664620001495a06650454.png

6.服务端用自己的私钥解开加密,得到对称加密密钥Key2。于是客户端与服务端开始用Key2进行对称加密的通信。

https://img.mukewang.com/5d5664700001e4fb07580461.png

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



点击查看更多内容

本文原创发布于慕课网 ,转载请注明出处,谢谢合作

1人点赞

若觉得本文不错,就分享一下吧!

评论

相关文章推荐

正在加载中
意见反馈 邀请有奖 帮助中心 APP下载
官方微信

举报

0/150
提交
取消