史上最通俗易懂的HTTPS小故事

音视频开发进阶

共 1014字,需浏览 3分钟

 ·

2021-01-28 23:47

序言

在绝大部分人的印象中,技术知识都是很枯燥无味的,读起技术文章来,感觉脑细胞都要死一片。今天我们就尝试换一种新的方式,目的是可以让大家在轻松愉快的氛围中还能把技术学了。记得关注我哦,让我们一起将技术变的有趣起来。

二战前

二战前夕,德国励精图治,军备急速扩张,收到情报的丘桑立马联系了远在东边的斯大林同志:

0f07cf7c9809caf6c503c886b43738f8.webp


0850f07c07bed77667460301800d43b7.webp


由于HTTP协议是明文传输,丘桑和大林同志的微信聊天被元首轻而易举的截获并篡改,以此迷惑住大林同志,元首更加大胆的筹划着下一步动作:闪击波兰
友情提示:看出HTTP协议的缺陷了吧,
① 明文传输,报文信息完全暴露在传输链路中
② 不验证身份,对信息来源不做验证,容易被伪装者迷惑
③ 不校验信息完整性,报文可能被篡改

二战初期

元首凭借着能轻易截获和篡改苏英的情报,在欧洲横行霸道,不过丘桑和大林也不傻,他们意识到自己的情报很有可能被破解了,所以他们决定不再明文发微信:

a647f3969d7c86c371ccbde455d45859.webp


元首得知丘桑要联合法军,立即调集重兵绕过法军防线直捣黄龙,法国迅速投降求生。
聪明的斯大林同志意识到丘桑的加密方法完全不安全。所以,秘密招来朱可夫元帅进行商讨,该如何解决这些问题呢?

e788885f5586f8067595aca796034e5c.webp


这样确实能解决第①个问题,但是②、③能解决吗?我们来稍微分析一下,因为公钥还是对外传输的,所以元首完全可以截获到公钥,然后使用公钥加密自己的一段假秘钥传给斯大林和丘桑,如果大林和丘桑按照假的秘钥进行通信,这不就尴尬了嘛。
过了一会,机智的朱可夫同志说到:

a31594d5efd7ea0ff97aafc75956fb97.webp


没错,权威机构“联合国”(相当于CA),可以给那些可信任的“国家”(网站)颁发证书:

fa3a14a982eb22137b947cc577c92acb.webp


为了解决证书被伪造的问题,需要对证书进行签名,一般我们会对证书使用摘要算法(MD5等)生成摘要(固定长度的字符串,并且内容不同生成的摘要一定不同),然后使用CA机构的私钥对摘要进行加密或者称为签名(可以使用公钥进行解密,或者称为验签):

121c335986155366992187b1ca5cf870.webp


9c54a28046055a0b19fa36d06383f749.webp


不过,话说回来,证书加完签名后如何保证是真的呢?

a6db0c11b222e44f02344f47c9b1deb8.webp


因为签名的私钥保存在CA机构里,所以只能使用CA的公钥对签名文件解密拿到真实的摘要,如果证书被篡改过,使用摘要算法对原始证书生成摘要肯定和验签的摘要对不上。如果签名是假的,那么使用CA的公钥是无法进行解密的。

二战中中期

自从盟军用上了HTTPS进行通信,希特勒再也无法从中破坏了,战场上也不再那么容易获得情报了。难道HTTPS真的就无懈可击了吗?欲知后事如何,且听下回分解,《新编二战回忆录》带你从战争中透析技术重点和难点。

289b1759ebd229496f6ea8444fa47735.webp

浏览 19
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报