端到端加密

端到端加密（英語：End-to-end encryption，縮寫：E2EE），是一種只有参与通讯的用户可以读取信息的通信系统。它可以防止潜在的窃听者——包括电信供应商、互联网服务供应商以及该通讯系统的提供者——获取双方通信的明文。此类系统被设计为可以防止潜在的监视或篡改企图。举例来说，使用端到端加密的通讯提供商，无法解密用户的消息，更无法将其客户的通讯消息提供给当局。 在一个端到端加密的系统中，用于加解密的密钥必须被、且仅被参与通讯的各方掌握。为实现这一目的，端到端加密系统可以使用事先预定好的一串字符（称为“预共享密钥（英语：pre-shared key）”）来加密数据（如PGP），也可以使用该字符串生成一次性密码来进行加密（如每一次交易流程使用唯一密钥（英语：Derived unique key per transaction））。此外，参与通讯的各方还可以通过协商（迪菲-赫尔曼密钥交换协议）创建密钥（如OTR）。 直到2016年，典型的基于中心服务器的通信系统尚不包括端到端加密功能。此类系统只能保证客户端到服务端之间的通讯受到保护。这意味着通讯双方必须信任服务端的运营者，因为他可以阅读通讯的全部明文内容。例如微信，使用者到微信的服务器的连接使用 MMTLS 加密，但仅仅加密于使用者和服务器之间，消息在服务器上传递时服务器会解密消息到原始文本。 相比之下，端到端加密被认为是更安全的。密钥是为最终用户分发的，比如如果在微信实现端到端加密，通信中的任意一方首先以另一最终用户的公钥加密文本，然后再以 MMTLS 的公钥加密，有两次加密，微信的服务器仅能解密第一重，只可以看到密文，而明文仅仅出现于通信两端用户的设备上。 对于使用普通即时通讯（IM）产品的用户，通常可以选择使用第三方客户端或加解密插件，以便在非E2EE协议的通讯中实现端到端加密。 一些非E2EE的通讯系统，例如拉维毕特和 Hushmail 宣称提供了端到端加密，但实际上并没有。 而另一些系统，例如Telegram和谷歌Allo，由于没有默认启用端到端加密而受到了批评。 端到端加密能确保数据安全保密地传输于通讯的两端之间。但对于不怀好意的窃听者而言，与其尝试破解加密，不如冒充的消息接受方（例如，在密钥交换期间冒名顶替，或是设法将收件人公布的公共密钥替换成自己的）来得方便，因为此后，发信人发出的信息将以一个窃听者掌握的密钥进行加密。在获取解密的信息后，监听者还可以冒充发信人，与实际的接收者进行密钥交换、发送讯息，以避免通讯双方察觉异常。由于攻击者处在通讯双方之间，因此这种攻击方式被称为中间人攻击。 大多数端到端加密协议都设计了某种形式的终端认证机制，专门用来防御中间人攻击，例如依靠数字证书认证机构或信任网络进行验证。其他的技术包括的针对用户公钥或预共享密钥生成密码哈希（设备指纹）。通讯各方可以通过外部（out-of-band）通信渠道来校验这一指纹，便可确认通讯的完整性和真实性（但不能保证机密性），之后再展开真实对话。如果指纹匹配的话，理论上可以确认不存在中间人攻击。 为了方便人工检查，指纹通常会显示为十六进制字符串。这些字符串通常会编排成特定格式并编组，以提高可读性。例如，128位MD5指纹会显示如下： 43:51:43:a1:b5:fc:8b:b7:0a:3a:a9:b1:0f:66:73:a8 在一些协议中，指纹会被显示成自然语言。这是通过在指纹块与文字之间建立一对一的映射来实现的，因此不会有熵损失。有些协议还能匹配地显示为用户的母语（如参照设备的语言设定）。 但是，在跨语言的环境下这种技术会带来一些问题。 为了提高本地化程度，一些协议选择将指纹显示为十进制字符串，而不是十六进制或自然语言串。 现代化的通讯应用也可以把指纹显示为二维码，供用户使用其他设备扫描读取。 端到端加密并不能避免终端本身的安全风险。每个用户的计算机等设备上仍然存在密钥被盗（以进行中间人攻击），或是是被解密的信息被读取的可能性。即使是最完美的加密通信，他的安全性仍然受制于两端“信箱”的安全性。提升端点安全性的手段主要有：将密钥的产生、储存和加解密操作独立到一个小的智能卡上，例如Google Project Vault。 然而，由于明文输入和输出仍然对于用户设备来说依旧是可见的，因此恶意软件仍然可以实时窃听用户的对话。一个更强大的方式是将所有敏感数据隔离到一台由网闸完全限制的计算机上。一些专家已经建议将PGP用于此目的： 如果我真的要把自己的性命托付给一个软件的话，我不会选那些华而不实的东西——我选GnuPG，而且我大概会把它运行在一个与世隔绝的电脑上，再把电脑锁进地下室。 ——Matthew D. Green，A Few Thoughts on Cryptographic Engineering 然而，正如布鲁斯·施奈尔所指出的，美国和以色列开发的“震网”病毒成功地通过离线渠道进入并瘫痪了伊朗在纳坦兹建设的核设施。 为了避免恶意软件导致的密钥泄漏、一种方法是将可信计算基分散在两个单向连接的计算机上，以避免恶意软件感染及其导致的敏感数据泄漏。 一些公司还可能还会自觉不自觉地在他们的软件中引入后门，导致密钥协商机制被破坏，或是加密被绕过。在2013年，爱德华·斯诺登披露的信息显示，Skype有一个后门允许微软将其用户的信息泄漏给美国国家安全局，尽管在公开渠道Skype宣称其使用了端到端加密。 即时通讯软件比较 VoIP軟體的比較 客戶端加密 點對點加密（英语：Point to Point Encryption） Hacker Lexicon: What Is End-to-End Encryption?. WIRED. [2015-12-22]. （原始内容存档于2015-12-23） （英语）.  McLaughlin, Jenna. Democratic Debate Spawns Fantasy Talk on Encryption. The Intercept. 2015-12-21 [2017-08-08]. （原始内容存档于2015-12-23）.  Chris Alexander, Ian Avrum Goldberg. Improved User Authentication in Off-The-Record Messaging (PDF). Proceedings of the 2007 ACM workshop on Privacy in electronic society (New York: Association for Computing Machinery). February 2007: 41–47 [2017-08-08]. doi:10.1145/1314333.1314340. （原始内容存档 (PDF)于2016-02-27）.  What is end-to-end encryption (E2EE)?. Cloudflare. [2022-03-10]. （原始内容存档于2022-03-10） （英语）. A message is encrypted as it travels from the sender to the service's server, and from the server to the recipient, but when it reaches the server, it is decrypted briefly before being re-encrypted.  End-to-End Encryption. EFF Surveillance Self-Defence Guide. Electronic Frontier Foundation. [2016-02-02]. （原始内容存档于2016-03-05）.  How to: Use OTR for Windows. EEF Surveillance Self-Defence Guide. Electronic Frontier Foundation. [2016-02-02]. （原始内容存档于2016年1月20日）.  Grauer, Yael. Mr. Robot Uses ProtonMail, But It Still Isn’t Fully Secure. WIRED. [2017-08-08]. （原始内容存档于2017-03-09） （英语）.  Why Telegram's security flaws may put Iran's journalists at risk. Committee to Protect Journalists. 2016-05-31 [2016-09-23]. （原始内容存档于2016-08-19）.  Hackett, Robert. Here's Why Privacy Savants Are Blasting Google Allo. Fortune. Time Inc. 2016-05-21 [2016-09-23]. （原始内容存档于2016-09-10）.  Schneier, Bruce; Ferguson, Niels; Kohno, Tadayoshi. Cryptography engineering : design principles and practical applications. Indianapolis, IN: Wiley Pub., inc. 2010: 183. ISBN 978-0470474242.  What is man-in-the-middle attack (MitM)? - Definition from WhatIs.com. IoT Agenda. [2016-01-07]. （原始内容存档于2016-01-05） （英语）.  pEp White Paper (PDF). pEp Foundation Council. 2016-07-18 [2016-10-11]. （原始内容存档 (PDF)于2016-10-01）.  Marlinspike, Moxie. WhatsApp's Signal Protocol integration is now complete. Open Whisper Systems. 2016-04-05 [2016-10-11]. （原始内容存档于2016-10-10）.  Budington, Bill. WhatsApp Rolls Out End-To-End Encryption to its Over One Billion Users. Deeplinks Blog. Electronic Frontier Foundation. 2016-04-07 [2016-10-11]. （原始内容存档于2016-09-12）.  Julie Bort, Matt Weinberger "Google's Project Vault is a tiny computer for sending secret messages" （页面存档备份，存于互联网档案馆）, Business Insider, NYC May 29, 2015 Whonix Wiki "Air Gapped OpenPGP Key" （页面存档备份，存于互联网档案馆） Bruce Schneier "Air Gaps" （页面存档备份，存于互联网档案馆）, Schneier on Security, October 11, 2013 存档副本. [2017-08-08]. （原始内容存档于2017-03-31）.  Goodin, Dan. Think your Skype messages get end-to-end encryption? Think again. Ars Technica. 2013-05-20 [2017-08-08]. （原始内容存档于2015-12-22）.  Greenwald, Glenn; MacAskill, Ewen; Poitras, Laura; Ackerman, Spencer; Rushe, Dominic. Microsoft handed the NSA access to encrypted messages. the Guardian. 2013-07-12 [2017-08-08]. （原始内容存档于2015-11-19）.  Ermoshina, Ksenia; Musiani, Francesca; Halpin, Harry. End-to-End Encrypted Messaging Protocols: An Overview. Bagnoli, Franco; et al (编). Internet Science. INSCI 2016. Florence, Italy: Springer: 244–254. September 2016 [2017-08-08]. ISBN 978-3-319-45982-0. doi:10.1007/978-3-319-45982-0_22. （原始内容存档于2021-04-26）.