← 所有文章

世界上最著名的在线投票系统被研究人员拆解分析

独立研究人员观察了爱沙尼亚备受推崇的互联网投票系统进行的一次全国现场选举——他们的结论是,外国政府或单个腐败的内部人士可以在无人察觉的情况下篡改选票。

时间是2013年10月,在塔林的某个地方,一台服务器正在接收一个国家的选票。

爱沙尼亚花了十年时间建立了其他任何国家都无法匹敌的东西:一个完全可运行的国家互联网投票系统,用于真实的具有约束力的选举,处理能够决定议会议席的真实选票。爱沙尼亚人从他们的餐厅桌子、办公室和手机上登录。这个系统有一个名字——i-voting——和一个声誉:数字民主的世界黄金标准。

但在那个秋天,它还有另外一个特点:一群独立的安全研究人员首次从外部观察它的运作。他们带着证书和摄像机来了,还带着一个特别令人不安的问题:投出的选票是否真的就是被计数的选票?


一支专家团队、一个国家的选票和一扇敞开的门

这支团队——Drew Springall、Travis Finkbeiner、Zakir Durumeric、Jeremy Kitcat、Harri Hursti、Jason MacAlpine和J. Alex Halderman——观察了爱沙尼亚2013年10月的市政选举,随后检查了该系统发布的客户端软件和服务器配置。他们的论文经过同行评审,发表在ACM CCS 2014会议上,这是全球最具竞争力的计算机安全学术场所之一。

他们发现的不是对互联网投票的抽象理论批评。这是对一个具体的、已部署的系统处理真实国家选票的具体、有文档记录的分析。

他们的结论是:一个资源充足的攻击者——一个民族国家或不诚实的内部人士——可能在不被检测的情况下合理地危害选票的完整性或选民隐私。

不是"可能能够"。不是"在对抗性实验室环境中"。是真实、现场的国家选举。不可检测的干涉。

爱沙尼亚选举当局对这些结论提出了异议。这种异议本身也是故事的一部分——我们稍后会讲到。但首先:研究人员是如何足够接近地发现所有这一切的?


使分析成为可能的关键

这里有一个改变一切的细节:该系统的代码和程序至少在一定程度上是公开的。

爱沙尼亚公开了足够多的i-voting软件和服务器配置,使得外部专家可以实际评估真实风险,而不是接受政府的说法。大多数选举技术并非如此运作。大多数投票系统——尤其是在美国——属于专有系统。代码是商业机密。外部审查人员(如果存在的话)需要签署保密协议。公众只被告知一个认证结果,并被要求信任它。

爱沙尼亚的部分公开性在讽刺意味上反而使研究人员能够完成他们的工作。当代码被隐藏时,你唯一能验证的是它有效的说法。当代码公开时,你可以测试它是否真的有效。

研究人员记录了严重的操作和程序安全漏洞。他们指出了松散的操作安全实践——其中一些被爱沙尼亚当局自己公开发布的官方视频记录了下来。他们确认了软件架构中的缺陷。他们逐步演示了一个老练的攻击者如何利用他们发现的内容。

爱沙尼亚当局说研究人员误解了该系统,已确认的漏洞不能转化为可利用的攻击,i-voting是安全的。这些都是声称。研究人员的分析也是一种声称。关键区别在于该论文已发表、经过同行评审,并且具体到足以让任何具有相关专业知识的人阅读它并形成自己的观点。

一份说"我们的系统是安全的"的官方新闻稿不是那样的。它永远不会是。


"不可检测"的实际含义

让我们精确定义这个词,因为它承载了很大的分析负担。

在爱沙尼亚研究人员的模型中,攻击者不需要闯入计算选票的房间。他们需要破坏在选票到达那里之前的链条——理想情况下在投票者设备或接收和处理选票的服务器上。

选民的个人计算机不是投票机。它未经检查、认证或加固以用于选举。它可能运行过时的软件。它可能已经被来自完全不相关的网络钓鱼邮件的恶意软件感染。当你的选票从笔记本电脑传到政府服务器时,经过互联网,该选票的安全取决于它触及的每个系统的安全——而你控制其中几乎没有。

研究人员发现,如果服务器组件被破坏——被拥有资源和动机的民族国家攻击者,或被有访问权的内部人士破坏——选票可能以现有审计机制无法发现的方式被篡改。该系统的保护不足以弥合这一差距。

这不是一个假想的攻击者。爱沙尼亚与俄罗斯接壤。2007年——这次分析的六年前——爱沙尼亚遭遇了历史上首次大规模国家关联的网络攻击之一,针对政府网站、银行和媒体机构。研究人员不是在凭空编造威胁。他们在测量一个真实的、有文献记载的地缘政治风险与系统实际抵抗能力之间的差距。


为什么官方保证是不够的

当爱沙尼亚国家选举委员会回应2014年论文时,它辩称研究人员没有证明对真实选举的实际攻击,而且该系统拥有强大的程序保障。

这个回应本身值得检查,因为它在结构上与选举当局几乎在任何地方、几乎每次都给出的回应完全相同。

我们发现没有篡改的证据。

我们的认证过程很彻底。

观察人员在场。

结果被确认。

这些陈述可能都是真的。它们没有回答研究人员的问题。问题不是"篡改是否发生了?"问题是:"如果篡改发生了,任何人能否发现它?"

而对于一个攻击者在服务器上或在数百万个个人投票者设备上进行操作的互联网投票系统,研究人员给出的答案——谨慎地,有证据地——是:可能不会。

德国联邦宪法法院在2009年与一个类似的问题进行了搏斗,当时它禁止了只能由专家评估其正确性的电子投票机。法院的标准是刺耳的:**投票过程的基本步骤必须由公民可靠地、无需专业知识地检查。**你必须信任因为你无法检查的机器不符合该标准。审计线索存在于你无法检查的服务器上的互联网投票系统也不符合。

德国法院不需要证明Nedap机器已被篡改。它只需要确立篡改是不可验证的。那就足够了。

爱沙尼亚当局从未不得不在法庭上满足该标准。研究人员的论文仍然存在于记录中。


使观点更清晰的比较

考虑来自同一时代和同一一般类别的两个案例——由外部研究人员评估的互联网和远程投票系统。

2010年,哥伦比亚特区进行了一次互联网选票回传系统的公开公共试验,并明确邀请独立专家探测它。密歇根大学由Halderman领导的团队在大约48小时内获得了试点服务器的近乎完全的控制权。他们可以改变所有已投的选票。他们可以查看秘密选票。官员们在几天后才注意到。哥伦比亚特区在任何真实选票面临风险之前放弃了该系统。调查结果已发表。

2015年,在澳大利亚新南威尔士州的一次现场选举期间,大约280,000张选票已经在线投出,Halderman和研究人员Vanessa Teague发现iVote从一个外部分析服务器加载代码,该连接容易受到已知TLS攻击——这可能让网络攻击者操纵选票。系统自己的基于电话的验证服务本身容易被操纵,这意味着设计的完整性检查可能被欺骗。选前安全评审已清除了该系统。该论文已发表。

该模式并非巧合。由对答案是"没问题"没有机构利益的人进行的外部、独立、对抗性审查——每次都能找到内部认证找不到的东西。

这就是2014年爱沙尼亚分析代表的意义。不是对小国民主机构的政治攻击。而是来自受认证研究人员的同行评审论文,这些研究人员查看了真实系统并报告了他们的发现。


"部分公开"给了我们什么——以及它仍然无法证明什么

这个故事最难接受的部分就在这里。

爱沙尼亚分析之所以可能是因为代码部分公开。研究人员可以阅读软件、观看操作视频、检查服务器配置。正是这种开放性将"不可验证的安全声称"转变为"可评估的具体论证"。这已经远比大多数商业投票系统更透明得多。

然而部分公开并不等同于完全可验证。

一个研究人员可以阅读代码但无法验证选举之夜在选举服务器上实际运行的代码的投票系统仍然有漏洞。源代码发布告诉你系统应该做什么。它不证明现场部署的系统在选票进来时正在做什么。服务器日志可能被篡改。部署环境与审查过的代码不同。在代码审查后破坏服务器的内部人士没有改变审查会发现的任何东西。

这是互联网投票尚未解决的设计问题——该领域中每个认真的密码学家都会告诉你它尚未解决。从选民的个人设备到政府服务器的通道不是一个受控的、防篡改的环境。它是整个互联网,加上数百万台私人计算机上的每个软件,加上具有选举基础设施管理员访问权的每个人。

瑞士在2019年发布了其i-voting源代码供公众审查,独立研究人员Sarah Jamie Lewis、Olivier Pereira和Vanessa Teague发现了shuffle证明中的密码后门——一个允许知道后门值的机构生成看起来有效的证明的缺陷,同时实际上已改变了选票。在认证的闭系统中该缺陷是不可见的,只有在代码被发布时才可发现。该论文精确地记录了它。瑞士当局暂停了该系统并修复了它。这是正确的回应。但它只在公开代码发布让局外人发现内部审查所遗漏的东西时才发生。

教训不是开源就够了。教训是开源是必要的——但还不够。


什么会真正使这个可以检查

爱沙尼亚案例浮现的更深层问题是设计要求,而非特定实现中的缺陷。

任何人都能验证的投票系统必须做的不仅仅是发布代码。它必须为每张选票生成一个公开的、独立可检查的记录,证明该选票被按投出方式计数——而不暴露任何个人如何投票。试图解决这个问题的密码学分支称为端到端可验证(E2E)投票。该系列中的系统给予每个投票者一个密码收据,他们可以用来确认其具体选票出现在发布的计票中,并生成一份公开证明表明计票从这些选票正确计算。该证明可以由任何人检查,包括不信任供应商和政府的研究人员。

2013年爱沙尼亚i-voting中没有这样的系统。研究人员的建议包括在进行基本安全改进前停止使用该系统。爱沙尼亚没有停止使用。截至本文撰写时,i-voting仍在使用。

这是一个事实陈述,不是判断。爱沙尼亚当局认为该系统足够安全以运行。研究人员认为已发表的证据支持不同的结论。公众——爱沙尼亚人及其他人——没有独立的机制,不信任这两个立场中的一个。

这就是问题所在。不是"爱沙尼亚做了什么错事"。问题是信任一个结果和验证一个结果是不同的事情,如果被信任的机构是已被破坏的那个,其中一个不会保护你。


没有人回答过的问题

挪威在2011年和2013年进行了互联网投票试验,得出结论试验没有导致投票率增加,并在2014年悄悄终止了该计划。该部委指出试验已"产生了宝贵的知识和经验"——这是一种外交说法:我们了解到我们不喜欢的东西。

芬兰在2008年进行了电子投票试验,232张选票默默消失,因为故障的确认步骤缺陷被有缺陷的说明书向投票者隐藏了。最高行政法院宣布了三个市的选举无效,并命令他们重新进行。芬兰没有继续进行电子投票。

这里的模式不是互联网或电子投票总是有灾难性错误。模式是当一个独立机构——法院、研究团队、政府委员会——获得真实证据的访问权限并提出硬问题时,答案几乎从不是"它按广告工作,这是证明"。答案几乎总是某个版本的"我们发现了认证过程没有发现的东西,公众没有办法检查"。

爱沙尼亚2014年分析遗留的问题是这样的:如果一个具有民族国家资源的攻击者已破坏了爱沙尼亚市政或议会选举中的i-voting,证据会是什么样,谁能够找到它?

爱沙尼亚当局的答案是:程序保障会发现它。

研究人员的答案是:程序保障正是我们担心的部分。

没有人发表会解决这个问题的证明。那样的证明目前不存在。在选举中,对结果是否反映实际投出的选票的悬而未决的问题不是学术谜题。这是民主问题。


可分享的要点是这样的:"该系统是安全的"和"这是该系统是安全的独立可验证证明"不是同样的句子。其中一个保护民主。另一个只是要求你信任。

公开代码将一个不可证伪的官方保证变成了可测试的声称。那是进步。但可测试的声称只有在让任何人——不仅仅是具有官方视频访问权的受认证研究人员——能够在选举之夜运行测试的机制那样好,而不是三个月后在会议论文中。

那个机制对互联网投票还不存在,任何地方都不存在。在它存在之前,"我们的安全审查很彻底"是审查的起点,而不是结束。

查看这个差距如何在全球投票系统中出现 →

阅读可验证性问题的两分钟版本 →

浏览不可验证的选举结果的已记录案例 →


参考文献