探究「民间全民投票计划」电子投票系统

2014-02-14



  2012年,特首选举前的「3.23民间全民投票」受到袭击,电子投票系统(系统)瘫痪令市民相继到实体票站投票。2013年,香港大学民意研究计划(民研计划)正式宣布继续建构全民投票平台,并组成「普及投票资讯科技顾问小组」强化系统。2014年,民研计划受占领中环秘书处委托,于1月1日举行「元旦民间全民投票」。此次投票全程以电子方式进行,视为经强化后的第一次公开测试。本文重点探究系统运作原理,解释系统研发问题,公开让公众参考,希望可以集思广益。

投票渠道
  投票方式分「离站投票」及「到站投票」,两者皆是电子投票。「离站投票」是透过网站或流动应用程式投票。投票人士须根据系统画面指示,经互联网进行身份认证,然后投票。「到站投票」是亲身到实体票站投票,工作人员配以平板电脑核实投票人士的身份证资料,然后让投票人士于独立投票间以平板电脑投票。

  假若已透过网站进行「离站投票」,便不能重复使用流动应用程式投票,反之亦然。研发团队了解到亲身到实体票站核实身份证资料是最可靠的方式,所以若系统收到同一身份证资料于「离站」及「到站」投票,系统会自动以「到站」选票取代「离站」选票。简单而言,同一的身份证号码,系统只会计算一票。

系统设计
  汲取受网络攻击令系统瘫痪的经验,研发团队尤其关注系统的稳定性及资讯保安问题。稳定性方面,团队将系统存放于功能相对完善的云端伺服器供应商,有效地运用云端负载平衡器、伺服器自动扩展技术、记忆体缓存功能及多区伺服器部署,务求将数据尽快处理及应付突如其来的网络流量。系统背后启动着不同类型子系统处理数据,完善将流量分配,子系统包括验证码核对、应用程式介面请求处理、电子排队、短讯接收、实体票站数据交换、选票收集、选票点算、以及系统记录及监察。研发团队将子系统紧密配合,动用超过40台伺服器。从用户角度看,就是一个简单数步曲的电子投票系统。

  鉴于「离站投票」及「到站投票」在处理数据时皆依赖中央伺服器的正常运作,若中央伺服器出现问题便会导致「到站投票」的实体票站不能运作。有见及此,研发团队部署票站伺服器于实体票站,写入相同的资讯保安程序,让实体票站能够在离线状态下独立运行,尽管中央伺服器遭到网络攻击,亦不会影响「到站投票」运作。直到票站伺服器能成功连接中央伺服器,经散列函数处理的个人资料及加密处理的选票资料便会自动传送上中央伺服器储存。

认证方式
  以「到站投票」方式投票,实体票站的工作人员会检视投票人士的身份证明文件,核实身份,确保符合资格投票。至于「离站投票」,投票人士自行输入完整身份证资料、手机号码及确认是年满18岁或以上的香港永久性居民后,必须先通过手机短讯认证方可进入投票介面。研发团队已花尽多月的努力,唯民间没有一种普及且完美的网上身份认证方式可应用。手机短讯认证是经权衡利弊后所作的决定,现仔细解构如下:

-认证身份目的是要达到一人一票,而每位香港市民必定拥有兼独一无二的就是香港身份证号码,没有其他。因此,收集完整的身份证号码是必须的。

-香港身份证号码是由香港政府制定,完整的个人资料库是民间不可能拥有,当中涉及的权限与私隐问题是显而易见。唯一可以检查一个身份证号码的有效性是依靠完整身份证号码括号内的资料,而这有效性检查只能排除无效的号码,不能核实输入人士的身份。

-坊间的确有工具能产生有效的身份证号码,让有心人胡乱填上虚假资料,轻易地逃过系统检查。研发团队当然不希望此举于文明社会出现,但在一人一票的大前提下,必须加以防范。

-要寻求一种网上身份认证方法,研发团队想过利用电子证书,但在考虑电子证书的普及程度及流动应用程式的兼容性下,只好放弃。团队亦想过预先进行选民登记,实体地核实市民身份,然后分配投票密码,可是要应付香港三百多万的登记选民,实在没有这庞大资源设立足够的实体登记站。第三种想法是要求投票人士上载身份证副本,让系统自动核实身份证资料。此想法是天马行空,因为从用户角度看,认证步骤烦琐,过份收集个人资料,以及没有防伪功能。在平衡各种方法的利弊后,最终得出的结论,就是应用手机短讯方式,协助于网上进行身份认证。

-手机短讯身份认证常见于有规模的网站,目的在防止网络资源被滥用,务求减少一人登记多个帐户及验证登记者是否真实存在。故此,结合上短讯认证后,系统能大大减低非真实用户的存取。

-短讯可分为传送及接收两种,传送的一方通常需要缴付一个短讯费用,接收的一方通常不需额外收取费用。研发团队决定让投票人士支付费用传送短讯,是因为系统的经费实际上的来自民间的捐款,若要系统承担可能出现三百多万的香港登记选民的认证短讯,筹募的资金根本不足以应付甚至出现负债,达不到持续强化系统的目的。顺带一提,短讯费用是由电讯商收取,民研计划亦须缴付短讯接收服务使用费。

-或许你仍会质疑手机号码随处可购得,真的能防止有心人胡乱填上虚假资料吗?答案是不能百分百防止,原因是民间不可能拥有完整的个人资料库。研发团队所准备的,是应用当今科技与技术,制作严谨性较高的系统。试想想身份证明文件或流通的货币,防伪特征又是否百分百的有效?要达至理想用途,有赖文明社会里的各方配合、互相信任。

系统保安
  系统存放于云端伺服器,本已内置防火墙阻截分散式阻断服务攻击。研发团队同时整合网络保安公司的网络监测及即时栏截设备,以及研发即时系统监测平台,让工作人员可透过平台实时监测网络流量变化。若遇上不寻常的流量,便可即时作出反应。
  
  而我们关注的攻击主要有两种,一是令网络瘫痪的攻击,二是盗取或更改资料。

  为减轻受网络瘫痪的攻击的影响,团队不单靠防护,而且强化了系统能处理流量的能力,正正是上述提及采用云端技术和各种子系统的流量分配,减低瘫痪风险。在应用层面上,所有「离站投票」必须输入图片显示的验证码,目的是防止系统被机械式的重覆存取攻击。图片所显示的内容是随机产生,较复杂的图片会较难被破解,从而增加破坏系统的难度。假若使用较容易辨认的图片,保安效果亦会相对减少。

  关于盗取或更改资料的攻击,亦即资讯保安方面,团队制定了多项的保密措施让资料外泄及被破解的风险减低,将保安程度推至顶点。措施包括:

-用户与伺服器之间的数据传送,是透过SSL加密方式进行,保障数据于传送时没有被盗取查阅及更改。而SSL证书是由授权机构发出,有效认证伺服器的真实性;

-由于身份认证过程涉及个人资料,但在系统角度并不需要原始的数据作辨认,反而将所有个人资料经过散列函数以不能还原的形式储存,所以系统是不会储存原始的个人资料数据;

-散列函数是采用标准的SHA-512算法为基础,然后依数据的排列方式,混入随机运算出来的密码,再重覆将数据经散列函数运算,增加保密效果。若要将数据还原,须花上数以年计的时间;

-选票资料是以加密方式储存于系统数据库内,只有三位被委托的非技术人员配有不同部份的解密钥匙。若要开启电子票箱取阅选票资料,必须同时输入由其中两位非技术人员持有的解密钥匙。三选二的设计是为防止钥匙遗失而设。

功能改善
  「元旦民间全民投票」所用的系统,是研发团队花了六个多月时间重新设计及编写。经过元旦日的一役,研发团队正整合各方的意见,了解到不同人士有不同的体验,亦了解到此次的公开测试并不完美。改善系统成为研发团队刻下的重点任务,现正积极考虑改善以下主要功能:

-海外投票:在原设计上,基于保安理由,系统透过网络保安公司直接与香港互联网交换中心连系,只容许香港境内网络进入,任何非香港网络将不能进入系统投票。但于投票当日,不少身处海外的香港市民向我们强烈表达希望进入系统投票。团队会考虑为非香港网络设立特定的伺服器,而两组系统分别承受不同的保安风险。

-短讯认证:有感手机短讯传达未能与系统理想地配合,而短讯传送速度有着不能预期的因素令其大大减慢。因此,团队会考虑加强与电讯商的配合,选用更多、更有效率的电讯服务。同时不排除引入另一种认证方法取代短讯认证。

-认证时限:由于短讯延误令投票人士未能于三分钟内完成认证,白白浪费等候时间及短讯费用。有见及此,团队会考虑延长认证时间,同时间于程式加入认证提醒功能,当系统收到短讯后会自动提醒投票人士进入投票介面,毋须长时间留意认证介面。

-电子排队:系统设有电子排队机制,自动分配可承受的名额,让投票人士分段投票。不少市民反映当日需要等候多时才能进入系统,原因是短讯认证部份失灵,触发系统即时启动人流管理机制。团队会改善短讯认证问题,从而加大系统容纳人数。

投票情况
  最后,总括一下投票当日的情况。系统整体上运作良好,市民利用流动程式投票的有四万多票,透过网站投票的有一万九千多票,到达实体票站投票的有二千多票。总计六万二千多票之中,流动程式占了相当大部份,可见在文明社会里,随着智能手机的普及,市民正需要这一个渠道,和平理性地表达意见。

  关于整个「民间全民投票计划」的资料,欢迎到香港大学民意网站查阅,网址为http://hkupop.hku.hk。
下载
相关文章 / Related Articles

香港学生反修例运动中网络关系解体的实证调查

宋昭勋、吴静、胡欣立
2021-01-11

警队与社交媒体

黄子健、马伟杰
2017-05-08

2016年度新闻与社交媒体使用行为调查

马伟杰 周展梁 叶诗颖 伍淑冰 梁俊仁
2016-09-21