BUDÚCNOSŤ
VOLIEB
Prečo naše riešenie
Šetrenie papiera
Rýchlejšie výsledky
Znížená chybovosť
Možnosť kontroly
Ako voliť
Návrh riešenia
Volebná miestnosť
Vo volebnej miestnosti sa nachádza gateway a viaceré volebné terminály pripojené na gateway ethernetovým káblom. Gateway komunikuje s jediným centrálnym serverom, vykonáva synchronizáciu hlasov.
Volebný terminál pozostáva z 22 palcovej LCD dotykovej obrazovky, na ktorej je voličovi umožnené voliť. Obrazovka je pripojená k Raspberry Pi, ktoré komunikuje s NFC čítačkou pre umožnenie autorizácie pomocou autorizačných tokenov nahraných na NFC tagoch. Ďalej komunikuje s termo-tlačiarňou, ktorá umožňuje tlač potvrdenia o voľbe.
Gateway umožňuje manažovať celú volebnú miestnosť s terminálmi. Ako jediné zariadenie komunikuje priamo s centrálnym serverom cez internet. Skladá sa z Raspberry Pi, ktoré hostuje všetky mikroslužby manažujúce priebeh volieb. Ku gateway-u je pripojená malá dotyková obrazovka, ktorá slúži na prístup volebnej komisie k systému pre umožnenie riadenia priebehu volieb. Ku gateway-u je tiež pripojená NFC zapisovačka na zapisovanie generovaných autorizačných tokenov na tagy.
Hlavný server je zodpovedný za spracovanie hlasov zo všetkých gateway-ov do jednej databázy a vykonávanie štatistických výpočtov, vizualizáciu výsledkov volieb.
Nastavenia pre jednotlivé voľby sú dané konfiguráciou.
Šifrovanie komunikácie
Bezpečnosť je vo voľbách, najmä v elektronických, prakticky najdôležitejším prvkom. Porušenie integrity volieb môže viesť k zmene výsledkov a v dôsledku toho k zvoleniu nesprávnych kandidátov. Keďže naše riešenie zahŕňa iba jeden centrálny server a hlasy z gateway-ov sú odosielané cez verejnú internetovú sieť, rozhodli sme sa použiť RSA a AES algoritmy na šifrovanie prenášaných hlasov.
Samotné hlasy sú zašifrované pomocou symetrického kľúča AES, ktorý je potom zašifrovaný verejným kľúčom RSA hlavného servera. Hlasy sú tiež podpísané asymetrickým privátnym kľúčom RSA gateway-a, ktorý zabezpečí, že počas prenosu na server dáta neboli zmenené. Zapojením súkromného kľúča volebnej miestnosti sme zabezpečili, že aj keby útočník poznal verejný kľúč hlavného servera, potrebovali by poznať aj privátny kľúč konkrétnej volebnej miestnosti. Algoritmus AES sa používa kvôli jeho rýchlosti a schopnosti šifrovať správy neobmedzenej dĺžky a je v súčasnosti priemyselným štandardom. Rovnaký proces šifrovania sa používa aj vo vnútri lokálnej siete s volebnými terminálmi.
Všetka komunikácia medzi volebnými terminálmi a gateway-om prebieha len cez lokálnu sieť Ethernet. Okrem toho je každý odoslaný hlas šifrovaný pomocou moderných kryptografických algoritmov. Keby sa i napriek tomu útočník pokúsil pripojiť k sieti a odoslať falošný hlas, nemal by platný privátny kľúč volebného terminálu, takže jeho pokus o útok by zlyhal pri overovaní hlasu, hlas by nebol prijatý.
Výmena kľúčov je najdôležitejšou súčasťou RSA šifrovania. Výmena verejných kľúčov sa vykonáva počas procesu konfigurácie gateway-a autorizovaným personálom pred voľbami. Tu môže zapríčiniť chybu iba ľudský faktor, čo sa taktisto môže stať aj pri doteraz zaužívanom spôsobe volieb.
Životný cyklus hlasu
Dáta reprezentujúce hlas voliča v JSON formáte sú odoslané na backend terminálu, kde sa overí platnosť voličovho autorizačného tokenu a následne je potvrdený aj jeho hlas. Šifrovaný hlas spolu s identifikátorom volebného terminálu a autorizačným tokenom voliča je odoslaný na gateway, kde sa spracuje. Voting Service dešifruje hlas kľúčom daného volebného terminálu a následne overí platnosť autorizačného tokenu. Ak je token platný, hlas sa uloží do databázy a je vrátená správa o úspešnom spracovaní požiadavky. Akonáhle terminál prijme odpoveď, tlačiareň vytlačí potvrdzujúci doklad (malý papier) s podrobnosťami o hlasovaní a QR kódom.
Po odhlasovaní je použitý autorizačný token deaktivovaný, takže s ním nie je možné znova hlasovať. Ak je gateway pripojený k internetu, synchronization service začne odosielať šifrované hlasy na hlavný server v pravidelných intervaloch. Hlasy sú potom spracované na serveri službou voting service, kde sa dešifrujú hlasy pomocou príslušných kľúčov a ak je elektronický podpis platný, hlas je uložený do hlavnej databázy. Hlavný server pravidelne reindexuje nové hlasy pomocou technológie ElasticSearch pre efektívne získavanie štatistík a umožnenie rôznych dopytov nad výsledkami.
Konečné výsledky sú k dispozícii hneď, ako všetky gateway-e zosynchronizujú všetky svoje hlasy. Naše riešenie sme pripravili na veľké množstvo návštevníkov, pretože zobrazovanie výsledkov je riadené pomocou ElasticSearch-u. Táto technológia podporuje distribuované výpočty a je vysoko škálovateľná. Používateľom ponúkame vizualizáciu výsledkov volieb podľa krajov a okresov Slovenska a taktiež je možné vidieť aj rozdelenie kresiel pre strany v parlamente.
Používatelia môžu tiež zadávať vlastné dopyty filtrovaním konkrétneho mesta, regiónu, alebo iného geografického členenia. Zároveň je možné poskytovať čiastkové výsledky volieb aj pokým ešte nie sú ukončené, ak to individuálny prípad použitia umožňuje.
Volebný proces
Z pohľadu voliča sa samotný proces hlasovania zásadne nemení. Volič príde do volebnej miestnosti a podrobí sa overeniu identity členom komisie. Namiesto obdržania veľkého množstva papierov s kandidátmi dostane volič NFC tag určený na autorizáciu pri volebnom termináli. Volič pristúpi k volebnému terminálu a priloží NFC tag ku čítačke, po úspešnej autorizácii je odomknutá volebná aplikácia. Veľký dotykový displej zobrazuje zoznam dostupných kandidátov. Volič môže vyhľadávať kandidátov podľa mena, prechádzať stránkami v zozname strán a vyberať preferovaných kandidátov. Volič musí potvrdiť svoju voľbu v každom medzikroku a na konci po zobrazení sumáru hlasovania opäť potvrdiť svoj výber.
Taktiež je možné odovzdať aj prázdny hlas ako to je možné pri klasických voľbách. Volebný terminál informuje voliča o úspechu voľby a vytlačí potvrdenie o hlasovaní (malý papier, ktorý obsahuje QR kód pre možnosť offline počítania hlasov). Následne volič vhodí potvrdenie do volebnej urny a hlasovací proces je z pohľadu voliča ukončený.
Ukážky obrazoviek
Výsledky našej práce
-
18.10.2021
Analýza hardvéru a technológii + Webová stránka
-
01.11.2021
Dizajn volebnej aplikácie + Projektové metodiky
-
15.11.2021
Používateľské testovanie a analýza komponentov
-
29.11.2021
Začiatok implementácie
-
15.12.2021
Vytvorenie testov
-
14.02.2022
Vianočný šprint
-
28.02.2022
Hardwarový manifest
-
14.03.2022
Integračné testovanie a počítanie výsledkov
-
28.03.2022
Aplikácia na štatistiky
-
11.04.2022
Publikácia na konferenciu
-
25.04.2022
Príprava na konferenciu
-
18.05.2022