Tivoization(硬件自锁技术)
存在一类矛盾的固件:其源代码是 自由软件(采用自由软件许可证),但为其设计的特定硬件却使得实际编译生成的二进制文件沦为非自由软件。这是因为该硬件要求二进制必须经过硬件制造商签名——否则,要么根本无法运行,要么无法使用关键硬件功能——这实质上禁止用户运行修改后的版本。我们将这类程序称为 tivoized blobs。
尽管在强制签名的硬件上,从物理层面仍有可能替换已发布的二进制文件,但这样做毫无意义——因为硬件会拒绝运行修改后的版本,或拒绝执行特定功能(如解密 DRM)。因此,四项基本自由 中的自由之一(用户修改和运行修改版程序的自由)已然缺失,即便源代码采用自由软件许可证,该二进制文件仍是非自由的。Tivoization 还间接影响了其他自由(使用和分发修改版本的权力),因为对固件的任何修改都会导致硬件功能失效。该二进制文件或许符合 开源定义,因为“开源”这一术语 仅关乎源代码的处理方式。
出版商或制造商可能将这种强制签名验证宣传为一项“功能”。他们的论点是:若硬件检测到固件损坏,您的计算机将无法启动(或丧失重要功能),因此 Tivoization 能保护您和您的数据。但我们应当反思:这究竟保护了谁?又是在防范谁?这把锁的真正主人是谁?由谁来决定哪些软件适合我们自己的计算设备?如果决定权不在我们手中,那么 这台计算机已不再忠诚。
Tivoization 并非安全功能,而是针对我们自由的陷阱。它阻止用户升级自己的硬件或固件,并通过将计算机的控制权仅交给某个“受信任”的固件提供商,营造出一种虚假的安全感,迫使用户盲目相信提供商的安全承诺。
驱动硬件最底层的固件,往往对硬件拥有最高控制权。这些固件常内含 后门 与 安全漏洞,而只有硬件“信任”的提供商(即被硬件认可的固件商)才被允许修复这些隐患。
阻止运行未签名或自签名固件版本,是制造商和发行商维持对您计算设备控制权的手段——这种控制甚至比源代码本身是专有软件更严苛!这种做法仅服务于发行商或制造商的利益,对软件用户或硬件所有者毫无益处。反之,若某些硬件型号允许运行修改版本,您使用制造商签名版本相较于自签名变体并无任何优势。
2007年发布的 GNU 通用公共许可证第三版(GPLv3)最重要的补充之一,就是禁止对遵循 GPLv3 的程序实施 Tivoization 分发,因为这种做法实质上剥夺了用户修改程序并使用修改后版本的自由。
正如 GNU 自由系统发行指南 所述,提供此类固件的操作系统均非自由系统——无论其上游源代码是否自由。