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? Common, 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.