Debian OpenSSL Bug - 后门还是安全事故?
创始人
2024-03-01 11:31:06
0

之前,Ed 写了篇文章《软件透明度》,主旨是如果软件开发的过程是透明的,那么软件对恶意的后门(以及无心的安全漏洞)就更具抵抗性。

软件透明的因素包括公开源代码,可以阅读源代码或为一个项目反馈的问题做出贡献,以及参与内部开发讨论。他提到一种情况,在这儿我想详细讨论一下:在2008年,Debian项目(一个用于web服务器的很流行的linux发行版),宣称Debian中OpenSSL的伪随机数生成器遭到破解,已经不安全了。

首先,了解一些背景信息:伪随机数生成器(PRNG)就是一个程序,假定代号为F。给定一个随机种子s,则会得到一个看起来随机的长的二进制序列F(s)。如果我和你都使用同样的种子s,两个人会得到同样的二进制序列。但是如果我随机选择一个s,也不告诉你s是什么,你根本不能够推测F(s)的结果,如你所期望的,F(s)就是随机的。OpenSSL中的PRNG试图从系统中抓取不可预测的信息(称之为"熵"),比如当前进程ID,或者很有可能是不同的内存内容(比如,由其它一些进程控制或可能控制的未初始化的内存)等等。把这些东西转换成种子s,就会得到随机比特流F(s)。

2006年,为了解决一个用于查找软件内存存取bug的工具警告问题,一名Debian维护者决定注释掉OpenSSL PRNG里的两行代码。但是这两行代码非常重要,它们负责抓取几乎所有的不可预测的熵,以作为OpenSSL PRNG的种子。没有这些代码,PRNG只有总共32,767个选择可作为种子s,因而也只有这么多的F(s)供选择。

这样一来,很多依赖于OpenSSL随机数生成器的程序,其实并没有它们以为的那么多的随机选择。比如,一个这样的程序要为SSL(安全网络浏览)和SSH(安全远程登录)生成秘钥。严格来说,这些秘钥必须是随机的:如果你可以猜到我的秘钥,你就可以破解我使用该秘钥保护的任何东西。这意味着你有能力读取加密的通讯信息,登录到远程服务器,或者伪造看起来似乎是真实的信息。这个漏洞是2006年第一次引入,而且进入到Ubuntu中(另一个流行的linux发行版,广泛应用于网络服务器)。漏洞影响到数以千计的服务器而且存在了很长一段时间,因为只是给受影响的服务器打补丁还不足以解决问题,必须替换掉任何在漏洞存在情况下生成的秘钥。

顺便说一句,为伪随机数生成器寻找熵是个著名难题。事实上,在今天来看要解决这个问题依然是个巨大的挑战。随机错误难以检测,因为当你盯着输出看时,每次运行程序结果都不一样,就像随机的一样。弱随机性很难发现,但是它可以使(貌似)安全的加密系统失效。不过,Debian中的那个漏洞很醒目,被发现后在安全社区引起了很多嘲笑

于是有人问,这是个故意设置的后门吗?似乎不大可能。做出这个更改的代码维护者 Kurt Roeckx,后来成为Debian项目的主管。这意味着他是个可靠的家伙,不是为了插入漏洞而由NSA伪造出来的身份。想进入Debian项目组的核心,需要做出巨大的努力,那真是出了名的难进。这样看来,错误根本不是有意为之,而是一系列失误导致的,而且后果严重。

漏洞确实是在一个透明的环境下发生的。所做的任何一件事都是公开的。但是漏洞还是引入了,而且长时间未被注意到。部分原因在于,透明引起了很多混乱,导致本应发现这个显而易见的漏洞的人们也都没太在意。 另外,也因为漏洞本身太过微妙,一个随意的观察者很难发现修改带来的影响。

这是否意味着软件透明没什么帮助? 我可不这么认为。许多人都赞同透明软件要比不透明软件更安全。但是这也并不表示漏洞不会产生,或者认为有其他人都看着呢而我们自己就可以掉以轻心。

至少,多年以后,透明可以让我们回顾,究竟是什么导致了某个漏洞–本文例子中,就是工程上的纰漏,而非人为破坏。

via: https://freedom-to-tinker.com/blog/kroll/software-transparency-debian-openssl-bug/

译者:l3b2w1 校对:jasminepeng

本文由 LCTT 原创翻译,Linux中国 荣誉推出

相关内容

名雕股份成立科技新公司,含...
企查查APP显示,近日,深圳市鲸跃云科科技有限公司成立,注册资本1...
2026-05-27 21:47:16
KernelScript ...
IT之家 5 月 26 日消息,科技媒体 Linuxiac 昨日(...
2026-05-26 14:39:31
华为星河AI网络,重构酒店...
文/乐居财经 许淑敏 站在2026年数智化发展的关键节点,AI技术...
2026-05-22 15:16:59
Fedora决定停用Dee...
IT之家 5 月 20 日消息,Fedora 工程与指导委员会(F...
2026-05-20 18:27:51
Linux内核首个AI生成...
快科技5月11日消息,Linux内核迎来首个明确标注 AI 生成代...
2026-05-12 00:36:48
让企业安全用好AI,中国移...
作者:闫滟 来源:科技最前线 (kejizqx) 大模型落地政企市...
2026-05-10 17:06:50

热门资讯

为什么计量 IT 的生产力如此... 在某些行业里,人们可以根据一些测量标准判定一个人的生产力。比如,如果你是一个零件制造商,可以通过一个...
硬核观察 #885 苹果 AR... 苹果 AR 眼镜被无限期推迟据报道,由于技术上的挑战,苹果公司已经无限期推迟了其轻型增强现实(AR)...
8 个提升你的隐私防护的开源密... 使用一些顶级开源密码管理器,确保你的登录凭证安全无虞。密码管理器是一项非常有用的实用程序。在你想寻找...
PHP最佳实践(译) 简介PHP是一门复杂的语言,经过多年折腾,使其不同版本之间高度不一致,有时还有些bug。 每个版本都...
8个有趣的Linux提示与技巧... 我们时不时给你带来关于Linux的提示与技巧。和这个系列保持一致,这里有8个我们从读者收到最有趣的提...
值得收藏的 27 个机器学习的... 机器学习 ( Machine Learning ) 有很多方面,当我开始研究学习它时,我发现了各种各...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...