(翻译)GPLv3与投票机

https://www.fsf.org/licensing/gplv3-tc-voting-machines

GPLv3不会破坏投票机。

一些人担心GPLv3的反DRM条款会使得为投票机软件使用GPL变为不可能。这种担心忽视了GPL的实际文本,而仅仅来自于对背叛计算和投票机工作方式的虚假认识。 在美国,投票机并不是安全的;他们不需要满足任何的安全标准(甚至不像赌博机那样)[1]。因此,没有一家投票机厂商会在他们的设备里放置一块可信平台模块(TPM),因为这将带来不必要的开销。事实上,投票机厂商非常努力地游说来阻止哪怕是最基本的安全措施出现在纸面上。考虑到这些广为人知的危险,在今天使用电子投票机是愚蠢的。

但是让我们想象在将来有一天,在某个国家,一家投票机生产商(让我们简称他们为Diebold)决定构建出可以想象的最安全的投票系统。在开始,Diebold会调研已有的文献。他们会发现已经有了两种可能的安全电子投票协议:C. Andrew Neff的协议和David Chaum的协议,而这两种协议中的任何一种都不依赖于客户端的安全性,所以TCG(可信计算组)的安全启动和远端认证协议不会有一点用处。“安全电子投票协议不能依赖客户端的安全性”是因为,没有任何方式可以使得一个检查机器的人能够证明他正在检查的机器就是投票的人看到的那台:想象如果有一个由魔法保证安全性的客户端,我们可以确定当用户按下机器上的X按钮的时候,机器会给候选人X投一票;现在,有一个恶意的人在这台安全的机器上面放了一台假的机器,这台恶意的机器会通过一台摄像机把安全的机器显示在屏幕上用于说明自己安全性的证据复制到自己的屏幕上,而当假机器读到有人为候选人X投票的时候,他会用电子手指按下真正机器上的Y按钮。

让我们接着想象由于某些原因,上面这种攻击是不能做到的,因此Diebold仍然决定用远端认证机制来保证客户端的安全性。他们仍然可以使用GPLv3软件来做到这一点。为了理解其中的原因,你需要对TCG的安全模型有一定的理解。 根据TCG,一台机器是被“信任”的,如果它“始终能够按照被预期的目的,执行被预期的行为”。注意这里被动语态的使用隐藏了“预期”来自于谁——反正不是你。这种对“信任”的定义和我们平时对“信任”的定义——一件事物是被信任的,如果他有机会能够破坏你的安全策略——是不同的,我会用“TCG信任”和“一般信任”来对应地区分二者。“TCG信任”可以通过由可信平台模块TPM的制造商(可能是Diebold以外的一家芯片公司——不妨叫它Intel)证实他们的确实现了TCG标准来实现。这意味着TPM必须包含一串密钥,这串密钥没有人能够知道——甚至机器的主人也不能。当然,没有什么能阻止Intel知道这串密钥,所以所有人必须“一般信任”Intel。

如果这串密钥可以由设备的主人提供而不是由TPM自带,设备的主人可以确保Intel不知道这串密钥。在这种情形下(这种情形和Seth Schoen提出的“所有者覆盖提案”等价),机器的主人也可以破坏“TCG信任”,因为这些机器将按照设备主人的意愿行事。当然,一款需要“一般信任”TPM厂家的投票系统远非安全,但是我们假设总之我们克服了这种缺陷,继续考虑我们怎么构建基于“可信计算”的投票系统。

这套投票系统将被这样构建:Diebold开发一款使用了(L)GPLv3组件的投票机,比如Linux,glibc和Qt(如果他会升级的话)[2]。他们把这套软件安装到投票机上,并且给投票机开启了安全启动。接着他们设立了一台可以通过远程认证来保证投票机的软件没有被篡改过的服务器。到此为止,服务器可以确信这些投票机将“能够按照被预期的目的执行被预期的行为”。

政府可以“TCG信任”整个系统,如果他们 (a).拥有整个系统的所有源码;(b).可以对客户端和服务器都进行远程认证。为了分析投票机软件在GPLv3下如何分发,我们需要知道哪些密钥是安装修改版软件所必须的。

“相应源码”同样包括,在主要使用场合和推荐使用场合下,安装和/或运行修改过源码的软件版本所需要的加密或者鉴权密钥,从而使得他们可以在同样条件下实现同样功能。(例如,如果作品是能播放某些DVD的DVD播放器,修改版的DVD播放器也必须有机会能够播放这些DVD。如果作品能够和某些在线服务交互,修改版的作品也必须有机会可以和原版按照服务无法区分的方式和同样的在线服务进行交互。)在使用作品意味着用户已经拥有并且能访问和复制密钥的前提下,例如在隐私保护软件中用户可以生成自己的密钥,则密钥无需被附带。然而,“密钥根据目标代码生成”或者“密钥保存在限制其功用的硬件上”并不影响密钥应当被包含在相应源码里这一要求。

我们还没有讨论这套系统如何进行升级。因为远程认证系统的存在,客户端需要某种知道服务端的某个更新是否是经过授权的,反之亦然。这种机制可以是一堆密钥对或者一个密钥,具体形式不重要。出于安全考虑,Diebold不应该知道这个密钥,否则他们就可以在选举官方不知情的情况下升级这些机器。因此用户——也就是政府——必须已经有升级系统需要的密钥,而这些密钥不属于“相应源码”的一部分。

在以上四条假设之后,GPLv3新的相应源码条款仍然没有阻止在投票机中使用GPLv3软件。所以人们担心的究竟是那种情况呢?我能想到的唯一答案是投票机制造商已经说服了人们,唯一确保投票安全的方式是把投票机的全部控制权转交给投票机制造商。理智的人会看出这种安全模型的本质——一种赤裸裸的权力攫取。

[1] 2007年12月16日更新:已经有一些针对投票机的非强制的指导标准(在未来还会有更多),但是生产商不需要遵守它们,即使尝试遵守也会最终以失败而告终。 [2] 译者注:最终Linux内核并没有升级到GPLv3,而Qt则升级到了(L)GPLv3。

1 points · 0 comments · view on lemmy.world

0 Comments

No comments yet.