background image

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

background image

Autorzy:

Jakub Cegiełka

Kamil Cieśla

Andrzej Dubiel

Michał Szczesny

Mikołaj Woźniak

2

*http://www.e-glosowanie.org/

background image

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

background image

4

Problematyka systemu 

głosowania przez Internet

Czyli dlaczego nie możemy 

jeszcze głosować przez Internet ? 

background image

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

background image

6

Podstawy teoretyczne 

budowy systemu do 

głosowania przez Internet

Jak będzie wyglądał 

zaproponowany przez nas 

system ?

background image

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

background image

8

Analiza zagrożeń 

systemu

Co możemy zrobić aby uszkodzić 

system ?

background image

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

background image

10

Analiza zabezpieczeń 

systemu w obliczu 

możliwych zagrożeń

Co możemy zrobić aby 

zabezpieczyć  system i uniknąć 

problemów ?

background image

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 +

background image

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

background image

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.

background image

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.

background image

15

Budowa systemu – 

propozycja architektury 

systemu

Jak może wyglądać system do 

głosowania przez Internet w 

rzeczywistości ?

background image

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

background image

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

background image

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

background image

Projekt bazy danych

19

background image

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.

background image

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.

background image

22

Materiały

http://pl.wikipedia.org/wiki/Głosowanie_elektroniczne

http://www.liberte.pl/component/content/article/1171.html

http://www.e-glosowanie.org/

http://

pl.wikipedia.org/wiki/Przykłady_elektronicznego_głosowan
ia

http://www.commoncriteriaportal.org/

http://ipsec.pl

background image

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.

background image

Dziękujemy za 

uwagę

24


Document Outline