[译] 通俗易懂的 HTTPS 解释

栏目: 服务器 · 发布时间: 5年前

内容简介:我们在网络的行为(例如看文章、购物、上传图片),简单来说都是向服务器发送消息、接收服务器的消息,这个过程很像为了更加形象,我们把通信过程中的主要角色

[译] 通俗易懂的 HTTPS 解释

我们在网络的行为(例如看文章、购物、上传图片),简单来说都是向服务器发送消息、接收服务器的消息,这个过程很像 信鸽传书

为了更加形象,我们把通信过程中的主要角色 服务器、客户端、黑客 的称呼也替换一下, Alice、Bob、Mallory

如果 Alice 想给 Bob 发送信息,那么她就把信绑在信鸽腿上,放出信鸽,Bob 接到信鸽,拿到信纸读消息,这个过程就完成了,很不错,简单方便。

但是,坏人 Mallory 出现了,他把正在愉快飞翔的信鸽抓了下来,并把信给换了,这就麻烦了,Bob 得到了假消息。

这就是 HTTP 的沟通方式,方便但极不安全,不能传递重要信息。

Alice 和 Bob 很聪明,想到了一个好办法,他们设定了一套编码规则:把字母偏移3个位置,例如,D → A、E → B、F → C,这样,原本的消息“secret message” 就变成了 “pbzobq jbppxdb”。

Mallory 截获到消息后就会一脸懵逼,看不懂改不了,但是 Bob 知道解码规则,可以轻松转化成原文。

这个方式就是“对称式加密”。

对称式加密很安全,只要保护好key,别让其他人知道即可,但也有个问题,如果 Alice 和 Bob 在通信之前不认识,他们就没办法设定加密规则。

为了解决这个问题,通信方式又一次升级了,比如 Bob 向给 Alice 发送信息,他们的通信流程如下:

  • Bob 让信鸽飞到 Alice 那儿,但啥也没带,没有信息。

  • Alice 让信鸽带着一个箱子和一把开着的锁飞回到 Bob,Alice 自己留着锁的钥匙。

  • Bob 把信放到箱子里,并用锁把箱子锁上,让信鸽把箱子带给 Alice。

  • Alice 收到箱子,用钥匙开锁,拿到信

这样 Mallory 就没招儿了,Alice 和 Bob 可以愉快的通信了。

这个方式就是“非对称加密”,这个 箱子 就是 公钥开锁的钥匙 就是 私钥

细想一下,有个问题,Bob 怎么确认箱子来自 Alice 而不是 Mallory 呢?为此,Alice 决定给箱子签个名,Bob 收到后先检查一下签名就可以确认了。

但这样还不够稳妥,Alice 决定让最权威的 Ted 来签名,Ted 是干啥的?他非常有名望,是个绝对值得信赖的家伙,他的签名大家都认,Ted 就是大名鼎鼎的 CA (Certification Authority)。

Alice 与 Ted 建立了合作,Ted 收到 Alice 的请求就会为她签名,而 Mallory 是得不到 Tex 给 Alice 的签名的,这样 Bob 就可以放心了。

这就是 HTTPS 的通信原理了,是不是很好理解。

我们可以看到 HTTPS 比 HTTP 的流程重了很多,有个箱子,还有签名,还增加了往返过程,性能肯定有所影响,这一切都是为了安全,所以我们要根据自己的需求场景来选择什么时候使用 HTTPS,什么时候使用 HTTP。

本文翻译整理自:

https://medium.freecodecamp.org/https-explained-with-carrier-pigeons-7029d2193351


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

全栈开发之道

全栈开发之道

和凌志 / 电子工业出版社 / 68.00元

全栈(Full Stack)是一种全新的以前端为主导的框架,框架选型聚焦在MEAN(MongoDB、Express、AngularJS、Node.js)上。选用MEAN全栈技术,可以快速地实现敏捷开发,尤其是到了产品的运营阶段,其优势表现得非常明显。本书主要介绍MEAN全栈技术,分为入门篇、基础篇和实战篇,入门篇对全栈进行了概述,基础篇重点介绍了全栈的四个主要技术,即MongoDB、Express......一起来看看 《全栈开发之道》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具