СМИ: уязвимость московского блокчейн-голосования позволила расшифровать голоса до подсчета

HashFlare

ComputerUniverse Введи промокод FW7FRUX при покупке и получи скидку 5 евро

Схема шифрования в системе блокчейн-голосования по поправкам в Конституцию РФ позволяла расшифровать голоса избирателей до официального подсчета. На баг указали журналисты «Медузы».

Шифрование голоса в браузере пользователя происходит с помощью JavaScript-библиотеки TweetNaCl.js – компактной реализации программы Networking and Cryptography library, разработанной известными криптографами Дэниелом Бернштейном, Таней Ланге и Питером Швабе.

Программа использует эллиптическую кривую Curve25519 для согласования ключей, алгоритмы Poly1305 для аутентификации сообщений и Salsa20 для шифрования.

На выборах в Мосгордуму в августе 2019 года блокчейн-система шифровала голоса с помощью адаптированной реализации схемы Эль-Гамаля. Из-за вероятностного шифрования, каждый раз создающего новый шифротекст даже при одинаковых параметрах, дешифровка сообщений не всегда была возможна без приватного ключа избиркома.

Новая система использует детерминированное шифрование: идентичные шифротексты при одинаковых параметрах. У отправителя и получателя формируется общий ключ (shared key), пригодный как для шифрования, так и для расшифровки сообщения, пишет «Медуза».

Для расшифровки сообщений до официального подсчета и публикации приватного ключа избиркома избирателю достаточно было сохранить приватный ключ, формируемый в браузере на странице электронного бюллетеня.

Как получить приватный ключ?

Журналисты «Медузы» провели эксперимент в браузере Google Chrome. На странице с электронным бюллетенем открыли «Инструменты разработки», во вкладке Sources нашли библиотеку election.js, а в ней строку с генерацией открытого и приватного ключей. Поставили после нее logpoint (точка, дойдя до которой браузер запишет в консоль требуемую отладочную информацию): ‘voter secret key is’, encryptor.keyPair.secretKey, после чего проголосовали.

Таким образом им удалось расшифровать голоса избирателей, участвовавших в эксперименте.

Без приватного ключа избирателя расшифровать голос до публикации приватного ключа избиркома не получится.

По данным ЦИК, после обработки 99,97% протоколов поправки в Конституцию РФ одобрили 77,92% участников голосования. Против высказались 21,27%. Явка, предварительно, составила 64,99%.

Ранее эксперты подробно рассказали ForkLog о рисках электронного блокчейн-голосования в РФ.

Подписывайтесь на новости ForkLog в Telegram: ForkLog Feed — вся лента новостей, ForkLog — самые важные новости и опросы.

Нашли ошибку в тексте? Выделите ее и нажмите CTRL+ENTER

https://forklog.com/smi-uyazvimost-moskovskogo-blokchejn-golosovaniya-pozvolila-rasshifrovat-golosa-do-podscheta/