Огляд системи дистанційного електронного голосування ЦВК РФ

31 серпня 2020 року відбувся публічний тест системи дистанційного електронного голосування (далі ДЕГ) із застосуванням технології блокчейн, що розробляється на замовлення ЦВК РФ.

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

Вимоги до системи

Основні вимоги, які пред'являються до будь-якої системи для голосування, загалом однакові і для традиційного очного голосування, і для дистанційного електронного голосування, та визначені Федеральним законом від 12.06.2002 N 67-ФЗ (ред. від 31.07.2020) «Про основні гарантії виборчих прав та права на участь у референдумі громадян Російської Федерації».

  1. Голосування під час виборів і референдумі є таємним, що виключає можливість будь-якого контролю над волевиявленням громадянина (ст.7).
  2. Можливість голосування має бути надана лише особам, які мають активне виборче право на цьому голосуванні.
  3. Один виборець – один голос, не допускається подвійне голосування.
  4. Процес голосування має бути відкритим та гласним для виборців та спостерігачів.
  5. Повинна забезпечуватись незмінність поданого голосу.
  6. Повинна бути відсутня можливість підрахувати проміжні підсумки голосування до його завершення.

Отже, у нас три учасники: виборець, виборча комісія та спостерігач, між якими визначено порядок взаємодії. Ще можна виділити четвертого учасника – органи, які здійснюють реєстраційний облік громадян на території (передусім органи МВС, а також інші органи виконавчої влади), оскільки активне виборче право пов'язане з громадянством та місцем реєстрації.

Усі ці учасники взаємодіють один з одним.

Протокол взаємодії

Розглянемо процес голосування на традиційній дільниці, з урною та паперовими бюлетенями. У загальному спрощеному вигляді він виглядає так: виборець приходить на дільницю та пред'являє документ, що засвідчує особу (паспорт). На дільниці працює дільнична виборча комісія, член якої перевіряє особу виборця та наявність його у списку виборців, який було складено раніше. Якщо виборця знайдено, член комісії видає виборцю бюлетень, а виборець розписується в отриманні бюлетеня. Після цього виборець відправляється в кабінку для голосування, заповнює бюлетень та опускає його в урну. Щоб усі процедури дотримувалися строго згідно із законом, за цим стежать спостерігачі (представники кандидатів, громадських інститутів спостереження). Після завершення голосування виборча комісія у присутності спостерігачів здійснює підрахунок голосів та встановлює підсумки голосування.

Необхідні щодо голосування якості у традиційній системі голосування забезпечуються організаційними заходами і встановленим порядком взаємодії учасників: перевіркою паспортів виборців, особистим розписом за бюлетені, використанням кабінок для голосування та опечатаних урн для бюлетенів, порядком підрахунку голосів тощо.

Для інформаційної системи, якою є система дистанційного електронного голосування, цей порядок взаємодії називається протоколом. Оскільки вся взаємодія у нас стає цифровою, цей протокол може розглядатися як алгоритм, який реалізують окремі компоненти системи, та комплекс організаційно-технічних заходів, які виконують користувачі.

Цифрова взаємодія накладає певні вимоги до алгоритмів, що реалізуються. Давайте розглянемо дії, які виконуються на традиційній ділянці, у термінах інформаційних систем і те, як це реалізовано в системі ДЕГ, що розглядається нами.

Відразу скажемо – технологія блокчейн не є тут срібною кулею, яка вирішує всі питання. Для створення подібної системи потрібно було розробити велику кількість програмних та апаратних компонентів, що відповідають за різні завдання, та пов'язати їх єдиним процесом та протоколом. Але при цьому всі ці компоненти взаємодіють із блокчейн-платформою.

Компоненти системи

З технічної точки зору система ДЕГ є програмно-технічним комплексом (далі ПТК), що поєднує набір компонентів для забезпечення взаємодії учасників виборчого процесу в єдиному інформаційному середовищі.

Схема взаємодії компонентів та учасників системи ПТК ДЕГ наведено нижче на малюнку.

Огляд системи дистанційного електронного голосування ЦВК РФ
Клікований

Процес дистанційного голосування

Наразі докладно розглянемо процес дистанційного електронного голосування та його реалізацію компонентами ПТК ДЕГ.

Відповідно до Порядку дистанційного електронного голосування для включення до списку учасників дистанційного електронного голосування виборцю необхідно подати заяву на порталі Держпослуг. При цьому подати таку заяву можуть лише користувачі, які мають підтверджений обліковий запис та успішно зіставлені з регістром виборців, учасників референдуму системи ДАС «Вибори». Після отримання заяви дані виборця ще раз проходять перевірку до ЦВК Росії та завантажуються у компонент «Список виборців» ПТК ДЕГ. Процес завантаження супроводжується записом унікальних ідентифікаторів блокчейн. Доступ до перегляду списку мають члени виборчої комісії та спостерігачі за допомогою спеціального АРМ, розміщеного у приміщенні виборчої комісії.

Під час візиту виборця на дільницю відбувається його автентифікація (порівняння з даними паспорта) та ідентифікація у списку виборців, а також перевірка того, що цей виборець раніше ще не отримував бюлетень. Тут важливий момент – неможливо встановити, опустив виборець отриманий бюлетень до урни чи ні, лише факт того, що бюлетень уже видавався раніше. У разі ПТК ДЕГ візит виборця є зверненням користувача на Портал ДЕГ – це сайт, розташований за адресою vybory.gov.ru Як і на традиційній ділянці, на сайті розміщені інформаційні матеріали про виборчі кампанії, що проводяться, відомості про кандидатів та інша інформація. Для проведення ідентифікації та аутентифікації використовується ЕСІА Портала Держпослуг. Таким чином, зберігається загальна схема ідентифікації як при поданні заяви, так і за участю у голосуванні.

Після цього починається процедура анонімізації – виборцю видається бюлетень, який не містить жодних ідентифікаційних позначок: у нього немає номера, він ніяк не пов'язаний із виборцем, якому його було видано. Цікаво розглянути варіант, коли дільниця обладнана комплексами електронного голосування – у цьому випадку анонімізація виконується так: замість паперового бюлетеня виборцю пропонується вибрати зі стопки будь-яку картку зі штрих-кодом, з якої вона підійде до пристрою для голосування. На картці немає жодних даних про виборця, лише код, який визначає, який бюлетень повинен бути наданий пристроєм при пред'явленні такої картки. При повністю цифровій взаємодії основне завдання – реалізувати такий алгоритм анонімізації, щоб, з одного боку, неможливо було встановити жодні ідентифікаційні дані користувача, а з іншого – надати можливість голосування лише тим користувачам, хто раніше був ідентифікований у списку. Для її вирішення у ПТК ДЕГ застосовується криптографічний алгоритм, відомий у професійному середовищі як «сліпий електронний підпис». Ми детально розповімо про нього в наступних публікаціях, а також опублікуємо вихідний код, ви також можете зібрати додаткову інформацію з публікацій в інтернеті за ключовими словами – «криптографічні протоколи таємного голосування» або «сліпий підпис»

Потім виборець заповнює бюлетень у місці, де неможливо побачити зроблений вибір (закрита кабінка) – якщо в нашій інформаційній системі виборець голосує дистанційно, то єдине місце – це особистий пристрій користувача. Для цього користувач спочатку перекладається на інший домен - в анонімну зону. Перед переходом можна підняти з'єднання VPN і змінити IP-адресу. На цьому домені відбувається відображення бюлетеня та обробка вибору користувача. Вихідний код, який виконується на пристрої користувача, спочатку відкритий – його можна побачити у браузері.

Після того як вибір зроблено, бюлетень зашифровується на пристрої користувача із застосуванням спеціальної схеми шифрування, відправляється та записується в компонент «Розподілене зберігання та підрахунок голосів»побудований на базі блокчейн-платформи.

Одна з найважливіших характеристик протоколу – це неможливість дізнатися про результати голосування до його завершення. На традиційній ділянці це забезпечується опечатуванням виборчої скриньки та контролем з боку спостерігачів. У цифровому взаємодії найкращим рішенням є шифрування вибору виборця. Алгоритм шифрування, що використовується, виключає можливість розкриття результатів до завершення голосування. Для цього використовується схема з двома ключами: одним (відкритим) ключем, який відомий усім учасникам, виконується шифрування голосу. Розшифрувати його цим самим ключем не можна, потрібен другий (закритий) ключ. Закритий ключ розділений між учасниками виборчого процесу (членами виборчих комісій, громадської палати, операторами серверів підрахунку, тощо) таким чином, що кожна окрема частина ключа марна. Почати розшифровку можна лише після того, як закритий ключ буде зібраний. У аналізованої системі процедура поділу ключів включає кілька етапів: поділ частини ключа всередині системи, поділ ключа поза системою і формування загального публічного ключа. Ми докладно покажемо процес шифрування та роботи з криптографічними ключами у наступних публікаціях.

Після того як ключ зібраний і завантажений, починається підрахунок підсумків для їх подальшої фіксації в блокчейні та подальшого оголошення. Особливістю аналізованої системи використання технології гомоморфного шифрування. Ми докладно опишемо цей алгоритм у наступних публікаціях і розповімо, чому ця технологія широко використовується для створення систем голосування. А зараз відзначимо її основну особливість: записані в систему обліку зашифровані бюлетені можна без розшифрування скомбінувати таким чином, що результатом розшифрування такого комбінованого шифротексту буде підсумовуване значення кожного варіанта вибору в бюлетенях. При цьому в системі, звичайно, реалізовано математичні докази коректності такого розрахунку, які також записуються в систему обліку та можуть бути перевірені спостерігачами.

Нижче наведено схему процесу голосування.

Огляд системи дистанційного електронного голосування ЦВК РФ
Клікований

Блокчейн-платформа

Тепер, коли ми розібрали основні особливості реалізації системи дистанційного електронного голосування, відповімо на питання, з якого починали – а яку роль у цьому відіграє технологія блокчейн та які завдання вона дозволяє вирішити?

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

  • Базове завдання – забезпечення незмінності інформації в рамках голосування, і насамперед голосів виборців.
  • Забезпечує прозорість виконання та незмінність програмного коду, що реалізується у вигляді смарт-контрактів.
  • Забезпечення захисту та незмінності даних, що використовуються у процесі голосування: списку виборців, ключах, які використовуються для шифрування бюлетенів на різних етапах криптографічного протоколу тощо.
  • Забезпечує децентралізоване зберігання даних, при цьому кожен учасник має абсолютно ідентичну з усіма копію, підтверджену властивостями консенсусу в мережі.
  • Можливість переглядати транзакції та відстежувати хід голосування, що повністю відображається у ланцюжках блоків, від його початку до запису розрахованих підсумків.

Отже, бачимо, що використання цієї технології домогтися наявності у системі голосування необхідних властивостей, як і довіри до неї, практично неможливо.

Функціональність блокчейн-платформи, що застосовується, збагачена використанням смарт-контрактів. Смарт-контракти перевіряють кожну транзакцію із зашифрованими бюлетенями на справжність електронного та «сліпого» підписів, а також проводять базові перевірки коректності заповнення зашифрованого бюлетеня.

При цьому в системі дистанційного електронного голосування, що розглядається, компонент «Розподілене зберігання і підрахунок голосів» не обмежується тільки блокчейн-вузлами. Для кожного вузла можна розгорнути окремий сервер, який реалізує основні криптографічні функції протоколу голосування – сервери підрахунку.

Сервери підрахунку

Це децентралізовані компоненти, які забезпечують процедуру розподіленої генерації ключа шифрування бюлетенів, а також розшифрування та підрахунок підсумків голосування. До їхніх завдань входить:

  • Забезпечення розподіленої генерації частини ключа шифрування бюлетенів. Процедура генерації ключа буде розглянута у наступних статтях;
  • Перевірка коректності зашифрованого бюлетеня (без розшифрування);
  • Обробка бюлетенів у зашифрованому вигляді на формування підсумкового шифротексту;
  • Розподілене розшифрування підсумкових результатів.

Кожен етап виконання криптографічного протоколу фіксується у блокчейн-платформі та може бути перевірений на коректність спостерігачами.

Для надання системі необхідних властивостей на різних етапах процесу голосування використовуються такі криптографічні алгоритми:

  • Електронний підпис;
  • Сліпа підпис публічного ключа виборця;
  • Схема шифрування Ель-Гамалю на еліптичних кривих;
  • Докази з нульовим розголошенням;
  • Протокол DKG (Distributed Key Generation) Pedersen 91;
  • Протокол поділу закритого ключа за схемою Шаміра.

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

Підсумки

Давайте підіб'ємо якийсь проміжний підсумок розгляду системи дистанційного електронного голосування. Ми коротко описали процес та основні компоненти, які його реалізують, а також визнач засоби досягнення необхідних для будь-якої системи голосування властивостей:

  • Верифікованість виборців. Система приймає голоси лише від верифікованих виборців. Ця властивість забезпечується за допомогою ідентифікації та аутентифікації голосуючих, а також фіксації списку виборців та факту надання доступу до бюлетеня до блокчейну.
  • анонімність. Система забезпечує таємницю голосування, закріплену у законодавстві РФ, особистість голосуючого неможливо визначити зашифрованим бюлетенем. Реалізовано за допомогою алгоритму «сліпого підпису» та анонімної зони для заповнення та відправлення бюлетеня.
  • Конфіденційність голосів. Організатори та інші учасники голосування не можуть дізнатися про результат голосування до його закінчення, підрахунку голосів та розшифрування підсумкових результатів. Конфіденційність досягається за рахунок шифрування бюлетенів та неможливості розшифрування до закінчення голосування.
  • Незмінність даних. Дані про волевиявлення виборців не можуть бути змінені або видалені. Постійне зберігання даних забезпечується блокчейн-платформою.
  • Перевірюваність. Спостерігач може перевірити, чи підрахунок голосів здійснювався коректним чином.
  • Надійність. В основі архітектури системи лежать принципи децентралізації, що забезпечують відсутність єдиної точки відмови.

Джерело: habr.com

Додати коментар або відгук