开源是自由的,永远
開源軟件到底受不受美國政府管制?會(huì)不會(huì)應(yīng)美國政府的要求禁運(yùn)?最近這個(gè)話題成了熱點(diǎn)。
遺憾的是,到現(xiàn)在中文文章里我沒看到能把這個(gè)事情說清楚的文章,這讓我非常驚訝。中國科技和互聯(lián)網(wǎng)行業(yè)從開源軟件中受益極大,也有無數(shù)直接和間接參與者,但是這些基本事實(shí)還是糊涂的,比較遺憾。
不賣關(guān)子,我先說結(jié)論,再來講歷史和過程。這個(gè)事情的奧秘在“開源軟件”這四個(gè)字上,用一個(gè)不太精確的說法概括結(jié)論,“開源(源代碼)”是受美國憲法第一修正案保護(hù)的言論自由,而“軟件”是一種產(chǎn)品,受出口管制法律管制。
所以看起來開源軟件是一件事,其實(shí)它包含了兩個(gè)不同的部分。無論任何許可證,無論是 GPL 還是 Apache 或是 MIT,采用它們的代碼都不會(huì)受到美國管制法律影響。
但是分發(fā)尤其是分發(fā)編譯打包之后的成品,那個(gè)叫做軟件,軟件就脫離了第一修正案保護(hù)的范圍, 和大部分真實(shí)商品一樣,適用于所有管制法律。所以絲毫不用擔(dān)心有一天美國不允許別人使用源碼,不允許別人使用 Linux 內(nèi)核,這件事美國政府幾乎是不可能做到的。
大多數(shù)人認(rèn)為軟件和源碼是一回事,理解不了為什么它們適用法律完全不同?答案也很簡單,源碼被判定屬于言論自由,這是一群美國工程師、科學(xué)家、法學(xué)家冒著生命危險(xiǎn)和職業(yè)代價(jià),和美國政府以及幾大執(zhí)法部門抗?fàn)幎鵂幦』貋淼臋?quán)利。
他們這么做是為了對(duì)抗把加密軟件列入軍火管制范圍的法律,而為什么加密軟件被算作軍火管控?這要從歷史說起。
我們要追溯到 80 年前,二戰(zhàn)時(shí)期,那是計(jì)算機(jī)行業(yè)的祖師爺阿蘭圖靈活躍的時(shí)代,那個(gè)時(shí)候,今天我們所說的計(jì)算機(jī)還沒有誕生,“圖靈機(jī)”這個(gè)計(jì)算機(jī)的理論模型剛剛提出不久。
盡管計(jì)算機(jī)還沒有產(chǎn)生,但是機(jī)械驅(qū)動(dòng)的加密機(jī)已經(jīng)開始在軍隊(duì)中普及,納粹德國使用的“Enigma”密碼機(jī)就是其中最可靠的一種。
為了破譯德軍密碼,盟國各國都有相當(dāng)大的投入,法國人貢獻(xiàn)了情報(bào),波蘭數(shù)學(xué)家和密碼學(xué)家貢獻(xiàn)了破解理論…英國軍情部門統(tǒng)籌了全局,圖靈帶領(lǐng)的小組在這里制造出了專門用來解密的“密碼炸彈”破譯機(jī),最終使得盟軍可以完全掌握德軍情報(bào),這和盟軍取得二戰(zhàn)勝利有密不可分的關(guān)系。
不要認(rèn)為這只是歐洲的事,亞洲戰(zhàn)場(chǎng)上日本同樣使用了德軍的密碼機(jī)。關(guān)于這段歷史,70 年代英國檔案解密之后已經(jīng)有無數(shù)作品講述它,這里不說細(xì)節(jié)了。
圖:圖靈的破譯機(jī)密碼炸彈照片
加密和解密技術(shù)伴隨戰(zhàn)爭而生,產(chǎn)生于軍方,它在很長歷史時(shí)期內(nèi)都被認(rèn)為是軍事產(chǎn)品,和武器一樣被算作軍火管制范圍自然不意外。
在這個(gè)時(shí)期,這些系統(tǒng)都是硬件,普通人也接觸不到。從 80 年代開始,PC 的興起讓軟件加密和解密也開始發(fā)展,同時(shí)商業(yè)尤其是金融行業(yè)的發(fā)展,使得軍事用途之外的密碼需求急劇增加,于是美國政府開始放寬密碼產(chǎn)品的管制范圍,商業(yè)應(yīng)用得以使用這些技術(shù),但是超過 40 位密鑰的加密產(chǎn)品,仍然出于被禁止出口的范圍,要出口需要事先向美國政府申請(qǐng)?jiān)S可,美國政府仍然把加密軟件當(dāng)作軍火管理。
一轉(zhuǎn)眼,時(shí)間到了 1991 年。程序員 Phil Zimmermann 寫了第一個(gè)個(gè)人可以用的高強(qiáng)度加密軟件,叫做 PGP,PGP 使用密鑰長度大于 128 位,遠(yuǎn)遠(yuǎn)超過了美國政府的管制規(guī)定。之后他把源碼放到互聯(lián)網(wǎng)上讓人們隨便下載。
既然放在了網(wǎng)上,自然就不是只有美國公民可以下載到了,當(dāng)美國之外也有人下載的時(shí)候,這件事就驚動(dòng)了美國政府。
之后美國政府開始對(duì)他進(jìn)行犯罪調(diào)查,這個(gè)調(diào)查使得 Zimmermann 在當(dāng)時(shí)的技術(shù)和法律圈子瞬間出名,人們開始為他提供各種支持。
之后 Zimmermann 決定通過美國憲法第一修正案對(duì)于出版自由的保護(hù)來規(guī)避這個(gè)問題,他通過 MIT 出版社出版了一本書,書的內(nèi)容就是 PGP 的全部源碼,買到書的人只需掃描和 OCR 全書,就可以得到 PGP 的代碼,之后自己編譯,就是可用的加密軟件。
技術(shù)和法律在此時(shí)發(fā)生了第一次碰撞,技術(shù)以極端靈活的特性順利規(guī)避了法律制約,算勉強(qiáng)獲勝。之后,一系列算法通過印刷品的方式發(fā)行,后來人們?yōu)榱丝棺h這種管制方法,甚至用幾行代碼實(shí)現(xiàn)了 RSA 加密算法,然后把這些代碼印在T恤上,或者干脆當(dāng)作紋身把代碼紋在胳膊上招搖過市。
雖然這個(gè)問題暫時(shí)繞過去了,但是越來越多的人開始考慮這個(gè)新問題:既然源代碼印在書籍上,就算作言論自由,那么源代碼本身能不能被算作言論呢,如果算的話,在網(wǎng)上發(fā)表源碼,是否應(yīng)該被第一修正案保護(hù)?
圖片:軍火T恤,上面印著代碼,寫著“這件T恤被分類為軍火,不能出口也不能給外國人看到”
圖片:“軍火”代碼紋身
時(shí)間繼續(xù)推移,軟件、互聯(lián)網(wǎng)和計(jì)算機(jī)行業(yè)繼續(xù)發(fā)展,越來越多的人遇到了類似的問題。開始有更多的人挑戰(zhàn)出口管制法律。
1995 和 1996 年,連續(xù)出現(xiàn)兩個(gè)案件,Junger v. US Department of State 和 Bernstein v. US Department of Justice,前者是大學(xué)教授 Junger 和美國國務(wù)院的訴訟,后者是加州伯克利大學(xué)的學(xué)生 Bernstein 和美國司法部之間的訴訟。
這兩個(gè)案例原因不同,訴訟對(duì)象也不同。教授 Junger 是要在課上為學(xué)生講述技術(shù)相關(guān)的法律,其中有關(guān)于軟件加密的技術(shù),但聽課的學(xué)生中有外國留學(xué)生,因此也落入了出口管制限制的范圍,并且面臨了百萬美金的巨額罰款和最高 10 年的刑期。
學(xué)生 Bernstein 是為了公開發(fā)表自己發(fā)明的加密算法論文,并且希望可以公開的,不受限制的參加學(xué)術(shù)會(huì)議討論他的算法。兩個(gè)問題指向了同一個(gè)答案,軟件源代碼應(yīng)該是一種言論自由,并且應(yīng)該受憲法第一修正案保護(hù)。
在電子前線基金會(huì)的幫助下,在大批律師和法學(xué)家、科學(xué)家、工程師的共同努力下,一直到 2000 年之后,最終的勝利終于到來,兩個(gè)案例分別在第六巡回上訴法庭和第九巡回上訴法庭得到了同樣的判決:軟件源代碼是言論自由,受憲法第一修正案的保護(hù)。
特別值得注意的是,第九巡回法院和第六巡回法院分別位于美國西部和南部,兩個(gè)相同的判決說明了,無論是自由派還是保守派,都持同樣的結(jié)論。從此之后,美國政府再也不能試圖限制軟件源碼流通了。
知道這些歷史之后,很容易就可以得到確定的結(jié)論:美國政府沒有能力對(duì)軟件源代碼實(shí)施禁運(yùn)。無論是美國公民寫的代碼,還是其他國家人寫的放在美國服務(wù)器上的代碼,都一樣,源代碼永遠(yuǎn)是自由的。
那么為什么 Apache ASF 托管項(xiàng)目許可中會(huì)包含“可能受到美國出口法規(guī)管制”的字樣,而 GPL 許可證根本沒有這個(gè)內(nèi)容呢?因?yàn)?GPL 是一種只管源代碼的許可證,并且它有傳染性,包含 GPL 的項(xiàng)目本身也必須開源,所有通過 GPL 許可證發(fā)布的產(chǎn)品必須提供代碼,它根本不涉及分發(fā)和不開源的部分,也就不會(huì)被列入管制范圍。
但 Apache/MIT/BSD 之類的許可證不是強(qiáng)制開源,人們可以使用它發(fā)布不開源的代碼,也可以在發(fā)行版本中混入不開源的二進(jìn)制軟件和庫,這些不是代碼的東西 ,就會(huì)落入管制范圍。因此他們必須加上這個(gè)聲明“可能受到美國出口法規(guī)管制”,這里說的是“存在這種可能性”,而不是說“一定如此“。
當(dāng)然,這里有另外一個(gè)細(xì)節(jié)問題是,GPL 只管源代碼,那么如果一個(gè)組織開源了自己的代碼,同時(shí)又提供二進(jìn)制發(fā)行版,這時(shí)候會(huì)不會(huì)被管制?答案是會(huì)的。
所以要做軟件發(fā)行(而不是純粹源代碼發(fā)行),就需要在 GPL 基礎(chǔ)上擴(kuò)充出來一份新的許可證,這份許可證里面同樣會(huì)寫上“可能受到美國出口法規(guī)管制“字樣。針對(duì)這個(gè)問題 RMS 曾經(jīng)親自回答過:fedora 許可證包含了“可能受美國出口法規(guī)管制“,這和 GPL 沖突嗎?RMS 的回答大意是:GPL 只管源碼是不是開源,其他都不管。
你如果要打包發(fā)行 GPL 的軟件,在履行了開源義務(wù)之后,GPL 就不會(huì)找你麻煩了,之后你可以隨便設(shè)定各種條件在你的發(fā)行版上,哪怕是“禁止藍(lán)色頭發(fā)的人使用“都可以,那是你自己的決定。這就是對(duì)源碼和軟件之間法律關(guān)系的最好解釋。
強(qiáng)制開源保證了自由,所有人都有機(jī)會(huì)使用它,不會(huì)受到任何限制。一個(gè)最極端的例子是這樣,做為美國禁運(yùn)的重點(diǎn)國家朝鮮也有自己的 Linux 系統(tǒng),他們一樣是自己拿源代碼編譯發(fā)行的版本。(當(dāng)然,朝鮮并沒有開源他們的紅星 Linux 代碼,是違反 GPL 授權(quán)的)
開源運(yùn)動(dòng)可以算是人類歷史上最大的奇跡之一,來自世界各地的人,在不同的國家不同的制度下,用不同的語言,共同創(chuàng)造了一堆屬于全人類,所有人都可以自由使用的工具。
他們之間可能互相不能聽懂對(duì)方說話,可能政治觀點(diǎn)完全不同,甚至可能是完全敵對(duì)的,但是仍然共同為這個(gè)工程貢獻(xiàn)了力量。我想不出來人類還有什么其他的事情達(dá)到過這樣的高度和廣闊程度。
大家關(guān)心的另外一個(gè)問題是 git 和 Github 會(huì)不會(huì)算在禁運(yùn)范圍內(nèi)。首先要區(qū)分 git 和 github 是兩個(gè)完全不同的東西,git 是一套開源的軟件代碼版本控制系統(tǒng),如上所述,它是完全自由的。
Github 是一個(gè)商業(yè)公司,提供 git 托管服務(wù),所以 Github 確實(shí)有可能因?yàn)榉梢蟛惶峁┠承┑貐^(qū)的服務(wù),比如朝鮮 IP 是不能訪問 Github 的。但是這對(duì)于中國用戶似乎完全不是問題,畢竟世界流量最大的 100 個(gè)網(wǎng)站里面大部分中國用戶都不能訪問。
Git 本身就是一套分布式代碼管理系統(tǒng),你只要使用 git,那么你自己的計(jì)算機(jī)上始終會(huì)有一份和服務(wù)器同步的代碼版本,即使服務(wù)器拒絕你訪問了,你也不會(huì)丟失源代碼,自然也就不存在“抓緊備份一份代碼”這種問題,代碼本身就存在你的計(jì)算機(jī)上。
最后一個(gè)問題是,為什么這么多開源軟件基金會(huì)都在美國?這個(gè)問題非常有趣,畢竟,開源軟件最重要的作者們,其中至少有一半不是美國人,你看,Linux 作者 Linus Torvalds 是芬蘭人,C++之父 Bjarne Stroustrup 是丹麥人,Python 作者 Guido van Rossum 是荷蘭人,Java 作者 James Gosling 是加拿大人…更別說每個(gè)開源基金會(huì)都有大量的董事們不是美國人,也并不生活在美國。為什么他們不把基金會(huì)放在自己的國家而是放在美國?
除了美國有更豐富的資源這個(gè)理由之外,還有一個(gè)重要的理由,就是美國的制度可以保護(hù)他們的工作永遠(yuǎn)是開放的。這
件事頗有一點(diǎn)中國太極的意味,美國在開源領(lǐng)域成為主要陣地,不是因?yàn)樗鼜?qiáng)大,而是因?yàn)樗粔驈?qiáng)大,美國政府不是說一不二,想怎么做就怎么做的政府,它的錯(cuò)誤可以被挑戰(zhàn),被糾正,可以和它法庭見…美國公司、美國人民、美國法律和美國政府,這些概念看似一樣,實(shí)際上是不同的。
他們有共同利益,但是也有沖突,同時(shí)又互相制約。有 ACLU,EFF(電子前線基金會(huì))這樣的組織,幾十年如一日挑戰(zhàn)不合理的法律制度,和政府打官司,并且無數(shù)次獲勝。這些復(fù)雜的關(guān)系構(gòu)成了讓開源軟件發(fā)展的重要社會(huì)基礎(chǔ),人類社會(huì)沒有什么 100% 確定的事情,但是這種互相制約的平衡最大概率上保證了這些項(xiàng)目的自由,這是世界各國開源項(xiàng)目領(lǐng)導(dǎo)者和參與者經(jīng)過漫長時(shí)間之后的共識(shí)。
如果不相信這個(gè)看法,想想前面提到的幾個(gè)案例,一個(gè)美國公民,希望讓全世界人民都可以使用自己的算法和代碼,而完全不管敵對(duì)國家會(huì)不會(huì)獲得他的成果。
一個(gè)美國教授,希望給外國留學(xué)生講解加密技術(shù),冒著自己坐 10 年牢的風(fēng)險(xiǎn),拿起法律武器挑戰(zhàn)美國政府,并取得了最后的勝利。這件事要發(fā)生在其他國家,會(huì)是怎么樣的結(jié)局?被罵做賣國賊算是起步待遇吧?更別說還有很大可能會(huì)承受更糟糕的結(jié)果。但是在美國,他們不僅能獲得勝利,美國人民還視他們?yōu)橛⑿邸?/p>
我們還可以假設(shè)一個(gè)場(chǎng)景。如果真的發(fā)生美國政府試圖禁止中國使用 Linux 內(nèi)核這種事情,你猜誰會(huì)先站出來罵美國政府?顯然是自由軟件基金會(huì)的創(chuàng)始人 RMS 和 Linux 的作者 Linus。他們不僅會(huì)罵,還會(huì)在法律上挑戰(zhàn)美國政府,并且會(huì)把所有代碼托管到其他國家。
凡是以”有一天我們會(huì)用不了 Linux 內(nèi)核“為借口搞什么獨(dú)立系統(tǒng)的,我敬佩他們的勇氣。但是一方面他們擔(dān)心的事情不可能發(fā)生,另外一方面,做個(gè)操作系統(tǒng)在這個(gè)時(shí)代并不算難,難的是如何建立整個(gè)生態(tài)。軟件和互聯(lián)網(wǎng)生態(tài)是全球化的產(chǎn)物,整個(gè)生態(tài)的完成是全世界工程師和企業(yè)共同完成的,任何一個(gè)國家也難以獨(dú)立建設(shè)完成一套生態(tài),即使美國,它也不可能脫離世界獨(dú)立存在。
回頭看這個(gè)歷史,開源運(yùn)動(dòng)和加密運(yùn)動(dòng)互相扶助完成的這個(gè)過程。密碼學(xué)家始終扮演了重要的角色,被列入軍火管制的東西是加密軟件,這使得密碼學(xué)家和法律制度發(fā)生了沖突,如果沒有這種沖突,就沒辦法到法院挑戰(zhàn)美國政府,也就沒法拿到法院最終的判決。如果沒有判決,源代碼算不算一種言論自由就仍然是不確定的爭議,那么開源運(yùn)動(dòng)就很難產(chǎn)生這樣的影響力。
如果沒有開源運(yùn)動(dòng),沒有 Linux,沒有 GCC,沒有 Android,沒有瀏覽器…整個(gè)互聯(lián)網(wǎng)可能都不會(huì)存在,那么軟件和工具仍然會(huì)掌握在少數(shù)幾家企業(yè)手里,距離普通人遙不可及。
密碼學(xué)家們不僅改變了二戰(zhàn)的進(jìn)程,他們也一直通過各種方式影響著社會(huì),加密運(yùn)動(dòng)參與者極端注重隱私和自由,雖然他們的很多努力只是是出于維護(hù)自由的目的,但他們的創(chuàng)造物則影響深遠(yuǎn),雖然其中大部分并不為普通人所知,但每隔一些年,總會(huì)有一些成果產(chǎn)生了驚天動(dòng)地的效果,被人們所知。最近的一次大概要算這件事:
2009 年 1 月 8 日,有人在密碼學(xué)圈子里面發(fā)了這么一條消息:
"I made the proof-of-work difficulty ridiculously easy to start with, so for a little while in the beginning a typical PC will be able to generate coins in just a few hours."
發(fā)布這條消息的人使用的名字是 Satoshi Nakamoto,在中文里,這個(gè)名字被譯作“中本聰”。
參考備注:
-
RMS 關(guān)于 fedora 許可證的回復(fù) https://fedoraproject.org/wiki/FreeSoftwareAnalysis/FSF
-
RSA 軍火T恤和代碼 http://www.cypherspace.org/rsa/
-
里程碑案件之一 https://www.eff.org/cases/bernstein-v-us-dept-justice
-
里程碑案件之二 https://www.eff.org/ja/cases/junger-v-dept-state
-
標(biāo)題圖:Image used under Standard license from Shutterstock.com (這張圖是我們付費(fèi)購買的,符合我要求的轉(zhuǎn)載可直接使用它)
總結(jié)
- 上一篇: 格力电器公布股权转让投资者见面会机构名单
- 下一篇: 被判定为非法打压手机芯片市场竞争 高通: