Большая часть опубликованных на нашем сайте материалов — это фиксация аномалий и прямых фальсификаций в системе ДЭГ непосредственно во время выборов. Однако некоторые «странности» организаторы допускали ещё на этапе тестирования. В 2023 году один из экспертов, пожелавший остаться анонимным, проанализировал тест московской системы ДЭГ и зафиксировал целый ряд уязвимостей: от проблем с выгрузкой SQL-дампов до замены смарт-контракта прямо во время голосования.

В финале материала автор даёт практические советы тем, кто планирует голосовать как онлайн, так и на традиционных офлайн-участках.

Подробнее об уязвимостях московской системы на этапе тестирования в 2023 году читайте в материале ниже.


25 августа 2023 года было проведено традиционное тестирование московской системы интернет-голосования (дистанционного электронного голосования, ДЭГ). Не буду повторять общие «особенности» московской системы ДЭГ. Здесь зафиксирую лишь актуальное про само тестирование и обозначу немного оценок и выводов.

Нынешний тест проводился с 08:00 до 14:00. Были офлайн-участки для тестирования новшеств типа стационарных терминалов электронного голосования (ТЭГ) и их переносных версий (ПТЭГ), которые в этот раз позволяли перевести в общую корзину ДЭГ голоса избирателей, пришедших на участки.

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

Формально (как я потом отыскал на mos.ru) обозначились следующие технические цели тестирования:

  • тестирование работы системы онлайн-голосования и электронных терминалов (проверка корректности и когерентности работы оборудования, понятности и удобства пользовательского интерфейса);
  • тестирование сценариев поведения избирателей (проверка корректности работы подсистем интернет-голосования и электронного списка избирателей в зависимости от возможных пользовательских действий);
  • стресс-тест системы (видимо, подразумевается нагрузочный тест, реакция на отключения связи, электричества и т. д.);
  • тестирование подготовки технической поддержки — созданной ДИТ Москвы структуры, которая контролирует и обеспечивает работу связи и оборудования на УИК, куда члены избирательной комиссии могут обращаться, если у них возникнут технические неполадки.

Про последние два пункта мало что можно сказать. Неадминистративных членов комиссий старались на тестирование не приглашать (независимого члена одного из ТИК «попросили удалиться» с такого участка). Однако про первые два пункта можно утверждать, что тесты прошли как минимум с заметными сбоями. Возможно, тестировались какие-то нерегламентированные особенности системы ДЭГ, и зафиксированные аномалии и сбои — это следствие этих дополнительных тестов. А может быть — отражение сырости нынешней версии системы.

Что касается работы серверной части системы ДЭГ, технические специалисты и наблюдатели отметили следующее (предварительные выводы одной из независимых экспертных групп можно посмотреть по ссылке):

1. В районе 08:00 наблюдались проблемы с доступом к сайту голосования https://elec.mos.ru. В первые минуты из-за лагов системы избиратели испытывали затруднения при голосовании. Тем не менее в первые 20 минут, как показал Observer, проголосовало 80 тысяч избирателей.

Что такое Observer

Observer — часть витрины системы ДЭГ. По сути, единственная наблюдаемая извне часть системы, которая в теории призвана отображать ключевое содержимое её блокчейна.

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

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

Но есть два больших «НО».

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

Прозрачность хранения бюллетеней имеет смысл лишь в совокупности возможностей и наличия средств контроля на всех остальных этапах, которые могли бы быть сделаны (о чем писали эксперты ещё с 2019 года), но по понятным причинам в российских системах не реализованы даже в минимально необходимом объёме.

Второе «НО» — более тонкое. Наличие публично доступного Observer’а не гарантирует, что отображаемые им данные — это и есть реальное содержание блокчейна (а также то, что блокчейн единственен и содержит полную информацию). По сути, это отображение части транзакций, но откуда взята эта информация, соответствует ли она реальному блокчейну — внешний наблюдатель доказательно проверить не может. Надежную проверку реальности блокчейна и соответствия информации в нём показываемой в Observer’e, могли бы обеспечить так называемые «ноды наблюдателей» с определёнными дополнительными возможностями. Но на данный момент независимым акторам (например, «Яблоку»), такие ноды «не отдают». И избирательным комиссиям их не дают. Впрочем, они и сами не просят, по факту отказываясь от какого-либо контроля за системой, технически находящейся под контролем региональной администрации.

2. В 08:23 прекратилось добавление транзакций в тот самый Observer на https://observer.mos.ru/ — внешняя витрина системы не отображала актуальный ход голосования. Нормальная работа восстановилась только под самый конец, с 13:40 до 14:00, то есть в сумме единственное наблюдаемое отражение блокчейна работало порядка 15% общего времени тестирования. Большую часть времени данные подгружались порциями, что необъяснимо в рамках стандартной блокчейн-архитектуры без дополнительных факторов или предположений. На перегрузку это списать нельзя, поскольку как минимум после 10:00 поток транзакций был небольшим.

3. Кроме самих транзакций, витрина голосования показывает и статистику (количество выданных и проголосованных электронных бюллетеней). Эксперты отметили аномалию уменьшения числа голосов: к 09:30, судя по статистике, было подано 86 134 голоса, в то время как к 10:00 — якобы только 78 646 голосов, что в накопительной блокчейн-архитектуре (без вмешательства в её структуру) невозможно. Теоретически можно списать это на глюки системы статистики, но в реальности это объяснение крайне неестественно: подсистема статистики достаточно проста и за годы эксплуатации должна была быть отлажена.

4. Самая странная история произошла с заменой смарт-контракта прямо во время голосования. Новый смарт-контракт был добавлен в блокчейн в 10:35, после чего, предположительно, организаторы скопировали (или перегенерировали) зашифрованные бюллетени за первые 2,5 часа голосования, а также технические голоса, поданные до 08:00, что по сути является новым блокчейном.

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

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

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

7. У ряда экспертов вызвали подозрение отражённые в Observer’е факты выдачи бюллетеней после остановки голосования в 14:00. На сайте и, соответственно, через терминалы ТЭГ на участках получить бюллетени после 14:00 было невозможно. При этом стоит отметить, что после 14:00 в блокчейн не было записано ни одного «проголосованного» бюллетеня.

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

9. … (без объявления войны) витрина блокчейна через 50 минут после завершения голосования оказалась внезапно недоступна для обозрения! Вход на observer.mos.ru стал запаролен. Это случилось вскоре после завершения расшифровки зашифрованных бюллетеней. Раньше тестовые блокчейны сохраняли доступным несколько дней для обозрения. Это, в совокупности с невозможностью выкачать SQL-дамп и выше обозначенными аномалиями в работе, породило целый спектр подозрений.

Касательно работы оборудования ДЭГ на офлайн-участках, на данный момент не удалось собрать статистически достоверного объёма информации. Однако зафиксированы шероховатости при распознавании паспортов в стационарных терминалах электронного голосования и отсутствие работающих переносных терминалов (ПТЭГ), которые будут использоваться при надомном голосовании. Кое-где (например, в Троицке) не запустились и стационарные терминалы. Но самое интересное — стало понятно, что характер работы офлайн комиссий на тестировании не благоприятствовал наблюдению, что проявилось, как кажется, в большей степени, чем в прошлые годы.

Из транзакции результатов голосования можно увидеть следующее:

Формально победила третья позиция в бюллетене (бесплатные аттракционы для детей). Но это малоинтересно.

Интереснее то, что система зафиксировала три недействительных бюллетеня.

Общее количество выданных электронных бюллетеней — 429 331, количество принятых электронных бюллетеней — 421 139.

Внимательному читателю с хорошей памятью последняя цифра по порядку величины напомнит цифру «нарисованных» голосов из московской системы учёта избирателей на праймериз «Единой России» в 2021 году. С другой стороны, по тому же порядку величины она напоминает нижнюю границу оценки управляемого, административно-зависимого электората в Москве (бюджетники, социально-зависимые категории и пр.). В отдельных ГБУ поступали сигналы об обязательном участии сотрудников в тесте, но в этот раз мы не можем сказать, что под мобилизацию был поставлен весь админресурс (например, в ёмкой системе московского Депобра подобных сигналов не отметили).

В электронном списке избирателей значатся 7 477 462 учётных записи. Это в том числе те, у кого нет аккаунта на mos.ru, но данные уже подгружены, и такой аккаунт для голосования может быть создан «на лету» прямо на избирательном участке. При этом численность московских избирателей, по данным ЦИК РФ на 1 июля 2023 года, — 7 628 278. Расхождение в 150 тысяч, можно попытаться объяснить (моя версия) объёмом несхождения паспортных и иных ключевых данных между реестром избирателей ГАС «Выборы» и, например, базой МВД. И/или недостатком информации по СНИЛС, который является уникальным идентификатором в системе учёта граждан.

Общая оценка

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

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

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

Советы избирателю и наблюдателю

  1. Голосовать в последний день: как электронно, так и бумажно. Лучше всего это делать во второй половине дня, но на электронном голосовании — не в последние час-два, чтобы не создавать излишней нагрузки.
  2. На офлайн-участке требовать бумажный бюллетень и бумажную книгу избирателей для подписи, отказываться от предлагаемого комиссией сканирования паспорта. Это поможет защитить хотя бы тайну волеизъявления, избежать риска попадания ваших персональных данных, копий паспорта и, возможно, самого волеизъявления во всякие большие цифровые базы данных. Для этого избирателю придётся прийти на свой участок по прописке, но надо учесть, что офлайн-участки укрупнили, сократив более чем в полтора раза, и стоит заранее узнать номер актуального участка и его адрес. Это можно сделать традиционно через mos.ru.
  3. Ещё полезнее попробовать пройти на участок наблюдателем от «системных кандидатов», если позволяет время и запас энергии, хотя бы на последний день. Да, наблюдать сейчас в оставшемся статусе мало за чем удастся, тем более большая часть избирательных действий проводится в компьютере члена или председателя УИК. Но ваше присутствие позволит добиваться выполнения хотя бы оставшихся прав на наблюдение за процессом, что год назад игнорировалось большинством комиссий. А также позволит фиксировать странности или нештатные ситуации, которые могут быть следствиями нерегламентированной работы ДЭГ.
  4. Если всё-таки собрались голосовать электронно, то обязательно стоит отметить галочку внизу бюллетеня о том, что вы хотите узнать адрес бюллетеня в блокчейне. Тогда у вас появится возможность проверить, что его приняли, а ваше волеизъявление записали и учли корректно.

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