← 所有文章

最可怕的攻击者已经拥有钥匙

复制乔治亚州整个投票系统的人不是破门而入的黑客——他们是被从正门放进来的,这改变了我们对选举安全的整个思考方式。

2021年1月7日早上,咖啡县乔治亚州选举办公室的门从内部打开了。

一支计算机取证团队走了进来。他们得到了帮助:仍然拥有访问权限的前县官员为他们开门。在随后的几个小时里,他们复制了一切。选举管理系统服务器。投票平板电脑。投票标记设备。扫描仪软件。乔治亚州的Dominion投票系统软件。一切——都被提取出来并从门口带了出去。

没有警报触发。没有锁阻止。没有系统标记正在发生的事情并提醒房间外的任何人。

这一事件现已被记录在联邦Curling诉Raffensperger案的证词中,并出现在后来的富尔顿县起诉书中。与此事相关的几个人已认罪。乔治亚州国务卿办公室将其描述为前县官员违反州法律允许的未授权访问。

但这里有一个问题使安全论证保持诚实:如果同样的事情悄悄发生,没有起诉和民事诉讼,谁会知道?

这个问题没有舒适的答案。而这正是每次选举安全对话都需要从这里开始的问题。


几乎每个人都理解错的威胁模型

当人们担心选举安全时,他们想象的是外部攻击者:另一个国家的黑客、远程入侵、通过互联网传播的恶意软件。这个画面是真实的——我们已经报道过。2006年普林斯顿研究人员将Diebold投票机变成自我传播的窃票病毒的研究始于对机器的物理访问,而不是远程漏洞利用。

但咖啡县的漏洞完全改变了问题的框架。

复制该投票系统的人不是击败周边防御的外部攻击者。他们是周边信任的人——或被周边信任的人放进来的人。阻止外部黑客的安全模型在这种情况下几乎无能为力。

这种情况的正确术语是内部威胁,选举系统对此特别脆弱。 选举办公室通常规模小、由当地管理、由一支与选举周期挂钩的官员组成的轮换队伍。"访问控制"经常只是少数几个人共享的钥匙和密码。受保护的软件通常是专有的——其内部结构不是通过密码设计隐藏,而是由供应商的偏好决定隐藏——这意味着一旦被复制,它可以在远离任何监督的地方进行弱点分析。

真正解决内部人员问题的安全模型是什么样的?咖啡县案例指向了答案,即使它通过显示完全缺失的东西来指向。


"防篡改"的真正含义

系统是防篡改的,如果它记录的任何未授权行为都留下一个痕迹,独立观察者——不是犯了这个行为的人——可以检测到。

这是一个精确的要求。如果同一个可能犯了篡改的人也可以编辑日志,系统记录事件是不够的。如果密封件存在但其监管链仅记录在处理它们的人的文件中,这也是不够的。如果软件是"认证的",但认证机构无法独立验证认证的版本是否真的在运行,这也是不够的。

在咖啡县,复制的软件是专有的——其安全模型依赖于代码保持秘密。一旦它被带出门,那个模型就崩溃了。该系统已被构建为抵抗外部检查;它未被构建为向任何不在内部的人显示内部人士的行为。

保密和透明不是等同的安全策略。保密在一个内部人士合作的那一刻就完全失败了。透明度在这种情况下存活下来,因为记录是公开的,防篡改证据可由任何人检查。

富尔顿县起诉书没有因为投票系统的任何技术特性而发现咖啡县漏洞。它通过诉讼、证词和调查性新闻浮出水面。那不是安全机制。那是运气穿着法律的外衣。


德国首先提出了这个问题——并在法庭上回答了它

2009年,德国联邦宪法法院做了一些在欧洲外应该获得更多关注的事情。

两名公民曾质疑在2005年德国联邦议院选举中使用计算机化Nedap投票机。这些机器仅以电子内存记录选票,没有选民可以独立验证的纸质记录。法院一致裁定——以《基本法》为基础——这是违宪的。

该裁决的逻辑值得仔细阅读。法院主张投票和结果确定的基本步骤必须由公民可靠地、无需专家知识地进行检查。 不是由专家。不是由认证的技术人员。由普通公民。

法院认为,这一要求源自选举公开性的原则——民主合法性不是由当局宣布结果确立,而是由公众能够追踪、观察和验证该结果如何产生的想法。

这些机器之所以失败,是因为它们的内部运作不透明。选民可以按按钮。他们无法确认机器记录了什么。他们无法在事后检查计票与任何他们能亲自审查的东西。结果的可信度只取决于操作机器的人——法院说,这还不够。

注意法院没有说的。它没有说发生了欺诈。它没有说机器故障。它说系统的结构使独立验证不可能,民主不能将其选举建立在公众无法检查的基础上。

阅读完整判决书查看新闻稿

咖啡县是证明德国法院在提出正确问题的美国案例。


肯尼亚进一步推进了这一逻辑——并因此废除了总统选举

2017年9月,肯尼亚最高法院宣布上月举行的总统选举无效。

法院的理由主要不是关于欺诈。是关于可验证性。肯尼亚宪法要求投票是可验证的准确的问责的透明的——不是作为抱负,而是作为其违反使结果无效的法律要求。

法院发现的是从投票站到国家总计的数字链已经断裂。并非所有投票站结果表都按法律要求电子同步传输到国家计票中心。结果表缺乏一致的安全特征。主席在收到所有基础表格前宣布了赢家。

法院宣布了结果无效——不是因为它能证明错误的人赢了,而是因为该过程没有维持防篡改链,这将使任何人能够独立验证谁赢了。

命令进行了新选举。一场被举行了。

肯尼亚案例确立了一些精确的东西:宣布的结果不是验证的结果。验证需要一条监管链——从单个投票站到国家总计——这是有文件记录的、签署的、带时间戳的,并且在每个环节都可以独立检查。当那条链断裂时,其末端的声明在法律和民主上是无效的,无论任何人是否能证明该断裂是故意的。

阅读最高法院判决书


二维码问题:当"纸张"实际上不可验证时

这里是同一差距的一个更微妙的版本,与美国更接近。

Curling诉Raffensperger诉讼中——后来在证词中浮出咖啡县漏洞的同一联邦案例中——美国地方法院审查了乔治亚州的Dominion投票标记设备系统,发现了精确和令人困扰的东西。

这些机器打印纸质选票。该纸质选票包含二维码。制表器扫描二维码记录选票。纸上可读的文本显示候选人的名字——但制表器读取的是二维码,而不是文本。

法院发现该系统"不提供可验证和可审计的选票记录,因为它依赖于用于计票的二维码,而该代码本身选民无法读取和验证"。

想想这意味着什么。对这些选票的重新计票审计的是二维码的输出,而不是选民的意图。如果一个被破坏的系统生成的二维码编码了与打印文本不同的选择——专家证人描述的一个可行的情景——手工计票将忠实地再现篡改,因为人工计票员会扫描机器扫描的相同代码。

阅读法院的意见

法院拒绝在2020年选举前下令紧急救济。但这一发现依然成立:纸质记录的可信度只取决于选民标记的东西、纸张编码的东西和制表器读取的东西之间的链——如果这条链中的任何环节不透明,纸张提供可验证性的外观而不是实质。


CISA"美国历史上最安全"声明实际说的是什么

2020年11月12日,选举基础设施政府协调委员会发布了一份联合声明——在CISA旗帜下——宣布11月3日选举为"美国历史上最安全的"并声称"没有证据表明任何投票系统删除或丧失了选票、改变了选票或以任何方式被破坏"。

这是一个值得仔细阅读、既不驳斥也不盲目接受的主张。

该声明自己的推理很有说明性。它将其信心建立在能够进行重新计票和审计的纸质记录上。这隐含承认安全断言的力量来自独立可验证性——而不是来自提出该主张的权威。根据该声明自己的逻辑,选举是值得信赖的,因为记录可以被检查,而不是因为官员这么说。

阅读完整声明

咖啡县漏洞发生在该声明发表八周后——2021年1月7日,而不是2020年11月3日。该漏洞没有影响投票计数。但它暴露了那些相同的认证、"安全"机器运行的专有软件。它是由拥有内部访问权限的人犯下的。CISA的声明没有机制来防止、检测或标记那个。

这不是一个论证2020年选举被盗的论点。证据——包括乔治亚州手工计票大约五百万张选票,与机器总数一致到千分之一——明确指向另一个方向。它是一个论证**"没有妥协证据"和"独立可验证"不是同一个句子,混淆它们正好是未来选举中的真正妥协如何能够隐藏足够长的时间来制造影响的方式。**


防篡改的架构

那么,真正解决内部威胁的系统是什么样的呢?

德国宪法法院给出了设计要求:普通公民、无需专家知识、独立可验证。肯尼亚最高法院给出了程序要求:一条有签署、带时间戳、公开访问的监管链,从每个投票站到每个宣布的结果。咖啡县漏洞给出了反面案例:隐藏在访问控制后的专有软件,一个合作的内部人士可以完全绕过。

洛杉矶县在构建VSAP时向正确的方向迈进了一步——一个公开拥有的、开源的选票计数系统,2018年被加州认证为该州的第一个。当计票的代码被发布时,独立专家可以检查它。这并不保证完美——实现、监管链和审计程序都仍然重要——但它消除了使咖啡县成为可能的不透明层。加州国务卿的认证是VSAP符合这些标准的公开记录。

巴西最高选举法院走得更远:它在每个选举周期运行一个官方公开安全测试,邀请任何合格的公民在选举前对投票机和相关系统进行漏洞探测。发现的问题被修复。修复被重新检查。该项目不是一次性认证——它是制度化对抗测试,在公开场合运行、有文件记录且可重复。查看TSE的项目页面

两种模式都共享一个设计哲学:用公开可检查的条件"如果不是,这里是你会发现的,以及你如何能看"代替声明"它是安全的"。

那是防篡改的架构。不是信任其占用者的密封房间。是存活任何内部人员变节的已发布记录。


仍然无法验证的东西——以及什么会改变它

咖啡县漏洞没有改变任何选举的结果。相关人士已面临法律后果。该系统应该已被更新。

但这里仍然成立的是:在大多数运行专有投票软件的司法管辖区,独立观察者没有公共机制来确认,选举日之后,运行在选举日的软件是认证版本,并且没有被修改。 监管链密封可以由官员检查。日志可以由官员审查。认证可以由官员引用。所有这些都是房间内人员做出的主张。

一个防篡改系统会在选举前发布软件的密码指纹,源于实际代码在实际机器上运行,并允许任何观察者验证选举后指纹是否与运行的东西匹配。它会在每个投票区关闭时即刻以机器可读的形式发布选区级结果——不是因为速度很重要,而是因为粒度、有时间戳、可下载的数据给独立分析师原材料,在画布认证前检测异常。它会使用选民标记的纸张——而不是机器生成的二维码——作为权威记录,所以任何手工审计读取的是选民选择的东西,而不是机器编码的东西。

这些都不需要相信官员是诚实的。它需要构建系统,其诚实性是可独立演示的——由任何人、无需专家知识。

德国法院在2009年说了这一点。肯尼亚最高法院在2017年执行了它。咖啡县漏洞显示了当设计忽视它时发生的情况。

任何选举系统中最可怕的攻击者是已经拥有钥匙的人。对付那个攻击者的唯一防御是一个公开证明自身完整性的系统——而不是一个要求你相信持钥匙的人的系统。

询问你遇到的每个选举系统的问题:如果一个内部人士与对手合作,独立观察者还能检查什么?如果诚实的答案是"不多",那就是差距。那就是需要修复的。

看这个差距在全球有多普遍——阅读2分钟版本


来源