OpenSSL的软件缺陷,节省您的监视!

在伪随机数生成器(PRNG)错误通常是引起人们的关注,至少在密码界。

已经有过多年的例子不胜枚举。

我们有Debian的“代码修复”即去掉所有,但15位的价值的不可预测性,从 ​​用于保护OpenSSH的随机数发生器。

我们有CryptoCat错误导致零调高约0.4%,过于频繁。

最近我们有一个加密的设计缺陷在Drupal,看到了错误的排序在错误的方式排序使用随机生成的。

但这个故事是不同的。

这是一个快乐的结局OpenSSL的随机性错误的好奇的情况下!

故事开始早在2006年,当标准和标准的美国国家技术研究院,更好地称为NIST的,首先发布了其特别出版物SP800-90A

本文档介绍了四种算法,用于生成加密的强随机数。

→NIST不会调用算法的PRNG,大概是为了摆脱相当不科学的用语 。它要求他们DRBGs代替,简称为确定性随机位发生器

三NIST的DRBGs是传统的:他们两个人使用加密哈希内部以混搭汤伪随机位,而第三个采用对称分组密码(三重DES或AES)使用了类似的结果。

第四算法,它的推移双椭圆曲线确定性的RBG(双EC DRBG)的散发出浓烈的名字,是一个有点不同。

事实上,这是相当不同的,它激起了密码破译的怀疑几乎一次。

这里的原因。

引起猜疑

试想一下,你通过反复混合了一些起始数据,不与对称分组密码或cryptograhpic哈希,但与一个随机生成的公钥的公钥加密算法使您的伪随机汤。

(这不是多么的双EC算法的工作原理精确的高层次的描述,但它会做作为一种比喻来解释为什么解密码是可疑的。)

你可能会接受公钥加密方面可以作为一个单向函数,就像一个密码散列, 前提是相关联的私有密钥已被销毁

请记住,这是一个不精确的比喻和不精确的解释…

……但现在问自己,“如果保持NIST的东西类似于一个私钥了它的袖子?”

如果NIST的秘密保留算法的秘密,削弱了双欧共体DRBG,没有告诉任何人?

这将创建一个漏洞,可能使DRBG不仅是确定的,但可预见的,甚至谁可以做不超过监测算法的输出更多的攻击者。

有没有后门?

这一令人担忧的问题,导致多家知名密码学家,尤其是丹Shumow和微软的尼尔斯·弗格森,公然不知道,早在2007年,这一缺陷是否实际上是一个故意的后门在NIST标准。

一晃五年来,当然,和启示通过ueberwhistleblower爱德华·斯诺登约监视有心计由美国国家安全局(NSA)已导致报告的一样好状态后门关注的事实。

其他最近的报道有趣的是声称,美国国家安全局支付的安全公司RSA的1000万美元倾向于使用其软件的质疑双椭圆曲线生成器。

→密码学家一直想知道为什么会有人使用的双EC算法可言,即使其等缺点被忽略,因为它比其他的少得多效率。据布鲁斯,谁也提出的问题是故意的后门早在2007年,双EC DRBG比它从SP800-90A更传统的表兄弟慢1000倍。

也许最引人关注的是,NIST最近本身并正式否认双EC模式,建议您避开它,因为:

最近的社会评论已被质疑[该]默认的椭圆曲线点[算法中使用]的可信性。

有多大的问题?

考虑到这一点,专家们一直想知道有多少软件赫然出现在现实世界中使用的是双欧共体DRBG,并且可能容易受到加密处理结果。

OpenSSL的,例如,最广泛使用的加密库之一,实现了所有四个SP800-90A的算法,具有讽刺意味的是实现所谓的一部分FIPS 140-2认证。

这里是大团圆结局。

尽管多年来通过FIPS 140-2测试了很多次,OpenSSL实现双EC DRBG的是马车

不仅是越野车,但完全打破捣毁

简单地说,它不是可以在现实世界中的软件工作,而事实上,它已采取年的人要注意使其合理地假定,没有现实世界的软件曾经甚至不屑于使用它。

在OpenSSL的基金会本身的话说,“我们没有计划来解决这个问题。”