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

russia_block_cover
russia_block_cover

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

Шифрование голоса в браузере пользователя происходит с помощью 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 — самые важные новости и опросы.

Подписывайтесь на ForkLog в социальных сетях

Telegram (основной канал) Discord Instagram
Нашли ошибку в тексте? Выделите ее и нажмите CTRL+ENTER

Рассылки ForkLog: держите руку на пульсе биткоин-индустрии!

*Ежедневная рассылка — краткая сводка наиболее важных новостей предыдущего дня. Чтение занимает не больше двух минут. Выходит в рабочие дни в 06:00 (UTC)
*Еженедельная рассылка — объясняем, кто и как изменил индустрию за неделю. Идеально подходит для тех, кто не успевает за новостным потоком в течение дня. Выходит в пятницу в 16:00 (UTC).

Мы используем файлы cookie для улучшения качества работы.

Пользуясь сайтом, вы соглашаетесь с Политикой приватности.

OK