Projekt realizowany w ramach zajęć projektowych z
przedmiotu: Zarządzanie Bezpieczeństwem
Systemów Informatycznych.
Informatyka
semestr VII
rok akademicki 2011-2012
System do
głosowania
wyborczego przez
Internet
Autorzy:
Jakub Cegiełka
Kamil Cieśla
Andrzej Dubiel
Michał Szczesny
Mikołaj Woźniak
2
*http://www.e-glosowanie.org/
4. Podsumowanie – dokumentacja
projektu (Michał Szczesny)
3. Budowa systemu – model architektury
systemu, projekt bazy danych oraz
synchronizacji baz danych (Kamil Cieśla,
Andrzej Dubiel)
2. Analiza zabezpieczeń systemu pod
kątem zagrożeń (Jakub Cegiełka,
Mikołaj Woźniak)
1. Analiza zagrożeń wobec systemu –
wszyscy członkowie
Podział prac w
projekcie
3
4
Problematyka systemu
głosowania przez Internet
Czyli dlaczego nie możemy
jeszcze głosować przez Internet ?
Głosowanie musi być tajne
Jedna osoba może oddać tylko i wyłącznie jeden głos
Konkretna osoba może zagłosować z dowolnego miejsca z
dostępem do sieci
Obywatel jest zobowiązany do odbioru indywidualnego
podpisu elektronicznego (Wojewódzkie centra certyfikacji) –
przypisanie konkretnego obywatela do województwa
Głosowanie jest dobrowolne
Budowa systemu jest wysoce kosztowna
5
6
Podstawy teoretyczne
budowy systemu do
głosowania przez Internet
Jak będzie wyglądał
zaproponowany przez nas
system ?
Hardware (wstępnie)
1.
Serwer centralny – siedziba PKW
(Warszawa, Wiejska 10)
2.
Każde miasto wojewódzkie
utrzymuje serwer z bazą danych
głosowań z danego województwa
3.
Minimum 1 komputer w każdym
lokalu wyborczym
Software (wstępnie)
4.
Aplikacja sieciowa
wykorzystująca:
-> SSL – połączenie szyfrowane
-> Baza danych – numer obywatela
do głosowania przetrzymywany jako
skrót (SHA-512)
-> Ważność klucza do głosowania –
do momentu jego kompromitacji
(dwa identyczne skróty w bazie
danych
)
7
8
Analiza zagrożeń
systemu
Co możemy zrobić aby uszkodzić
system ?
1.
Podstawowe zagrożenie –
Człowiek (kompromitacja
klucza, systemu)
2.
Atak DDoS, Sql Injection. Atak
na SSL
3.
Certyfikat wygasa po 20-latach
(Taki jest okres gwarancji
klucza RSA)
a)
Podsłuch w dniu wyborów
(po 20 latach możliwe
ujawnienie głosowania)
4.
Atak typu „Man in the Middle”
– Jeżeli ten sam klucz jest
używany przez kilka lat, to
istnieje możliwość złamania
certyfikatu, czyli zdobycie
numeru osobistego obywatela.
Może to skutkować
ubiegnięciem „prawdziwego”
obywatela, w głosowaniu, co z
kolei wiąże się z utratą
możliwości głosowania
9
10
Analiza zabezpieczeń
systemu w obliczu
możliwych zagrożeń
Co możemy zrobić aby
zabezpieczyć system i uniknąć
problemów ?
Schemat działania systemu:
1.
Użytkownik rejestruje się w
urzędzie gminy, odbiera 14
znakowy klucz (losowy, niezależny
od numeru pesel). Klucz jest
używany do logowania i jest
powiązany do jego peselu.
Wygenerowanie klucza musi się
odbyć co najmniej tydzień przed
wyborami. Klucz musi być
zmieniany po 20 latach.
2. Po prawidłowym zalogowaniu po
przez przeglądarkę internetową
używając numeru pesel oraz klucza
otrzymanego w urzędzie, serwer
wysyła certyfikat w standardzie X509
wraz z kluczem publicznym.
11
PESEL +
Schemat działania systemu c.d.:
3. Certyfikat jest instalowany na
komputerze klienta. Dla
kryptografii asymetrycznej długość
klucza będzie równa 2024 bitów a
dla algorytmów szyfrowania
symetrycznego 256 bitów.
Rodzaje dostępnych algorytmów
kryptograficznych określa protokół
SSL.
4. Klient oddaje głos. Do
zapewnienia poufności głosowania
zostanie zapisana jedynie wynik
funkcji skrótu SHA-512 z nr pesel
oraz oddany głos.
12
Możliwe zagrożenia i
sposoby zapobiegania im
Zagrożenia
Zapobieganie
Człowiek może
skompromitować swoje
hasło
Z jednego numeru
pesel ważny jest
pierwszy głos, jeżeli
użytkownik twierdzi, iż
jego klucz jest
skompromitowany
może go zamienić na
nowy.
Atak „man in the
middle”
Ochrona przed tym
atakiem jest zbyt
kosztowna
(uwierzytelnienie lub
wiele kanałów
nadawczych) dla
zwykłego obywatela.
Jednak może być on
potencjalnym
zagorzeniem dla
systemu.
Atak typu DDoS na
bazę danych
Ustawienia serwera,
firewall.
Rozszyfrowanie
wiadomości po
dłuższym czasie (jeżli
ktoś podsłucha
dzisiejszą komunikacje
opartą o klucz RSA
2024 za kilkadziesiąt
lat będzie mógł ja
rozszyforwać)
Zwiększanie długości
klucza.
Uzyskanie przez aplikację
certyfikatu Common Criteria -
norma ISO 15408
Jest to norma pozwalająca w sposób
formalny weryfikować bezpieczeństwo
systemów teleinformatycznych.
Wynikiem procesu certyfikacji jest tzw.
"profil ochrony" (PP - protection
profile), który definiuje zabezpieczenia
stosowane przez produkt oraz
certyfikat potwierdzający ich faktyczną
skuteczność. Proces certyfikacji może
być prowadzony według różnych
poziomów szczegółowości i weryfikacji
formalnej (EAL - Evaluation Assurance
Level), począwszy od EAL1 (tylko testy
funkcjonalne) aż do EAL7 (formalna
weryfikacja projektu oraz testy).
14
* Posiadanie certyfikatu CC nie gwarantuje, że
produkt jest bezpieczny pod każdym względem -
zapewnia jedynie o działaniu wszystkich
zadeklarowanych przez producenta
zabezpieczeń. Sam certyfikat niewiele więc mówi
bez profilu ochrony opisującego zastosowane
zabezpieczenia. Dla popularnych produktów (np.
bezpieczne urządzenie do składania podpisu
elektronicznego) istnieją ustandaryzowane profile
ochrony.
15
Budowa systemu –
propozycja architektury
systemu
Jak może wyglądać system do
głosowania przez Internet w
rzeczywistości ?
Model Architektury Systemu
->
klient-serwer
16
•Każde województwo posiada swój autonomiczny
podsystem, z własnym serwerem i niezależną bazą
danych (która zawiera dane obywateli mogących
głosować przez internet - tabela voter oraz kandydatów,
na których można głosować - tabela candidate).
1. Podział na sektory
•Podczas trwania wyborów obywatel, który ma prawo do
głosowania przez internet, może zalogować się do
systemu głosowania z własnego komputera lub
komputera znajdującego się w dowolnym lokalu
wyborczym za pomocą przeglądarki internetowej.
2. Możliwości obywatela
•Głosujący musi podać swój numer PESEL oraz 14
znakowy klucz, który otrzymał w urzędzie gminy.
3. Wymagania wobec obywatela
Model Architektury Systemu
->
klient-serwer c.d.
17
• Na podstawie danych z tabeli voter, głosującemu
wyświetlani są kandydaci, na których może oddać
głos.
4. Wybór kandydatów
• Po wybraniu kandydata wiadomość jest szyfrowana
i wysyłana do serwera wojewódzkiego, gdzie
następuje zapisanie do bazy danych skrótu SHA-
512 z numeru PESEL głosującego oraz id
kandydata, na którego został oddany głos.
5. Wysłanie głosu
• Po zakończeniu głosowania serwery wojewódzkie
przesyłają dane do serwera głównego Państwowej
Komisji Wyborczej w stolicy kraju.
6. Analiza głosu obywatela
Model Architektury Systemu
->
klient-serwer c.d.
18
• Po zebraniu danych z wszystkich serwerów,
następuje sprawdzanie czy dany głosujący
oddał tylko JEDEN głos. W przypadku
znalezienia w bazie danych co najmniej dwóch
identycznych skrótów SHA-512 (oddanie więcej
niż jednego głosu), brany pod uwagę jest tylko
głos pierwszy, a reszta unieważniana
(przypadek, gdy głosujący zbyt długo będzie
czekał na odpowiedź serwera o poprawnym
oddaniu głosu i spróbuje wykonać procedurę
głosowania jeszcze raz).
7. Warunek poprawności oddanego
głosu
• Na koniec zliczane są głosy wszystkich
kandydatów.
8. Podsumowanie głosowania
Projekt bazy danych
19
Projekt bazy danych –
charakterystyka tabel
20
Tabela VOTER zawiera
informacje o
obywatelu, który może
oddać głos w
wyborach:
•numer PESEL obywatela,
•key - klucz otrzymany w
urzędzie gminy,
•region - okręg, do
którego należy
głosujący, na jego
podstawie generowana
jest lista kandydatów, na
których można oddać
głos.
Tabela
DISCREDITED_KEY
zawiera informacje o
głosujących, których
klucz został
skompromitowany
(gdy zostało oddanych
kilka głosów z różnych
miejsc - różnych
adresów IP):
Tabela CANDIDATE
zawiera informacje o
kandydatach, na
których można oddać
głos:
•name - imię kandydata,
•last_name - nazwisko
kandydata,
•region - okręg, z którego
kandydat startuje,
•party_member - partia,
do której należy
kandydat (pole może być
puste, jeśli bezpartyjny),
•type - typ kandydata
(prezydent, senator,
poseł),
•votes - liczba głosów,
jaka została oddana na
kandydata.
Tabela VOTE
przechowuje
informacje o głosach:
•SHA_512 - skrót SHA
numeru PESEL
oddającego głos,
•candidate_id -
identyfikator kandydata,
na którego został
oddany głos,
•created - data i czas
oddania głosu,
potrzebne do określenia,
który głos jest ważny
(wcześniejszy), gdy na
skutek błędu/opóźnienia
aplikacji w bazie danych
pojawią się dwa
głosy od tego samego
obywatela.
Synchronizacja bazy danych
21
Po zakończeniu terminu oddawania głosów,
serwery wojewódzkie sprawdzają czy w ich
lokalnych bazach występują duplikaty
głosów - jeśli tak, to są one usuwane.
Następnie serwery wojewódzkie jeden po
drugim (w ustalonej kolejności) przesyłają
kopie lokalnych baz danych do serwera
głównego PKW. Serwer główny również
przeszukuje nowopowstałą bazę danych w
celu odnalezienia duplikatów skrótów SHA-
512 wśród oddanych głosów (gdy głosy
zostały oddane w różnych województwach).
Ważny jest tylko pierwszy oddany głos
(z wcześniejszą datą pola CREATED),
pozostałe są usuwane z bazy danych.
22
Materiały
http://pl.wikipedia.org/wiki/Głosowanie_elektroniczne
http://www.liberte.pl/component/content/article/1171.html
pl.wikipedia.org/wiki/Przykłady_elektronicznego_głosowan
ia
23
Ciekawostki by wiki
•
W wyborach parlamentarnych w Estonii w 2007 roku przez Internet
zagłosowało łącznie 5,5% uprawnionych wyborców, choć poparcie dla tej
idei deklarowało w sumie 85% potencjalnych wyborców. Wyborcy w Estonii
uwierzytelniali się za pomocą elektronicznego dowodu osobistego, który
posiada 80% z 1,3 mln obywateli. Obserwatorzy OBWE zwrócili uwagę, że
„bezpieczeństwo [systemu wyborczego] było uzależnione od zaufania pokładanego
w małej grupce pracowników komisji wyborczej i niezależnego audytora”.
•
Podczas wyborów w USA w 2002 roku ponad dwie trzecie z zakupionych
kosztem 125 mln dolarów komputerów wyborczych miało usterki, zaś liczba
niepoprawnie zarejestrowanych (lub zgubionych) głosów w niektórych hrabstwach
sięgała od 8 do 48% (Miami-Dade), co wzbudziło liczne spory i kontrowersje.
•
W 2002 roku amerykański programista Clinton Curtis opublikował oświadczenie
opisujące aplikację napisaną rzekomo na zlecenie producenta komputerów
wyborczych, która miała modyfikować zliczane głosy tak by preferować
wskazanego kandydata i równocześnie zachować zgodność sumarycznej liczby
oddanych głosów.
•
W 2004 roku władze Irlandii zakupiły kosztem 52 mln euro system wyborczy,
który został jednak odrzucony przez centralną komisję wyborczą w wyniku
niezależnego audytu bezpieczeństwa, od tej pory roczny koszt przechowywania
tego sprzętu sięga 800 tysięcy euro.
Dziękujemy za
uwagę
24