事件回溯

近日,美国爱荷华州召开了民主党总统候选人初选大会。过往,都是用纸质投票的方式进行,这次希望采用一款名为“IowaReporterApp”的电子计票应用程序,该程序最初被认为可在投票 2 小时后快速公布结果。但是,这款应用程序在使用时发生故障,导致大规模混乱,直到第二天还未能公布结果。

ÉãͼÍø_501177980_banner (2)_wps图片.jpg

该应用程序由 Shadow 公司开发,前后花费了四个月时间,成本为 63182 美元(约合人民币 44 万元),基于 React Native 构建。这家公司还曾替政府建过网站、设计数字营销活动或打造各种工具。据专家称,IowaReporterApp 应该有如下基本功能:

  • 当选区主席用选区识别码(PIN 码)经过双重认证登陆到 App 后,就会浏览到关于如何进行初选的基本信息。

  • 选区主席需要输入参与初选的总人数;

  • 选区主席需要分别输入第一轮和第二轮初选投票总数。App 会计算出每个候选人应该获得多少代表名额。随后,App 会计算出每个候选人应该获得多少选票。

据外媒报道,Shadow 在 1 月中旬就曾邀请人员测试过该程序,但必须通过 Android 的程序测试平台 TestFairy 来下载 App,一家媒体在两支 Android 手机上下载及安装了 IowaReporterApp,但只有一支手机上的可正常启动。Shadow 也在苹果的测试平台 TestFlight 上部署了该程序,但很多人反馈下载或安装该程序都很困难。

花40多万开发的App扰乱了一场大选,几乎毁了一家公司

有趣的是,美国公共广播电台(NPR)曾质疑通过全新的 App 进行选举的方式可能会暴露公众隐私,当时民主党不愿揭露 IowaReporterApp 的安全机制设计,担心公布相关细节反而会让黑客有机可趁。如今看来,IowaReporterApp 在很多方面的表现都很差。

问题出在哪?

公司体量小、缺乏经验

这不是第一次将移动应用程序用于选举中,以前之所以没有引发太多关注,是因为一切都运行良好,实际上,2016 年的选举中就曾使用过具有类似功能的移动应用程序。

2016 年为选举提供 App 服务的公司联合创始人兼联合 CEO Rodney Guzman 说道:

“当我目睹这一切发生时,简直像做了一场噩梦。这个工作如果由我们来完成就不会发生这种事。”

2016 年,这项工作是由微软外包商 InterKnowlogy 公司完成的,InterKnowlogy 公司基于微软技术为选举构建 App 和其他数字化基础设施。InterKnowlogy 在应用程序开发方面拥有近二十年的经验。相比之下,2020 年初选的应用程序是由一家名不见经传的新公司 Shadow 打造的,该公司以前从未接触过如此大规模的需求。

构建过于匆忙

2016 年 App 和 2020 年 App 其实很相似,虽然功能并不复杂,但同一个 App 的多个版本需要服务于不同的设备和系统。更重要的是,这些版本在首次使用时就要表现出完美的性能,没有时间去做更新和改进。

由于 2020 年 App 供应商不像之前的团队那么经验丰富,并且有足够的资金和人力支持。据了解,2016 年的 App 构建筹备了约一年时间,前三个月进行产品设计,与需求方会面,对 App 的可用性不断研磨,而这三个月初期设计阶段差不多赶上了 Shadow 整个产品构建周期。

花40多万开发的App扰乱了一场大选,几乎毁了一家公司

对于外界质疑的该款 App 到底花了多长时间来构建这一问题,Shadow 首席执行官 Gerard Niemira 表示,“我们从 8 月开始接洽,并自那时起开始收集需求并着手设计,因此 App 的构建周期基本上是从 2019 年 8 月到 12 月。因为收集需求耗费了比较长的时间,所以直到交付期临近时才有了最终版本。”

根据国家记录显示,该 App 是在几个月内构建的,成本为 63182 美元,对于应用在如此重要场合的一款 App 来说,四个多月的构建周期真的不算长。

“我作为一名工程师,听到这种消息感觉有点疯狂,”InterKnowlogy 软件工程师 Michael Gramley 说道。“我们不能在两三个月内建立一个稳定的平台。因为我们需要花费大量时间来测试所有内容。如果真有人这么做了,那最终失败的可能性非常大。”

缺乏训练和测试

在故障发生后,请来了 6 位网络安全和应用开发专家来对 App 进行分析。

Android 资深开发人员 Kasra Rahjerdi 表示,该应用程序包含默认的 React Native 元数据,并且“只在原有的框架上添加了自己的代码”。换句话说,该 App 就像一个不会编码的人机械地按照教程完成构建。Rahjerdi 表示,他们从初级入门包开始操作,只是在入门包上添加了一些东西。我甚至有一种感觉,觉得这个就像是通过谷歌搜索操作说明,然后一步步根据操作说明构建的 App。

Shadow 首席执行官 Gerard Niemira 在接受媒体采访时表示,该应用程序设计很简单。他称这种 App 不需要过于复杂,只需要帮助选区主席做数学运算,并以最快的速度获得票选结果,这是一个相对简单的 App,原理就像计算器一样。此款 App 是可靠的,来自该 App 上的的数据是可靠的,在 App 上完成的数学运算也是可靠的,我们在 App 上收集到的所有结果都是正确的,并且已经得到验证。

花40多万开发的App扰乱了一场大选,几乎毁了一家公司

Gerard Niemira 的言外之意是:

数据和结果都是正确的,只是,速度慢了不少。

然,这款 app 的设计初衷,恰恰是为了提高投票结果的统计效率。

除了处理数据的速度不尽如人意外,在被问及 App 的安全性测试时,Niemira 解释道,我无法透露进行安全性测试公司的名字,但我们确实进行了独立审核。该审核时某些配置项的确出现了问题,但是我们已经在初选前将这些配置项进行了很好地修复。

最终结果

最后,该州在一份声明中称:选举数据和结果已经从 App 中导出,并且正在通过纸质记录进行核实。主席 Tom Perez 表示,该应用程序不会在任何初选或预审中再次使用。目前,该 App 的整个后端已经关闭,无法通过它或从公司服务器访问任何信息。App 出现故障次日,美国国土安全部表示愿意帮助分析该款 App 的安全性,但该提议被拒绝。

结语

63182 美元的生意哪怕对于一个体量如 Shadow 的公司来说也不算是笔大买卖。但是,这笔生意的背后却潜藏着巨大的利润空间和机遇。Shadow 公司如果能为这次合作做好充足的准备,引起足够的重视,那么未来的发展将不可小觑。

(文章来源:InfoQ)