端到端加密可防止消息传递服务监视用户之间的私人通信。
阅读本文后,您将能够:
复制文章链接
端到端加密 (E2EE) 是一种消息传递类型,它使消息对所有人保持私密,包括消息传递服务。使用 E2EE 时,消息仅在发送消息的人和接收消息的人面前以解密形式出现。发送者是对话的一个“端”,而接收者是另一个“端”;因此得名“端到端”。
将端到端加密想象成一封信,它在密封的信封中进行邮寄。发信的人可以阅读它,收信的人可以打开信封并阅读它。邮政服务员工无法阅读这封信,因为它仍然密封在信封中。
许多消息传递服务提供加密通信,但并不是真正的端到端加密。消息在从发送者到服务的服务器的过程中,以及从服务器到接收者的过程中是加密的,但是当它到达服务器时,它会短暂解密,然后再重新加密。(常见的加密协议 TLS 就是这种情况,请阅读下文了解更多信息。)
想象一下,如果有一家邮政服务机构,在接受某人的投递信件后,打开信封并将信件转移到一个新信封中,然后再将其递送给收件人。这封信的内容可能会暴露给邮政服务的员工。
该服务可以承诺不会阅读解密形式的邮件——就像上面示例中的邮政服务可能承诺其员工在将信件转移到新信封时永远不会阅读一样。但是发送消息的人只能被迫相信消息服务会信守承诺。
E2EE 是“端到端”的,因为中间的任何人都不可能解密消息。用户不必去信任他们正在使用的服务不会阅读他们的消息:服务根本无法做到。想象一下,如果有人不是用信封寄信,而是把它放在一个只有他们有钥匙的锁着的盒子里寄出。现在,除了预期的收件人之外,任何人都无法阅读这封信。这就是 E2EE 的运作方式。
加密的运作原理是更改数据,以便只有拥有特定知识(即密钥)的人才能解释数据。假设 Alice 向 Bob 发送了一条消息,但 Chuck 在消息到达 Bob 的途中窃取了该消息。如果 Alice 使用她和 Bob 都拥有的密钥对消息进行加密,Chuck 就无法读取它,而 Alice 的消息仍然是安全的。相反,如果消息到达 Bob 处,Bob 能够使用他拥有的密钥解密消息,然后他可以阅读消息。
密钥可以在不同的环境中采用不同的形式。在上面的示例中,密钥可能就是一组用于解密 Alice 消息的指令,十分简单。对于互联网上的通信,密钥是一串位元,它在用于加密和解密数据的复杂数学方程式中发挥作用。
使用 E2EE,可以加密和解密消息的密钥仍然保存在用户的设备上。如果 Alice 和 Bob 使用一个 E2EE 消息传递应用程序,该应用程序会在 Alice 的手机上保存一个密钥,在 Bob 的手机上保存一个密钥。Alice 的手机用密钥加密她的消息,然后将加密的消息传输到 Bob 的手机。Bob 的手机会自动应用密钥并解密消息,从而允许 Bob 阅读它。
端到端加密使用一种专门的加密形式,称为公钥加密(有时也称为 非对称加密)。公开密钥加密使双方能够进行通信,而不必通过不安全的渠道发送密钥。
公钥加密使用两个密钥而不是一个:一个公钥和一个私钥。虽然包括消息传递服务在内的任何人都可以查看公钥,但只有一个人知道私钥。用公钥加密的数据只能用私钥(不是公钥)解密。这与对称加密形成对比,对称加密只使用一个密钥来加密和解密。
假设 Alice 和 Bob 需要更改他们用来加密通信的密钥。Alice 是否应该简单地向 Bob 发送一个新密钥?不,因为 Chuck 可能会在传递给 Bob 的途中窃取并复制新密钥,然后他可以解密他们未来的所有通信。相反,Alice 和 Bob 决定使用公钥加密。Alice 为自己保留了一个私钥,并将公钥发送给 Bob ——这样一来,Chuck 是否在传输过程中窃取了密钥并不重要,因为只有 Alice 拥有私钥。
传输层安全 (TLS) 是一种加密协议,与 E2EE 一样,它使用公钥加密并确保没有任何中间方可以读取消息。
但是,TLS 是在用户和服务器之间实行的,而不是在两个用户之间实行。这可以保证数据在进出服务器的传输过程中是安全的,但服务器本身上的数据是解密的形式。这通常是必要的——例如,如果用户正在使用 Web 应用程序,则服务器需要访问他们的数据才能使应用程序运行。但是,从隐私的角度来看,这并不适用于所有情况。例如,如果用户想要互相发送消息,他们可能不希望服务提供商能够看到他们的消息。
E2EE 确保除了正在相互通信的两个人之外,没有人可以看到消息(前提是他们使用的设备没有遭到入侵或被盗)。如果实施得当,它不需要用户相信服务会正确处理他们的数据。因此,E2EE 让人们可以完全控制谁可以阅读他们的消息,从而使他们能够保持消息的私密性。
E2EE 确保消息在传输过程中的安全(当它们从一个人传递到另一个人时)。但是一旦消息到达目的地,它就不会再保护它们。
假设 Alice 和 Bob 正在使用 E2EE 应用程序,但 Chuck 偷了 Bob 的手机。现在 Chuck 可以看到 Alice 给 Bob 的消息了。如果 Chuck 不想费心去偷 Bob 的手机,他也可以偷偷溜到 Bob 身后,越过他的肩膀查看 Alice 的信息。或者,他可以尝试用恶意软件感染 Bob 的手机,以窃取 Alice 的消息。不管怎样,仅 E2EE 并不能保护 Bob 免受此类攻击。
最后,E2EE 不能保证是面向未来的。如果实施得当,现代加密方法足以抵抗来自世界上最强大的计算机的加密破解工作。但未来计算机可能会变得更强大。量子计算机如果得到发展,将能够破解现代加密算法。使用 E2EE 目前能够保证消息的安全,但可能无法永久保证消息的安全。
在网络安全中,后门程序是绕过系统正常安全措施的一种方式。想象一栋完全安全的建筑物,所有门上都有多把锁,只有后面的一扇隐藏门没有上锁,而且只有少数人知道这扇门。加密后门程序有点像这样;这是一种访问已被加密“锁定”的数据的秘密方式。一些加密后门程序实际上是故意内置到服务中的,以允许服务提供商查看加密数据。
曾经有过这么一些案例,服务声称提供安全的 E2EE 消息传递,但实际上已经在其服务中构建了后门程序。他们可能出于多种原因这样做:访问用户消息并扫描它们是否存在欺诈或其他非法活动,或者全面监视他们的用户。如果用户希望将消息保密,则应确保仔细查看服务的服务条款和金丝雀安全声明。
一些人认为,E2EE 服务提供商应在其加密中建立后门程序,以便执法机构在必要时可以查看用户信息。数据隐私倡导者往往不同意,因为后门程序会削弱加密并减少用户隐私。
Cloudflare 的《金丝雀安全声明》表示:“Cloudflare 从未应执法部门或其他第三方要求,削弱、破坏或推翻其任何加密。”请参阅 Cloudflare 透明度报告了解更多详情。