Salaustekniikat Tuomas Aura T-110.2100 Johdatus tietoliikenteeseen kevät 2010
1. Kryptografia Luennon sisältö 2. Salattu webbiyhteys 2
KRYPTOGRAFIA 3
Symmetrinen salakirjoitus Selväkielinen sanoma M Avain K Salaus E Salakielinen sanoma E K (M) Avain K Avaus D Selväkielinen sanoma M Lähettäjä Tietoverkko Vastaanottaja Salauksen ja avaukseen tarvitaan avainta Avain yleensä noin 128-bittinen satunnaisluku Salaus ja purku on nopeaa nykyaikaisilla prosessoreilla Esim. AES, 3DES, IDEA 4
Salauksesta Salaus suojaa sanoman luottamuksellisuutta, ei eheyttä Avain salainen, algoritmi julkinen Salattu data näyttää täysin satunnaiselta, jollei avain tiedossa (vain viestin pituus paljastaa jotain) Toteutus perustuu bittioperaatioihin 128-bittinen tai pitempi avain mahdoton arvata tai löytää kokeilemalla Nykyaikainen vahva salakirjoitus (AES, 3DES) on käytännössä murtamaton Ei ole mitään syytä käyttää heikkoja algoritmeja (esim. vanha DES tai oma epästandardi algoritmi) 5
Esimerkki IDEA-salausalgoritmi Koostuu 16-bittisten lukujen moduloyhteenlaskusta, kertolaskusta ja xoroperaatioista 8 kierrosta (ks. oikealla), jotka vähitellen sotkevat selväkielen ja avaimen osat toisiinsa Julkaistu 1991, hitaampi kuin AES ja muut uudemmat algoritmit 6
Epäsymmetrinen salaus Bobin julkinen avain PK Bobin yksityinen avain PK -1 Sanoma M Salaus (asymm.) E B (M) Avaus (asymm.) Sanoma M Lähettäjä Alice Tietoverkko Vastaanottaja Bob Avainpari: Salaus julkisella avaimella, avaus yksityisellä avaimella Julkisen avaimen voi kertoa kaikille, yksityisen avain pidettävä salassa Avaimet pitkiä, salaus ja avaus melko hidasta Perustuu suurten kokonaislukujen aritmetiikkaan Esim. RSA, ElGamal 7
Esimerkki RSA-salaus, julkaistu 1978 p,q = suuria salaisia alkulukuja (512 1024 bittiä) Julkinen moduuli n = pq Eulerin totienttifunktio ϕ(n) = (p-1)(q-1) Julkinen eksponentti e, esim. 2^16+1 de 1 (mod ϕ(n)), ratkaistaan salainen eksponentti d Salaus C = M^e mod n Avaus M = C^d mod n Turvalliseen toteutukseen vaaditaan muita yksityiskohtia, katso esim. PKCS#1 8
Hybridisalaus Uusi satunnainen symmetrinen istuntoavain SK Bobin julkinen avain PK Salaus (asymm.) Bobin yksityinen avain PK -1 Avaus (asymm.) E B (SK) E B (SK) SK Sanoma M Salaus (symm.) E SK (M), E B (SK) split Avaus (symm.) Sanoma M Lähettäjä Alice Tietoverkko Vastaanottaja Bob Julkisen avaimen salausta käytetään yleensä vain symmetrisen avaimen siirtoon 9
Allekirjoitus Alicen yksityinen avain PK -1 Alicen julkinen avain PK Allekirjoitus Tarkistus Ok? h(m) S A (M) S A (M) h(m) Sormenjälki Sormenjälki Sanoma M M, S A (M) jako M Sanoma M Lähettä Alice Tietoverkko Vastaanottaja Bob Allekirjoitus yksityisellä avaimella, allekirjoituksen tarkistus julkisella avaimella Allekirjoitus suojaa viestin eheyttä, ei luottamuksellisuutta Lasketaan viestistä sormenjälki (hash) tiivistefunktiolla ja allekirjoitetaan vain sormenjälki Esim. RSA, DSA 10
Todennuskoodi AvainK AvainK MAC MAC Verta Ok? MAC K (M) MMAC K (M) M,MAC K (M) SanomaM jako SanomaM M Tietoverko Lähetäjä Vastanotaja Symmetrinen allekirjoitus, MAC Perustuu tiivistefunktioihin tai symmetriseen salausalgoritmiin Nopea laskea suurelle määrälle dataa Esim. HMAC-SHA1, CBC-MAC-AES 11
Julkisen avaimen algoritmeista Julkisia avaimia on yksi per osapuoli, symmetrisiä tarvitaan yksi per yhteys Julkisen avaimen voi kertoa kaikille, symmetrinen täytyy pitää salassa Julkisen avaimen algoritmit ovat satoja kertoja hitaampia kuin symmetriset Yleensä epäsymmetrisiä algoritmeja käytetään alussa symmetrisen avaimen luomiseen Pitää tietää, kenen julkista avainta käyttää! 12
Varmenne Varmenne eli sertifikaatti Varmentajan eli sertifiointiauktoriteetin (CA) allekirjoittama viesti, joka sitoo julkisen avaimen nimeen Voi kertoa muutakin tietoa Yleensä X.509-standardin mukainen Julkinen avain Nimi Voimassaoloaika Allekirjoitus Varmenteita käytetään webbisivuilla, langattomissa lähiverkoissa, sähköisessä henkilökortissa ja muissa kansalaisvarmenteissa Kaupallisia varmentajia esim. Verisign ja TeliaSonera Varmentajat voivat muodostaa hierarkian, jossa ylempi varmentaja valtuuttaa alemman Varmentajia ja varmenteita kutsutaan julkisen avaimen infrastruktuuriksi (PKI) 13
SALATTU WEBBIYHTEYS 14
Turvallinen webbisivu (https) HTTPS-yhdeydet on salattu, joten siirrettävää tietoa ei voi sniffata verkosta. 15
SSL-kerros SSL toteuttaa salauksen ja todennuksen TCPyhteyksille SSL tarjoaa sovelluksille socket-rajapinnan tapaisen palvelun tavuvirran siirtoon, mutta suojattuna TLS on uudempi standardoitu version SSL:stä Sovelluskerros:HTTP SSL API Socket API Siirtokerros: TCP Verkkokerros: IP Linkkikerros 16
SSL-protokolla Kaksi osaa: Kättely eli todennettu avaintenvaihto luo selaimelle ja palvelimelle symmetrisen istuntoavaimen Istuntoprotokolla suojaa istunnon käyttäen symmetristä salausta, todennuskoodeja ja kättelyssä luotua istuntoavainta Kättely perustuu varmenteeseen ja asymmetriseen salaukseen Palvelin lähettää selaimelle varmenteen, josta selviää sen julkinen RSA avain Selain generoi satunnaisen istuntoavaimen ja lähettää sen palvelimelle salattuna palvelimen julkisella avaimella 17
Luottamusketju 1. Selaimessa on lista luotettujen kaupallisten varmentajien julkisista avaimista ( juurivarmenteet ); selain hyväksyy vain listalla olevan varmentajan allekirjoittamat varmenteet 2. Selain saa kättelyssä palvelimelta varmenteen, joka sitoo palvelimen DNS-nimen ja julkisen avaimen 3. Selain tarkistaa, että palvelimen osoitepalkissa näkyvä DNS-nimi on sama kuin varmenteessa 4. Palvelimen julkista avainta käytetään palvelimen todentamiseen avaintenvaihdossa (selain lähettää istuntoavaimen sillä salattuna) 5. Avaintenvaihdossa luotua symmetristä avainta käytetään yhteyden salaamiseen ja todentamiseen Myös asiakkaalla voi olla varmenne; yleensä ei ole, vaan käyttäjä todennetaan tarvittaessa salasanalla 18
Varmentaja on Sonera Class2 CA Luottamusketjun ansiosta selain voi tarkistaa, että tämä palvelin todella on webmail3.tkk.fi Palvelimen webmail3.tkk.fi varmenne Mistä käyttäjä tietää, että webmailpalvelimen nimi onkin webmail3? 19
Varmenneketju Webbipalvelimella on yleensä varmenneketju Ylin CA varmentaa itsensä (juurivarmenne, joka ei oikeastaan merkitse mitään) Ylempi CA varmentaa alemman Alin CA varmentaa palvelimen 20
Varmenneketju ja luottamus Selain saa kättelyssä palvelimelta varmenneketjun Selain tarkistaa, että ketju alkaa juurivarmenteella, joka on sen luotetussa listassa Selain käy varmenneketjun läpi: Tarkistaa kunkin varmenteen allekirjoituksen edellisestä varmenteesta saadulla julkisella avaimella Tarkistaa, että kaikki paitsi viimeinen varmenne valtuuttavat alivarmentajan Tarkistaa muita yksityiskohtia Jos ketjun tarkistus onnistuu, alin varmenne sitoo palvelimen DNS-nimen ja julkisen avaimen toisiinsa 21
Tietoturvaprotokollat Sovelluskerros Middleware: HTTP, Shibboleth SSL, XML... SSH DNSsec SSL/TLS Siirtokerros: TCP, UDP,... HIP IPsec Verkkokerros: IPv4, VPN IPv6 Linkkikerros: Ethernet, MPSL, AKA Kerberos WPA WLAN, GPRS... PGP Palomuuri Sovellusten turvallisuus, esim. sähköinen kaupankäynti Tiedonsiirron luottamuksellisuus ja ja eheys Verkkoinfrastrustuurin luotettavuus 22
Lisää tietoturvasta T-110.4200 Tietoturvallisuustekniikka T-110. 5240 Network Security T-110.5211 Cryptosystems, T-79.4501 Cryptography and Data Security T-110.6220 Special Course in Information Security (malware) T-110.5200 Laboratory Works on Information Security T-110.5620 Tietoturvallisuuden kehittämisprosessit T-110. 5290 Seminar on Network Security T-79.5501 Cryptology 23