Votul electronic

Lumea tot mai mult se internet-izează. A venit şi momentul implementării votului electronic. Procedura e simplă din punct de vedere tehnic, însă foarte complicată din punct de vedere a securizării, autentificării şi asigurării anonimatului votului.

Din experienţa mea de implementare a unor protocoale de securitate pentru fisc (în perioada de studenţie), experienţa de la electionplatform.com , precum şi după vizionarea prezentării dlui Ciocan de la CEC, vin cu câteva propuneri.

Mai întâi lacunele care le-am detectat.
1. User Interface. Trebuie de profitat la maximum de spaţiul de pe ecran. Faceţi keyboard pe tot ecranul. Să vadă orice om, chiar şi cei cu vederea slabă. Pentru început se poate de citit UI de la Apple. E foarte bun.
2. Evidenţa celor care au votat şi celor care nu şi-au exprimat votul, se face centralizat. În nici un caz parţial.
3. Ce e cu refuzul de a vota de la orice birou? Come on, doar e totul centralizat şi se verifică dacă persoana a mai votat sau nu.
4. De ce doar ultimul vot e luat în considerare, doar se face totul online?
5. Ce facem cu cetăţenii de peste hotare? Le trimitem prin poşta rapidă cartele cu PIN-uri?
...

Şi respectiv abordarea pe care o văd eu. O simplă metodă de votare electronică care elimină unele neajunsuri de mai sus.
1. Intră omul în cabina de vot. (Intră pe site-ul de votare electronică)
2. Introduce INDP său.
3. Sistemul controlează online dacă e valid şi afişează Numele şi Prenumele pe ecran.
4. Persoana vede dacă într-adevăr e numele său şi butonează "Accept" pentru a trece la pasul următor.
5. Afişând Numele şi Prenumele, sistemul întreabă cetăţeanul doar ”un număr de credit card bancar”. Banca poate fie oricare din Moldova sau străinătate. Deci, Numele de pe buletin trebuie să coincidă exact cu cel de pe card cetăţeanul nu are cum să-l modifice.
6. Sistemul întreabă CVV2 (E pinul de la cartelă, pe care doar cetăţeanul îl poate şti)
7. Sistem face o tranzacţie bancară. Transferă la buget un bănuţ, pentru a controla dacă card-ul este valid.
8. În cazul când este valid i se propune lista de candidaţi pentru votare.
9. Persoana votează.

Problemele rezolvate:
1. Procedeul de mai sus, elimină marea problemă, de autentificare a cetăţenilor de peste hotare. Utilizând, indirect, securitatea băncilor.
2. Elimină votul cumpărat. Nimeni nu va dori să-şi dea altei persoane ”Numărul credit cardului” şi CVV2 pe care îi vine salariul.
3. Infracţiunile se pot comite la nivel bancar, însă pot fi mult mai uşor depistate, decât pentru fiecare persoană în parte.

A doua mare problemă pe care o văd, e că societatea nu e pregătită să aibă încredere în calculatoare. Pentru că acesta poate transmite centralei pentru cine a votat cetăţeanul.

Pentru a elimina cât de cât această problemă trebuie să fie minimizată informaţia transmisă centralei şi să fie scoase datele despre cetăţean.
Cum se face? Simplu. Prin hash-area datelor cetăţenilor.
Adică, dacă avem INDP 1234567890123, Vasile Votatorul, CC5555-6666-7777-8888, CVV2 1234, Votat pentru Ion Moldoveanu.
Facem un hash MD5,SHA1.. şi transmitem doar 0xAFAFDAEACFAF3E5D6C7A Votat Ion Moldoveanu şi mai transmitem INDP 1234567890123 că a votat, pentru eliminarea dublei votări.

Astfel, vom avea o baza de date cu cine a votat şi cine nu, iar alta cu datele despre candidaţi.

Nu pretind că am descris un sistem ideal de votare.
Comentariile şi criticile sunt binevenite.

PS. Utilizați iPhone/iPad pentru console. De utilizat sistem similar ca squareup pentru procesarea mai rapidă.

Mai jos topicul de pe Google Buzz. Multe idei interesante vin în timpul dezbaterilor.

14 thoughts on “Votul electronic

  1. kirpi4

    Nu cred ca trebuie legata procedura de votare de prezenta unui card bancar. De exemplu daca cetateanul are cardul blocat la data alegerilor este automat exclus din electorale, ceea ce nu este corect.E mai corect ca se realizeze un sistem similar de procesare la CEC cu emiterea acelorasi carduri fara atributie financiara. Si nu e neaparat sa transefere un banut la buget (asta ar presupune confirmari de tranzactii prin cec sau bon de plata, respectiv printere si hyrtie la cabinele de vot). Sistemele de autorizare pot verifica validitatea cardurilor fara ca sa se efectuieze vreun transfer financiar.

  2. zdfg

    dar care este sistemul in alte tari in care se foloseste votul electronic? in elvetia stiu ca se foloseste de multisor si ei stau destul de bine cu securizarea datelor- asta daca judec dupa banci 🙂
    dupa mine mai apare o problema cum sa eviti votul multiplu, adica si electronic dar si in cabina

  3. Radu Chivriga

    Vitalie, şi ce facem cu persoanele (tinerii neangajaţi, pensionerii, lucrătorii simpli, pătura social vulnerabilă) dacă nu au carduri bancare? Potrivit BNM, la sfârşitul lunii martie în Moldova se aflau în circulaţie peste 751,6 mii de carduri (plus că unii oameni au câte 2- 3 carduri).

  4. evisoft

    @Radu, cei care nu au Credit Card nu vor putea vota virtual, de pe internet sau singuri.. Va trebui un funcționar cu un Card Special să îi autentifice și să le permită să voteze.

  5. Sleepy

    A existat votarea prin internet si in Germania, dar recent a fost interzisa de catre Curtea Constitutionala a RFG pe motiv ca cetateanul dupa votare nu are o confirmare ca votul exprimat de el e anume pentru candidatul sau. Cum vezi rezolvarea acestei probleme?

  6. observer

    1) Apple UI si UX nu are nimic cu un UX pentru asa un sistem. Cheia si idea principala este userul final al aplicatiei (ca doar nu toti alagatorii au Ipoduri/paduri/etc) – si in general astfel de notiuni pot sa-i induca in panica pe respectivii demnitari;
    2) Common nu se scrie asa 😉
    3) nu cred ca oamenii de la CEC nu stiu de mecanismele de securitate si cu atat mai mult de sistemele de sriptare, si cu atat mai mult de SHA1 si alte procedee.
    4) carduri au numai angajatii de stat si unii privati – restul (a se citi marea majoritate a alegatorilor) pensionarii, oamenii din strainatate, somerii – nu au carduri in bancile Moldovei.
    5) overall – IT in organizatiile de stat in RM schiopateaza mult si solutie rapida se pare ca nu este. proiecte de pilot cum este votul electronic (si multe altele din seria e-government, e-learning, etc) au dat-o in bara din cauza managerilor care le-au condus – din incompetenta si impotenta lor in domeniile respective (ICT in primul rand).

    Solutia? nu poti interzice cumatrismul, prostia, birocratia, abuzul de putere si post, incompetenta in asa tara cum MD, insa! – poti sa incepi de la “tabula rasa” prin crerea unei agentii (de alde Registru, MoldData), unui minister (de-alde MTIC) de la zero cu specialisti calificati, buni care ar inlocui sute de birocrati care stau acum in aceste organizatii (sefi de sectii peste sefi de sectii, specialisti principali peste specialisti principali). si sa nu spuneti ca cei buni is scumpi – o armata de plancton birocrat existent poate fi inlocuita cu success la aceiasi bani cu o echipa mica adr de specialisti adevarati.
    am notat numai critici (sanatoase) – celelalte le primesti si de la altii, success!

  7. evisoft

    @Observer.
    1) Am dorit să specific că Apple are unul din cei mai bun specialiști pe User Interface. Trebuie luată experiența lor.
    2) Thanks.. am fixat.
    3) A fost niște detalii pentru specialiști.
    4) Cardul e o găselniță pentru authentificare personelor. Cei care nu au, vor utiliza authetificarea reală. Adică la votare preziți buletinul și un funcționar public confirmă că tu ești tu. Și deja votezi cu cardul special (Nu bancar) al acelui funcționar.
    5) Moldovenii sunt în stare să facă un astfel de sistem. Fac ei și mai complicate.

  8. Valeriu

    1. Pentru idee bravo dar mai trebuie îmbunătățită.

    2. Două zile în urmă am primit card de la bcr, fiind student nu plătesc nici-o întreținere, dar mai am card brd de care m-am folosit un an. Pt mine nu e problemă sa-mi vând votul dând datele de la cardul bcr unei persoane cointeresate în votul meu.

    3. Ce ai propus tu ar putea constitui o parte din autentificare, dacă e trecută mergem la pasul doi, verificarea visuală prin webcam, fotul electronic fiind soluția de vot pentru cetățenii de peste hotare care nu își pot permite să ajungă la ambasadă din mai multe motive, și orice cetățean aflat departe de casă logic ca are webcam cu care discută cu rudele din Moldova. Acum apare o altă problemă, cum cu ajutorul calculatorului se verificăm identiteatea, simplu la întreprinderea registru sunt pozele cu toți cetățenii, căci și-au facut pașapoarte ca să plece peste hotare, se pune conditția ca camera sa fie deasupra monitorului iar fața să fie plasată sub un unghi corect când aceasta se întâmplă se ia o poză apoi pe monitor apare o imagine aleatoare dar cunoscută ca să modifice căderea de lumină pe față și iar se ia o poză, ambele se transmit la un centru de procesare care stabilește autenticitatea alegătorului, în practică pentru alegator nu e destul de complicat pentru alegător să voteze.

    4. După autentificarea vizuală și numerică(card și cnp sau idnp cum se spune în moldova) se redirecționează la pagina cu candidații, iar după votare alegătorul primește un cod alfanumeric generat aleator și care depinde de ip, nume, crc32 la foto, timp de votare, cnp etc. și cu care la urmă se vor face publice, plus să existe posibilitatea de verificare online cu cine a votat cetățeanul ce a primit codul dat.

    5. Dacă se începe a se implementa așa ceva pai atunci serverul poate exista doar ca open-source, ca orice doritor să poată descărca și emula la el acasă procesul de votare pentru a fi sigur că pe el nu îl duce nimeni de nas.

    Tehnologii folosite: html, css, flash dar e de dorit java, http, openssl, server posibil openBSD, nginx, python(perl php c ruby), bd casandra.

    Ultimele sunt după preferințele mele, dar dacă se dorește o modernizare adecvată a sistemul de exercitare a votului păi atunci trebuie organizate dezbateri publice cu specialiști din domeniu și nu de ținut totul în secret.

  9. Shuller

    Buna Ideea cu vot electronic… insa daca este totul centralizat nu mai este nevoe de a merge la un punct de votare… adica se poate de votat de acasa de pe PC si daca tot votez de acasa… si nu am Card ce ma fac? sau sunt in Italia si nu am nici un fel de card… Card`ul este ceva itneresant aici dar nu toti atrag atentia 1 banutz X 3Milioane populatia… = evisoft ceva venit in plus… IDNP si nu INDP cum ai scris tu Vitalie este de ajuns… BD acces le are inregistrate pe toate si ele doar sunt unice… asa ca dispare problema cu cardul… bine a votat cineva in locul meu cu IDNP al meu… ar fi mai bine de facut voturile vizibile nu anonime… si ca dupa votare de a putea verifica daca votului tau ii corespunde rezultatul final… si avand in vedere ca se poate de urmarit IP din log de unde a fost ultima votare se pot depista oamenii care fraudeaza… asa ca e chiar foarte simplu de facut un sistem de votare electronik… trebue doar dorinta si finante… si totul merge ideal fara CARD 😉

Leave a Reply