Salaustekniikat
Tuomas Aura
T-110.2100 Johdatus tietoliikenteeseen
kevät 2013
Luennon sisältö
1. Tietoturvan tavoitteet lyhyesti
2. Kryptografia: salaus ja todennus
3. Salattu web-yhteys
Tietoturvan tavoitteet
Tietoturvatavoitteita:
– Tiedon luottamuksellisuus – Tiedon aitous ja eheys
– Tiedon ja palvelujen saatavuus
(CIA = Confidentiality, Integrity, Availability)
Uhkia ja hyökkäyksiä:
– Tietomurrot ja -vuodot, salakuuntelu
– Väärentäminen, tiedon luvaton muokkaus
– Palvelunesto: palvelun kaataminen, ylikuormitus
Tavoitteita ja uhkia on muitakin
Kryptografia suojaa luottamuksellisuutta ja eheyttä tiedonsiirron aikana
3
KRYPTOGRAFIA:
SALAUS JA TODENNUS
Symmetrinen salakirjoitus
Salauksen ja avaukseen tarvitaan avainta
– Lähettäjällä ja vastaanottajalla jaettu avain, tyypillisesti.
128-bittinen satunnaisluku,
esim. 3149574a744a5f6d2a40584732hex
Salaus ja purku on nopeaa nykyaikaisilla prosessoreilla
5 Salaus
E
Avaus D Salakielinen
sanoma EK(M) Selväkielinen
sanoma M
Selväkielinen sanoma M Avain K
Tietoverkko
Lähettäjä Vastaanottaja
Avain K
Esim. AES, 3DES, IDEA
Salauksesta
Salaus suojaa sanoman luottamuksellisuutta, ei eheyttä
Avain salainen, algoritmi julkinen (Kerckhoffin periaate)
Salattu data näyttää täysin satunnaiselta, jollei avain tiedossa
Lohkosalauksissa data jaetaan 64- tai 128-bittisiin lohkoihin ja salataan lohko kerrallaan
Toteutus perustuu tehokkaisiin 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 itse keksitty epästandardi algoritmi)
(Viestin pituus kuitenkin paljastuu!)
Esimerkki
IDEA-lohkosalaus
64-bittiset datalohkot
Perustuu 16-bittisten
lukujen xor-operaatioon, yhteenlaskuun modulo 216 ja kertolaskuun modulo 216+1
8 kierrosta
(ks. oikealla), jotka vähitellen sotkevat
selväkielen ja avaimen osia toisiinsa
Pitemmät sanomat salataan esim CBC- moodissa lohkoja ketjuttamalla
Julkaistu 1991,
hitaampi kuin AES ja
muut uudemmat algoritmit
7
64 bitin datalohko
64 bitin datalohko
Yksi IDEA:n kierros
Salaus Purku
Avaimen bittejä
Epäsymmetrinen salaus
Avainpari:
– Salaus julkisella avaimella, avaus yksityisellä avaimella
– Julkisen avaimen voi kertoa kaikille, yksityinen avain pidettävä salassa (ei kerrota kenellekään)
Avaimet pitkiä, salaus ja avaus melko hidasta
– Perustuu suurten kokonaislukujen (esim. 1024 bittiä) aritmetiikkaan
Tietoverkko EB(M) Salaus
(asymm.) Bobin julkinen avain PK
Avaus (asymm.)
Bobin yksityinen avain PK-1
Sanoma M
Sanoma M
Lähettäjä Alice Vastaanottaja Bob
Esim. RSA, ElGamal
Esimerkki
RSA-salaus, julkaistu 1978
Perustuu lukuteoriaan ja Eulerin teoreemaan mϕ(n) mod n = 1,
missä ϕ on Eulerin totienttifunktio
Avaimen generointi:
– Generoidaan suuret salaiset alkuluvut p,q (512…1024 bittiä) – Julkinen moduuli n = pq
– ϕ(n) = (p-1)(q-1)
– Valitaan julkinen eksponentti e, tyypillisesti 17 tai 216+1 – Ratkaistaan salainen eksponentti d
kongruenssiyhtälöstä de ≡ 1 (mod ϕ(n))
– Julkinen avain on (e,n), yksityinen avain (d,n)
Viestin M salaus: C = Me mod n
Salakielen C avaus: M = Cd mod n
Turvalliseen toteutukseen vaaditaan muita yksityiskohtia;
katso esim. PKCS#1-standardi
9
Example: RSA public key
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 01hex
2048-bittinen moduuli
Julkinen eksponentti (216+1) (avain on ASN.1-koodattu)
Hybridisalaus
Julkisen avaimen salausta käytetään yleensä vain lyhyen satunnaisen symmetrisen avaimen siirtoon salatun sanoman tai yhteyden alussa
11 Tietoverkko
ESK(M), EB(SK) Salaus
(symm.)
Salaus (asymm.)
Bobin julkinen avain PK
EB(SK) Uusi
satunnainen symmetrinen istuntoavain
SK
Avaus (symm.) Avaus
(asymm.) Bobin yksityinen avain PK-1
SK EB(SK)
|| split
Sanoma M
Sanoma M
Lähettäjä Alice Vastaanottaja Bob
Allekirjoitus
Allekirjoitus yksityisellä avaimella, allekirjoituksen tarkistus julkisella avaimella
Allekirjoitus suojaa viestin eheyttä, ei luottamuksellisuutta
Viestistä lasketaan lyhyt sormenjälki (hash) tiivistefunktiolla ja allekirjoitetaan vain sormenjälki
12 Sormenjälki
Sanoma M Sanoma M
Alicen yksityinen avain PK-1
Tietoverkko
Lähettä Alice Vastaanottaja Bob
Sormenjälki
Allekirjoitus Tarkistus
M, SA(M)
Alicen julkinen avain PK
Ok?
h(M) h(M)
|| jako
SA(M)
M SA(M)
Esim. RSA, DSA
Todennuskoodi
”Symmetrinen allekirjoitus”, message authentication code MAC
Lähettäjällä ja vastaanottajalla jaettu salainen avain, esim. 128-bittinen satunnaisluku
Toteutus perustuu tiivistefunktioon tai symmetriseen salausalgoritmiin
Nopea laskea suurelle määrälle dataa
13
MAC Vertaa
Sanoma M Sanoma M
Avain K
Tietoverkko
Lähettäjä Vastaanottaja
M, MACK(M)
MAC Ok?
Avain K
|| jako
MACK(M) M
M MACK(M)
Esim. HMAC-SHA1, CBC-MAC-AES
Julkisen avaimen algoritmeista
Julkisia avaimia on yksi per osapuoli O(N),
symmetrisiä (eli jaettuja) avaimia tarvitaan yksi per yhteys O(N
2)
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!
Varmenne
Varmenne eli sertifikaatti
– Varmentajan eli sertifiointi-
auktoriteetin (CA) allekirjoittama viesti, joka sitoo julkisen avaimen käyttäjän tai koneen nimeen
– Voi kertoa muutakin tietoa avaimen omistajasta
Yleensä X.509-varmennestandardin mukainen
Varmenteita käytetään esim. web-palvelimissa, langattomissa lähiverkoissa, luottokorteissa ja sähköisessä henkilökortissa
Kaupallisia varmentajia esim. Verisign ja TeliaSonera
Varmentajat voivat muodostaa hierarkian, jossa ylempi varmentaja valtuuttaa alemman
Varmentajia ja varmenteita kutsutaan julkisen avaimen infrastruktuuriksi (PKI)
15
Palvelimen julkinen avain Palvelimen nimi
Voimassaoloaika CA:n allekirjoitus
SALATTU WEB-YHTEYS
Turvallinen web-sivu (https)
17
HTTPS-yhteys on salattu, joten
siirrettävää tietoa ei
voi salakuunnella
verkosta.
SSL-kerros
SSL toteuttaa salauksen ja todennuksen TCP-
yhteyksille
SSL tarjoaa sovelluksille socket-rajapinnan
tapaisen palvelun
suojattuun tavuvirran siirtoon
– SSL käyttää TCP:tä
suojatun datan siirtoon
TLS on SSL:n uudempi, standardoitu versio
Sovelluskerros:HTTP
Kuljetuskerros: TCP Verkkokerros: IP
Linkkikerros
Socket API SSL API
SSL-protokolla
Kaksi osaa:
– Kättely eli todennettu avaintenvaihto luo
selaimelle ja palvelimelle symmetrisen salaisen 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 varmentajien (CA) julkisista avaimista (juurivarmenteet)
2. Selain vastaanottaa kättelyssä palvelimen varmenteen,
jonka pitää olla jonkun luotetun varmentajan allekirjoittama 3. Palvelimen varmenne sitoo palvelimen DNS-nimen ja
julkisen avaimen toisiinsa
4. Selain tarkistaa, että palvelimen osoitepalkissa näkyvä DNS- nimi 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
!!!
21
Palvelimen webmail3.tkk.fi varmenne
Varmentaja on Sonera Class2 CA
Luottamusketjun ansiosta selain voi tarkistaa, että tämä palvelin todella on webmail3.tkk.fi
Tyypillinen ongelma:
mistä käyttäjä tietää, että webmail-
palvelimen nimi on webmail3.tkk.fi?
Varmenneketju
Tarkkaan ottaen web-palvelimella 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, jonka kopio on ennestään selaimen luotetussa
CA-listassa
Selain käy varmenneketjun läpi:
– Tarkistaa kunkin varmenteen allekirjoituksen
edellisestä varmenteesta saadulla julkisella avaimella – Tarkistaa, että alivarmentajat saavat ylemmältä CA:lta
oikeuden toimia CA:na
– Tarkistaa, että kaikkien varmenteiden
voimassaoloajan ja joitain muita yksityiskohtia
Jos ketjun tarkistus onnistuu, alin varmenne sitoo palvelimen DNS-nimen ja julkisen avaimen
toisiinsa luotettavalla tavalla
23
Muut tietoturvaprotokollat
Tiedonsiirron
luottamuksellisuus ja eheys
Verkko-
infrastrustuurin luotettavuus
Sovellusten turvallisuus, esim. sisäverkon palvelut ja Internet-kaupankäynti
Sovelluskerros
Middleware: HTTP, SSL, XML...
Siirtokerros: TCP, UDP, ...
Verkkokerros: IPv4, IPv6 Linkkikerros: Ethernet, MPSL,
WLAN, GPRS ...
IPsec
AKA
DNSsec HIP Palo-
muuri SSL/TLS
WPA VPN
PGP
Kerberos
Shibboleth SSH
Lisää tietoturvasta
Suositellut:
T-110.4206 Information Security Technology (syksy, periodi I) (uuden kandiohjelman Information security alkaa syksyllä 2014)
T-110.5210 Cryptosystems tai
T-79.4502 Cryptography and Data Security (syksy) Niiden jälkeen:
T-110. 5241 Network Security (syksy, periodi II)
T-110.6220 Special Course in Information Security: malware analysis (kevät)
T-110.5102 Laboratory Works in Networking and Security (syksy)
T-110.6201 Special Assignment in Networking and Security
T-110.5291 Seminar on Network Security
T-79.5501 Cryptology
25
Kurssin luennot
1. Aloitus: Miten Internet toimii, Tuomas Aura
2. Web 2.0 ja uudet sovellustekniikat, Otto Seppälä
3. Sovelluskerros: WWW, email, socket API, Miika Komu 4. Salaustekniikat, SSL, Tuomas Aura
5. Kuljetuskerros, TCP, Matti Siekkinen 6. Verkkokerros, IP, Matti Siekkinen
7. Linkkikerros: Ethernet ja WLAN, Matti Siekkinen 8. Tietoverkkojen turvallisuus, Tuomas Aura
9. Tiedonsiirron perusteet ja optiset verkot, Jouko Kurki 10. Matkapuhelinverkot, Jukka K. Nurminen
11. Tiedonsiirto matkapuhelinverkoissa, Jukka K. Nurminen 12. Tele- ja tietoverkon laskutus, Sakari Luukkainen
13. Liiketoiminta verkkoympäristössä, Sakari Luukkainen 14. TBA
15. Kertaus, Tuomas Aura