Voatz移动投票平台全面安全评估报告 - 技术漏洞与修复建议

本文详细披露了Trail of Bits对Voatz移动投票平台的首个白盒安全评估结果,包含79项技术发现,涉及密码学误用、数据暴露等高风险漏洞,并提供了修复建议与系统架构改进方案。

为什么Voatz值得关注

移动投票的承诺极具吸引力——为残障人士提供更好的可访问性、简化缺席投票流程、为所有选民提供快速便捷的体验。如果移动平台能确保投票安全,将彻底改变选举流程。这是个宏伟目标,但仍有大量工作待完成。

Voatz已在美国西弗吉尼亚州、科罗拉多州丹佛市等地进行了试点。据其官方FAQ,自2016年6月以来,该平台已在50多场选举中处理了超过8万张选票。

Trail of Bits介入调查

2019年12月,我们受Voatz及资助方Tusk Philanthropies委托,对该平台进行了迄今最全面的安全评估。我们审查了超过168,000行源代码(约2,100个文件),发现系统异常复杂,其自定义代码量比我们评估过的同类移动投票系统多出一个数量级。

核心发现亮点

我们的安全报告分为两卷:

  1. 技术发现(卷一)
  2. 包含架构与运营问题的威胁模型(卷二)

共发现79个问题:

  • 48个技术问题
  • 31个威胁模型问题
  • 三分之一为高风险,三分之一中风险,其余为低风险/未确定/信息类问题

高风险问题涉及:

  • 密码学问题:不当使用加密算法及临时加密协议
  • 数据暴露:开发人员可访问敏感凭证,攻击者可获取个人身份信息
  • 数据验证:过度依赖客户端提供的未验证数据
  • 审计缺陷:无法追踪管理员操作指令
  • 配置管理:缺乏基线配置和安全影响分析

修复进展

截至2020年2月26日:

  • 已完全修复8个问题
  • 部分修复6个问题
  • 34个技术问题尚未解决

完整修复日志详见技术报告附录E,Voatz在3月11日更新了额外修复计划。

系统现状分析

Voatz代码在软件工程原则方面表现良好,避免了常见安全陷阱(如不安全的随机数生成、HTTP GET信息泄漏等)。但明显存在快速开发遗留问题:

  • 缺乏测试覆盖和文档
  • 特定选举逻辑硬编码在前后端
  • 手动配置基础设施,未采用基础设施即代码工具
  • 密码学协议非标准化(TOB-VOATZ-012)
  • Android/iOS未使用最新安全特性(TOB-VOATZ-034/042)
  • Git仓库存储敏感API凭证(TOB-VOATZ-001)

后续建议

我们建议选举官员应资助合格的公开评审,并要求报告以非技术语言描述问题与解决方案。当前仍有许多工作待完成以提升系统安全性,我们愿意继续协助Voatz修复问题。

在选举安全领域,我们正主动帮助企业将安全知识更早融入开发流程。如需选举安全支持(包括密码学、区块链和技术安全专家),欢迎联系我们。

(报告全文包含对MIT等五份先前评估的独立分析,以及针对《关于Voatz的未知问题》论文的具体解答)

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计