Salaustekniikat Tuomas Aura T-110.2100 Johdatus tietoliikenteeseen kevät 2010
Luennon sisältö 1. Tietoturvan tavoitteet 2. Kryptografia 3. Salattu webbiyhteys 2
Tietoturvan tavoitteet Tietoturvatavoitteita: Tiedon luottamuksellisuus Tiedon eheys Tiedon ja palvelujen saatavuus (CIA = Confidentiality, Integrity, Availability) Uhkia ja hyökkäyksiä: Tietomurrot, salakuuntelu Väärentäminen, tiedon luvaton muokkaus Palvelunesto: palvelun kaataminen, ylikuormitus Uhkia ja tavoitteita on muitakin Kryptografia suojaa luottamuksellisuutta ja eheyttä 3
KRYPTOGRAFIA 4
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 Lähettäjällä ja vastaanottajalla jaettu avain, esim. 128- bittinen satunnaisluku, esim. 3149574a744a5f6d2a40584732 Salaus ja purku on nopeaa nykyaikaisilla prosessoreilla Esim. AES, 3DES, IDEA 5
Salauksesta Salaus suojaa sanoman luottamuksellisuutta, ei eheyttä Avain salainen, algoritmi julkinen Salattu data näyttää täysin satunnaiselta, jollei avain tiedossa (Viestin pituus kuitekin paljastuu!) Toteutus perustuu tehokkaisiin bittioperaatioihin Lohkosalauksissa data jaetaan 64- tai 128-bittisiin lohkoihin ja salataan lohko kerrallaan 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) 6
Salaus Purku Esimerkki Yksi IDEA:n kierros IDEA-lohkosalaus 64-bittiset lohkot Perustuu 16-bittisten lukujen xor-operaatioon ja modulo-yhteen- ja kertolaskuun 8 kierrosta (ks. oikealla), jotka vähitellen sotkevat selväkielen ja avaimen osat toisiinsa Pitemmät sanomat salataan esim CBCmoodissa lohkoja ketjuttamalla Julkaistu 1991, hitaampi kuin AES ja muut uudemmat algoritmit 64 bitin datalohko 64 bitin datalohko Avaimen bittejä 7
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 (esim. 1024 bittiä) aritmetiikkaan Esim. RSA, ElGamal 8
Esimerkki RSA-salaus, julkaistu 1978 Perustuu lukuteoriaan ja Eulerin teoreemaan m^ϕ(n) mod n = 1, missä Eulerin totienttifunktio ϕ(n) = (p-1)(q-1) Avaimen generointi: Generoidaan suuret salaiset alkuluvut p,q (512 1024 bittiä) Julkinen moduuli n = pq Julkinen eksponentti e, tyypillisesti 17 tai 2^16+1 Ratkaistaan salainen eksponentti d kongruenssiyhtälöstä de 1 (mod ϕ(n)) Julkinen avain on (e,n), yksityinen avain (d,n) Salaus C = M^e mod n Avaus M = C^d mod n Turvalliseen toteutukseen vaaditaan muita yksityiskohtia, katso esim. PKCS#1-standardi 9
Example: RSA public key 2048-bittinen moduli 30 82 01 0a 02 82 01 01 00 c7 3a 73 01 f3 2e a8 72 25 3c 6b a4 14 54 24 e7 e0 ab 47 2e 9f 38 a7 12 77 dc cf 62 bc de 47 a2 55 34 a6 47 9e d6 13 90 3d 9f 72 aa 42 32 45 c4 4a b7 88 cc 7b c5 a6 18 4f d5 86 a4 9e fb 42 5f 37 47 53 e0 ff 10 2e cd ed 4a 4c a8 45 d9 88 09 cd 2f 5f 7d b6 9b 40 41 4f f7 a9 9b 7a 95 d4 a4 03 60 3e 3f 0b ff 83 d5 a9 3b 67 11 59 d7 8c aa be 61 91 d0 9d 5d 96 4f 75 39 fb e7 59 ca ca a0 63 47 bd b1 7c 32 27 1b 04 35 5a 5e e3 29 1a 06 98 2d 5a 47 d4 05 b3 22 3f fd 43 38 51 20 01 ad 1c 9e 4e ad 39 f4 d1 ae 90 7d f9 e0 81 89 d2 b7 ba cd 68 2e 62 b3 d7 ad 00 4c 52 24 29 97 37 8c 6e 36 31 bd 9d 3d 1d 4c 4c cc b0 b0 94 86 06 9c 13 02 27 c5 7c 1e 2e f6 e3 f6 13 37 d9 fb 23 9d e7 c7 d5 ce 94 54 7d ef ef df 7b 7b 79 2e f9 75 37 8a c1 ef a5 c1 2a 01 e0 05 36 26 6a 98 bb d3 02 03 01 00 01 Julkinen eksponentti (2 16 +1) 10
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 11
Allekirjoitus Alicen yksityinen avain PK -1 Alicen julkinen avain PK Allekirjoitus h(m) S A (M) S A (M) Tarkistus h(m) Ok? 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 Viestistä lasketaan sormenjälki (hash) tiivistefunktiolla ja allekirjoitetaan vain sormenjälki Esim. RSA, DSA 12
Todennuskoodi Avain K Avain K Sanoma M MAC MAC MAC K (M) M M, MAC K (M) jako M MAC K (M) Vertaa Ok? Sanoma M Lähettäjä Tietoverkko Vastaanottaja Symmetrinen allekirjoitus, message authentication code MAC Lähettäjällä ja vastaanottajalla jaettu avain, esim. 128-bittinen satunnaisluku Perustuu tiivistefunktioihin tai symmetriseen salausalgoritmiin Nopea laskea suurelle määrälle dataa Esim. HMAC-SHA1, CBC-MAC-AES 13
Julkisen avaimen algoritmeista Julkisia avaimia on yksi per osapuoli, symmetrisiä (eli jaettuja) avaimia 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 yhteyden alussa symmetrisen avaimen luomiseen Julkisten avainten käyttö helpottaa avaintenjakelua, mutta silti pitää tietää, mikä julkinen avain kuuluu kenellekin! 14
Varmenne Varmenne eli sertifikaatti Varmentajan eli sertifiointiauktoriteetin (CA) allekirjoittama viesti, joka sitoo julkisen avaimen nimeen Voi kertoa muutakin tietoa avaimen omistajasta Julkinen avain Nimi Voimassaoloaika Allekirjoitus Yleensä X.509-varmennestandardin mukainen 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) 15
SALATTU WEBBIYHTEYS 16
Turvallinen webbisivu (https) HTTPS-yhdeydet on salattu, joten siirrettävää tietoa ei voi sniffata verkosta. 17
SSL-kerros SSL toteuttaa salauksen ja todennuksen TCPyhteyksille SSL tarjoaa sovelluksille socket-rajapinnan tapaisen palvelun suojattuun tavuvirran siirtoon SSL käyttä TCP:tä tiedon siirtoon TLS on SSL:n uudempi standardoitu versio Sovelluskerros:HTTP SSL API Socket API Siirtokerros: TCP Verkkokerros: IP Linkkikerros 18
SSL-protokolla!!! Kaksi osaa: Kättely eli todennettu avaintenvaihto luo selaimelle ja palvelimelle symmetrisen istuntoavaimen Istuntoprotokolla suojaa istunnon käyttäen symmetristä salausta, todennuskoodeja (MAC) ja kättelyssä luotua istuntoavainta Kättely perustuu varmenteeseen ja asymmetriseen salaukseen 1. Palvelin lähettää selaimelle varmenteen, josta selviää palvelimen nimi ja julkinen RSA avain 2. Selain generoi satunnaisen istuntoavaimen ja lähettää sen palvelimelle salattuna palvelimen julkisella avaimella 19
Luottamusketju 1. Selaimessa on lista luotettujen kaupallisten varmentajien (CA) julkisista avaimista (juurivarmenteet) 2. Selain saa kättelyssä palvelimelta varmenteen, jonka pitää olla luotetun varmentaja allekirjoittama 3. Palvelimen varmenne sitoo palvelimen DNS-nimen ja julkisen avaimen toisiinsa 4. Selain tarkistaa, että palvelimen osoitepalkissa näkyvä DNSnimi on sama kuin nimi varmenteessa 5. Palvelimen julkista avainta käytetään palvelimen todentamiseen avaintenvaihdossa (selain lähettää istuntoavaimen palvelimelle salattuna varmenteesta otetulla julkisella avaimella) 6. Avaintenvaihdossa luotua symmetristä istuntoavainta käytetään HTTP-pyyntöjen ja vastausten salaamiseen ja todentamiseen Myös asiakkaalla voi olla varmenne; yleensä ei ole ja käyttäjä todennetaan tarvittaessa salasanalla!!! 20
Varmentaja on Sonera Class2 CA Luottamusketjun ansiosta selain voi tarkistaa, että tämä palvelin todella on webmail3.tkk.fi Palvelimen webmail3.tkk.fi varmenne Tyypillinen ongelma: mistä käyttäjä tietää, että webmailpalvelimen nimi onkin webmail3? 21
Varmenneketju Tarkkaan ottaen webbipalvelimella on yleensä varmenneketju Juurivarmenne sisältää ylimmän CA:n julkisen avaimen Ylempi CA varmentaa hierarkiassa alemman Alin CA varmentaa palvelimen 22
Varmenneketju luottamusketjun osana Selain saa kättelyssä palvelimelta varmenneketjun Selain tarkistaa, että ketju alkaa juurivarmenteella, joka on myös selaimen luotetussa CA-listassa Selain käy varmenneketjun läpi: Tarkistaa kunkin varmenteen allekirjoituksen edellisestä varmenteesta saadulla julkisella avaimella Tarkistaa, että alinta varmennetta lukuunottamatta ne on tarkoitettu alivarmentajille Tarkistaa, että kaikkien varmenteiden voimassaoloajan ja joitain muita yksityiskohtia Jos ketjun tarkistus onnistuu, alin varmenne sitoo palvelimen DNS-nimen ja julkisen avaimen toisiinsa 23
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. sisäverkon palvelut ja Internet-kaupankäynti Tiedonsiirron luottamuksellisuus ja eheys Verkkoinfrastrustuurin luotettavuus 24
Lisää tietoturvasta T-110.4200 Tietoturvallisuustekniikka T-110. 5240 Network Security T-110.5210 Cryptosystems tai T-79.4502 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 25
Kurssin luennot Aloitus: Miten Internet toimii, Tuomas Aura Web 2.0 ja uudet sovellustekniikat, Sasu Tarkoma Sovelluskerros: WWW, email, socket API, Sasu Tarkoma Salaustekniikat, Tuomas Aura Kuljetuskerros, TCP, Matti Siekkinen Verkkokerros, IP, Matti Siekkinen Linkkikerros, Ethernet ja WLAN, Matti Siekkinen Tietoverkkojen turvallisuus, Tuomas Aura Tiedonsiirron perusteet ja optiset verkot, N.N. Nykypäivän matkapuhelinverkot, Jukka K. Nurminen Tulevaisuuden langattomat laajakaistaverkot, N.N. Tele- ja tietoverkon laskutus, Sakari Luukkainen Liiketoiminta verkkoympäristössä, Sakari Luukkainen Paneelikeskustelu Yhteenveto/kertaus, Antti Ylä-Jääski ja Tuomas Aura 26