信任的高昂代价:macOS 代码签名的摩擦力

对于现代独立开发者而言,“发布”软件的行为已从简单的文件传输演变为与平台把关者的复杂博弈。虽然使用 Go 等语言编译静态二进制文件几乎是瞬间完成的,但要确保该二进制文件在用户机器上实际运行——且不会触发一连串安全警告——的过程,已成为压力和经济负担的重要来源。

这种紧张关系在 macOS 生态系统中表现得最为明显,苹果的安全架构为爱好者和小型开发者设置了极高的准入门槛。当开发者分发未经签名的二进制文件时,macOS 会触发“隔离”(quarantine)机制,这是一种安全功能,它会阻止应用程序运行,并迫使用户必须通过终端或系统设置手动覆盖限制。对于专业产品而言,这是一种糟糕的用户体验;对于爱好者而言,这则是一道高墙。

“围墙花园”带来的经济代价

为了绕过这些警告,开发者必须加入 Apple Developer Program。对于许多人来说,这个成本是无法接受的。该计划要求支付年度订阅费(约 99 美元),这产生了一种扭曲的经济激励:如果你正在通过 Itch.io 等平台以“随心付费”模式发布小型工具,试图让软件变得“官方”反而可能会让你亏钱。

这种定价结构暗示了一种哲学,即只有“严肃用户”或成熟公司才被鼓励分发软件。正如一位开发者所言,这种经济模式正迫使软件开发从“家常便饭”式的方法转向为了覆盖分发成本而进行的强制性变现。

技术摩擦与身份验证

除了经济成本,入驻过程也充满了技术障碍。苹果的身份验证通常需要使用特定设备(如 iPhone)上的特定应用程序来拍摄政府身份证件的照片。这创造了一个硬件依赖循环:为了给 Mac 分发软件,你会被迫拥有一个 iPhone,而且验证过程可能非常难以捉摸,经常因为内置摄像头的光线或自动对焦问题而失败。

一旦支付完成并提交了文件,过程并不会就此结束。开发者报告称存在“最终一致性”问题,即账户状态在不同设备上保持为“待处理”,这为本就不透明的过程增添了更多挫败感。

系统性问题:不仅限于苹果

虽然苹果通常是这些投诉的主要目标,但问题延伸到了整个代码签名行业。Windows 分发并没有显著变得更容易。第三方证书颁发机构(如 Certum)每年的费用可能超过 200 欧元。即使是像 Azure Artifact Signing 这样提供较低月费的云端解决方案,也经常将其个人层级的访问权限限制在特定区域(例如美国和加拿大),让位于欧盟的个人开发者陷入困境。

这引发了对代码签名领域出现“Let's Encrypt 时刻”的呼声——即向信任的商品化迈进,以便个人开发者可以对自己的作品进行加密签名,而无需向少数几家大公司支付“寻租”税。

反方观点:摩擦力的必要性

并非所有人都认为这些障碍纯粹是阻碍。有人认为,在恶意软件呈指数级增长的时代,摩擦力是一种必要的恶。从这个角度来看,经济和身份验证的障碍可以作为信任的信号。

"现在嵌入在软件中的恶意代码量正在呈指数级增长……作为一名 Mac 用户,我想知道开发者是否支付了可观的费用来将此软件提供给我。这对我很实用。"

然而,这一观点受到了那些认为用户应该对自己的机器拥有最终控制权的人的质疑。有人建议高级用户可以直接通过终端禁用 Gatekeeper(sudo spctl --master-disable),并认为默认设置应该对大众保持限制性,但对了解风险的人开放。

结论:需要更合理的替代方案

企业级代码签名与政府主导的数字身份系统之间的对比非常鲜明。在某些地区,例如波罗的海国家,公民可以使用 SmartID 或 eParaksts 等工具,在几秒钟内使用政府颁发的身份证件来验证身份或签署文件。

如果国家层面已经存在验证个人身份并在国家级别进行加密签名文档的基础设施,那么在软件领域实现同样的操作在技术上也是可行的。在行业转向昂贵的、专有的围墙花园之前,每当独立开发者按下“发布”按钮时,他们的“皮质醇水平”将会持续升高。

Sources