为什么在线投票比在线银行难得多
你的银行让你查看每一笔交易。而你的选票按设计会消失——一旦有人试图解决这个问题,他们就会把卖票者一直想要的收据交了出去。
时间是2019年3月,在伯尔尼瑞士邮政的办公室里,一项决定正在做出,这看起来像是民主透明度的胜利。瑞士联邦邮政当局和西班牙供应商Scytl即将公布其互联网投票系统的完整源代码——该系统用于具有约束力的全国公投。任何人都可以阅读它。公众可以检查它。工程师们为此感到自豪。
六周后,三名独立研究人员——Sarah Jamie Lewis、Olivier Pereira和Vanessa Teague——发表了一篇论文,标题借用了马格利特的作品:《这不是一个证明》。
他们在系统的密码学混合中发现了一个后门。这个数学方程生成了一个"证明",声称所有选票都被正确计数。这个证明通过了验证。它通过了每一项检查。而它是个谎言——因为任何知道后门值的人都可以生成一个看起来完全有效的证明,同时悄悄地重新排列了底层的选票。该系统"通用可验证性"声明的整个要点是你不需要信任任何人。这个声明是假的。
瑞士邮政和Scytl承认了这一发现。该系统被暂停。
这是这个问题最尖锐的版本。但它不是唯一的问题。它甚至不是最难的问题。互联网投票最深层的问题与密码学无关。它与一个比计算机早170年就存在的设计约束有关。
为什么你的银行和你的投票箱的构造方式不同
当你查看银行余额时,你读的是你的银行希望你看到的数字。当你对交易提出异议时,你的银行会出示一条记录——有时间戳,可追溯到你——你可以验证它是否匹配。你可以给银行打电话。你可以向律师展示这条记录。整个系统都是围绕一个假设设计的:交易可以追溯到你。
这正是选票不能是的。
秘密投票——1850年代在澳大利亚发明,在随后的一个世纪里被民主国家采纳——不是一种隐私便利。它是一个安全系统。澳大利亚选举委员会明确记录了逻辑:因为人们公开投票,他们容易受到恐吓和胁迫。解决方案是统一的、由国家印制的选票,在私人地点标记,纸张与标记它的人之间没有联系。英国在《1872年投票法》中正式确立了同样的原则,结束了公开投票时代,目的是打击卖票市场。美国联邦法院在《Rideout诉Gardner案》(2016)中用简明的现代语言表述了这一点:秘密投票改革的采纳是为了"对抗广泛的卖票和选民恐吓"——因为买家无法强制执行他们无法验证的购买。
这里是结构性冲突:银行收据使交易可以被证明;投票收据使选票可以被买卖。
如果你能拍摄你标记的选票并将其发送给某人以证明你如何投票,你就已经给每个雇主、政治老板、宗教权威或装着现金的操纵者交了他们所需的执行机制。《Rideout案》中的法院以第一修正案理由否决了投票"自拍"禁令——但它明确承认了这一机制。这张照片恢复了购买证明。
所以当有人提议互联网投票并说"我们会给投票者一张收据来验证他们的选票被计算在内"时,他们同时也在提议一个卖票基础设施。而当他们说"我们会使其匿名,这样没有人能向第三方证明他们的选票"时,他们提议的是一个投票者无法独立确认其选择是否被记录的系统。你不能两者兼得。物理不允许。
这是基本的紧张关系。其他一切都是这个主题的变体。
杀死试点的48小时实验
2010年9月,哥伦比亚特区选举委员会决定为海外和军事投票者运行一个互联网选票返回系统。在真实选票部署之前,他们将其向公众开放进行测试。这是个好主意。
密歇根大学的一支由J. Alex Halderman领导的团队发现了软件漏洞,在大约48小时内获得了对试点服务器的近乎完全控制。他们可以更改已投的每一张选票。他们可以查看秘密选票。作为演示,他们对系统进行了编程,使其在每次模拟投票后播放密歇根大学的校歌。官员们数天未发现这次入侵。
D.C.放弃了这个计划。同行评审论文在2012年金融密码学会议上发表。
官员们得出的教训是:互联网投票未能通过安全测试。更深层的教训是这个测试证明了什么:当系统的安全依赖于隐藏在对抗性审查之外的软件时,唯一知道它是否牢固的方法是让对手试图攻击它。 华盛顿通过开放试点做了正确的事。结果是发现了一个缺陷而不是一次被盗的选举。
大多数部署不是这样测试的。大多数只是直接上线。
280,000张选票已投出才发现漏洞
2015年3月。新南威尔士州正在进行选举。该州的iVote在线系统已经收集了大约280,000张选票,此时J. Alex Halderman和Vanessa Teague坐下来从外部分析运行中的系统。
他们发现iVote从外部分析服务器加载代码时使用的连接容易受到当时已知的TLS弱点的攻击——那一年正在被积极利用的漏洞,名称如FREAK和Logjam。位于投票者和服务器之间的网络攻击者可能会操纵选票并破坏选票隐私。他们还发现iVote的基于电话的投票验证服务——该功能被设计为让投票者确认他们的选票——本身也容易被操纵。
当局的选前安全审查已经清除了该系统。研究人员在实时选举中发现了这些问题,此时已经有四分之一百万张选票被投入。投票仍在进行中时部署了修复。
同行评审分析在2015年E-Vote-ID会议上发表。新南威尔士州选举委员会对风险范围提出异议,就像当局通常做的那样。
注意验证机制实际上是什么:一项可以被破解的电话服务。这是收据问题最具体的形式。你无法通过查询可能已经改变了选票的同一系统来验证你的选票是否被正确记录。 由被破坏系统生成的任何收据都是一个谎言的收据,而不是真相的收据。唯一有意义的验证是由能够检查机制而不是机制输出的独立方进行的验证。
证明中的后门
回到2019年的瑞士。使那个案例如此具有澄清意义的不是系统以明显的方式被破坏。它被破坏的方式在数学上与正确无法区分。
研究人员——Lewis、Pereira和Teague——发现该系统的混合网络对其混合证明使用了后门承诺方案。混合网络是互联网投票系统试图保护匿名性的方式:选票通过多个阶段进行混合,以至于输入和输出无法链接。该系统随后生成一个密码证明,证明混合是诚实进行的,没有选票被改变。
证明通过了验证。数学检查无误。后门意味着知道后门值的内部人士可以生成一个看起来完全有效的证明来进行一次改变了选票的混合。
这不是理论弱点。这就是"通用可验证性"在一个为具有约束力的全国公投安排的系统中的样子。发表的分析迫使瑞士邮政和Scytl承认该缺陷并暂停该系统。
这一事件让你看到了收据问题最难的版本。因为即使我们搁置卖票问题——即使我们想象一个世界,其中收据不会被用来强制任何人——收据本身可能是一个从未发生的计数的证明,投票者无法知道区别。 密码学的"你可以自己检查的证明"结果需要数学博士学位才能识别为假。
德国联邦宪法法院在2009年禁止了电子投票计算机,其内部工作只有专家才能评估:投票和确定结果的必要步骤必须能由普通公民审查,无需专业知识。一个通过验证同时隐藏改变的选票的密码证明正是这一标准旨在排除的。
爱沙尼亚:一个国家信任的系统,以及研究人员实际发现的
爱沙尼亚是最常被引用作为互联网投票可行证明的国家。它自2005年以来一直运行国家i-投票系统。数百万爱沙尼亚人使用过它。它确实是开创性的。
2014年,一个独立研究团队——Springall、Finkbeiner、Durumeric、Kitcat、Hursti、MacAlpine和Halderman——观察了该系统在2013年10月市政选举期间的运行,并检查了其发表的客户端软件和服务器配置。他们发现了严重的操作和程序安全弱点:官方视频中记录的松散做法、软件架构中的差距,以及一个资源充足的攻击者——或不诚实的内部人士——可能会在不被发现的情况下合理地破坏选票完整性或投票者隐私的结论。
他们的ACM CCS 2014论文建议爱沙尼亚停止使用该系统。爱沙尼亚选举当局对结论提出异议。该系统仍在运行。
这种争议本身就是重点。两个有资格和访问权限的方对同一系统是否安全达到了相反的结论。在纸质选票系统中,这种辩论可以解决:打开封印的盒子,再数一次选票,对比。在具有强匿名性特征的互联网投票系统中,"再数一次"这一步不存在。没有选票堆可以重新计数。只有软件的输出,以及你是否信任它的问题。
挪威在2011年和2013年尝试了互联网投票。试验在2014年被中止,原因是发现投票率没有增加,且无法确保信任选票未被改变。便利性论证——任何人提议互联网投票的主要原因——在实证中并未成立。可验证性论证为同样的原因而崩溃:你无法独立审计不存在的东西。
真实的不对称
你的银行保存一份账本。账本可追溯到你。如果出现问题,你可以将你的记录与银行的记录与仲裁者的记录进行对比。保管链从交易直接延伸到你的名字。
选票计数系统的运行方向恰恰相反。选票必须在被计数之前永久从投票者的身份中分离。保管链从封印盒子运行到计票,投票者的名字在计数室里无处可寻。
这两个要求——对计数内容的独立验证和投票人投票内容的永久不可追踪性——相互推动,其力度是迄今为止没有任何软件架构能够消除的。
基于纸张的系统达成了不完美的休战:物理选票是投票者验证的记录,私下标记,匿名投递,存放在封印盒子中,任何能看纸张的人都可以计数。荷兰政府2007年Korthals Altes委员会称之为"有信心的投票"——然后建议从电子系统回到它,因为纸张就是实践中透明度和可检查性的样子。荷兰自那以后一直使用手工计数纸。
互联网投票系统还未找到休战。证明你的选票被计算的收据也是证明你如何投票的收据。证明没有选票被改变的证明要么依赖于大多数投票者无法评估的密码学——或者,如瑞士发现的,可以被拥有投票者永远不会拥有的数学知识的内部人士伪造。
这里的反派不是供应商、政党或政府。反派是不可能的要求:证明计数而不证明投票者。 这是没有任何软件解决的问题,这就是为什么银行比喻在根本上失败。
什么会真正使这个可检查
这不是一个关于互联网投票永远无法改进的论证。这是一个关于"改进"必须意味着什么的论证。
瑞士案例表明发布源代码是必要但不充分的——代码是公开的,缺陷仍然需要三名密码学家才能找到。新南威尔士案例表明选前认证是不充分的——缺陷在选举期间由认证流程未包括的局外人发现。D.C.案例表明对抗性测试有效,但仅当测试在真实选票处于风险之前运行,且仅当司法管辖区愿意在测试失败时杀死系统。
爱沙尼亚案例表明,即使存在争议的专家意见也无法以纸张重计能够解决的方式解决。瑞士案例表明"可验证的"证明可以是虚构的证明。
什么会使互联网投票真正可检查——由除供应商、当局或受薪密码学家以外的人检查——至少需要:受持续对抗性审查的已发布源代码;证明包含而不证明选择的密码收据,针对任何投票者都能查询的公共公告板进行验证;以及一个不依赖于它审计的同一系统的独立审计机制。研究人员正在致力于这些特性。今天在任何在对抗性审查中生存而未发现严重缺陷的已部署国家系统中都不存在它们。
在他们出现之前,银行比喻对于完全错误的原因是有启发性的。你的银行能给你一张收据因为你的交易从未打算是秘密的。你的选票是。这是一个特性,而不是一个缺陷——这就是在线投票为什么看起来那么难的原因。
什么仍然不能独立验证:今天运行中的任何现场互联网投票系统是否能够在不被发现的情况下承受资源充足的内部攻击。已由独立研究人员分析的系统——爱沙尼亚、新南威尔士、D.C.、瑞士——各自产生了当局争议或修补的发现。没有国家互联网投票系统经历过持续、开放、对抗性测试,这将让普通公民——不是密码学家,不是政府官员——确认计数是否正确。
什么会使其可检查:强制性的公共源代码发布、独立运营的公共公告板、持续的对抗性红队访问,以及不通过被审计系统的审计程序。这些是值得要求的标准。
资源
- Lewis、Pereira、Teague — 《这不是一个证明》(瑞士邮政/Scytl后门),2019
- Wolchok、Wustrow、Halderman、Prasad — 攻击华盛顿特区互联网投票系统,金融密码学2012
- Halderman、Teague — 新南威尔士州iVote系统:实时在线选举中的安全故障和验证缺陷(arXiv:1504.05646)
- Springall等 — 爱沙尼亚互联网投票系统的安全分析,ACM CCS 2014
- 挪威地方政府和现代化部 — 互联网投票试验(通过互联网档案)
- 联邦宪法法院,2009年3月3日判决书,2 BvC 3/07和2 BvC 4/07(英文翻译)
- 选举程序设置咨询委员会(Korthals Altes委员会),《有信心的投票》,2007年9月27日
- 美国第一巡回上诉法院 — Rideout诉Gardner案,15-2021号(2016年9月28日)
- 澳大利亚选举委员会 — 投票和秘密投票的简史
- 英国主要立法 — 1872年《投票法》