如何用信鸽来理解HTTPS

原文链接是从阮大神那里看到,转载方便自己以后看。

阮大神博客地址:http://www.ruanyifeng.com/blog/archives.html

原文地址:https://medium.freecodecamp.org/https-explained-with-carrier-pigeons-7029d2193351

 

原文为英文,直接用软件翻译后,自己做了一些修正方便阅读

 

 

https用信鸽解释

密码学是一门很难理解的学科。里面充满了数学证明。但是,除非你真的在开发密码系统相关的工作,否则在很大程度上就没有必要去理解高层次的密码系统机制。如果您打开这篇文章希望学习如何创建一个HTTPS协议,我很遗憾地说,鸽子是不够的。否则,就煮点咖啡,享受这篇文章吧。

爱丽丝,鲍勃和…鸽子?

你在互联网上所做的任何活动(阅读本文、在亚马逊上购买东西、上传图片)都可以归结为从服务器发送和接收消息。

这可能有点抽象,所以让我们想象一下,这些消息是由信鸽。我知道这看起来很武断,但相信我,HTTPS的工作方式是一样的,不过速度要快很多。

此外,我们在这里不谈论服务器、客户端和黑客,而是讨论Alice、Bob和Mallory(鸽子)。如果这不是您第一次尝试理解密码概念,您将识别这些名称,因为它们在技术文献中被广泛使用。

第一次天真的交流

如果爱丽丝想给鲍勃发个口信,她就把这条信息贴在信鸽的腿上,然后寄给鲍勃。鲍勃收到这条消息,阅读它,这一切都是好的。

但是,如果有一个叫马洛里的人在鸽子飞行过程中拦截了爱丽丝的鸽子并改变了消息,该怎么办?鲍勃不可能知道爱丽丝发送的信息在传输过程中被修改了。

这就是为什么http起作用了。挺吓人的对吧?我不会通过HTTP发送我的银行凭证,你也不应该。

秘密代码

如果爱丽丝和鲍勃非常狡猾。他们决定用一个秘密代码来写他们的消息。他们将每个字母在字母表中移动3个位置。例如,D→A,E→B,F→C.纯文本消息“机密消息”将是“pbzobqjbppxdb”。

现在,如果Mallory(马洛里)拦截鸽子,她将无法将消息转换为有意义的内容,也无法理解其中的意思,因为她不知道代码。但是Bob可以简单地将代码反向应用并解密A→D、B→E、C→F的消息。密码文本“pbzobqjbppxdb”将被解密回“机密消息”。

成功!

这叫做对称密钥密码学,因为如果您知道如何加密消息,您也知道如何解密它。

我上面描述的代码通常称为凯撒密码。在现实生活中,我们使用更华丽和更复杂的代码,但其主要思想是相同的。

我们怎么决定钥匙?

如果除了发送方和接收方之外,没有人知道使用了什么密钥,则对称密钥加密是非常安全的。在凯撒密码中,键是偏移量。我们把每封信换了多少个字母。在我们的示例中,我们使用了3的偏移量,但也可以使用4或12。

问题是,如果Alice和Bob在开始与鸽子发送消息之前从来没有见过面,他们将无法安全地建立密钥。如果他们在消息本身中发送密钥,Mallory(马洛里)将拦截该消息并发现该密钥。这将允许Mallory在Alice和Bob开始加密消息之前和之后读取或更改消息。

这是典型的中间人现象,避免的唯一方法是将加密系统全部改变。

鸽子提盒

爱丽丝和鲍勃想出了一个更好的系统。当Bob想向Alice发送信息时,她将遵循以下步骤:

  • 鲍勃给爱丽丝发了只鸽子,它是空的,没有任何留言。

  • 爱丽丝把鸽子送回来,鸽子带着一个开着锁的盒子,但却保留着钥匙。

  • Bob将消息放入框中,关闭锁并将该框发送给Alice。

  • Alice接收到该框,用键打开它并读取消息。

这样,Mallory不能通过拦截鸽子来改变消息,因为她没有密钥。当Alice想向Bob发送消息时,也会遵循相同的过程。

艾丽斯和鲍勃刚刚用了俗称的非对称密钥密码学. 它被称为不对称,因为即使您可以加密消息(锁定框),也无法解密它(打开关闭的框)。
在技术演讲中,这个框被称为公用钥匙打开它的键称为私钥.

我怎么相信这个盒子?

如果你注意的话,你可能已经注意到我们仍然有一个问题。当鲍勃收到那个打开的盒子时,他怎么能确定它来自爱丽丝,而马洛里没有拦截鸽子,用她有钥匙的那个盒子换了个盒子?

爱丽丝决定她将在盒子上签名,这样当鲍勃收到盒子时,他会检查签名,并知道是艾丽斯送这个盒子的。

你们中的一些人可能会想,鲍勃首先该如何识别爱丽丝的签名呢?问得好。爱丽丝和鲍勃也有这个问题,所以他们决定,不要让爱丽丝在盒子上签名,泰德会在盒子上签名。

泰德是谁?泰德是一个非常有名,众所周知,值得信赖的人。特德给了每个人他的签名,每个人都相信他只会为合法的人签名。

特德只有在他确定要签名的那个人是爱丽丝时才会签一个爱丽丝的盒子。因此,马洛里无法得到由泰德代表她签名的爱丽丝盒子,因为鲍勃会知道这个盒子是个骗局,因为泰德只有在核实了人们的身份后才会为他们签名。

特德在技术上通常被称为验证局您正在阅读本文的浏览器附带了各种证书颁发机构的签名。

所以当你第一次连接到一个网站时,你信任它的盒子,因为你信任泰德,泰德告诉你这个盒子是合法的。

箱子很重

爱丽丝和鲍勃现在有了一个可靠的通信系统,但他们意识到一个问题,鸽子携带盒子的速度比只携带信息的鸽子要慢。

他们决定使用box方法(非对称密码),只选择一个密钥来使用对称密码加密消息(还记得凯撒密码吗?)。

这样他们就能同时兼具优势。非对称密码的可靠性和对称密码的有效性。

在现实世界中,没有慢鸽子,但是使用非对称密码加密消息比使用对称加密要慢,所以我们只使用它来交换加密密钥。

现在你知道了Https 是如何工作了吧,你的咖啡也应该准备好。去喝吧,这是你应得的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值