51、光学扫描投票系统的安全保障与端到端投票系统攻击分析

光学扫描投票系统的安全保障与端到端投票系统攻击分析

1. 光学扫描投票争议解决

在光学扫描投票中,若挑战者(通常是选民)持有选票存根,且认为公告板上的记录有误,可启动争议解决程序。该程序能在保护隐私的前提下,解决选民记录与公告板记录之间的差异。记录不一致通常由以下两种情况导致:
- 选民错误 :选民记录的符号可能与所选候选人配对的符号不同,因为对选民记录的符号没有控制。
- 记录错误 :扫描仪或软件错误可能导致记录的选票不正确,也可能是攻击者更改或篡改了选票,或发生了其他不当行为。

争议解决协议由选举官员和一组挑战者按以下步骤执行:
1. 证明选票存在且未被篡改
- 挑战者出示选票存根。
- 官员从每个存根中获取带有序列号的选票,并将其放入隐私套中,该套不显示候选人选择,但显示选票的其他部分,包括存根所在部分和选票背面,还应显示候选人名单,但隐藏选择和符号。
- 挑战者验证选票是否未被修改,并可进行法医分析,以验证选票存根曾与官员出示的选票相连。
2. 显示所选选票字母
- 对于标记相同字母的每张选票,官员将其移至单独的隐私套中,小心隐藏选票上的选择(如让选票背面朝向挑战者)。该套不显示序列号,但显示有争议竞选的选择和符号。然后官员将每张选票放入空的抽奖式漏斗中。
- 标记相同符号的所有选票混合后从漏斗中取出。
- 每个挑战者验证所有选票在所选候选人旁边都有相同的符号。
- 对标记不同符号的所有选票组重复此过程。若选票不足,官员可向漏斗中添加假选票。

所有争议解决后,可认为所选符号的公共记录正确,且没有选票丢失。如有必要,官员会根据更正后的公共记录重新计算结果。不过,当前方法在竞选过长或标记相同符号的选票挑战不足时,可能无法保证选票保密性。寻找更高效、无需物理交互或法医分析的争议解决程序,以及处理手写选票的最佳方法,是未来需要解决的问题。

2. 光学扫描投票系统实现

系统速度很大程度上取决于打孔板的速度,该方法的性能与Punchscan相近。已进行了实现,并在中型和大型选举中进行了测试。在1.73 GHz的笔记本电脑上,能在10分钟内统计100万张选票。以佛罗里达州2000年波尔克县选举的实际统计数据为基准,有32场竞选,每场平均3.2名候选人,能在4分钟内统计20万张选票,并在不到2分钟内审计打孔板。

该实现的完整Java源代码和目标代码可获取,还提供了如何构建和在模拟选举中使用的说明。目标代码可通过Java网络启动协议(JNLP)直接从任何浏览器访问,无需安装实现依赖的加密库或进行其他特定配置。

未来工作包括开发更简单高效的争议解决流程,或通过其他技术减少其需求;制定限制选民领取选票前后对选票访问的程序;解决强制随机化攻击;简化打孔板以提高效率和便于解释,特别是针对不熟悉可验证混合网络或其他匿名网络的人。

3. 光学扫描投票总结

为Punchscan创建了新的前端,有诸多改进。新选票消除了间接性,提高了可用性;印在单张纸上,资源利用更高效,且纸张无孔,可按需打印;填写方式与光学扫描投票相同,这对许多美国选民来说是熟悉的方法。最大优势是可作为附加组件用于许多选举区现有的光学投票系统,无需软件升级,不干扰光学扫描设备的计票,也不排除手动重新计票的选项,为流行的投票系统增加了端到端可验证性,并确保每张选票都被准确统计。

4. 端到端投票系统攻击概述

目前广泛使用的投票系统存在已知漏洞,很多漏洞可通过遵循特定程序缓解,选举的完整性依赖于软件、硬件和选举官员的正确行为。最好的系统基于一小部分选举官员和其他观察员的诚实和正确行为提供安全保障。

近年来提出了一种新的投票系统,即端到端(E2E)投票系统。选民与投票系统交互获取收据,该收据可与投票系统发布的一组收据进行核对。这些发布的收据可用于生成或验证投票系统的报告计数,但不能用于卖票。E2E投票系统能让选民在很大程度上确信自己的投票已正确投出并计入最终计数,但还需其他手段确保整个选举结果正确。

5. 攻击投票系统的动机与方式

攻击投票系统的人通常想影响选举结果,因为选举涉及对大量政府资源的控制,从美国公开报道的游说和竞选花费可推断其利益巨大。改变选举结果的方式有:
- 更改记录的选票或报告的总数。
- 了解每个选民的选择,以便贿赂或胁迫选民按期望方式投票。
- 破坏选举的有序进行,可能延迟攻击者不希望的结果,或迫使重新选举,可能改变结果。即使无法改变选举结果,侵犯选民隐私和破坏选举对攻击者也可能有一定吸引力,但这些攻击的影响较小。

6. 端到端投票系统背景

E2E投票系统旨在让选民无需信任选举官员或选票的保管链,就能验证选举的公正性。其独特之处在于选民能从投票到计票全过程验证选举。大多数方案通过特殊方式编码选民选择,编码后的选票张贴在公共公告板上,每个选民会得到一张投票收据,该收据可用于验证公告板上的编码选票,但不显示选民的投票内容。此外,E2E投票方案还能让选民确保投出的选票被正确计数,通常是通过证明公告板上的每张加密选票都被正确解密,任何人都可通过重新计算解密后的选票来验证最终计票结果。

E2E投票方案可分为前端和后端:
- 前端 :描述选民与投票系统直接交互以投票并获取收据的过程,通常包括选票、收据和公告板。选民通过与前端交互,确保投票系统正常运行,常依赖审计员或工具验证投票协议的某些部分。
- 后端 :包括投票系统的公共声明(如张贴在公告板上的收据和声称的投票总数),以及用于向选民和其他观察员证明报告的选举结果与公共声明一致的机制。本文讨论的攻击主要集中在前端,涉及向选民提供误导信息,导致选票被错误计数,或为选民提供与投票方案前端特定的交互方式,以鼓励或胁迫特定投票。

以下是E2E投票系统前端与后端的简单示意图:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(选民):::process -->|投票并获取收据| B(前端: 选票、收据、公告板):::process
    B -->|公共声明| C(后端: 加密、解密、洗牌、审计):::process
    C -->|报告结果| D(选民和观察员):::process

在后续内容中,将详细分析对几种具体E2E投票系统的攻击方式。

光学扫描投票系统的安全保障与端到端投票系统攻击分析

7. 对具体端到端投票系统的攻击分析
7.1 Punchscan和Prêt-à-voter
  • 误印攻击 :这种攻击可误导许多选民,使他们认为自己拥有的收据对应着与实际投票不同的选择,从而改变选举结果。不过,可通过对印刷选票进行特殊审计来缓解此问题,但这种审计需要选民信任少数选举观察员来确保选举的公正性。
  • 选票买卖或胁迫机制 :可使用刮刮卡、手机或其他技术来可靠地买卖或胁迫选民投票。
7.2 Prêt-à-voter
  • 已知但未发表的手法攻击 :存在一种手法攻击可用于买卖选票。
7.3 ThreeBallot
  • 随机填充选票时的激励机制 :当三张选票由某些投票机随机填充时,可提供一种经济激励,促使选民按期望方式投票。
  • 手动填写选票时的选票买卖技术 :使用链式投票的变体,在手动填写选票时能够实现选票买卖。

以下是对这三种E2E投票系统攻击方式的总结表格:
| 投票系统 | 攻击方式 | 具体描述 |
| ---- | ---- | ---- |
| Punchscan和Prêt-à-voter | 误印攻击 | 误导选民,通过特殊审计缓解 |
| Punchscan和Prêt-à-voter | 选票买卖或胁迫机制 | 使用刮刮卡、手机等技术 |
| Prêt-à-voter | 手法攻击 | 已知但未发表的攻击方式 |
| ThreeBallot | 随机填充选票时的激励机制 | 提供经济激励促使选民按期望投票 |
| ThreeBallot | 手动填写选票时的选票买卖技术 | 使用链式投票变体 |

8. 端到端投票系统的通用攻击及框架

除了针对特定E2E投票系统的攻击,还存在一些通用的攻击类别,同时也提供了一个用于选票买卖和胁迫攻击的框架。虽然这些攻击是针对特定E2E系统的,但背后的一般思想可以广泛应用。

以下是一个简单的攻击框架流程图:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(攻击者):::process -->|选择攻击方式| B(针对前端的攻击):::process
    B -->|影响选民| C(改变选举结果或侵犯隐私):::process
9. 总结与思考

从上述分析可以看出,光学扫描投票系统在不断改进和完善,为选举的公正性和可验证性提供了一定保障。然而,端到端投票系统虽然具有创新性,但也面临着各种攻击的威胁。无论是误印攻击、选票买卖还是其他通用攻击,都可能对选举结果产生严重影响。

为了提高投票系统的安全性,需要在多个方面进行努力。一方面,对于光学扫描投票系统,要继续优化争议解决程序,寻找更高效的方法,同时加强对选票印刷和管理的审计。另一方面,对于端到端投票系统,要深入研究各种攻击方式,开发相应的防御机制,确保选民的隐私和选举的公正性。此外,还需要提高选民和选举工作人员的安全意识,让他们能够识别和防范可能的攻击。

在未来的选举技术发展中,安全性将始终是一个核心问题。只有不断改进和完善投票系统,才能确保选举的公平、公正和透明,维护民主制度的正常运行。

Delphi 12.3 作为一款面向 Windows 平台的集成开发环境,由 Embarcadero Technologies 负责其持续演进。该环境以 Object Pascal 语言为核心,并依托 Visual Component Library(VCL)框架,广泛应用于各类桌面软件、数据库系统及企业级解决方案的开发。在此生态中,Excel4Delphi 作为一个重要的社区开源项目,致力于搭建 Delphi Microsoft Excel 之间的高效桥梁,使开发者能够在自研程序中直接调用 Excel 的文档处理、工作表管理、单元格操作及宏执行等功能。 该项目以库文件组件包的形式提供,开发者将其集成至 Delphi 工程后,即可通过封装良好的接口实现对 Excel 的编程控制。具体功能涵盖创建编辑工作簿、格式化单元格、批量导入导出数据,乃至执行内置公式宏指令等高级操作。这一机制显著降低了在财务分析、报表自动生成、数据整理等场景中实现 Excel 功能集成的技术门槛,使开发者无需深入掌握 COM 编程或 Excel 底层 API 即可完成复杂任务。 使用 Excel4Delphi 需具备基础的 Delphi 编程知识,并对 Excel 对象模型有一定理解。实践中需注意不同 Excel 版本间的兼容性,并严格遵循项目文档进行环境配置依赖部署。此外,操作过程中应遵循文件访问的最佳实践,例如确保目标文件未被独占锁定,并实施完整的异常处理机制,以防数据损毁或程序意外中断。 该项目的持续维护依赖于 Delphi 开发者社区的集体贡献,通过定期更新以适配新版开发环境 Office 套件,并修复已发现的问题。对于需要深度融合 Excel 功能的 Delphi 应用而言,Excel4Delphi 提供了经过充分测试的可靠代码基础,使开发团队能更专注于业务逻辑用户体验的优化,从而提升整体开发效率软件质量。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值