HTTPS 与信鸽

本文翻译自国外的技术文章,原文链接

密码学是一门很复杂的学科,全是数学证明。除非你要开发加密相关的系统,不然没有必要了深解的太深入。

如果你想通过这篇文章,来创建下一代 HTTPS 协议,这是远远不够的。若你有了觉悟,泡杯茶,然后开始学习鸽子通信。

Alice, Bob and … pigeons

作者声明:关于 Alice 和 Bob 等名称未做本土化翻译处理,目的是让读者能够在脑海中将密码学和前面的名称联系起来。

你在网上的做的任何操作(阅读文章,逛淘宝,分享宠物照片),本质上是向服务器发送消息,和接收服务器发来的消息。

这似乎有点抽象,我们假设消息都使用信鸽传输。这个比喻可能有点随意,但是 HTTPS 的原理就和信鸽一样,只不过比信鸽传输消息更快。

我们使用 Alice、Bob 和 Mallory 来代指服务器、客户端和黑客。如果你不是第一次学加密相关的知识,那么你应该对这些名称很熟悉,因为它们在技术文献中被广泛使用(译者注:技术文献中出现 Alice、Bob,就像高中英语作文中的「李华」一样)。

第一次简单的交流

Alice 向 Bob 发送消息,她需要把写好的信绑在鸽腿上。Bob 收到 Alice 的信,一次简单的交流就完成了。

假如鸽子飞行过程中,被一个叫 Mallory 的坏逼抓住并篡改了信息呢?Bob 是不可能知道消息被篡改了。

这就是 HTTP 的工作原理。很可怕吧?我不会通过 HTTP 来发送我的私密数据,你也不应该。

加密交流

Alice 和 Bob 很聪明,他们协商用密码写信。他们将在字母表中将每个字母移动3个位置。例如 D → A,E → B,F → C。纯文本消息 “ secret message” 应该是 “pbzobq jbppxdb”。

现在 Mallory 抓住了鸽子,但由于他不知道密码,因此并不理解信的内容,他也不能把消息篡改成有意义的东西。但是 Bob 可以反推出消息内容,在 A →D,B → E,C → F 的地方解密消息。密码文本 “pbzobq jbppxdb” 将被解密回 “secret message”。

成功了!

这就是所谓的对称密钥加密,即如果你知道如何加密消息,你也知道如何解密它。

上面描述的加密方法通常被称为凯撒密码。在现实生活中,我们使用更复杂的加密方法,但主要思想是一样的。

如何商定加密方法

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

问题是,如果 Alice 和 Bob 在开始用鸽子发送消息之前没有见面,他们就没有办法安全地商定一个密钥。如果他们把钥匙放进信封里 Mallory 就会拦截信息并找到钥匙。然后通过钥匙获取消息内容,再篡改消息,发给 Bob。

这就是一个典型的中间人攻击例子,唯一避免方法是改变现在的加密方式。

信鸽带盒子

所以 Alice 和 Bob 想出了一个更好的办法。 当 Bob 想向 Alice 发送消息,应该遵从以下原则:

  • Bob 放飞一只鸽子给到 Alice。
  • Alice 在鸽子腿上绑一个盒子和一个打开的锁,然后自己留着钥匙。
  • Bob 把消息放到盒子里,并用锁锁住盒子,发给 Alice。
  • Alice 收到盒子,用钥匙打开盒子,读到 Bob 发的消息。

由于 Mallory 没有钥匙,就算抓到了鸽子,也无法打开盒子篡改消息。Alice 向 Bob 发送消息也遵循相同的原则。

Alice 和 Bob 通信使用了非对称密钥加密。顾名思义,它是非对称,即使你可以加密一条消息(锁上盒子) ,你也不能解开它(打开盒子)。在技术语言中,盒子被称为公钥,打开它的钥匙被称为私钥

盒子值的相信吗?

如果足够细心,你可能已经注意到通信过程仍有一个问题。因为 Mallory 可以拦截鸽子,并把盒子换成自己的,当 Bob 收到那个打开的盒子时,他无法确定是 Alice 的盒子,还是 Mallory 的。

Alice 决定在盒子上签名,当 Bob 收到盒子并检查签名,就知道是 Alice 发来的。

有人可能在想,Bob 一开始是怎么认出爱丽丝的签名的?好问题,Alice 和 Bob 当然知道这个问题,所以他们决定,让 Ted 代替 Alice 签名。

Ted 是谁?Ted 是一个非常有名,且值得信赖的人。Ted 会给每个合法的人签名,大家都相信他。

Ted 会先确定要签名的人是 Alice,才会给 Alice 盒子签名。Mallory 无法让 Ted 签 Alice 的盒子,Bob 会知道盒子不是 Alice 的,因为 Ted 只有在验证了身份之后,才会在盒子上签名。

Ted 在技术术语中被称为证书颁发机构,您正在阅读本文的浏览器附带了各种证书颁发机构的签名。

因此,当你访问一个网站时,你会相信它的输入框,因为你相信 Ted,并且 Ted 告诉你这个输入框是合法的。

盒子太笨重了

现在 Alice 和 Bob 可以安全可靠的交流了,但同时他们也意识到鸽子带着盒子传消息比只带信封慢很多。

他们协商一个对称加密秘钥(还记得上面的凯撒密码吗?),并把它放进盒子里。另一方收到消息后,就知道对方要用什么加密方法,加密接下来的消息。

在现实世界中没有一直绑盒子的鸽子,使用非对称加密技术加密消息比使用对称加密技术加密消息要慢,所以我们只使用它来交换对称加密密钥。

现在你知道 HTTPS 是如何工作的了,你的咖啡也应该准备好了,尽情享受吧。


HTTPS 与信鸽
http://wszzf.top/2023/03/05/HTTPS 与信鸽/
作者
Greek
发布于
2023年3月5日
许可协议