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

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

1. Belenios的安全保证

1.1 基本情况

由于攻击者可以控制所有公共通信,Belenios无法保证未进行检查的选民的选票会被统计,因为攻击者可能丢弃相应的选票。不过,Belenios能确保攻击者无法修改这些选票。

1.2 可验证性和隐私性的信任假设

属性 信任假设
可验证性 注册机构或投票服务器诚实,且选民的投票设备诚实,解密受托人可能全部被破坏。
隐私性 注册机构和投票服务器都诚实,选民的投票设备诚实,且最多t个解密受托人被破坏(t是生成密钥时使用的阈值)。

1.3 隐私性假设原因探讨

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

1.4 投票设备诚实性

为保证可验证性和隐私性,还假设投票设备是诚实的。因为选民通过投票设备选择投票选项,投票设备会自动得知选票内容,而且被破坏的投票设备可能轻易更改选票。虽然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依赖问题不可用。
  • 选举设置流程
    1. 选举管理员通过Web界面与注册机构和解密受托人交互设置新选举。
    2. 管理员提供选民的电子邮件地址列表,服务器发送登录/密码。
    3. 注册机构向选民发送签名密钥,通常通过电子邮件,但也可通过其他渠道。

2.2 投票方式

  • Web界面投票 :最简单的投票方式是通过Web界面,按照选举的URL操作。选票在客户端使用服务器发送的Javascript代码完全准备好,但难以保证Javascript代码的真实性。
  • 外部准备选票 :可以直接上传从浏览器外部准备的加密选票,例如使用 belenios - tool 。该工具可从Debian发行版安装,标准包签名机制能保证代码的真实性。
  • 编译代码投票 :还可以下载Belenios的源代码,编译后直接使用生成的Javascript代码,而不是使用服务器提供的代码。

2.3 平台特点

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

3. 与选民相关的实现问题

3.1 投票材料大小

为方便选民,注册机构不直接向选民发送签名密钥,而是发送包含校验和的15字符字符串,通过PBKDF2原语从中派生签名密钥。加密选票在准备过程中只显示其哈希版本,通过电子邮件发送并打印在投票箱中,同时原始选票也可用于验证。

3.2 多语言支持

由于首批用户来自国际化程度高的学术领域,平台为面向选民的界面部分提供了多语言支持,目前支持英语、法语、德语、意大利语、罗马尼亚语,添加新语言并不困难。不过,选举管理员、注册机构和解密受托人的Web界面目前仅支持英语。

3.3 重新发送投票材料

用户可能会丢失投票材料,投票服务器可轻松生成新密码并发送给选民。注册机构通常不需要长期保存签名密钥列表,但如果选民丢失密钥,规范中有凭证恢复协议,注册机构会生成新的签名密钥并向服务器发送相应更新,以确保旧密钥未被使用且不会被使用。不过实践中,注册机构通常更愿意保存签名密钥列表以便重新发送。

4. Belenios的其他特性

4.1 空白选票统计

早期版本的Belenios规范中,允许选民选择k个候选人(k在规定值范围内),k为0表示空白选票,但这种方式不一定能统计空白选票数量。为满足用户需求,在选票中添加了用于编码空白选票的位,并附带相应的零知识证明,确保该位激活时其他位未激活。其他高级计数功能大多与同态解密不兼容,将在未来引入可验证混洗网络时支持。

4.2 不同方之间的安全通道

在正式协议描述中,一些消息通过安全通道在不同机构之间发送,尤其是在阈值模式下进行选举密钥设置时。实际中,所有消息通过Web服务器传输,由于难以假设所有解密受托人都拥有用于确保安全通道的签名和加密密钥,在密钥生成协议的第一步,每个解密受托人会生成随机秘密种子,从中派生作为自定义PKI基础的加密密钥。消息通过服务器传输,借助PKI,服务器在抽象模型中只是不可信网络的一部分。虽然阈值解密支持已实现一年多,但最近才添加到在线平台的Web界面中。

4.3 测试用的降级模式

对于低风险选举或测试目的,Web服务器可模拟注册机构和解密受托人的角色。这种模式对选举管理员有吸引力,但会使运行Web服务器的机器的系统管理员成为强大的攻击者,除了部分可验证性外,几乎无法保证其他安全属性。为降低风险,服务器在发送签名密钥后会忘记它们,使得系统管理员的选票填充攻击必须提前计划,且选民丢失签名密钥后无法要求服务器重新发送,这是不建议在实际选举中使用降级模式的重要原因,但仍有许多非低风险选举使用该模式。

4.4 审计和监控

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

5. 使用统计

5.1 总体统计

2016 - 2017年经过一年多的测试期后,2018年组织者可自主进行选举,多数选举无需与开发团队交互。2018年的总体统计数据如下:
| 统计项 | 数据 |
| — | — |
| 选举数量 | 142 |
| 选民总数 | 17650 |
| 统计选票总数 | 5579 |

5.2 选举类型

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

5.3 选举规模和参与率

单个选举的选民上限为1000人,可应要求提高上限。以下是不同选民数量区间的选举统计:
| 选民数量区间 | 选举数量 | 平均参与率 | 有外部信任方的选举比例 |
| — | — | — | — |
| · < 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% |

5.4 降级模式使用情况

从统计数据可知,大多数选举配置为服务器扮演所有角色,安全性能严重下降,用户对服务器管理员几乎完全信任。

6. 数据可视化与分析

6.1 选举规模与参与率可视化

为了更直观地展示不同规模选举的参与情况,我们可以使用 mermaid 绘制柱状图。

bar chart
    title 不同选民数量区间选举的平均参与率
    "· < 12" : 84.5
    "12 ≤· < 50" : 62.9
    "50 ≤· < 200" : 41.6
    "200 ≤· < 800" : 25.6
    "800 ≤·" : 22.5

从这个柱状图中,我们可以清晰地看到随着选民数量的增加,选举的平均参与率呈现下降趋势。这可能暗示着在大规模选举中,选民的参与积极性相对较低,或者存在一些阻碍选民参与的因素,例如投票流程的复杂性、对选举结果影响力的认知等。

6.2 外部信任方使用情况分析

再来看有外部信任方的选举比例,我们可以用以下表格进一步分析不同规模选举中外部信任方的使用差异。
| 选民数量区间 | 有外部信任方的选举比例 |
| — | — |
| · < 12 | 46.7% |
| 12 ≤· < 50 | 29.0% |
| 50 ≤· < 200 | 51.1% |
| 200 ≤· < 800 | 21.4% |
| 800 ≤· | 67.7% |

从表格数据中可以推测,在小规模选举(选民数量较少)和大规模选举(选民数量较多)中,使用外部信任方的比例相对较高。在小规模选举中,可能是因为组织方更注重选举的公正性和可信度,愿意引入外部信任方;而在大规模选举中,可能是由于选举的重要性和影响力较大,需要借助外部信任方来增强选举的公信力。

7. 改进建议与未来展望

7.1 针对选民参与率的改进措施

  • 简化投票流程 :可以对现有的投票流程进行优化,减少不必要的步骤。例如,进一步简化 belenios - tool 的使用说明,让选民更容易上手。可以制作详细的图文教程或视频教程,在平台上提供下载和观看。
  • 增强宣传推广 :针对不同规模的选举,制定不同的宣传策略。对于大规模选举,可以利用社交媒体、新闻媒体等渠道进行广泛宣传,提高选民对选举的关注度和参与意识;对于小规模选举,可以通过内部通知、邮件等方式,向选民强调选举的重要性。

7.2 安全性能提升建议

  • 加强服务器防护 :针对降级模式下服务器管理员可能成为攻击者的问题,加强服务器的安全防护措施。例如,引入更高级的防火墙、入侵检测系统等,防止恶意攻击。同时,定期对服务器进行安全审计和漏洞扫描,及时发现并修复潜在的安全隐患。
  • 完善安全通道机制 :虽然目前通过自定义 PKI 实现了不同方之间的安全通道,但可以进一步优化该机制。例如,增加密钥更新的频率,提高密钥的安全性;加强对服务器在消息传输过程中的监管,确保消息的完整性和保密性。

7.3 未来功能扩展方向

  • 引入可验证混洗网络 :如前文所述,许多高级计数功能与同态解密不兼容,未来可以引入可验证混洗网络来支持这些功能。可验证混洗网络可以在保证选票隐私的前提下,实现更复杂的计数和统计功能,满足不同用户的需求。
  • 拓展多语言支持范围 :目前平台仅支持几种语言,未来可以进一步拓展多语言支持范围,覆盖更多的国家和地区。这不仅可以提高平台的国际化程度,还能吸引更多的用户使用。

8. 总结

Belenios 作为一个简单私密且可验证的电子投票系统,在实现和部署过程中展现出了诸多特点和优势。它通过一系列的安全机制和技术手段,保障了选举的可验证性和隐私性。同时,在与选民相关的实现方面,也充分考虑了用户的需求和体验,如控制投票材料大小、提供多语言支持等。

然而,该系统也存在一些不足之处,例如在高风险选举中的安全性保障、选民参与率的提升等方面还有待改进。通过对使用统计数据的分析,我们可以发现不同规模选举在参与率和外部信任方使用等方面存在差异,这为系统的优化和改进提供了方向。

未来,我们可以通过采取一系列的改进措施,如简化投票流程、加强服务器防护、引入新的功能等,进一步提升 Belenios 系统的性能和用户体验,使其在电子投票领域发挥更大的作用。

总之,Belenios 系统具有很大的发展潜力,通过不断地优化和完善,有望成为一个更加安全、高效、易用的电子投票解决方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值