为什么Voatz值得关注
移动投票的承诺极具吸引力——为残障人士提供更好的可访问性、简化缺席投票流程、为所有选民提供快速便捷的体验。如果移动平台能确保投票安全,将彻底改变选举流程。这是个宏伟目标,但仍有大量工作待完成。
Voatz已在美国西弗吉尼亚州、科罗拉多州丹佛市等地进行了试点。据其官方FAQ,自2016年6月以来,该平台已在50多场选举中处理了超过8万张选票。
Trail of Bits介入调查
2019年12月,我们受Voatz及资助方Tusk Philanthropies委托,对该平台进行了迄今最全面的安全评估。我们审查了超过168,000行源代码(约2,100个文件),发现系统异常复杂,其自定义代码量比我们评估过的同类移动投票系统多出一个数量级。
核心发现亮点
我们的安全报告分为两卷:
- 技术发现(卷一)
- 包含架构与运营问题的威胁模型(卷二)
共发现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的未知问题》论文的具体解答)