Preskúmanie systému elektronického hlasovania na diaľku Ústrednej volebnej komisie Ruskej federácie

Dňa 31. augusta 2020 sa uskutočnilo verejné testovanie systému elektronického hlasovania na diaľku (ďalej len DEG) s využitím technológie blockchain vyvinutej na príkaz Ústrednej volebnej komisie Ruskej federácie.

Aby sme sa zoznámili s novým elektronickým hlasovacím systémom a pochopili, akú úlohu v ňom zohráva technológia blockchain a aké ďalšie komponenty sa používajú, začíname sériu publikácií venovaných hlavným technickým riešeniam používaným v systéme. Odporúčame začať v poradí – požiadavkami na systém a funkciami účastníkov procesu

Požiadavky na systém

Základné požiadavky, ktoré sa vzťahujú na akýkoľvek hlasovací systém, sú vo všeobecnosti rovnaké pre tradičné osobné hlasovanie aj pre diaľkové elektronické hlasovanie a sú určené federálnym zákonom N 12.06.2002-FZ z 67. júna 31.07.2020 (v znení zmien a doplnkov z XNUMX. júla XNUMX) "O základných zárukách volebných práv a práva zúčastniť sa referenda občanov Ruskej federácie."

  1. Hlasovanie vo voľbách a referendách je tajné s vylúčením možnosti akejkoľvek kontroly nad vôľou občana (článok 7).
  2. Možnosť hlasovať by mala byť poskytnutá len osobám, ktoré majú aktívne právo hlasovať za tento hlas.
  3. Jeden volič – jeden hlas, „dvojité“ hlasovanie nie je povolené.
  4. Proces hlasovania musí byť otvorený a transparentný pre voličov a pozorovateľov.
  5. Musí sa zabezpečiť integrita odovzdaného hlasu.
  6. Pred ukončením hlasovania by nemalo byť možné vypočítať priebežné výsledky hlasovania.

Máme teda troch účastníkov: voliča, volebnú komisiu a pozorovateľa, medzi ktorými sa určuje poradie interakcie. Je tiež možné vybrať štvrtého účastníka - orgány, ktoré vykonávajú registráciu občanov na území (predovšetkým ministerstvo vnútra, ako aj iné výkonné orgány), pretože aktívne volebné právo je spojené s občianstvom a miestom registrácie.

Všetci títo účastníci sa navzájom ovplyvňujú.

Interakčný protokol

Zoberme si priebeh hlasovania v tradičnej volebnej miestnosti s volebnou urnou a papierovými hlasovacími lístkami. Vo všeobecnej zjednodušenej podobe to vyzerá takto: volič príde do volebnej miestnosti a predloží preukaz totožnosti (pas). Vo volebnej miestnosti je okrsková volebná komisia, ktorej člen overuje totožnosť voliča a jeho prítomnosť v už zostavenom zozname voličov. Ak sa volič nájde, člen komisie odovzdá voličovi hlasovací lístok a volič podpíše, že hlasovací lístok prevzal. Potom volič príde do volebnej miestnosti, vyplní hlasovací lístok a vloží ho do volebnej urny. Aby sa zabezpečilo, že všetky postupy budú prísne dodržané zákonom, toto všetko monitorujú pozorovatelia (zástupcovia kandidátov, verejné monitorovacie inštitúcie). Po skončení hlasovania volebná komisia za prítomnosti pozorovateľov spočíta hlasy a zistí výsledky hlasovania.

Vlastnosti potrebné na hlasovanie v tradičnom hlasovacom systéme zabezpečujú organizačné opatrenia a zavedený postup interakcie účastníkov: kontrola voličských pasov, osobné podpisovanie hlasovacích lístkov, používanie volebných miestností a zapečatených volebných schránok, postup pri sčítavaní hlasov atď. .

Pre informačný systém, ktorý je vzdialeným elektronickým hlasovacím systémom, sa tento interakčný príkaz nazýva protokol. Keďže všetky naše interakcie sa stávajú digitálnymi, možno tento protokol považovať za algoritmus, ktorý implementujú jednotlivé komponenty systému a súbor organizačných a technických opatrení vykonávaných používateľmi.

Digitálna interakcia kladie určité požiadavky na implementované algoritmy. Pozrime sa na akcie vykonávané na tradičnom mieste z hľadiska informačných systémov a ako je to implementované v systéme DEG, ktorý uvažujeme.

Povedzme hneď, že technológia blockchain nie je „strieborná guľka“, ktorá rieši všetky problémy. Na vytvorenie takéhoto systému bolo potrebné vyvinúť veľké množstvo softvérových a hardvérových komponentov zodpovedných za rôzne úlohy a spojiť ich do jedného procesu a protokolu. Ale zároveň všetky tieto komponenty interagujú s blockchainovou platformou.

Systémové komponenty

Z technického hľadiska je systém DEG softvérový a hardvérový komplex (ďalej len STC), ktorý spája súbor komponentov na zabezpečenie interakcie medzi účastníkmi volebného procesu v jednotnom informačnom prostredí.

Interakčný diagram komponentov a účastníkov systému DEG PTC je znázornený na obrázku nižšie.

Preskúmanie systému elektronického hlasovania na diaľku Ústrednej volebnej komisie Ruskej federácie
Klikateľné

Proces hlasovania na diaľku

Teraz podrobne zvážime proces diaľkového elektronického hlasovania a jeho implementáciu komponentmi softvérového a hardvérového komplexu DEG.

Podľa Postupu pri elektronickom hlasovaní na diaľku musí volič na zaradenie do zoznamu účastníkov elektronického hlasovania na diaľku podať žiadosť na portáli Služby štátu. Zároveň môžu podať takúto žiadosť len tí používatelia, ktorí majú potvrdený účet a boli úspešne porovnaní s registrom voličov, účastníci referenda systému Štátneho automatizovaného systému „Voľby“. Po prijatí prihlášky sú údaje voliča ešte raz skontrolované Ústrednou volebnou komisiou Ruska a nahrané do Komponent Zoznam voličov PTC DEG. Proces sťahovania je sprevádzaný zaznamenávaním jedinečných identifikátorov v blockchaine. Členovia volebnej komisie a pozorovatelia majú prístup k nahliadnutiu do zoznamu pomocou špeciálneho automatizovaného pracoviska umiestneného v priestoroch volebnej komisie.

Keď volič navštívi volebnú miestnosť, je overený (porovnaný s údajmi z pasu) a identifikovaný v zozname voličov, ako aj skontrolované, či tento volič ešte nedostal hlasovací lístok. Dôležitým bodom je, že nemožno zistiť, či volič vložil doručený hlasovací lístok do urny alebo nie, iba skutočnosť, že hlasovací lístok už bol vydaný skôr. V prípade PTC DEG návšteva voliča predstavuje požiadavku používateľa portál DEG je webová stránka umiestnená na adrese vybory.gov.ru Rovnako ako tradičná volebná miestnosť, webová stránka obsahuje informačné materiály o prebiehajúcich volebných kampaniach, informácie o kandidátoch a ďalšie informácie. Na vykonanie identifikácie a autentifikácie sa používa ESIA Portálu štátnych služieb. Všeobecná identifikačná schéma sa teda zachováva pri podávaní žiadostí aj pri hlasovaní.

Potom sa začne proces anonymizácie - voličovi sa odovzdá hlasovací lístok, ktorý neobsahuje žiadne identifikačné znaky: nemá číslo, nijako nesúvisí s voličom, ktorému bol vydaný. Je zaujímavé zvážiť možnosť, keď je volebná miestnosť vybavená elektronickými hlasovacími systémami - v tomto prípade sa anonymizácia vykonáva nasledovne: namiesto papierového hlasovacieho lístka je volič požiadaný, aby si zo zásobníka vybral ľubovoľnú kartu s čiarovým kódom, s ktorou pristúpi k hlasovaciemu zariadeniu. Na preukaze nie sú žiadne údaje o voličovi, iba kód, ktorý určuje, aký hlasovací lístok má zariadenie pri predložení takéhoto preukazu poskytnúť. Pri úplne digitálnej interakcii je hlavnou úlohou implementovať anonymizačný algoritmus tak, aby na jednej strane nebolo možné zistiť žiadne identifikačné údaje používateľa a na druhej strane poskytnúť možnosť hlasovať len tým používateľom, ktorí boli predtým identifikované v zozname. Na vyriešenie tohto problému používa DEG PTK kryptografický algoritmus, ktorý je v profesionálnom prostredí známy ako „slepý elektronický podpis“. Podrobne o tom budeme hovoriť v nasledujúcich publikáciách a zverejníme aj zdrojový kód, ďalšie informácie môžete zbierať aj z publikácií na internete pomocou kľúčových slov - „kryptografické tajné hlasovacie protokoly“ alebo „slepý podpis“

Potom volič vyplní hlasovací lístok na mieste, kde nie je možné vidieť uskutočnený výber (uzavretá kabínka) – ak v našom informačnom systéme hlasuje na diaľku, tak jediným takýmto miestom je osobné zariadenie používateľa. Na tento účel je používateľ najprv presunutý do inej domény − do anonymnej zóny. Pred prepnutím môžete zvýšiť pripojenie VPN a zmeniť svoju IP adresu. Práve na tejto doméne sa zobrazí hlasovací lístok a spracuje sa voľba používateľa. Zdrojový kód, ktorý beží na zariadení používateľa, je na začiatku otvorený – možno ho vidieť v prehliadači.

Po výbere sa hlasovací lístok zašifruje na zariadení používateľa pomocou špeciálnej šifrovacej schémy, odošle a zaznamená sa v komponent „Distribuované ukladanie a počítanie hlasov“, postavený na platforme blockchain.

Jednou z najdôležitejších charakteristík protokolu je nemožnosť poznať výsledky hlasovania pred jeho dokončením. V tradičnej volebnej miestnosti je to zabezpečené zapečatením volebnej urny a monitorovaním pozorovateľmi. Pri digitálnych interakciách je najlepším riešením zašifrovať voľbu voliča. Použitý šifrovací algoritmus zabraňuje odhaleniu výsledkov pred dokončením hlasovania. Na tento účel sa používa schéma s dvoma kľúčmi: jeden (verejný) kľúč, ktorý poznajú všetci účastníci, sa používa na šifrovanie hlasu. Nedá sa dešifrovať rovnakým kľúčom, je potrebný druhý (súkromný) kľúč. Súkromný kľúč je rozdelený medzi účastníkov volebného procesu (členov volebných komisií, verejnej komory, prevádzkovateľov sčítacích serverov a pod.) tak, že každá jednotlivá časť kľúča je zbytočná. Dešifrovanie môžete začať až po zhromaždení súkromného kľúča. V posudzovanom systéme postup oddelenia kľúča zahŕňa niekoľko fáz: oddelenie časti kľúča v rámci systému, oddelenie kľúča mimo systému a generovanie spoločného verejného kľúča. Proces šifrovania a prácu s kryptografickými kľúčmi si podrobne ukážeme v budúcich publikáciách.

Po zozbieraní a stiahnutí kľúča začína výpočet výsledkov pre ich ďalšie zaznamenanie do blockchainu a následné oznámenie. Charakteristickým rysom posudzovaného systému je použitie technológie homomorfného šifrovania. Tento algoritmus podrobne popíšeme v budúcich publikáciách a porozprávame sa o tom, prečo sa táto technológia široko používa na vytváranie hlasovacích systémov. Teraz si všimnime jeho hlavnú vlastnosť: zašifrované hlasovacie lístky zaznamenané v účtovnom systéme možno kombinovať bez dešifrovania takým spôsobom, že výsledkom dešifrovania takéhoto kombinovaného šifrovaného textu bude súhrnná hodnota pre každú voľbu v hlasovacích lístkoch. Systém zároveň, samozrejme, implementuje matematické dôkazy správnosti takéhoto výpočtu, ktoré sú zaznamenané aj v účtovnom systéme a môžu byť overené pozorovateľmi.

Nižšie je uvedený prehľad priebehu hlasovania.

Preskúmanie systému elektronického hlasovania na diaľku Ústrednej volebnej komisie Ruskej federácie
Klikateľné

Blockchain platforma

Teraz, keď sme preskúmali hlavné črty implementácie vzdialeného elektronického hlasovacieho systému, odpovedzme si na otázku, s ktorou sme začali – akú úlohu v tom hrá blockchain technológia a aké problémy umožňuje riešiť?

V implementovanom systéme vzdialeného hlasovania rieši technológia blockchain určitý okruh problémov.

  • Základnou úlohou je zabezpečiť integritu informácií v rámci hlasovania a predovšetkým hlasovania.
  • Zabezpečenie transparentnosti vykonávania a nemennosti programového kódu realizovaného formou smart kontraktov.
  • Zabezpečenie ochrany a nemennosti údajov používaných v procese hlasovania: zoznam voličov, kľúče používané na šifrovanie hlasovacích lístkov v rôznych fázach kryptografického protokolu atď.
  • Poskytovanie decentralizovaného ukladania dát, pričom každý účastník má absolútne identickú kópiu, potvrdenú vlastnosťami konsenzu v sieti.
  • Možnosť prezerania transakcií a sledovania priebehu hlasovania, ktorá sa plne prejavuje v blokovom reťazci, od jeho začiatku až po zaznamenanie vypočítaných výsledkov.

Vidíme teda, že bez použitia tejto technológie je takmer nemožné dosiahnuť potrebné vlastnosti v systéme hlasovania, ako aj dôveru vň.

Funkčnosť použitej blockchain platformy je obohatená o využitie smart kontraktov. Inteligentné zmluvy kontrolujú každú transakciu so zašifrovanými hlasovacími lístkami na pravosť elektronických a „slepých“ podpisov a tiež vykonávajú základné kontroly správnosti vyplnenia zašifrovaného hlasovacieho lístka.

Navyše v uvažovanom systéme elektronického hlasovania na diaľku sa komponent „Distribuované ukladanie a počítanie hlasov“ neobmedzuje len na uzly blockchainu. Pre každý uzol môže byť nasadený samostatný server, ktorý implementuje hlavné kryptografické funkcie hlasovacieho protokolu – počítacie servery.

Počítacie servery

Ide o decentralizované komponenty, ktoré zabezpečujú postup pre distribuované generovanie šifrovacieho kľúča hlasovacích lístkov, ako aj dešifrovanie a výpočet výsledkov hlasovania. Medzi ich úlohy patrí:

  • Zabezpečenie distribuovaného generovania časti šifrovacieho kľúča hlasovacieho lístka. Postup generovania kľúča bude diskutovaný v nasledujúcich článkoch;
  • Kontrola správnosti zašifrovaného hlasovacieho lístka (bez jeho dešifrovania);
  • Spracovanie hlasovacích lístkov v zašifrovanej forme na generovanie konečného šifrovaného textu;
  • Distribuované dekódovanie konečných výsledkov.

Každá fáza vykonávania kryptografického protokolu je zaznamenaná v blockchainovej platforme a pozorovatelia ju môžu skontrolovať na správnosť.

Aby systém získal potrebné vlastnosti v rôznych fázach hlasovacieho procesu, používajú sa nasledujúce kryptografické algoritmy:

  • Elektronický podpis;
  • Slepý podpis verejného kľúča voliča;
  • schéma šifrovania eliptickej krivky ElGamal;
  • Dôkazy nulových znalostí;
  • protokol Pedersen 91 DKG (generácia distribuovaného kľúča);
  • Protokol zdieľania súkromných kľúčov pomocou Shamirovej schémy.

Kryptografickej službe sa budeme podrobnejšie venovať v nasledujúcich článkoch.

Výsledky

Zhrňme niektoré priebežné výsledky úvah o systéme elektronického hlasovania na diaľku. Stručne sme opísali proces a hlavné komponenty, ktoré ho implementujú, a tiež sme identifikovali prostriedky na dosiahnutie vlastností potrebných pre akýkoľvek hlasovací systém:

  • Overiteľnosť voličov. Systém prijíma len hlasy od overených voličov. Táto vlastnosť je zabezpečená identifikáciou a autentifikáciou voličov, ako aj záznamom zoznamu voličov a faktom poskytnutia prístupu k hlasovaciemu lístku v blockchaine.
  • Anonymita. Systém zabezpečuje tajnosť hlasovania zakotvenú v legislatíve Ruskej federácie, totožnosť voliča nie je možné určiť zo zašifrovaného hlasovacieho lístka. Implementované pomocou algoritmu „slepého podpisu“ a anonymnej zóny na vyplnenie a odoslanie hlasovacieho lístka.
  • Dôvernosť hlasov. Organizátori a ostatní účastníci hlasovania sa nemôžu dozvedieť výsledok hlasovania, kým nebude ukončené, spočítané hlasy a dešifrované konečné výsledky. Dôvernosť sa dosiahne šifrovaním hlasovacích lístkov a znemožňovaním ich dešifrovania až po hlasovaní.
  • Nemennosť údajov. Údaje voličov nie je možné zmeniť ani vymazať. Nemenné úložisko dát poskytuje platforma blockchain.
  • Overiteľnosť. Pozorovateľ si môže overiť, či boli hlasy spočítané správne.
  • Spoľahlivosť. Architektúra systému je založená na princípoch decentralizácie, ktorá zabezpečuje absenciu jediného „bodu zlyhania“.

Zdroj: hab.com

Pridať komentár