Регионы
НовостиМненияАналитикаСервисыОбучениеО движенииСтать наблюдателемПоддержатьEn
ОтчетИнновацииМосква26 августа 2019, 06:00
Печатающие устройства. Фото: Григорий Мельконьянц

21 августа 2019 года прошло третье по счету публичное тестирование электронного голосования, которое было организовано непосредственно в тех округах (1, 10 и 30), где 8 сентября запланирован эксперимент по дистанционному электронному голосованию (ДЭГ) на выборах в Московскую городскую думу седьмого созыва. Горожанам предлагали ответить на вопросы, касающиеся перспектив развития их районов (см. интерфейс голосования в приложении). Было выдано 1806 электронных бюллетеней. Всего на участие в тестировании зарегистрировался 3401 избиратель. Средняя явка по трем округам составила 53,1%.

Это было первое тестирование с голосованием по трем округам. В первом тестировании, по вопросам студенческого самоуправления, и во втором, по судьбе бездомных животных, в системе тестировался лишь один округ.

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

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

Настоящий отчет подготовили Дмитрий Кузнецов, Григорий Мельконьянц, Дмитрий Нестеров и Евгений Федин, наблюдавшие за тестированием.

1. Успехи тестирования

1.1. Более надежная длина ключа шифрования

Исправлена уязвимость, позволявшая злоумышленнику, имеющему доступ к системе на уровне избирателя, получать до окончания дня голосования данные о голосах, поданных за кандидатов, показанная Пьерриком Годри в исследовании «Взлом схемы шифрования Московской системы интернет-голосования». Она заключалась в низкой стойкости используемого шифрования из-за выбора малой длины ключа. Ключ шифрования был удлинен с 256 до 1024 бит.


Распечатанный лист с зашифрованным голосом
Фото: Григорий Мельконьянц


1.2. Демонстрация избирателю зашифрованного голоса для проверки

В интерфейс избирателя добавлена функция, когда после голосования на странице появляется код с зашифрованным голосом и ссылка, которая должна была вести на инструмент расшифровки голоса после окончания голосования.

У этого плюса может быть оборотная сторона. Технической рабочей группе не предоставили возможность проанализировать, может ли использование данной ссылки приводить к деанонимизации голоса. Такое может случиться, к примеру, если ссылкой может пользоваться только авторизованный на портале mos.ru пользователь, и её использование сопровождается соответствующим логированием.


Экран, возникающий перед избирателем после голосования
Фото: Антон Щербаков


1.3. Сервис для наблюдателей с прямой трансляцией записей в блокчейн

Появился удобный инструмент «витрина наблюдателя» для доступа к данным, записываемым в блокчейн (см. скриншот), в том числе с генерацией csv-файлов с голосами. К сожалению, этот сервис через час после расшифровки голосов был отключен.


«Витрина наблюдателя»
Скриншот: Григорий Мельконьянц


1.4. Расширен функционал рабочего места члена комиссии

В интерфейсе автоматизированного рабочего места члена комиссии был добавлен новый функционал:

  • индикатор работоспособности системы (зеленый, желтый, красный), 
  • вкладка с обращениями избирателей (которые поданы через личный кабинет и прошли фильтрацию на отсев технических вопросов и вопросов, не относящихся к дистанционному электронному голосованию, службой поддержки ДИТ),
  • данные статистики стали чаще обновляться: через 15 минут вместо 30.


Экран «статистика» автоматизированного рабочего места председателя
Фото: Григорий Мельконьянц


1.5. Аварийные тесты

Успешно прошли аварийные тесты в середине дня голосования УИКов. Они необходимы, чтобы показать, что голоса не пропадают и не добавляются новые в ситуациях: при отключении питания от печатающих устройств, потере ими связи с интернетом и, главное, при нарушении сетевой связанности (проблема, которая возникала в первом тестировании на студентах). При этом на автоматизированном рабочем месте включался соответствующий индикатор работоспособности системы индикатор.


Наблюдение за аварийными тестами
Фото: Общественная палата Москвы


1.6. Бумажный след

Усовершенствованы распечатки расшифрованных голосов для удобства проведения ручного подсчета голосов. Во-первых, расшифрованные голоса на бумажном носителе стали печатать не по одному на отдельных листах, а по девять, что повысило компактность и удобство. Во-вторых, появилась возможность сопоставления распечатки с зашифрованным голосом и расшифрованного голоса по короткому числу. Относительно небольшое число голосов упрощает нахождение пары зашифрованный — расшифрованный. На втором тестировании по номеру блока и хешу задачу поиска совпадающей пары в разумные сроки решить было практически невозможно.

Успешно протестирована распечатка бумажного списка избирателей после окончания голосования с отметками о факте выдачи электронного бюллетеня.

2. Неудачи тестирования

2.1. Сбой процедуры расшифровки голосов

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

Более того, принтеры начали печатать таблицы с одним и тем же «расшифрованным» результатом голосования «Вариант 0» для всех бюллетеней. С учетом того, что разработчики нумеруют варианты ответов на вопросы начиная с нуля, это выглядело не как нулевой результат, а как фактический результат голосования. Например, для первого округа под номером «0» значился ответ «Отдельной ветки скоростного трамвая с пересадкой на метро» на вопрос «Чего, на ваш взгляд, не хватает в Зеленограде?».


Таблицы для процедуры ручного подсчета голосов
Фото: Григорий Мельконьянц


Процесс расшифровки пытались запустить многократно, однако это удалось сделать только в 00:23 ч (более чем через четыре часа после окончания голосования).

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


2.2. Низкая вовлеченность членов комиссий и слабое понимания о необходимых действиях

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

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


Члены комиссии подсчитывают количество распечатанных листов с зашифрованными голосами
Фото: Григорий Мельконьянц


Помимо организации обучения членов избирательных комиссий необходимо разработать Рабочий блокнот члена УИК по ДЭГ. 


2.3. Не запустился сервис проверки правильности учета голоса

Полный функционал обещанного сервиса для избирателей, который позволял бы расшифровать голос и анонимно проверить правильность его учета, по неизвестным причинам не запустился. Ссылка на него давалась избирателю сразу после голосования — https://www.mos.ru/pgu/ru/app/mgik/mgd-view/. Сервис состоит из двух частей: первая часть была реализована — демонстрация избирателю после голосования цифрового кода с зашифрованным голосом, а вторую часть — не запустили, это непосредственно интерфейс, куда избиратель может вставить цифровой код, чтобы проверить правильность учета голоса.


Скриншот страницы https://www.mos.ru/pgu/ru/app/mgik/mgd-view/


2.4. Нестандартное поведение печатающих устройств

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

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

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


2.5. Противоречивая статистика

Выявленная на прошлых тестированиях проблема с противоречивыми статистическими данными не решена. Например, на 8:15 число выданных бюллетеней было 20, проголосовали — 12 человек, а отправленных СМС и заходов на страницу голосования — по нулям.


2.6. Работа с электронными обращениями не налажена должным образом

Специфика дистанционного электронного голосования должна предусматривать возможность подачи обращений (жалоб, заявлений) удаленно. На практике обращения, направляемые гражданами через личный кабинет mos.ru, проходят предварительную обработку операторами ДИТ. Из большого количества обращений, поступающих в ДИТ, операторы должны отобрать те, которые относятся к голосованию, а затем определить, направлять их техническим специалистам для решения проблемы или в избирательную комиссию для рассмотрения. Это приводит к ошибкам классификации, что ведет к тому, что до избирательной комиссии жалобы не доходят. Необходимо принять порядок обработки поступающих обращений.

Например, одна из поданных жалоб через личный кабинет mos.ru спустя три с половиной часа после начала голосования не привела к тому, что до окончания голосования она могла быть правильно обработана. Выявлены проблемы с классификацией жалоб: жалоба, отправленная совместно двумя участниками рабочей группы, была классифицирована как «детский отдых». В результате жалоба не была отражена в статистике на автоматизированном рабочем месте члена комиссии, текст жалобы не появился в соответствующей вкладке интерфейса, она не была рассмотрена и не отражена в протоколе.


2.7. Принуждение к участию в голосовании

В социальных сетях появились публикации о признаках использования административного ресурса на третьем тестировании системы дистанционного электронного голосования. В частности, о принуждении к участию в тестах работников центров социального обслуживания. Это подтверждает существующие опасения о новых возможностях применения административного ресурса при использовании интернет-голосования на выборах. К тому же есть основание полагать, что происходило голосование одних граждан за других.


Сообщения в Твиттере
Скриншот


Сообщения в Твиттере
Скриншот


3. Недостатки тестирования

3.1. Высокая доля непроголосовавших

Средняя явка по трем округам составила 53,1% (округ №1 — 55%, №30 — 54,6%, №10 — 49,2%). Дистанционное электронное голосование сложно сравнивать с традиционным голосованием в помещении для голосования, однако его можно попробовать сравнить с «надомным» голосованием. Если на «надомное» голосование много заявок, а по факту голосует лишь половина — это у наблюдателей сразу вызывает вопросы. Например, это может быть следствием технологии повышения явки, когда избирателей без их ведома незаконно записывают в реестр «надомников».

Значительное число записавшихся на участие в тестировании дистанционного электронного голосования (около 50 %) не приняли в нем участия по неясным причинам. Это тревожный факт, так как следует учитывать, что граждане предприняли определенные усилия для регистрации на тестирование и их отказ от голосования организаторам тестирования по возможности необходимо объяснить.

Как минимум может быть три объяснения высокой доли непроголосовавших. Первое — избиратель по тем или иным причинам передумал или забыл голосовать. Вторая причина — избирателя принудили административным образом зарегистрироваться, чтобы повысить показатель заявок на тестирование и он не стал голосовать, посчитав, что регистрации достаточно. Третья причина — технические ошибки, не позволившие проголосовать.

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


3.2. Использование кода без предварительной публикации 

Выяснилось, что при проведении тестирования использовался код, отличный от размещенного ДИТ на github. Это обстоятельство могло затруднить тестирование системы экспертным сообществом, так как специалисты рассчитывали увидеть один код, а ДИТ использовал другой.



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


3.3. Неоптимальный формат печатных документов для проверки

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

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

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

Выбрано неудобное количество строк таблицы расшифрованных голосов на одном листе (9 вместо 10). 

В принтерах при печати использовались два варианта настроек шрифтов, один из которых (более крупный) приводил к тому, что четырехзначные номера бюллетеней, как в исходных бюллетенях, так и в таблицах расшифрованных голосов, печатались с переносом одного разряда на вторую строку, что создавало неудобство при сортировке бюллетеней и сопоставлении с таблицами расшифрованных голосов. Более компактный вариант настройки шрифтов оказался более удобен, не приводил к переносу четырехзначных номеров и позволял уместить 10 строк с голосами на одной странице.


3.4. Не документируется на бумажном носителе открытый ключ

Не учтены предложения печатать открытый ключ на бюллетенях с зашифрованными голосами, и печатать QR-код зашифрованного голоса (на бюллетене и в таблице с расшифрованными голосами), что позволило бы производить проверку правильности расшифровки голоса после завершения голосования без необходимости набора длинной последовательности символов, что времязатратно и может сопровождаться ошибками.


3.5. Попытки взлома и атаки ботов 

Руководитель общественного штаба по наблюдению за выборами Общественной палаты Москвы, инициатор проведения эксперимента по дистанционному электронному голосованию Алексей Венедиктов заявил в день голосования фиксации попыток взлома и атак ботов на систему.

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


Сообщения в Телеграме
Скриншот


В частности, не сообщено, на какие именно сервера осуществлялись запросы, какого рода они были, по каким критериям были отнесены к атакам ботов, как на эти запросы реагировала серверная инфраструктура. Осталось непонятным, кто и кому обещал осуществить взлом за 20 минут.

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

Приложение. Интерфейс голосования


Скриншот: Яков Большун
Скриншот: Яков Большун
Скриншот: Яков Большун


Скриншот: Яков Большун


Скриншот: Яков Большун



Скриншот: Яков Большун


Скриншот: Яков Большун


Скриншот: Яков Большун


Скриншот: Яков Большун
Скриншот: Яков Большун


Эксперимент по интернет-голосованию в Москве

На выборах депутатов Московской городской Думы в трех округах (1, 10 и 30) проходил эксперимент по дистанционному электронному голосованию. Поспешность разработки системы вызывает серьезные опасения в части соблюдения тайны голосования, надежности технических решений и возможностей для наблюдения. Эксперты «Голоса» вошли в состав технической рабочей группы и электронного штаба по наблюдению для проведения контроля за разработкой и тестированием.

Все материалы сюжета
Другие записи по теме «Инновации»
МнениеИнновациимесяц назад
Как ДЭГ уступил конкурсам и викторинам
Юлия Кайкконен
РазборИнновациимесяц назад
Как устроено интернет-голосование и как за ним можно наблюдать
Спойлер: нет смысла следить за цифрами, которые показывает экран, если вы не знаете, откуда эти цифры берутся
НовостьИнновации5 месяцев назад
Суд в Москве впервые рассматривает иск к федеральной комиссии ДЭГ
Эксперт в области систем электронного голосования Виктор Толстогузов считает, что результаты дистанционного электронного голосования (ДЭГ) на выборах губернатора Подмосковья нужно отменить
МнениеИнновации5 месяцев назад
Москвич проголосовал, но его голос не был учтён
На жалобу он получил ответ, что «нужно корректно вводить номер своего бюллетеня»