纯粹作为技术问题,是否有可能制作包含政府后门的强大加密实现?

信息安全 加密 后门 监视
2021-08-16 13:15:33

所以要立即明确:我认为重新设计现代加密以包括政府“后门”,总的来说,这是一个非常糟糕的主意,原因有很多。我也不(FWIW)实际上认为法律会真正颁布,当一切都说了又做了(无论如何在美国)。但我的问题不是加密辩论的政策或政治方面;这是一个更有趣的技术方面。

撇开你是否应该这样做不谈,你能否调整当前的主要加密标准和实施,以允许一个授权第三方(例如美国政府)监控甲方和乙方之间的加密通信并解密这些对话不必这样做另一个未经授权的第三方也更容易这样做?

在过去的几周里,我阅读了太多的陈述,基本上无法回答:“不。没有机会。” 但通常不清楚该答案是否意味着(a)在不从根本上削弱通用加密的情况下无法进行此类修改,或者(b)技术壮举可能是可行的,但“授权”政府将不可避免地失去控制他们拥有的任何秘密,并允许坏人自由支配个人和组织信息。

我仍然记得 1990 年代美国国家安全局试图通过密钥托管系统在Fortezza/“clipper 芯片”计划中开始这样做的失败。除了政府使用之外,它完全没有任何用途。而且据我了解,密钥托管无论如何都不能真正具有足够的可扩展性以供今天使用。当然,创建“后门”加密很容易......如果你不担心削弱加密与每个攻击者. 但是,如果这些方法不可行,是否有任何替代技术方法(从 30,000 英尺的技术细节层面观察事物)可用于创建加密系统/实现与当前的加密系统/实现一样强大,以防止“未经授权”的第三方解密。或者这真的——就我们目前的知识而言——是不可能的?

2个回答

当然。密钥托管有效,并且很好理解。

大约 20 年前,RSA 在其“企业”版 PGP 6.0 中提供了一个版本。PGP 使用混合加密,其中消息使用对称密码加密,然后对称密码的密钥使用接收者的公钥加密。他们的密钥块支持使用多个公钥加密对称密钥,允许多个不共享私钥的接收者。

在该产品中,密钥托管是通过引入额外的公钥加密对称密钥来实现的,其中私钥由 PGP 系统的所有者持有。它表面上是为在合法员工丧失工作能力或被解雇时可能需要解密消息的公司创建的。(早期版本存在一个可怕的漏洞,即密钥块不受 MAC 保护,恶意第三方可以默默地添加自己的托管密钥。)

假设您可以将密钥托管强加给标准机构,则可以创建一个安全协议,该协议可以由合法站点和私钥持有者解密。位于主干的网络安全设备可以强制使用密钥托管,除非他们看到密钥交换数据包上的数字签名表明密钥托管密钥已到位,否则它们可能会拒绝通信。像 snort 这样的产品今天已经具备这样的功能;他们只需要合法协议的签名信息,然后可以将 RST 数据包发送到任何不符合的 SSL 或 TLS 密钥交换。

不过,魔鬼在细节中。没有什么可以阻止双重加密,因为网络安全设备无法获得解密数据包以深入检查它们所需的密钥。没有什么可以阻止预先安排的带外信号,例如“桌子左侧的茶壶图片意味着'黎明攻击'”。由于 TLS 无法检测到的定制密钥交换将以光速来来去去。暗网 VPN 会在联邦防火墙周围弹出路由消息。隐写通信机制会将非法消息嵌入到猫视频流和 ICMP ping 请求中。密钥管理和分发将是一场噩梦。想象一下,如果小爱德华·斯诺登决定公布国家安全局的万能钥匙,国家安全会发生什么,

这些措施可能会使普通人更难使用非默认加密,并且可能会定期将他们的 iMessage 信息暴露给 NSA,但它们几乎不会减缓犯罪或恐怖组织的速度。他们将立即在法庭上受到质疑:强迫用户添加密钥托管将无异于政府的强制言论,这在美国是宪法禁止的。

这不仅是可能的,而且我们知道它以前已经做过。 具体来说,过去几年一直在讨论的 Dual_EC_DRBG 算法是一个强密码算法的例子,它已被确认包含一个 NSA 后门,它允许 NSA(并且只有NSA)“完全破坏任何实例化Dual_EC_DRBG”。

引用维基百科条目:

公开确定的弱点之一是该算法可能隐藏一个对算法设计者有利的后门——美国政府的国家安全局 (NSA)——而没有其他任何人。2013 年,《纽约时报》报道说,他们拥有但从未向公众公布的文件“似乎证实”后门是真实的,并且是 NSA 故意插入的,作为 NSA 的 Bullrun 解密计划的一部分。

为了更好地描述这个后门的性质,我将向您介绍Bruce Schneier 在 2007 年发表的一篇博客文章

在 8 月的 CRYPTO 2007 会议上的非正式演讲(.pdf) 中,Dan Shumow 和 Niels Ferguson 表明该算法包含一个只能被描述为后门的弱点。

它是这样工作的:在用于定义算法椭圆曲线的标准中有一堆常数——固定数字。这些常数列在 NIST 出版物的附录 A 中,但没有说明它们的来源。

舒莫和弗格森表明,这些数字与第二组秘密数字有关,可以作为一种万能钥匙。如果您知道秘密数字,您可以在仅收集 32 个字节的输出后预测随机数生成器的输出。实际上,您只需要监控一个 TLS 互联网加密连接即可破解该协议的安全性。如果您知道秘密数字,则可以完全破坏 Dual_EC_DRBG 的任何实例化。

研究人员不知道秘密数字是什么。但是由于算法的工作方式,产生常数的人可能知道;他有机会同时产生常数和秘密数字。