Тайны электронного голосования – нет

IT-сектор Штаба

Тайны голосования при Электронном голосовании нет, или доказать ее невозможно

Кратко:

Любой сайт может хранить историю запросов к нему (кто, что и когда делал, называется “логи”). Если это происходит при ЭГ, то сотрудники ДИТ смогут восстановить связь “человек — бюллетень — голос” для всех голосов после расшифровки бюллетеней. Единственный способ доказать, что логи не хранятся — предоставить публичный доступ ко всем серверам ЭГ и к полному исходному коду системы. Но доступа к серверам никто не дает, предлагается поверить на слово. Блокчейн тут ни при чем, уязвимость заключается в сайте 2020og.ru и прочем софте, который используется, чтобы выдать вам бюллетень и получить от вас результат.

Подробно:

Те, кто работает в IT, знают, что веб-сайты могут хранить логи действий пользователей за последние несколько месяцев: что пользователь прислал, с какого IP, и что получил в ответ. Это легко, дешево и помогает в разработке и поддержке. Логи можно складывать в единое хранилище (например, Elasticsearch), где они доступны для поиска и аналитики, и откуда данные, включая логины и пароли, регулярно утекают (1, 2, 3).

“Технически я не знаю, как радио работает. Какой смысл? Мне расскажут, что это рука бога, я поверю. Я не знаю, как работает электричество, я не понимаю, как устроены гаджеты и не должен это делать на самом деле”.
Алексей Венедиктов, заместитель председателя Общественной палаты Москвы, главный евангелист системы электронного голосования.

Логировать информацию можно на нескольких этапах:

  • балансировщик нагрузки (например, HAProxy или Nginx)
  • веб-сервер (Nginx, Tomcat)
  • код приложения
  • база данных

Теперь давайте посмотрим на главные этапы электронного голосования на сайте 2020og.ru. Следите за руками:

  1. Авторизация через mos.ru или Госуслуги. Вы вводите логин, пароль и код из смс, сервер дает браузеру идентификатор, по которому сайт электронного голосования может узнать, что вы это вы. На сервере может (!) логироваться время, ip, информация об ОС и браузере, логин, пароль и идентификатор.
  2. Получение бюллетеня. Вы отправляете запрос с вашим идентификатором пользователя и получаете в ответ страничку с бюллетенем. На сервере может логироваться время, ip, информация об ОС и браузере, идентификатор пользователя и идентификатор бюллетеня.
  3. Отправка голоса. Вы отправляете запрос с идентификатором бюллетеня и зашифрованным голосом. Все это попадает в блокчейн, вдобавок перед этим на сервере может логироваться время, ip, информация об ОС и браузере, идентификатор бюллетеня и содержимое транзакции (зашифрованный голос).
Кликните для увеличения и сразу назад

“Мы отдаем себе отчет в том, что наше решение не является тру-блокчейном. Чтобы оно стало таковым, правильным было бы сделать открытый блокчейн с возможностью разворачивания своего узла сети жителями с активной позицией, общественными организациями, политическими партиями. Также важна возможность отправки «слепков» данных в публичную сеть, например, Ethereum. Но эти доработки затрагивают огромное число законодательных и нормативных вопросов, на решение которых у нас не было времени. Это был эксперимент, основной целью которого было протестировать гипотезу о применимости технологии”.
Кирилл Поляков, руководитель продукта «Блокчейн», ДИТ Москвы

Как узнать, поддержал ли Политрук поправки в Конституцию? Программист ищет в логах из п.1 номер телефона Политрука, получает идентификатор пользователя. По идентификатору пользователя находим в логах из п.2 идентификатор бюллетеня. Дальше смотрим в блокчейн (предполагается, что при подсчете в нем будут опубликованы расшифрованные голоса) и/или в логи из п.3 (владея ключом, голоса можно расшифровать в любой момент) — и вуаля, видим, что Политрук против.

Конечно, каждый раз искать вручную — неудобно, зато можно написать программу, которая соберёт все эти данные и сделает табличку Excel, в которой будут красиво сопоставлены граждане и их голоса. Логи из разных источников легко объединяются, даже несмотря на то, что, например, Госуслуги и сайт ЭГ это разные системы на разных серверах. Было бы желание или приказ начальства. Кроме того, проследить путь пользователя можно по набору косвенных признаков: комбинация времени, ip и информации об ОС и браузере дают стопроцентный результат.

Московский эксперимент по дистанционному голосованию показал, что в ближайшие годы охватить им всю страну не представляется возможным, заявила “Ъ” глава ЦИК РФ Элла Памфилова. Для этого пока нет «ни технической, никакой готовности».
Элла Памфилова, председатель ЦИК РФ

Есть ли способ у ДИТа доказать, что логи действий пользователей не хранятся? Что они специально отключены, и что ни один программист не может получить к ним доступ? Нет. Они могут только говорить “честное слово, мы ничего не храним”, рассказывать про анонимизаторы, перемешивание с задержкой по времени, разделение ключа на три части и прочую скрытую от нас кухню — но нет никакого способа проверить, что они не врут. Доступ к серверам и тому, что на них происходит, есть только у ДИТ.

Вывод: нет оснований считать, что тайна голосования соблюдается при ЭГ. Нет смысла и верить в подлинность его результатов. Блокчейн на паре приватных серверов это насмешка над технологией и над пользователями. Итог голосования находится под контролем ДИТ, и доверять ему можно только если вы доверяете всем их поделкам, включая “Социальный мониторинг”.

Рекомендуем: Уязвимость тайны голосования при ЭГ: сценарий проверки.