240 likes | 487 Views
Standardizacija in kakovost informacijskih sistemov. Standardi za varno komunikacijo. Osnovni pojmi Kriptografija: skrivno pisanje Kriptologija: nauk o zgornjem Kriptoanaliza: isto kot kriptografija, vendar uporabljamo predvsem v smislu razbijanja Spored predavanja Zgodovina kriptografije
E N D
Standardizacija in kakovost informacijskih sistemov Standardi zavarno komunikacijo
Osnovni pojmi • Kriptografija: skrivno pisanje • Kriptologija: nauk o zgornjem • Kriptoanaliza: isto kot kriptografija, vendar uporabljamo predvsem v smislu razbijanja • Spored predavanja • Zgodovina kriptografije • Moderni kriptografski algoritmi • Varni protokoli
Antično kodiranje Skytale: transpozicija (stari Grki) substitucija (zamik): Cesar Julij
“Chiffre indéchiffrable“ • Giovan Batista Belaso (1553): • kot Cezarjeva, vendar uporabljamo različne zamike, kakor jih določa geslo • Blaiseu de Vigenèr: • pripišeju mu Belasov postopek (ki ga zdaj imenujemo Vigenerjev) • poleg tega, česar ni sestavil, je sestavil še nekaj boljšega: avto-ključ
Dešifriranje šifre, ki je ni mogoče dešifrirati • John Hall Brock Thwaites objavi “novo” metodo šifriranja • Babbage pove, da to ni nič drugega kot Vigenerjeva koda • Thwaites je hud in izzove Babbagea, naj dešifrira, če more • Babbage se poskusi izmazati • Babbageu se ne uspe izmazati • Babbage je hud in izumi postopek za dešifriranje • trik je v tem, da s frekvenčno analizo razberemo dolžino ključa
Uporaba permutacijskih šifer • Secesijska vojna v Ameriki: jug šifrira (Vigener), sever bere, saj jug uporablja samo ključe “Manchester Bluff”, “Complete Victory” in “Come Retribution” • Druga svetovna vojna: Enigma Odlična knjiga na temo zgodovine kriptografije: Simon Singh: The Code Book: The Secret History of Codes and Code-breaking
Resnično nezlomljive šifre • Navajo Code Talkers • uporabljeni v drugi svetovni vojni • vojaška skrivnost do do 1968 • Edini teoretično dokazano varen sistem: • imaš seznam naključnih števil in kodiraš tako, da narediš “XOR” (ali kaj podobnega) čez knjigo • knjigo uporabiš samo enkrat • Problem: distribucija ključa • če so ključi semena generatorja naključnih števil, ni rečeno, da bo generator nujno primeren za varno šifro
II. Moderni algoritmi • Simetrični: obe strani uporabljata isti ključ • Data Encription Standard (DES) • Advanced Encription Standard (AES) • International Data Encryption Algorithm (IDEA) • RC4 • Asimetrični: vsaka stran ima drug ključ • Rivest, Shamir, Adleman (RSA) • Kvantna kriptografija
Moderni kriptografski algoritmi: DES • Data Encryption Standard (DES) • razvit sredi sedemdesetih kot IBMov predlog NBSu (National Institute of Standards and Technology); delovno ime “Lucifer” • 56 bitni ključ (na zahtevo NSA) • zlomiti ga je mogoče z grobo silo v enem dnevu • Triple DES (TDES): trojno kodiranje z DES • DES prehaja iz rabe, zamenjuje ga AES
Moderni kriptografski algoritmi: AES • Advance Encryption Standard • Velikost ključa 32-256 bitov • Varnost: • Ameriška vlada: • 128 bitov je dovolj za “SECRET” • 192 bitov je dovolj za “TOP SECRET” • AES je prvi algoritem, ki se uporablja za “TOP SECRET” in je javno znan • Edini uspešni napadi so delovali tako, da so napadli “stranske kanale” (ne postopka, temveč prenos ključev ipd.) • Nekatere skrbi, da je matematično algoritem preveč lep, da ga matematiki ne bi želeli/mogli/uspeli sesuti
Moderni kriptografski algoritmi: IDEA • Od daleč podoben AES, le transformacija je drugačna (blok na desni se ponovi osemkrat) • Načelno varen • IDEA se opušča zaradi hitrejših algoritmov (AES) in napredka v kriptoanalizi
Moderni kriptografski algoritmi: RC4 • RC4 = Rivest Cipher 4 • “Poslovna skrivnost”, dokler ga ni nekdo anonimno objavil na neki mailing listi • Algoritem • tabelo števil med 0 in 255 naključno zmešaš, kot veleva ključ j := 0 for i from 0 to 255 j := (j + S[i] + key[i mod keylength]) mod 256 swap(S[i],S[j]) • tabelo uporabi kot del generatorja naključnih števil • sporočilo kriptira tako, da naredi XOR teh naključnih števil in sporočila • Varnost • slaba • istega ključa nikoli ne smemo uporabiti dvakrat • algoritem ni več priporočen
Moderni kriptografski algoritmi: RSA • Algoritem za hec odkril Clifford Cocks (1973), a javno objavljen šele 1997 • Vmes ga odkrijejo Rivest, Shamir, Adleman (1977) • Sistem javnega (tega poveš) in privatnega ključa (tega skrivaš): vsi ti lahko pošiljajo kriptirana sporočila, bereš pa jih samo ti • Ker je algoritem simetričen, lahko (v načelu isti) privatni ključ uporabiš za “podpisovanje”: kar se odklene s tvojim javnim ključem, je bilo zaklenjeno s privatnim (ki ga veš le ti) • Varnost: • Algoritem je varen, če (dokler?) ne poznamo učinkovitega algoritma faktorizacije • Praštevila morajo biti primerno naključno izbrana • Napad z merjenjem časa: po tem, koliko časa traja potenciranje, lahko uganemo približno velikost ključa • Glavni problem: hitrost. V praksi uporabimo RSA zato, da posredujemo ključ za DES. Ključ za DES mora biti primerno naključen.
Moderni kriptografski algoritmi:Kvantna kriptografija • Kvantni efekt za določevanje naključnega zaporedja • Postopek temelji na • ... tem, da so kvantni dogodki naključni in nenapovedljivi • ... tem, da ne moremo meriti dveh količin (kvantnih stanj) istočasno • ... “sumljivi akciji na daljavo” (spooky action at distance) • Če je imel Einstein prav, ne deluje • Einstein se je motil • Varnost: • popolna, razen če se fiziki zelo zelo motijo (z izjemo Einsteina) • prisluškovalec ne more prisluškovati, ker nima čemu • Primerna za komunikacijo med dvema, ne za, denimo, kodiranje televizijskega signala • Tehnične težave • slabo prenašanje po zraku (napake zaradi trkov v druge delce) • optične kable je mogoče sabotirati
III. Protokoli • certifikati • komunikacija: ssl, tsl • lupina: ssh • omizja: remote desktop • brezžična omrežja: WAP, WPE
Certifikati • Certifikat vsebuje • ime organizacije • njen javni ključ RSA • izdajatelja certifikata • MD5, kodiran z izdajateljevim privatnim ključem RSA • Certifikat preverimo tako, da • poberemo izdajateljev certifikat • v njem dobimo izdajateljev javni ključ • s tem ključem dekodiramo gornji MD5 in preverimo, če je pravilen • Po istem postopku preverimo izdajateljev certifikat – tudi ta ima izdajatelja • Na koncu pridemo do certifikata, ki podpisuje sam sebe • Slednji naj bi bili certifikati znanih certifikacijskih organizacij; te dobimo z brskalnikom • FireFox: Tools/Options/Advanced/View Certificates/Authorities • IExplorer: Tools/Options/Certificates • Če niso ... potem moramo pač vedeti, kaj nameščamo
Certifikati Primer necertificiranega certifikata
Secure Sockets Layer (SSL)Transport Layer Security (TLS) • Vmesni nivo med http/smtp/nntp/... in TCPjem, ki skrbi za kodiranje • skupen servis za različne storitve • Delovanje • klient pošlje pozdrav serverju in mu pove, katere algoritme podpira • javni ključi: RSA, Diffie-Hellman, DSA, Fortezza • simetrično kriptiranje: RC2, RC4, IDEA, DES, 3DES, AES • enosmerno razprševanje (one-way hash): MD5, SHA • strežnik izbere enega od ponujenih protokolov in ga sporoči klientu • strežnik pošlje klientu certifikat; klient ga preveri • strežnik lahko (odvisno od nastavitev) zahteva klientov certifikat • strežnik in klient se dogovorita za skriti ključ • z Diffie-Hellmanovim postopkom izmenjave ključev – v principu podoben RSAju), • ali tako da si eden od njiju (klient) izmisli ključ, ga kodira s strežnikovim javnim ključem in pošlje strežniku (ki ga bo lahko odkodiral); to zagotavlja, da govorimo s pravim strežnikom • nadaljnja komunikacija temelji na tem dogovorjenem ključu: ključ iz certifikata se je torej kvečjemu enkrat!
Secure Sockets Layer (SSL)Transport Layer Security (TLS) • Dodatna zaščita • vsi izmenjani podatki so oštevilčeni • istočasna raba MD5 in SHA • ob koncu se preveri “hash” vseh poslanih podatkov • Uporaba • ssl je uporaben pri vsaki komunikaciji prek TCP • obstajajo programi, s katerimi “ovijemo” poljuben program v ssl • uporabljamo ga za zaščito http: https je http s ssl-jem • z njim je možno zaščititi elektronsko pošto (SMTP je dandanes dostopen od zunaj le, če ima ustrezno avtentifikacijo) • pomemben je v kombinaciji z VPN (Virtual Private Network) • TLS 1.0 je praktično enak kot SSL 3.0
Secure Shell (ssh) • Varna zamenjava za telnet, rlogin in rsh • ssh-1 (1995): razvit zaradi vdora na Helsinki University of Technology • ssh-2 (1996): uradno priporočeni standard za internet • Komunikacija: • računalnika si izmenjata javne ključe za RSA ali DSA • dogovorita se za ključ za sejo (session key), ki se nato uporablja za šifriranje z AES, 3DES... • ključ se zamenja po 1 GB podatkov ali po eni uri, kar se zgodi prej • Uporaba: • ssh namesto telneta • v kombinaciji z sftp dobimo varen ftp • v kombinaciji s scp dobimo varen rcp (remote copy) • tuneliranje – v kombinaciji z VPN • Preprost prost klient: putty (poleg njega pa še sftp, scp...): http://www.chiark.greenend.org.uk/~sgtatham/putty/
Oddaljena namizja • Remote Desktop Protocol vključuje kriptiranje z RC4 (privzeto kodiranje) in je sorazmerno varen • Virtual Network Computing (VNC) ni varen in ga je potrebno tunelirati (prek ssh, vpn, ssl, tls) • Obstajajo različice, ki vključujejo kriptiranje
Brezžična omrežja • WEP • temelji na RC4 • prvotno 40 bitni ključ, ko ZDA ukinejo omejitev dolžine ključev v izvoženi tehnologiji, pa 128 bitov • ker RC4 ne sme večkrat uporabiti istega ključa, se vsakič izbere 24 (oz. 104, v močnejši različici) bitov - katere izberemo, povemo javno) • zaradi ponavljanja delov ključev je algoritem ranljiv • WEP je mogoče razbiti v nekaj urah z običajno računalniško opremo • WPA • v osnovi podoben WEP (128, 48), vendar stalno menja ključ • čeprav mišljen kot začasna rešitev, je še vedno v rabi in varen • WPA2 • namesto RC4 uporablja AES • Vso komunikacijo na nezavarovanih brezžičnih omrežjih lahko vidi vsak.