Download presentation
Presentation is loading. Please wait.
1
Smelý Palko v Ohiu alebo pán Turing ide voliť
Pavol Černý GJH, Január 2009
2
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
3
Voľby v roku 2000
4
Volebné automaty Homér Simpson má problém.
(tu bolo video ako Simpsonovci volili)
5
iVotronic
6
M100 Scanner
7
M650 Scanner
8
ES&S Systém -- úvodné nastavenia
9
ES&S Systém -- zbieranie výsledkov
10
PEB
11
Unity aplikácia na zrátavanie výsledkov
hlasy[kandidat] = hlasy[kandidat]+1 ?? nie: riadkov.. v C, C++, Cobol, Java and Visual Basic
12
Ako sme hľadali
13
Čo sme našli
14
Tlačiareň
15
Tlačiareň 2
16
Zámky a kľúče
17
Ako si vyrobiť PEB
18
Ako si vyrobiť PEB QA option – no election specific password
19
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
20
Ú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
21
Ú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.
22
Prečo niekto konečne nenapíše program, ktorý by skontroloval, či iné programy robia to, čo majú?
23
Prečo niekto konečne nenapíše program, ktorý by skontroloval, či iný program skončí?
24
Skúsme si to predstaviť
bool Zastaví?(string Program, string vstup) Program P (zdrojový kód) Vstup Zastaví? Áno / Nie
25
Hrajme sa ďalej bool Zastaví?(string Program, string vstup)
bool Trik(string program) { if Zastaví?(program,program) { while true {}; } else { return true; }
26
Hrajme sa ďalej Trik(“bool Trik(string program) { “);
if Zastaví?(program,program) { while true {}; } else { return true; } “);
27
Inými slovami... Trik(Trik) bool Trik(string program) {
if Zastaví?(program,program) { while true {}; } else { return true; } Trik(Trik)
28
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í
29
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í
30
???
31
Funkcia Zastaví? neexistuje.
32
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.