Wg wszelkich znaków na niebie i ziemi, w czasie gdy będą u nas wybory Prezydenta RP będzie też szczyt zachorowalności na Koronawirusa. Pójście do lokalu będzie wymagało podjęcia ryzyka – bo przez każdy lokal przewinie się około 1000 ludzi, co prawda nie w tym samym momencie, ale wiecie, najczęściej ludzie w grupach przychodzą. Może jest więc moment na uruchomienie ewyborów – czyli głosowania przez internet?
Co prawda czasu nie jest zbyt wiele, ale może warto spróbować? Najwyżej się nie uda i będziemy musieli ubrać się w maseczki, fartuchy czy inne środki, ale jeśli nie spróbujemy to na pewno się nie uda.
Być może trzeba będzie zrobić e-wybory testowe – czyli bez mocy (czyli i tak trzeba będzie Co potrzebujemy do e-wyborów:
- drobnej zmiany prawa
- napisania i przetestowania oprogramowania
- przygotowania infrastruktury
Biorąc pod uwagę, że są to wybory na Prezydenta RP i faworyt jest znany, to znacznie lepiej na takich wyborach testować, niż na trudnych jak parlamentarne czy arcytrudnych jak samorządowe.
A jak to by miało wyglądać?
E-wybory to o dziwo trudny temat. Trudny – bo trudno zaspokoić dwie sprzeczne potrzeby. Otóż chcemy żeby wybory były tajne, a jednocześnie chcemy żeby były pewne, że osoba, która oddaje głos była uprawniona. W przypadku systemów informatycznych jedno niemalże wyklucza drugie. Chciałbym zaproponować rozwiązanie, które oczywiście nie jest bez wad (na końcu o nich wspomnę)
- Do PKW zgłaszają się organizacje, które chcą administrować serwerami autentykacji. wymieniają się kluczami do szyfrowania transmisji (powiedzmy do 7 dni przed wyborami)
- Każdy kto chce głosować przez internet zgłasza to do PKW przy pomocy podpisu zaufanego. PKW wykreśla go ze stałego rejestru wyborców (żeby nie można było zagłosować elektronicznie i papierowo). Powiedzmy do 3 dnia przed wyborami.
- Po zamknięciu listy zgłoszeń PKW generuje dokładnie taką liczbę unikalnych tokenów (coś w stylu XLOH-y67fe-lskd-34kj24.
- Każdy serwer autentykacji otrzymuje pulę 1000 tokenów.
- Głosujący w dniu wyborów wchodzą na stronę PKW, która podaje listę serwerów autentykujących z podaniem kto nimi administruje.
- Głosujący wybiera najbardziej dla niego zaufaną organizację i loguje się tam przy pomocy Profilu Zaufanego.
- Organizacja wydaje mu token z przydzielonej puli.
- Głosujący z tokenem loguje się na stronę PKW i oddaje tokenem głos.
- Gdy braknie tokenów to organizacja prosi o kolejną pulę, wysyłając listę osób, które te tokeny zużyły. Po tej operacji nie ma możliwości unieważnienia głosowania tej puli tokenów.
- Po zakończeniu wyborów organizacja zwraca niewykorzystane tokeny
Wady:
Kto ma token ten ma głos i nie ma żadnej pewności czy to on oddał głos. Ale w przypadku e-votingu w zasadzie nigdy nie ma tej pewności, bo osoba może się zalogować po czym wstać i oddać klawiaturę komuś innemu, więc ten problem jest po prostu nieusuwalna wadą i trzeba się z tym pogodzić
Zalety:
Możliwość unieważnienia głosu: gdyby się okazało, ze organizacja wykorzystała głosy w imieniu głosujących (po pierwsze max 1000), to można je unieważnić, informując osoby o tym i wezwać do ponownego głosowania. Oczywiście o ile to wyjdzie w czasie głosowania, a wyjdzie, bo osoba która dostanie token, nie będzie mogła zagłosować.
Zabezpieczenie tajności: wybory będą tak długo tajne, póki nie wyciekną dane z PKW i jednocześnie z organizacji. A w praktyce – to po zakończeniu wyborów wystarczy skasować bazy w organizacjach i wybory są na pewno tajne. Oczywiście głosowanie na serwerach PKW będą rejestrowane przy pomocy blockchain, żeby nie dało się post factum ich zmienić.
Jeśli ktoś widzi błąd w rozumowaniu – bardzo mnie to ucieszy. Bo może uda się to naprawić.