Debian可信任──关于OpenSSL那个问题
cathayan.org版权所有,保留一切权利。转载请保留此说明。谢绝商业转载。
好几个月以前的事了,就是Debian Linux发行版中OpenSSL这个很重要的包被Debian开发者修改,从而降低加密可靠度的问题。Slashdot上有很多讨论,主贴就质疑Debian,这是很不科学的。
这个事情,其实告诉我们Debian的开发者,也就是俗称的DD们,真的要看他们维护的代码;这个事情还是挺出乎我的意料的,毕竟DD们也并不总是开发者,更不总是特别牛的人,维护某个包不一定就很熟悉那一门的专业知识。这些东西不在DD的要求里面(基本的编程知识是要求的)。
事情就是某位DD看了这个代码(起因也可能是某工具报警),发现一个没有初始化的变量就直接使用了,然后他安全起见,就把这个变量初始化一下,给了个Null。没想到这个没有初始化的东西是原作者用来当作随机数的一部分的,随机数是用来加密的,这样一来,这个随机就没了,只剩下当前进程的ID号作为随机数,而Linux上ID号是个整数,2^15那么大,所以就不够大,更不够随机,总是存在猜测出来的可能性了。这就是那个Bug的问题所在。
好像这个问题在2年多的时间里也没有造成什么问题,这当然是侥幸了。但是,虽然有许多其他意见,比如认为DD太傻,老改人家代码之类,我还是认为这个发行版的人们很靠谱,很认真。Debian走到今天,不是没有原因的。
这个事情,其实告诉我们Debian的开发者,也就是俗称的DD们,真的要看他们维护的代码;这个事情还是挺出乎我的意料的,毕竟DD们也并不总是开发者,更不总是特别牛的人,维护某个包不一定就很熟悉那一门的专业知识。这些东西不在DD的要求里面(基本的编程知识是要求的)。
事情就是某位DD看了这个代码(起因也可能是某工具报警),发现一个没有初始化的变量就直接使用了,然后他安全起见,就把这个变量初始化一下,给了个Null。没想到这个没有初始化的东西是原作者用来当作随机数的一部分的,随机数是用来加密的,这样一来,这个随机就没了,只剩下当前进程的ID号作为随机数,而Linux上ID号是个整数,2^15那么大,所以就不够大,更不够随机,总是存在猜测出来的可能性了。这就是那个Bug的问题所在。
好像这个问题在2年多的时间里也没有造成什么问题,这当然是侥幸了。但是,虽然有许多其他意见,比如认为DD太傻,老改人家代码之类,我还是认为这个发行版的人们很靠谱,很认真。Debian走到今天,不是没有原因的。
评论
lyman:
于 2008-12-02 14:44:45 发表,来自:http://lymanrb.spaces.live.com
roy_hu:
内存检查记得用的是valgrind。收费的工具有Purify,free的也就是Valgrind了。
Albert:
我觉得是原作者的注释写得不够清楚, maintainability不好才导致这样的问题.
tchaikov:
我觉得 openssl 的 maintainer 已经尽力了,虽然有些鲁莽。
去 mentors-debian 看看一个新的包进入 Debian 有多难,就知道 Debian 的维护者和 DD 有多认真了。当然,他们有的时候也会犯错。但是 Debian 的规章制度和维护者执着的信念让我们相信 Debian 在很长时间里仍然会有它的影响力的。
去 mentors-debian 看看一个新的包进入 Debian 有多难,就知道 Debian 的维护者和 DD 有多认真了。当然,他们有的时候也会犯错。但是 Debian 的规章制度和维护者执着的信念让我们相信 Debian 在很长时间里仍然会有它的影响力的。
haha:
不光是注释不好,似乎还有另一个问题就是他在程序里同一个名字却用了两次,用于不同的目的,更加混淆,当时在另一个Blog上看来的。再说那个方法实在也太tricky了点。
Fwolf:
还是觉得,足够而且清楚的注释,
是能够避免这种情况发生的。
是能够避免这种情况发生的。
于 2009-04-08 01:42:00 发表,来自:http://www.fwolf.com/blog
我来评论
为保护您的隐私,请不要在评论框里填写自己的真实E-mail地址。
广告见之即删。带有任何赢利机构链接的评论都会删除。
广告见之即删。带有任何赢利机构链接的评论都会删除。

洁癖有时不是坏事,如果像 edyfox 说的那样,到 openssl 邮件列表嚷嚷了一通也没人理,那确实无法苛求了。
只是,这样做本身,已经违反了 do not fix it if it is not broken 原则。