English [en]   ??????? [ar]   Deutsch [de]   espa?ol [es]   fran?ais [fr]   hrvatski [hr]   italiano [it]   日本語 [ja]   ??? [ko]   lietuvi? [lt]   Nederlands [nl]   polski [pl]   português do Brasil [pt-br]   roman? [ro]   русский [ru]   Shqip [sq]   укра?нська [uk]   簡體中文 [zh-cn]  

這是針對英文原版頁面的中文翻譯。

服務器究竟為誰服務?

刀塔自走棋手游什么时候出 www.zvajc.icu Richard Stallman

(本文第一版發表于波士頓評論。)

在網絡上,專有軟件不是唯一讓你失去自由的途徑。服務代替軟件,或叫SaaSS,就是另一個讓你把計算交給別人的途徑。

基本的觀點是,你可以控制其他人編寫的程序(如果它是自由軟件),但是你永遠不能控制其他人執行的服務,所以原則上在程序能夠完成任務的時候,不要使用服務。

SaaSS意味著使用他人實現的服務來代替運行你自己的軟件。該術語是我們用的;其他文章和廣告不會使用它,并且他們不會告訴你一項服務是否為SaaSS。另一方面,他們可能會用含糊和分散注意力的“云”這一術語,它把SaaSS和其他一些實踐搞在一起,其中有的是濫用,有的還可以。通過本頁的解釋和舉例,你就能夠分辨一項服務究竟是不是SaaSS。

背景:專有軟件如何拿走你的自由

數字技術能夠給你自由;它也能拿走你的自由。第一個對我們自主控制計算的威脅來自專有軟件因為其所有者(諸如蘋果或微軟之類的公司)掌控軟件,所以用戶無法控制該軟件。其所有者經常利用這種不公平的權力植入惡意功能,比如間諜軟件、后門和數字權限管理(DRM)(請參考他們宣傳的“數字版權管理”)。

我們對此的解決方案是開發自由軟件并拒絕專有軟件。自由軟件意味著,你,作為一個用戶,擁有四項基本自由:(0) 按照自己的意愿運行該軟件,(1) 通過學習和修改源代碼而使軟件按照自己的意愿運行,(2) 分發原來軟件的拷貝,(3) 分發修改后軟件的拷貝(請參看自由軟件的定義。)

通過使用自由軟件,我們作為用戶,拿回了對我們計算的控制。專有軟件仍然存在,但是我們能夠把他們排除在我們的生活之外,我們已經做到了??墑?,現在有另一種方式誘使我們割讓對計算的控制:服務代替軟件(SaaSS)??叢謐雜傻姆萆?,我們也必須拒絕它。

服務代替軟件如何拿走我們的自由

服務代替軟件(SaaSS)意思是使用服務代替運行程序。具體地,它的意思是有人設置一個網絡服務器來從事某種計算工作—比如,修改照片、翻譯文稿等等。—然后邀請用戶使用該服務器做計算。使用服務器的用戶會把她的數據發送到服務器,而服務器使用該數據幫她做計算,然后將結果發回給她或者直接以她的名義行事。

計算是她自己的因為,按照假定,原則上,她可以在自己的電腦上完成計算(無論她目前是否可以使用該程序)。如果該假定不成立,那么這個情況不是SaaSS。

這些服務器奪取用戶自由甚至比專有軟件還無情。使用專有軟件,用戶通常得到可執行文件而不是源代碼。這使學習其代碼變得困難,所以判斷該程序真正的操作變得困難,更改它也變得困難。

使用SaaSS,用戶甚至都沒有從事其計算的可執行文件:它在別人的服務器上,用戶看不到也摸不著。所以用戶不可能弄清楚它做了什么,也不可能改變它。

更進一步,SaaSS自動就導致了和某些專有軟件的惡意功能相同的后果。

例如,有些專有軟件是“間諜軟件”:該程序向外發送用戶的計算活動數據。微軟的Windows就把用戶的活動發送給微軟。Windows媒體播放器匯報每個用戶觀看或收聽的內容。Amazon Kindle匯報用戶在看哪本書的哪一頁以及什么時間。憤怒的小鳥匯報用戶的歷史位置。

和專有軟件不同,SaaSS不需要秘密的代碼來獲得用戶數據。反過來,用戶必須把數據交給服務器才能獲得服務。這和間諜軟件的效果一樣:服務器操作者獲得了數據—不必花力氣,因為SaaSS就是這樣的。Amy Webb,從來也沒有要發表她女兒的照片,錯誤地使用了SaaSS(Instagram)來編輯女兒的照片。最后,照片還是從那里泄露了出去。

理論上,同態加密1可能發展到有一天未來的SaaSS服務無法理解用戶發來的某些數據。這樣的服務可能無法窺探用戶;這并不意味著他們不再窺探。

某些專有軟件帶有全局后門,它允許遠程安裝軟件。例如,Windows就有一個全局后門,微軟可以用它強制改變電腦上的任何軟件。幾乎所有移動電話也都有后門。一些專有軟件也有全局后門;例如,工作在GNU/Linux上的Steam客戶端允許其開發者遠程安裝更改后的版本。

使用SaaSS,服務器操作員能夠改變服務器使用的軟件。他應該能夠這樣做,因為這是他的電腦;但是其結果和帶有全局后門的專有軟件是一樣的:有人有權不動聲色地更改用戶的計算。

所以,SaaSS和帶有間諜軟件及全局后門的專有軟件是一樣的。它給予服務器操作員凌駕于用戶之上的權力,而這正是我們必須反抗的權力。

SaaSS和SaaS

最初我們認為這個有問題的實踐是“SaaS”,意思是“軟件即服務”。這是一個常用的術語,它是指在服務器上設置軟件而不給用戶拷貝,而我們認為該術語準確地描述了此類實踐的問題所在。

后來我們認識到SaaS這一術語有時也用于通訊服務—而此問題并不適用于這些服務。另外,“軟件即服務”這一術語不能解釋為什么這種實踐是不好的。所以我們創造了“服務代替軟件”這一術語,它更清楚地定義了這個不好的實踐,并且說出為什么它是不好的。

區分SaaSS問題和專有軟件問題

SaaSS和專有軟件導致類似的有害結果,但是其機制各有不同。對專有軟件,該機制是你有軟件拷貝,并使用該軟件拷貝,但是修改該拷貝是困難/或者是非法的。對SaaSS,該機制是軟件進行你的計算,但是你并沒有該軟件的拷貝。

這兩個問題常常令人困擾,這并不僅僅是意外。網絡開發者使用含糊不清的術語“網絡應用”把服務器軟件和運行在本地電腦的瀏覽器里的程序搞在一起。有些網頁會在你的瀏覽器里安裝非平凡的、甚至是大型的JavaScript軟件,并且不告訴你。當這些JavaScript程序不是自由軟件時,它們就和其他非自由軟件一樣導致不公正。然而,在這里,我們關心的是使用服務本身。

許多自由軟件支持者認為SaaSS問題會由于開發服務器端的自由軟件而解決。對服務器操作者來說,服務器端的程序最好是自由軟件;如果它是專有軟件,那么其開發者/所有者就有凌駕于服務器之上的權力。這對服務器操作者是不公正的,而且對服務器的用戶也毫無幫助。但是如果服務器端的程序是自由軟件,它也沒有?;?em>服務器用戶不受SaaSS的影響。該程序使服務器操作者自由,但是沒有給服務器用戶自由。

把服務器軟件的源代碼發布可以使社區受益:這使有相應技術的用戶可以搭建類似的服務器,也可能修改軟件。我們建議使用GNU Affero GPL作為服務器端軟件的許可證。

但是這些服務器都沒有讓你能夠控制自己的計算,除非它是你的服務器(你控制它的軟件,盡管服務器的硬件可能不是你的)。也許某些工作你可以放心地使用朋友的服務器,就像你讓朋友在你的機器上維護軟件一樣。除此之外的服務器對你都應該是SaaSS。SaaSS總是使你受制于服務器操作者的權力,而唯一的解藥是,不要使用SaaSS!不要使用他人的服務器來對你提交的數據進行計算。

這個問題展示了“開放”和“自由”的深度不同。源代碼是開源意味著,差不多總是,自由軟件。但是,“開源軟件”服務,意味著服務器軟件是開源或是自由軟件,卻錯失了SaaSS的問題。

服務從根本上不同于程序,由它帶來的道德問題從根本上也和程序的不同。為了避免混淆,我們避免把服務描述為“自由”或“專有。”

區分SaaSS和其他網絡服務

哪些在線服務是SaaSS?最明確的例子是翻譯服務,比如它把英語文字翻譯成西班牙語文字。你要翻譯這件事純粹是你自己的計算。你可以通過在自己的電腦上運行一個程序完成。(道義上說,該程序應該是自由軟件。)翻譯服務代替了該程序,所以這是服務代替軟件,即SaaSS。由于它剝奪了你對自己計算的控制,所以它對你作惡。

另一個明確的例子是使用諸如Flickr或Instagram之類的服務來編輯照片。幾十年以來,人們都是在自己的電腦上編輯照片;在你無法控制的服務器上編輯照片,而不是在自己的電腦上,就是SaaSS。

拒絕SaaSS并不是說要拒絕所有的其他人運行的網絡服務。大多數服務器不是SaaSS,因為它們的任務是通訊,而不是為用戶做計算。

網絡服務器最初的概念不是為你做計算,而是讓你能夠訪問它發布的信息。即使在今天這也是大多數網站做的事,這個沒有SaaSS的問題,因為訪問別人發布的信息不是在做你的計算。使用博客網站發布自己的成果也不是,使用諸如Twitter或StatusNet的服務發布微博也不是。(這些服務可能會有其他問題,根據具體情況而不同。)這個道理對其他非私人的通訊服務也適用,比如聊天室。

究其本質,社交網絡是一種溝通和出版的形式,不是SaaSS。然而,如果一個服務的主要設施是社交網絡的話,它就可能帶有SaaSS的功能和擴展。

如果一項服務不是SaaSS,并不意味著它就沒有問題。服務有其他的道德問題。比如,Facebook使用Flash發布視頻,就是迫使用戶使用非自由軟件;它要求使用非自由的JavaScript代碼;并且它通過讓用戶展示自己的生活來誤導他們對隱私的感覺。這些都是重要的問題,不過不同于SaaSS。

搜索引擎之類的服務是從網絡上收集數據并讓你查看。查看他們收集的數據不是普通意義上的用戶計算活動—你并沒有提供這個收集活動—所以使用此類網絡搜索不是SaaSS。然而,使用其他人的服務器為你自己的網站部署搜索設施SaaSS。

網購不是SaaSS,因為這個計算不是你自己的活動;而是你和商店共同完成的活動。網購的真正問題在于你是否相信收錢的一方以及其他個人信息(從你的姓名算起)。

倉庫網站,如Savannah和SourceForge,本身不是SaaSS,因為倉庫的工作是發布交給它的數據。

使用聯合項目的服務器不是SaaSS,因為你做的計算不是你自己的。例如,如果你修改了Wikipedia頁面,那么你并不是在做自己的計算;而是你在做Wikipedia的聯合計算。Wikipedia控制自己的服務器,但是如果他們使用的是其他人的服務器,那么機構和個人都面臨SaaSS的問題。

有些網站提供多種服務,如果其中一個不是SaaSS,另一種也可能是SaaSS。例如,Facebook的主要服務是社交網絡,這不是SaaSS;然而,它支持第三方應用,其中有些是SaaSS。Flickr的主要服務是發布照片,這不是SaaSS,但是它還有編輯照片的功能,這就是SaaSS。類似地,在Instagram發布照片不是SaaSS,但是使用它來轉換照片格式就是SaaSS。

Google Docs展示了評價一個服務有多么復雜。它讓人們通過運行一個大型的非自由JavaScript程序來編輯文檔,明顯是錯誤的。然而,它還提供上傳和下載標準格式文檔的API。一個自由軟件編輯器也可以通過此API傳輸文檔。這個應用場景不是SaaSS,因為Google Docs只是作為倉庫來使用。把自己的數據展示給一個公司是一件壞事,但這也只是隱私的問題,不是SaaSS;依賴某個服務來訪問自己的數據也是一件壞事,但它也只是風險的問題,不是SaaSS。另一方面,使用服務來轉換文檔的格式SaaSS,因為你可以使用自己電腦里的合適程序(希望是,自由軟件)來完成這件事。

當然,通過自由軟件使用Google Docs并不常見。最常見的是,人們通過非自由的JavaScript程序來使用它,這和使用其他非自由軟件一樣糟糕。這個場景還會引入SaaSS;這取決于哪些操作是JavaScript程序做的,哪些是服務器做的。我們不知道,但是由于SaaSS和專有軟件都對用戶作惡,知不知道并不是關鍵。

通過他人的倉庫進行發布不會有隱私的問題,但是通過Google Docs發布卻有一個特別的問題:不運行非自由的JavaScript代碼,你甚至不能在瀏覽器里查看Google Docs文本。所以,你不應該使用Google Docs發布文檔—但是這不是由于SaaSS的原因。

IT產業并不鼓勵用戶做這些區分。這就是“云計算”這一時髦詞匯的用途。該詞是如此的模糊不清,以至于它幾乎可以表示任何互聯網的使用形式。它包含SaaSS,也包含許多其他的網絡使用情況。在一個特定的語境,使用者可能用“云”(如果是技術背景的使用者)表示腦海里一個特定的意思,但是通常不會解釋說該詞在其他文章中有其他的意思。該術語引導人們對本應該單獨處理的情況進行普遍化。

如果“云計算”有定義,那么它不是一個計算的方式,而是對計算的一種思考方法:一種魔鬼才會考慮的方法,意思是,“不要提問。不要擔心是誰控制你的計算或者是誰掌握你的數據。在你吞掉魚餌之前不要檢查藏在服務之餌里的釣鉤。要毫不懷疑地相信這些公司。”換句話說,“做一個沒有主見的人。”思想里的云就是要阻礙清楚地思考。為了清楚地思考計算,讓我們避免使用“云”這個詞。

區分租用服務器和SaaSS的不同

如果你租用服務器(真實的或虛擬的),你可以控制其軟件,它就不是SaaSS。在SaaSS的情形,其他人決定服務器運行的軟件,因而他們控制著你的計算。在你安裝服務器軟件的情形,你控制著你的計算。所以,租用服務器實際上是你的電腦。此時,我們認為它就是你的。

租用的遠程服務器上的數據沒有在自己家里的服務器上的數據安全,但是這個是SaaSS之外的問題。

這種服務器租賃有時叫做“IaaS”,但是該術語適用的概念輕視了我們要考慮的重點。

SaaSS問題的應對

只有小部分網站實施SaaSS;大多數網站沒有這個問題。但是我們如何應對有這個問題的網站呢?

對簡單的情況,你用自己的數據進行自己的計算,解決方法也簡單:使用一份你自己的自由軟件拷貝。用一份諸如GNU Emacs或自由字處理程序的自由軟件來進行自己的文本編輯。使用諸如GIMP的自由軟件來編輯照片。如果沒有可用的自由軟件怎么辦?專有軟件或SaaSS會拿走你的自由,所以你不應該使用它們。你可以貢獻時間或資金來開發一款可以替代專有軟件的自由軟件。

和其他人結成合作團隊怎么樣?現在在不用服務器的情況下工作可能有困難,而團隊可能并不知道如何運作自己的服務器。如果你要使用他人的服務器,至少不要相信由公司運作的服務器。一紙客戶合同對你不是?;?,除非你能夠偵測到違規并真正起訴,而公司制作的合同可能允許寬泛的濫用。政府可以從該公司強行調取你的以及其他人的數據,正如奧巴馬總統對電話公司所做的;還要假設該公司不自愿交出數據,不過美國電話公司是非法為布什政府監聽其用戶的。如果你必須使用服務器,請使用除了商業關系之外還有其他可信基礎的服務器操作方。

然而,長遠來看,我們能夠構建替代服務器的機制。例如,我們可以構建能夠分享加密數據的點對點程序。自由軟件社區應該開發分布式點對點程序來代替重要的“網絡應用”。按照GNU Affero GPL發布這些程序是明智的,因為它們有可能被某些人轉換成基于服務器的程序。GNU工程正在尋求做此開發的志愿者。我們也邀請其他自由軟件項目在其設計中考慮這個問題。

同時,如果有公司邀請你使用它們的服務器來做你的計算,不要接受;不要使用SaaSS。不要購買或安裝“輕客戶端”,這些只是簡單的電腦,它們的計算能力是如此之弱,你的計算只能在服務器上真正完成,除非你配合你的服務器來使用這些客戶端。使用真正的電腦并把數據限制在該電腦上。為你的自由起見,請用你自己的自由軟件拷貝來做計算。

請同時參看:

不許任何人了解的缺陷。

譯注

  1. homomorphic encryption,同態加密:指對加密內容的計算結果和對非加密內容的計算結果一樣的加密算法。
最頂

[FSF 標志]“自由軟件基金會(FSF)是一個非盈利組織。我們的使命是在全球范圍內促進計算機用戶的自由。我們捍衛所有軟件用戶的權利。”

加入 購物