選擇軟體的一些原則


軟體的「分層哲學」

通常我們使用的軟體可以分為三層,系統層,工具層,最終層。我個人不喜歡閉源和專有的軟體,但是有的情況下又不得不使用。在這種情況下,我會先確保基層軟體的開源和自由。先保證基础重要的合自己的口味是很正常的事情。就像我不得不使用 QQ 跟別人聊天,但我絕對不會接受使用搜狗輸入法。

另外有的軟體會出現「越界」,比如官方 QQ 客戶端包含的截圖功能,一個最終層的軟體包括了工具層的功能,我認為去使用這個功能是不潔淨的。對於這種有「越界」行為的軟體,個人認為應當避免使用,或是不應當使用不屬於它管轄範圍內的功能。

選擇軟體的原則與其中的安全原因

很多人選擇軟體都將所謂「實用」放在首位。其實很大程度上是一種把自身安全與自由當成兒戲的行為。在我看來,選擇自己使用的軟體應在確保最基础的使用下依次儘量確保下面的原則:

  1. 系統基本組件儘量開源可信任(如使用 Linux 勝過使用 Windows/MacOS)
  2. 基础工具儘量開源可信任(如使用 rime 輸入法勝過使用搜狗輸入法)
  3. 終端用戶軟體/服務儘量開源可信任 (如使用 telegram 勝過使用 QQ)

如果較前的一條沒有得到保證,那麼很可能為導致靠後條目的努力完全白費。且開源很大程度上是「值得信任」,保證開源應當是首要的,如果實在無法保證,才應該在剩下的選項中選擇「值得信任的」

系統的權力最大,如果不能保證系統是可以信任的,那麼這台計算機也就毫無信任可言了。檢測你有沒有使用代理,轉發你的網路流量,監听你的鍵盤輸入……听上去確實很無厘頭,事實上很可能也沒有那個系統會這麼做,但是你永遠不能肯定它們不會做出出格的行為。在我看來,系統的安全性排列非常簡單:

  1. 最可信:社區 Linux 發行版,開源安卓 ROM
  2. 一般可信:Windows,MacOS,一般廠商定制安卓 ROM,IOS
  3. 最不可信:國內閉源 Linux 發行版,國內閉源深度定制安卓 ROM(鴻蒙OS)

在網上能找到一些國內廠商定制的安卓 ROM 上安裝某些軟體被請喝茶的情況,不一定屬實,但一定有可能。

其次是基础工具,如輸入法,截圖工具,文本編輯器等等。這些軟體用作工具型的應用程式,會與你計算機上的各種各樣的資料打交道。比如輸入法會在各種軟體裡輸入中文并知道你輸入了什麼,截圖工具總是能看到你的螢幕。如果你使用了不可信任的基础工具,比如「搜狗輸入法」,即使你使用了可信任的聯天程式,如使用 GPG 加密了的 XMPP,你的輸入法依舊可以統計獲得你輸入的內容,讓你的「加密通訊」白忙一場。

最後是終端用戶軟體/服務,這些軟體如果不可信任,他們一般也只能夠存取你用於這些軟體的資料。就算你使用了 icalingua++,不能保證 tecent 不會出賣你的聊天資料,他們能夠出賣的也就只有你在 QQ 上聊天的資料而己。

所以可以看到,為自己使用的軟體劃明層次,其實不僅僅是自我滿足,同時也能保證使用計算機時的安全,更是一種自由精神的體現