Электронная система для тайного голосования

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

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

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

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

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

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

Теперь перейдем к тому, что такое «слепая подпись» и как она может помочь нам при анонимизации.

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

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

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

Сначала на устройстве избирателя открытый ключ должен быть замаскирован. Маскировка – это выполнение отдельных математических действий на устройстве пользователя. Представьте, что вы задумали некоторое случайное число от 1 до 100, потом задумали второе случайное от 1 до 10 и третье, от 10 до 50, первоначально задуманное число возвели в степень второго числа, и разделили без остатка на третье. Полученный результат сообщили окружающим. Вам не составит труда восстановить первоначальное число, так как вы знаете последовательность действий и задуманные вами числа. Но окружающие это сделать не смогут.

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

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

В общем виде процедура анонимизации выглядит следующим образом.

  1. При создании голосования создается отдельная ключевая пара «валидатора», открытый ключ записывается в блокчейн. На каждое голосование создается уникальная ключевая пара.
  2. Пользователь идентифицируется в системе идентификации (в данном случае, в ЕСИА), и предоставляет разрешение на передачу своих идентификационных данных из системы идентификации в ПТК ДЭГ.
  3. Компонент «Список избирателей» ПТК ДЭГ проверяет наличие пользователя в списке избирателей.
  4. На устройстве пользователя создаются его личные ключи – закрытый и открытый, известные только ему.
  5. На устройстве пользователя открытый ключ маскируется
  6. Вместе с идентификационными данными и замаскированным открытым ключом пользователь обращается к компоненту «Список избирателей»
  7. Компонент еще раз проверяет наличие пользователя в списке и факт того, что он не получал подпись ранее
  8. Если все проверки успешны, происходит подпись ключа
  9. Факт подписи ключа записывается в блокчейн
  10. Пользователь на своем устройстве снимает маску с открытого ключа и получает закрытый ключ, открытый ключ и подпись на открытый ключ, при этом все ключи известны только ему.
  11. После этого пользователь переводится в анонимную зону – на отдельный сайт edg2020.gov.ru, где его невозможно идентифицировать (например, до перехода он может подключить VPN или сменить интернет-провайдера, полностью изменив IP-адрес)
  12. Прием бюллетеня будет зависеть только от того, пройдет ли проверку подпись «валидатора» и не был ли такой ключ использован ранее.

Далее приведем описание алгоритма с точки зрения криптографии.

Параметры подписи и обозначения:

M – в формате padding FDN для подписи.

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

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

Но важнейшей характеристикой голосования является обычно не стоимость, а неизменность и прозрачность. И здесь сравнение традиционных бумажных и электронных голосований явно не в пользу последних. С бумажными голосованиями достаточно обеспечить неизменность бюллетеней и честный подсчет, необходимые процедуры уже давно разработаны, проверены и применяются везде в зависимости от конкретного случая. В интернет-голосованиях мы полностью полагаемся на «черный ящик», который предоставляет нам разработчик сервиса. Такие системы выстраиваются не на «технической невозможности», а на «экономической нецелесообразности» вмешиваться в бизнес-процессы клиентов. Защиту пользователей в таких случаях обычно гарантирует лишь пользовательское соглашение.

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

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

Сервисы ДЭГ на основе блокчейна

На рынке уже работает ряд блокчейн-сервисов дистанционного голосования, и для примера мы рассмотрим один из них — WE.Vote, разработанный российской компанией Waves Enterprise.

Со стороны WE.Vote выглядит как обычный сервис дистанционных голосований. Организатор голосования заходит в веб-интерфейс сервиса, создает новое голосование, настраивает бюллетени и добавляет электронные адреса участников. Далее бюллетени рассылаются участникам, система подсчитывает голоса и выдает готовый отчет с итогами голосования. Как видим, порядок не отличается от привычного для стандартных голосований.

Чтобы объяснить, чем WE.Vote отличается от стандартных систем электронного голосования, далее нам придется прибегнуть к техническим описаниям. Но мы постараемся сделать их максимально доступными даже для читателей без опыта в IT.

Хранение данных в блокчейн-сети

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

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

Сервис WE.Vote использует для хранения данных блокчейн-сеть Waves Enterprise, включающая более 40 независимых узлов. Данные голосования принимаются, проверяются и хранятся в неизменном виде в каждом узле. Для наблюдателей предусмотрены технические средства, позволяющие убедиться, что голосование прошло без нарушений. Конфиденциальные данные голосования хранятся отдельно и доступны только администраторам при авторизации. На уже запущенное голосование они не могут повлиять никаким образом — только остановить его, если это ими заранее предусмотрено.

Смарт-контракты

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

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

Криптографические алгоритмы

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

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

Значение в скобках — выбор участника, буква «e» означает, что этот выбор зашифрован.

Функциональность блокчейн-голосований

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

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

Критика электронных голосований

Некоторые эксперты скептически относятся к электронным голосованиям. Один из самых обширных и взвешенных наборов аргументов был сформулирован популярным научпоп-блогером Томом Скоттом еще в 2019 году. Взглянем на его тезисы с точки зрения именно блокчейн-голосований:

  • «Электронные голосования недостаточно анонимны». В блокчейн-голосованиях гомоморфное шифрование может обеспечить полную анонимность, выше мы объяснили как.
  • «Электронным голосованиям сложно доверять». Мы можем подтвердить честность блокчейн-голосования с помощью инструментов для наблюдателей. На Хабре есть пост независимого эксперта о том, как он проверял работу системы федерального дистанционного голосования, которая использовалась в регионах России в прошлом году. Не путайте с московской системой: ) Аналогичные технологии и инструменты доступны и в сервисе WE.Vote.
  • «Электронные бюллетени можно легко подменить или повредить». В онлайн-голосованиях на WE.Vote данные сразу шифруются на устройстве пользователя, так что они получают защиту еще до первой отправки по сети. Дешифровка со стороны системы здесь невозможна, поскольку в ее распоряжении нет необходимого приватного ключа.
  • «Можно подменить исходные данные голосования и всех запутать». Исходные данные голосований WE.Vote шифруются и добавляются в блокчейн сразу после создания. Более подробно можете почитать выше в разделе «Хранение данных на блокчейне».
  • «Участники не могут точно знать, учтены ли их голоса». Любой участник блокчейн-голосования может найти свой ключ в журнале блокчейн-транзакций — это значит, что голос был посчитан. В этом посте в разделе о гомоморфном шифровании можно подробней узнать, как подсчитываются голоса.
  • «Любые атаки на системы электронного голосования легко масштабировать». Выше мы описали, что нужно сделать для взлома блокчейн-голосования. Вероятность не подменить, а даже просто сорвать его гораздо ниже, чем вероятность успешно провернуть мошенничество с достаточным количеством бумажных бюллетеней.
  • «Центральный сервер онлайн-голосования — это в любом случае уязвимое место». Здесь мы согласимся с Томом, централизованные решения имеют такой недостаток. Вот поэтому все критически важные компоненты блокчейн-сервисов типа WE.Vote используют распределенную архитектуру.
  • «Невозможно быть уверенным, что в базу данных будет записано именно то, что выбрал пользователь». В сервисе WE.Vote выбор пользователя шифруется на конечном устройстве еще до отправки по сети, а дешифруется уже подсчитанная сумма голосов. Поэтому по файлам и транзакциям мы в принципе не можем определить ни конкретного пользователя, ни его выбор. Кстати, для голосования в WE.Vote можно использовать любой девайс с браузером и интернетом, требования здесь минимальные.

Электронные и блокчейн-голосования

Многие сферы экономики постепенно движутся в сторону электронных голосований. Блокчейн-сервисы зарекомендовали себя в университетах — с помощью них выносят решения диссертационные советы МФТИ, Математического института имени В. А. Стеклова РАН, Самарского государственного аграрном университете. Недавно WE.Vote внедрили даже в Ассоциации выпусников СПбГУ.

Есть ряд примеров использования блокчейн-голосований и на государственном уровне. Бразилия экспериментирует с онлайн-голосованиями еще с 1996 года, и сейчас в рамках национального проекта Eleições do Futuro фокусируется в том числе и на блокчейне.

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

На основе блокчейн-технологий Waves Enterprise два года проводится дистанционное голосование на федеральных выборах в России в регионах. В прошлом году через систему успешно проголосовало более 600 тысяч избирателей. Правда, репутация блокчейн-голосований была подпорчена проблемами в московской системе ДЭГ, которая была также использовала блокчейн, но разработана другими специалистами на основе других технологий. Здесь итоги ДЭГ сильно отличались от итогов офлайн-голосования, наблюдатели на продолжительное время потеряли возможность мониторинга, и результаты также были опубликованы с большой задержкой.

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

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

🖐🏻 Это блог компании Cryptor

👉🏻 Мы разрабатываем блокчейн-технологии для стартапов и бизнеса

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

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

Проблемы современных систем электронного голосования

Онлайн-голосование стало реальным сегодня. Многие страны по всему миру, включая несколько штатов в США, Бразилии, Индиии Эстонии, позволяют своим гражданам голосовать с помощью машин для голосования или даже через Интернет.

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

Система онлайн-голосования может иметь несколько слабых мест. Риски кибербезопасности могут исходить от самой системы, механизмов аутентификации, которые она развертывает, мобильных устройств, используемых избирателями, и механизмов, ответственных за защиту хранимых и передаваемых данных.

Например, в 2017 году исследователи обнаружили недостаток в криптографическом механизме, используемом для защиты эстонской национальной системы ID-карт, который мог привести к компрометации личных данных 760 000 человек.

В 2020 году исследователи из Массачусетского технологического института (MIT) и Мичиганского университета проанализировали платформу OmniBallot, которая была одобрена для онлайн-голосования в нескольких штатах США. Они обнаружили, что этой платформой можно манипулировать, компрометируя мобильное устройство избирателя или сторонний сервис хранения данных.

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

· Был именно тот, за кого он себя выдает

· Имел право голоса

· Еще не голосовал

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

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

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

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

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

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

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

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

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

Улучшение онлайн-голосования с помощью блокчейна

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

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

Блокчейн может помочь вам достичь нескольких целей при создании решения для электронного голосования:

· Надежно хранить данные

· Надежная проверка личности

Современные концепции развития системы голосования на основе блокчейна в основном используют технологию безопасного хранения данных. Например, в 2020 году Демократическая партия Таиланда провела выборы своего нового лидера, используя блокчейн Zcoin в качестве базы данных для хранения зашифрованных данных, содержащих идентификационные документы избирателей и подсчеты голосов. В том же году республиканская и демократическая партии в нескольких штатах США использовали приложение Voatz во время своих государственных съездов. Это приложение опирается на блокчейн Hyperledger Fabric для создания неизменного следа бюллетеней.

В Швейцарии местные власти в Цуге используют решение uPort на основе Ethereum в качестве службы авторизации электронного правительства. Граждане, зарегистрированные в uPort, могут использовать эту услугу в качестве стороннего инструмента авторизации для доступа к различным онлайн-государственным услугам, включая электронное голосование.

Плюсы электронного голосования на основе блокчейна

Как распределенная книга, блокчейн предлагает несколько важных преимуществ для систем электронного голосования:

· Устойчивость к кибератакам

· Неизменяемые записи данных

· Прозрачная история транзакций

· Анонимность избирателей

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

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

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

Блокчейн-системы могут аутентифицировать избирателей, используя стандартные методы, такие как многофакторная аутентификация (MFA). А для обеспечения анонимности избирателей может быть применен метод кольцевой подписи. Используя этот метод, группа пользователей блокчейна аутентифицируется своими закрытыми ключами и объединяется в небольшой круг, или “кольцо”. Хотя бюллетени, поданные в определенном кольце, могут быть связаны с этим кольцом, нет никакого способа связать конкретный голос с конкретным избирателем.

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

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

Минусы электронного голосования на основе блокчейна

Основные проблемы, связанные с системами голосования с возможностями блокчейна, включают:

· Зависимость от программного обеспечения и устройств

· Риски дисквалификации избирателей

· Отсутствие общественного доверия

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

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

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

Создание решения для электронного голосования на основе блокчейна: ключевые аспекты

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

В зависимости от поставленной задачи ваше внимание может варьироваться от безопасной записи голосов на блокчейне до фактического голосования с использованием смарт-контрактов. При работе над общей системой электронного голосования на основе блокчейна вам необходимо сделать несколько важных решений:

· Какой тип сети блокчейна использовать?

· Какой алгоритм консенсуса реализовать?

· Какие интеграции включить?

· Как сохранить необходимый уровень анонимности?

1. Какой тип сети блокчейна использовать?

Существует три распространенных типа сетевых архитектур блокчейна:

· Уровень децентрализации

· Информационная гласность

· Транзакционные сборы

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

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

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

2. Какой алгоритм консенсуса реализовать?

Алгоритмы консенсуса отвечают за достижение единого источника истины в блокчейне и могут быть конкурентными или неконкурентными.

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

Реальный пример конкурентного алгоритма: Как решение на основе Ethereum, uPort полагается на алгоритм консенсуса proof of stake.

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

Реальный пример неконкурентного алгоритма: Voatz — это решение для голосования на основе блокчейна, которое опирается на неконкурентный алгоритм консенсуса практической византийской отказоустойчивости (PBFT).

3. Какие возможности интеграции включить?

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

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

· Сторонние сервисы проверки личности

· Системы онлайн-голосования

· Базы данных, хранящие голоса, поданные другими системами

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

4. Как сохранить необходимый уровень анонимности?

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

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

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

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

Немного из истории электронного голосования. Опыт разных стран

Первое в мире электронное голосование было проведено в США в 2000 году. Недостаток системы в Америке заключался в отсутствии федеральных стандартов избирательных технологий, то есть в стране не была подготовлена законодательная база, учитывающее эту принципиально новую технологию.

В 2002 году ЭГ проводилось в Швейцарии. Здесь уже правительство заранее озаботилось созданием правовой базы. Кроме того, голосование проводилось с использованием универсальных и стандартизированных ID-карт. С одной стороны, они не позволяли голосовать одному человеку дважды. С другой стороны, списки голосовавших состояли не из имен, а из номеров этих карт, что обеспечивало анонимность голосования. Благодаря ЭГ явка повысилась, а 90% швейцарцев сказали, что хотели бы снова принять участие в подобных выборах.

Рис.1. ID-карта избирателя в Швейцарии
Рис.1. ID-карта избирателя в Швейцарии

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

Достоинства и недостатки ЭГ

Из опыта стран-пионеров ЭГ можно выделить как ряд очевидных достоинств.

  1. Граждане могут участвовать в политической жизни страны где бы они не находились – достаточно просто иметь гаджет под рукой.

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

  3. ЭГ повышает привлекает молодых избирателей.

  4. Выборы становятся прозрачными – сложнее устроить “вбросы” и фальсификацию. 

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

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

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

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

Сосредоточимся на последнем недостатке и рассмотрим решение проблемы, которое он вызывает.

Протокол двух независимых агентств

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

Рис.2. Блок-схема алгоритма действия протокола двух независимых агентств
Рис.2. Блок-схема алгоритма действия протокола двух независимых агентств

В результате размышлений над реализацией такой процедуры было выдвинуто “идеальное” решение – так называемый протокол двух независимых агентств. Согласно задумке, первое агентство идентифицирует личность избирателя и присваивает ему некий индикатор, по которому второе агентство понимает – является человек валидным избирателем или нет. Идеальным такое решение называется по одной простой причине: в реальной жизни воплотить такое невозможно. Агентства должны быть независимыми и при этом подконтрольными государству (т.е. быть госструктурой), а это два взаимоисключающих понятия. А возлагать полномочия одного из агентств на какую-то коммерческую компанию, или тем более на иностранное государство, никто не будет, поскольку это прямая угроза национальной безопасности. Кроме того, даже если хотя бы одно из агентств будет сливать информацию третьему лицу, то определить кто за что голосовал тоже не составит труда.

Реальное решение

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

Для начала стоит ненадолго отвлечься от нашей темы и поговорить про слепую более детально.

Слепая подпись – это цифровая подпись, которая отличается тем, что подписывающее некий документ лицо не знает что именно оно подписывает. Можно разобрать алгоритм слепой подписи на конкретном примере. Допустим, Алиса хочет отправить тайное послание Василию, но Василий принимает информацию только от достоверных отправителей. Достоверен отправитель или нет определяет Боб, который в свою очередь не может прочитать письмо, а лишь проверяет, что отправитель тот, за кого себя выдает. Чтобы решить такую задачку, нужно действовать следующим образом:

1) Алиса пишет послание и запечатывает его в конверт.

2) Алиса отдает конверт Бобу, чтобы тот убедился в достоверности источника.

3)    Боб понимает, кто такая Алиса, и клеит на письмо марку, тем самым подтверждая достоверность источника.

4)    Алиса забирает письмо с маркой у Боба и отправляет послание Василию (разумеется, без обратного адреса).

5) Василий, получив письмо, видит на нем марку, убеждается в достоверности источника и читает содержимое, не зная при этом отправителя.

Если перевести эти рассуждения на математический язык, то получим следующее:

1) Алиса шифрует послание mпо правилуf,в результате чего получается зашифрованное сообщение c=f(m).

2) Алиса отправляет шифротекст Бобу.

3) Боб подписывает полученный шифротекст, не зная его содержания, т.к.fизвестна только Алисе, функциейg,получая c'=g(c)=g(f(m))

4) Боб отсылает c'.

5) Алиса убирает свое шифрование с вновь полученного подписанного сообщения c',получая c'' = g(f(m))*f -1= g(m).

Рис.3. Блок-схема слепой подписи
Рис.3. Блок-схема слепой подписи

Таким образом, заменив Алису на Избирателя, послание – на бюллетень, Боба – на систему ЭГ, а Василия – на ЦИК, мы получим отлично работающую процедуру тайного голосования.

Стандарт слепой подписи и его криптостойкость

Существует множество стандартов электронных цифровых подписей (ЭЦП). Самый последний из них (ГОСТ_34.10-2018) был принят 1 июня 2019 года и применяется в том числе и в отечественной системе электронного голосования. Именно его мы и рассмотрим.

Обговорим параметры, фигурирующие в данном стандарте:

J(E)=1728\cdot \frac{4a^3}{4a^3+27b^2}\ mod p, \qquad 4a^3+27b^2\not\equiv 0\mod p,\qquad a,b\in F_p

  • Порядок группы mточек эллиптической кривой — это целое число, отличное от p.

  • Порядок q(простое число) некоторой циклической подгруппы группы точек эллиптической кривой, удовлетворяющей следующим условиям: <img source="m =nq,\ n\in \mathbb{N}, \qquad 2^{254}< q<2^{256}" alt="m =nq,\ n\in \mathbb{N}, \qquad 2^{254}< q

  • Так называемый генератор подгруппы q-точка P=(x_p,y_p) \in E, для которой имеют место равенства q \cdot P =0,\qquad k\cdot P \neq 0, \ k=1,2,...,q-1, где 0\:-нейтральный элемент.

  • h(M) -так называемая хеш-функция. Она отображает сообщение Mв двоичные векторы длиною в 256 бит.

  • Целое число d\:-ключ шифрование, которым обладает любой пользователь, использующий цифровую подпись, и которое лежит в пределах<img source="0<d<q." alt="0<d

  • Точка Q=(x_p,y_p) \in E \:-ключ расшифрования, которым также обладает любой пользователь, использующий цифровую подпись, и который равен Q=d\cdot q.

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

p^t \neq 1\; mod\ q, \qquad t=1,...,B \geq31 \ и \ J(E) \neq0,1728

Обратим внимание на хеш-функцию. Она представляет из себя двоичный вектор из 256 компонент: h=(a_{255}, \ ...\ ,a_{0}).Двоичные векторы можно “сшивать” (операция конкатенации):h_a = (a_{255}, \ ... \ ,a_0), h_b = (b_{255}, \ ... \ ,b_0)x \mapsto (h_a|h_b) = (a_{255}, \ ... \ ,a_0, b_{255}, \ ... \ ,b_0)

А также между ними и целыми числами можно построить биективное отображение по следующему правилу

z= \sum_{i=0}^{255}a_i\cdot 2^i, \qquad z\leqslant 2^{256}.

Биективное оно потому, что формула, его задающая, есть ни что иное, как представление числа z в двоичном виде h.

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

Начнем с формирования ЭЦП. Наглядная блок-схема представлена на рисунке (см. рис. 4), поэтому распишем только формулы, которые мы применяем на каждом шаге.

  1. e =z \ mod \ q. Если \ e =0, \ то \ e=1.

  2. C = kP \to x_c -координата \ C \to r=x_c \ mod \ q.Если r=0, то возвращаемся к шагу 3).

  3. s = rd+ke\ mod\ q.Если s=0, то возвращаемся к шагу 3).

  4. Ставим векторы в соответствие числам r\leftrightarrow h_r = \vec{r}, \ s\leftrightarrow h_s = \vec{s}, \ \xi = (\vec{r}|\vec{s})

Рис. 4. Блок-схема алгоритма формирования ЭЦП
Рис. 4. Блок-схема алгоритма формирования ЭЦП

Теперь проверим ЭЦП. Также сошлемся на наглядную блок-схему (см. рис.5), а каждый шаг опишем сухой формулой.

  1. \vec{h} = h(M).

  2. \nu=e^{-1} \ mod\ q.

  3. C = z_1 P+z_2Q \to x_c \ - координата \ C \to R = x_c \ mod\ q.

  4. R = r \to подпись верна, иначе — нет.

Рис. 5. Блок-схема алгоритма проверки ЭЦП
Рис. 5. Блок-схема алгоритма проверки ЭЦП

Что же касается криптостойкости данного стандарта, то она определяется, во-первых, стойкостью алгоритма шифрования, а во-вторых, стойкостью хеш-функции.

Стойкость хеш-функции: Вероятность того, что хеш-функцию данного стандарта взломают подбором коллизии на фиксированное сообщение, составляет 1,73 \cdot 10^{-77}.Если заниматься подбором произвольной коллизии, то вероятность повышается до 2,94 \cdot10^{-39},но все равно остается чрезвычайно малой.

Стойкость алгоритма шифрования: она определяется проблемой дискретного логарифмирования в группе точек эллиптической кривой. Поскольку пока не существует алгоритмов этой оценки, обратимся к наибыстрейшему – методу Полларда. Для него вычислительная сложность оценивается как O(\sqrt{q}).Следовательно, если положить, чтоqимеет 256 разрядов, это обеспечит криптостойкость в 10^{30}операций.

Реализация слепой подписи на практике

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

Порядок действий будет следующим:          

1) Избиратель авторизуется на официальном портале. В нашем случае это “Госуслуги”. По сути гражданин просто сообщает свои персональные данные.

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

3) На устройстве избирателя генерируются секретный ключ S и публичный ключK. Это происходит в браузере.

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

5) КлючK' отсылается на сервер, который выдает бюллетени.

6) Сервер подписываетK'своим ключом (назовем эту подписьC'), после чего отсылает ее обратно на устройство голосующего вместе со своим публичным ключом, который абсолютно одинаков для всех пользователей.

7) Бюллетень с выбранным вариантом шифруется публичным ключом с сервера и подписывается ключомS.

8) На устройстве избирателя снимается маскировка с подписиC'и ключаK'. Надо заметить, что процесс устроен таким образом, чтобы получилась действительная для ключаK подпись C.

9) Зашифрованный бюллетень с подписью (вместе с K и C) отсылается на сервер приема бюллетеней.

10) Сервер по приему бюллетеней не знает публичного ключа, так как он был сгенерирован на устройстве голосующего, но проверяет подписьC и то, что бюллетень был подписан секретной частью публичного ключа. Таким образом, сервер определяет, что бюллетень был выдан настоящему избирателю, правда, уже непонятно, какому именно.

11) После этой проверки сервер отправляет бюллетень в базу.

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

Более наглядно алгоритм можно представить в виде блок-схемы (см. рис. 6).

Рис. 6. Блок-схема процесса голосования
Рис. 6. Блок-схема процесса голосования

Резюме и выводы

Подведем итоги обзора систем электронного голосования. Мы кратко обсудили историю создания и внедрения систем ЭГ в различных зарубежных странах. Отдельно проговорили положительные моменты ЭГ:

  • Нет привязки к определенному месту.

  • Затраты значительно ниже, а скорость обработки результатов выше.

Также обсудили и отрицательные стороны ЭГ:

  • Угроза хакерских атак

  • Утечка данных избирателей

  • Сложность в обеспечении тайности голосования

Далее мы сосредоточились на алгоритме реализации процесса голосования. Было рассмотрено как идеальное решение “протокол двух независимых агентств”, не реализуемое на практике, так и более сложное – “слепая подпись”, которое успешно воплощено в жизни. Мы обсудили ее главные положительные качества, а именно:

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

  • Анонимность. Определить по бюллетеню личность избирателя не представляется возможном, что обеспечивает выполнение закона о тайне волеизъявления.

  • Невозможность фальсификаций. Голоса избирателей невозможно удалить из системы, равно как и изменить их.

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

Наконец, мы на пальцах обсудили процедуру электронных выборов – как именно происходит тайное голосование.

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

Ключевые функции, учитывающие ваши потребности

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

  • Гибкая идентификация голосующих

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

  • Единый вход для организаторов

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

  • Два типа решения: из облака или на инфраструктуре заказчика

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

  • Несколько типов бюллетеней

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

  • Моментальный подсчёт голосов

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

  • Наблюдение за ходом голосования

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

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