标签 安全 下的文章

在对Linux基金会执行官,Jim Zemlin 的采访中,VentureBeat 展望了2014年开源操作系统的未来。

访谈中我们也探讨了争议性的话题,就是政府部门的监听事件以及‘后门’-那些邪恶的窗口,窥探我们网上的私生活,最近公众发现我们经常使用的大多数服务都有类似的遭遇。

Zemlin 为我们解释了 GNU/Linux 为什么以及如何使它成为内心有些担忧的消费者的最安全的选择。还有就是为什么选择GNU/Linux作为能源汽车、手机、TV以及其它新兴设备的操作系统。

以下是我们完整的e-mail访谈实录


VentureBeat: 安全和隐私一直是本年度最热门的话题,我们听到的谣言,Linus[Torvalds, Linux 创始人]对政府部门是否有植入后门的要求点头称是。

Zemlin: 如果Linux真有后门,你应该知道的。

全世界的用户都可以看到Linux的每一行代码。这也是linux要比其他操作系统更安全、开源整体要比闭源更安全的原因之一。代码的透明度保证了它的安全性。

必须明确指出:Linux没有后门。

VentureBeat: Linux基金会如何保证Linux用户的隐私和自由,使其免于遭受追踪和监视?

Zemlin: 对此,我们一以贯之。向内核插入违反隐私权和背离自由精神的代码而不被成千上万的开发者注意到,这是很难的。Linux的本性就是自我定制。

VentureBeat: 今年的隐私/安全/监视事件会不会促使, 或者将会促使更多的消费者倾向于Linux,对此你作何感想?

Zemlin: 世界范围内,我听到人们都在说,“用开源保证隐私是必须的。”的确,那会促使更多的使用者选择Linux。

除了他们对linux平台下的隐私和安全持自信、信任的态度以外, 我认为消费者会基于多种原因选择Linux。 代码的透明性以及开发过程逐渐给予日渐博学和警觉的消费者一个选择,一个会让他们对linux感觉良好的选择。

[视频游戏发行商] Valve 及其SteamOS下的工作 正在促使更多的消费者走进Linux,就像逐渐占据主导地位的Android和其他运行Linux的电子设备一样,比如电视、家电、汽车等,当然还有更多。

VentureBeat: 针对手机的Ubuntu Edge, 对它有何看法? 对于2014-2015年Linux/Ubuntu手机市场走势,你作何预测?

Zemlin:我希望看到潜在的有趣的新产品进入市场,尤其是基于Linux的产品。很难说每年哪款产品会成为手机市场的新宠。

我认为预测基于Linux的手机将占据主导地位,不算夸大事实。Android, Tizen, Ubuntu, Firefox,等等等等,都显示出Linux可以驱动手机市场的创新,并且为消费者创造新的体验,为开发者和OEMs创造机会。

明年令人振奋的发展,也是我所关注的就是linux和开源界如何把这些设备、对象和服务关联到一起。

VentureBeat: 目前为止,你看到的linux嵌入式车载系统的最令人激动的使用案例是什么?

Zemlin: 毫无疑问,就是,Cadillac, Tesla, Toyota, Jaguar, Land Rover等都搭建了车载信息娱乐系统。

比如,今年赢得了 “年度汽车族”奖项的Tesla Model S,装备了一个17英寸平面、运行着定制Linux的电脑。这真的是太酷了。

2014年度汽车族刚刚揭晓 -- Cadillac CTS sedan, 也是使用linux作为车载信息娱乐系统。汽车制造商有能力使用linux进行创新并区别使用这些系统。

Linux的成功也能从来自IHS汽车的最新数据上看到,IHS本月报告称,在全球车载信息娱乐市场,基于linux的汽车销量2020年有望达到5370万,超过微软和黑莓QNX。

Linux基金会协同汽车级Linux工作组在该领域做了许多工作。通过在Linux内核社区,其他开源社区,以及汽车行业,营造一个中立、支持性的环境,我们能够帮助一些世界级巨头汽车制造商提高汽车Linux技术,如日产,捷豹,路虎,丰田,等等。

VentureBeat: 在硬核开发者市场以外,Linux是如何发展壮大的,尤其是考虑到消费者和游戏玩家?

Zemlin:可以肯定的是,对游戏玩家来说,今年确实是linux的一个转折点。Valve, 一个基于Steam网络平台的一个游戏厂商,在linux上构建并运行所有的源代码和动画。Valve的CEO Gabe Newell 称,今年的LinuxCon大会上他们在linux平台运行了198个游戏,随着引进基于linux的Steam,这个数字还会上升。这是Linux和游戏界新趋势的开端。

用户每天都在用linux。软件支撑着我们的日常生活。像Google,Facebook还有Twitter等公司,都建立在Linux和开源软件之上。去年10月份LinuxCon欧洲大会上,来自Twitter的Chris Aniszczyk告诉听众: “Twitter 理所当然完全运行在linux上。为什么你们还需要其他的东西?”(译注:言外之意就是有linux就够了,不需要别的什么东西了。)

如今Linux驱动着130万台日常所用Android手机,每天近60万基于linux的新电视售出。新的家电以及汽车都建立在linux之上。主要交通系统也都在使用linux。最受欢迎的GoPro 使用linux和开源软件。这样的例子层出不穷。

Linux和开源理念将会逐渐融入主流消费者的生活。三星使用linux内核以及基于linux的产品充实它的产品线,从电视机到手机,再到家电,等等等等。

敬请关注 - 未来你将看到更多实例,展现了Linux和开源软件,以及协同开发在日常生活中发挥越来越大的作用。

VentureBeat: 在你看来,到2014年,免费和开源软件最大的机遇会是什么?

Zemlin: 我们已经谈到游戏和电子设备,但是企业将会继续为linux呈现更多的机会。云计算的兴起为开发者带来新的机遇和挑战。你可以试着去找找不运行在linux上的公共云。

软件定义的网络(SDN)实现将成为2014年的主要活动之一。人们并没有期望着软件定义网络以及网络功能虚拟化变得多么大。想想吧。数十亿美元花费在硬件上,交换机,路由,负载均衡器,防火墙等等。这些都抽象成了软件。更更重要的是,它是在开源软件的基础架构甜蜜点OSS层被抽象。我认为你会看到,像OpenDaylight项目以及其他项目,在2014年都会有大的突破。

当然,这只是实现协同发展的大趋势的一部分,你的读者应该会对此感兴趣。我的推测是再过一个20年,几乎所有的基础软件都会以协同开发的方式进行构建。2014年开发者需要学习如何以协同方式构建软件,要学会如何参与开源项目并且贡献代码。如果开发者能够理解协同开发和开源的原则和理念,那么他们职业生涯中的机遇将会是无穷的。

参与到linux的世界中来是一个激动人心的时刻。从智能手表到电视机,到汽车,只要你能想到,Linux就能为你实现。


via: http://venturebeat.com/2013/11/26/linux-chief-open-source-is-safer-and-linux-is-more-secure-than-any-other-os-exclusive/

译者:l3b2w1 校对:Caroline

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

一位Canonical公司工程师建议:基于Ubuntu的流行操作系统Linux Mint用户不应该将其用于网银 。

Mint决定禁止更新那些存在已知安全问题的安装包 - 从内核、浏览器到启动加载器和Xorg显示服务 - 这样给用户带来了一个“脆弱的系统” ,Oliver Grawert说。

“不去马上整合Ubuntu提交的那些修正,而是拒绝这些软件包的(安全)更新。我要说,强制保持一个有缺陷的内核、浏览器或xorg,而不是允许安装更新补丁,这会变成一个易受攻击的系统,(原文如此)”。

“就我个人而言,我不会用它做网银操作。”

当然不只有Grawert认为Mint在安全意识上的低下。Mozilla贡献者兼前Ubuntu成员 Benjamin Kerensa 也有同样的看法:

“目前还不清楚为什么Linux Mint禁止所有的安全更新。我可以说,Mint需要花好几个月才能得到一个Firefox的修正版,而Ubuntu和Debian已经早在他们的包上打了安全补丁。

这将置Linux Mint用户处于危险中,也是我从来不建议任何人将Linux Mint作为一种替代Ubuntu的系统的主要原因之一。”

Oliver Grawert是一位可靠的撰稿人。作为一位Canonical公司下的Ubuntu工程师,他比大多数人更了解自己在说什么。

那么Mint的用户存在实际风险么?

半对半错。Mint开发商坚决拒绝更新的现有软件包中大部分的安全“漏洞”(这个词更好一些)都是有记录和已知的,虽然这些漏洞很少被利用。因此对用户构成的“实际风险”仍然存在,至少现在,在理论上是很有可能的。

也就是说,没有发生已知的由于使用Mint发行版(或任何其他基于Ubuntu的未打补丁的发行版)并被通过利用Grawert引用的Ubuntu开发邮件列表上的漏洞造成身份盗窃乃至更糟的事故的情况。

但是,仅仅因为迄今为止没有人曾经钻进这扇半掩的窗户,并不能说明其他人永远不会这么做。

看到Ubuntu持续被提及有关自身的(主要是理论上)隐私问题后,至少它还穿着另外一只鞋子,我们可喜的看到它对用户安全的强烈关注正在延伸至其他发行版上。

请注意:我们已经向Linux Mint征求意见及澄清,答复将在后继文章发表。


via: http://www.omgubuntu.co.uk/2013/11/canonical-dev-dont-use-linux-mint-online-banking-unsecure

译者:whatever1992 校对:wxy

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

安全专家米科·哈普宁(Mikko Hypponen)于上周在爱丁堡举行的LinuxCon and CloudOpen Europe会议上的主题演讲中说:“开源软件可以作为一个方法来打击全球监视无辜居民的行为。”

米科·哈普宁,芬兰F-Secure的首席研究员,在爱丁堡举行的LinuxCon and CloudOpen Europe 2013会议上讲话。

计算和全球网络增加的进步使得存储和传输数据变得便宜且简单。哈普宁说这创造了无比的连通性、进步和创新,但是同样使得大规模的数据被访问到就像NSA的棱镜项目揭示的那样,这事件随着前美国政府员工爱德华·斯诺登(Edward Snowden)泄漏的一系列顶级机密文件而公开。

哈普宁,芬兰F-Secure的首席研究员说:“前几年我们已经意识到数据是廉价的。我们永远不必再删除任何数据。这促成了很多伟大的事情,但同样也引发了大规模地毯式的监视。”

哈普宁说:“这些监视会访问我们的个人数据,包括电话记录、地理位置、电子邮件和搜索引擎请求,有些可能是被授权的。”

他说:“我相信一些监控是好的。如果有一项研究来找出校园枪击者或者毒枭或者恐怖组织成员等等,我们应该已经有技术手段这么做,但是我们首先必须持有怀疑。”

哈普宁说:“但是收集通信和每个人的个人数据不仅是对隐私的侵犯,还是对民主的威胁。”

他说:“即使你如今对政府的行为认可,但是我们不知道政府会在今后的20年怎么样。如果他们有你20年的搜索数据,他们会找出一些非法的或者令人尴尬的理由来扭曲你的手。”

哈普宁说:“虽然泄漏事件使得一些IT专家质疑他们的数据存储的安全性和经由美国服务商的的路由,但绕开这些公司和服务不能解决问题。同样不能每个国家都花费和金钱来建造他们自己的替代品。”

哈普宁说:“要跨越国际边际地工作,开发者应该团结起来建造一个安全和可靠的软件和服务来防止后门篡改和用户隐私。”

他说:“我建议开源软件对这个问题提供一个解决方案。那么国家就不必独自做这件事。这将会变得安全、开放和免费。”


via: http://www.linux.com/news/featured-blogs/200-libby-clark/745585-mikko-hypponen-open-source-software-will-make-the-world-more-secure

译者:geekpi 校对:wxy

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

Linux内核是所有Linux系统的核心。如果有任何恶意代码控制或破害了内核的任何一部分,那么系统会严重受损,文件可能被删除或损坏,私人信息可能被盗等等。很明显,保持内核安全涉及到用户的最大利益。值得庆幸的是,由于Linux内核极其安全,Linux是一个非常安全的系统。在用户比例上,Linux病毒比Windows病毒更少,并且Linux用户比Windows用户个人更少感染病毒。(这就是为什么许多公司使用Linux来管理他们的服务器的一个原因。) 然而,我们仍然没有借口去忽视内核的安全。Linux有几个安全特性和程序,但本文只讨论Linux安全模块(LSM)及其它的内核安全特性。

AppArmor(应用盔甲)最初是由Immunix写的安全模块。自从2009年以来,Canonical维护着这些代码(Novell在Immunix之后,Canonical以前管理这些代码)。这个安全模块已经从2.6.36版本进入Linux主分支之中。AppArmor限制了程序的能力。AppArmor使用文件路径来跟踪程序限制。许多Linux管理员称AppArmor是最容易配置的安全模块。然而,而许多Linux用户觉得这个模块与其它的替代品相比很糟糕。

安全增强Linux(SELinux)是AppArmor的替代品,它最初由美国国家安全局开发(NSA)。SELinux自从2.6版本就进入内核主分支中。SELinux是限制修改内核和用户空间的工具。SELinux给可执行文件(主要是守护进程和服务端程序)最小特权去完成它们的任务。SELinux也可以用来控制用户权限。SELinux不像AppArmor那样使用文件路径,而SELinux在追踪权限时使用文件系统去标记可执行文件。因为SElinux本身使用文件系统管理可执行文件,所以SELinux不能像AppArmor那样对整个文件系统提供保护。

注意:守护进程是在后台运行的程序

注意:虽然在内核中有AppArmor、SELinux及其它安全模块,但只能有一个安全模块被激活。

Smack是安全模块的另一种选择。Smack从2.6.25起进入内核主分支。Smack应能比AppArmor更安全,但比SELinux更容易配置。

TOMOYO,是另外一个安全模块,在2.6.30进入内核主分支。TOMOYO可以提供安全防护,但是它的主要用途是分析系统安全缺陷。

AppArmor、SELinux、Smack和TOMYO组成了四个标准Linux安全模块。这些都通过使用强制访问控制(MAC : mandatory access control)工作,这种访问控制是通过限制程序或者用户执行一些任务来实现的。安全模块还有某些形式的列表规定了它们可以做什么不可以做什么。

Yama在Linux内核中一个新安全模块。Yama还没有作为标准的安全模块,但是在将来他会成为第5个标准安全模块。Yama和其他安全模块一样使用相同的机制。

“grsecurity”是一系列Linux内核安全补丁的集合。多数补丁用于处理远程网络连接和缓冲区溢出的安全问题(以后讨论)。grsecurity中有一个叫PaX的有趣组件。PaX补丁允许内存里的代码使用最少的所需权限。例如,存储程序的内存段被标为不可写。想想看,为什么一个可执行的程序需要在内存中是可写的?通过这个补丁,恶意代码就不能修改目前正在执行的程序。缓冲区溢出是一种当程序由于bug或者恶意代码在内存上写入数据,并让它的内存边界超出到其他程序的内存页上的安全事件。当Pax被激活时,它会帮助阻止这些缓冲区溢出,因为程序没有写到其他内存页上的权限了。

Linux入侵检测系统(LIDS)是一个内核安全补丁,提供了强制访问控制(MAC)的特性。这个补丁就像扮演LSM模块的角色。

Systrace是一个减少和控制应用程序访问系统文件和系统调用的工具。系统调用是对内核的服务请求。比如,当一个文本编辑器写入一个文件到硬盘上时,程序将会发送一个系统请求让内核写入文件到硬盘中。

这些是在Linux安全系统中非常重要的组件。这些安全模块和补丁使内核免于受到恶意代码的攻击。没有这些特性,Linux系统将会变成一个不安全的操作系统。

via: http://www.linux.org/threads/the-linux-kernel-security.4223/

译者:geekpi 校对:wxy

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

本文是为那些想要尝试Linux的用户所写,不过如果你已经是一名Linuxer,这里也有一些你应该知道并为之自豪的事实。

讨厌长篇大论?直接跳到最后的部分 “所有内容的整理”。

为什么我离不开Linux?

我坚持这样认为有我自己的原因。每隔几天或几个月,我重启机器的时候,Linux的启动过程都令我陶醉,而你也许会惊奇大多数操作系统并不是这样的。

先想象一些场景:

  1. 你的机器经常崩溃。
  2. 它慢的令人发指。
  3. 未经你允许,文件文件夹就自动建立/删除。
  4. 机器莫名其妙的关闭。

什么状况?真相只有一个!你中病毒了!而在Linux上,这样的情况几乎不会发生,甚至可以说"根本没有"。:)

为什么/那又如何?

再想象一下,此时此刻,有成百上千个人正在为Linux编写和检查代码,因此Linux一直在不断的发展壮大,而几乎全世界任何开发者都可以看到“代码写的是什么?”,甚至指出是否哪里有缺陷。

1994年3月14日,Linux 1.0.0发布,那时它只有176250行代码。

到了2013年,Linux 3.10发布时,它已经拥有15803499行代码。

另外一件事,是Linux的设计方式。不像其它一些操作系统,在Linux上,几乎所有的复杂任务都需要root权限。例如在windows上,你进入某些系统文件夹,删除了一些东西(为什么你会这么做呢?恩,也可能是病毒干的 —— 它们确实会这么干。另外,我见过有些人为了释放内存也会这么做)。虽然当时什么都没发生,但是在你下一次启动时...(这里我不敢再往下描述了)。而在Linux上,任何时候当你试图对系统干点什么,它都会提示你需要root密码。那如果我就是root用户,而我又把系统搞砸了,怎么办?这是最坏的情况,但是仍然会有很多人指导你如何修复它。

当你在街上摔倒的时候,一群热心的陌生人跑过来帮助你,你会有什么感觉?爱和支持是无价的,你会感受的到!

稳定性

Linux机器可以无休止地运行下去。而通过一个简单的“uptime”命令就可以让你知道机器已经运行了多久。你永远不需要关机,设备基本上都是热插拔的。当然其它有的操作系统也可以报告运行时间,但是正如之前所说,Linux机器很少崩溃、蓝屏、死机:D,除非你有意要搞砸它。

老话说得好, “Linux是很坚强的,除非,面对的是熊孩子!

为了使机器远离病毒、木马,你需要做很多工作。一项研究表明,(在没有任何防护措施的情况下,)连接到网络之后,windows被入侵的平均时间是40分钟,而在Linux上 - 你就像老板一样什么都不用做,也就是说,在操作系统之外不需要安装任何东西(,黑客也无法入侵)。

安全性增强

Iptables。这个命令行工具用来设置防火墙是极好的。同样,还有许多其它创新工具,比如*端口试探(port knocking),chroot监狱(译者注:chroot是在unix系统的一个操作,用于改变当前程序及其子进程真实的磁盘根目录。改变根目录后的程序无法访问或命名正常路径下的文件。这样的根目录就叫做"chroot监狱(chroot jail,chroot prison)"——来自维基百科 )。

SELinux

如果设置执行了SELinux,即使你赋予某个文件完全访问权限,其他人也无法访问。

其它操作系统的源代码仅仅是开发操作系统的人才可以看到,然而,对于Linux,每个人都可以访问源代码,这意味着发生错误的可能性很小。即使有一些错误发生,也可以及时修复。假如你受到了安全攻击,开发操作系统的公司可能会用一周甚至一个月时间发布一个补丁,这就意味着你的系统在这段时间仍然是脆弱的,但是Linux有不计其数的用户贡献以及积极参与,这是非常好的,不是更好,而是最好。

如果,假设操作系统公司不修复bug呢?之后会怎么样?恭喜,你只能与bug为伴了。然而在linux下,有许多人修复bug,或者如果你是一个很好的程序员,也许你应该自己修复它并且将其贡献到开源社区。 予人玫瑰,手留余香!

当有这样一个免费且开源的优秀操作系统(Linux),为什么你还要花钱买一个呢?当你决定投奔开源,学习的机会将会非常多。如果你是一个好的程序员,你应该拿到开源代码,用你自己的方式构建它、设计它,按你自己的想法去使用它。

全世界的开发人员用宝贵的时间和天才的头脑为你带来这一款“谁与争锋”的操作系统,它,就是Linux。

没有crapware

(译者注: 附赠软件,是一个贬义的俚语) - 操作系统是开源的,那其它工具呢?没错,有非常多的工具也是开源的,可以供用户使用。而在其它操作统统中,大部分软件可能会要求你订购服务、升级/购买。更糟糕的是,在用了几天之后,你可能会发现这个玩意儿竟然只是30天的试用版。在这方面,Linux永远不会让你经历这样的沮丧。

Linux还自带了预装应用程序,这样,简单几步安装之后就可以开始使用啦~

在linux上,大部分驱动是内核自带的,因此当使用一些硬件组件时你不必到处去寻找驱动程序。

如果你仅仅是一个普通的桌面用户,没有多少事情要用命令行(CLI)来做 - Linux拥有各种桌面环境供你选择,比如Gnome、KDE,没错,你可以称呼它为 "新一代桌面环境"

你有没有体验过你的操作系统在运行一段时间后行动迟缓,而你只能通过重新安装系统解决这个问题。恩,试试Linux吧,你会感到惊喜的。它很多年一如既往运行飞快并且反应灵敏,这样,你就能专注于工作,而不用处理反应迟缓的操作系统。

没有后门(backdoor)

当你不了解一个操作系统的源代码时,你怎么能确保它没有后门呢?如果制造商公司留了一个隐秘的后门,当你连接到网络的时候,这会让你的隐私无所遁形。而在Linux上,任何东西都是开放的,因此没有后门可以隐藏在操作系统里。

这里还要谈另一个有趣的事:大部分使用windows的用户可能会有一个沮丧的事,就是当升级一些软件或者操作系统的时候需要重启机器。Linux不需要这样的重启。Linux是一个稳定的、完美运行多年也不需要重启的系统。

让老机器品味重生

Linux甚至可以在很老的硬件上完美运行。不像其它的操作系统,需要升级硬件才能使用。

所有内容的整理..

有免费的,为什么还要使用非法的(盗版)

  • 赋予老机器第二春
  • 开机很快
  • 随时更新
  • 没有垃圾软件
  • 没有后门
  • 没有病毒
  • 稳定性
  • 兼容性
  • 安全性能增强
  • 运行快,反应灵敏
  • Linux不需要碎片整理
  • 额,选择Linux确实对环境有影响. (Google it)
  • 自由无限的支持 - 论坛、邮件列表、IRC频道
  • 工作区特性 - 下一代桌面
  • 没有大麻烦
  • 报告bug并得到修复
  • 你不会感到孤单
  • 我贡献,我快乐,予人玫瑰,手留余香
  • 其它操作系统归公司所有,微软拥有Windows,苹果拥有Mac-OS。Linux?我们拥有!

总之,不仅仅是阅读这篇文章,你一定要亲自试试看,品味这种感觉 - 自由无价。

对我来说, linuxing 是沉思。 你呢? :)

如果同意我的观点,cheers!现在是该把Linux(这杯美酒)“倾入”你的杯中慢慢“品味”了。

如果不同意我的观点,再一次cheers。你可以用各种方法来证明我是错的。

Google 一下"linuxing urban dictionary”(译者注:urban dictionary是一个专供网友发表一些特殊单词或短语解释的平台,这上面有许多正常词典里面查不到的词条,即使是正常词典里面有的,在这里也会有新的精辟解释。网友们还可以对每一个词条进行投票)。

感谢阅读。来,笑一个 :D Cheers!

via: http://www.unixmen.com/cant-live-without-linux/

译者:flsf 校对:CarolineMr小眼儿

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

之前,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中国 荣誉推出