首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

HTTPS的原理

安利一本书

《码农翻身》,一本以故事的形式生动讲解了关于计算机以及编程等各方面知识的书,可谓是可以劳逸结合的一本好书。

作者刘欣,15年编程经验,抱着活到老学到老的心态,揣摩计算机各方面的知识。他以故事的形式描述计算机的知识,并将此记录在他的微信公众号中,这本书便是由此而来。

封面如图:

单从封面看就能知道作者的笔法~

下面所讲述的知识,就是我从这本书的这个知识点所总结出来的。我同样以故事的形式来描述HTTPS,这种传授知识的方式我非常喜欢!!!

HTTPS

作为经常网上冲浪的人,都应该知道HTTPS比HTTP要安全的多,那么在介绍HTTPS的工作原理之前,先了解一下:对称加密,非对称加密(RSA),数字证书,数字签名。

先说明一下下面所讲述到的几个名词:

小张:实际身份为浏览器

小李:实际身份为服务器

中间人:实际身份为网络攻击者

对称加密

什么叫对称加密?

在这里,对称可理解为两把相同的钥匙,它们是对称的。而用这两把相同的钥匙来加密和解密就称为对称加密(相当于门钥匙,可以上锁和解锁)。

用一个例子描述一下:

小张和小李是要好的朋友,他们各自有着一把钥匙,他们的钥匙相同。他们来自不同的国家,只能通过发送信息来往。为了防止他们的发送的信息被中间人截获,他们都使用同一把钥匙来给自己的信息加密。

小张用钥匙加密了文件发送给小李,小李用钥匙解密文件,获取信息。同样的小李用钥匙加密文件发送给小张,小张用钥匙解密文件。信息安全的来往着,中间人丝毫没有办法去截获信息。

可以描述为上面的张图。

对称密钥:两把相同的钥匙

不过有一天,小张的钥匙突然弄丢了!!小张向小李打国际电话说:"小李啊,能不能复制一把钥匙发送给我啊,我钥匙不见了!",小李听到后说:"小张,如果我发钥匙给你,钥匙很可能会被别人截获,那么到时再发加密文件给你的时候,别人就能截获并解密文件,读取到我给你的信息啊!"。小张说:“那怎么办?”

于是就有了非对称加密~

非对称加密

小张和小李讨论了很久(浪费了很多话费)没有结果,小李突发奇想:“要不我们每个人都弄两把不同的钥匙,一把用来加密,一把用来解密。那么我把加密的钥匙给你,你加密好文件再发给我,我用我的解密钥匙来解密不就行了吗?”小张顿悟:“好主意,就这么办!”。

于是小张和小李各自弄出了两把不同的钥匙,并各自将加密钥匙发送给对方。小张和小李用着对方所给的加密钥匙加密文件,将加密文件发送给对方,接收到文件后,接着用自己的解密钥匙解密。美好的一天又开始了!

公钥:用于加密的钥匙。

私钥:用于解密的钥匙。

公钥加密后的文件只能被私钥解密。

然而事情并没有他们所想的那么顺利,用私钥解密文件效率太低了(算法问题)。他们又开始讨论起来,如何才能提高效率。

对称加密+非对称加密

这次轮到小张灵感大发:“之前我们所用的第一把钥匙解密速度很快,那么我们可以尝试两者结合起来。先用你的公钥加密对称密钥,然后将对称密钥发送给你,你再用你的私钥解密获得对称密钥,那么以后就可以一直使用对称密钥来加密和解密文件了,效率大大提高!”。小李听后不由兴奋起来:“小张,你真棒!”

说完没多久,小张立刻使用小李给他的公钥加密对称密钥,然后将其发送给小李。小李接收到小张的对称密钥后,用自己的私钥解密得到了对称密钥。日子又变得闲暇起来~

一个星期后~

这天,小张莫名其妙的接收到一个文件,文件里面有着公钥。看到这把公钥,小张灵机一动:终于轮到小李弄丢对称密钥了。小张想都没想,用着这个公钥加密对称密钥。正当要点击发送的时候,小张又收到了文件,来自小李的:今天天气不错啊老兄~。小张顿悟,这条公钥不是来自小李的。小张立刻给小李回信:“小李,我今天收到了一把公钥,我以为你弄不见对称密钥,我差点把我们的对称密钥发送出去了!”。不一会儿,小李回信:“笑话,只有你才会这这么粗心!等等,有人给你发公钥!!”小张和小李意识到了问题所在,万一不知道公钥来自于哪里,也是很容易泄露信息的。

数字证书与数字签名

为了不让信息泄露出去,小张和小李使用了一种验证算法,名叫数字签名。

数字签名:将文件中的信息以及对方的公钥通过Hash(只要文件中的信息有一点不同,消息摘要就会千变万化)转化为一段消息摘要,然后通过(CA)认证中心的密钥加密从而形成带有加密的消息摘要,这个加密的消息摘要被称为数字签名。

数字证书:文件的信息、公钥以及数字签名所组合而成被称为数字证书。

当接收到数字证书的时候:

先通过Hash将数字证书中的文件信息及对方的公钥转化文消息摘要

解密数字签名得到消息摘要,对比两个消息摘要,如果相同,则数字签名验证成功。

ps:画图累死我了..........

知道以上这些HTTPS的原理,就能总结一下HTTPS的过程了~

HTTPS过程

一张图够生动形象了吧~

关注不吃亏

要知道,用心写推文的人已经不多了

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180718G0SDA900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券