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

Теория электронного голосования Праймериз

25 июня началось онлайн-голосование по поправкам в Конституцию. Москвичи могут проголосовать в Интернете — с любого устройства. Но насколько это анонимно и безопасно?

Что такое I-голосование

Новые технологии используются во всех избирательных процессах — от регистрации избирателей до подведения итогов голосования.

Австралия, Индия, Таиланд, Россия и Южная Корея наиболее активно тестируют внедрение онлайн-голосования на основе технологии блокчейн. Однако использование блокчейна необязательно способствует укреплению доверия к процессу выборов — необходимо высокое доверие к органам, которые проводят выборы, и полная прозрачность компаний-поставщиков инновационных решений. Отсутствие прозрачности вендоров ПО несут риск ослабить общественное доверие к избирательному процессу.

Сингапур решил не проводить онлайн-голосование на ближайших выборах из-за множества рисков. Эта тема обсуждалась в парламенте 4 мая 2020 года, поскольку был принят законопроект, позволяющий провести выборы во время пандемии COVID-19. Ответственный министр Чан Чун Синг сказал, что многие страны столкнулись с двумя основными проблемами — тайна голосования и голосование от имени другого человека, поэтому Сингапур решил не применять онлайн-голосование.

Архитектура доверенной электоральной системы

Время на прочтение

В прошлой нашей публикации — тексте доклада Алексея Щербакова «Уроки электронного голосования в Московскую Городскую Думу 2019 года» на конференции AnalogBytes Conf 2020, проходившей 5 марта — был разобран один из свежих примеров проведения дистанционного электронного голосования (ДЭГ) и показано, почему оснований доверять его результатам не было.

Подчеркнём: то, что оснований доверять системе нет, не означает, что результаты обязательно фальсифицировались. Это означает, что они могли быть фальсифицированы.

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


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

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

«Из коробки» классическое бумажное голосование обеспечивает нам, как минимум:

Давайте разбираться, можно ли это всё реализовать в ДЭГ (ответ для нетерпеливых: да).

Тайна голосования

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

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

Вместе с тем, принципиальной необходимости строить ДЭГ именно так нет никакой — кроме, разумеется, логики «нам так проще».

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

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

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

В момент отдачи голоса этот голос подписывается ключом избирателя и отправляется на сервер голосования, который сверяет ключи и учитывает голос. Сам факт наличия у избирателя его половинки ключа является подтверждением его права на голосование; знать личность избирателя сервер учёта голосов не знает и знать не может.

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

В случае тайного голосования сервер учёта голосов только подтверждает серверу аутентификации факт свершившегося голосования.

В остальном же схема с двумя независимыми серверами — и только она! — позволяет реализовать тайну голосования в электронной форме.

Схемы, в которых используется единый сервер, доверенными в этом контексте считаться не могут по определению; все заявления их авторов об отсутствии регистрации имён избирателей в связке с отданными ими голосами держатся исключительно на доверии к чистоплотности и аккуратности данных авторов (и все мы помним, что в IT-индустрии — тысячи примеров, когда автор сервиса не имел в виду ничего плохого, просто забыл в релизной сборке отключить отладочное логгирование).

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

Аутентификация пользователей

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

(ЕСИА — Единая система идентификации и аутентификации — это система авторизации в «Госуслугах»; партиям недавно разрешили использовать её для праймериз и сбора подписей)

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

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

Аудит хода голосования

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

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

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

Предотвратить это можно несколькими способами:

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

Аудит результатов голосования

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

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

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

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

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

Голосование под давлением

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

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

Кроме того, постфактумное обнаружение массовых переголосований (база данных фиксирует все голоса, последний отданный учитывается уже при подсчёте) может указывать на наличие явной проблемы и повод для начала расследования.

Заключение

Таким образом, вопреки заявлениям некоторых экспертов, политиков и политологов, построение доверенной и надёжной системы дистанционного электронного голосования возможно.

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

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

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

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

P. S. Будут ли такие системы кем-либо внедряться на практике — вопрос открытый. Но технологическая возможность их разработки, внедрения и использования есть.

Автор текста — Олег Артамонов (olartamonov), руководитель службы научно-технической экспертизы Партии прямой демократии.

P. S. Завтра в эфире: пока ДИТ Москвы всё обещает, мы уже собираем за одним столом юристов, пиратов, политтехнологов, математиков и хакеров с Хабра.

Шаг 2. Формирование ключей и замков

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


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

Ключи и замки

На самом деле, там чуть сложнее, но суть одна — этот ключ формируется и находится у представителей власти. В 2022 году ключ разделили на пять частей. Перед подведением итогов голосования его соединяют обратно. Хранителями пяти частей ключа стали: • Руководитель Общественного штаба по наблюдению Вадим Ковалев• Секретарь Мосгоризбиркома Владимир Попов• Председатель Мосгордумы Алексей Шапошников• Член ЦИК РФ Антон Лопатин• Глава городского округа Троицк Владимир Дудочкин. Почему именно они? Потому что

Как устроено электронное голосование простым языком и в рисунках

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

Но проблема в том, что система достаточно сложна и имеет свои нюансы. Если рассказывать далекому от IT человеку про все тонкости блокчейна и шифрования, то он послушает вас минуту, а потом развернётся и уйдет по своим делам, ничего не поняв. Это одна из главных проблем электронного голосования — 99% избирателей не понимают, как оно работает и где оно может нас обмануть.

Как говорил Стивен Хокинг, любая формула снижает количество читателей вдвое. Мне кажется, что любой IT-термин снижает аудиторию минимум втрое, поэтому я попытался не использовать профильные термины, а объяснил все «на пальцах» и в комиксе! Надеюсь, у меня это получилось.

Если Вы хотите узнать поглубже о проблемах электронного голосования, рекомендую статью Петра Жижина:

Сундук — Зашифрованная информацияЗамки и ключи — Ключи шифрованияБлокчейн — Витрина

Шаг 1. Формирование списка кандидатов


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

Демонстрация кандидатов и их номеров наблюдателям

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

Кто предлагает протоколы и блокчейн для онлайн-голосования в России и насколько все прозрачно?

Правительство Москвы на выборах по внесению поправок в Конституцию использует собственную систему онлайн-голосования на основе блокчейна Exonum, разработанного голландской компанией Bitfury Holding BV. Система идентификации личности избирателя и обеспечения анонимности (аналог слепой электронной подписи) разработаны Департаментом информационных технологий Правительства Москвы, но информация о том, чей протокол будет использован, отсутствует. Также отсутствуют публичные данные по тендерам, привлекаемым подрядчикам и стоимости выполненных работ разработки, однако ДИТ не отрицает использование услуг «Лаборатории Касперского».


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

Проект Waves Enterprise


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

Шаг 3. Голосование


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

Подмена номеров кандидатов

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


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

Избиратель запирает бюллетень и прикладывает к сундуку ключ

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


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

Браузер избирателя закрывает сундук на двойной замок, состоящий из половинок Избирателя и половинки ДИТа

Шаг 4. Секретное шифрование


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

ДИТ тайно засовывает настоящий сундук с бюллетенем в свой фальшивый

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


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

Фальшивый сундук невозможно проверить независимым наблюдателям даже имея ключи от настоящего сундука

Waves vs Exonum

Оба проекта — Polys и Waves — разделяют процесс идентификации личности избирателя и голосование. Д ИТ предлагает пройти идентификацию личности на mos.ru или gosuslugi.ru. Ни один из проектов не предусматривает процесс верификации голосования именно избирателем, прошедшим идентификацию, а не, например, ассистирующим лицом в случае с престарелыми людьми или инвалидами.

Предусмотрено несколько способов идентификации, включая подключение сторонних систем:

Polys: по уникальному коду, по СМС или по электронной почте. Также можно воспользоваться системой, поддерживающей протокол OpenID.

Waves: по учетной записи на сервисе авторизации Waves Enterprise. Реализована защита от принуждения к голосованию — каждый пользователь может проголосовать повторно до окончания голосования. При этом будет учтен только последний бюллетень. Планируется усилить безопасность решения с помощью двухфакторной аутентификации и облачного хранения ключей электронной подписи. Также рассматривается использование системы типа ЕБС — единой биометрической системы.

Waves обеспечивают анонимность голосования двумя способами:

«Как работает слепая подпись: пользователь отправляет свой зашифрованный (ослепленный) идентификатор (публичный ключ) сервису регистрации пользователей. Сервис регистрации проверяет право пользователя на участие в голосовании и возвращает ему подпись этого идентификатора. При отправке зашифрованного бюллетеня пользователь прикладывает подпись, полученную ранее. Данная подпись проверяется смарт-контрактом в блокчейн-сети. Таким образом пользователь, идентифицировавшись в системе голосования без разглашения своего идентификатора, может получить подтверждение валидности идентификатора, которая будет проверена при проверке бюллетеня смарт-контрактом»,  — рассказал Артем Калихов, директор по продукту Waves Enterprise.

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


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

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

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

«Для шифрования своего выбора избиратель получает из блокчейна открытый ключ, и отправляет свой зашифрованный выбор обратно в распределительную сеть. После окончания голосования в блокчейн публикуется ключ расшифровки, и каждый участник процесса получает возможность проверить корректность расшифровки всех голосов. При этом у избирателя остаются данные его собственной транзакции с бюллетенем, и он может убедиться в том, что его голос был корректно учтен системой. После публикации ключа расшифровки смарт-контракт автоматически расшифровывает голоса и подсчитывает результаты голосования. Таким образом, технология делает невозможными подмену голосов и фальсификации при подсчете результатов», — прокомментировал Александр Сазонов, руководитель проекта Polys «Лаборатории Касперского».

Шаг 5. Расшифровка


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

ДИТ достает бюллетень из сундуков

Итак, голосование заканчивается, надо подводить итоги выборов.

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

Вывод

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

Поэтому мы считаем, что чтобы доказать, что ДИТ не подделывал результаты выборов, имея при этом все возможности для этого, должен:

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

P. S. Я попытался дать выжимку информации, и некоторые нюансы остались за кадром, если у вас остались вопросы, то смело задавайте их в комментариях — я отвечу на все.

Шаг 6. Демонстрация итоговых результатов


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

Замена фальшивых номеров кандидатов на реальные

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


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

Демонстрация итоговых результатов выборов. Нужно верить ДИТ на слово 🤷‍♂️

Оцените статью
Праймериз