← 所有文章

他们向公众开放了互联网投票试点。48小时内就被破解了。

一支大学研究团队侵入了华盛顿特区的互联网投票试点系统,篡改了每一张选票,甚至让服务器播放了校歌——而官员们数天都没有发现。

时间是2010年9月,在华盛顿特区的某台服务器上,密歇根大学的校歌正在播放。

这不是有人计划的。而是一支研究人员团队刚刚接管了一个正在运行的互联网投票系统——修改了系统内的每一张选票,读取了每一张应该保密的选票,然后作为"签名",他们编程让服务器在每次模拟提交后播放《胜利者》。他们在大约48小时内完成了这一切。在接下来的几天里,哥伦比亚特区选举委员会的任何人都没有注意到。

故事就这样开始了。不是阴谋,不是外国对手,不是一场势均力敌的比赛。只是一支大学研究团队,一个公开邀请,和一个在两天内就被攻破的漏洞。

几乎不是测试的试点

2010年,特区试图做一些真正进步的事情。海外和军人选民面临着及时返回选票的真实障碍。该市建立了一个互联网选票返回系统来解决这个问题——在真正部署到实际选举前,官员们做了一些几乎闻所未闻的事情:他们向公众开放系统进行对抗性测试

他们称之为公开试验。他们发布了服务器。他们告诉世界:来找出问题所在吧。

由J. Alex Halderman领导的团队——Scott Wolchok、Eric Wustrow、Halderman和Deepak Prasad——出现了。在大约48小时内,他们利用了一个软件漏洞,获得了对试点服务器的近乎完全的控制权。他们可以更改已经投出的选票。他们可以读取本应保密的选票。他们通过重新编程系统在每次投票后播放密歇根大学校歌来演示这一点。这个入侵行为在数天内都未被官员检测到。这些发现后来被发表为同行评审论文《攻击华盛顿特区互联网投票系统》,发表于2012年金融密码学会议。

特区放弃了将该系统用于实际具有约束力投票的计划。

这些漏洞之所以被发现,正是因为城市在真实选票处于风险前开放了系统进行公众攻击。公开对抗性测试将一场可能的灾难变成了一个被发现的缺陷。

这就是这个故事的全部教训——但要理解为什么这么难以付诸行动,需要一些解释。

"认证"的真实含义

当大多数人第一次遇到这个案例时,令他们惊讶的是:在开放给公众测试前,该系统是否经过审查?几乎肯定是的——至少在某种形式上。选举系统例常经历安全审查、供应商测试和认证流程。然而一支研究生水平的研究团队仍在48小时内就从前门进来了。

这不是对建造特区系统的官员的批评。而是对"黑匣子认证"作为开放对抗性审查替代品这一概念的批评。

美国政府问责局早在2005年就记录了联邦改进电子投票安全性和可靠性的努力"正在进行中,但关键活动仍未完成"——这是在《帮助美国投票法》授权创建认证基础设施数年之后。认证框架有帮助。但认证是在特定时间点、由一组定义的审查者、针对一个定义的威胁模型进行的评估。互联网不尊重这个模型。一旦你的系统可达,互联网就向它同时、持续地发送世界上每一个攻击者。

特区的案例证明了这个差距。不是因为特区不负责任,而是因为入侵团队不是外国情报机构。他们是只有几天时间和研究经费的学者。如果一支大学团队能在48小时内夺取控制权并交换每张选票,那么一个拥有数月准备时间和专职人员的州级攻击者就不需要用校歌来宣布他们的存在。他们什么都不会留下。

新南威尔士的教训:通过认证不等于干净

特区的救命之处在于测试在真实选票进入系统之前进行。并非每个司法管辖区都这么幸运。

2015年3月,新南威尔士在现场州选举期间运行其iVote在线投票系统。到独立研究人员J. Alex Halderman和Vanessa Teague发表他们的分析时,大约280,000张选票已经被投出。他们的发现:iVote通过容易受到当时已知TLS漏洞影响的连接从外部分析服务器加载代码,这意味着网络攻击者可能篡改了选票并破坏了选票隐私。选民可以用来确认其选票的基于电话的验证服务本身容易受到操纵——抵消了其作为检查的目的。之前的闭门安全审查已经通过了该系统。研究人员无论如何从外部在现场选举期间发现了问题。在投票仍在进行时部署了修复。但280,000人已经在一个其完整性无法在他们投票时独立确认的系统上投票。

在这里阅读研究人员的分析。

这就是特区模型和替代方案之间的差异。一个系统被破解并在重要前被发现。一个在飞行中被破解并被发现。

密码学问题:甚至"可验证"也可能是伪造的

也许你在想:解决办法是端到端的可验证密码学。构建一个系统,让选民可以检查自己的选票,独立的数学家可以在不看任何人选票的情况下确认计票。这是正确的方向——但密码学必须是正确的。

2019年,在计划用于具有约束力的瑞士投票前,瑞士邮政及其供应商Scytl发布了其互联网投票系统的源代码供公众审查。独立研究人员Sarah Jamie Lewis、Olivier Pereira和Vanessa Teague发现了非凡的东西:混合网络的洗牌证明依赖于一个陷门承诺方案。知道陷门值的当局可以生成一个看起来数学上正确的证明——会通过验证——同时实际上已经在下面交换了选票。研究人员称他们的报告为《这不是证明》。瑞士邮政和Scytl承认了这一发现。瑞士暂停了该系统,等待补救。

在这里阅读研究人员的发现。

这个缺陷在认证的黑匣子中是不可见的。一旦源代码和密码学证明发布供独立审查,它就变得可以找到。可验证性声明只有在外部专家可以检查和确认它——或反驳它时——才有意义。一旦可检查性被移除,该声明就变成了信仰的问题。

这就是为什么特区进行开放公众测试是正确的本能,即使结果是痛苦的。这就是为什么瑞士发布其源代码是正确的本能,即使结果是一个被发现的陷门。正确的模型在它工作时会造成伤害——因为它发现了闭门模型遗漏的东西。

爱沙尼亚教给我们的"没有人发现任何东西"

爱沙尼亚自2005年以来一直运行具有约束力的全国互联网投票。其系统经常被引用为网络投票的黄金标准:高参与度、技术复杂、对所有持有电子身份证的公民开放。爱沙尼亚选举当局一直为其辩护。

2014年,一支独立研究团队——Springall、Finkbeiner、Durumeric、Kitcat、Hursti、MacAlpine和Halderman——在2013年10月市政选举期间观察了系统的运行,并检查了发布的客户端软件和服务器配置。他们发现了严重的操作和程序安全弱点,包括当局自己官方视频中记录的松散安全做法。他们在ACM CCS 2014发表的同行评审结论:一个资源充足的攻击者——或不诚实的内部人员——可能在不被检测的情况下合理地破坏选票的完整性。他们建议爱沙尼亚停用该系统。爱沙尼亚当局对这些结论提出了异议。

在这里阅读完整分析。

关键点在这里:研究人员能够进行此分析,仅仅是因为系统的代码和程序至少部分是公开的。如果系统是一个完全闭门的专有黑匣子,就没有什么可分析的。在这种情况下,没有发现的意思是:我们无法看,而不是那里什么都没有

"没有人发现任何东西"和"我们阻止了任何人查看"不是同一个声明。他们产生相同的官方新闻稿。

为什么挪威没有在丑闻中走开

挪威在2011年和2013年在十个然后十二个市政当局运行了互联网投票试点,作为纸质投票的补充。试验没有导致投票率增加。2014年,本地政府和现代化部决定停止进一步的试点。政府得出结论,如果没有对完整互联网投票的广泛政治支持,花费更多时间和金钱在试点上是不合适的——并且与投票率数据一起引用了未解决的信任问题。

部长的官方声明在这里。

挪威的决定比特区的校歌或瑞士的陷门获得的关注要少。没有戏剧性的突破。只是一个诚实的核算:我们无法确保选票未被篡改的信任,投票率没有改善,在没有解决信任问题的情况下继续的成本不值得。

这是一个成熟的制度回应。它也是一个几乎从不被遵循的模板,因为支持一项技术的政治家很少想成为那个关闭它的人。

对抗性测试模型:巴西做对的事

有一个比闭门认证更好的模型,巴西自2009年以来一直在运行它。

巴西最高选举法院(Tribunal Superior Eleitoral)运行官方公共安全测试——Teste Público de Segurança dos Sistemas Eleitorais——由TSE决议23.444/2015规范,在总体选举的前一年举行。任何符合条件的公民,其测试计划被批准,都可以探测电子投票机和相关系统的弱点。对测试开放的系统跨越整个选举生命周期:选票媒体生成、投票、计票、文件传输和审计系统。发现被用来改进系统,修复在选举前被重新检查。

TSE的官方计划页面在这里。

巴西不声称其机器是牢不可破的。它声称的是更可信的东西:来试试破坏它们,我们将修复你发现的东西。这是对特区曾经做过的事情的制度化版本,除了特区做了一次,而巴西在每个选举周期前把它作为标准实践。

德国联邦宪法法院在2009年在禁止使用投票计算机时阐述了基本原则,这些投票计算机的运行不能被"普通公民可靠地无需任何专业知识地"检查。法院的标准不是"一个专家认证了它"。而是:普通公民必须能够验证必要的步骤。在这里阅读判决。这是一个比任何单一认证都更高的标准——也是互联网投票目前仍未达到的标准。

特区什么不可验证——以及大多数地方仍然不可验证的

华盛顿特区的公开试验把一切都做对了,仍然几乎造成了一次现场选举的灾难性破坏。校歌救了它——不是因为它证明了系统失败,而是因为它足够大声,最终官员们注意到了。一个真正的攻击者无声地改变选票。一个真正的攻击者不会宣布自己。

特区案例不是一种安慰。"我们进行了公众测试并在其运行前发现了一个关键漏洞"是公开对抗性测试的最佳可能结果——而那最佳可能结果仍然是:系统被破坏了。教训不是开放测试保证了一个安全的系统。教训是没有开放测试,你无法知道系统是否破坏,直到一场真实的选举已经在其上运行。

更深层的问题在任何互联网投票被部署或提议的地方都保持开放:谁检查了代码?谁试图破坏服务器?谁验证了密码学证明?而——不是供应商,不是官员,不是认证实验室——能独立检查这些中的任何一个吗?

当答案是否定的时候,"系统通过了其安全审查"和"国务卿说它很好"是用不同字体写的同一个安慰。

选举结果不应该取决于信任供应商、官员或认证机构。它应该取决于一个已发布的、独立可检查的证据链,任何拥有正确技能的人都可以验证——而任何发现缺陷的人都可以公开证明,就像Halderman的团队在2010年做的那样,就像Lewis、Pereira和Teague在2019年做的那样,就像每一个开放对抗性测试被设计为使能的。

这不是一个不可能的高标准。这是特区在邀请公众进入时无意中设定的标准。校歌是那个标准在工作的声音。

在公众测试中发现的漏洞是一个已修复的缺陷。从未测试过的漏洞是一个无声的——而沉默不等于安全。

查看这个透明度差距在不同系统和国家中有多普遍→

阅读2分钟版本,了解是什么使选举可验证→

探索已记录的选举可验证性差距→


来源