实例论证:NSA在安全标准中植入后门
第一个案例
是关于NIST标准,SP 800-90A,该标准详细说明了一种伪随机数生成器(PseudoRandom Generator 以下简称PRG)。一个RPG可以通过计算得到一小组不可预料的随机比特,并进而“延展”得到大量的随机比特数。在密码学中,PRG作为大多数密钥的源头,是必需的。因此,如果你能“破解”某些人的PRG,你就能预测其使用的密钥,进而击溃其整个加密算法。
NIST标准中提供了一些核心算法供PRG选择。其中一个算法使用了一种叫做椭圆曲线的数学结构,在这里我并不打算展开介绍这个数学概念。总之,这个算法使用了两个“公开参数”P和Q,它们均在标准中有指定的值,因此说它们是公开的。
密码学家相信,如果P和Q是随机的,PRG就是安全的。但是2006年,两个独立密码学家指出,通过某种方法选定P和Q后,它们之间就具有了某种特殊的关系。一个“局外人”可能并不知道这种特殊关系的存在,但是如果你知道了描述P和Q之间关系的“密钥”,就可以轻松击溃PRG的安全体系。
知道了这一点,会发现很多事实突然变得有趣起来。首先,NSA看起来十分执意要将这种算法写入标准,即使它的运行效率很低;其次,NSA在标准中指定了P和Q的建议取值范围;第三,NSA并未解释这些给定的取值范围是如何得出的。怎么样,是不是有点儿意思?
不仅如此,现在已经可以通过一些已公开的步骤,得出新的随机的P和Q,也就是说,以上三种问题都可以得到解决,但是NSA并没有这么做。
值得注意的是,(也许是为了辟谣),前不久(9月10日),NIST重新开放了SP 800-90A的公开评论。
第二个案例
是由John Gilmore提出的,他在IPSEC标准中发现了问题。IPSEC被视为安全技术的一块基石,能够为因特网中的个人IP数据包提供完整可靠的加密。一个成功广泛部署的IPSEC协议可以大大强化因特网安全,为多种网络通信提供加密保护。
John说,NSA及其代理部门始终在降低该标准的安全水平与执行效率,同时却不断提高其复杂程度和安全方面的实现难度。尽管John还没有掌握NSA植入后门的确凿证据,但是他发现,NSA的确在不断削弱该标准的效力,事实上,IPSEC已经没有人们想象中的那样安全可靠。
上述案例向我们展示了两种不同类型的后门。第一个关于PRG的案例中,我们怀疑NSA尝试建立一个只有它能使用的后门,因为只有它知道关联P和Q的密钥。第二个关于IPSEC的案例中,NSA不断削弱用户的安全防护能力,这样它就能更轻易地访问你的数据,但同时其他所有人都具有了这样的机会。
可以确定的是,一个私有后门很可能无法一直“私有”。如果真有这样一个magic密钥,能让NSA窥探所有人的秘密,那这把钥匙很可能会被滥用或泄露到外界。因此,NSA私有后门和公开后门之间的界限并不明显。
但是,看起来这两种后门之间还是引起了不同的政策辩论。前者使得NSA能秘密地轻易访问每个人的数据,后者则赋予了每个人这种访问权限,后者的影响力要更加严重。
同时,我们应该看到一个后门是如何创造出来的。在PRG的案例中,需要获得制定标准的专家们通过,NSA才能使其加密过程中那微小的缺陷“蒙混过关”。在IPSEC的案例中,则貌似需要在标准的整个制定过程中不断协调公关活动才有机会制造那小小的缺陷,在这个过程中,即使没有人发现某种模式,也应该能注意到某些单个步骤,(但是却没有)。
也许有人会怀疑,这些案例真的是NSA有意而为之,还是只是空穴来风。对此,我们并不敢保证。但是只要NSA一直拥有参与制定安全标准的许可权限,我们就有必要,对他们所参与制定的任何标准保持怀疑。
via: https://freedom-to-tinker.com/blog/felten/on-security-backdoors/
本文转载来自 Linux 中国: https://github.com/Linux-CN/archive