«Это не блокчейн»: почему система голосования в Москве дала сбой и применима ли она вообще для выборов
8 сентября в России состоялся единый день голосования, в рамках которого в 79 субъектах прошли выборы разного уровня. В Москве в качестве эксперимента на трех избирательных округах (№№1, 10 и 30) для проведения голосования была использована система на базе блокчейна, разработанная столичным Департаментом информационных технологий (ДИТ).
Ожидалось, что блокчейн должен обеспечить защиту от вброса новых бюллетеней после окончания голосования. Однако в день выборов система сбоила, голоса не учитывались, хотя разработчики делали все возможное, чтобы оперативно устранять выявленные огрехи.
ForkLog поговорил с экспертами, в том числе с теми, кто тестировал работу данной системы, и выяснил, из-за чего стал возможен ее взлом за месяц до голосования, а также почему называть все это «блокчейном» в корне неверно.
Что из себя представляла система, разработанная ДИТ?
В мае 2014 года ДИТ представил проект «Активный гражданин» — площадку для проведения открытых референдумов в электронной форме, созданную по инициативе правительства Москвы. В ноябре 2017 года проект перешел на технологию распределенного реестра, являющуюся, по словам экспертов, клоном блокчейна Ethereum.
«Именно опыт ДИТ с «Активным гражданином» на блокчейне и привел к тому, что им поручили проводить эксперимент. Собственно в процессе подготовки выборов Московская городская избирательная комиссия писала нормативное регулирование выборов, следуя не духу избирательного законодательства, а возможностям блокчейна и информационных систем «Портала мэра Москвы»», — рассказал представитель Пиратской партии в технической рабочей группе при штабе наблюдения при Общественной палате Москвы, член общественной организации РосКомСвобода Александр Исавнин.
Примечательно, что за месяц до выборов французский криптограф Пьеррик Годри обнаружил, что размер ключей для шифрования в системе был меньше 256 бит, что позволяет не только взломать ее, но и следить за ходом выборов в реальном времени.
Самому Годри удалось восстановить все три секретных ключа всего за 20 минут.
Разработчики ДИТ в свою очередь не признали факта взлома схемы шифрования, однако пообещали увеличить размер ключа до 1024 бит.
В пресс-службе ДИТ журналу ForkLog сообщили, что до 8 сентября система электронного голосования прошла четыре теста, в ходе которых были отработаны все возможные сценарии и устранены выявленные недочеты.
«Систему абсолютно открыто обсуждали с техническими экспертами в составе рабочей группы в течение трех месяцев. Базовые части кода выложены в открытый доступ на GitHub. Несмотря на то, что в ходе тестов мы фиксировали многочисленные попытки взлома, ни одна из них не удалась», — отметили в столичном департаменте.
По словам Исавнина, система, используемая для электронного голосования на выборах, была полностью скрыта — никаких нод и внешнего взаимодействия. Соответственно не было возможности провести ее независимый аудит. По окончании голосования ключ для расшифровки голосов избирателей был собран из нескольких частей и записан в блокчейн.
Изначально мэрия обещала предоставить наблюдателям полный доступ к блокчейну, чтобы они могли отслеживать все транзакции из первоисточника. Это позволило бы контролировать весь процесс, включая подведение итогов. Однако позже от этого отказались.
Только после настойчивого требования наблюдателей для них был создан интерфейс, в котором в виде CSV-файлов частично публиковалась информация из блокчейна, отмечает Исавнин.
«Единственное, в чем можно было убедиться, что предыдущие записи не меняются, а избирательные комиссии могли бы (но ни одна не стала) проверить, что данные контрольной распечатки голосов в итоге совпадают с публиковавшимися.
Таким образом «блокчейн» на этих выборах был просто обычной базой данных, в которую сохранялась некая информация», — заключает Александр Исавнин.
Сами разработчики системы публично не объясняли своего решение отказаться от сервиса по проверке голосов избирателями и публикации приватного ключа. По неофициальным заявлениям, это было сделано для того, чтобы работодатели не смогли надавить на сотрудников. Другого способа противодействия этому разработчики якобы не придумали.
Таким образом, добиться проверки результатов можно будет только через суд — только там мэрия, в теории, согласится дать доступ к исходному блокчейну с ключом для расшифровки голосов. Других возможностей не предусмотрено.
По данным ДИТ, для участия в электронном голосовании зарегистрировались 11228 человек. Итоговая явка на электронное голосование составила 92,3%.
Чем были обусловлены сбои в работе системы?
8 сентября на избирательном участке № 30 (Центральное и Южное Чертаново) дважды возникала проблема с шифрованием голосов, из-за чего запись информации в блокчейн зависала более чем на полчаса.
«В первой половине дня в аппаратном модуле возник технический сбой и голосование пришлось временно приостановить, но нам удалось оперативно восстановить работоспособность системы», — сообщили в пресс-службе ДИТ.
По имеющейся информации, решить проблему помогла перезагрузка сервера шифрования голосов.
Представители ДИТ также подчеркнули, что все зарегистрированные избиратели смогли проголосовать.
«Мы связались с каждым из 543 человек, у которых возникли сложности с получением или заполнением бюллетеня. Им поступил звонок из колл-центра, push-уведомление в личном кабинете на mos.ru и сообщение по электронной почте или SMS. В итоге 462 избирателя после нашего уведомления вернулись к системе, получили бюллетень и проголосовали», — заявили в ДИТ.
Отметим, что аппаратную составляющую для системы электронного голосования обеспечивала компания «КриптоПро» — крупнейший производитель одобренной ФСБ криптографии. Речь идет о криптографическом модуле КриптоПро HSM 2.0.
Как заявлено на сайте производителя, пользовательские ключи хранятся в HSM в зашифрованном виде с использованием специальных мастер-ключей защиты. Кроме того, модуль поддерживает отказоустойчивые конфигурации и горизонтальное масштабирование при множественной подписи. По утверждению разработчиков, пакетная обработка данных позволяет формировать до 50 000 электронных подписей в секунду.
«Причины сбоев сейчас устанавливаются. Производится анализ логов системы. Эксперимент по электронному голосованию показал, что система работоспособна в целом. Нужно больше внимания уделить частным вопросам резервирования и проектирования. Уже сейчас ясно, что наше оборудование не требует изменений по итогам эксперимента», — заявил в комментарии ForkLog коммерческий директор компании «КриптоПро» Юрий Маслов.
Вероятнее всего, система ДИТ столкнулась с так называемым грейлистингом, полагает сооснователь MixBytes и преподаватель программы дополнительного образования Blockchain Lawyers Сергей Прилуцкий.
«Термин «greylist» используется, когда сайт или устройство временно банят слишком активно их опрашивающих пользователей. Похоже, что сработала подобная защита в одном из компонентов голосования, и голоса просто не дошли до блокчейна, и были отложены программой «на потом». Это обычный технический сбой — для запуска такого многокомпонентного сервиса подобные ситуации — норма. Надеюсь, по логам можно будет все восстановить, и команда все починит. Но вообще, как разработчик и криптограф я не верю в существование надежных электронных голосований по важным вопросам ни на блокчейне, ни в централизованных системах — таких алгоритмов со всеми гарантиями безопасности в реальности пока не существует», — заявил эксперт.
Свои коррективы в бесперебойную работу системы также внесла спешка и некачественное оборудование, продолжает Александр Исавнин.
«С момента принятия законодательства об эксперименте до выборов было только 100 дней. Любая большая и ответственная система если ее разрабатывать «к XXXV съезду КПСС» обязательно будет иметь недостатки и падать в самый ответственный момент. Особенно если использовать отечественное, абсолютно монополизированное оборудование для криптографической защиты информации», — указал он.
В преддверии выборов ряд СМИ сообщал о том, что система электронного голосования якобы была проверена Федеральной службой безопасности и Федеральной службой по техническому и экспортному контролю (ФСТЭК). Однако Исавнин выразил сомнение относительно достоверности этой информации.
«Российские криптографы и даже российские регуляторы в области криптографии и информационной безопасности (ФСБ и ФСТЭК) в разработке и обсуждении участия не принимали. В технической рабочей группе от этих организаций никого не было. И для выборов очень неплохо было бы, чтобы именно эти организации сами публично высказались», — сказал эксперт.
ForkLog отправил запрос в пресс-службу ФСТЭК, однако на момент выхода материала так и не получил ответа от ведомства.
Почему стала возможна расшифровка голосов после окончания голосования?
После публикации итогового CSV-файла данные блокчейна оказались временно доступны для общественности. За это время журналисты «Медузы» смогли воспользоваться приватным ключом и расшифровать данные, содержавшиеся в реестре.
В частности, им стали доступны:
- номер избирательного округа (1, 10 или 30);
- номер блока в блокчейне, куда была записана транзакция с голосом;
- время формирования этого блока;
- зашифрованный выбор избирателя.
«Для успешной расшифровки сообщений, зашифрованных по схеме Эль-Гамаля, кроме секретного ключа нам нужно было узнать один из компонентов открытого ключа — его модуль. Он был прописан в HTML-странице бюллетеня. Официальные результаты эксперимента, подведенные участковыми избирательными комиссиями № 5001, № 5002 и № 5003, полностью совпадают с расшифрованными нами голосами избирателей», — сообщили в «Медузе».
Таким образом, журналисты смогли поминутно восстановить ход интернет-голосования.
Также они указали на ряд странностей. Отведенные на голосование 12 часов оказались разбиты на неравные диапазоны:
- в течение трех часов голоса избирателей вообще не записывались в блокчейн;
- половина всех блоков с голосами была сгенерирована в течение часа (правда очень мелких — в 1-3 транзакции);
- в течение пяти часов в блокчейне оказались почти 1400 голосов (14% от общего числа).
Впрочем, причиной этому, вероятнее всего, послужили технические проблемы описанные выше, а не вбросы.
«Мы не знаем, была ли это оплошность организаторов эксперимента. Но, если они намеренно предоставили наблюдателям доступ к приватному ключу, непонятно зачем через несколько часов нужно было закрывать доступ к веб-интерфейсу блокчейна», — удивились журналисты.
Как должна работать система голосования на базе блокчейна в идеале?
В первую очередь система электронного голосования должна соответствовать требованиям, предъявляемым к выборам. Неизменная последовательность записей, как в блокчейне, для нее совершенно не обязательна, поскольку это может создавать угрозу анонимности голосования.
Для выборов нужны:
- Однозначная идентификация участников, чтобы гарантировать участие в выборах только гражданам, имеющим на это право.
- Добровольность участия и добровольность выбора.
- Анонимность голоса, чтобы голосующие не стали жертвами недовольных результатами голосования.
- Честность подсчета.
Во всем мире перечисленные требования достигаются созданием независимых избирательных комиссий, действующих гласно и коллегиально, говорит Александр Исавнин.
«В России, к сожалению, в процессе создания суверенной демократии комиссии перестали быть независимыми и действуют совершенно негласно. Помог ли в этом вопросе использованный приватный блокчейн? Конечно нет», — сообщил он в комментарии ForkLog.
Доказала ли система электронного голосования свою жизнеспособность?
Как пояснили в пресс-службе ДИТ, дальнейшее распространение системы электронного голосования на другие регионы РФ находится в компетенции ЦИК. Впрочем, эксперты настроены на этот счет скептически.
«На текущий момент при серьезных затратах на подкуп, подлог в электронном голосовании может быть очень гибко спрятан, неважно, используется там блокчейн или нет. Поэтому электронное голосование должно использоваться либо внутри компаний, либо по небольшим вопросам. Голосование на выборах — это точно не тот случай», — говорит Сергей Прилуцкий.
С ним согласен и Александр Исавнин.
«Я бы советовал вообще не использовать блокчейн. Он для этого не совсем подходит. Выборы — это очень ответственный процесс, в результате которого рождается легитимность и доверие к власти. Ничего лучше бумажных бюллетеней, прозрачных ящиков для голосования и гласной деятельности независимых комиссий пока не придумали. Доверия к технологиям (и особенно «порталу мэра Москвы») в обществе пока недостаточно даже для уверенного проведения честного голосования по вопросу бордюров и лавочек», — резюмирует он.
Первый блин комом
В прошедшей предвыборной кампании блокчейн являлся в большей степени средством привлечения внимания, нежели действительно новым подходом к организации системы голосования, полагает член Комиссии по правовому обеспечению цифровой экономики московского отделения Ассоциации юристов РФ Юрий Брисов.
«Во-первых, не было понятно, на каком конкретно техническом алгоритме была площадка построена, какие использовались ноу-хау, если использовались. Такая информация обычно указывается в проектной документации. По мнению ряда технических специалистов, высказавшихся на эту тему на просторах рунета, проект похож на копию других проектов, причем сделанную на скорую руку.
Блокчейн – это не игрушка, это серьезная интеллектуальная работа, на которую сегодня способны единицы профессионалов во всем мире, имена большинства из них известны, и мы не располагаем данными, что кто-либо из них был задействован в обсуждаемом проекте.
Во-вторых, использование технологии блокчейн в массовом сегменте, то есть вне среды специалистов требует серьезной культурологической подготовки. Это обучение сотрудников избирательного аппарата, наблюдателей, информационная поддержка граждан. И серьезнейшую роль в этом вопросе должно играть пояснение принципов децентрализации и условной анонимности – без понимания таких базовых вещей и договоренностей «на берегу», не следует даже пытаться начинать такую работу», — указывает эксперт.
Тем не менее Юрий Брисов не исключает, что в ближайшие несколько лет организация выборной технологии на базе блокчейна может быть налажена.
«Независимые демократические выборы – это тот институт общественного устройства, для которого технология блокчейн подходит лучше всего. Манифест создателей биткоина практически дублирует положения о выборах в конституциях развитых демократических государств. Соответственно, если мы считаем нашу страну развитым, демократическим государством, мы можем быть уверены, что технология блокчейн будет в скором времени внедрена в электоральный процесс. Надеемся, что это будет сделано по описанной нами схеме: основательно, обдуманно и серьезно. А описываемый проект предлагаем считать «первым блином», не удивляясь тому, что он вышел «комом»», — заключил юрист.
Подписывайтесь на новости ForkLog в Telegram: ForkLog Feed — вся лента новостей, ForkLog — самые важные новости и опросы.
Рассылки ForkLog: держите руку на пульсе биткоин-индустрии!