Smelý Palko v Ohiu alebo pán Turing ide voliť Pavol Černý GJH, Január 2009
Smelý Palko v Ohiu alebo pán Turing ide voliť Čo je Ohio? Kto je Turing? Bonus: čo je na obrázku? Smelý Palko v Ohiu alebo pán Turing ide voliť Pavol Černý GJH, January 2009
Voľby v roku 2000
Volebné automaty Homér Simpson má problém. (tu bolo video ako Simpsonovci volili)
iVotronic
M100 Scanner
M650 Scanner
ES&S Systém -- úvodné nastavenia
ES&S Systém -- zbieranie výsledkov
PEB
Unity aplikácia na zrátavanie výsledkov hlasy[kandidat] = hlasy[kandidat]+1 ?? nie: 365.000 riadkov.. v C, C++, Cobol, Java and Visual Basic
Ako sme hľadali
Čo sme našli
Tlačiareň
Tlačiareň 2
Zámky a kľúče
Ako si vyrobiť PEB
Ako si vyrobiť PEB QA option – no election specific password
Softvérové chyby Buffer overflow Vrátiť dáta z viacerých okrskov vrátiť nebezpečný (a dlhý) string Vrátiť dáta z viacerých okrskov týka sa optických scannerov Žiadna (alebo zlá) kryptografia na prenosových médiach
Úplný útok 1. Volič-zločinec začne proces nahrávania nových volebných dát na iVotronic pomocou emulovaného QA PEBu (3 mins) 2. Volič-zločinec využije buffer-overflow chybu a nahrá nový firmware naiVotronic (15 mins) 3. Volič-zločinec odletí do Severnej Kórei
Úplný útok 4. pri zbere dát sa od infikovaného iVotronic-u zreportujú vymyslené výseldky a infikuje sa back-end Unity 5. pri ďalších voľbach sa infikujú všetky ostatné iVotronic-y, M100vky a M650ky.
Prečo niekto konečne nenapíše program, ktorý by skontroloval, či iné programy robia to, čo majú?
Prečo niekto konečne nenapíše program, ktorý by skontroloval, či iný program skončí?
Skúsme si to predstaviť bool Zastaví?(string Program, string vstup) Program P (zdrojový kód) Vstup Zastaví? Áno / Nie
Hrajme sa ďalej bool Zastaví?(string Program, string vstup) bool Trik(string program) { if Zastaví?(program,program) { while true {}; } else { return true; }
Hrajme sa ďalej Trik(“bool Trik(string program) { “); if Zastaví?(program,program) { while true {}; } else { return true; } “);
Inými slovami... Trik(Trik) bool Trik(string program) { if Zastaví?(program,program) { while true {}; } else { return true; } Trik(Trik)
Zastaví Trik(Trik)??? Predstavme si, že Trik(Trik) zastaví: bool Trik(string program) { if Zastaví?(program,program) { while true {}; } else { return true; } Predstavme si, že Trik(Trik) zastaví: ale to znamená, že funkcia Zastaví? vraví, že Trik(Trik) nezastaví
Zastaví Trik(Trik)??? Predstavme si, že Trik(Trik) nezastaví: bool Trik(string program) { if Zastaví?(program,program) { while true {}; } else { return true; } Predstavme si, že Trik(Trik) nezastaví: ale to znamená, že funkcia Zastaví? vraví, že Trik(Trik) zastaví
???
Funkcia Zastaví? neexistuje.
Záver Dajte sa na informatiku! (ak chcete..) Volebné automaty – zdá sa, že je ešte dosť práce Písať spoľahlivé programy - ako na to? .. Výpočet .. moc zaujímavý pojem – v matematike, fyzike, biológii