在莫斯科杜马2019年举行的电子投票课程

我们继续谈论DIT Moscow的活动(请参阅我们以前的文章),但与此同时,我们继续讨论下一个话题,该话题突然变得相关且蓬勃发展-电子投票这个话题。

如果去年将公民的远程投票更多地看作是好奇心或实验,然后在某个时候得出结论,那么到2020年,我们所有人都会突然发现,这是我们将很快全面面对的现实。在很大程度上,检疫限制导致了这种情况-选举的行为受到质疑,政党的生活暂停了。

总的来说,需求满足了报价-账单下降了。政党被允许通过Gosuslugi / ESIA进行初选,各地区陆续报告希望在9月的地方选举中组织DEG(远程电子投票)的意愿。

庆幸或不幸的是,仅靠立法是不够的-我们还需要技术实施,这不是那么简单。有人认为去年莫斯科已经完成了所有工作(那里甚至有一个区块链!),有人-DEG通常无法在不允许大规模伪造的水平上实施,因此原则上必须放弃DEG。

因此,我们决定专门撰写一系列文章和会议来分析这些问题:

  1. 阿列克谢·谢尔巴科夫Alexey Scherbakov) -“ 2019年莫斯科市杜马的电子投票的经验教训”
  2. Oleg Artamonov-远程电子投票:值得信赖的选举系统的架构
  3. 圆桌会议 “按下按钮:电子投票的理论与实践”



我们现在将开始第一篇文章,明天将挂第二篇文章和圆桌会议的公告(并在此处添加链接)。

严格地说,这不是一篇文章,而是一个稍微字面上编辑的文本由同名的讲话阿列克谢·谢尔巴科夫(阿勒西施)在今年3月5日的会议上。

Alexey是Roman Yuneman团队的受邀专家,负责编写“ 电子投票 ”报告风险和漏洞 ”,FoodPlex的首席后端开发人员。

该报告告诉我们,在2019年MHD选举中,远程电子投票在技术上是如何安排的,技术解决方案以及与专家组合作的优缺点是什么?

除了本文之外,您还可以阅读哈伯(Habré)上已经发表的另外两篇文章:


如果您喜欢视频或音频,则可以在YouTube上观看完整的报告

***


您好,我叫Alexei Shcherbakov,在莫斯科投票时我是应邀参加的罗马·安曼(Roman Uneman)团队的专家。好吧,总的来说,在谈论投票本身之前,值得一提的是这是如何发生的。



这一切都始于2019年3月的实验宣布时,然后在5月通过了一项投票法,投票本身于9月8日在莫斯科的三个地区进行。投票通过Internet进行了12个小时。

该系统本身是基于Parity的以太坊区块链构建的。那里也使用了El Gamal的加密方案。 Graylog使用了日志记录系统,并使用了某种AMQP实现在消息之间传输数据,我们假定它很可能是RabbitMQ,就像企业标准一样。系统本身看起来像这样:



大多数系统在莫斯科信息技术部(DIT)之外 [ 这是非常重要的一点,因为只有DIT Moscow与外部专家进行了交流-大约。 ed。 ],但区块链与他们同在。他们与国家服务门户网站一起工作。有关如何创建此系统的说明,莫斯科DIT 出版于Habr。他们在那里已经特别说过他们有问题,基本上,仅一个小时,就有大约400人受到此问题的影响。



我们根据美杜莎提出的从区块链下载的数据进行了数据分析。他们分别检查了证人的证词,观察员已经在投票站直接收集了这些证词。这是一个电子网站,上面记录了屏幕上的读数,我将更详细地告诉您。



在谈论完成的分析之前,我将告诉您我们如何完成任务。如果我自己设计此系统,则将使用某些标准来设计高可用性系统。特别是,度量标准将用于直接监视系统的运行状况。为了了解一些问题正在开始-并迅速对它们进行响应。除了应该完成所有这些工作的团队之外,观察者自己也必须看到它-也就是说,观察者必须以某种方式理解出问题了。而且,位于该区域的区域选举委员会也必须了解如果突然出现问题,出了什么问题。



在我们的案例中,用于计算区块链块的时间指标看起来像这样。它分别显示了几个问题,与停止区块链相关的第一个问题是前三个区域。另一个区域是一个未知问题,我们无法在此指标上具体看到。最后,我们看到直到投票结束之前都出现了平稳的降级。



如果我们考虑第二个指标(每个块的事务数),那么通过它们我们可以更详细地看到问题。首先,我们看到在关闭区域中,没有交易记录。在我们可疑的区域,我们看到很少的交易,然后我们看到了一个有趣的时刻,即区块链数据记录的性质发生了变化。这是什么原因呢?最初,在写入数据时,会以一定的时间间隔写入数据,因此无法在表决时准确确定哪个人进行了表决。数据已累积并转储到区块链中。但是,经过某种形式的区块链重新配置之后,数据开始被随机记录。也就是说,已经执行了一些操作,但是我们不能根据此度量准确地说出DIT到底做了什么。但是我们可以说在这种情况下,DIT会以某种方式干扰系统。



基于这些指标,我们可以计算区块链停止的时间。在运行稳定的区域,阻塞时间约为4秒。因此,我们可以在停止区域中计算4秒钟内适合多少块,而剩余的块时间已停止了多少。基于此,我们将下限设为2小时。这是区块链无法完全正常工作的时候



此外,我们还有另一个区域,数据没有到达区块链。所有这些故障区域总共需要4个小时。退化区大约需要6个小时,从午餐后开始,一直持续到投票结束。由于他们没有以任何方式监视区块链,因此他们甚至都不怀疑有任何问题。此外,作为选举委员会一部分的投票站本身的居民说,他们所能做的就是坐在沙发上,看着屏幕上正在发生的事情。也就是说,他们不了解发生了什么,仅从媒体那里了解了一些问题。他们根本没有工具来观察问题

此外,还有一个有趣的观点:观察者必须有权访问区块链本身。也就是说,他们被承诺将拥有一个特殊的观察节点,并且将能够直接访问区块链,对其进行操作并观察会发生什么。但是这个机会被他们夺走了!为什么?不清楚统计信息仅显示在屏幕上。



屏幕的外观就是这样,只有四个位置:经典的“销售漏斗”,当我们有很多人进入投票页面,登录,接受投票和投票时,它随着每一步而减少。

这里有一个非常重要的要点-新闻通讯的寿命。如果选民在15分钟内没有时间填写选票,则认为他已被取消。统计数据本身也每隔15分钟进行一次。也就是说,如果我们的选民在15分钟内没有通过漏斗的某个部分,那么我们可以自信地说,在下一阶段的统计中,没有考虑到他。在每个阶段,我们得到的金额都较小。因此,可以跟踪有趣的统计异常。



此处显示此漏斗,颜色表示区块链故障时间。例如,当红线越过黄色时,这里会出现有趣的异常现象-已发出的选票数量已经超过通过输入SMS中的代码登录的人数。简单来说,从物理上讲是不可能的,要接收新闻,您需要输入代码。这发生在两个小时的区域内。



这是从观察者获得的统计数据与从区块链卸载获得的统计数据的比较。如您所见,它们实际上是重合的,但是当前端的统计信息显然存在小问题时,它们之间会有细微的差别。这使我们有机会说,独立观察者获得的统计信息与基于上传而从区块链获得的统计信息几乎相同,除了出现问题的阶段。

除了统计数据外,我们还有一个有趣的音频记录 -时间大约17小时,大约2,000人投票,莫斯科信息管理局的一位代表说他们在工作系统上进行了什么干预。他特别指出,大约有900人反复收到SMS进行授权。



这首先告诉我们,由于他们使用的日志记录系统,莫斯科信息管理局可能违反投票的保密性。他们可以比较投票时间,投票状态和电话号码,这非常重要!他们确定了有问题的人,确定了他们的电话号码,并发出了重复的短信。这些人的数量约为该投票站所有选民的40%。两名候选人中,第一名和第二名之间的差额只有84人,而对于900名候选人,我们甚至无法说出他们的结果。因为对它们采取了一些措施。我们不能说这些选票是被操纵的,但是可以说有900个人有问题,我们不能说他们投票给谁,以及他们是否完全投票。也就是说,遇到问题的人数是使一名候选人脱离胜利的人数的十倍。可以在此链接中找到

数据库和用于分析的代码

我们还分析了用于投票本身的代码。我们预计大多数操作将直接在区块链本身上进行,并且代码应予以发布。我们收到了智能合约,一个表单代码和一个负责发送消息的代码。但是有些部分仍然是未知的,因为它们是在另一个部门-门户mos.ru的一侧进行的。



在代码中有趣地发现了什么?事实证明,他并没有限制一个人在不同地区进行投票的能力。这是一个有趣的问题,它受后端的支配,后者位于其他地方,并且其源代码我们看不到。目前尚不清楚该系统为何使用区块链-由于它仍然无法控制一切,因此可以用常规数据库代替。好吧,在投票前一天,魔术代码已被添加到表单代码中,这使得可以使用后端的一个变量在表单中包含其他脚本,这非常有趣!他们为什么这么做?实际上,这是在用户设备上投票时执行任意代码的能力



密码学也是一个有趣的观点。最初,他们选择了256位加密,尽管早在1999年,有人就提议将768位用于该方案,而十年前则提供了1024位。。并且,如果您现在打开欧盟的建议,那么将要求“至少1024位”,但是如果要求在2030年之前进行保护,则建议使用3072位。他们如何计算熵还有一个有趣的观点。显然,人们并不完全理解为什么他们需要所有这些

关于这个系统我能说些什么?

首先,莫斯科的DIT无法提供至少90%的性能。通常认为,一个高可用性系统,应该至少有90%的时间。也就是说,我们甚至不能说她在工作。

其次,操作是在生产系统上执行的,没有人以任何方式进行控制,没人能理解正在发生的事情。如果您在法庭听证会上看到[呼吁选举结果-大约 ed。],事实证明,无论是人民,观察员,还是委员会本身都不了解正在发生的事情尽管如此,还是有必要以某种方式为正在准备的程序做准备。

而不是结论


我们不想说电子选举必然是一团糟,不断出现的问题,奇怪的技术解决方案以及对目前正在发生的事情的误解。

但是,正如我们从该材料中看到的那样,对投票结果的信任问题本质上是对其组织者的信任问题-事实证明,与之的互动非常模糊。在我们看来,这回答了一个非常热门的问题,即莫斯科信息和信息系统是否有足够的经验将其扩展到整个莫斯科,甚至扩展到整个国家,以及是否有可能简单地进行某种“投票”使用区块链”,在服务器上启动它并开始进行选举。

大致上,是否有可能构建一个总体上可以由其架构本身而不是由其作者的诚实来确保其信誉的数字投票系统-我们将在下一篇文章中进行讨论。

All Articles