科技网

当前位置: 首页 >IT

那些被歪曲的开源软件和OpenSSL的真

IT
来源: 作者: 2019-04-05 22:51:52

“心脏出血”这个OpenSSL严重漏洞早已告一段落。而前两天某站发布的一篇关于OpenSSL和开源项目的文章《隐形战友》,不但明显是炒冷饭,乃至充满了硬伤、误解和企业宣传。

钛媒体注:“心脏出血”这个OpenSSL严重漏洞,从2014年4月初被公众知道,到现在已有将近一年了,这件事已经算告一段落。(详见钛媒体文章《详解OpenSSL重大漏洞:谁会受影响?如何解决?》)而前两天某站发布的一篇关于OpenSSL和开源项目的文章《隐形战友》,不但明显是炒冷饭,乃至充满了硬伤、误解和企业宣传。以下是钛媒体从文章中摘取的几段文字,朋友们先感受一下:

十五年来,OpenSSL每年得到的捐款收入始终徘徊在可怜巴巴的两千美金。说出去大概没人会信,但这个保障了半个互联安全的密码库项目实际上只雇得起两个全职员工,两人都叫史蒂夫,跟美国队长重名。

……

“心脏出血”爆发后,很多人争相跟OpenSSL划清界限。基层程序员批评他们的代码“令人作呕”,大公司则比赛着将牵连自身的安全漏洞尽快修复。而开源宣言《大教堂与集市》(The Cathedral and the Bazaar)的作者更是由此认定开源生态存在亟待解决的本质漏洞。

……

太平洋这头,罗永浩忿忿不平。多年以来人们往他身上贴的标签,除“胖子”,就是“理想主义者”。可是这回,他终究发现比他还要理想主义的OpenSSL。“我听说该机构最初的几名工程师放弃了高薪的工作,而投身于这样一项公益事业,来保护互联的安全。”罗永浩说,“这符合中国人所说的‘侠义精神’,这些人的内心一定有理想主义的支持。这是我所欣赏的。”因而,离锤子科技发出第一封邮件还不到10天,史蒂夫·马奎斯就收到了百万元捐款——OpenSSL基金会有史以来最大的单笔收入。

——李鱼《隐形战友》

开源软件、安全、隐私确切是大部分普通用户不了解的领域,但是真相并不是如此。所以钛媒体作者霍炬写下这篇文章,让公众对历史有个基本了解,以下是全文,经钛媒体:

我想聊聊开源软件的模式和OpenSSL存在的问题,和到底谁在捍卫我们的隐私,这些都是界面的文章弄错的地方。我也会写到在“心脏出血“这个漏洞从发现到公布的进程中,触目惊心和争分夺秒的故事,这个进程暴露出OpenSSL严重的管理问题。先从开源说起。

开源是一种商业模式

开源组织并不是没有捐款就不能生存,开源和免费一样,是一种商业模式。开源软件的世界是剧烈竞争的,任何一个组织,都可以从当前代码分支一份继续开发新的版本,这个行动叫做Fork。一个开源组织要想生存下去,最重要的基础就是普遍被使用,不然很快就会被竞争者替换。一个软件被普遍被使用以后,就会因此衍生出相关服务,团队可以通过这些服务取得比较好的收入,商业模式就成型了。最著名的例子应当算是Red Hat Linux,中文叫做“红帽”,他们免费提供Linux发行版,企业可以通过付费订阅获得技术支持,他们收入相当不错,现在已是一家市值100多亿美金的上市公司。

OpenSSL采取的也是一样的开源和服务收费的方式运转,OpenSSL基金会的负责人Steve说,他们最多一年有将近100万美金的商业咨询项目(资金来源是美国国防部和美国国土安全部),这已是相当不错的状态。开源软件的全职工作人员都不会太多,大部分项目的核心贡献者同时也都会承当商业性项目,这是很正常的情况。在开源社区中,像Linux创始人Linus这样全职为开源项目工作的程序员,反而不是普遍现象,Linus得以这么做,一方面是Linux基金会财力丰厚,另外一方面也是由于Linux衍生项目太多,影响力也太大,Linus本身又是精神领袖,他不能不全职为Linux工作。同时从事商业服务和开源项目,并不是界面那篇文章描写的那么悲情。

再来个例子,最好的开源UNIX操作系统FreeBSD,其核心开发者Poul-Henning Kamp(社区内叫他PHK)到今天依然承当商业性项目。即便从1994年到现在,他的一直在FreeBSD代码贡献的排行榜上排第一,也依然不是FreeBSD基金会的全职员工,他对自己的描写是“自雇”。PHK在自己主页上公然了最近正在做的一个商业项目,报酬每个月3000美金。以OpenSSL的项目范围,有一个全职开发者已是相当不错的状态了。

为何有这么多人会放弃传统的卖软件的方式,转向免费软件和开源软件?除个人兴趣和理想之外,开源软件是一个成熟可靠的商业模式,这个商业模式有自己的收入方式和生态。而《隐形战友》这篇文章极力制造普通互联用户对OpenSSL的惭愧感,指责普通用户历来没付钱给他们,这种一种道德绑架。任何一个用户,只要在使用OpenSSL,就是在帮助这个组织获得市场份额,在竞争中取得更大优势,不管有没有直接捐款给他们,用户都已做出了贡献。

华为是唯一算得上曾“资助”过OpenSSL的国内企业

虽然开源组织可以通过商业服务来让自己生存的不错,但是一般也都很愿意接受捐款。有足够的捐款,可以少做一些商业项目,把精力往开源软件方面倾斜一些,这固然是好事。大部分软件和IT企业,每一年都有不小的一笔钱用来支持开源项目们,同时也争取自己在开源社区的影响力和发言权,开源组织们每一年接受的捐款依照各自项目状态,都不算少。但为何OpenSSL这个项目每一年只能收到几千美金的捐款呢?答案很简单,由于他们从来没有弄过募捐活动。

开源组织通常会设立一个注册为非盈利机构的基金会,通过这个基金会召募资金、组织活动、推广自己的开源产品,视项目情况给专职或兼职开发者付报酬,其中召募资金是基金会相当重要的工作。如果常常使用维基百科的用户,应该会有印象。维基百科每一年都有一个固定时段,会在站上放置非常明显的筹资通告,设定好本年度预算目标,让大家捐款。到达数额以后,捐款就停止,不再接受更多。几近所有开源组织,都会通过这类方式召募捐赠。

OpenSSL基金会历来没公然召募过资金,如果没有捐款目标,没公然募捐,就很难有成批的捐款进入,毕竟,需要资金的项目实在太多了。对OpenSSL这类项目,募资相当容易,他们只需公然发一份筹款通知,各大企业的钱就可以立刻得手。当“心脏出血“产生以后,诸多企业惊讶的不是只有一个全职开发者这件事,而是,为何你们一直没筹款。OpenSSL历来没公布过自己的财务状况,没有设置过募款目标,这让人们如何去捐款给他?

更有意思的是,OpenSSL基金会并没有注册为非盈利机构,而是一个盈利性企业。捐助OpenSSL的人和企业没法从美国政府取得减税。按照他们自己的说法,是他们没有时间保护一个非盈利组织,这不是个好理由。对一个开源项目,注册一个非盈利组织比注册公司难不了多少,再说,基金会之所以成立,不就是为了去做这些事吗?盈利性企业已定义了他们是希望靠商业活动获得收入,而不是靠捐款生存。捐款给盈利性企业,钱的利用率就会变低很多,依照美国税法粗算,最多的情况下要多交出30%~40%的税,是巨大的浪费。这也解释了为何美国企业很少捐款给OpenSSL基金会。

不过,就算如此,事情也是在快速好转的。“心脏出血“事件以后,Linux基金会在极短的时间内就成立了核心基础架构同盟(CII, Core Infrastructure Initiative),主动挑选缺少资金的重要开源项目进行资助,不管对方是不是募款,OpenSSL是他们资助的第一个项目。这个同盟集结了世界各国的科技企业共同出资,其中包括了Google、Amazon、Facebook、思科、富士、惠普、IBM等十多家企业。其中中国企业只有一家,是华为。特别值得一提的是,除给CII出资,华为也单独资助了OpenSSL基金会每一年5万美金。惋惜,界面的文章仿佛把华为忘了。参加CII同盟的企业每一年出最少10万美金,依照2014年的数字,CII每一年总共有170万美金基金可以使用,第一期资金主要用来资助OpenSSL和OpenSSH,资金相当富裕。

上面这些事情都产生在去年5月,也就是“心脏出血“事件以后的一个多月时间里。无论是各大科技企业,还是Linux基金会,他们的行动都非常迅速,这是开源世界的做事方式和效力。到去年5月,OpenSSL的资金问题就算解决了。从这个结果看,之前OpenSSL没有得到足够捐款的直接缘由就是其基金会失职。

做为比较,再看看去年OpenBSD募款的经历。OpenBSD是最关注安全的开源Unix操作系统,他们同时也是OpenSSH的维护者(看到SS是否是觉得和加密也有关系?没错,这也是一种加密工具,只不过不是给客户用的,是给服务器管理者和程序员用的),去年的募款目标仅仅是15万加币。相比起来,170万美金实在已经是太多了,如果CII给的钱不够让OpenSSL变好,恐怕再多的钱也不会好了。

除直接捐钱,各大企业支持开源项目的方式还有很多,比如捐献自己员工的时间。任何一个开源项目中,都有来自各大公司工程师的贡献,这些公司给自己员工发薪水,他们写的代码会回馈给开源项目,比起捐款,这是更直接的支持。比如去年发现“心脏出血”漏洞的工程师,是Google员工,他在上班时间全职对OpenSSL代码做安全审计,找到了这个Bug。他确切不是OpenSSL基金会的直接雇员,但这份由Google买单的全职劳动成果是贡献给了OpenSSL项目的,说所有大公司都没支持过这个项目,未免太不公平。而这类毛病言论,正是界面文章宣扬的论调,依照这篇文章的说法,一个中国小公司救了全球互联用户,这是何等荒唐。

说到这里,再说说捐款问题。我非常反对《隐形战友》渲染的这类捐款情绪,这是利用人们的惭愧捐款。钱是非常宝贵的资源,需要用钱的地方太多了,正确的捐款是在捐款者对项目的充分了解后,基于对其价值观和方向认同,依照自己的欲望进行长时间而小额的固定捐助。在这个过程中,税务问题也是必须要斟酌的,这直接决定了资金利用率,比如美国税务居民,捐赠给OpenSSL,资金的利用率就很低,而捐款给CII再由他们资助OpenSSL,就可以得到一部分免税,利用率高了很多,如果是加拿大税务居民,想对操作系统方面的项目捐款,应当首选OpenBSD,由于它是加拿大注册的非盈利组织。捐款是一个非常理性的行动,隐藏部份信息,利用人们对开源项目的不了解,煽情,制造愧疚感,这是不可延续的,也是不公平的,这些都是界面的文章和以后的运营所做的事情。

OpenSSL的问题和未来

《隐形战士》中说基层程序员批评他们的代码“令人作呕”,实际上,说这句话的人是Theo de Raadt,是OpenBSD项目的创始人,他可不是“基层程序员”,而是操作系统领域最好的计算机科学家之一。OpenBSD开发者们并没止步于批评,而是立刻决定从当前OpenSSL版本创建一个叫做LibreSSL的独立项目,从清理OpenSSL的代码重新开始。他们在第一周就删除了9万多行代码,OpenSSL整个项目只有38万行,相当于删减了近1/4的代码。可见Theo的批评并不是顺口胡说。几年来,OpenSSL出过各种漏洞,在“心脏出血“以后,依然有隐藏了10年以上的漏洞被发现,很多熟悉这个项目的人看法都是“除重写别无办法”。

OpenBSD有一份文档说明了他们在清算进程中遇到的问题,去掉其中的技术细节,我把主要观点列在这里,这些也基本是业内主流看法:

OpenSSL的代码混乱不堪,难以浏览。开源软件一般通过让更多人看到代码来发现bug,如果代码难以浏览,这个办法就失效了。

他们使用了大量自己的代码封装和编程风格,这些代码有的有bug,有的不符合现代主流做法。这让常见的检测工具没法应用于他们的项目,更难以发现Bug。

他们的开发者更关心增加功能,而不是保护和修补。

其他开发者提供的修改和贡献,一般不会被合并到最终代码里。

很多用户指出的Bug,包括一些相当严重的,公然放在追踪系统里面长达几年,没被修补。

其中存留了大量无用的旧代码,比如给windows 2000之前的16位系统写的兼容代码,依然包括在最新版本的OpenSSL中。

基于以上缘由,OpenBSD认为这个项目已没法保护了,必须要重新开始。这就是他们创建一个分支,从清算代码这类基础工作开始的缘由。可见,这个项目根本不是钱的问题,而是管理方式和社区文化有问题。比起来其他项目,他们在有一个全职开发者和一个全职基金会主席的情况下还能响应如此缓慢,实在更令人沮丧。顺便说一句,做清理代码这件事的OpenBSD开发者,也不是全职工作,他还在这份文档前面特别注明了“可以被雇佣”。一年以后的今天,LibreSSL已经基本算可用了,除了清算和改变了原有代码风格,他们也增加了一些更先进的特性,看起来很有前途。另外,这个项目也很需要捐款,如果更认同他们的做法,可以捐款给他们。

除此之外,OpenSSL公布“心脏出血“漏洞的进程也非常有问题。一般出现严重漏洞的流程,是先不对公众公布,立即通知主流操作系统维护者和相关厂商,让大家先修改,以后一起发布安全公告和升级。之所以这样做,是由于如果操作系统不去打补丁,很多普通用户知道漏洞也没办法修补,反而让黑客们更容易利用这些漏洞。

OpenSSL不是这么做的,在Google告知了他们漏洞以后,OpenSSL没有告知任何一家操作系统厂商,反而奇怪的被几家主要CDN厂商知道了,也就是说,在不知道哪一个环节产生了泄密。以后开源社区中开始有关于这个重大Bug的传言,直到这个时候,几大操作系统仍然没得到正式通知。又过了3天,OpenSSL才告知了Red Hat,当天,参与处理这件事的一名Red Hat员工在一个私密邮件组里面把这个消息分享给了SuSE/Debian/FreeBSD等几个重要操作系统相干负责人。多亏了他,因为此时OpenSSL依然表示没有任何细节提供,这是加州湾区的太平洋时间4月6日晚上,从Red Hat得到具体细节的几大操作系统,连夜开始忙着打补丁,到这个时候,Red Hat提供的消息是OpenSSL将在9号,也就是3天以后公然这个漏洞。可惜,转天,4月7日一大早,OpenSSL就直接发布了公告,媒体们知道了,全球都知道了。如果没有Red Hat提早放的消息,最后的影响恐怕还会大的多,就算如此,由于时差的缘由(Red Hat那位员工在印度),很多在他夜里睡觉以后的邮件没来得及回复,仍然有很多厂商没能提早得知细节。关键厂商对如此重大的漏洞比媒体知道消息还晚,近年来恐怕这是第一次。

这造成了很多损失,比如加拿大国税局CRA在漏洞被公开之后发现数据被盗,此时已来不及打补丁了,所以干脆直接把电子报税系统关掉了,当时是4月9号,加拿大2014年的报税截至日期是4月30日,正是电子报税系统最繁忙的日子,其间的为难可想而知。

针对这个反常的流程,社区中有很多诡计论的看法,我不转述这些看法,我只是想说,这是另外一个证据证明OpenSSL有严重的管理问题,而不是钱的问题,人们说他们把事情做的一团混乱绝对不是没理由的指责。

另外,OpenSSL并不是凭空出现的项目,而是继承了另一个项目SSLeay的代码。在SSLeay的开发者去RSA公司工作,不能继续这个开源项目之后,有好几个项目继承了它的代码继续开发,OpenSSL只是其中比较成功的一个。这也是我不赞成吹捧OpenSSL的原因,历史的选择常常存在偶然,具体到SSL软件上,就更复杂,这是混合了技术,商业,历史,政治复杂因素以后的偶然结果。现在OpenSSL暂时有最多的用户,以后则未必会如此,我相信,早晚会有一个新的替换者出现。

EFF才是真正的人类隐私捍卫者

《隐形战士》认为OpenSSL是人类隐私的捍卫者,事实上,OpenSSL只是同类加密软件中的一个,他们当不起隐私捍卫者这个头衔。今天,我们可以不知不觉取得加密软件的保护,背后有一些曲折的故事,那是真正的隐私捍卫者的故事。

曾经,加密技术是被美国政府禁止出口的,就像很多武器制止出口一样,其他国家的人,想要使用这些加密算法,就像要从美国买导弹一样,是不可能的。转机发生在1995年,这一年,加州伯克利大学的研究生Bernstein在一个叫做电子前线基金会的律师帮助下,起诉美国政府。他的主张是自由发表加密算法,属于言论自由的一部分,从而受美国宪法第一修正案保护,史称 Bernstein v. United States。这个案子进行了4年,到1999年,美国联邦第九巡回上诉法院出了判决,根据第一修正案,判决美国政府制止公然密码算法违宪。在这之后,各种密码协议和开源算法才从美国流传出来,被自由使用。

电子前线基金会EFF(Electronic Frontier Foundation),创建于1990年,是一个法律援助组织,他们的使命是捍卫隐私,自由表达和公民权利。这也是一个基金会,而且是一个完全靠捐款运作的非盈利组织。EFF创始人之一是Lotus公司创始人卡普尔,曾是和比尔盖茨齐名的软件天才。80年代,Lotus是最大的独立软件公司,几年以后微软才超过它。卡普尔是一个极具前瞻精神的奇才,1990年,卡普尔意想到未来技术、隐私、法律和政治的冲突,自己出资创建了EFF,后来的资助者中还有著名的苹果联合创始人沃兹。当时,商业互联尚未成型,可见他们前瞻性之强。关于EFF的传奇故事可以写很多篇文章,这里我们先说和OpenSSL有关的部分。

曾浏览器的领导者Netscape,于1995年开发了第一个SSL协议。SSLeay也在1995年完成了第一个实现,1998年SSLeay中断开发,由社区接手。直到1999年美国政府败诉,加密技术终究可以自由流通。这才是人类隐私保护工程的历史脉络。在这个复杂的故事里面,OpenSSL是受益者之一,也是全部故事中的1小段,界面的文章把OpenSSL开发者捧为人类隐私的捍卫者,不但过誉,而且显得非常无知。

EFF及其创始人卡普尔,是真正的理想主义者,他们没有商业收入,自己掏钱,做这一件事做了25年之久,通过一个又一个的诉讼案和对隐私相干案件的法律援助,他们成功推动了社会进步。这才是互联时代真正的隐私的捍卫者。

媒体的

有朋友说,写写文章,让大家捐点钱,怎样也不会有害,不应当被批评。我不这么认为。媒体传播是可以影响人群选择的。界面文章中说,

如果一个开源项目在商业世界取得了成功,那决不会是出于侥幸,决不会(此处错别字为原文援用)是由于其它竞争者恰好被规章制度所累、被知识产权法束缚。

BSD的历史正好是一个反例。作为最正宗的UNIX继承者,BSD运用广泛程度至今不及Linux,媒体在这个进程中起了相当重要的作用。直到今天,谈起开源软件,媒体都更关注Linux,质量更可靠的BSD缺少关注,从而影响了人们的选择。

互联的安全,不取决于一个特定的软件,即便这个软件是用来加密的。发现“心脏出血“漏洞的Google员工Mehta说过,libjpeg如果出问题,可能会有极大影响。libjpeg用来生成和显示大部分站和软件的图片,被普通人用到的范围比OpenSSL更广,威逼也会更严重。当人们被媒体把关注转向OpenSSL上时,大量更重要的问题就会缺少关注。希望能有更多人关注更多的基础项目,而不是和汶川地震一样,盯着看各大企业谁给OpenSSL捐款更多。一年了,炒作也应当结束了。

《隐形战友》对华为、诺基亚,Google这样出钱出力,没自我炒作的厂商不公平,对其他开源组织也不公平。人员的严谨程度还不如我这类完全靠个人爱好写作的非专业人员。虽然不严谨,但他们的煽情技能确切是出色而专业的,这篇文章被很多人称为精彩,这令人失望,也非常遗憾。

第一时间获得TMT行业新鲜资讯和深度商业分析,请在公众账号中搜索「钛媒体」或「taimeiti」,或用扫描左方二维码,便可取得钛媒体逐日精华内容推送和最优搜索体验,并参与活动。

有了市场,就有股票,,,,有了股票,就可以内部发行,,外部推行,获得认可,持续盈利.上市,走人.怎样有市场呢?你们都在用,都在讨论,都利用它赚钱,难道还没有市场?你看.这媒体就是在推行,你们水军就是在推行你不赚钱?那是GDP,还没正式取得市场认可,流通

我真是被作者的观点醉了,大部分开源软件都需要捐款?谁告知你的,大部分开源软件基金会都有自己的商业子公司或其他的盈利项目,最最知名的例子就是“谋职基金会”,还有使用他们的软件确切是会起到推行作用的,譬如现在的apace server和nginx,作为服务提供者,都是在不停的抢占市场,就算炒作一点捐款当时我也没有喷罗永浩,就像当初标哥捐款虽然高调但是确切做了好事儿,但是《隐形战友》完全跪舔的文章不得不让人从每个观点批驳,所以我看霍炬先生的文章还是很有些观点的,而这篇文章的作者是欺侮大家都不晓得开源软件基金会的运作模式还是怎么的,还是罗永浩授意,一定要牵强的批评每个观点,其中不管对错只要批到了再说,居然还有那么多人信以为真。

21:01 via pc

第一,霍炬先生把openssl和Google进行类比,以此证明openssl不差钱,但两者根本没有可比性!SSL可以在Internet上提供秘密性传输,使用户/服务器应用之间的通讯不被攻击者窃听,也就是说openssl提供的服务是互联,而不是特定的民和直接客户。相比之下,Google直接可以同民和客户进行互动推送广告。而openssl隐藏在系统内部,根本没法推送广告和宣扬自己。正是如此,“隐形战友”的作者把他们称之为“隐形人”。霍炬先生如此偷换概念,把开源程序和开源ssl混为一谈用心何在?第二,知道openssl民有多少?霍炬先生说“任何一个用户,只要在使用OpenSSL,就是在帮助这个组织取得市场份额,在竞争中取得更大优势,不管有没有直接捐款给他们,用户都已做出了贡献。”这句话没有错,但是有多少人知道自己在无偿使用openssl呢? 隐形战友”的作者就是把这个无名英雄告知给大家,所以我们才知道世界上还有这么一个openssl,才知道自己正在无偿使用一个由很多无偿为openssl服务的幕后英雄。 我们为此而捐款不应该吗?第三, 霍炬先生用很大力气在说捐钱给openssl是如何的不合算,以此次说服捐款给其它基金,甚至于援用美国税法,如此用心用心何在?我们没为何不能捐给openssl?第四,霍炬先生用大量事实证明openssl得到了很多赞助,但那些是赞助,而非捐款。罗先生捐赠的100万人民币是OpenSSL创建以来得到的最大单笔捐助,超过历年所有企业与个人捐助额的总和是一个千真万确的事实!------ 作者对此进行报导不应当吗?第五,关于OpenSSL的未来,霍炬先生用大量篇幅讨论这个问题,终究证明“现在OpenSSL暂时有最多的用户,以后则未必会如此,我相信,早晚会有一个新的替代者出现”。------作者很牛吧?第六,霍炬先生是否知道“隐形战友”是一部文学作品吗?霍炬先生的文章充满了“痛恨",仿佛对界面,对锤子,对罗先生有"深仇大恨",一个内心充满痛恨的人能够客观评价一篇文学作品吗? 据络搜索,霍炬先生素有黑人的习惯,特别是对锤子独有情钟,难怪会有如此文章!这就不难理解霍炬先生1上来就说是软文啦

14:47 via pc

我们会向您的号发送验证码,请查收并按提示验证您的号。如果您没有收到短信,请留意垃圾短信拦截

经检测,你是“钛媒体”和“商业价值”的注册用户。现在,我们对两个产品因进行整合,需要您选择一个账号用来登录。不管您选择哪一个账号,两个账号的原有信息都会合并在一起。对给您造成的不便,我们深感歉意。

白带多怎么样治疗
子宫内膜炎引起原因
女性白带多正常吗

相关推荐