27、Belenios:简单私密且可验证的电子投票系统

Belenios:简单私密且可验证的电子投票系统

1. Belenios的安全保障

Belenios的安全定义和相应证明是通过EasyCrypt工具全面开发的,形成了对已部署投票协议可验证性和隐私性的首个机器检查证明。以下是其信任假设总结:
|特性|信任假设|
| ---- | ---- |
|可验证性|注册商或投票服务器诚实,且选民的投票设备诚实,解密受托人可能全部被破坏。|
|隐私性|注册商和投票服务器都诚实,选民的投票设备诚实,且最多t个解密受托人被破坏(t是生成密钥时使用的阈值)。|

对于隐私性要求注册商和投票服务器诚实的原因:一是现有计算环境下的隐私定义都隐含假设投票服务器诚实,无法在未定义的环境中证明隐私性;二是可验证性和隐私性之间存在微妙关系,攻击者选择性丢弃选票时可从结果中获取信息,当前隐私定义意味着个体可验证性,即所有诚实选票都应被统计。

同时,为保证可验证性和隐私性,假设投票设备是诚实的。因为选民通过投票设备选择投票,设备会自动知晓选票内容,且被破坏的设备可能轻易更改选票。Helios有投票或审计机制,选民可与设备交互检查其行为,满意后再进行实际投票,但Belenios未采用该机制,因为实际中很少使用,且易针对不检查的选民进行攻击。

2. 公共平台的实现与部署
2.1 源代码与系统方面

Belenios协议已根据规范进行了完整实现,当前版本是1.8,对应规范版本1.6。源代码用OCaml编写,会定期检查并更新以适配最新版本的OCaml。非OCaml依赖(wget、zip、openssl)是标准工具,在Debian Linux发行版中很容易获取。

实现提供了一个名为 belenios-tool 的命令行工具,可执行协议所需的所有算法步骤。它可以与包含用于部署选举的Web服务器的部分分开编译。Web部分使用OCaml ocsigen服务器作为http服务器,Web应用程序使用eliom OCaml包编写。平台代码使用一致的框架,可在服务器(OCaml代码编译为本机机器语言)和客户端Web浏览器(OCaml代码编译为Javascript)之间共享部分代码。Javascript客户端依赖jsbn和sjcl库进行低级大整数算术和加密函数。

belenios-tool 作为Debian包可用,但Web部分因Debian发行版中一些OCaml依赖问题不可用。

选举管理员可通过Web界面与注册商和解密受托人交互设置新选举。管理员负责提供选民的电子邮件地址列表,服务器会向这些地址发送登录/密码。注册商通常通过电子邮件向选民发送签名密钥,也可通过其他渠道。使用电子邮件作为私有渠道的实现是在线平台的一个弱点,对于高风险选举,需考虑采用邮政邮件、现有电子身份证等更可行的方式发送选举材料。在所有选民属于提供单点登录解决方案的同一实体的情况下,可替代登录/密码认证,并且实现中支持CAS协议。

选民投票最简便的方式是使用Web界面,通过选举URL进行投票。选票在客户端使用服务器发送的Javascript代码完全准备好。但由于难以保证Javascript代码的真实性,还有更安全的方式:可直接上传使用 belenios-tool 等外部工具准备的加密选票,该工具可从Debian发行版安装,通过标准包签名机制保证代码真实性;也可下载Belenios源代码,编译后直接使用生成的Javascript代码。

在线平台可免费供任何人运行选举,但对选民数量有限制,运行在研究实验室的机器上。部署的软件与免费分发的Belenios包完全相同,还添加了网络配置(反向代理)、电子邮件、备份机制以及监控和统计工具。不过,平台没有针对拒绝服务等进行强加固,也不保证24/7正常运行,因此不适用于高风险选举。

2.2 与选民相关的实现问题
  • 投票材料大小 :考虑到某些情况下选民可能需要手动输入投票材料,注册商不直接向选民发送签名密钥,而是发送包含校验和的15个字符的字符串,通过PBKDF2原语从中导出88位熵的签名密钥。同样,加密选票在准备过程中、通过电子邮件发送和打印在投票箱时,只显示其哈希版本,原始选票也可方便获取以进行验证。
  • 多语言支持 :由于首批用户来自高度国际化的学术领域,平台需要为面向选民的界面部分提供多语言支持。目前支持英语、法语、德语、意大利语、罗马尼亚语,添加新语言并不困难。目前选举管理员、注册商和解密受托人的Web界面仅为英语。
  • 重新发送投票材料 :用户可能会丢失投票材料,因此需要有重新获取的方式。投票服务器可轻松生成新密码并发送给选民。对于注册商,除选民丢失密钥的情况外,无需长期保存签名密钥列表。规范中包含了凭证恢复协议,注册商可生成新签名密钥并向服务器发送相应更新,以确保旧密钥未被使用且不会在未来使用。但实际中,注册商通常更愿意保存签名密钥列表以便重新发送,而不是运行凭证恢复协议。
graph LR
    A[开始] --> B[选举管理员设置选举]
    B --> C[注册商发送签名密钥]
    C --> D[服务器发送登录/密码]
    D --> E[选民投票]
    E --> F[选举结束]
3. Belenios的其他特性
3.1 空白选票统计

早期Belenios规范中,只能设置从l个候选人中选择k个(k在规定值集合内)的选举方式,允许k为0来表达空白选票,但这种方式不一定能统计空白选票数量。为满足部分用户需求,在选票中添加了用于编码空白选票的位,并提供相应的零知识证明,确保该位激活时其他位未被激活。其他常见的高级统计功能大多与同态解密不兼容,将在未来引入可验证混币网络时再支持。

3.2 不同方之间的安全通道

在正式协议描述中,某些消息通过安全通道在不同权威机构之间传输,特别是在阈值模式下的选举密钥设置过程中。实际中,所有消息通过Web服务器传输,由于不能假设所有解密受托人都拥有用于确保安全通道的签名和加密密钥,在密钥生成协议的第一步,每个解密受托人先生成一个随机秘密种子,从中导出作为自定义PKI基础的加密密钥。消息通过服务器在受托人之间传递,借助PKI,服务器在抽象模型中只是不可信网络的一部分。虽然阈值解密支持已实现一年多,但最近才添加到在线平台的Web界面。为方便解密受托人操作,采用了PKI机制,但尚未收到用户反馈。这一先进的阈值解密协议是首次在公共投票平台上实现。

3.3 测试用的降级模式

对于极低风险选举(如选择今晚的披萨)或测试目的,Web服务器可模拟注册商和解密受托人的角色。这种模式对选举管理员有吸引力,因为操作更简单。但在此模式下,运行Web服务器的机器的系统管理员可能成为强大的攻击者。若不能信任他们,除部分可验证性外,几乎没有安全属性得到保留。即像Helios一样,检查选票存在的选民可确保其投票被统计,但可能会利用弃权情况添加额外选票。为降低降级模式的风险,服务器在向选民发送签名密钥后会忘记它们,因此系统管理员的选票填充攻击必须提前计划才能成功,且选民丢失签名密钥后无法要求服务器重新发送,这是不建议在实际选举中使用降级模式的强烈诱因,但仍有许多非低风险选举使用该模式,用户表示愿意信任系统管理员。

3.4 审计和监控

Belenios安全分析的一个重要假设是整个过程由足够多的独立参与者进行监控和审计。目前唯一可用的程序是 belenios-tool ,它提供了两个审计命令:
- verify :检查选举过程中给定时间所有公共数据的一致性,包括选举结束后的解密统计结果,会检查所有零知识证明和签名,确保没有两张选票使用相同密钥签名。
- verify-diff :以公共数据的两个快照为输入,检查第二个快照是否是第一个快照的有效未来状态,包括检查投票箱大小是否增加,若有选票消失,是否有使用相同签名密钥的新选票被投出,同时会检查凭证恢复协议的一致性。

4. 使用统计

经过2016 - 2017年一年多的长时间测试,组织者现在可以自主组织选举,大部分选举无需与开发者交互。以下是2018年的使用统计:
|选民数量区间|选举数量|平均投票率|有外部信任方的选举比例|
| ---- | ---- | ---- | ---- |
|· < 12|15|84.5%|46.7%|
|12 ≤· < 50|62|62.9%|29.0%|
|50 ≤· < 200|45|41.6%|51.1%|
|200 ≤· < 800|14|25.6%|21.4%|
|800 ≤·|6|22.5%|67.7%|
|总计|142|31.6%|38.7%|

由于Belenios项目的学术性质,平台上组织的大多数选举与(主要是法国)学术界相关,包括研究实验室理事会代表选举、科学工作组或学术团体负责人或代表选举、晋升委员会选举等。少数规模不小的选举是为与学术界无关的协会代表选举,还有许多小型选举的背景信息不明。

单个选举的选民数量限制为1000人,偶尔会应要求提高限制。从统计数据可以看出,大多数选举配置为服务器扮演所有角色,安全性能严重下降,对服务器管理员的信任几乎是完全的。

Belenios:简单私密且可验证的电子投票系统

5. 系统优势与局限性分析
5.1 系统优势
  • 安全保障全面 :通过EasyCrypt工具完成安全定义和证明,实现了对可验证性和隐私性的机器检查证明,有明确的信任假设体系来保障选举的安全性和可靠性。
  • 实现灵活多样 :提供命令行工具 belenios-tool 和Web界面两种使用方式,方便不同用户需求。代码使用一致框架,便于在服务器和客户端之间共享,且依赖的大多是标准工具,易于获取和维护。
  • 用户体验优化 :在投票材料大小、多语言支持、重新发送投票材料等方面考虑了用户的实际需求,提升了用户使用的便利性和舒适度。
  • 功能不断完善 :添加了空白选票统计功能,引入了阈值解密协议和审计监控命令,还支持降级模式用于测试,功能丰富且具有扩展性。
5.2 系统局限性
  • 安全依赖条件 :可验证性和隐私性的保障依赖于注册商、投票服务器和投票设备的诚实性,在实际应用中难以完全保证这些条件,存在一定的安全风险。
  • 平台安全性不足 :在线平台没有针对拒绝服务等进行强加固,也不保证24/7正常运行,不适用于高风险选举。
  • 降级模式滥用 :虽然采取了一些措施降低降级模式的风险,但仍有许多非低风险选举使用该模式,对服务器管理员过度信任,可能导致选举结果的公正性受到影响。
  • 邮件传输风险 :使用电子邮件作为私有渠道传输选举材料是平台的一个弱点,可能存在邮件被拦截、误判为垃圾邮件等问题。
graph LR
    A[系统优势] --> B[安全保障全面]
    A --> C[实现灵活多样]
    A --> D[用户体验优化]
    A --> E[功能不断完善]
    F[系统局限性] --> G[安全依赖条件]
    F --> H[平台安全性不足]
    F --> I[降级模式滥用]
    F --> J[邮件传输风险]
6. 总结与建议

Belenios作为一个电子投票系统,在安全保障、实现方式、用户体验和功能完善等方面有诸多优点,但也存在一些局限性。为了更好地发挥其作用,提出以下建议:
- 加强安全防护 :对在线平台进行强加固,提高对拒绝服务等攻击的抵御能力,确保平台的稳定运行。同时,探索更安全的私有渠道来传输选举材料,减少邮件传输带来的风险。
- 规范降级模式使用 :加强对用户的教育,让他们了解降级模式的风险,避免在非低风险选举中使用该模式。可以设置更严格的限制条件,仅允许在真正的低风险场景下使用。
- 完善审计监控机制 :开发更多独立的审计和监控工具,由不同的开发者编写,确保整个选举过程的透明性和公正性。同时,加强对审计结果的分析和处理,及时发现和解决潜在的问题。
- 持续优化用户体验 :根据用户反馈,不断优化投票材料大小、多语言支持等方面的功能,提高用户的满意度和参与度。

通过以上措施,可以进一步提升Belenios系统的安全性、可靠性和用户体验,使其在电子投票领域发挥更大的作用。

建议方向 具体措施
加强安全防护 对平台进行强加固,探索更安全的私有渠道传输材料
规范降级模式使用 加强用户教育,设置更严格的限制条件
完善审计监控机制 开发更多独立工具,加强审计结果分析处理
持续优化用户体验 根据用户反馈优化相关功能
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值