在俄罗斯对拟议的宪法修正案进行投票的最后一天,俄罗斯媒体曝光了区块链投票系统中的一个破译用户的投票漏洞。
宪法修正案于2020年1月15日首次提出,如果通过,将允许俄罗斯总统弗拉基米尔·普京再连任两个6年任期。电子投票时间为六月二十五日至六月三十日。如果俄罗斯人民投票反对修正案,普京将不得不在2024年卸任总统。
6月30日,投票的最后一天,俄罗斯媒体Meduza发表了一篇报道称,可以通过电子投票系统的HTML代码检索密钥来破译选票。
Meduza的研究发现,在基于区块链的系统上记录的投票是使用TweetNaCl.js加密库进行加密的。该加密库实质上提供了两个密钥,一个用于编码,一个用于解码。
这个基于Exonum区块链的系统是由莫斯科信息技术部在Kapersky实验室的协助下创建的,用於莫斯科和下诺夫哥罗德进行的电子投票。
根据Meduza的说法,他们的记者能够找到在投票系统中普遍用于编码“赞成”和“反对”的两个密钥,使他们能够在投票过程中解码投票数据。
在投票过程中,信息技术部将这些选票以CSV文件的形式公布,以提高投票计数的透明度。但正是通过这一途径,Meduza的团队能够检查特定人群的投票情况。
在一个拥有秘密警察、腐败的寡头和缺乏民主法律程序的国家,未来的投票压力威胁存在。英国广播公司最近报道称,莫斯科的国有组织强迫员工注册电子投票系统,并与管理层分享他们的账户信息。
俄罗斯区块链投票系统遇到的问题和攻击
俄罗斯整合了区块链技术的投票系统开局不利,据报道,在6月27日,这一由Bitfury驱动的系统,其选举观察员的节点受到了攻击。然而该媒体网站报道说,政府官员坚持称,攻击没有造成系统故障,区块链上记录的所有投票都是有效的。据报道,网络安全专家正在努力恢复对受攻击节点的访问,但尚不清楚他们是否成功。
这并不是该区块链投票系统第一次出现问题,早前有报道指出,电子投票网站在上线后的几个小时内都无法访问。
除了不能访问之外,它似乎也不太能防篡改。一位名叫Pavel Lobkov的当地记者分享了一段视频,讨论他如何成功地进行了两次投票——一次是在当地投票站离线投票,一次是在不到一小时后进行网络投票。
Image source: Shutterstock