Kryptoprotokollat, luento 12 (A), 4.5.2009
- Kertaus ja täydennys autentikointiprotokollien periaatteisiin.
- Kryptografinen hierarkia kokonaisuudessaan
- Mahdollisia seminaariesitelmiä. Jos niitä ei ole tai aikaa muuten jää,
käsitellään seuraava kohta. Muussa tapauksessa se jää lukemisen varaan:
- Langattoman pääsyn autentikointi.
Täydennys protokollien suunnitteluperiaatteisiin
Kirjassa Network Security [KaPS02] on
tarkistuslista, jota sopii käyttää kun on suunnittelemassa tai arvioimassa
autentikointiprotokollaa. Luettelo jäsentyy 7 pääkohtaan (jotka tässä on
tiivistetty 5:een) sen mukaan, mitä hyökkääjä voi (yrittää) tehdä osapuolten
A ja B käymässä protokollassa. Näistä A edustaa yksilöä ja B voi olla myös
palvelin. Vaikka hyökkääjä jossain määrin onnistuisi pääkohdan mukaisessa
toiminnassa, alakohdat esittävät, mitä uhkaa protokollan silti pitäisi
pystyä torjumaan.
- Salakuuntelu
- viestin sisällön paljastuminen
- esiintyminen A:na tai B:nä jossain myöhemmässä viestinnässä
- esiintyminen A:na jollekulle muulle B:n ilmentymälle
- "OFAH" = off-line arvaushyökkäys A:n tai B:n salaisuuksia vastaan.
- Esiintyminen A:na, keskustelun aloittajan roolissa
- B uskoo A:ksi
- "OFAH"
- esiintyminen B:lle A:na jossain myöhemmässä tai samanaikaisessa
viestinnässä
- esiintyminen A:lle B:nä
- B allekirjoittaa jotain tai purkaa salauksen jostain
- Esiintyminen B:n sijalla, yhteydenoton vastaanottajan roolissa
- A uskoo B:ksi
- "OFAH"
- esiintyminen B:nä jossain myöhemmässä viestinnässä
- esiintyminen B:lle A:na
- A allekirjoittaa jotain tai purkaa salauksen jostain.
- A:lla [ B:llä ] tallessa olevien salaisuuksien murtaminen
(paljon pahaa voi tapahtua mutta seuraavat pitää estää protokollatasolla)
- esiintyminen A:lle B:nä [ B:lle A:na] --
myös siinä tapauksessa että hyökkääjä myös salakuuntelee autentikaatioviestejä.
- aiempien A:n ja B:n välisten viestin salauksen purkaminen --
myös siinä tapauksessa että molempien nykyiset salaisuudet murtuvat.
- Viestinnän välittäminen A:n ja B:n välillä
- "OFAH"
- viestin sisällön paljastuminen
- viestinnän kaappaus (hijack) eli jo alkaneen viestinnän jatkaminen
jommankumman kanssa ilman että tämä huomaa eroa.
- viestinnän muuttaminen, jonka seurauksena A tai B tulkitsee väärin
viestinnän merkityksen. Muuttaminen voi olla toistamista, toistamista eri
suuntaan, järjestyksen vaihtamista tai viestin muokkaamista.
- viestinnän estäminen on erikoistapaus, jota kirja ei mainitse. Eihän
protokollassa sinänsä voi tehdä mitään tähän liittyvien uhkien torjumiseksi.
Toisaalta se voisi olla omana pääkohtanaankin, jos halutaan ottaa huomioon
konteksti, jossa protokollaa käytetään. Siihen liittyy esim. luennolla 11 käsitellyn IKEv2-standardin maininnat siitä,
ettei osapuolen kannata kovin vähällä hylätä turva-assosiaatiota (ks. kohta 2.4).
Kirjassa todetaan, että on lukemattomia yhdistelmiä edellisistä. Kirjan
mainitsemat kaksi on tässä yhdistetty salaisuuksien murtumiskohtaan (joka
itsekin on yhdistelmä kahdesta kohdasta). Jotta tarkistuslista olisi varmasti
hyödyllinen, siihen pitäisi tietysti kirjoittaa auki kaikki vähänkään
mahdolliset tapaukset. Toisaalta jo tässä listassa on sellaisia kohtia, joihin
ei kaikissa tapauksissa tarvitse varautua. Erityisesti useassa kohdassa
esiintyvä "OFAH" on sellainen, jos yhteiset salaisuudet ovat riittävän vahvoja
(toisin kuin salasanat yleensä).
Harjoitus: Miten nämä periaatteet suhtautuvat kurssin alkupuolella
esitettyihin suunnitteluperiaatteisiin?
Kryptografinen hierarkia kokonaisuudessaan
Niels Ferguson ja Bruce Schneier ovat esittäneet kirjassaan Practical
Cryptography (2003) monipuolisen katsauksen asioihin, jotka täytyy ottaa
huomioon, jotta kryptologiaa voisi käyttää tietoturvatarpeiden toteuttamiseen.
Seuraava luettelo pohjautuu
pääosin tähän kirjaan ja pyrkii esittämään kryptoprotokollien kokonaiskontekstia
alkaen ylimmältä ihmistä lähinnä olevalta tasolta ja edeten enemmän tai vähemmän
monotonisesti alaspäin kohti bittejä tai alkulukuja. Useissa kohdissa on
mainittu erityisiä yhteyksiä, joissa asiaa sivutaan tällä kurssilla (linkit)
tai TTJ:ssä, TTP:ssä tai ei lainkaan. Hakasuluissa on asioita, joita kirja
puolestaan ei käsittele.
- Kryptoasiantuntijuus [, yhteiskunnalliset kysymykset]
[, "liiketaloudelliset" tekijät
(
Mikromaksujen uhkamallit)]
- PKI, luottamuskysymykset (TTJ)
- patenttien aiheuttamat ongelmat. IBE
- ohjelmoinnin turvallisuus; jäännöstietojen pyyhkiminen (TTJ)
- salaisuuksien tallentaminen ( salasanaprotokollat)
- avainten hallinta, avainpalvelimet (TTJ: Kerberos)
- protokollien toteutuksen taso. Vanhojen versioiden ylläpito,
neuvottelun laajuus (IKE),
nimeämiset (protokolla, ajokerta, viesti), ajastimet.
- tarkan ajan määritys ja merkitys (
off-line vedonlyönti; Verkon tietoturva
-kurssi; Tietoliikenteen tietoturvan seminaari 2007)
- protokollien kompleksisuus
- standardit (jäljempänä EAP ym.)
- protokollat: konkreetti matemaattinen taso
( PK-protokollien periaatteisto)
- protokollat: abstrakti taso (tämä kurssi yleisesti)
[, formaali verifiointi, kryptotodistusten premissit kuten 'random oracle']
- suurten lukujen aritmetiikka: tehostusta ja tarkistuksia
- lohkoalgoritmit, moodit (joiden kautta vuosalaus pelkästään tulee esille
kirjassa), tiiviste- ja MAC-funktiot. (TTJ)
- satunnaisuuden generointi (TTJ)
- alkuluvut: luonti (mahd. niin että (p-1)/q >> 2), testaus,
generaattorin löytäminen (mahd. vain kertalukua q olevan).
(Matemaattisen kryptologian kurssi)
Harjoitus
- Useimmat kohdat ovat mukana jonkin hyökkäysmahdollisuuden takia. Millaisia
ne ovat?
- Luettelo ei ole luontevin muoto näille asioille sillä ne ovat useammassa
kuin yhdessä ulottuvuudessa. Laadi jokin muu jäsennys ja ota mukaan lisää
yksityiskohtia.
- Kirjan mukaan kryptoprotokollien tarkoitus on minimoida tarvittavan
luottamuksen määrä. Mitä tämä tarkoittaa? Ensinnäkin mitä tarkoittaa määrä,
jota pienennetään. Toiseksi, mitä tarkoittaa luottamus? Kolmanneksi, eikö
kryptoprotokollilla muka ole muuta tarkoitusta? Jos näin on eikö luottamus
olisi pitänyt ottaa luetteloon omana kohtanaan (PKI-luottamus koskee kai
rajattua ilmiötä)?
- Kellojen synkronoinnin protokollia ei ole ollut esillä varsinaisessa
luentomateriaalissa millään tietoturvakurssilla. Millaisia ongelmia protokollan
laadinnassa on ja millaisia ratkaisuja siihen tiedät?
- Toisenlainen aikaongelma on sen osoittaminen, että jokin tieto on ollut
olemassa tiettynä hetkenä, siis erityisesti ennen jotain vähän
myöhempää hetkeä. Sitähän ei voi yleisesti osoittaa, että jotain tietoa ei ole
olemassa, eikä edes sitä (3. osapuolelle), ettei tiettyjä bittejä vielä
ollut ennen jotain hetkeä. Millaisia keinoja on ensinmainittuun ongelmaan? (vrt.
TTJ, id=536)
Langattoman pääsyn autentikointi
Langattoman tietoverkon tekniikoita on monenlaisia, mm. GPRS ja Bluetooth, mutta
tässä käsitellään vain WLAN-tekniikkaa eli langattomia lähiverkkoja, joita
koskee IEEE:n standardisarja 802.11. Päätavoitteena on tarkastella verkkoon
autentikoitumista ja erityisesti protokollan EAP johdannaisia. Niiden mutkikkuus ja
moninaisuus tarjoaa esimerkin edellä käsitellyille yleisille periaatteille. Esitietona on
TTJ-kurssin teksti AAA (id=214), jossa on
esitelty yleisesti EAP ja Radius. Protokolla EAP määriteltiin RFC2284:ssä vuonna
1998 otsikolla PPP Extensible Authentication Protocol (EAP). Uudempi RFC 3748 vuodelta 2004
ei enää kanna nimessään PPP:tä.
Pääsyrakenteita yleisesti
Käyttäjän pääsyssä turvattuun verkkoon voidaan soveltaa protokollia, joissa on
käyttäjän (tai hänen ohjelmansa) ja kyseisen verkon varsinaisten palvelujen
lisäksi kaksi osapuolta. Nämä ovat tutut myös GSM-verkkoon autentikoitumisesta:
- Pääsypalvelin, jonka tehtävänä on hyväksyä tai hylätä autentikointi ja
myönteisessä tapauksessa tarjota pääsy verkkoon (GSM:ssä tukiasema).
- Autentikointipalvelin, jolta tai jonka kautta Pääsypalvelin tarkistaa
käyttäjän tietojen kelpoisuuden (GSM:n on HLR:ssä sijaitseva AuC, joka on
toimittanut Pääsypalvelimelle tarkistukseen tarvittavat tiedot eli haasteen ja
vasteen).
Pääsyn tarjoaminen perustuu tietenkin oikeuksiin ja sen toteutukseen on
monenlaisia mahdollisuuksia: esim. VLAN-reitityksen käyttö ja palomuurin
dynaaminen puhkominen (jotka ovat V-TT-kurssin asiaa).
EAP-pohjaista autentikointia käsittelee
802.11X, toiselta nimeltään EAPOL eli EAP over LANs (joskin oikeasti
Port-Based Network Access Control). Siinä pääsypalvelimella on nimenä
authenticator. Käyttäjä (client-ohjelma) on puolestaan supplicant, sillä
se tuottaa (supplies) valtuustiedon, jonka kelvollisuuden authentication
server sitten välittää pääsypalvelimelle, joka monessa yhteydessä kantaa
nimeä AP, access point, tai tukiasema. Luotetuin näistä osapuolista on
autentikointipalvelin, mutta sen ja pääsypalvelimen on myös autentikoitava
toisensa, jotta väärä tukiasema ei pääsisi käyttäjän ja verkon väliin.
Olisi myös hyvä, jos tukiasema ei saisi sellaista tietoa, jonka
perusteella se voisi tekeytyä käyttäjäksi (ja vielä vähemmän tietenkään
autentikointipalvelimeksi). Tyypillinen autentikointipalvelin
lähiverkoissa on RADIUS. Käytännössä tämän takana on vielä jokin
tietokanta kuten Active Directory, LDAP, tai jokin toinen RADIUS-palvelin,
myös jossain toisessa toimialueessa ...
Tietokannan turvallisuutta ei saa jättää huomiotta, mutta varsinaisen
protokollan idea on siis sellainen, että käyttäjän ja verkon välillä
käydään EAP-neuvottelua ja verkon komponenttien välillä tapahtuu käyttäjän
toimittaman valtuustiedon validointi. Jos autentikoinnin pitää olla
molemminpuolinen, toimitetaan käyttäjälle verkon valtuustiedot. Tämä
tapahtuu esim. UMTS:ssä niin, että puhelin (sen USIM) saa verkolta
haasteen ohella yhteisellä avaimella salatun (48 bittisen) sarjanumeron.
Autentikoinnin lisäksi on syytä toteuttaa salausavainten jakelu.
Protokollapinoon muodostuu siis tällainen osa:
- EAP-menettely, esim. haaste-vaste tai TLS (kohta lisää näistä). Kannattaa
huomata, että TLS tässä tapauksessa poikkeuksellisesti asettuu EAP:n eikä TCP:n
päälle.
- EAP, joka sellaisenaan on lähinnä yksinkertainen ja yleinen
kääreprotokolla, jonka päällä voidaan tehdä kättelyitä, jotka vaativat
vaihtelevan määrän viestejä.
- EAPOL, joka vastaavasti käärii EAP-paketteja MAC-paketeiksi
- Langallinen tai langaton lähiverkko (Wifi- tai Ethernet-linkkikerros, ks.
jäljempänä)
Protokollapinosta puhuminen ei saa jättää varjoonsa yleisemmän tason tärkeitä
kysymyksiä, jotka ovat sukua myös suunnitteluperiaatteille:
- mitkä eri osapuolten turvaintressit ovat
- kuka luottaa kehen ja missä asiasssa
- ketkä autentikoidaan keille
- onko autentikoinnin perustana jaettu salaisuus vai julkisia avaimia
- toteutuuko ja missä laajuudessa (käyttäjän) anonymiteetti; yleisemmin
torjutaanko liikenneanalyysia
- miten torjutaan toistohyökkäys, sanakirjahyökkäys
- kuka luo istuntoavaimet
- millä välillä salataan
- miten avaimia uudistetaan
- miten syntyy muita tilanteita kuin vain salateksti
- miten autentikointi voidaan uudistaa (re-authentication)
- millainen kryptoalgoritmien valikoima on käytössä -- ja millä tavoin ne on
todettu turvallisiksi.
Katso luennolla 11 käsitellystä IKEv2-standardista, miten se
ottaa huomioon EAP:n (ko. jakso on mukana luennolla jaetussa otteessa). Yksi
tuoreimmista EAP-standardeista on "EAP-IKEv2 Method" eli RFC 5106 tammikuulta
2008.
EAP-menettelyt yleisesti ja yhteys matkaviestintään
EAP-standardi määrittelee seuraavat EAP-menettelyt:
Identity -- Notification -- Legacy Nak -- MD5-Challenge -- One-Time Password
(OTP) -- Generic Token Card (GTC). Näistä kolme ensimmäistä ovat yleisiä
tyyppejä Request ja Response -viesteille ja MD5-haaste on ainoa standardissa
vaadittu autentikointimenettely. On monia muitakin EAP-menettelyjä, ks. IANAn lista. Luennolla 5 esillä olleita salasanaprotokollia soveltavat
EAP-SPEKE, SRP-SHA1.
Useat menettelyt soveltavat jotain Token Card -järjestelmää, kuten EAP-SIM ja
EAP-AKA, jotka ovat yksi Henry Haverisen väitöskirjassa esitettäviä tuloksia
(luku 6, "Interworking between Wireless LAN and GSM/UMTS Cellular
Networks: Network Access Control, Mobility Management and Security
Considerations". Väitös TTY:llä 3.12.2004).
Niissä käytetään SIM- ja USIM-korteilla tallessa olevaa avainta. Edellinen tekee
GSM-tyylisesti vain yksipuolisen autentikoinnin ja jälkimmäinen UMTS-tyyliin
molemminpuolisen.
Langattoman lähiverkon ja matkapuhelinverkon yhteiskäyttöä on tutkittu ja siltä
alueelta löytyy mielenkiintoisia mahdollisuuksia ja haasteita
kryptoprotokollille. Tähän aiheeseen pääsee sisälle vaikkapa em.
väitöskirjan kautta. Muita laajoja lähteitä on 3GPP:n spesifikaatio 3G security; Wireless
Local Area Network (WLAN) interworking security (tuorein versio 8.1.0,
20.3.2008). Standardien numerointisivulta näkyy,
mitä kaikkea UMTSiin kuuluu ja voi todeta, että 33-sarja koskee
turvallisuuden 'aspekteja' ja 35 turva-algoritmeja.
Katsauksen standardeihin on kirjoittanut Valtteri Niemi:
Trends in mobile security standards (Information Security
Technical Report, Vol.9:4, Dec 2004, 32-38.)
EAP-menettelyjen vertailuja
Jos tarkastellaan langattomia verkkoja ilman yhteistoimintaa
matkapuhelinverkkojen kanssa, tiivis
iLabs-artikkeli toteaa yleisimmiksi EAP-menettelyiksi seuraavat.
- EAP-MD5
- Vastaa langallisen PPP:n CHAP-protokollaa (Challenge handshake auth.prot):
haaste-vaste, jossa vaste lasketaan MD5:llä tunnisteesta, haasteesta ja
salasanasta; yksisuuntainen eikä sen vuoksi turvallinen -- toki parempi kuin
PPP:n alkuperäinen PAP (Password auth. prot.), jossa salasana oli selkokielinen.
Lisäongelmana on tietysti se, ettei tässä muodostu salausavainta.
- EAP-TLS (RFC 2716)
- Samanlainen kuin TLS (eli SSL), nyt vain EAP-pakettien sisällä ja varmenne
aina molemmilla osapuolilla. Tuloksena luonnollisesti myös istuntoavain.
Tämä on 802.11i-standardin mukainen de facto -menettely (vaikkei siihen siis
kuulukaan).
- TTLS= tunneled TLS
- PEAP = protected EAP
- Palvelin autentikoidaan varmenteen perusteella tavallisen TLS:n tapaan.
Näin syntyneessä tunnelissa (kryptatussa ja toisesta päästään autentikoidussa
yhteydessä) autentikoidaan asiakas jollain muulla menetelmällä, kuten
salasanalla. Erona (pienenä) PEAP:n ja TTLS:n välillä on, että edellisessä
sisempi menetelmä rajataan johonkin EAP-menettelyyn, jälkimmäisessä ei.
Näissä protokollissa torjutaan liikenneanalyysia asiakkaan osalta toisin kuin
edellisissä --esim. varmenteet EAP-TLS:ssä ovat selkokielisiä. Tosin nämäkin
protokollat sallivat sen, että asiakas voi tunnelia muodostettaessa jo ilmoittaa
myös identiteettinsä.
- LEAP = Lightweight EAP
- EAP-FAST = EAP - Flexible Authentication via Secure Tunneling
- Ciscon menettelyjä, käyttäjätunnus ja salasana tiivistetään;
molemminpuolinen mutta LEAPissa sanakirjahyökkäys on mahdollinen off-line (kuten
MD-5:ssäkin), joten tarvitaan vahvoja salasanoja. EAP-FAST korjaa tämän puutteen
PEAP:n tapaisesti, vrt. yleiskatsaus
Ciscon sivulla.
LEAP ei esiinny IANAn listalla ja joku on sitäkin mieltä, että se on jäämässä
PEAP:n tieltä.
Tässä referoitu iLabs-vertailu ja sen viimeisessä kohdassa mainittu Cisco-katsaus
tarjoavat esimerkkejä siitä, millaisiin asioihin kryptoprotokollien käytännön
soveltamisessa joudutaan ottamaan kantaa. Niissä on luonnollisesti samoja
"isoja kysymyksiä" kuin edellä käsitellyissä kattavissa tarkistuslistoissa, mutta
jotkin kohdat ovat hyvin spesifejä ja vaatii pientä pohdintaa havaita mitä yleistä
kategoriaa ne edustavat. Ciscon vertailussa käsitellyt attribuutit ovat tällaiset:
- Millainen on käyttäjän autentikoinnin tietokanta ja palvelin?
- Tarvitaanko palvelimen ja/tai asiakkaan varmenteita?
- Minkä käyttöjärjestelmän yhteydessä voidaan käyttää?
- Voidaanko käyttää sovelluskohtaisia laitteita?
- Mitä valtuustietoja sovelletaan?
- Onko kertakirjautuminen Windows Login -järjestelmällä mahdollinen?
- Onko salasanan voimassaolo ja vaihtaminen huomioitu?
- Toimiiko Fast Secure Roaming -järjestelmän kanssa?
- Toimiiko WPA:n tai WPA2:n kanssa?
EAP-standardeissa itsessään luonnehditaan eri EAP-menettelyjä tällaisen
attribuuttilistan avulla. Mallina on turvaväitteet EAP-IKEv2 -menettelylle:
Ciphersuite negotiation: Yes
Mutual authentication: Yes
Integrity protection: Yes
Replay protection: Yes
Confidentiality: Yes
Key derivation: Yes
Key strength: Variable
Dictionary attack prot.: Yes
Fast reconnect: Yes
Crypt. binding: N/A
Session independence: Yes
Fragmentation: Yes
Channel binding: No
Täydentävä ja kertaava maininta: WEP ja WPA
Alkuperäinen WLAN-salausjärjestelmä WEP on todettu puutteelliseksi (vrt. id=294). Siihen liittyvä
parannus 802.11i-standardin kehittelyvaiheessa on ollut avaimia ja alustusvektoreita
sekoittava TKIP (Temporal Key Integrity Protocol) ja sitä tuoreempi ja vahvempi RSN
(Robust Secure Network), joka johdattelee AES-128:n käyttöön RC4:n sijasta (joka on
WEP:n algoritmi). Tämä tapahtuu laskurimoodissa käyttäen CBC-MACia ja siitä nimi CCMP,
Counter Mode with Cipher Block Chaining Message Authentication Code Protocol (tai
ilman P-kirjainta kuten TTJ:ssä: id=380). Alustusvektorin
pituus on 48 bittiä.
Wi-Fi eli wireless fidelity on 802.11-standardien (erityisesti yleisimmän eli .11b:n)
lempinimi samaan tapaan kuin ethernet on IEEE 802.3:lle. Oikeastaan kyseessä on eri
laitteiden yhteensopivuutta edistävä hanke: Wi-Fi Alliance on
teollisuusyhteenliittymä, joka myöntää sertifikaatteja IEEE:n 802.11-standardien
mukaisuudesta. Sillä on myös ollut 802.11i:n valmistumista odotellessa oma
väliaikainen standardi WPA eli Wi-Fi Protected Access. Siinä on kaksi moodia,
enterprise mode, joka perustuu RADIUSiin, ja PSmode, joka perustuu ennaltasovittuihin
salaisuuksiin. Edellä mainittu RSN on toiselta nimeltään WPA2, ja se edustaa
vuonna 2004 valmistuneen 802.11i-standardin täyttä noudattamista.