用信鸽解释HTTPS

密码学是一个难以理解的科目,它充满了数学证明。但除非你实际上是开发加密系统,以较高的抽象层次理解发生了什么,并不会涉及到大部分的复杂性。

如果你打开了这篇文章希望创建下一个 HTTPS 协议,我很抱歉地说鸽子是不够的。否则,就煮一杯咖啡,享受这篇文章。

爱丽丝,鲍勃 和 ... 信鸽?

你在因特网上面的一切活动(阅读文章,在亚马逊购物,上传宠物图片)可以归结为向服务器发送信息和从服务器收信息。

这有点儿抽象,因此让我们想象一下那些信息是由信鸽传递的。我知道者看起来很随意,但是相信我,HTTPS 也是以同样的方式工作的,虽然非常快。

也不是谈论服务器,客户端和黑客,我们将会谈论爱丽丝,鲍勃和马洛里。如果这不是你第一次试图了解加密概念,你会认出这些名词,因为它们广泛应用于技术文献。

一次幼稚的通讯

如果爱丽丝想要给鲍勃发送一个信息,她往信鸽的腿上绑了一个信息,并把它发送给鲍勃。鲍勃接收到信息,阅读,一起都是好的。

但是如果马洛里拦截爱丽丝在飞行中的信鸽并且改变了信息?鲍勃没有办法直到爱丽丝发送来的信息在运输的途中是否被修改了。

这就是 HTTP 的工作方式。相当可怕,对吗?我不会通过 HTTP 发送我的银行凭证,你也应该一样。

一段加密过的代码

如果爱丽丝和鲍勃非常的狡猾。他们同意使用一个加密过的代码传递信息。它们在字母系统中每个字母都偏移三个位置。例如 D -> A,E -> B,F -> C。那么纯文字信息 “secret message”变成“pdzobq jbppxdb”。

现在如果马洛里拦截了信鸽,她不能将信息更改为另一段有意义的信息,也不明白拦截到的信息说了什么,因为她不知道编码。但是鲍勃可以反向应用到代码并且将信息解密,A -> D,B -> E,C -> F。密码文本“pbzobq jbppxdb”将会被解密回“secret message”。

成功了!

这被称为对称秘钥加密,因为如果你知道如何加密一个信息,你也知道怎么去解密。

上面我描述的代码普遍被称为 凯撒密码。在实际应用中,我们使用更漂亮更复杂的代码,但主要意思是一样的。

我们如何决定密钥呢?

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

问题是如果爱丽丝和鲍勃在用鸽子发送信息之前没有相见,它们将没有办法安全地建立一个密钥。如果在信息本身携带上密钥,马洛里将会拦截信息发现密钥。这将会使马洛里在爱丽丝和鲍勃开始加密他们的信息之前和之后阅读和修改信息。

这是一个典型的中间人攻击例子,唯一可以避免的方式是一起改变加密系统。

携带盒子的鸽子

因此爱丽丝和鲍勃想到了一个更好的系统。当鲍勃想要给爱丽丝发送信息时,他将遵循以下程序:

  • 鲍勃发送了没有带有任何信息的鸽子给爱丽丝。
  • 爱丽丝返回一个鸽子,携带有打开锁的盒子,但是保留密钥。
  • 鲍勃将信息放到盒子里,把锁关上,并且把盒子发送给爱丽丝。
  • 爱丽丝接收到盒子,用密钥打开,然后阅读。

这种方式,马洛里不能通过拦截鸽子来改变信息,因为她没有密钥。当爱丽丝想要发送信息给鲍勃时,遵循同样的过程。

爱丽丝和鲍勃仅使用通常被称为非对称密钥加密。它被称为非对称,是因为即使你可以加密信息(锁上盒子),但你不能解密(打开一个关着的盒子)。从技术上来说,盒子是公钥,打开盒子的是私钥

我如何相信这个盒子?

如果你注意了,可能已经注意到我们仍然有个问题。当鲍勃接受到那个打开的盒子,他如何确定盒子来自于爱丽丝,并且马洛里没有拦截鸽子,也没有

爱丽丝决定她将给这个盒子签名,用这种方式,当鲍勃接受到盒子,他会检查签名并且知道盒子是由爱丽丝发过来的。

你们可能会想,鲍勃如何首次辨识出爱丽丝的签名的?好问题。爱丽丝和鲍勃也有这个问题,因此他们决定,是泰德为盒子签的名,而不是爱丽丝。

谁是泰德?泰德非常有名,众所周知,是一个值得信赖的小伙子。泰德把他的签名给了每个人,每个人都相信泰德只为那些合法的人签名盒子。

如果泰德确认寻求签名的是爱丽丝,那么只会为爱丽丝的盒子签名。因此,马洛里不能得到被泰德签名的爱丽丝的盒子,鲍勃将会知道盒子是骗子,因为泰德只为验证过身份的人签名盒子。

泰德的术语通常被称为认证机构,你读这篇文章的浏览器和不同发证机构的签名一起打包。

因此当你第一次链接到网站,你相信它的盒子,因为你信任泰德和泰德告诉你盒子是合法的。

盒子很重

爱丽丝和鲍勃现在有一个可依赖的交流系统,但是他们意识到,鸽子携带盒子相对于携带信息来说有点儿慢。

他们决定他们将会使用盒子的方法(非对称加密),仅仅使用对称加密选择一个密钥加密信息(记得凯撒密码吗)。

这样就两全其美了。非对称加密的可靠性和对称加密的高效性。

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

现在你知道了 HTTPS 是如何工作的了吧,你的咖啡已经好了。去喝点儿吧,你值得。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值