史蒂夫·馬奎斯隱居在華盛頓郊外的一棟小木屋里,沒有電視、沒有手機信號。服務(wù)商每年都保證信號塔就要立到他家門前了,可從來沒兌現(xiàn)過。除此之外,小木屋周圍綠樹環(huán)抱、鳥語花香,很適合做超級英雄不用拯救世界的周末去處。
“我老了。老到還記得穿孔卡片和真空管電腦的時代。那會兒沒有軟件專利權(quán)這回事,IBM之類的電腦商會把軟件隨主機附贈。從那時起,我就對開源著了迷。”
史蒂夫·馬奎斯已經(jīng)從野雞大學(xué)畢業(yè)許多年,當(dāng)過美國國防部咨詢顧問也注冊了軍火商執(zhí)照,終于把購房貸款還清,連女兒都已經(jīng)到了大學(xué)畢業(yè)的年紀(jì)。
他話多卻有點耳背,平時愛好喝酒打獵,余下的時間都用來守護(hù)那個有史以來應(yīng)用最廣泛的開源密碼庫項目——OpenSSL。如果OpenSSL代碼存在漏洞,全球三分之二的網(wǎng)站服務(wù)器將會受到影響。黑客甚至可能直接對個人電腦發(fā)起攻擊,上億互聯(lián)網(wǎng)用戶從私密博文到銀行卡密碼都將不保。
自創(chuàng)立之初,OpenSSL就開放源代碼接受所有改進(jìn)和質(zhì)疑。和維基百科類似,這個開源項目不屬于任何商業(yè)公司,每一行代碼都依靠世界各地程序員們在閑暇周末的自愿貢獻(xiàn)。為了維護(hù)服務(wù)器、購置新設(shè)備、雇傭外包驗證測試,OpenSSL接受公眾捐款,也會接一些與項目完全無關(guān)的編程工作換取報酬。
十五年來,OpenSSL每年得到的捐款收入始終徘徊在可憐巴巴的兩千美金。說出去大概沒人會信,但這個保障了半個互聯(lián)網(wǎng)安全的密碼庫項目實際上只雇得起兩個全職員工,兩人都叫史蒂夫,跟美國隊長重名。
第一個史蒂夫姓漢森,是英國人、圖論數(shù)學(xué)博士、電影里那種連講電話都含羞的編程天才。他辭掉原先的工作,全職投入OpenSSL的建設(shè),每年收入驟減到兩萬美元。要知道,在硅谷,一個剛畢業(yè)的年輕律師一個月就能輕松入賬一萬。第二個史蒂夫就是前國防部顧問馬奎斯。他負(fù)責(zé)管理OpenSSL基金會,記賬、填表、接受采訪,擔(dān)任高能程序員們跟現(xiàn)實世界的唯一紐帶。
去年夏天,森林綠意蔥蘢,史蒂夫·馬奎斯坐在他沒有手機信號的小木屋中,突然收到一封郵件。發(fā)件人來自中國,叫“Han Xu”,搞不清哪個是名哪個是姓。他代表一家叫Smartisan的年輕公司詢問OpenSSL項目是否需要一百萬人民幣的捐款。
“要要要!”是史蒂夫·馬奎斯當(dāng)時的第一反應(yīng)。他和他的小木屋都太老了,老得沒用過智能手機,更不知道錘子科技。不過,1后面接了六個0,史蒂夫搜索起匯率,相當(dāng)于十六萬多美元。這將是OpenSSL創(chuàng)立以來得到的最大單筆捐助,超過歷年所有企業(yè)與個人捐助額的總和——如果這個中國人不是騙子。
[望京]
名叫“Han Xu”的發(fā)件人,為錘子科技工作。他們的總部位于北京市區(qū)東北部的望京,一共五百多名員工,官網(wǎng)上的宣言是“用完美主義的工匠精神,打造用戶體驗一流的數(shù)碼產(chǎn)品,改善人們的生活質(zhì)量”。
錘子出品的第一代手機Smartisan T1今年一月剛獲得了極客公園(Geek Park)頒出的年度創(chuàng)新大獎和最佳用戶體驗獎??蓛H僅在兩年半之前,大家還覺得錘子科技不過是羅永浩腦袋里搭錯的一根筋。
這個高中輟學(xué)生、新東方段子手,從來都不是以程序技術(shù)而聞名的。要說起他的特長,英語一定算一項,而另外一項大概就是“說相聲”。在和朋友們創(chuàng)辦英語培訓(xùn)學(xué)校的同時,羅永浩從2009年起開始以《我的奮斗》為題在全國高校進(jìn)行巡回演講,并推出同名自傳。后來,他在四年里舉辦了四輪《一個理想主義者的創(chuàng)業(yè)故事》演講,場場爆滿。“老羅語錄”也被貼在新中關(guān)購物中心地下的廣告燈箱,去往地鐵的扶梯邊一路都是,句句不同。等語錄都看完了,也就到了不見天日的地底。
有人說他賣情懷、拿演講稿出書騙錢,羅永浩索性把版稅和演講收入全部捐出,并公布捐贈細(xì)節(jié),于是又有人說他追求虛名。在英語培訓(xùn)學(xué)校時期,他捐助的對象是西部陽光農(nóng)村發(fā)展基金會,還組織過英語老師去支教。創(chuàng)辦錘子科技之后,羅永浩決定,仍然把手機發(fā)布會門票收入捐給公益機構(gòu),但最好是正在推動科技發(fā)展的公益機構(gòu)。錘子的工程師和產(chǎn)品經(jīng)理同時提到了 OpenSSL。
“說相聲出身”的羅永浩本來從沒聽說過這個名字。他自己上網(wǎng)去查資料,發(fā)現(xiàn)這個開源項目與無數(shù)互聯(lián)網(wǎng)用戶的安全問題息息相關(guān),不少科技巨頭都在免費使用著他們的勞動成果。“我們花了一些時間來討論 OpenSSL 是否是最合適的捐助對象。”羅永浩說,“結(jié)論是,無論從對人們?nèi)粘I詈涂萍冀绲呢暙I(xiàn),還是出于一個互聯(lián)網(wǎng)使用者的道義,或者是從事件的傳播性以及對科技公司品牌形象的提升效果上考慮,他們都是我們觀察范圍內(nèi)最應(yīng)該被捐助的。”
正是2014年5月,史蒂夫·馬奎斯的小木屋本來歲月靜好,OpenSSL卻遭遇“心臟出血”(heartbleed)。隊伍中的一名德國程序員在新年假期加班,不小心寫下一串包含漏洞的代碼,直到兩年后才被谷歌工程師檢查出來。“心臟出血”漏洞使全球超過半數(shù)使用https協(xié)議的網(wǎng)站安全受到威脅,黑客甚至可能直接對個人電腦發(fā)起攻擊,獲得隱私信息。
由于沒有firefox和linux一樣的顯眼本質(zhì), 此前15年來一直運轉(zhuǎn)過于良好OpenSSL的代碼就像托住冰山的海面以下部分,從大企業(yè)到初創(chuàng)公司都用得心安理得。沒人特意向這個開源項目捐款,也沒人操心他們究竟有多少人手、能不能維持生計,反正半個互聯(lián)網(wǎng)這么多年來都這么用著。
“心臟出血”爆發(fā)后,不少人爭相跟OpenSSL劃清界限?;鶎映绦騿T批評他們的代碼“令人作嘔”,大公司則比賽著將牽連自身的安全漏洞盡快修復(fù)。而開源宣言《大教堂與集市》(The Cathedral and the Bazaar)的作者更是由此認(rèn)定開源生態(tài)存在亟待解決的本質(zhì)漏洞。
史蒂夫·馬奎斯能理解這些批評:互聯(lián)網(wǎng)上那么多人,總會有某人因為某事而感到不滿??伤芟雽λ麄冋f:“抱歉,我們搞砸了。要不,退你們錢好了。”他接著想了想,“啊哦,你們壓根沒付過錢呀。”
就連不少鼎鼎大名、多年使用OpenSSL代碼的公司也從沒投入一分錢來支持這個開源項目。在偶爾提出要捐款的公司中,有些會臨時反悔、人間蒸發(fā),有些要反復(fù)商談“公司商標(biāo)掛在OpenSSL官網(wǎng)上寬和高至少達(dá)到多少像素”,有些則要求史蒂夫和他的程序員朋友們“順便幫個小忙”。
史蒂夫·馬奎斯邊擦獵槍邊憤怒地回復(fù):“如果你想要我們?yōu)槟愕墓?lsquo;順便’做商業(yè)編程,那就不叫捐助了。那叫雇傭。”
最終,捐款總是來自全球各地、積少成多,連一美分的都有。史蒂夫·馬奎斯很驚訝,一些他在廣播中聽說的最不尊重人權(quán)、最限制自由和最不發(fā)達(dá)的國家,反而有不少人認(rèn)可開源項目,還設(shè)法向基金會的賬號捐了款。可支付平臺總是會抽掉一部分,一美分的捐款就都被抹掉了,史蒂夫忿忿不平。
太平洋這頭,羅永浩也愛忿忿不平。多年以來人們往他身上貼的標(biāo)簽,除了“胖子”,就是“理想主義者”??墒沁@回,他終于發(fā)現(xiàn)比他還要理想主義的OpenSSL。“我聽說該機構(gòu)最初的幾名工程師放棄了高薪的工作,而投身于這樣一項公益事業(yè),來維護(hù)互聯(lián)網(wǎng)的安全。”羅永浩說,“這符合中國人所說的‘俠義精神’,這些人的內(nèi)心一定有理想主義的支撐。這是我所欣賞的。”
于是,離錘子科技發(fā)出第一封郵件還不到十天,史蒂夫·馬奎斯就收到了百萬元捐款——OpenSSL基金會有史以來最大的單筆收入。
這些中國人對他一無所知。他們不知道他隱居在林中木屋、有軍火商執(zhí)照、耳背、話嘮,也自始至終沒有問過他這筆錢會怎么花、錘子的標(biāo)志能不能掛上官網(wǎng)顯眼處。但史蒂夫·馬奎斯已經(jīng)習(xí)慣信任陌生人。就連全世界他最好的戰(zhàn)友,他也從來不知道他們長什么樣子。
[大西洋海域]
史蒂夫·馬奎斯和他的戰(zhàn)友們并不是第一撥踏上密碼學(xué)戰(zhàn)場的人。
第一次世界大戰(zhàn)告終后,《凡爾賽條約》規(guī)定戰(zhàn)敗的德國不能擁有潛艇,但德國海軍依然秘密研制出了適用于遠(yuǎn)洋海戰(zhàn)的大型潛艇,以字母U后綴數(shù)字命名。每艘U型潛艇上都搭載著恩尼格瑪密碼機,用來對重要作戰(zhàn)情報進(jìn)行加密保護(hù)。在戰(zhàn)爭雙方的加密與破譯之間,一場場偷襲、登陸和轟炸被策劃或者揭露。有人死傷,有人歡慶。
那時的德國男孩會覺得潛艇兵是一個光榮的位子,只有身體條件最好、心理素質(zhì)最過硬的人才能入選。在U型潛艇上工作,不光每12周就有假期,還能享受封閉環(huán)境服役補助和潛水補助,薪水幾乎是陸軍的兩倍。唯一的痛苦是潛艇內(nèi)空間有限、溫度奇高。緊貼艙壁的鋪位只能容納士兵側(cè)身躺下,許多崗位還是兩人輪流用一個“熱鋪”。每到換崗時間,鋪上的士兵就得不情不愿地去接班,而剛回來的戰(zhàn)友則在那張五十?dāng)z氏度汗?jié)竦匿佄簧侠^續(xù)睡去。
U-110潛艇上的德國士兵同樣沒有機會了解戰(zhàn)友的樣貌身世和脾氣喜好。他們也同樣深信自己是為了責(zé)任與榮耀才投入戰(zhàn)事。1941年,U-110潛艇被英軍捕獲。1945年,U-505潛艇被美軍捕獲。潛艇上的恩尼格瑪密碼機和密碼本幫助盟軍提前兩年取得在西歐的全面勝利。
二戰(zhàn)后,美國政府頒布聯(lián)邦資料處理標(biāo)準(zhǔn)(Federal Information Processing Standards),其中140-2號標(biāo)準(zhǔn)收緊了對加密法的控制。所有賣給美國政府的軟件必須經(jīng)過第三方機構(gòu)獨立驗證其保密性能,并提交檢測報告。無數(shù)公司立刻抓住機會提供評估服務(wù),整個新的行業(yè)應(yīng)運而生。
國防部咨詢顧問史蒂夫·馬奎斯就在這個行業(yè)中耗盡了前半生。他煩透了官僚主義作風(fēng),看膩了一個政府部門跟另一個斗智斗勇,像左手掐右手。為了簡化行政程序,他四處求援。一個政府部門6次決定資助,而另外一個部門駁回了6次。
“政府像怪獸那樣大,那么多文件,我一輩子都那么過去了。”最后,史蒂夫·馬奎斯像所有超級英雄一樣等到了戲劇化的人生轉(zhuǎn)折。他聽說OpenSSL項目缺人手。他深信,“我們的世界必須擁有一個可靠的加密系統(tǒng),它不能落入任何政府與商業(yè)公司的控制中”。
加密法是互聯(lián)網(wǎng)時代保障隱私信息的關(guān)鍵技術(shù)。歷史告誡現(xiàn)代人,如果加密和破譯規(guī)則被別有用心的人掌握,后果將是多么可怕。于是,史蒂夫·馬奎斯,同史蒂夫·漢森還有其他幾十個沒有超級英雄名字的程序員們決定投身OpenSSL的建設(shè)。他們抱著同樣的信念,要造出有史以來最棒的加密系統(tǒng),以開源的方式分享給全世界,以保障后代的隱私和安全。
為了分出時間給這項工程,他們多多少少推掉商業(yè)工作、犧牲假日休息,與屏幕中看不見的戰(zhàn)友討論、爭執(zhí)、推翻再重來。一開始還純粹享受著腦力鍛煉的程序員們,慢慢就被責(zé)任感淹沒了。在開源中,他們能夠享有對代碼作品的最大控制權(quán)和最高透明度,也能堅持做自己認(rèn)為“對”的事。他們覺得保護(hù)這個世界就是對的事。
“總有唱反調(diào)的人把這些開源項目說成是‘反資本主義’的。”但史蒂夫·馬奎斯覺得恰恰相反:“開源項目其實來源于最純粹的競爭。如果一個開源項目在商業(yè)世界獲得了成功,那決不會是出于僥幸,決不會是因為其它競爭者恰好被規(guī)章制度所累、被知識產(chǎn)權(quán)法約束、被人傻錢多的贊助商拖垮。如果一個開源項目勝出了,背后只會有一個原因——它真的比其他競爭者都要好。”
史蒂夫·馬奎斯很清楚自己的編程技術(shù)比不上世界級水平的戰(zhàn)友們(其中一半擁有博士文憑),于是主動負(fù)責(zé)案頭工作。他豐富的填表經(jīng)驗解放了戰(zhàn)友們的寶貴時間,他的話嘮正好足夠?qū)Ω秮碓L的記者。他總是忍不住好心提醒記者,某些郵箱后綴逼格太低,最好換掉。
他從沒離開過隱居的森林木屋,只靠郵件和網(wǎng)絡(luò)電話跟全世界人通訊。他幫史蒂夫·漢森爭取到合理的工資待遇,接著操心團(tuán)隊里其他人能不能去得起超市。
史蒂夫·馬奎斯認(rèn)為地道的開源文化就該這樣,只憑智力成果定奪名聲,沒有人會因為長相、性別、家世而受到歧視或者特別關(guān)照。
他跟其中一個見過面,還有四個打過電話,對剩下的就一無所知了。他倒是熟悉他們編程的風(fēng)格、郵件的寫法,但即使有天恰好在大街上迎面碰見,他們也不會認(rèn)出彼此。
OpenSSL在杜塞爾多夫的聚會。從左至右依次為:Steve Marquess、 Kurt Roeckx、Geoff Thorpe、Richard Levitte、Lutz J?nicke、Tim Hudson、Matt Caswell、Bodo M?ller、Rich Salz、Andy Polyakov、Emilia K?sper。參會者還有四個人并未出現(xiàn)在照片中。
[杜塞爾多夫]
如果永遠(yuǎn)見不到真人,開源程序員們大概可以暢想,自己的戰(zhàn)友其實是個人工智能。幸好在2014年末的杜塞爾多夫,Linux基金會特意在年度歐洲大會的舉辦現(xiàn)場辟出一個房間給OpenSSL團(tuán)隊。有了錘子科技的那筆捐款,世界各地并肩作戰(zhàn)多年的戰(zhàn)友終于相聚。
第一天早上,史蒂夫·馬奎斯等在會議室里,竟有點緊張。直到一個接一個陌生人走進(jìn)房間,客氣地道過早安,他憑口音猜到他們的家鄉(xiāng),才突然發(fā)現(xiàn)都已經(jīng)認(rèn)識他們十多年了。英國人、瑞典人、澳大利亞人、愛沙尼亞人……十五位戰(zhàn)友們的名字跟臉慢慢對上號,胖瘦高矮全部不同,花花綠綠各色T恤,逛超市時都不會被當(dāng)做超級英雄。
每個人都一樣的興奮。“十五年了,終于見到隊友們。他們不再是藏在電郵地址后面的隱形人。他們都有自己的個性、愛好。”后來在郵件里,程序員理查德回憶道。另一名程序員杰夫也說,“過去我們中的大部分人只認(rèn)識另外的一、兩個人,這還是第一次有機會讓這么多人同時聚在一起。當(dāng)有張臉可以跟電郵地址對上號時,溝通都會變得更加輕松。”
他們喝光了五瓶蘇打水和兩瓶可樂,不眠不休地談?wù)揙penSSL的過去與將來。白天,偶爾有一兩個參會者突兀地敲開會議室的門,稱贊他們。但更多的人依然沒聽說過OpenSSL。等到晚上,會展中心要關(guān)門了,他們就挪到幾步遠(yuǎn)外的家庭餐館里,就著啤酒和烤肉繼續(xù)暢談,直到凌晨一點。連續(xù)三天,都是這樣。
這次聚會對OpenSSL意義非凡。綱領(lǐng)性文件在遲到十五年后終于出爐,團(tuán)隊主力還就發(fā)布策略和漏洞處理問題達(dá)成了一致。代碼標(biāo)準(zhǔn)化和證書申請目錄被明確了,官方路線圖文件也發(fā)布在了網(wǎng)站上。OpenSSL補好“心臟出血”,每個人都整裝待發(fā)。
大會閉幕那天,有人提議拍張合影吧。史蒂夫·馬奎斯小跑到門外叫住一個路人。對方友好地停步,幫忙按下一次快門。他當(dāng)然不會知道,取景框里這十四個男人和一個女人曾參與過保護(hù)人類隱私的偉大工程。
就像史蒂夫·馬奎斯不知道,錘子科技為什么會突然跑過來幫助OpenSSL。他多次坐在小木屋中惴惴不安,猜測這間中國公司是否能夠得到行俠仗義的回報。而他能做的,只是把那次聚會的合影發(fā)給錘子科技,表示感謝。沒過幾天,錘子科技竟又捐出一百萬元人民幣。這下OpenSSL可以再雇傭三名全職程序員了,所有代碼都會經(jīng)過反復(fù)的漏洞檢查。史蒂夫·馬奎斯說戰(zhàn)友們敲起代碼來總是興沖沖的,像古代工匠專心雕刻一枚盾牌,這兒敲一錘子、那兒敲一錘子,雖然累,但窮開心。
在二百萬人民幣之后,OpenSSL又收到不少來自中國的個人捐款,史蒂夫·馬奎斯依然費解于從天而降的好運。不過,他和許多開源參與者一樣,都有點理想主義。他相信,自己的林中木屋總有一天能收到手機信號。他還相信,在肉眼看不見的地方,總有一群隱形的戰(zhàn)友,志同道合,只等相認(rèn)。