320 likes | 437 Views
Sme lý Palko v Ohiu alebo pán Turing ide voliť. Pavol Černý GJH , Január 200 9. Čo je Ohio ? Kto je Turing? Bonus: čo je na obrázku ?. Sme lý Palko v Ohiu alebo pán Turing ide voliť. Pavol Černý GJH , January 200 9. Voľby v roku 2000. Volebné automaty.
E N D
Smelý Palko v Ohiu alebopán Turing ide voliť Pavol Černý GJH, Január 2009
Čo je Ohio? • Kto je Turing? • Bonus: čo je na obrázku? Smelý Palko v Ohiu alebopán Turing ide voliť Pavol Černý GJH, January 2009
Volebné automaty • Homér Simpson má problém. • (tu bolo video ako Simpsonovci volili)
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
Softvérové chyby • Buffer overflow • 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... bool Trik(string program) { if Zastaví?(program,program) { while true {}; } else { return true; } } Trik(Trik)
Zastaví Trik(Trik)??? 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)??? 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í
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