Hyväksymispäivä Arvosana i Arvostelija Älykorttien ja avainkorttien käyttö tietoverkoissa salauksen avulla toteutetussa todennuksessa Jouni Auer Espoo 5.11.2000 Tieteellisen kirjoittamisen kurssin harjoitustyö 2 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Sisällys ii 1 Johdanto... 1 2 Salauksen avulla tehtävä todennus tietoverkoissa... 2 2.1 Symmetriset menetelmät todennuksessa... 3 2.2 Asymmetriset menetelmät todennuksessa... 4 3 Inhimillisen riskitekijän minimointi todennusketjussa... 5 3.1 Älykortit... 5 3.2 Avainkortit... 8 4 Johtopäätökset... 10
1 Johdanto Tässä kirjoitelmassa käsitellään tietoverkoissa salauksen avulla tehtävää todennusta (authentication), todentamiseen käytettyjä menetelmiä ja niiden toteuttamiseen tarvittavia välineitä. Kirjoitelmassa esitellään symmetriseen ja asymmetriseen salakirjoitukseen perustuvat todennusmenetelmät. Todentamiseen käytettävistä välineistä esitellään älykortit (smart cards) ja avainkortit (token cards). 1 Tietokone- ja tietoverkkoturvallisuudessa pääsynvalvonta luo perustan suojattavan tiedon salassapidolle ja eheydelle. Käyttäjän todennus ja pääsyoikeuden myöntäminen ovat edellytyksiä pääsynvalvonnalle. Kuvassa 1 esitetään malli pääsynvalvonnalle ja pääsynvalvontaan liittyvät tekijät [Lam92]: 1. toimeksiantajat: toimenpidepyyntöjen lähteet, 2. resursseihin kohdistuvat toimenpidepyynnöt, 3. valvonta: valvojan suorittama toimenpidepyyntöjen suorittamisen edellytysten tutkiminen ja niiden pohjalta tehtävä pääsyoikeuden myöntäminen ja 4. kohteet: resurssit, kuten esimerkiksi tiedostot, laitteet tai prosessit. Toimeksiantaja Tee toimenpide Valvonta Kohde Lähde Toimenpidepyyntö Valvoja Resurssi Kuva 1. Malli pääsynvalvonnalle Kirjoitelman tavoitteena on kiinnittää huomiota siihen: miten henkilö tunnistautuu työasemalle, miten tunnistustietoa välitetään tietoverkossa, miten todentaminen tietoverkossa toteutetaan ja miten käyttäjä varmistuu kohteen oikeellisuudesta. Pääsynvalvontaan liittyvä pääsyoikeuden myöntäminen sivuutetaan tässä kirjoitelmassa.
2 Salauksen avulla tehtävä todennus tietoverkoissa Tietoteknisissä ympäristöissä käyttäjän todentaminen perustuu johonkin, mitä käyttäjä tietää, omistaa tai on. Perinteinen käyttäjätunnuksella ja salasanalla tehtävä todennus edustaa käyttäjän tietoon perustuvaa todennusta. Omistamiseen liittyvä todentaminen perustuu usein fyysisiin avaimiin tai tunnistekortteihin. Käyttäjän fyysisiin ominaisuuksiin liittyvä todennus vaatii tietotekniseltä ympäristöltä kykyä biometrisiin mittauksiin, kuten esimerkiksi käyttäjän sormenjäljen kuvaamista ja vertaamista talletettuihin kuvatiedostoihin. Vahvasta todennuksesta puhutaan, kun käyttäjän todentaminen perustuu samanaikaisesti kahteen edellämainitun ryhmän todennustapaan (kahden tekijän todennus, two-factor authentication) [JAB99]. 2 Kaikki todentamiseen vaadittava informaatio välitetään tietokoneelle ja tietoverkoissa datana. Tietoturvallisuuden näkökulmasta mahdollisuus todennusdatan kaappaamiseen ja uudelleenlähettämiseen vie todentamismenettelyiden luotettavuuden. Tietoverkossa tehtävälle todentamiselle voidaan asettaa vaatimus todentamiseen vaadittavien tietojen välittämiseen salattuna. Tiedon salausta voidaan hyödyntää myös itse tiedonsiirron osapuolten todentamisessa. Symmetrinen salakirjoitus perustuu funktioon, joka muuttaa selväkielisen viestin salakirjoitetuksi viestiksi. Salakirjoitetun viestin purkamiseen selväkieliseksi tarvitaan toinen funktio. Kuitenkin kumpikin funktio käyttää samaa avainta, jonka tunteminen on edellytys salauksen ja salauksen purkamisen onnistumiselle. Mikäli viestin salaamisen suoritetaan toisen osapuolen toimesta, kuin salauksen purkaminen, pitää funktioiden käyttämän avaimen olla jaettu osapuolten kesken [JAB99]. Asymmetrinen salakirjoitus perustuu viestinvälitykseen osallistuvien osapuolien omien salausavainten käyttöön. Viestinvälityksen osapuoli omistaa asymmetrisessä salakirjoituksessa kaksi avainta: julkisen ja salaisen. Toinen osapuoli voi lähettää salakirjoitetun viestin vastaanottajalle käyttämällä salauksessa vastaanottajan julkista avainta. Salakirjoitetun viestin saa tällöin purettua ainoastaan vastaanottajan salaisella avaimella. Menetelmää kutsutaan julkisen avaimen salakirjoitukseksi (Public key cryptography). Julkisen avaimen salakirjoitus takaa tiedonvälityksen salassapysymisen
lisäksi myös sen, että salakirjoitetun viestin purkamiseen pystyy ainoastaan se osapuoli, jonka julkisella avaimella alkuperäinen viesti on salakirjoitettu [NeS78]. 3 Julkisen avaimen infrastruktuurissa (Public key infrastructure) etuna on se, että osapuolten salaisia avaimia ei säilytetä ulkopuolisessa todennuspalvelimessa sellaisenaan. Haittapuolena on se, että julkisen avaimen menetelmä vaatii tietokoneilta huomattavan määrän laskennallista kapasiteettiä. Lisäksi useimmat julkisen salauksen menetelmät ovat patentinalaisia, kuten esimerkiksi Diffie-Hellman [DiH76] ja RSA [RSA78]. Kapasiteettitarpeesta ja toteutuksen monimutkaisuudesta johtuen julkisen avaimen salakirjoitusta käytetään käytännön toteutuksissa ainoastaan aloitettaessa tiedonsiirtoa käytetyn symmetrisen salausavaimen välittämiseen. 2.1 Symmetriset menetelmät todennuksessa Tiedonvälityksen tehokkuusvaatimukset edellyttävät todennusmenettelyiden automatisointia ja ulkopuolisen todennuspalvelimen käyttöä. Osapuolten välisen todentamisen tekee todennuspalvelin (Authentication server, AS), joka vertaa osapuolten ilmoittamia omia avaimiaan todennuspalvelimen tietokannassa säilytettäviin avaimiin ja laskee näiden avulla osapuolten väliseen salattuun tiedonvälitykseen tarvittavan salausavaimen [NeS78]. Yhteisen salausavaimen välittäminen vastaanottavalle osapuolelle tapahtuu siten, että todennuspalvelin antaa lähettävälle osapuolelle edelleenvälitettäväksi paketin, joka sisältää yhteisen salausavaimen ja todenteen lähettäjästä. Tämä paketti on ainoastaan vastaanottavan osapuolen avattavissa. Vastaanottajan todentaminen perustuu yhteisen salausavaimen tuntemiseen [NeS78]. Todennuspalvelinta käyttävä symmetrisen salakirjoituksen järjestelmä edellyttää, että todennuspalvelin tuntee kaikkien tiedonvälitykseen osallistuvien osapuolten avaimet. Itse todennuspalvelin on kyseisessä ympäristössä kriittisessä tehtävässä ja tietoturvamielessä todennäköinen hyökkäyksen kohde [BlD94].
2.2 Asymmetriset menetelmät todennuksessa 4 Välitettäessä salakirjoitettua viestiä vastaanottajalle, pitää varmistua, että: a) Ensimmäinen viesti on merkityksellinen ainoastaan vastaanottavalle osapuolelle. b) Vastaanottavan osapuolen pitää pystyä varmistumaan siitä, että ensimmäisen viestin lähettäjä on se, kuka tämä väittää olevansa. Asymmetriset menetelmät todennuksessa perustuvat todennuspalvelimella säilytettäviin sertifikaatteihin ja julkisiin avaimiin. Sertifikaatteja käytetään viestinvälityksen eheyden takaamisessa ja niiden käyttö on sivuutettu tässä kirjoitelmassa. Kun lähettäjä A haluaa muodostaa salatun tiedonvälitysyhteyden vastaanottajalle B, hän lähettää todennuspalvelimelle AS viestin halutun tiedonvälityksen osapuolista: A AS: A,B Todennuspalvelin lähettää osapuolelle A omalla salaisella avaimellaan SKAS salatun viestin, joka sisältää vastaanottajan julkisen avaimen, sekä vastaanottajan tunnisteen: AS A: {PKB, B} SKAS Osapuoli A avaa viestin käyttämällä todennuspalvelimen AS julkista avainta PKAS. Jokaisen viestinvälitykseen osallistuvan osapuolen voidaan olettaa tuntevan oman todennuspalvelimensa julkisen avaimen. Tämän jälkeen osapuoli A voi lähettää osapuolelle B viestinvälityksen aloituspyynnön: A B: {I A, A} PKB Aloituspyyntö koostuu kertakäyttöisestä tunnusluvun (nonce) I A sekä lähettävän osapuolen tunnuksesta. Tämä viesti on purettavissa ainoastaan osapuolen A salaisella avaimella, mikä täyttää kappaleen alussa esitetyn ehdon a. Osapuoli B pyytää todennuspalvelimelta osapuolen A julkisen avaimen:
5 B AS: AS B: B, A {PKA, A} SKAS Käyttäen osapuolen A julkista avainta, voi osapuoli B lähettää A:lle oman kertakäyttöisen tunnuslukunsa salattuna viestinä. B A: A B: {I A, I B } PKA {I B } PKB Kun osapuoli A lähettää B:n kertakäyttöisen tunnusluvun takaisin salattuna B:n julkisella avaimella, voi B olla varma siitä, että viestinvälityksen aloituspyynnön lähettänyt osapuoli on, kuka tämä väittää olevansa (ehto b) [NeS78]. 3 Inhimillisen riskitekijän minimointi todennusketjussa Ihmisten käyttämien salaisuuksien heikko laatu on suuri riski hajautetuissa ympäristöissä toteutetussa todennuksessa. Vaikka heikkoja salaisuuksia, kuten esimerkiksi salasanat ja tunnusluvut (PIN-codes, Personal Identification Number-codes) ei aina välitettäisikään salaamattomina tietoverkoissa, ovat ne silti helposti murrettavissa. Koska salaisuudet ovat valittu suppeista avainavaruuksista (esimerkiksi aakkoset) ja niiden merkkijonojen pituus ei ole riittävän suuri, on kokeiluun perustuvat hyökkäykset (brute-force attacks) tuloksekkaita [MoT93]. Älykortit (smart cards) ja avainkortit (token cards) mahdollistavat riittävän pitkien ja riittävän laajasta avainavaruudesta valittujen salaisuuksien käytön. Kun älykorttien ja avainkorttien käyttöön yhdistetään lisäksi käyttäjän tunteman salasanan tai tunnusluvun kysyminen, voidaan todennustapaa kutsua vahvaksi. 3.1 Älykortit Älykorteilla tarkoitetaan suppeasti tulkittuna fyysistä tiedontallennusvälinettä, joka sisältää käyttäjän salasanalla suojatun muistialueen ja julkisen muistialueen. Älykortille
6 voidaan tallettaa myös salauksessa käytettäviä laskennallisia funktioita, kuten esimerkiksi ECB block mode cipher. Lisäksi älykortilla on talletettuna sille valmistusvaiheessa annettu sarjanumero, joka on painettu myös älykortin pintaan. Älykortit on rakennettu siten, että yritys murtautua fyysisesti käsittelemään sen sisältämää dataa tyhjentää sen. Älykortit perustuvat standardeihin, joten ne soveltuvat käytettäväksi hyvin monenlaisissa ympäristöissä; yleisin sovellusalue älykorteille on puhelinkortti. Älykortin käyttö tietokoneessa edellyttää tietokoneeseen liitettyä älykortin lukijaa [Bla95] Käytettäessä älykorttia julkisen avaimen infrastruktuurissa, voidaan käyttäjän salainen avain tallettaa älykortin salasanalla suojatulle muistialueelle. Tämä pienentää salaisen avaimen paljastumisen riskiä ja helpottaa käyttäjän liikkuvuutta ympäristössä, joka on varustettu älykortin lukulaitteilla. Kun salainen avain on kerran tallennettu älykorttiin, ei sitä tarvitse (eikä myöskään voi) enää siirtää työasemalle prosessointia varten. Tietokoneelle talletettu salainen avain on haavoittuvainen yrityksen ja erehdyksen menetelmään perustuville murtautumisyrityksille. Esimerkkinä älykortin soveltamisalueesta todennuksessa on Kerberos-käyttäjien todennusympäristö. Kerberos-järjestelmä koostuu KDC-palvelimesta (Key Distribution Center), jossa on talletettuna kaikkien käyttäjien tunnukset ja salasanat. Kerberosympäristössä yhteyden hyväksyminen perustuu lipukkeisiin (Ticket) [KoN93]. Tunnistautuminen Kerberos-järjestelmässä [KoN93]: 1. Käyttäjän yrittäessä kirjautua työasemalle, välittää työasema käyttäjätunnuksen todennuspyynnössä KDC-palvelimelle. 2. KDC-palvelin hakee käyttäjätunnuksella tietokannastaan vastaavan avaimen K u ja salaa sillä ensimmäisen lipukkeen myöntävän viestin, TGT:n (Ticket Granting Ticket). Salattu TGT-viesti välitetään työasemalle 3. Työasema kysyy käyttäjältä salasanan ja sen saatuaan muodostaa siitä hashalgoritmilla käyttäjän avaimen K u. Mikäli TGT-viesti purkaantuu oikein K u avaimella on käyttäjä todennettu.
Kerberos-järjestelmää on arvosteltu monissa lähteissä ja sen ongelmiksi on tunnistettu: tarve turvalliselle salausmenetelmälle, tarve turvalliselle avainten säilytyspaikalle, riski nk. sanakirjahyökkäyksen tekemiselle. 7 Tarve turvalliselle salausmenettelylle johtuu siitä, että salasana ja siitä muodostettava salausavain ovat todennusprosessin aikana verrattavissa todennettavan työaseman muistitilassa. Lisäksi salasana annetaan tietokoneelle näppäimistön avulla selväkielisessä muodossa [ItH98]. Kerberos järjestelmässä salausavaimet säilytetään KDC-palvelimella ja todennuksen aikana myös työasemalla. Riittävän suurilla oikeuksilla varustettu käyttäjä tai ohjelma voi päästä käsiksi näihin avaimiin. Koska salausavaimet ovat muodostettu käyttäjien salasanoista, salasanojen murtautuminen kokeilemalla sanoja tunnetuista sanoista muodostetusta sanakirjasta on helppoa [ItH98]. Kerberos v5:ssä todennuksen tietoturvaa on parannettu ottamalla käyttöön nk. esitodennus. Tällöin käyttäjän kirjautumisen aikaleimaa hyödynnetään muodostettaessa salausavainta. Tämä johtaa siihen, käyttäjän salausavainta ei pysty muodostamaan pelkästään tuntemalla tai arvaamalla käyttäjän käyttämän salasanan [KoN93]. Älykorttia voidaan hyödyntää Kerberos-järjestelmässä Itoin ja Honeymanin mukaan salausavaimen K u säilytyspaikkana ja TGT-viestin salauksen purkupaikkana. Älykortti mahdollistaa satunnaisesti muodostettujen salausavainten käytön, kun perinteisessä Kerberos-toteutuksessa salausavain muodostetaan käyttäjän antaman heikon salasanan pohjalta. Itoin ja Honeymanin kehittämän parannetun Kerberos-tunnistusjärjestelmän mukaan koostuu seuraavista vaiheista [ItH98]: 1. Käyttäjän yrittäessä kirjautua työasemalle, välittää työasema käyttäjätunnuksen todennuspyynnössä KDC-palvelimelle.
2. KDC-palvelin hakee käyttäjätunnuksella tietokannastaan vastaavan avaimen K u ja salaa sillä ensimmäisen lipukkeen myöntävän viestin, TGT:n (Ticket Granting Ticket). Salattu TGT-viesti välitetään työasemalle 3. Työasema kirjoittaa salatun TGT-viestin älykortttiin. 4. Älykortti suorittaa TGT-viestin purkamisen ja välittää selväkielisen TGTviestin työasemalle. 5. Jos TGT-viesti toimii, eli sen avulla KDC-palvelin myöntää seuraavan pääsylipukkeen, voidaan todennuksen todeta onnistuneen. 8 Itoin ja Honeymanin esitys ei tuo ratkaisua KDC-palvelimella säilytettävien käyttäjien salausavainten tietoturvariskiin. 3.2 Avainkortit Avainkortteja (token cards) käytetään todentamaan käyttäjä hajautetussa tietoverkkoympäristössä. Suunnittelutavoitteena avainkorttien tekijöillä on ollut luopua älykorteille tyypillisestä vaatimuksesta liittää älykortti tietokoneeseen galvaanisesti ts. kortinlukijan avulla. Avainkortit mahdollistavat käyttäjän todentamisen todennuspalvelimelle ja toteutuksesta riippuen myös todennuspalvelimen todentamisen käyttäjälle. Kantavana ideana suunnittelussa on ollut käytön yksinkertaisuus. Molvan ja Tsudikin artikkelin mukainen avainkortti koostuu LCD-näytöstä, virtanäppäimestä, sisäisestä kellosta ja paristosta. Korttiin on lisäksi toteutettu vahva yhdensuuntainen (salaus) salausfunktio. Jokainen avainkortti C omistaa salaisen avaimen K C, joka on luotu salaamalla kortin sisäinen sarjanumero SN C kortin todennuspalvelimen salaisella avaimella K AS : K C =E(K AS, SN C ). Kortin sisäinen sarjanumero on myös painettu tekstinä kortin pintaan [MoT93].
9 Avainkortin käyttö edellyttää käyttäjätunnuksen ja tunnusnumeron tuntemista. Tunnistauduttaessa käyttäjätunnus kirjoitetaan tunnistuskehotteeseen ja salasanan kohdalle kirjoitetaan tunnusnumero, jonka perään liitetään kulloisenakin ajanhetkenä avainkortin LCD-näytössä näkyvä numerosarja. Käytännön toteutuksissa menettelytapa on yksinkertaisempi, kuin allaolevassa esimerkissä. Todennus etenee seuraavien vaiheiden kautta [MoT93]: 1. Käyttäjä käynnistää avainkortin virtanäppäimestä. Avainkortti laskee ja esittää näytöllään kaksi lukua: a) TIME - Kortin sisäisen kellon mukaisen päiväyksen ja kellonajan b) [K C, TIME] Kortin oman salaisen avaimen avulla salatun päiväyksen ja kellonajan 2. Käyttäjä syöttää työasemansa kehotteeseen seuraavat tiedot: a) U Käyttäjätunnuksen b) SN C Avainkortin sarjanumeron c) TIME Avainkortin näytöllä lukevan TIME-kentän arvon d) K u Avainkortin esittämän salatun TIME-kentän arvon ja käyttäjän henkilökohtaisen tunnusluvun yhdistelmä 3. Työasema lähettää todennuspalvelimelle käyttäjän syötteen pohjalta a) U, SN C, TIME b) E[K U, TIME] 4. Todennuspalvelin käyttää lukuja SN C ja K AS laskeakseen kortin salaisen avaimen K C. Tämän jälkeen se kykenee laskemaan funktion E[K C, TIME].Tämän luvun ja tietokannasta käyttäjätunnuksella haetun tunnusluvun yhdistelmänä kandidaatin K u käyttäjän antamalle luvulle K u. Mikäli K u ja K u vastaavat toisiaan on todennus tehty. Todentamista seuraa tämän jälkeen erilaiset kättelyrutiinit, jotka ohitetaan tässä kirjoitelmassa.
10 4 Johtopäätökset Käyttämällä älykortteja tai avainkortteja tietoverkoissa salauksen avulla toteutetussa todennuksessa voidaan parantaa kyseisten ympäristöjen tietoturvallisuutta. Yksi todentamiseen liittyvistä suurimmista ongelmista on ihmisen rajallinen kyky muistaa todentamiseen käytettäviä tunnuksia, salasanoja ja tunnuslukuja. Ongelmalliseksi on myös osoittautunut se, miten salausavaimia siirretään, säilytetään ja käsitellään tietokoneissa. Tietojenkäsittely on riippuvaista ylläpidollisista toimenpiteistä, joiden suorittaminen tietokoneella vaatii huomattavan suuret valtuudet. Usein näillä valtuuksilla on mahdollisuus käsitellä mitä tahansa tietokoneelle talletettua tietoa. Älykortit ja avainkortit tuovat ratkaisun liian heikkojen salaisuuksien käyttöön. Nykyisissä äly- ja avainkorteissa on riittävä määrä muistikapasiteettia hyvien salausavainten käyttöön. Joissain tilanteissa tunnistusvälineen toteutus mahdollistaa laskennallisten toimenpiteiden suorittamisen eristetyssä ja turvallisessa kortissa, mikä poistaa tietokoneessa tehtäviin operaatioihin liittyvän tietoturvariskin. Varsinkin älykortit ovat hyvin standardoituja ja yhteensopivia keskenään. Tämä mahdollistaa tulevaisuudessa niiden laajamittaisen hyödyntämisen monenlaisissa tilanteissa. Tietoverkossa ja tietokoneella tehtävä käyttäjän todentaminen on yksi näistä sovellusalueista.
Lähteet BlD94 Bla95 DiH76 ItH98 JAB99 KoN93 Lam92 MoT93 NeS78 RSA78 11 Blain, L., Deswarte, Y., A smartcard fault-tolerant authentication server. Proc. of CARDIS 94 1 st Smart Card Research and Advanced Application Conference. Oct. 1994 Blaze, M., High-bandwith encryption with low-bandwith smartcards. ftp://ftp.research.att.com/dist/mab/card_cipher.ps Dec. 1995 Diffie, W., Hellman, M., New directions in cryptography. IEEE Transactions on Information Theory, Nov. 1976 Itoi, N., Honeyman, P., Smartcard integration with kerberos v5. CITI Technical Report 98-7, Dec. 1998 Johner, H. et al., IBM HTTP server powered by apache on RS/6000, Chapter 6. Deploying security, IBM Redbook SG24-5132-00, ISBN 0738412805, Mar. 1999 Kohl, J., Neuman, B., The kerberos network authentication service (v5). Request For Comment RFC 1510, Sept. 1993 Lampson, B. et al., Authentication in distributed systems: theory and practice. ACM Trans. Computer Systems 10, 4 (Nov. 1992), 265-310 Molva, R., Tsudik, G., Authentication method with impersonal token cards. Proc. of IEEE Symposium on Research in Security and Privacy, 1993 Needham, R., Schroeder, M., Using encryption for authentication in large networks of computers. Commun. ACM 21, 12 (Dec. 1978), 993-999 Rivest, R., Shamir, A., Adleman, L., A method for obtaining digital signatures and public key cryptosystems. Communications of the ACM, Feb. 1978