Эксперты рассказали о рисках блокчейн-голосования за поправки в Конституцию РФ
1 июля состоится общероссийское голосование по поправкам к Конституции РФ. За пять дней до этого в двух областях – Московской и Нижегородской – для волеизъявления граждане смогут воспользоваться онлайн-системой на базе блокчейна.
Она разработана Департаментом информационных технологий (ДИТ) Москвы, в ее основе лежит блокчейн-решение Exonum от компании Bitfury. Консультационные услуги разработчикам оказывала «Лаборатория Касперского».
ForkLog обсудил с экспертами наиболее уязвимые места новой системы и узнал, какие потенциальные угрозы для избирателей она несет.
Что известно о технических характеристиках системы?
Как рассказали ForkLog представители ДИТ Москвы, их ведомство постоянно изучает популярные блокчейн-платформы, и любая из них потенциально может лечь в основу разрабатываемых департаментом решений. В этот раз специалисты остановили свой выбор на платформе Exonum от Bitfury, поскольку она рассчитана на более высокую пропускную способность.
«Блокчейн-технология работает в режиме Proof of Authority. За учет голосов пользователей отвечает смарт-контракт реестра бюллетеней, он будет сохранять зашифрованные голоса участников в блокчейн-системе, а после окончания голосования — расшифровывать и публиковать результаты», – говорится в сообщении ДИТ на сайте мэра Москвы.
В самой Bitfury отказались от комментариев на этот счет.
По словам ДИТ, в техническом аудите системы приняли участие эксперты в области информационной безопасности и криптографии, в том числе «Позитив Технолоджис» и «Лаборатория Касперского».
«Перед всеми участниками стоит основная задача – замечания и рекомендации в части защиты системы при проведении тестирования и поиск уязвимых мест в основном решении», – сообщили в ведомстве.
Представители “Лаборатории Касперского” подтвердили ForkLog участие в проекте:
«Лаборатория Касперского» продолжает оказывать экспертную поддержку для ДИТ Москвы. Мы обладаем экспертизой и значительным опытом по обеспечению безопасности и прозрачности массовых онлайн-голосований с применением блокчейн-технологий на нашей платформе Polys».
Идентификация пользователей будет осуществляться через сайт мэра Москвы и портал Госуслуги. Во время голосования пользователь перенаправляется на адрес электронного бюллетеня при помощи анонимайзера.
«Уникальная ссылка формируется случайным образом из трех источников – личного кабинета избирателя на портале mos.ru, браузера и в защищенной сети блокчейна, что обеспечивает «многослойную» защиту системы от взломов и стороннего вмешательства», – отметили в ДИТ, добавив, что технология ранее «показала свою надежность от утечек».
Специалисты утверждают, что технически соединить отданный голос с персональными данными избирателя невозможно.
«На этапе формирования зашифрованного голоса пользовательский браузер создает открытый ключ для подписания транзакции в блокчейне. После попадания голоса в систему и выхода пользователя из браузера ключ подписи автоматически уничтожается».
Дополнительную анонимизацию разработчики обещают за счет искусственной задержки поступления данных в блокчейн, уникальной для каждого голоса.
Защитить систему от утечек промежуточных итогов голосования позволит разделение секретного ключа для дешифровки результатов между должностными лицами организаторов голосования, рассказали в ДИТ:
«Расшифровать результаты возможно только при соединении всех частей ключа. Во время голосования система автоматически зашифровывает голоса прямо на устройствах избирателей и отправляет зашифрованные голоса в блокчейн».
Разработчики предусмотрели шифрование каналов обмена информации. Пользователи Яндекс.Браузера, Спутника и криптографической библиотеки КриптоПРО CSP будут защищены отечественным алгоритмом ГОСТ Р 34.10-2012, основанным на эллиптических кривых. Остальные браузеры – традиционным шифрованием с использованием SSL-сертификатов.
«Сегодня мы продолжаем совершенствовать основные организационно-технологические решения, которые помогают обеспечить полную анонимность избирателя и тайну голосования. Например, теперь электронный бюллетень будет «жить» не 15 минут, а до тех пор, пока пользователь не проголосует, в пределах времени, определенного для голосования», – добавили в ДИТ.
Что смутило экспертов?
Главный риск этой блокчейн-системы в том, что организатор голосования может быть сам заинтересован в изменении его результатов, предупреждает технический директор «РосКомСвободы» Станислав Шакиров:
«Если мы легко можем отследить фронтенд-историю – то, что браузер делает в рамках этого голосования, – то мы совершенно не можем отследить, что происходит, когда браузер отправил на сервер запросы после голосования. И то, как обрабатываются эти голоса дальше, мы можем воспринимать только на веру».
Шакиров подчеркивает, что вся система базируется только на доверии к властям.
«При желании организаторы голосования могут и соотносить пользователя с его голосом, и модифицировать голос пользователя, и добавлять голоса неучтенных пользователей», – указывает эксперт.
Все гарантии, которые даются этой системой, основаны на доверии к веб-сервисам, которые обеспечивают электронное голосование, соглашается руководитель отдела исследований MixBytes Сергей Прилуцкий.
«В текущем дизайне системы – если процедура голосования и анонимизация производится на серверах, контролируемых государством, и блокчейн контролируется государством, – то из-за законов, предоставляющих силовикам полный доступ к любым государственным ресурсам, люди, имеющие доступ к этим ресурсам могут производить и вбросы, и деанонимизировать граждан, и собирать персональные данные».
При этом стоимость электронных вбросов и сливов информации существенно ниже, чем бумажных – так как программе не важно, сколько операций выполнять, сто или тысячу, добавил Прилуцкий.
Он указал, что электронные голосования можно проводить без блокчейна, если есть доверие к государству и силовым ведомствам, «как это уже происходит в Швейцарии и Эстонии, но пока не может использоваться в России».
По его словам, текущую систему блокчейн может изменить только частично, и только в случае использования продвинутых алгоритмов, например, — гомоморфного шифрования.
«Идеальным блокчейном для политических голосований был бы публичный блокчейн, в котором валидаторы люто ненавидят друг друга и пытаются поймать друг друга на обмане», – заявил исследователь.
Публичный аудит системы для голосования не проводился, что уже не внушает доверия к ней, объясняет системный архитектор блокчейн-платформы Apla Александр Болдачев.
Главной технологической уязвимостью системы он назвал наличие единой точки отказа:
«Все данные о голосовании приходят на один сервер, принадлежащий устроителям голосования, подписываются одним криптографическим ключом и посылаются транзакцией в приватную блокчейн-сеть. Такое решение и привело к сбоям при московском голосовании в прошлом году».
По словам эксперта, предложенная архитектура, когда блокчейн-технология используется, по сути, только для хранения подписанных владельцами системы транзакций, открывает возможность фальсификации данных на отрезке между устройством голосующего и сервером, отправляющим транзакции в сеть.
«То есть система обеспечивает только неизменность транзакций, попавших в блокчейн-сеть, и не гарантирует соответствия выбора пользователя данным в транзакции», – объясняет Болдачев.
Каждый этап голосования – идентификация, аутентификация и отправка голоса – проходит не через добавление подписанной транзакции в блокчейн-сеть, а по стандартным, хотя и защищенным, веб-протоколам. Это вызывает у специалиста сомнения относительно анонимности пользователей.
«Поскольку механизм, предотвращающий возможность установления соответствия между пользователем и транзакцией, реализован на веб-уровне системы, до посылки транзакции в блокчейн, доверять ему нет оснований. Например, при разреженном потоке сообщений от пользователей легко можно установить это соответствие по временной последовательности авторизаций и транзакций».
В целом, обсуждаемую архитектуру нельзя назвать системой голосования на блокчейне, резюмирует Болдачев:
«Мы имеем дело с обычным механизмом интернет-голосования с использованием приватной блокчейн-сети только для хранения итогов голосования. Поэтому обсуждения самого блокчейна – от используемых криптографических алгоритмов до количества нод и механизма консенсуса – лишены смысла».
Неудавшийся взлом и фейковые аккаунты
В тестовом голосовании, проходившем с 18 по 19 июня, приняли участие почти 90 тысяч человек. В ходе тестирования за успешный взлом системы предлагалось вознаграждение в 2 млн рублей. Однако, по словам зампредседателя Общественной палаты столицы Алексея Венедиктова, хакеры с задачей не справились.
«Систему не удалось взломать. Были какие-то слабые попытки, но ничего серьезного. Поэтому те 2 миллиона, которые были объявлены в виде награды, некому отдать. Но я принимаю решение, что большая часть из этих 2 миллионов будет отдана в рабочую группу, которая разрабатывала систему», – прокомментировал он.
Вместе с тем корреспондент телеканала «Дождь» обнаружил WhatsApp-чат, где желающим заработать массово раздают сим-карты и базы с персональными данными пожилых москвичей. За регистрацию аккаунта платят 75 рублей, а за голосование в поддержку поправок — 50. По утверждению СМИ, таких голосов в Москве могут быть «десятки тысяч».
Журналист издания «Медуза» в ходе эксперимента сумел завести фейковый аккаунт для регистрации на голосование по Конституции, введя персональные данные паспорта, адрес, СНИЛС и дату рождения своего родственника-пенсионера. Также оказалось, что постановления ЦИК о крайнем сроке регистрации личного кабинета для голосования просто не существует.
В общей сложности заявки на участие в электронном голосовании подали более 1,14 млн москвичей и свыше 138 тысяч нижегородцев. До 24 июня ЦИК создаст реестр электронных избирателей.
Электронное голосование для москвичей начнется 25 июня и завершится 30 июня.
Напомним, первый эксперимент по электронному голосованию был проведен на выборах в Мосгордуму седьмого созыва 8 сентября 2019 года.
За месяц до выборов французский криптограф Пьеррик Годри сумел взломать систему. Как оказалось, приватный ключ для расшифровки голосов был записан в одну из транзакций и мог быть легко извлечен из нее, что позволило выяснить, как проголосовали конкретные люди.
Исследователь отметил, что основная слабость системы заключается в слишком маленьком размере ключей для шифрования — менее 256 бит вместо необходимых, по его словам, 2048 бит.
В ДИТ факт взлома схемы шифрования не признали.
В этом году Пьеррик Годри не уделял внимания изучению темы. Тем не менее он передал запрос ForkLog нескольким специалистам по электронному голосованию.
«Надеюсь, коллеги найдут время изучить вопрос и сообщить, если обнаружат что-то странное», – написал Годри.
Подробнее о первом опыте российского голосования на блокчейне читайте в специальном материале ForkLog.
13 мая 2020 Госдума РФ приняла поправки в законодательство, позволяющие проводить дистанционное голосование на федеральном уровне.
Подписывайтесь на новости ForkLog в Telegram: ForkLog Feed — вся лента новостей, ForkLog — самые важные новости и опросы.
Рассылки ForkLog: держите руку на пульсе биткоин-индустрии!