Dual_EC_DRBG(双椭圆)是一种伪随机数生成器,在2006年时被NIST提案可作为国际使用,仅几个月以后就有人指出这可能是NSA的后门,安全领域的大哲学家Bruce Schneier在2007年也提出了质疑,Snowden哥哥在报料一连串”Big Brother”的全球监控计划后,RSA正式建议用户停用 Dual_EC_DRBG(solidot的中文报道)。
这一事件也影响到了自由软件社区,特别是OpenSSL和GNUTLS的实现,OpenSSL在2011年的FIPS模块当中加入了Dual_EC_DRBG,GNUTLS的libnettle和Mozilla-NSS并没有DUAL_EC_DRBG的实现,针对这一情况各个GNU/Linux发行版社区也作出了相应的调整,RHEL/Fedora和SUSE的openssl都采用了0.9.8分支的FIPS模块(没有DUAL_EC_DRBG),openSUSE社区把GNUTLS的ECDHE密钥交换算法默认屏蔽了,如果对性能不是有太大要求,密钥交换可以考虑使用RSA来替换ECDHE,至于一直以来最强大的Debian GNU/Linux就不用担心了,这些开源实现的contributor本身也是Debian的维护者;-)
btw:
过去的20多年中NSA不断的给自由软件社区带来”额外”的工作量,由FSF(自由软件基金会)和EFF(电子前哨基金会)推动的自由软件运动已经成为和”Big Brother”在技术和法律层面上的长期对抗的最前线,这场没有硝烟的战争还会持续下去…..
但使用开源方案并不代表着就一定安全,一个自由开源软件是否安全取决于社区的活跃程度,参与者的代码审计的水平,从企业使用开源方案的角度,代码review+audit也是必须的,更重要的是需要对信息安全管理流程进行”加固”,更….更重要的是,得回馈社区,只有生态链的成形才能保证最大程度的安全性。