内容简介:我们在网络的行为(例如看文章、购物、上传图片),简单来说都是向服务器发送消息、接收服务器的消息,这个过程很像为了更加形象,我们把通信过程中的主要角色
我们在网络的行为(例如看文章、购物、上传图片),简单来说都是向服务器发送消息、接收服务器的消息,这个过程很像 信鸽传书 。
为了更加形象,我们把通信过程中的主要角色 服务器、客户端、黑客 的称呼也替换一下, 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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 初识 HTML,最通俗易懂的解释
- 不能更通俗易懂的机器学习名词解释
- 什么是机器学习 Sklearn ?这是我见过的做通俗易懂的解释
- 通俗易懂 QPS、TPS、PV、UV、GMV、IP、RPS 的概念解释
- SVM 原理详解,通俗易懂
- 通俗易懂的设计模式
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JS 压缩/解压工具
在线压缩/解压 JS 代码
图片转BASE64编码
在线图片转Base64编码工具