3 TEKNISET PERUSTEET
3.2 Turvallinen järjestelmä
3.3.7 Joulupuuvirus
Joulupuuvirus on itse asiassa luokittelultaan Troijan hevonen. Se oli ihmi
sille lähetty sähköpostiviesti, joka pyysi ajamaan itsensä.
Kun ohjelman ajoi, se toivotti onnea tulostamalla joulupuun. Sivuvaikutuk
sena ohjelma lähetti itsensä kaikille, joiden tunnus löytyi käyttäjän tiedos
toista. VM/CMS ylläpitää luetteloa tunnuksista, joille on viime aikoina lähe
tetty tai joilta on vastaanotettu postia, sekä ’lempinimiluetteloa’, jossa on ly
henteinä käyttäjän tavallisimmat yhteyskumppanit. Lisätietoja: [Burger- 1988], [Burger1988b], [Karilal989],
Virus levisi IBM:n tukemassa ja ensisijaisesti isoista IBM-koneista koostu
vassa BITNET-verkossa joulun alla 1987. Se pääsi myös IBM:n sisäiseen tie
tokoneverkkoon. Se oli kirjoitettu selkeällä VM/CMS-käyttöjärjestelmän REXX-komentokielellä. Ohjelma aiheutti verkon ylikuormittumisen mo
neksi päiväksi.
Joulupuuvirus ei käyttänyt mitään teknistä apukeinoa leviämiseensä; se luot
ti ihmisten hyväuskoisuuteen. Joissakin tapauksissa myös itse viesti voi si
sältää Trojan hevosen.16 3.3.8 Yhteenveto
Madot ovat verkkoympäristössä erittäin vaarallisia. Esiintyneet madot ovat osoittaneet, mitä ne voivat tehdä - yksikään niistä ei ole vielä varsinaisesti tehnyt mitään. Madot voivat siis olla huomattavasti esimerkkejä vaaralli
sempia.
Matoesimerkit ovat hyvin kattavia. Matoja on esiintynyt kaikissa TKK:n tärkeissä käyttöjäijestelmissä ja verkkotyypeissä.
Ainoa mahdollinen varautuminen on ennaltaehkäisevä ylläpito - pahim
massa tapauksessa aikaa tunkeutuvan madon tihutöiden estämiseen saattaa jäädä vain 10 minuuttia.
16Joissakin järjestelmissä on mahdollista kirjoittaa tiedostoon komentoja siten, että editori aluksi suorittaa ne. Esimerkiksi TKK:lla posti luetaan usein Emacs-editorin alaisuudessa. Oletuksena Emacs sallii tiedostossa olevien komentojen ajamisen varoittamatta käyttäjää.
50
3.4 PROTOKOLLAT VERKON SUOJAAMISEKSI
Tietokoneverkkoa ei voi suojata täydellisesti muuten kuin salaamalla olen
naiset osat liikenteestä. Tunnistusprotokolla pyrkii luomaan yhteyden tieto
koneiden välille niin, ettei sivullinen voi häiritä tunnistusta.
3.4.1 Verkon uhat
Verkossa oleva asiaton kuuntelija, voi monin tavoin murtaa verkossa olevan jäijestelmän. Kuuntelija voi olla esimerkiksi ylimääräinen työasema tai pahantahtoiseksi muutettu normaali työasema. Protokollan tulee varautua seuraaviin verkon uhkiin:
Liikenteen kuuntelu
Lähes aina tunkeutuja voi kuunnella kaikkea verkossa kulkevaa liikennet
tä. Useissa turvallisuusjäijestelyissä välitetään verkon yli salasanoja täy
sin selväkielisessä muodossa.
Yhteyden katkaisu
Joissakin tapauksissa tunkeutuja voi katkaista yhteyden joko kaikkien tai valittujen asemien välillä.
Liikenteen muuntelu
Joissakin tapauksissa tunkeutuja voi muunnella verkossa näkyvää liiken
nettä. Tämä on jäijestelmälle vaarallisinta.
Monet yksinkertaiset turvallisuusjärjestelmät on kierrettävissä, mikäli voi
daan muuttaa verkossa kulkevia paketteja. Esimerkiksi viestistä, missä pääsyoikeustiedot ovat oikein, voidaan vaihtaa palvelun pyytäjää.
Liikenteen toisto
Joissakin tapauksissa turvallisuus on helposti murrettavissa pelkästään tois
tamalla aiemmin lähetetty paketti. Paketti voi sisältää esimerkiksi täydelli
set oikeudet jonkin operaation tekemiseen. Tunkeutuja saa toistettua tämän toimenpiteen lähettämällä paketin identtisenä uudelleen.
Oma liikenne
Saatuaan tarpeeksi tietoja järjestelmän toiminnasta tunkeutuja voi aloittaa oman liikenteen verkossa. Tunkeutuja voi esittää jotain toista tietokonetta, esimerkiksi sellaista, jonka hän tietää olevan huollossa.
3.4.2 Salauksesta
Tässä luvussa esitellään salausta, koska kaikki tunnistusprotokollat perus
tuvat sen käyttöön. Tarpeettomia yksityiskohtia on pyritty välttämään; huo
miota on kiinnitetty enemmän käyttöön kuin itse menetelmiin.
Salausmenetelmät perustuvat siihen, että algoritmit ovat niin hyvin avaimel
la parametroitavissa, ettei nykyisillä tietokoneilla voida löytää alkuperäistä viestiä muuten kuin käymällä läpi kaikki avaimet (ongelma on NP-täydelli- nen, nondetermistic polynomial, ks. esim. [Denningl982, s. 32]). Salausalgo
ritmista on tehtävä sellainen, että kaikkien avainten läpikäyminen ei ole kohtuullisessa ajassa mahdollista nykyisillä tietokoneilla.
Salausjärjestelmiä on kahdenlaisia: symmetrisiä ja epäsymmetrisiä. Sym
metriset ovat perinteisiä salakirjoitusjärjestelmiä, jossa salaus tehdään yh
teisen salaisuuden avulla (salaisen avaimen salausjärjestelmät). Epäsym
metrisissä (julkisen avaimen) salausjärjestelmissä lähettäjällä ja vastaan
ottajalla on eri salaisuudet.
Yleisesityksiä salauksesta ovat esimerkiksi [Masseyl988], [Denningl982] ja [Seberryl989],
Symmetrinen eli salaisen я varmen salausjärjestelmä
Symmetriset menetelmät ovat perinteisiä salakirjoitusjärjestelmiä. Niissä lähettäjä ja vastaanottaja jakavat yhteisen salaisuuden, avaimen. Viesti koodataan ja tulkitaan saman avaimen avulla. Yhteinen salaisuus ei saa joutua kenenkään muun haltuun.
52
suojattu yhteinen salaisuus = avain z y ' siirtotie
selväkielinen sanoma selväkielinen
sanoma ~
sivullinen kuuntelee salakielinen
sanoma avaus
salaus tulkinta
Kuva 3.13. Salaisen avaimen salakirjoitusjärjestelmä.
Tunnetuin salaisen avaimen salakirjoitusalgoritmi on DES (Data Encrypt
ion Standard), joka perustuu tiettyjen taulukoiden mukaan tehtyihin perättäi
siin vaihtoihin ja korvauksiin.17 DES on vientikiellossa USArsta. Valmiis
sa maailmanlaajuisesti jaettavissa tuotteissa sitä ei ole, vaikka sitä voidaan
kin käyttää Suomessa. Tärkein USA:n ulkopuolella tehty vapaasti jaettava toteutus on TKK:n laskentakeskuksessa Antti Loukon tekemä versio [Loukol989].18
Korvaavista algoritmeista lupaavin on FEAL (Fast Encryption Algorithm).
Se soveltuu hyvin toteutettavaksi ohjelmalla, ja siksi se on tavallisesti huo
mattavasti laitteistototeutukseen paremmin soveltuvaa DES:iä nopeampi.
FEALm turvallisuuden varmentaminen on vielä kesken.19
Tässä tutkimuksessa ei perehdytä symmetristen salausalgoritmien tekemi
seen. Riittävän hyviä ratkaisuja on saatavissa, ja kaikkien algoritmien lii
tännät ovat tutkimuksessa käsitellyllä tarkkuudella samanlaisia.
DES-tyyppinen lohkosalain voi toimia tavallisen lohkomoodin (ECB, elec
tronic code book mode) lisäksi muutamissa muissa moodeissa [IS08372], CBC-moodissa (cipher-block chaining) DES-algoritmilla voidaan toteuttaa jo- nosalain, joka estää tehokaasti yksittäisten salauslohkojen muuntelun.
Moo-17 Tarkka kuvaus on standardiehdotuksessa (standardointi lopetettu kesken)
[IS08227]. Historiasta kerrotaan laajasti artikkelissa [Smidl988]. Valmis ohjelma on kiiloissa [Seberryl989] ja [Tanenbauml981] sekä kirjassa ”Numerical Algorithms in C”. Hyvä ja helposti käsiin saatava kuvaus on kirjassa [Denningl982]. Julkisessa jakelussa on useita koneluettavassa muodossa olevia versioita ohjelmista.
18 DES:n käyttöön saattaa vaikuttaa USA:ssa ja UK:ssa IBM:n Lucid-patentit (DES on kehitetty tämän pohjalta), ks. [IS08227],
19 FEAL kuvataan standardiesityksessä [WG20 N48-51]. Shimizu ja Miyaguchi ovat esittäneet FEALän Eurocrypt 87 konferenssissa. Kirjassa [Seberryl989] on
pinnallinen kuvaus FEAL:sta.
deja CFB (cipher feedback) ja OFB (output feedback) tarvitaan, jotta epäluotet
tava tiedonsiirtoyhteys voi toipua virheistä.
Epäsymmetrinen eli julkisen avaimen salausjärjestelmä
Julkisen avaimen salakirjoitusjärjestelmissä on kaksi avainta: julkinen avain ja salainen avain. Salakirjoitusjärjestelmä on epäsymmetrinen. Tä
mä tarkoittaa sitä, että salausavain ja tulkinta-avain eivät ole samat eikä niitä ole mahdollista järkevässä ajassa laskea, vaikka toinen tiedettäisiin.
Käyttötarkoituksen perusteella joko salausavain tai tulkinta-avain on julki
nen.
vastaanottajan julkinen salausavain
selväkielinen
*" sanoma selväkielinen
sanoma ~ salakielinen j
sanoma sivullinen vastaanottajan salaisella tulkinta-avaimella
tulkinta
avaus yleinen
tieto
avainten teko
Kuva 3.14. Julkisen avaimen salakirjoi
tusjärjestelmä. Kuka tahansa voi lähet
tää viestejä, jotka ovat vain aiotun vas
taanottajan luettavissa.
Jokaiselle osapuolelle lasketaan avainpari: salausavain ja tulkinta-avain.
Kuvan jäijestelmässä tulkinta-avain jää vain vastaanottajan omaan tietoon, kun taas salausavain julkaistaan yleiseen tietoon. Kuka tahansa voi salata viestejä tällä avaimella, mutta vain aiottu vastaanottaja kykenee tulkitse
maan viestin.
Julkisen avaimen menetelmässä kuuntelijan on (laskennallisesti) mahdo
tonta johtaa julkisesta avaimesta salaista avainta. Sen on oltava yhtä vaike
aa kuin viestin avaaminen muutenkin.
Järjestelmän toimimisen edellytyksenä on, ettei kuuntelija kykene väären
tämään lähettäjän saamaa tietoa vastaanottajan julkisesta avaimesta. Vas
taanottajien julkisten avainten tulisi olla jaettuna turvallista tietä jonkinlai
sena puhelinluettelona esimerkiksi levykkeellä. Laajassa jatkuvasti muut
tuvassa verkkoympäristössä tätä ei voida yksinkertaisilla keinoilla taata.
Tärkein ero julkisen avaimen menetelmässä salaisen avaimen menetel
mään verrattuna on se, että salaisen avaimen menetelmässä avaimen tulee olla salassa kuljetuksen ajan. Julkisen avaimen menetelmässä se saa pal
jastua.
54
Julkisen avaimen menetelmien käytännön toteutuksesta
Tunnetuin julkisen avaimen menetelmä on RSA (Rivest-Shamir-Adelman).
Se on tällä hetkellä myös ainoa menetelmä, jonka luotettavuuteen yleisesti us
kotaan. RSA:n ovat kehittäneet Rivest, Shamir ja Adelman vuonna 1977. Se on patentoitu USArssa [Rivestl983], mikä kuitenkaan ei haitanne järjestel
män käyttöä mm. Suomessa.20 Ongelma on sama kuin DESdlä: valmiita USAdaisia tuotteita ei ole saatavissa.
Julkisen avaimen salakirjoitusmenetelmät ovat huomattavasti raskaampia käyttää kuin salaisen avaimen menetelmät. RSA vaatii 512-bittisen avai
men ollakseen turvallinen, kun taas esimerkiksi DES käyttää 56 bittiä.21 Nopeimmat RSA:n toteutukset ovat kertaluokkia hitaampia kuin DES-toteu- tukset.22 RSA:ta käytetäänkin useimmiten vaihtamaan DES-avaimia. Mi
kään julkisen avaimen algoritmi ei tällä hetkellä nopeudeltaan vastaa käy
tännön tiedonsiirron vaatimuksia kaiken liikenteen salaamiseksi.
Aikaisempi julkisen avaimen menetelmä on trapdoor knapsack -säläin (tai keksijöidensä mukaan Merkle-Hellman -säläin) [Denningl982, s. 119]
[Hellman 1980]. Tämä kuitenkin on osoittautunut epäluotettavaksi (ks. esim.
[Seberryl989, s. 107].
Salaisen avaimen vaihtoon julkisten avainten perusteella on kehitetty Diffie- Hellman -protokolla. Tämä esitellään tarkemmin liitteessä A.
Yksisuuntaiset salaus funktiot
Tärkeän erikoistapauksen selaimista muodostavat yksisuuntaiset salaus- funktiot. Yksisuuntaisella salausfunktiolla viesti saadaan salattua sellai
seen muotoon, ettei laskennallisesti voida löytää viestiä, joka salautuisi sa
maksi salakieliseksi tekstiksi.
Yksisuuntaisella salauksella voidaan tallettaa tietoja, jota vain verrataan al
kuperäiseen. Esimerkiksi tietokoneen salasanat talletetaan usein yksisuun
taisesti salattuina koneen muistiin (katso luku 3.2.1 Käyttäjien tunnistami
nen).
20RSA-patentti ei ole voimassa ainakaan Suomessa, Englannissa eikä Länsi-Saksas
sa [Loukol989b], Patentti vanhenee noin viiden vuoden kuluttua.
21 Täysin turvalliseen järjestelmään DESm 56 bittiä ei enää riitä.
22Nopeimmatkin laitteistolla tehdyt RSA-toteutukset ovat nopeudeltaan muutamia tu
hansia bittejä sekunnissa (esimerkiksi CYLINK, 6800 bit/s). Yksinkertaiset mikrot salaavat vain 10 bit/s (esimerkiksi [Bethl989]).
Salasanojen kokeilun vaikeuttaminen edellyttää hidasta yksisuuntaista sa
lausta. Muuten väärinkäyttäjä voi kopioida julkisen salasanatiedoston ja verrata salasanoja nopeassa tietokoneessa itse toteuttamallaan algoritmilla.
Jokaisen kokeilun tulisi viedä vähintään sekunti tehokkaaltakin tietoko
neelta. Esimerkiksi UNIX käyttää muuneltua DES-algoritmia useita kertoja peräkkäin salatakseen käyttäjien salasanat.23 Käytännössä voi olla vaike
aa todistaa, että jokin algoritmi on hyvä yksisuuntainen salausalgoritmi ja samalla hidas. Huonosti suunniteltu hidastus voi olennaisesti lisätä samalle tunnusluvulle osuvien salasanojen lukumäärää (lähteissä tätä ei ole tarkas
teltu).
Muita perustietoja salauksesta
Mitä paremmin viesti on arvattavissa, sitä helpompi se on murtaa. Viestin informaation tulisi olla mahdollisimman tiivistä - viestin haje (entropia)24 eli epävarmuus viestin sisällöstä tulisi saada mahdollisimman suureksi.
Viestin toistetta (redundanssi) saadaan vähennettyä erilaisilla tiivis- tämismenetelmillä. Toisteettomasta viestistä avaaja ei voi päätellä, mikä useista vaihtoehdoista on tarkoitettu viesti.
Toisteettomasta viestistä ei voi päätellä viestin järkevyyttä - kaikki viestit merkitsevät jotain. Siksi salattavasta viestistä ei tavallisesti tehdä täysin toisteetonta. Jotta vastaanottava voi luottaa viestin oikeellisuuteen, hänen on tarkastettava viestin järkevyys jostain toisteisesta viestin osasta, esimerkik
si varmistussummasta.
Salattuun lohkoon lisätty satunnaisuus vaikeuttaa avaamista. Satunnaisuus lisää viestin epävarmuutta ja avaajan on vaikeampi erottaa merkitykselliset osat merkityksettömistä. Tämän vuoksi jokaisen salauslohkon tyhjät osat tu
lisi täyttää satunnaisella tiedolla. Julkisen avaimen menetelmässä satun
naisuuden lisääminen voi olla välttämätöntä. Sivullisillakin on käytettä
vissään sama salausfunktio, jonka avulla salattua viestiä voidaan verrata muihin todennäköisiin viesteihin.
Kryptografisesti vahvalla satunnaislukugeneraattorilla on salauksessa mo
nia käyttötarkoituksia tunnistuksessa, sähköisissä allekiijoituksissa ja äly- korttiprotokollissa. Tällaisesta satunnaislukugeneraattorista ei ole lasken
nallisesti mahdollista arvata jakson seuraavaa lukua.
23 Esimerkiksi Intemet-mato käytti salasanojen kokeilemiseen algoritmia, joka on identtinen UNIXin algoritmin kanssa, mutta huomattavasti nopeampi.
24 Viestin entropia ja redundanssi ovat informaatioteorian perustermejä (ks. esim.
[Denningl982, s. 16-30]). Suomennokset haje ja toiste ovat Osmo A. Wiion kiijasta [Wiio 1989].
56
3.4.3 Tunnistus ja sähköiset allekirjoitukset
Kaikkien tietokoneverkossa kulkevien viestien tulee olla tunnistettavissa, jo
ten niiden lähettäjä tulee tietää. Lisäksi viestin tulee olla eheä; sen tulee olla sama viesti, minkä lähettäjä on lähettänyt.
Molemminpuolisessa tunnistamisessa edellytetään myös sitä, että lähettäjä saa varmuuden vastaanottajasta. Tämä varmistetaan ennen varsinaisen yhteyden alkua. Aina tämä ei ole välttämätöntä; valepalvelulla ei useinkaan voi pettää yhteydenottajaa.
Tunnistaminen vaatii, että vastaanottaja löytää viestistä jonkin odottamansa osan. Toisteetonta tietoa ei voi tunnistuttaa, koska myös satunnainen sanoma antaa järkevän lopputuloksen. Toisteen vuoksi tunnistamisessa voidaan käyttää vain varmoja salausmenetelmiä.
Osapuolten tunnistus salaisen avaimen menetelmässä
Yleensä salaisen avaimen menetelmässä oletetaan, että osapuolet jakavat sa
man salaisen avaimen. Yksinkertaisesti voidaan olettaa, että mikäli tulki
tussa sanomassa on odotettu osa, sen lähettäjä on oikea ja sanoma on muutta
maton.
Usein riittävä varmuus saadaan, jos aluksi vaihdetaan tunnistus salatussa muodossa ja tämän jälkeen jatketaan yhteyttä selväkielisenä. Avattuun yh
teyteen on paljon vaikeampaa päästä väliin ja vahingontekomahdollisuudet ovat vähäisempiä.
Yhteyttä avattaessa molemminpuolinen tunnistus voidaan tarkastaa tunnis- tusprotokollalla. Yksinkertaisin kahden osapuolen tunnistus on standardin ISO DP 979825 ensimmäinen tunnistusalgoritmi.
Algoritmi olettaa, että molemmilla osapuolilla on jo yhteinen avain. Varma tunnistus neuvotellaan satunnaislukuhaasteiden avulla seuraavasti:
25 Muista osista standardia kerrotaan lähemmin myöhemmin.
Protokolla 3.1. ISO 9798, ensimmäinen tunnistusalgoritml. Yksin
kertainen kahden osapuolen tunnistus ennalta tunnetulla avaimel
la.
Yhteydenottaja Vastaanottaja
Tuntee salaisuuden Kq Tuntee salaisuuden K<;
Valitsee satunnaisluvun I haasteeksi ja lähettää sen selväkielisenä
Valitsee satunnaisluvun J haasteeksi Lähettää takaisin {I.JjKc
Toteaa vastaanottajan olevan olkea, koska on koodannut l:n oikealla avaimella
Lähettää takaisin J:n selväkielisenä
Toteaa yhteydenottajan olevan oikea, koska on avannut satunnaisluvun
Muita käyttötarkoituksia on esimerkiksi se, että älykortti ja kortinlukija tar
kastavat jakavansa saman avaimen. Kaksi osapuolta voivat myös tarkastaa, että yhteys ei ole hetkeäkään poikki.
Lähettäjän tunnistus julkisen avaimen menetelmässä
Yksi etu julkisen avaimen menetelmässä on lähettäjän tunnistettavuus käyt
tämällä menetelmää toisin päin kuin salattaessa.
Jos lähettäjä salaa viestin salaisella avaimellaan ja julkistaa yleisesesti tul
kinta-avaimen, kuka tahansa voi varmistaa, että viesti on lähtenyt tältä tun
netulta lähettäjältä. Puolueeton kolmas osapuoli voi ratkaista lähettäjän ja vastaanottajan väliset kiistat. Väärentäjä näkee viestin sisällön, mutta ei voi muuttaa sitä.
58
lähettäjän julkinen tulkinta-avain
selväkielinen
*" sanoma selväkielinen
sanoma —
salakielinen sanoma lähettäjän
salaisella salausavaimella
yleinen tieto avainten
tulkinta
Kuva 3.15. Julkisen avaimen menetelmän käyttö lähettäjän tunnistamisessa.
Tätä järjestelyä on käytetty mm. USArn ja NL:n välisien ydinkoesopimusten valvonnassa. Automaattiset seismiset mittalaitteet valvovat kokeita. Kumpi
kin osapuoli voi varmentaa, että laitteiden lähettämät tiedot ovat asiallisia (ei esimerkiksi vakoilutietoja), mutta tietojen väärentäminen ei ole mahdollista [Simmonsl988].
RSA-menetelmässä on mahdollista käyttää tunnistukseen ja salaukseen sa
maa avainparia. Tällöin on mahdollista muodostaa yhteys, jossa jokainen viesti on sekä salattu että tunnistettavissa. Vain harvoissa julkisen avaimen salausmenetelmissä on tämä ominaisuus.
Sähköiset allekirjoitukset
Julkisen avaimen menetelmät ovat usein käyttökelpoisimpia todistamaan kenelle tahansa, että viesti on tietyn lähettäjän. Tällainen tilanne on erityi
sesti silloin, kun on saatava aikaan sopimuksien allekirjoitusta vastaava ti
lanne.
Sopimuksen allekirjoittaneelle osapuolelle ei tule jäädä mahdollisuutta kiis
tää allekirjoittaneensa sopimuksen (non-repudiation). Myös puolueettomalle osapuolelle tulee olla mahdollista lukea allekirjoitettu sopimus kiistatilan
teessa.
Salaisen avaimen menetelmässä joudutaan käyttämään koko ajan notaari- palvelua, joka tallettaa sopimukset arkistoonsa. Julkisen avaimen menetel
mässä viesti voidaan allekirjoittaa sähköisellä allekirjoituksella (digital signature) ja turvautua kolmannen osapuolen apuun vain kiistatilanteessa.
Sähköinen allekirjoitus koostuu kahdesta osasta: selväkielisestä viestistä ja salatusta allekirjoituksesta. Yksinkertaisimmillaan salattu allekirjoitus on selväkielinen viesti uudelleen salattuna allekirjoittajan salaisella avaimel
la. Se on kenen tahansa avattavissa allekirjoittajan julkisella avaimella.
Allekirjoitus on oikea, mikäli salattu ja selväkielinen osa ovat identtiset.
Lähettäjä ei voi kiistää lähettäneensä sanoman, koska vain hän tuntee salai
sen avaimensa.2®
Koko viestin salaaminen allekiijoitusta varten on tarpeetonta, mikäli kye
tään laskemaan viestiä kuvaava tunnusluku. Tämän tunnusluvun tulee olla sellainen, että ei ole laskennallisesti mahdollista muodostaa toista viestiä, jolla on sama tunnusluku (collision-free hash).2^
Julkisten avainten luotettava jakelu on ongelma myös sähköisissä allekirjoi
tuksissa. Myöhemmin esitettävässä X.509-standardissa käytetään luotettua kolmatta osapuolta ja tämän allekirjoittamia viestejä ongelman ratkaisussa.
3.4.4 Avaintenjakelu
Salaisen avaimen menetelmässä osapuolten yhteinen salaisuus on välttämä
tön, jotta salainen ja tunnistettu kommunikaatio on mahdollista. Salaisuu
den eli avaimen tulee olla jokaiselle kommunikoivalle parille oma - tunnis
tettavuus edellyttää, ettei salaisuutta paljasteta hetkeksikään kenellekään muulle.
TKK:n verkossa tulee olemaan vähintään 3000 käyttäjää ja 100 palvelua. Tä
mä tarkoittaa sitä, että järjestelmän tulisi muodostaa ja ylläpitää vähintään 300.000 salaista avainta, jotta jokaisen osapuolen kommunikointi pysyy sa
laisena ja tunnistettuna. Jos jokaisen osapuolen tulee voida kommunikoida keskenään, tarvittavien avaimien määrä on lähes 10 miljoonaa.
Käytännössä osapuolten nimet vaihtuvat, avaimia vaihdellaan turvallisuus
syistä ja järjestelmä muuttuu muutenkin jatkuvasti. Ongelma ratkaistaan siten, että jokaisella yksiköllä on oma avain, jonka avulla pyydetään yhteys
kohtaisia avaimia luotetulta kolmannelta osapuolelta, avaintenjakokeskuk- selta (key distribution center, KDC).
Ympäristön muutokset ovat ensisijainen ongelma myös julkisen avaimen menetelmissä. Vaikka osapuolet voivat kommunikoida salaisesti ja tunnis- tetusti, tämä edellyttää varmuutta näiden julkisista avaimista. Nopeasti muuttuvassa verkkoympäristössä tämä voidaan taata vain samalla tavalla kuin salaisen avaimen tapauksessa: luotettu osapuoli ylläpitää keskitetysti
26 On kuitenkin mahdollista tehdä vielä yksi vaarallinen virhe. Julkisen avaimen menetelmissä, joissa julkista avainta voi käyttää sekä salaukseen että avaukseen (esimerkiksi RSA), väärentäjä voi arpoa salaisen osan ja laskea salaamalla julkisen osan. Näin saadaan täysin allekirjoitettu viesti satunnaisella sisällöllä. Allekirjoi
tettavan sanoman tulee siis aina sisältää ei-satunnainen osuus, esimerkiksi vastaan
ottajan nimi. [Mitchell1989]
27 Tunnusluvun (MAC=message authentication code) generointi on standardoitu ISO:n standardiehdotuksessa DIS 9797 ja sen pohjana olevassa ANSI X9.9:ssä.
60
kaikkien julkiset avaimet. Tämä todistuspalvelija (certification authority) antaa pyynnöstä oikeaksi todistamiaan julkisia avaimia.
3.4.5 Tunnistus-ja avaintenjakeluprotokollat
Avaintenjakoprotokollan tavoitteena on vaihtaa osapuolten kesken luotetta
vasti joko salaisuus (salaisen avaimen menetelmät) tai vastapuolen julkinen avain (julkisen avaimen menetelmät). Se, että avain kyetään neuvottele
maan, takaa tyypillisessä protokollassa myös vastapuolen tunnistuksen. Mo
lemminpuolinen tunnistus saattaa vaatia lisäviestejä.
Tutkitut protokollat ovat : 1. Diffie-Hellman 2. Needham-Schroeder 3. Denning-Sacco (Kerberos) 4. Needham-Schroeder-Muellender 5. Otway-Rees
6. ISO DP 9798 alg. I (esitetty aiemmin) 7. ISO DP 9798 alg. II
8. ISO DP 9798 alg. IH 9. ISO DP 9798 alg. IV
Liitteessä A protokollia esitellään yksityiskohtaisesti.
Taulukko 3.4. Yhteenveto eri tunnistusprotokollien ominaisuuksista .
1 2 3 4 5 6 7 8 9
DH NS DS NS2 OR 1 1 lii IV
julkinen/salainen avain j s s S s s s S s
avaintenjako/tunnistus a at at at at t at at at
tarkastaa oikea-aikaisuuden X X X
taikastaa haasteen X X X X X
tarvitsee saman ajan X X
viestien lukumäärä 2 5 3 5 4 3 5 4 7
molemminpuolinen tunnistus X +i X X X X X X
Tyypillinen protokolla perustuu haaste-vastaus -periaatteeseen (challenge- response). Tunnistuken osapuoli arpoo luvun, jonka se salaa omalla avai
mellaan. Toisen osapuolen on kyettävä osoittamaan ymmärtäneensä vies
tin. Tämä voi tapahtua vain kummankin osapuolen avaimet tuntevan
tun-nistuspalvelijan avulla. Tunnistuspalvelija (avaintenjakelukeskus) takaa silloin molempien osapuolten henkilöllisyyden.
Arvottuja haasteita vähemmällä viestien lukumäärällä selvitään, jos luote
taan siihen, että osapuolilla on samassa igassa oleva kello. Yhteydenmuodos
tusta ei saa syntyä matkimalla aiempaa yhteydenottoa - aikaleimoilla tämän voi varmistaa helpommin. Yhteiseen kelloon ei kuitenkaan aina voi luottaa.
Oikea-aikaisuus (timeliness) tarkoittaa sitä, että kumpikin osapuoli on var
masti suorittanut tunnistuksen yhtä aikaa. Yksinkertaisesti se taataan sa
manaikaisen kellon avulla. Monimutkaisin protokolla (ISO IV) varmistaa oikea-aikaisuuden siten, että tunnistuspalvelija antaa kummallekin osapuo
lelle avaimen erikseen.
3.4.6 Avainten hallinta
Avaintenhallinta on laajempi käsite kuin pelkkä avainten jakelu. Avain
tenhallinta sisältää mm. avainten valvonnan, jakelun, eheyden valvonnan ja toipumismenettelyt [Sherwoodl986],
Erityisesti avaintenhallinnalla tarkoitetaan eritasoisten avainten käsitte
lyä. Esimerkiksi osapuolet voivat neuvotella jokaista yhteyttä varten oman istuntoavaimen (session key). Jokaisella transaktiolla voi olla myös oma transaktioavain (transaction key).
Avaintenhallinta voi olla esimerkiksi kaksi- tai kolmetasoinen. Kaksita
soisessa mallissa jaetaan manuaalisesti ylimmän tason avain, jonka avulla vaihdetaan automaattisesti alemman tason avaimia. Kolmetasoisessa mal
lissa näiden välissä on vielä yksi automaattisesti jaettava taso.
Avainten hallintaan liittyvä standardi on mm. X9.17 ([ANSI X9.17], [Sher- wood!986]). Tässä avainten automaattinen jakelu hoidetaan DES-algoritmil- la. Esimerkkinä avainten hallinnasta tullaan käsittelemään Kerberos-jär
jestelmän alkutunnistusta istuntoavaimen vaihtamisella.
Avainten hallintaan liittyy myös tAresAoZd-menetelmän käyttäminen avai
men varastoimiseen [Shamirl979], [Denningl982]. Avaimen muodostami
seen tarvittava tieto jaetaan useille osapuolille (tässä tapauksessa tavallisesti ihmisille). Kukaan osapuolista ei voi yksin päätellä avainta. Kun tietty määrä osia on koossa, voidaan muodostaa täydellinen avain - muutamien avaimen osien hukkuminen ei haittaa kokoamista.
3.4.7 Kerberos-jäijestelmä
Kerberos on MIT:ssä toteutettu tunnistuspalvelija. Prototyyppi on toiminut vuodesta 1986 lähtien.
62
Kerberos on tarkoitettu ison työasemaverkon tunnistuspalvelijaksi. Käyttäjät kirjoittautuvat työasemaan ja pääsevät Kerberoksen avulla käyttämään kes
kitetyissä palvelukoneissa olevia palveluja, mm. kotihakemistojaan. Ver
kon oletetaan käyttävän TCP/IP-protokollaa.
Työasema on Kerberos-järjestelmässä erikoisasemassa. Siihen ei voi kir
joittautua verkon ylitse. Turvallisuussyistä työasemassa on vain yksi käyt
täjä kerrallaan.
Tiedot Kerberoksesta perustuvat järjestelmän dokumentaatioon [Steiner1988], [Neumanl988], [Bryantl988], [Bryantl988b], [Millerl987], [Kerberos 1987]. Do
kumentaatio on vapaasti saatavissa MIT:n Athena-projektin jakelutietoko- neesta athena-dist Internet-verkkoa pitkin. Uusin ja yksityiskohtaisin ra
portti Kerberos-protokollasta on Kerberoksen RFC-standardiehdotus [Kerbe- rosl989].
Kerberos-protokollassa on tavallisen tunnistusprotokollan lisäksi mm.
avaintenhallintaominaisuuksia. Ennen siihen tutustumista on hyvä tuntea ainakin jonkun tavallisen tunnistusprotokollan perusteet Güte A).
Käyttäjän Idijoittautnminen työasemaan
Käyttäjä kirjoittautuu työasemaan käyttäjätunnuksellaan. Työasema välit
tää sen suoraan Kerberokselle, joka vastaa istuntoavaimella ja pääsylipulla (ticket) pääsylippujenjakelukeskukseen (ticket granting service). Viesti on salattu siten, että se aukeaa vain käyttäjän salasanasta saatavalla avaimel
la. Käyttäjältä kysytään salasanaa vasta, kun Kerberos on antanut pääsyli
pun.
Käyttäjän salasana salataan välittömästi yksisuuntaisella salausfunktiolla,
Käyttäjän salasana salataan välittömästi yksisuuntaisella salausfunktiolla,