一个故事读懂HTTPS

情窦初开

李雷想告诉韩梅梅:“I LOVE U”,于是李雷写好情书,绑在 Polly 的腿上,让 Polly 去韩梅梅家,韩梅梅拿到情书,呵呵一笑,哦不,娇羞一笑,OK,一次信息传递成功。

有人使坏

然而,喜欢韩梅梅的不止李雷,还有 Jim Green,他半路截取了 Polly,看到“ I LOVE U”,顿生醋意,愤而把消息改成 "F**K OFF" ... 当韩梅梅收到信时,爱情的萌芽必然就被扼杀了,因为韩梅梅并不知道李雷发来的消息被半路拦截并篡改了。

加密消息

上次的事情后,李雷花了用了 1024 天向韩梅梅解释,最终让韩梅梅相信是有人在背后捣鬼,于是,他俩这次学乖了,决定把消息加密,俩人约定好,发送时把消息中的字母都向字母表后移 1 位,也就是发送 “J MPWF V”,这时就算 Jim Green 把 Polly 截了也不知道他们的消息是什么意思,只有韩梅梅知道消息解码的规则,她将每个字母对应字母表前移一位就知道原始消息是“ I LOVE U”,掩面娇羞...

上面这种加密消息的方式就是对称加密,你知道如何加密,也知道如何解码。然后李雷跟韩梅梅用的字母表偏移的加密方法叫 Caesar cipher, 凯撒加密。现实世界中用的加密算法会更复杂,但是基本原理相同。

假如他们之前没见过

对称加密在只有发送和接收方知道加密算法和密钥的时候,是安全的。但是问题是,如果李雷和韩梅梅在通信之前都没见过,那他们就没法约定加密算法和密钥了。

旁白:那可以先通信一次把通信方式和密码发过去,然后再发消息呗?

然而,Jim Green 又不是傻,看见 Polly 第一次飞过去,拦下来,哦,原来你们要用凯撒加密,密钥是 1 ... 上面说了,加密方式只有发送方和接受者知道时是安全的,现在第三个人知道了,不安全了。

他们的通信需要更安全的加密系统 ...

PS:在现实中,如果使用对称加密,客户端和服务端都需要保存大量的加密算法和对应的密钥,管理成本巨大且容易泄漏。

让 Polly 抱个密码箱

李雷和韩梅梅想出来了一个复杂的通信流程:

  1. 李雷先让 Polly 不带情书飞到韩梅梅家;
  2. 韩梅梅在 Polly 身上绑一个开着的密码箱,密码只有韩梅梅知道,然后让 Polly 飞回去;
  3. 李雷在 Polly 回来的时候,把情书放进去,把密码箱锁起来,让 Polly 再飞到韩梅梅家;
  4. 韩梅梅拿到密码箱,打开,拿到情书,掩面娇羞;

Polly 内心旁白,MMP,你们谈个恋爱累死老子了 ...

就通过这样的流程,他们安全的谈情说爱,Jim Green 无计可施 ...

上面这种加密方式是非对称加密,非对称的含义相对于对称来说,就是你即使知道怎么加密的的方式,也不知道怎么解密,对应上面的流程就是李雷锁的密码箱却没办法打开。

术语来讲的话,就是我们熟知的公钥和私钥,服务端将公钥(密码箱)发送给客户端,客户端使用公钥加密信息(锁箱子),服务端接受消息后使用私钥(仅韩梅梅知道的密码)解密。

密码箱安全吗

然而问题还没有结束 ...

李雷拿到开着的密码箱,如何确定这个密码箱就是韩梅梅让 Polly 带过来的?Jim Green 能截消息,也能截密码箱然后换成自己知道知道密码的密码箱呀,这样的话,通信同样不安全(即公钥来源的安全性)。

李雷必须要知道箱子是不是韩梅梅的,于是韩梅梅想到一个办法,她在密码箱上签上自己的名字,当李雷拿到盒子的时候,就可以看签名是不是韩梅梅的从而决定是否安全。

然而,还又同样的问题,Jim Green 同样也能伪造签名呀 ...

恶魔李雷:妈蛋的,这恋爱老子不谈了!

天使李雷:山无棱天地合乃敢与君绝

天使战胜了恶魔,故事继续 ...

公信

我们需要一个有公信力的人 郑叔 来代替签名,他是大家公认的好人,只会给认证过的合法的人签名,签名的密码箱的来源都确实就是需要签名的本人。

这样,Jim Green 就不能换箱子和伪造签名了,一旦没有郑叔的认证,李雷就可以断定这不是韩梅梅的箱子,不安全。

同样,术语上,郑叔就是 Certification Authority,认证机构,有权利颁发证书(签名)。

在这个关系链中,信任 CA 是基础,因为,其实也会有 CA 告诉你他自己是安全的,他会给自己颁发证书。对应例子中,就是如果 Jim Green 也是个有公信力的人然后给自己签名那就没得玩了,但是我们“相信” CA 都不会做这样的坏事,所以 Jim Green 不会是 CA.

Polly 好累

对比最初的消息,我们为了安全,本来只用送一封信,却加了一个密码箱和一个签名,运输成本重多了,Polly 累了,不开心了 ...

于是,他们决定,消息体还是以凯撒加密的方式传输,然后偏移步长用郑叔签名的保险箱发送,这样就可以平衡消息的安全性和传输的成本问题。

术语解释就是非对称加密会影响传输速度,因为消息体变大了,所以通常综合性能和安全性考虑,会用对称加密消息体,非对称加密用来编码对称加密的密钥。

结语

故事中通信的过程其实就是原始的 HTTP 到 HTTPS 的演进过程,当然隐藏了真实通信的很多细节,比如三次握手 ... 但是大体上描述了原理和部分细节。

去探索更多关于 HTTPS 的原理 & 申请证书改造你的网站吧 ...

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容