配置选举网站以防止 MITM 攻击

信息安全 tls 网络服务器 硬化 配置 政府
2021-08-24 14:35:08

考虑一个将用于在 Internet 上投票的选举网站。这样一个网站的管理员应该采取什么步骤来提供足够的安全性来防止中间人攻击和欺骗网站?任何人都可以建议一个不应忽视的最优先项目清单吗?假设答案涉及 SSL,那么站点应该如何使用 SSL 以及应该如何配置 SSL?

动机:最近,有关哈利法克斯在 2012 年选举中使用网络投票的一些技术细节浮出水面根据公开可用的信息,它们似乎没有达到 SSL 配置的公认做法。但他们应该怎么做?部署基于网络的互联网投票的人们应该确保不要忽视什么,以防御中间人攻击和欺骗攻击?他们应该如何配置 SSL?

我希望这是一个范围狭窄的问题,仅限于 SSL 配置、MITM 攻击和欺骗攻击:与电子投票安全相关的其他问题(如客户端恶意软件、内部威胁、选民身份验证等)超出范围。

2个回答
  • 在站点范围内使用 SSL。启用 SSL (https)。确保任何通过 http 连接的尝试都会立即重定向到 SSL 站点。

  • 遵循公认的最佳实践。请参阅 SSL 实验室的SSL/TLS 部署最佳实践遵循那里的所有建议,包括对所有站点流量使用 SSL、将所有 cookie 标记为安全、避免混合内容、启用 HSTS 和其他建议。

  • 避免使用第三方脚本。避免使用第三方脚本(即从任何其他域下载的任何 Javascript)。避免信任任何其他站点或域。例如,不要使用第三方小部件或分析;不要使用广告;在您自己的服务器上本地托管所有 Javascript。它们呈现出一种风险因素,而在选举背景下,这种风险可能是不必要和不可取的。

  • 购买 EV 证书。花费额外的金额以获得扩展验证 (EV) 证书。这将为用户提供额外的保证。

  • 使用预加载的 HSTS 和公钥固定。 使用 Google Chrome 和 Firefox 注册您的域,以请求将您的域添加到GoogleMozilla 的预加载 HSTS 列表中。这有助于防御 SSL 剥离和中间人攻击,即使对于以前从未访问过您的域的用户(因此没有机会从您的域接收初始 HSTS 信息)也是如此。如果可以的话,也可以使用它们启用预加载的公钥固定。

  • 使用前向安全密码套件。在您的 Web 服务器上配置 SSL,以便为支持相应密码套件的所有客户端启用前向保密。有关如何执行此操作的详细信息,请参阅SSL Labs 的部署前向保密。一般来说,您会在服务器上设置首选密码套件的顺序,以便 ECDHE 是您首选的密码套件;DHE 是您的第二选择;和标准(非前向安全)密码套件的优先级较低。如果服务器的私钥在选举后被泄露,前向保密有助于保护所有早期通信(包括选民投票)的机密性,这在选举环境中似乎很有帮助。

  • 支持 TLS 1.2。确保您支持最新版本的 TLS,以供使用支持这些版本的浏览器的选民使用。并非所有浏览器都支持最新版本的 TLS,但它们增加了对最近对 SSL 的一些攻击的防御。

  • 检查您的网站。部署后,使用SSL Pulse(由 SSL Labs 提供)的 SSL 检查器检查您的 SSL 配置。确保您的成绩为 A。修复 SSL 检查器发现的任何问题。

  • 宣传 https URL。 当您与选民沟通以告诉他们要访问哪个网页进行投票时,请列出完整的 https: URL。例如,告诉选民进入https://www.elections.us他们的浏览器,而不是http://www.elections.uswww.elections.us(最后两个被浏览器同等对待,并且可能容易受到 MITM 攻击)。

针对投票系统的 MITM 攻击的根源是对手提交了欺诈性投票或观察了受害者的投票。正确实施 HTTPS 有助于解决其中一些问题,但 HTTPS 并不是最大的问题。常见漏洞 CSRF、Clickjacking 和 XSS 都可用于影响投票,无论使用 HTTPS。关于点击劫持的一种思考方式是,它是对用户界面MITM 攻击此外,HTTPS 不会验证选举是否受到政府或其他内部威胁的操纵

同质加密可用于构建可验证的选举Helios Voting是加密安全选举系统的一个很好的例子。在这种情况下,即使攻击者利用了选举系统实施中的漏洞,也可以检测到这种操纵。