基于网页的密码学永远是骗局

Hacker News Top 新闻

摘要

该文章认为,基于网页的端到端加密本质上并不安全,因为分发客户端代码的服务器可以推送恶意更新,导致威胁模型不一致。文章还批评了 WhatsApp 和 Signal 等服务存在类似缺陷。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/05 10:31

# 基于Web的密码学永远是蛇油 来源:https://www.devever.net/~hl/webcrypto 如今,网络上充斥着号称提供“端到端”加密的应用程序。例子包括:文件上传服务,允许上传和分享任意大小的文件,并承诺“端到端加密”;基于Web的密码保管服务,声称由于密码已加密,服务方无法看到你的密码;或者基于Web的加密货币钱包。 这些服务所声称的加密功能毫无例外都是胡说八道。事实上,它们必然如此,因为Web这个平台本身并不具备实现真正端到端加密所必需的功能。 从根本上说,所有基于Web的密码系统都是不连贯的,因为它们建立在一个不连贯的威胁模型之上。 让我先提出一条定律,这条定律既显而易见,却又据我所知是新颖且早该提出的: - **如果一个密码系统的实现由它声称要防范的同一实体分发,那么这个密码系统就是不连贯的。** Web平台固有的模式是:实现客户端Web应用程序的代码由相应网站分发。因此,客户端代码始终由Web服务器的运营者分发。 换句话说,基于Web的“端到端”加密应用声称通过客户端JavaScript实现的加密来防范服务器运营者的恶意行为,但这显然不成立,因为如果服务器运营者心怀恶意,他们完全可以推送不同的客户端JavaScript。(相反,对于服务器运营者以外的实体,通过TLS已经提供了安全保护,因此如果你信任服务器运营者,所谓的“端到端”加密并不会带来额外好处。) Web平台不包含任何功能来打破这种关系(例如,对于某个源可以执行的客户端代码,不信任服务器运营者),因此任何在Web应用中实现“端到端”加密的尝试都必然存在这个问题。没有例外。 值得注意的是,这条定律也适用于非Web应用,即服务提供者(理论上要防范的对象)同时也是客户端软件的发行者;因此,WhatsApp和Signal等专有服务所提供的“端到端加密”同样虚假。(WhatsApp和Signal都禁止使用第三方客户端,并强制执行此政策。) 按照任何正常的定义,如果一个密码系统的供应商在系统部署后仍保留绕过它的能力,那么该系统就存在后门。从这个角度来看,所有基于Web的“端到端”加密都可以被认为是有后门的,WhatsApp和Signal也一样。 如果一个密码系统的实现由它声称要防范的同一实体分发,那么这个密码系统就是不连贯的。 ## 密码学剧场:作为法律技术的蛇油密码学 这自然引出一个问题:为什么这种蛇油密码学如此流行?为什么Meta等公司花费大量资金为WhatsApp等即时通讯系统配备蛇油加密?这些公司的行为不能从提供真正安全性的角度来理解,因为它们的行动与这一目标不符,且其威胁模型是不连贯的。 “端到端”加密在科技公司中流行的真正动机其实相当明显:采用蛇油“端到端”加密的目的并非提供真正的安全性,而是作为一种狡猾的法律手段,使它们得以豁免遵守通常的法律义务,例如执行搜查令、传票和其他法院命令。通过名义上采用“端到端加密”,这些公司可以在政府拿着搜查令找上门时戏剧性地摊手:“我们很乐意协助,但我们什么也做不了!” 毕竟,处理搜查令对这些公司来说只是一个烦人的成本中心和负担。通过在产品上施放蛇油加密的“咒语”,公司可以神奇地豁免于整个类别的法律义务,从而降低成本和潜在的法律风险。 当然,问题在于“我们什么也做不了”并不属实。服务提供者完全可以开发并推送一个带有后门的客户端软件版本。服务提供者真正依赖的是一种特定的法律理论:“我们可以修改软件以便处理这份搜查令,但你不能强迫我们这么做。” 或许你可以称之为**密码学剧场**。密码学剧场的目的是从密码学角度提供真正的安全性,而是作为一种魔法咒语,让用户相信它赋予了用户一种神奇的选择权,可以规避搜查令和传票所带来的义务。因此,从根本上说,密码学剧场必须被理解为一种**法律技术**,而不是密码学技术。 这种法律“魔法咒语”存在几个问题。尤其是,这种法律理论(“你不能强迫我们破坏我们的系统”)似乎相对局限于美国的判例法,而提供蛇油加密的典型公司总部在美国。有一些宪法观点似乎有利于这一论点,例如第一修正案既禁止强制言论也禁止限制言论,并且有判例认为代码是一种言论形式。这类保护在其他国家不太可能有效。 此外,美国政府显然不同意这种解释,因为它多次主张,实际上可以强迫实体破坏其分发的密码系统。至少有两个这样的案例: - **Lavabit事件:** 当爱德华·斯诺登泄露斯诺登文件时,他使用了一个Lavabit邮箱。Lavabit是一项电子邮件服务,号称提供基于Web(因此是蛇油)的加密功能。联邦调查局试图胁迫Lavabit所有者破坏客户端代码,以便解密爱德华·斯诺登的消息。所有者相当高尚地选择关闭整个服务,而不是遵从(也就是说他们有能力遵从)。我不知道Lavabit所有者探索了什么法律选项。可能他们咨询了法律意见后得出结论自己有义务遵从,但也可能他们只是决定没有预算或意愿与美国政府进行复杂且漫长的诉讼。我怀疑是后者。 - **FBI诉苹果案(https://en.wikipedia.org/wiki/FBI_v._Apple):** 联邦调查局试图利用美国法律强迫苹果制作一个被破坏的iOS固件版本,以便解密嫌疑人的iPhone。联邦调查局最终在裁决做出前撤诉,因为他们通过其他方式获得了该iPhone的访问权限。不过,他们显然不打算让此事就此了结。(值得注意的是,苹果的辩护从根本上说是“我们不想这么做,你不能强迫我们”,而不是“我们没有能力这么做”。既然联邦调查局在此案中抱怨的安全控制最终由苹果签名的专有固件来执行,苹果如果愿意完全可以创建破坏这些控制的固件,而联邦调查局正是试图强迫它这样做。从这个角度看,iOS也可以被认为是有后门的,因为供应商保留了破坏系统的能力。) 简而言之,依赖这种事情的问题在于,它随时可能被新的法律裁决推翻,这比起我们通常在采用密码学时希望获得的标准要弱得多。再次强调,密码学剧场必须从根本上被理解为一种法律技术,而不是密码学技术。 依赖这种法律“魔法咒语”并不安全的最后一个原因是,假设政府真的受法律约束这一前提已被证明在绝大多数情况下是错误的。政府经常胁迫公司协助其监控计划,而这些行为后来被证明是非法的。事实上,考虑到过去的PRISM等计划(其目标包括Facebook(现Meta)等公司),这甚至不是猜测;因此,基本上可以确定这些公司仍然受到渗透,并与政府情报部门保持合作关系。 ## 以上内容,以对话形式重申 Alice:我真的很想和Bob聊聊天。要是有什么通讯系统能让他在世界另一端和我通话就好了…… Eve:嘿! Alice:哦,你好。 Eve:我们最先进的*EveMessenger*即时通讯系统能让你立刻和Bob聊天。 Alice:哦,太棒了!让我发条消息给他…… Eve:哇,等等! Alice:怎么了? Eve:你难道不担心我可能会偷听你发给Bob的消息吗? Alice:为什么,你会吗?我不能相信你吗? Eve:哦,你当然可以。实际上,我们非常值得信赖。你都不敢相信我们有多可靠。 Eve:但是,为了保险起见,拿着这个软件。它会加密你和Bob的通信,连我们都看不到。 Alice:……哦,不错。谢谢! Alice:……但是等等……这个软件是你提供的。 Eve:当然。 Alice:那它怎么防止你看到我的通信呢? Eve:它会在你发送的所有内容到达我们之前进行加密。我们什么也看不见! Alice:但这个软件会自动更新,对吧? Eve:对。 Alice:所以你随时可以更新它。 Eve:对。 Alice:所以如果你什么时候想监视我的对话,有什么能阻止你推送一个破坏加密的更新呢? Eve:啊……这个……你知道,这太偏执了。我们为什么会那样做? Alice:换句话说,如果你们变得不可信,它并不能保护我的通信不受你们窥探。 Eve:嗯……是的…… Alice:那么它到底要防范什么? Eve:好吧,你必须信任我们,但其他人呢?有各种各样的人想偷听。所以至少你只需要信任我们,好心的Eve,而不用信任别人! Alice:等一下。 Alice:即使没有这个特殊软件,我的电脑和你的消息系统之间的通道也已经安全加密了,对吗? Eve:是的,没错…… Alice:Bob的电脑和你的消息系统之间的通道也一样,对吗? Eve:是的…… Alice:所以即使没有这个特殊软件,也没有其他人能偷听我的消息。那么,如果这个特殊软件并不能阻止那些本来就已经被阻止的第三方偷听我的消息,又不能阻止你(服务提供者)偷听我的消息,它到底*能*阻止谁偷听我的消息? Eve:呃…… Eve:…… Eve:…… Eve:…… Eve:好吧,听着。你抓到我们了。我们的“端到端”加密消息系统从技术角度讲毫无意义。 Alice:我很惊讶你承认这一点,但诚实值得表扬。 Eve:我们实际上并不是为了从技术上保证安全才采用这个系统的。就像你说的,这毫无意义。或者说,密码学家会说,威胁模型是不连贯的。一个密码系统被设计来防范提供其软件的同一实体,这毫无意义。实际上,我们这样实施是出于不同的动机…… Alice:什么动机? Eve:我们其实并不想偷听你——暂时假设这是真的。但还有其他实体可能想这样做——比如政府,他们会拿着搜查令找上门。 Eve:实际上,说实话,这甚至不完全是关于不想偷听你。我们其实并不太在乎你——你究竟是谁?但老实说,处理那些搜查令已经变成了一个巨大的成本中心。我们得出的结论是,能够偷听用户更多是一种负担而不是资产。 Eve:但有了这种古怪的加密系统,事情就太好了。当他们拿着搜查令敲门时,我们只需说“我们做不到,它加密了”,然后他们就走了! Alice:换句话说,你建立这个“端到端加密”系统,不是为了防范服务提供者(也就是你)可能恶意行为,而是作为一种法律漏洞来豁免自己处理搜查令的义务。 Eve:差不多吧。 Alice:不知怎的,我觉得你这种赤裸裸的机会主义几乎有点可爱…… Alice:但如果政府直接要求你推送一个破坏这个加密方案的软件版本呢?而且还对你下达禁言令,让你不能告诉任何人? Eve:别担心,他们做不到。 Alice:他们做不到吗?为什么? Eve:嗯,我们认为法律中有足够多的技术细节,使得他们很难做到这一点。大概吧。 Alice:联邦调查局不是最近对苹果提起了一个诉讼,主张应该强迫苹果制作一个特殊的固件更新来破坏自己手机的安全性,以便联邦调查局能破解其中一部手机吗? Eve:是的,他们确实这么做了…… Alice:那个案子撤诉了,但他们在诉讼中显得非常认真。只需要一个判例,政府就可以来要求你做同样的事。 Eve:嗯……也许吧…… Alice:而且这不是政府第一次拒绝这个前提。Lavabit是一个基于Web的电子邮件服务,使用了与你完全相同的模式。邮件通过在Web浏览器中使用JavaScript加密,因此Lavabit supposedly无法访问它们。但当然,那个JavaScript是从Lavabit自己的网站提供的。 Alice:Lavabit的一位著名用户是爱德华·斯诺登。在他逃离美国后,联邦调查局盯上了Lavabit。当Lavabit的所有者解释所有内容都加密后,联邦调查局开始要求他修改网站以破坏加密。换句话说,美国政府完全乐意要求Lavabit推送被破坏的加密软件。最终,Lavabit的所有者选择关闭整个服务而不是破坏它,这值得称赞,但这忽略了他本来可以做到这一点的事实,而且美国政府已经在苹果和Lavabit案件中反复试图强迫人们做这种事。 Eve:但我们是美国公司,你知道!而且有判例认为代码是言论,第一修正案既保护言论自由不受限制,也保护不受强制言论。强迫我们推送被破坏的软件以便执行政府搜查令,这会侵犯我们的言论自由权。 Alice:这也许是真的,我祝你的法律论点好运。但我们现在讨论的是完全不同的事情,不是吗?我们开始时讨论的是一个密码系统——一种技术措施——而现在我们在谈论法律。换句话说,你根本不再做出任何*密码学*上的安全声明了。 Alice:在我看来,实际情况是,你在利用法律技巧来豁免自己处理搜查令,这基于一种极其精细的对美国法律及其规避方式的理解。密码学的参与只是实现这一目的的必要组成部分。但这种对美国法律的理解会随着时间改变和演变,并且可能被一个单独的裁决彻底推翻。如果发生这种情况,从*技术*上就没有任何东西能阻止你偷听所有人,因为我们已经一致认为你的系统没有提供任何连贯的密码学安全模型。在这幅图景中,密码学只是你在与美国政府就监控问题进行的法律和公关斗争中的一个必要技术细节。 Eve:……这大致上正是我们

相似文章

如果你喜欢MITM攻击,就别管DNSSEC

Lobsters Hottest

文章认为,忽略DNSSEC会让用户暴露在中间人攻击之下,并以电子邮件、Matrix和XMPP为例,将其与历史上对HTTPS的抵制进行类比。

不要自己造轮子…

Lobsters Hottest

作者将“不要自己造轮子”的原则扩展到Web开发领域,反对自定义实现滚动、链接导航、文本选择等浏览器原生行为。

Dontsurveil.me

Hacker News Top

加拿大的C-22法案将要求Signal和WhatsApp等通讯应用为政府访问构建后门,破坏端到端加密,并威胁所有用户的隐私。