2
本文作者: 霍炬 | 2015-02-06 10:08 |
[雷鋒網(wǎng)編者按]自界面發(fā)表那篇《隱形的戰(zhàn)友》以后,關(guān)于OpenSSL,關(guān)于開(kāi)源社區(qū)和開(kāi)源項(xiàng)目的話題,再次成為業(yè)內(nèi)關(guān)注的焦點(diǎn)?;ヂ?lián)網(wǎng)發(fā)展至今,可以說(shuō),全人類(lèi)都受惠于開(kāi)源運(yùn)動(dòng)。但對(duì)于廣大公眾來(lái)說(shuō),開(kāi)源社區(qū)和開(kāi)源理念,始終都隱藏在一層隱約的神秘面紗之后。大眾的主流認(rèn)知里,多數(shù)有關(guān)于此的概念,都是含糊的,或者是錯(cuò)誤的。媒體,尤其是業(yè)界媒體,對(duì)此一直有所缺位,甚至成為錯(cuò)誤概念的主動(dòng)傳播者。今天,來(lái)自霍炬的這篇長(zhǎng)文,讓我們有機(jī)會(huì),從另一個(gè)不同的角度,接觸、了解開(kāi)源運(yùn)動(dòng)真實(shí)的一角。
雷鋒網(wǎng)由衷地希望,國(guó)內(nèi)外接觸、從事開(kāi)源項(xiàng)目和開(kāi)源活動(dòng)的朋友們,能撥冗寫(xiě)下一點(diǎn)關(guān)于自己經(jīng)歷和開(kāi)源社區(qū)的文字。雷鋒網(wǎng)作為專注于移動(dòng)互聯(lián)網(wǎng)和智能硬件發(fā)展的媒體,愿意盡力為開(kāi)源社區(qū)提供任何可能的支持和宣傳。因?yàn)槲覀兩钚牛@種來(lái)自開(kāi)源社區(qū)內(nèi)部的聲音的傳播,對(duì)于整個(gè)網(wǎng)絡(luò)的發(fā)展,對(duì)于開(kāi)源運(yùn)動(dòng),都會(huì)是有幫助的。
前幾天,在朋友圈看到轉(zhuǎn)來(lái)的原發(fā)于“界面“關(guān)于OpenSSL和開(kāi)源項(xiàng)目的“隱形戰(zhàn)友”一文。開(kāi)始覺(jué)得不過(guò)是炒冷飯,“心臟出血”這個(gè)OpenSSL嚴(yán)重漏洞,從去年(2014)4月初被公眾知道,到現(xiàn)在已有將近一年了,這件事已經(jīng)算告一段落。盡管這篇文章充滿了誤解、硬傷和企業(yè)宣傳,我也沒(méi)太在意。結(jié)果,今天看到界面的網(wǎng)站上竟然還在用支付寶給OpenSSL募捐,這就荒唐了。之前有一些朋友說(shuō),無(wú)論怎么樣,多一些關(guān)注總是好的,從現(xiàn)在的結(jié)果看,界面的文章造成的壞影響更大,這篇文章扭曲了開(kāi)源社區(qū)的本來(lái)狀況,對(duì)其他組織和企業(yè)也不公平。開(kāi)源軟件、安全、隱私確實(shí)是大部分普通用戶不了解的領(lǐng)域,但記者要寫(xiě)一篇文章,總應(yīng)該對(duì)歷史有個(gè)基本了解。
界面網(wǎng)絡(luò)的創(chuàng)始人何力先生,曾經(jīng)創(chuàng)建了經(jīng)濟(jì)觀察報(bào)和第一財(cái)經(jīng),都是不錯(cuò)的媒體,再次創(chuàng)業(yè)界面,也備受關(guān)注。可惜界面這篇文章,給我?guī)?lái)的失望比較大。更好笑的是,當(dāng)年羅永浩對(duì)戰(zhàn)王自如的時(shí)候,羅粉說(shuō)王自如的公司是雷軍投資的,所以王自如一定是傾向小米的。而今天,界面,這個(gè)小米參與投資的媒體,登了一篇錘子的軟文。這兩者之間對(duì)比,實(shí)在讓人哭笑不得。
我想聊聊開(kāi)源軟件的模式和OpenSSL存在的問(wèn)題,以及到底誰(shuí)在捍衛(wèi)我們的隱私,這些都是界面的文章弄錯(cuò)的地方。我也會(huì)寫(xiě)到在“心臟出血“這個(gè)漏洞從發(fā)現(xiàn)到公布的過(guò)程中,驚心動(dòng)魄和爭(zhēng)分奪秒的故事,這個(gè)過(guò)程暴露出OpenSSL嚴(yán)重的管理問(wèn)題,
先從開(kāi)源說(shuō)起。
界面一文,把OpenSSL描述成沒(méi)有捐款就沒(méi)法生存的組織,但開(kāi)源組織并不是這樣,開(kāi)源和免費(fèi)一樣,是一種商業(yè)模式,他們之間有諸多不同,但有一個(gè)基本的相同點(diǎn),就是都希望盡量多的人免費(fèi)使用它。大家已經(jīng)免費(fèi)使用了很多互聯(lián)網(wǎng)服務(wù),對(duì)于免費(fèi)模式應(yīng)該非常理解,我們從未給Google付款,從未為我們每一次搜索買(mǎi)單。但我們搜索的行為,我們的注意力、數(shù)據(jù),都會(huì)變成Google的廣告收入。我們每一次使用Google搜索,都是在幫助Google賺錢(qián),盡管沒(méi)直接付錢(qián)給他們。
開(kāi)源軟件也是如此。開(kāi)源軟件的世界是激烈競(jìng)爭(zhēng)的,任何一個(gè)組織,都可以從當(dāng)前代碼分支一份繼續(xù)開(kāi)發(fā)新的版本,這個(gè)行為叫做Fork。一個(gè)開(kāi)源組織要想生存下去,最重要的基礎(chǔ)就是普遍被使用,不然很快就會(huì)被競(jìng)爭(zhēng)者替代。一個(gè)軟件被普遍被使用之后,就會(huì)因此衍生出相關(guān)服務(wù),團(tuán)隊(duì)可以通過(guò)這些服務(wù)獲得比較好的收入,商業(yè)模式就成型了。最著名的例子應(yīng)該算是Red Hat Linux,中文叫做紅帽,他們免費(fèi)提供Linux發(fā)行版,企業(yè)可以通過(guò)付費(fèi)訂閱獲得技術(shù)支持,他們收入相當(dāng)不錯(cuò),現(xiàn)在已經(jīng)是一家市值100多億美金的上市公司。
OpenSSL采用的也是同樣的開(kāi)源和服務(wù)收費(fèi)的方式運(yùn)轉(zhuǎn),OpenSSL基金會(huì)的負(fù)責(zé)人Steve說(shuō)他們最多一年有將近100萬(wàn)美金的商業(yè)咨詢項(xiàng)目(資金來(lái)源是美國(guó)國(guó)防部和美國(guó)國(guó)土安全部),這已經(jīng)是相當(dāng)不錯(cuò)的狀況。開(kāi)源軟件的全職工作人員都不會(huì)太多,大部分項(xiàng)目的核心貢獻(xiàn)者同時(shí)也都會(huì)承擔(dān)商業(yè)性項(xiàng)目,這是很正常的情況。在開(kāi)源社區(qū)中,像Linux創(chuàng)始人Linus這樣全職為開(kāi)源項(xiàng)目工作的程序員,反而不是普遍現(xiàn)象,Linus得以這么做,一方面是Linux基金會(huì)財(cái)力豐厚,另外一方面也是因?yàn)長(zhǎng)inux衍生項(xiàng)目太多,影響力也太大,Linus本身又是精神領(lǐng)袖,他不得不全職為L(zhǎng)inux工作。同時(shí)從事商業(yè)服務(wù)和開(kāi)源項(xiàng)目,并不是界面那篇文章描述的那么悲情。
再來(lái)個(gè)例子,最好的開(kāi)源UNIX操作系統(tǒng)FreeBSD,其核心開(kāi)發(fā)者Poul-Henning Kamp(社區(qū)內(nèi)叫他phk)到今天仍然承擔(dān)商業(yè)性項(xiàng)目。即使從1994年到現(xiàn)在,他的一直在FreeBSD代碼貢獻(xiàn)的排行榜上排第一,也仍然不是FreeBSD基金會(huì)的全職員工,他對(duì)自己的描述是“自雇”。phk在自己主頁(yè)上公開(kāi)了最近正在做的一個(gè)商業(yè)項(xiàng)目,報(bào)酬每月3000美金。以O(shè)penSSL的項(xiàng)目規(guī)模,有一個(gè)全職開(kāi)發(fā)者已經(jīng)是相當(dāng)不錯(cuò)的狀況了。
為什么有這么多人會(huì)放棄傳統(tǒng)的賣(mài)軟件的方式,轉(zhuǎn)向免費(fèi)軟件和開(kāi)源軟件?除了個(gè)人興趣和理想之外,開(kāi)源軟件是一個(gè)成熟可靠的商業(yè)模式,這個(gè)商業(yè)模式有自己的收入方式和生態(tài)。界面這篇文章極力制造普通互聯(lián)網(wǎng)用戶對(duì)于OpenSSL的愧疚感,指責(zé)普通用戶從來(lái)沒(méi)付錢(qián)給他們,這種一種道德綁架。任何一個(gè)用戶,只要在使用OpenSSL,就是在幫助這個(gè)組織獲得市場(chǎng)份額,在競(jìng)爭(zhēng)中獲得更大優(yōu)勢(shì),無(wú)論有沒(méi)有直接捐款給他們,用戶都已經(jīng)做出了貢獻(xiàn)。
雖然開(kāi)源組織可以通過(guò)商業(yè)服務(wù)來(lái)讓自己生存的不錯(cuò),但是一般也都很愿意接受捐款。有足夠的捐款,可以少做一些商業(yè)項(xiàng)目,把精力往開(kāi)源軟件方面傾斜一些,這當(dāng)然是好事。大部分軟件和IT企業(yè),每年都有不小的一筆錢(qián)用來(lái)支持開(kāi)源項(xiàng)目們,同時(shí)也爭(zhēng)取自己在開(kāi)源社區(qū)的影響力和發(fā)言權(quán),開(kāi)源組織們每年接受的捐款按照各自項(xiàng)目狀況,都不算少。但為什么一年前,OpenSSL這個(gè)項(xiàng)目每年只能收到幾千美金的捐款呢?答案很簡(jiǎn)單,因?yàn)樗麄儚膩?lái)沒(méi)有搞過(guò)募捐活動(dòng)。
開(kāi)源組織通常會(huì)設(shè)立一個(gè)注冊(cè)為非盈利機(jī)構(gòu)的基金會(huì),通過(guò)這個(gè)基金會(huì)募集資金、組織活動(dòng)、推廣自己的開(kāi)源產(chǎn)品,視項(xiàng)目情況給專職或者兼職開(kāi)發(fā)者付報(bào)酬,其中募集資金是基金會(huì)相當(dāng)重要的工作。如果經(jīng)常使用維基百科的用戶,應(yīng)該會(huì)有印象。維基百科每年都有一個(gè)固定時(shí)段,會(huì)在網(wǎng)站上放置非常明顯的籌資通告,設(shè)定好本年度預(yù)算目標(biāo),讓大家捐款。達(dá)到數(shù)額之后,捐款就停止,不再接受更多。幾乎所有開(kāi)源組織,都會(huì)通過(guò)這種方式募集捐贈(zèng)。
OpenSSL基金會(huì)從來(lái)沒(méi)公開(kāi)募集過(guò)資金,如果沒(méi)有捐款目標(biāo),沒(méi)公開(kāi)募捐,就很難有成批的捐款進(jìn)入,畢竟,需要資金的項(xiàng)目實(shí)在太多了。對(duì)于OpenSSL這種項(xiàng)目,募資相當(dāng)容易,他們只需公開(kāi)發(fā)一份籌款通知,各大企業(yè)的錢(qián)就可以立刻到手。當(dāng)“心臟出血“發(fā)生之后,諸多企業(yè)驚訝的不是只有一個(gè)全職開(kāi)發(fā)者這件事,而是,為什么你們一直沒(méi)籌款。OpenSSL從來(lái)沒(méi)公布過(guò)自己的財(cái)務(wù)狀況,沒(méi)有設(shè)置過(guò)募款目標(biāo),這讓人們?nèi)绾稳ゾ杩罱o他?
更有意思的是,OpenSSL基金會(huì)并沒(méi)有注冊(cè)為非盈利機(jī)構(gòu),而是一個(gè)盈利性企業(yè)。捐助OpenSSL的人和企業(yè)無(wú)法從美國(guó)政府獲得減稅。按照他們自己的說(shuō)法,是他們沒(méi)有時(shí)間維護(hù)一個(gè)非盈利組織,這不是個(gè)好理由。對(duì)于一個(gè)開(kāi)源項(xiàng)目,注冊(cè)一個(gè)非盈利組織比注冊(cè)公司難不了多少,再說(shuō),基金會(huì)之所以成立,不就是為了去做這些事嗎?盈利性企業(yè)已經(jīng)定義了他們是希望靠商業(yè)活動(dòng)獲得收入,而不是靠捐款生存。捐款給盈利性企業(yè),錢(qián)的利用率就會(huì)變低很多,按照美國(guó)稅法粗算,最多的情況下要多交出30%~40%的稅,是巨大的浪費(fèi)。這也解釋了為什么美國(guó)企業(yè)很少捐款給OpenSSL基金會(huì)。
不過(guò),就算如此,事情也是在快速好轉(zhuǎn)的?!靶呐K出血“事件之后,Linux基金會(huì)在極短的時(shí)間內(nèi)就成立了核心基礎(chǔ)架構(gòu)聯(lián)盟(CII, Core Infrastructure Initiative),這個(gè)聯(lián)盟和以往最大的區(qū)別是,他們主動(dòng)挑選缺乏資金的重要開(kāi)源項(xiàng)目進(jìn)行資助,無(wú)論對(duì)方是否募款,OpenSSL是他們資助的第一個(gè)項(xiàng)目。這個(gè)聯(lián)盟集結(jié)了世界各國(guó)的科技企業(yè)共同出資,其中包括了Google、Amazon、Facebook、思科、富士、惠普、IBM…目前已經(jīng)有了10多家企業(yè)。其中中國(guó)企業(yè)只有一家,是華為。特別值得一提的是,除了給CII出資,華為也單獨(dú)資助了OpenSSL基金會(huì)每年5萬(wàn)美金??上?,界面的文章似乎把華為忘了。參加CII聯(lián)盟的企業(yè)每年出至少10萬(wàn)美金,按照2014年的數(shù)字,CII每年總共有170萬(wàn)美金基金可以使用,第一期資金主要用來(lái)資助OpenSSL和OpenSSH,資金相當(dāng)富裕。
上面這些事情都發(fā)生在去年5月,也就是“心臟出血“事件之后的一個(gè)多月時(shí)間里。無(wú)論是各大科技企業(yè),還是Linux基金會(huì),他們的行動(dòng)都非常迅速,這是開(kāi)源世界的做事方式和效率。到去年5月,OpenSSL的資金問(wèn)題就算解決了。從這個(gè)結(jié)果看,之前OpenSSL沒(méi)有得到足夠捐款的直接原因就是其基金會(huì)失職。
做為對(duì)比,再看看去年OpenBSD募款的經(jīng)歷。OpenBSD是最關(guān)注安全的開(kāi)源Unix操作系統(tǒng),他們同時(shí)也是OpenSSH的維護(hù)者(看到SS是不是覺(jué)得和加密也有關(guān)系?沒(méi)錯(cuò),這也是一種加密工具,只不過(guò)不是給客戶用的,是給服務(wù)器管理者和程序員用的),去年的募款目標(biāo)僅僅是15萬(wàn)加幣。相比起來(lái),170萬(wàn)美金實(shí)在已經(jīng)是太多了,如果CII給的錢(qián)不夠讓OpenSSL變好,恐怕再多的錢(qián)也不會(huì)好了。
除了直接捐錢(qián),各大企業(yè)支持開(kāi)源項(xiàng)目的方式還有很多,比如捐獻(xiàn)自己?jiǎn)T工的時(shí)間。任何一個(gè)開(kāi)源項(xiàng)目中,都有來(lái)自各大公司工程師的貢獻(xiàn),這些公司給自己?jiǎn)T工發(fā)薪水,他們寫(xiě)的代碼會(huì)回饋給開(kāi)源項(xiàng)目,比起捐款,這是更直接的支持。比如去年發(fā)現(xiàn)“心臟出血”漏洞的工程師,是Google員工,他在上班時(shí)間全職對(duì)OpenSSL代碼做安全審計(jì),找到了這個(gè)Bug。他確實(shí)不是OpenSSL基金會(huì)的直接雇員,但這份由Google買(mǎi)單的全職勞動(dòng)成果是貢獻(xiàn)給了OpenSSL項(xiàng)目的,說(shuō)所有大公司都沒(méi)支持過(guò)這個(gè)項(xiàng)目,未免太不公平。而這種錯(cuò)誤言論,正是界面文章宣傳的論調(diào),按照這篇文章的說(shuō)法,一個(gè)中國(guó)小公司救了全世界互聯(lián)網(wǎng)用戶,這是何等荒唐。
說(shuō)到這里,再說(shuō)說(shuō)捐款問(wèn)題。我非常反對(duì)界面渲染的這種捐款情緒,這是利用人們的愧疚捐款。錢(qián)是非常寶貴的資源,需要用錢(qián)的地方太多了,正確的捐款是在捐款者對(duì)項(xiàng)目的充分了解后,基于對(duì)其價(jià)值觀和方向認(rèn)同,按照自己的愿望進(jìn)行長(zhǎng)期而小額的固定捐助。在這個(gè)過(guò)程中,稅務(wù)問(wèn)題也是必須要考慮的,這直接決定了資金利用率,比如美國(guó)稅務(wù)居民,捐贈(zèng)給OpenSSL,資金的利用率就很低,而捐款給CII再由他們資助OpenSSL,就可以得到一部分免稅,利用率高了很多,如果是加拿大稅務(wù)居民,想對(duì)操作系統(tǒng)方面的項(xiàng)目捐款,應(yīng)該首選OpenBSD,因?yàn)樗羌幽么笞?cè)的非盈利組織。捐款是一個(gè)非常理性的行為,隱藏部分信息,利用人們對(duì)開(kāi)源項(xiàng)目的不了解,煽情,制造愧疚感,這是不可持續(xù)的,也是不公平的,這些都是界面的文章和之后的運(yùn)營(yíng)所做的事情。
界面的文章中說(shuō)基層程序員批評(píng)他們的代碼“令人作嘔”,實(shí)際上,說(shuō)這句話的人是Theo de Raadt,是OpenBSD項(xiàng)目的創(chuàng)始人,他可不是“基層程序員”,而是操作系統(tǒng)領(lǐng)域最好的計(jì)算機(jī)科學(xué)家之一。OpenBSD開(kāi)發(fā)者們并沒(méi)止步于批評(píng),而是立刻決定從當(dāng)前OpenSSL版本創(chuàng)建一個(gè)叫做LibreSSL的獨(dú)立項(xiàng)目,從清理OpenSSL的代碼重新開(kāi)始。他們?cè)诘谝恢芫蛣h除了9萬(wàn)多行代碼,OpenSSL整個(gè)項(xiàng)目只有38萬(wàn)行,相當(dāng)于刪減了近1/4的代碼。可見(jiàn)Theo的批評(píng)并不是順口胡說(shuō)。幾年來(lái),OpenSSL出過(guò)各種漏洞,在“心臟出血“之后,仍然有隱藏了10年以上的漏洞被發(fā)現(xiàn),很多熟悉這個(gè)項(xiàng)目的人看法都是“除了重寫(xiě)別無(wú)辦法”。
OpenBSD有一份文檔說(shuō)明了他們?cè)谇謇磉^(guò)程中遇到的問(wèn)題,去掉其中的技術(shù)細(xì)節(jié),我把主要觀點(diǎn)列在這里,這些也基本是業(yè)內(nèi)主流看法:
OpenSSL的代碼混亂不堪,難以閱讀。開(kāi)源軟件一般通過(guò)讓更多人看到代碼來(lái)發(fā)現(xiàn)bug,如果代碼難以閱讀,這個(gè)辦法就失效了。
他們使用了大量自己的代碼封裝和編程風(fēng)格,這些代碼有的有bug,有的不符合現(xiàn)代主流做法。這讓常見(jiàn)的檢測(cè)工具沒(méi)法應(yīng)用于他們的項(xiàng)目,更難以發(fā)現(xiàn)Bug。
他們的開(kāi)發(fā)者更關(guān)心增加功能,而不是維護(hù)和修補(bǔ)。
其他開(kāi)發(fā)者提供的修改和貢獻(xiàn),一般不會(huì)被合并到最終代碼里。
很多用戶指出的Bug,包括一些相當(dāng)嚴(yán)重的,公開(kāi)放在追蹤系統(tǒng)里面長(zhǎng)達(dá)幾年,沒(méi)被修補(bǔ)。
其中存留了大量無(wú)用的舊代碼,比如給windows 2000之前的16位系統(tǒng)寫(xiě)的兼容代碼,仍然包含在最新版本的OpenSSL中。
基于以上原因,OpenBSD認(rèn)為這個(gè)項(xiàng)目已經(jīng)沒(méi)法維護(hù)了,必須要重新開(kāi)始。這就是他們創(chuàng)建一個(gè)分支,從清理代碼這種基礎(chǔ)工作開(kāi)始的原因??梢?jiàn),這個(gè)項(xiàng)目根本不是錢(qián)的問(wèn)題,而是管理方式和社區(qū)文化有問(wèn)題。比起來(lái)其他項(xiàng)目,他們?cè)谟幸粋€(gè)全職開(kāi)發(fā)者和一個(gè)全職基金會(huì)主席的情況下還能響應(yīng)如此緩慢,實(shí)在更令人沮喪。順便說(shuō)一句,做清理代碼這件事的OpenBSD開(kāi)發(fā)者,也不是全職工作,他還在這份文檔前面特別注明了“可以被雇傭”。一年之后的今天,LibreSSL已經(jīng)基本算可用了,除了清理和改變了原有代碼風(fēng)格,他們也增加了一些更先進(jìn)的特性,看起來(lái)很有前途。另外,這個(gè)項(xiàng)目也很需要捐款,如果更認(rèn)同他們的做法,可以捐款給他們。
除此之外,OpenSSL公布“心臟出血“漏洞的過(guò)程也非常有問(wèn)題。一般出現(xiàn)嚴(yán)重漏洞的流程,是先不對(duì)公眾公布,立即通知主流操作系統(tǒng)維護(hù)者和相關(guān)廠商,讓大家先修改,之后一起發(fā)布安全公告和升級(jí)。之所以這樣做,是因?yàn)槿绻僮飨到y(tǒng)不去打補(bǔ)丁,很多普通用戶知道漏洞也沒(méi)辦法修補(bǔ),反而讓黑客們更容易利用這些漏洞。OpenSSL不是這么做的,在Google告知了他們漏洞之后,OpenSSL沒(méi)有告知任何一家操作系統(tǒng)廠商,反而奇怪的被幾家主要CDN廠商知道了,也就是說(shuō),在不知道哪個(gè)環(huán)節(jié)發(fā)生了泄密。之后開(kāi)源社區(qū)中開(kāi)始有關(guān)于這個(gè)重大Bug的傳言,直到這個(gè)時(shí)候,幾大操作系統(tǒng)仍然沒(méi)得到正式通知。又過(guò)了3天,OpenSSL才告知了Red Hat,當(dāng)天,參與處理這件事的一位Red Hat員工在一個(gè)私密郵件組里面把這個(gè)消息分享給了SuSE/Debian/FreeBSD等幾個(gè)重要操作系統(tǒng)相關(guān)負(fù)責(zé)人。多虧了他,因?yàn)榇藭r(shí)OpenSSL仍然表示沒(méi)有任何細(xì)節(jié)提供,這是加州灣區(qū)的太平洋時(shí)間4月6日晚上,從Red Hat得到具體細(xì)節(jié)的幾大操作系統(tǒng),連夜開(kāi)始忙著打補(bǔ)丁,到這個(gè)時(shí)候,Red Hat提供的消息是OpenSSL將在9號(hào),也就是3天之后公開(kāi)這個(gè)漏洞。可惜,轉(zhuǎn)天,4月7日一大早,OpenSSL就直接發(fā)布了公告,媒體們知道了,全世界都知道了。如果沒(méi)有Red Hat提前放的消息,最后的影響恐怕還會(huì)大的多,就算如此,因?yàn)闀r(shí)差的原因(Red Hat那位員工在印度),很多在他夜里睡覺(jué)之后的郵件沒(méi)來(lái)得及回復(fù),仍然有很多廠商沒(méi)能提前得知細(xì)節(jié)。關(guān)鍵廠商對(duì)于如此重大的漏洞比媒體知道消息還晚,近年來(lái)恐怕這是第一次。這造成了不少損失,比如加拿大國(guó)稅局CRA在漏洞被公開(kāi)之后發(fā)現(xiàn)數(shù)據(jù)被盜,此時(shí)已經(jīng)來(lái)不及打補(bǔ)丁了,所以干脆直接把電子報(bào)稅系統(tǒng)關(guān)掉了,當(dāng)時(shí)是4月9號(hào),加拿大2014年的報(bào)稅截至日期是4月30日,正是電子報(bào)稅系統(tǒng)最繁忙的日子,其間的尷尬可想而知。整個(gè)過(guò)程的時(shí)間線,在theage的一篇文章有完整記載,我列在最后,供參考。
針對(duì)這個(gè)反常的流程,社區(qū)中有不少陰謀論的看法,我不轉(zhuǎn)述這些看法,我只是想說(shuō),這是另外一個(gè)證據(jù)證明OpenSSL有嚴(yán)重的管理問(wèn)題,而不是錢(qián)的問(wèn)題,人們說(shuō)他們把事情做的一團(tuán)混亂絕對(duì)不是沒(méi)理由的指責(zé)。
另外,OpenSSL并不是憑空出現(xiàn)的項(xiàng)目,而是繼承了另一個(gè)項(xiàng)目SSLeay的代碼。在SSLeay的開(kāi)發(fā)者去RSA公司工作,不能繼續(xù)這個(gè)開(kāi)源項(xiàng)目之后,有好幾個(gè)項(xiàng)目繼承了它的代碼繼續(xù)開(kāi)發(fā),OpenSSL只是其中比較成功的一個(gè)。維基百科上列出了SSL庫(kù)的實(shí)現(xiàn),包括OpenSSL,現(xiàn)在還在使用的也有10多個(gè),其中開(kāi)源的占了將近一半。
這也是我不贊成吹捧OpenSSL的原因,歷史的選擇往往存在偶然,具體到SSL軟件上,就更復(fù)雜,這是混合了技術(shù),商業(yè),歷史,政治復(fù)雜因素之后的偶然結(jié)果。現(xiàn)在OpenSSL暫時(shí)有最多的用戶,以后則未必會(huì)如此,我相信,早晚會(huì)有一個(gè)新的替代者出現(xiàn)。
界面這篇文章認(rèn)為OpenSSL是人類(lèi)隱私的捍衛(wèi)者,事實(shí)上,OpenSSL只是同類(lèi)加密軟件中的一個(gè),他們當(dāng)不起隱私捍衛(wèi)者這個(gè)頭銜。今天,我們可以不知不覺(jué)獲得加密軟件的保護(hù),背后有一些曲折的故事,那是真正的隱私捍衛(wèi)者的故事。
曾經(jīng),加密技術(shù)是被美國(guó)政府禁止出口的,就像很多武器禁止出口一樣,其他國(guó)家的人,想要使用這些加密算法,就像要從美國(guó)買(mǎi)導(dǎo)彈一樣,是不可能的。轉(zhuǎn)機(jī)發(fā)生在1995年,這一年,加州伯克利大學(xué)的研究生Bernstein在一個(gè)叫做電子前線基金會(huì)的律師幫助下,起訴美國(guó)政府。他的主張是自由發(fā)表加密算法,屬于言論自由的一部分,從而受美國(guó)憲法第一修正案保護(hù),史稱 Bernstein v. United States。這個(gè)案子進(jìn)行了4年,到1999年,美國(guó)聯(lián)邦第九巡回上訴法院出了判決,依據(jù)第一修正案,判決美國(guó)政府禁止公開(kāi)密碼算法違憲。在這之后,各種密碼協(xié)議和開(kāi)源算法才從美國(guó)流傳出來(lái),被自由使用。
電子前線基金會(huì)EFF(Electronic Frontier Foundation),創(chuàng)建于1990年,是一個(gè)法律援助組織,他們的使命是捍衛(wèi)隱私,自由表達(dá)和公民權(quán)利。這也是一個(gè)基金會(huì),而且是一個(gè)完全靠捐款運(yùn)作的非盈利組織。EFF創(chuàng)始人之一是Lotus公司創(chuàng)始人卡普爾,曾經(jīng)是和比爾蓋茨齊名的軟件天才。80年代,Lotus是最大的獨(dú)立軟件公司,幾年之后微軟才超過(guò)它??ㄆ諣柺且粋€(gè)極具前瞻精神的奇才,1990年,卡普爾意識(shí)到未來(lái)技術(shù)、隱私、法律和政治的沖突,自己出資創(chuàng)建了EFF,后來(lái)的資助者中還有著名的蘋(píng)果聯(lián)合創(chuàng)始人沃茲。當(dāng)時(shí),商業(yè)互聯(lián)網(wǎng)尚未成型,可見(jiàn)他們前瞻性之強(qiáng)。關(guān)于EFF的傳奇故事可以寫(xiě)很多篇文章,這里我們先說(shuō)和OpenSSL有關(guān)的部分。
曾經(jīng)瀏覽器的領(lǐng)導(dǎo)者Netscape,于1995年開(kāi)發(fā)了第一個(gè)SSL協(xié)議。SSLeay也在1995年完成了第一個(gè)實(shí)現(xiàn),1998年SSLeay中止開(kāi)發(fā),由社區(qū)接手。直到1999年美國(guó)政府?dāng)≡V,加密技術(shù)終于可以自由流通。這才是人類(lèi)隱私保護(hù)工程的歷史脈絡(luò)。在這個(gè)復(fù)雜的故事里面,OpenSSL是受益者之一,也是整個(gè)故事中的一小段,界面的文章把OpenSSL開(kāi)發(fā)者捧為人類(lèi)隱私的捍衛(wèi)者,不僅過(guò)譽(yù),而且顯得非常無(wú)知。
EFF及其創(chuàng)始人卡普爾,是真正的理想主義者,他們沒(méi)有商業(yè)收入,自己掏錢(qián),做這一件事做了25年之久,通過(guò)一個(gè)又一個(gè)的訴訟案和對(duì)隱私相關(guān)案件的法律援助,他們成功推動(dòng)了社會(huì)進(jìn)步。這才是互聯(lián)網(wǎng)時(shí)代真正的隱私的捍衛(wèi)者。
有朋友說(shuō),寫(xiě)寫(xiě)文章,讓大家捐點(diǎn)錢(qián),怎么也不會(huì)有害,不應(yīng)該被批評(píng)。我不這么認(rèn)為。媒體傳播是可以影響人群選擇的。這在開(kāi)源領(lǐng)域有先例,比如,BSD是最正宗的UNIX繼承者,但曾經(jīng)的一場(chǎng)訴訟,讓BSD應(yīng)用廣泛程度至今不及Linux,媒體在這個(gè)過(guò)程中起了相當(dāng)重要的作用。直到今天,談起開(kāi)源軟件,媒體都更關(guān)注Linux,質(zhì)量更可靠的BSD缺少關(guān)注,從而影響了人們的選擇。界面文章中說(shuō)“如果一個(gè)開(kāi)源項(xiàng)目在商業(yè)世界獲得了成功,那決不會(huì)是出于僥幸,決不會(huì)是因?yàn)槠渌?jìng)爭(zhēng)者恰好被規(guī)章制度所累、被知識(shí)產(chǎn)權(quán)法約束“,BSD的歷史正好是一個(gè)反例。(“決不會(huì)“ 此處錯(cuò)字為界面原文引用)
所以,界面這篇文章的影響是很負(fù)面的。我在前面指出了不少他們?cè)谡w認(rèn)知上的錯(cuò)誤,其他的小錯(cuò)和不合理之處更是多的說(shuō)不完。比如,界面的文章說(shuō)"有了錘子科技的那筆捐款"OpenSSL的開(kāi)發(fā)者在德國(guó)Linux會(huì)議期間才終于有機(jī)會(huì)見(jiàn)了一次面。文章中有一張OpenSSL開(kāi)發(fā)者的合影和人名,就算這些人你之前完全不知道,現(xiàn)在立刻Google一下就知道,這些人里面有Debian開(kāi)發(fā)者,也有Google全職員工,這些人都不是OpenSSL付薪的,就憑這張照片,說(shuō)大企業(yè)一分錢(qián)沒(méi)出過(guò)也實(shí)在說(shuō)不過(guò)去。再說(shuō)OpenSSL開(kāi)發(fā)者大部分在英國(guó)和歐洲,從倫敦飛德國(guó)法蘭克福,往返機(jī)票也就300美元,硬要說(shuō)這些有工作,有正常收入的工程師連300美金機(jī)票都要等這筆捐款,未免太過(guò)夸張。
我想問(wèn)問(wèn)界面編輯部,你們認(rèn)為這篇文章到底是不是軟文。如果作者是在寫(xiě)付費(fèi)軟文,那么是職業(yè)道德問(wèn)題,如果沒(méi)收費(fèi),而是作者出于對(duì)羅永浩的崇拜寫(xiě)了一篇軟文,那么是公器私用,也是職業(yè)道德問(wèn)題,如果作者沒(méi)收費(fèi)又不是公器私用,仍然寫(xiě)出了一篇如此軟,錯(cuò)誤如此多的文章,那不僅僅是職業(yè)道德問(wèn)題,還是能力問(wèn)題。界面網(wǎng)絡(luò)的編審流程看起來(lái)也不那么靠譜,讓這么一篇文章發(fā)表出來(lái),還四處推廣,恐怕編審團(tuán)隊(duì)沒(méi)做什么背景調(diào)查,甚至都沒(méi)去搜索點(diǎn)相關(guān)文章讀讀。另外,整篇文章連一個(gè)觀點(diǎn)相反的平衡意見(jiàn)都沒(méi)有,完全是單方面的觀點(diǎn)闡述,這也違背了平衡報(bào)道準(zhǔn)則。一篇好的報(bào)道,應(yīng)該兼顧各方意見(jiàn),給讀者展示各種觀點(diǎn),提供多方面信息,界面沒(méi)能做到這一點(diǎn)。
互聯(lián)網(wǎng)的安全,不取決于一個(gè)特定的軟件,即使這個(gè)軟件是用來(lái)加密的。發(fā)現(xiàn)“心臟出血“漏洞的Google員工Mehta說(shuō)過(guò),libjpeg如果出問(wèn)題,可能會(huì)有極大影響。libjpeg用來(lái)生成和顯示大部分網(wǎng)站和軟件的圖片,被普通人用到的范圍比OpenSSL更廣,威脅也會(huì)更嚴(yán)重。當(dāng)人們被媒體把關(guān)注轉(zhuǎn)向OpenSSL上時(shí),大量更重要的問(wèn)題就會(huì)缺少關(guān)注。希望能有更多人關(guān)注更多的基礎(chǔ)項(xiàng)目,而不是和汶川地震一樣,盯著看各大企業(yè)誰(shuí)給OpenSSL捐款更多。一年了,炒作也應(yīng)該結(jié)束了。
界面的這篇文章對(duì)華為、諾基亞,Google這樣出錢(qián)出力,沒(méi)自我炒作的廠商不公平,對(duì)于其他開(kāi)源組織也不公平。界面是一家有正規(guī)編審流程的機(jī)構(gòu),嚴(yán)謹(jǐn)程度還不如我這種完全靠個(gè)人愛(ài)好寫(xiě)作的非專業(yè)人員,雖然不嚴(yán)謹(jǐn),但他們的煽情技巧確實(shí)是出色而專業(yè)的,這篇文章被很多人稱為精彩,這令人失望,也非常遺憾。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。