信任的高昂代價:macOS 代碼簽名的摩擦力

對於現代獨立開發者而言,「發佈」軟體的行為已從簡單的文件傳輸,演變成與平台把關者之間複雜的談判。雖然使用 Go 等語言編譯靜態二進制文件幾乎是瞬間完成的,但要確保該二進制文件能在用戶的機器上運行——而不觸發一連串的安全警告——已成為壓力的重大來源與財務負擔。

這種緊張關係在 macOS 生態系統中表現得最為明顯,Apple 的安全架構為愛好者和小型開發者設置了極高的准入門檻。當開發者分發未簽名的二進制文件時,macOS 會觸發「隔離」(quarantine) 機制,這是一種安全功能,會阻止應用程序運行,並迫使用戶必須透過終端機或系統設置手動覆蓋限制。對於專業產品而言,這是一種糟糕的用戶體驗;對於愛好者來說,這是一道牆。

「圍牆花園」的財務成本

為了繞過這些警告,開發者必須加入 Apple Developer Program。對許多人來說,這項成本是無法接受的。該計劃要求支付年度訂閱費(約 99 美元),這造成了一種扭曲的經濟激勵:如果你正在透過 Itch.io 等平台以「隨意付費」模式發佈小型工具,你可能會因為試圖讓軟體變得「官方」而反而虧錢。

這種定價結構暗示了一種哲學,即只有「嚴肅用戶」或成熟的公司才被鼓勵分發軟體。正如一位開發者所言,這種經濟模式將軟體開發從「家常便飯」式的方法推向了為了支付分發成本而必須進行變現的強制性模式。

技術摩擦與身份驗證

除了財務成本之外,入駐流程也充滿了技術障礙。Apple 的身份驗證通常需要使用特定設備(如 iPhone)上的特定應用程序來拍攝政府核發的身份證件照片。這造成了硬體依賴的循環:為了分發 Mac 軟體,你被迫必須擁有 iPhone,而驗證過程也以難搞著稱,經常因為內建網路攝影機的照明或自動對焦問題而失敗。

一旦完成付款並提交文件,流程並未就此結束。開發者回報了「最終一致性」(eventual consistency) 問題,即帳戶狀態在不同設備之間保持為「待處理」,這為本已不透明的流程增加了更多挫折感。

系統性問題:超越 Apple

雖然 Apple 通常是這些抱怨的主要目標,但問題延伸到了整個代碼簽名產業。Windows 分發並非顯著更容易。第三方憑證頒發機構(如 Certum)每年可能耗費超過 200 歐元。即使是像 Azure Artifact Signing 這樣提供較低月費的雲端解決方案,也經常將個人層級的訪問權限限制在特定區域(例如美國和加拿大),導致歐盟地區的個人開發者陷入困境。

這引發了對代碼簽名領域進行「Let's Encrypt 時刻」的呼籲——朝著將信任商品化邁進,以便個人開發者可以透過加密方式簽名其作品,而無需向少數幾家大公司支付「尋租」稅。

反對論點:摩擦力的必要性

並非所有人都認為這些障礙是純粹的阻礙。有些人認為,在惡意軟體呈指數級增長的時代,摩擦力是一種必要的惡。

「現在嵌入在軟體中的惡意代碼量正在呈指數級增長……作為一名 Mac 用戶,我想知道開發者是否支付了顯著的費用來將這款軟體提供給我。這對我來說是一個有用的信號。」

然而,這種論點受到了那些認為用戶應對其機器擁有最終控制權的人的反駁。有些人建議,進階用戶可以簡單地透過終端機禁用 Gatekeeper(sudo spctl --master-disable),並主張預設設置應該對大眾是限制性的,但對了解風險的人應該是開放的。

結論:需要更合理的替代方案

企業級代碼簽名與政府主導的數位身份系統之間的對比非常鮮明。在某些地區,例如波羅的海國家,公民可以使用 SmartID 或 eParaksts 等工具,在幾秒鐘內使用政府核發的身份證件來驗證身份或簽署文件。

如果國家層級的基礎設施已經存在於驗證個人身份並以加密方式簽署文件,那麼在軟體領域實現同樣的操作在技術上也是可行的。在產業轉動向昂貴、私有的圍牆花園之前,每當獨立開發者按下「發佈」按鈕時,他們的「皮質醇水平」將會持續上升。

Sources