投票机是计算机。"认证"并不意味着你可以信任它
2004年,爱尔兰花费数百万欧元购买投票机,但从未使用过——因为一个独立委员会无法证明它们能正常工作。"认证"真正意味着什么应该让你感到恐惧。
时间是2004年春天,在都柏林的某个仓库里,7500台投票机还装在箱子里,崭新的、已付款的,永远都不会被使用。
爱尔兰政府花费了大约5400万欧元购置Nedap/Powervote电子投票和计票系统。它已经过测试。它已经被相关部门批准。从各个常规标准来看,它已经准备好了。
然后一个独立的电子投票委员会仔细查看了一下——并表示它无法推荐该系统投入使用。
不是因为它发现了机器会失灵的证据。不是因为它发现了欺诈或破坏。委员会的结论比两者都更令人担忧:它发现它无法确信该系统在现有形式下的准确性和保密性。这些机器尚未被证明能够在独立审查人员的满意度上正常工作。因此,一个民主政府的默认立场——正确的立场——是:不要使用它们。
这些机器在仓库里放了五年,并在2009年正式报废,给公众造成了额外的成本。爱尔兰回到了纸质投票。
这就是认证本应阻止的故事。但它没有。
"认证"真正意味着什么
以下是美国投票机获得认证时发生的情况。
制造商向一家获得认证的测试实验室提交其系统——这是一小部分被美国选举援助委员会(EAC)批准的私营公司之一。该实验室根据一套联邦标准(自愿投票系统指南,或VVSG)对系统进行测试。如果通过,EAC会将其添加到认证系统列表中。各州随后可以批准其使用。
测试是真实的。实验室拥有相应资格。标准有实质内容。
但有一个陷阱,大到足以把那些爱尔兰投票机停在里面。
认证是一个快照。 它反映的是实验室测试那一天软件正在做什么。它不能——也不可能——保证选举日运行的软件与实验室检查的软件相同。它不会跟随机器走出门,经过供应链,进入仓库,上车,然后进入投票地点。它测试的是一个版本。它不认证一个活生生的、已部署的系统。
美国政府问责办公室在2005年用通俗的语言说明了这一点:联邦改进电子投票系统安全性和可靠性的努力正在进行中,但关键活动仍未完成。在触发联邦改革的危机发生多年后,实际确保安全的机制仍在建立中。标准和认证只有在存在并得到执行时才有意义——在此之前,"我们使用认证系统"是一个背后没有完整操作检查的声明。
声明与现实之间的这个差距就是本文讨论的威胁模型。
普林斯顿实验:一分钟,无法检测
2006年,三位普林斯顿研究人员——Ariel Feldman、J. Alex Halderman和Edward Felten——获得了一台真实的Diebold AccuVote-TS触屏投票机。这是一台认证的机器,当时美国部署最广泛的机器之一。
他们不需要几个月。他们不需要民族国家级别的预算。他们只需要大约六十秒的物理接触。
在这段时间内,攻击者可以在机器上安装恶意代码——代码会窃取选票,同时改变所有记录、日志和计数器以保持内部一致。机器会报告清洁。日志会报告清洁。总数会加起来。而选票会是错误的。
更令人担忧的是:他们构建了一个工作的投票机病毒。代码在普通选举活动中自动从一台机器传播到另一台机器——这是每个司法管辖区在每个选举日都会发生的日常内存卡交换。一台被感染的机器。一张卡。一条链。
AccuVote-TS通过了认证。它已经被一个测试实验室评估过。它已经被批准在影响数百万美国人的选举中使用。
这些都没有阻止普林斯顿的演示。因为认证测试的是软件应该做什么——而不是攻击者是否可以用其他东西替换它。
这是有区别的地方。实验室根据功能要求检查系统是否符合规范。它不是在上演对抗性攻击。它不是在问:在这台机器到达投票地点之前,一个有六十秒的积极进攻者能对这台机器做什么?这些是不同的问题,认证过程不是——现在仍然大多不是——设计来回答它们的。
"源代码保密"中的秘密
现在再添加一层。
这些机器内的软件是专有的。供应商的商业秘密。你看不到它。测试实验室可以看到它——在保密协议下。EAC可以接收一份副本用于其存储库。但公众、候选人、政党、可能会发现实验室遗漏的东西的独立安全研究人员:他们都看不到在计算他们选票的机器上实际运行的东西。
这不是假想的偏执。这是一个有文档记载的问题,具有有文档记载的后果。
2021年1月,一家计算机取证公司走进乔治亚州咖啡郡选举办公室,复制了整个投票系统——选举管理系统服务器、投票板、标记选票的设备、扫描仪软件、乔治亚州的全州Dominion系统。全部。乔治亚州务卿办公室后来将其描述为前郡官员允许的未授权访问,违反了州法律。该事件在Curling v. Raffensperger的联邦法院证词中有记录,并在富尔顿郡起诉中出现;几个相关人员后来认罪。
咖啡郡事件关于保密源代码作为安全策略所说的是:一小群人获得房间物理接触的那一刻它就失败了。
专有软件不是由其复杂性或卓越性保护的。它是由物理安全和法律协议保护的。当这些失败时——在咖啡郡,它们完全失败了——代码就出来了。攻击面暴露给了获得它的任何人,无论他们把它带到哪里。
保密即安全和可验证性即安全不是同一回事。事实上,它们是相反的。为保密而设计的系统在秘密泄露时变得更危险。为可验证性而设计的系统在更多人检查它时变得更可信。
德国宪法标准——以及为什么它对你很重要
2009年,德国联邦宪法法院做了一件非凡的事情。它没有等待被证明的攻击。它在原则上做出了裁决:电子投票机的操作如果不能被普通公民独立验证——不需要专业知识——违反了选举公开性的宪法原则。
法院发现这一要求来自《基本法》对民主合法性的保证。选举必须是公开可检查的。不是由保密协议下的专家检查。不是由测试实验室在特定一天检查。由公民检查。
Nedap机器德国使用过的机器仅在电子记忆中记录选票,没有选民可以检查的独立可验证记录。它们失败了。授权它们的条例被裁定违宪。德国回到了纸质投票。
法院没有要求证明机器已被篡改。它认为一个其正确性依赖于信任隐藏软件的系统,无论是否曾被证明篡改,都无法通过公开可验证性测试。
再读一遍。不是"我们发现了欺诈"。不是"我们发现了一个错误"。该系统失败是因为它不能被独立检查。仅此一点就是违宪的。
这是一个比任何美国认证流程目前执行的更高的标准。而且这是正确的标准。
爱尔兰委员会所理解的
回到都柏林一会儿。爱尔兰电子投票委员会的结论并不戏剧性。它是仔细的、精确的,和毁灭性的。
委员会强调其结论不是系统不能工作的发现——它是一个发现,即它尚未被证明,根据委员会的满意度,它会工作。它无法确信该系统在现有形式下的准确性和保密性。
这个表述很重要。负担证明,委员会认为,在于那些部署系统的人。供应商说"它有效"是不够的。测试实验室说"它通过"是不够的。独立审查人员必须能够通过检查确认它是准确的,并且它保护了选票秘密。
那位审查人员不能。所以这些机器从未在真正的选举中运行。
爱尔兰的默认——当你无法独立验证时,你就不部署——是正确的默认。它与认证戏剧的默认相反,后者是:如果它通过了实验室,它就被认证了,如果它被认证了,它就可以被信任。
认证是一个声明。可验证性是证据。这些不是同一回事。
解决办法:什么是"独立可验证"实际上需要的
那么一个真正可验证的投票系统会是什么样的呢?三件事,都不需要公众信任任何单一机构。
公开源代码。 计算选票的软件必须是任何人都可以读的。不是由保密协议下的实验室读取的。由独立密码学家、安全研究人员和记者阅读。洛杉矶县的VSAP系统,在2018年认证,是加州首个认证的开源选票计数系统——意味着计数选票的代码原则上可以被任何人检查。这是一个基线,不是终点线。
可重现的构建。 仅公开源代码是不充分的。你还需要能够确认在机器上运行的二进制文件——实际的可执行代码,做计数的东西——是从已发布的源生成的,仅此而已。这是密码学家所说的可重现构建:给定相同的源,你应该总是得到相同的二进制文件,所以任何人都可以验证部署的内容与发布的内容相匹配。没有这个,供应商可以发布干净的源代码并编译不同的东西。
密码学证明。 在选举日运行的机器应该产生一个可验证的记录——签名的、带时间戳的、防篡改的——它链接运行中的软件到已发布的、可检查的版本。不是一个可以悄悄重新打印的纸质日志。一个独立方可以在事后检查而不需要信任供应商、司法管辖区或测试实验室的密码学链。
这三个属性加在一起将"相信我"转换为"自己检查"。它们不是奇异的。它们是安全关键软件在其他高风险领域中的处理方式。瑞士案例从另一个方向说明了这一点:2019年,当瑞士邮政发布其互联网投票系统的源代码供公众审查时,独立研究人员立即发现了一个密码学陷阱——一个缺陷,会让内部人士生成一个通过验证的混洗证明记录同时实际上改变了选票。该系统被暂停以进行修复。该缺陷在认证的黑盒中是不可见的。它在代码公开的那一刻变得可以找到。
这就是整个论证。开放性抓住了认证遗漏的东西。
保持开放的问题
以下是目前没有官方声明、实验室认证或"审计确认结果"新闻稿可以回答的,对于大多数美国司法管辖区的机器:
在投票地点的机器上运行的软件是否与测试实验室检查的软件相同?
没有密码学监管链让独立方回答这个问题。没有可重现的构建流程让你检查。信任链经过供应商、州和测试实验室——一旦机器离开仓库,他们对其都看不见。
美国网络安全和基础设施安全局(CISA)2020年选举后的联合声明声称存在"没有证据表明任何投票系统删除或丢失选票、改变选票或以任何方式被破坏。"该声明也明确地基于纸质记录的存在,使独立重新计票和审计成为可能。仔细阅读:官员们自己的保证的力量来自纸张所提供的可验证性——而不是在此之前的认证。
即使最强的官方"它是安全的"声明也隐含地承认信任来自可检查的证据。
爱尔兰委员会在2004年理解了这一点。德国宪法法院在2009年将其载入法令。瑞士在2019年从其自己的密码学家那里学到了它。
对于仍在运行专有、封闭、认证并部署的投票软件的每个司法管辖区,问题不是它是否通过了实验室。而是供应商墙外的任何人是否能够独立确认什么实际上正在运行,现在,在将计算你的选票的机器上。
直到答案是肯定的——可验证地、密码学地、由任何合格的独立方,而不是官方保证——"认证"是一个快照,而不是保证。
这就是TrustVoting旨在改变的。
来源
- 电子投票委员会——关于所选电子投票系统的保密性、准确性和测试的中期报告(爱尔兰,2004年)
- Feldman、Halderman和Felten——Diebold AccuVote-TS投票机的安全分析(USENIX/EVT,2006年)
- GAO-05-956——选举:联邦改进电子投票系统安全性和可靠性的工作正在进行中,但关键活动需要完成(2005年)
- Bundesverfassungsgericht——2009年3月3日的判决,2 BvC 3/07和2 BvC 4/07(英文翻译)
- Bundesverfassungsgericht——新闻稿第19/2009号(英文)
- Lawfare——乔治亚州咖啡郡发生了什么?
- 亚特兰大宪法日报——乔治亚州咖啡郡遭受网络攻击;它也是2021年选举泄露的地点
- 加州州务卿——认证洛杉矶县VSAP计票系统,作为加州首个认证的开源选举技术(2018年)
- Lewis、Pereira、Teague——Ceci n'est pas une preuve(Scytl-SwissPost互联网投票系统中的陷阱承诺,2019年)
- 联合声明,选举基础设施政府协调委员会和部门协调委员会(2020年11月12日)——CISA