TTKK / Tietoliikenne / J.Koskinen : Tietoturvallisuuden perusteet
5. viikko, ma 27.9.1999
Kryptologia, kertaava kooste
Ensimmäinen mielleyhtymä jonkin kohteen turvaamiseksi asiattomilta lienee
useimmilla lukitseminen. Sitä vastaa tietoturvan tapauksessa salakirjoitus.
Siinäkin käytetään salassa pidettävää avainta, jolla tieto lukitaan
käsittämättömään muotoon.
Suuri osa varsinkin perinteisestä tietoturvasta on silti toteutettavissa ilman
salakirjoitusta, mutta mitä enemmän tieto on pelkästään digitaalisessa muodossa ja
mitä enemmän sitä siirretään tietokoneiden välillä, sitä enemmän tarvitaan
salausta ja muita kryptograafisia toimintoja. Kaikissa niissä ei käytetä lainkaan
avainta ja toisaalta on järjestelmiä, joissa yhteen suuntaan toimiva avain on
hyödyllinen vasta julkaistuna. Tällöinkin toiseen suuntaan toimivan avaimen
on pysyttävä salassa.
Sopivilla ja riittävän turvallisilla kryptograafisilla algoritmeilla ja
niitä käyttäen rakennetuilla protokollilla voidaan luoda pohja useimpien
tietoturvatavoitteiden toteuttamiselle, kunhan rakennetaan turvallinen
implementaatio ja sille puolestaan turvallinen installaatio.
Kryptograafisten primitiivien luokittelu:
- avaimettomat:
- tiivistefunktiot (hash functions; MD2, MD4, MD5, SHA, RIPE-MD). Perusidea:
jos vastaanottaja laskee viestistä tiivisteen ja saa saman kuin lähettäjä
uskottavasti väittää, niin viestiä ei ole matkalla muutettu.
- (Yksisuuntaiset funktiot, jotka voivat olla bijektioita, mutta joita ei
pystytä kääntämään, eli ei ole salaluukkua. Näitä ei ole käsitelty tällä
kurssilla.)
- satunnaisjonot, eli aidot satunnaisluvut, joita ei pysty ennustamaan
edellisten perusteella (käytännössä taustalla oltava jokin fysikaalinen
ilmiö).
- symmetrinen avain eli molempiin suuntiin sama :
- symmetrisen avaimen salaus: lohkosalaus (block cipher, jota sovelletaan
erilaisissa moodeissa; DES, IDEA, Skipjack, RC2, RC5, tuleva AES) ja vuosalaus
(stream cipher; A5, RC4, SEAL, unixin crypt),
- avaimelliset tiivistefunktiot (MAC:t eli message authentication codes):
edellä mainitun eheyden lisäksi tässä vakuututaan myös viestin lähteen
autenttisuudesta.
- allekirjoitus (joka ei tosin takaa kiistämättömyyttä),
- näennäissatunnaisjonot (pseudorandom sequences). Avaimena on siemenluku,
jota ei saa paljastaa, mutta sitä ei tarvitse myöskään tallettaa.
- yksilöintiprimitiivit (salasanatyyppiset, myös kertasalasanat).
- epäsymmetrinen, julkinen avain (oikeastaan julkisen avaimen ja salaisen
avaimen muodostama pari):
- salaus julkisella avaimella (yksisuuntaisen funktion laskeminen),
purkaminen 1-suuntaisen funktion salaluukkua käyttäen eli vastaavalla salaisella
avaimella, vain RSA on kommutatiivinen, muita: Rabin, ElGamal, McEliece,
elliptisten käyrien kryptosysteemit);
- allekirjoitus salaisella avaimella (yleensä vain tiiviste), todentaminen
julkisella (vastaavat kuin edellä, mutta vain RSA toimii sellaisenaan) ;
- yksilöintiprimitiivit (haaste-vastetyyppiset, erityisesti
nolla-tietotodistus).
Symmetrisen salauksen edellä on hyvä suorittaa kompressio, joka vähentää
selvätekstin redundanssia eli toisteisuutta.
Murtaminen ja algoritmien turvallisuus
Hyökkäystä kryptoalgoritmia vastaan sanotaan kryptoanalyysiksi tai murtamiseksi.
Algoritmien turvallisuus eli "murtolujuus" on asia, johon ei maallikon eikä edes
tietoturvainsinöörin tarvitse puuttua kovin syvälle. Syynä on yksinkertaisesti se,
että asiaan perehtynyt tutkijakaan ei voi yksinään saada yleensä muuta
konkreettista tulosta kuin jonkin systeemin murtamisen. Kryptosysteemin
osoittautuminen murtovarmaksi edellyttää pitkäjänteistä tieteellistä tutkimusta,
jossa useat tutkijat eri tahoilla koettelevat algoritmia, ja mahdollisesti
kehittelevät sitä parametrien valinnan suhteen. Silloinkin algoritmi tosiaan vain
osoittautuu kestäväksi eli tyypillisesti siinä on sellaisia rakenteita ja
ominaisuuksia, jotka oleellisesti vaikeuttavat kaikkia tunnettuja
analyysimenetelmiä. Varsinaista todistusta turvallisuudesta ei voi antaa, ellei
kaikkia mahdollisia hyökkäyksiä pystytä mallintamaan.
Esimerkiksi DES-algoritmia voidaan nykyään pitää heikkona, koska sen avain on vain
56-bittinen. Algoritmia sinänsä voi pitää onnistuneena, koska sitä on tutkittu
"menestyksettä" erittäin laajasti alusta, eli 70-luvun puolivälistä asti.
Edellä sanotusta huolimatta ja toisaalta juuri sen vuoksi kryptoalgoritmin
käyttäjän on syytä tuntea hyvin käsitteistö sekä algoritmien ja hyökkäysten
perusluonne, jotta hän voi suhteuttaa käytäntöön algoritmien turvallisuutta
koskevat tutkimustulokset - samoinkuin markkinahenkilöiden vakuuttelut tarjolla
olevien menetelmien koetellusta turvallisuudesta.
Joka tapauksessa käytännön algoritmeissa, kerta-avaimen käyttöä lukuunottamatta,
turvaudutaan laskennalliseen turvallisuuteen, mikä tarkoittaa sitä että
järjestelmän murtaminen tehdään hyvin työlääksi, mutta ei kuitenkaan
mahdottomaksi.
Yksi tärkeä luokitus on sen mukaan, millaisin oletuksin algoritmit tarjoavat
laskennallista turvallisuutta, eli kuinka voimakkaan vastustajan ne kestävät.
Lähtökohtana on, että vastustaja tuntee algoritmin ja hänellä on salatekstiä,
jonka hän haluaisi purkaa. Vastustajan voimakkuutta kuvaa se, mitä muuta hän
tietää:
- vain salateksti
- tunnettu selväteksi: edellisen lisäksi vastustajalla on
selväteksti-salateksti pareja (samalla avaimella salattuja kuin
purettavakin teksti).
- valittu selväteksti: vastustaja saa haltuunsa em. pareja joissa hän
on voinut valita selvätekstin: hän on siis jotenkin pystynyt syöttämään
salausalgoritmin läpi haluamiaan selvätekstejä vaikka ei tunnekaan
avainta. Voimakkaammassa (ns. adaptiivisessa) versiossa hän pystyy
aiempien tulosten perusteella valitsemaan uusia selvätekstejä.
- valittu salateksti: kuten kohdassa 2, mutta vastustaja voikin valita
salatekstin. Tehtäväksi tyypillisesti muodostuukin avaimen ratkaiseminen.
Tilanne liittyy lähinnä julkisen avaimen systeemeihin.
- valittu teksti: edelliset kohdat yhdessä.
Julkisen avaimen systeemin murtamista voi tietenkin yrittää paljon ennen kuin
yhtään salatekstiä on purettavana, mutta kohdan 4 tilanteesta on tässä apua.
Krypto"sosiologiaa"
Monissa maissa kryptologian käyttö ei ole itsestään selvää, vaan sitä rajoitetaan
lainsäädännöllä, esimerkkinä Ranska.
Yksi keskeinen käsite rajoitettaessa kryptosysteemejä on key escrow, joka
tarkoittaa eräänlaista avainten pakkoluovutusta.
Sanasto
suomentaa tämän yleis- tai vara-avainjärjestelmäksi. Sen mukaan kyseessä on:
"Viranomaisille jätettävä mahdollisuus tarvittaessa esim. oikeuden päätöksellä
saada haltuunsa käyttäjän salakirjoittamiseen käyttämä salainen avain ja tulkita
tämän tuottama salakirjoitus (”valtiohakkerismi”). Tämä edellyttää salaisten
avainten tallettamista jonkun luotetun osapuolen haltuun, josta esimerkiksi
poliisi voi sen tarkoin määritellyissä tilanteissa saada käyttöönsä. Esitys on
syntynyt USA:ssa ja sitä on perusteltu mm. tarpeella kuunnella vakavista
rikoksista epäiltyjen puhelinkeskusteluja. Euroopassa ainakin Ranska pyrkii
samaan ratkaisuun.
Pohjoismaissa Key escrow -periaate ei ole saavuttanut kovin laajaa hyväksyntää
perusteluna mm. se, että tarvittava salakirjoitustekniikka joka tapauksessa on
saatavilla ja sen avulla periaatteessa kuka tahansa voi toteuttaa virallisen
valvonnan ulkopuolella oman vahvan salakirjoitusjärjestelmänsä.
Suomessa viranomaisilla eikä siten muillakaan ole yleistä salauksen
tulkintamahdollisuutta eli ei ole ”salakuunelumahdollisuutta” algoritmien
ratkaisemattoman elinkaaren aikana. Salaisista avaimista ei näin ollen
pääsääntöisesti jää kopioita minkään ulkopuolisen tahon haltuun.
Tästä pääsäännöstä saattaa olla kuitenkin tarvetta poiketa esim.
organisaatiokohtaisesti rooliin liittyvän identiteetin kohdalla tai
elvytyspalveluiden mahdollistajana."
LUE:
Tiveken sivuilla on esitelty toteutusta.
Patentit.
Yksi rajoitus salausteknologian käytölle muodostuu tietysti patenteista,
jotka estävät myös algoritmien vapaata käyttöä. USA:n patentit ovat voimassa 20
vuotta hakemuksen jättämisestä ja 17 vuotta myöntämisestä. Niitä myönnetään
löyhemmin perustein kuin Euroopassa, vrt. kriittinen tutkielma.
Esimerkiksi RSA on patentoitu USA:ssa vuonna 1983, mikä merkitsee että vuoden 2000
syyskuuhun asti kaupallinen käyttö edellyttää lisenssimaksuja. Ei-kaupallisiin
tarkoituksiin, mutta vain USA:ssa ja Kanadassa voi sen sijaan käyttää
vapaasti saatavaa C-kielistä RSAREF-kirjastoa.
Vapauksista. Mitä sitten tarkoittaa vapaasti saatava?
Ohjelmistojen eritasoiseen vapauteen liittyviä käsitteitä on esitelty
GNU-sivuilla,
mm.
- Public domain = ei tekijänoikeuksien sitoma (mutta voi muuttua
sellaiseksi muuntelun seurauksena).
- Shareware: saa kopioida ja koekäyttää mutta käytön jatkaminen edellyttää
lisenssimaksua.
Käsitteiden päällekkäisyyksiä ja sisäkkäisyyksiä kuvataan kaaviolla.
Todelliseen "free software"-aatteeseen liittyvä
(GNU)-käsite on
"copyleft" eli "kopiovasemmuus", joka tyypillisesti toteutetaan
GPL-lisenssillä (General Public License). Keskeistä siinä on, ettei kopioinnin,
myynnin eikä edes muuntelun yhteydessä saa rajoittaa muiden oikeuksia.
Vientirajoituksista:
Monissa maissa kryptologia rinnastetaan aseteknologiaan ja siitä aiheutuu
salaustuotteita koskevia vientirajoituksia. Pelkästään allekirjoitukseen tai
eheyden todistamiseen sopivilla tuotteilla on lievempi kohtelu.
Tunnetuin rajoitus koskee yhdysvaltalaista teknologiaa: USAsta
ei saa viedä salausjärjestelmiä, jotka käyttävät yli 40 bitin mittaista
symmetristä avainta tai yli 512 bitin mittaista julkista avainta. Jos
yhdysvaltalainen yritys haluaisi vientilisenssin vaikkapa DES:iin, jossa avain on
56-bittinen, sen pitää sitoutua luomaan key escrow-järjestelmä. Jos taas tällainen
järjestelmä on valmiina, rajoituksia avaimen pituuden suhteen ei aseteta.
Tietosuoja
Dorothy Denning esittelee kirjassaan Information Warfare and Security, miten
helppoa on ihmisten henkilökohtaisten tietojen urkkiminen avoimista lähteistä.
Kirjasta löytyy mm. seuraava lainaus Carol Lanelta: "Muutamassa tunnissa
tietokoneeni äärellä istuen, aloittaen nimestäsi ja osoitteestasi, voin saada
selville, mitä teet elääksesi, puolisosi ja lastesi nimet ja iät, millainen auto
sinulla on, talosi arvon, ja paljonko maksat siitä veroa ... Voin myös löytää sen
unohdetun collegen aikaisen huumejutun." Lanen Ensimmäinen Informaatiolaki on
seuraava: "Jos tieto on yhdessä paikassa, niin se on jossain muuallakin" ja tällä
on korollaari: "Jos tieto on missä tahansa ja miten hyvin suojattuna tahansa, se
on myös jossain muualla, jossa lähes kuka tahansa voi päästä siihen käsiksi."
Harjoitus: Miten hyvin edellä sanottu pätee Suomeen ja millaisia tietolähteitä
voidaan käyttää hyväksi?
Seittiselaus jättää seuraavanlaisia jälkiä palvelimeen, josta jotain dokumenttia
on haettu:
- käyttäjän koneen IP-osoite;
- selaimen tyyppi;
- haettu sivu;
- aika jolloin haku on tehty.
Vaikka Internet-osoite ei yksilöikään käyttäjää, sen avulla voidaan toisinaan
päästä varsin lähelle.
Jotkin www-palvelut edellyttävät käyttäjiltä rekisteröitymistä. Tällaisissa
tapauksissa pitäisi käyttäjille tehdä selväksi, millaisiin tarkoituksiin heidän
antamiaan tietoja voidaan käyttää. Tätä ei suurin osa palveluista tee. Lisäksi
lapsilta ei saisi kysellä henkilökohtaisia ilman, että heitä kehotetaan pyytämään
vanhemmilta lupa. Vielä parempi olisi, jos palvelu kertoisi tiedot myös
vanhemmille (ja varoittaisi tästä tietenkin etukäteen).
Yleinen ero Yhdysvaltain ja Euroopan välillä on se, että täällä pitää yleensä olla
aktiivinen, jos haluaa listoille ("opt-in") ja USA:ssa pitää erikseen ilmoittaa,
jos ei halua ("opt-out").
"Cookie" eli pipari on tietue, jollaisen tietyt palvelut lähettävät
selaimelle ja jonka selain tallettaa muiden vastaavien jatkoksi. Seuraavalla
kerralla palvelin saa selaimelta edellisen kerran tiedon ja voi siten valita uusia
mainoksia, räätälöidä palvelua asiakkaan mieltymysten mukaan, jatkaa ostoskorin
täyttämistä tai yksinkertaistaa mahdollista kirjautumista. Selain ei annan
millekään palvelimelle tietoa muiden palvelimien pipareista eikä pipareiden kautta
pääse käsiksi selaimessa oleviin muihin tietoihin. Pipareista on tästä huolimatta
ollut paljon hälyä. Ne ovat kuitenkin vaarattomia, lukuunottamatta mahdollisesti
niitä vaaroja, joita voi koitua siitä, mitä ne tehtävänsä mukaisesti kertovat
palvelimelle (ja sen kautta ehkä sen asiakkaille!) saman käyttäjän aiemmasta
toiminnasta ja mitä ne kertovat jollekin kolmannelle taholle, esim. saman mikron
käyttäjälle, joka pääsee näkemään ne.
Seuraavantyyppisillä järjestelmillä voidaan estää palvelinta saamasta selville
lähettäjän Internet-osoitetta:
- Anonymizer-palvelu lähettää HTTP-pyynnön verkkoon käyttäjän puolesta.
- Crowds on järjestelmä, jossa käyttäjä lähettää HTTP-pyynnön palvelimelle
usean Crowds-ohjelmaa ajavan käyttäjän joukon avulla. Pyyntö forwardoidaan tämän
joukon satunnaisesti valitulle jäsenelle siten, ettei kukaan jäsenistä eikä
palvelin tiedä, mistä pyyntö tuli.
Ensimmäinen vaihekin on ikäänkuin forwardointi: sen lähettää selaimen kanssa
samassa laitteessa toimiva "jondo", jolla on tietty todennäköisyys forwardoida
palvelimelle lähettämisen sijasta. Palvelimen vastaus kulkee samaa polkua
takaperin jondolta jondolle, kunnes selain saa.
- Sipulireititys (Onion Routing) on toinen järjestelmä, jossa käyttäjän ei
tarvitse luottaa mihinkään kolmanteen osapuoleen. Siinä HTTP-pyyntö lähtee
eräänlaisena sipulina josta sipulireitittimet kuorivat eli dekryptaavat kukin
yhden kerroksen sipulissa olevan reseptin avulla. Palvelimen saadessa pyynnön
siinä näkyy vain viimeisen reitittimen IP-osoite.
Jos taas halutaan säilyttää anonymiteetti mutta silti pystyä kirjautumaan
palveluihin eri kerroilla samana yksilönä, voidaan käyttää keinonimeämistä:
- Lucent Personalized Web Assistance, LPWA, on keinonimeämispalvelu
(pseudonyymiagentti). Siinä valtuutettu palvelin (proxy) keinonimeää kauttaan
kulkevat HTTP-pyynnöt, jokaiseen kohteeseen eri nimiseksi mutta samaan kohteeseen
aina samaksi.
Toisinaan käyttäjä haluaa sellaista palvelua, jota ei voi toteuttaa ilman
yksilöintiä, esim. luottokorttiostoksen postitusosoitetta. Tällaisissa tapauksissa
on hyötyä, jos käyttäjä pystyy arvioimaan millaiseen muihin tarkoituksiin hänen
tietojaan käytetään ja voiko hän sen hyväksyä - antaako hän esim. selaimensa ottaa
vastaan piparia. Tätä tarkoitusta varten on olemassa P3P-hanke eli Platform for
Privacy Project, jolla on vastaava idea kuin viimeksi esitellyillä PICS-kylteillä,
joilla voidaan luokitella palvelun sopivuutta tietyille käyttäjille. Palvelut
voivat myös kirjautua TRUSTe-järjestelmään (tai johonkin vastaavaan) ja saada
tästä sivuilleen merkinnän (ja tulevaisuudessa myös sertifikaatin), jos ne
sitoutuvat noudattamaan ilmoittamaansa yksityisyyspolitiikkaa.
Suomen tietosuojalainsäädäntöön ja sitä selittäviin ohjeisiin voi tutustua tietosuojavaltuutetun sivuilla.
LUE: tietosuojasta TIVEKEn sivuilta:
tietoverkkoliikennöinnistä syntyvät jäljet,
cookie-tiedostot, palveluun kirjautuminen, rekisterit ja lokitiedostot.
Henkilöstö
Perinteisesti suurin osa tietorikoksista tapahtuu "sisäpuolelta" - tai esim.
entisen työntekijän toimesta.
Seuraava teksti perustuu kirjan "Terveydenhuollon tietoturvan ja tietosuojan
toteutuksen hyviä käytäntöjä" esittelysivuun. Sivulta löytyy mm.
kirjan n. 13-sivuinen (!) tiivistelmä, joka sisältää toimenpidelistoja myös muilta
tietoturvan osa-alueilta.
Henkilöstöturvallisuustoimenpiteet ulottuvat vakinaisesta ja tilapäisestä
henkilökunnasta myös vierailijoihin sekä ulkopuolelta ostettuihin paveluihin.
Henkilöiden tehtävämäärittelyissä tulee määritellä myös tietoturvaan liittyvät
oikeudet, velvollisuudet ja vastuut. Lisäksi pitää muistaa, että
- jokainen on osaltaan vastuussa tehtäviinsä liittyvästä tietoturvasta ja
siihen liittyvästä luottamuksellisuudesta, joka mainitaan jo työsopimuksessa ja
toimenkuvassa,
- uudelle työntekijälle annetaan hänen tehtäväänsä vastaavat käyttöoikeudet
sekä perehdytetään hänet toimimaan organisaation tietoturvaperiaatteiden
mukaisesti.
- toiminnan kannalta keskeiset tehtävät ja vastuut jaetaan eri henkilöille,
- tietoturvallisuusasioihin perehtyminen ja osaamisen ylläpito järjestetään,
- kriittisten tehtävien tehtäväkuvaukset dokumentoidaan niin, että joku
toinen pystyy niiden avulla suorittamaan ko. tehtävän,
- asiantuntevien varahenkilöiden määrittely ja kouluttaminen hoidetaan,
- käyttöoikeuksien määrittely toteutetaan kullekin henkilölle työtehtävien,
ei organisaatioaseman mukaan.
- tietoturvallisuushäiriöiden rekisteröinnistä, raportoinnista ja
selvittämisestä huolehditaan,
- työsuhteen päätyttyä huolehditaan, että henkilö palauttaa avaimet,
henkilötunnisteet ja henkilökortin, joka hävitetään sekä henkilön käyttöoikeudet
poistetaan.
Tässä sanotun lisäksi tietoturvallisuuteen voidaan tietysti vaikuttaa valinnoilla
jo työhönoton yhteydessä. Työntekijän tietoon liittyvät oikeudet eivät koske
ainoastaan tiedostoja vaan myös prosesseja, esim. sitä kenellä on oikeus antaa
minkäkinlaisia lausuntoja yrityksen nimissä. Oikeuksia voidaan poistaa myös muussa
yhteydessä kuin työsuhteen päättyessä tai rikkomusten seurauksena. Yleinen
vähimpien oikeuksien periaate (eli "need to know") on toimiva, kunhan oikeuksia ei
normaalin kehityksen takia tarvitse yhtenään muuttaa.
Valvontaa ja huolenpitoa. Henkilökunta (ja varsinkin vierailijat) voidaan
varustaa näkyvin henkilötunnistein, tai mahdollisesti sellaisin, jotka paikasta
toiseen siirryttäessä automaattisesti havaitsevat ja tunnistavat tulijan.
Keskuskoneiden ja konsolien äärelle on pääsy vain käyttöhenkilöstöllä ja
työasemille vain niillä jotka niitä tarvitsevat. Ainakin näihin tiloihin on syytä
järjestää kulunvalvonta, jonka perusteella voidaan tietää kuka ja milloin siellä
on käynyt! Joissakin yhteyksissä voidaan käyttää kameravalvontaakin, mutta tätä
suositellaan välttämään (ks. tietosuojavaltuutetun sivulta)
Työntekijöiden voi olla tarpeen valvoa muillakin tavoin esimerkiksi seuraamalla
heidän sähköpostiansa, tiedostojansa tai seittiselaustaan. Pääasiassa tällainen
toiminta johtuu (ehkä perustellusta ja yleisestä) epäluottamuksesta työntekijää
kohtaan, mutta merkitys voi olla laajempi. Voidaan myös tulkita niin, että
työntekijää samalla opastetaan ja patistetaan noudattamaan tietoturvapolitiikkaa.
Näin on vaikkapa sähköpostin salauksen ja tiedosto-oikeuksien asettamisen osalta.
Lisäksi vaikutuksena voi olla huolenpito: Työntekijäkin voi nimittäin joutua
hyökkäyksen kohteeksi: tätä voi olla esim. lahjonta, uhkailu, kiristys tai
"miellyttävämpi" social engineering, joilla kaikilla voi olla tavoitteena
jokin tietoon kohdistuva luvaton toimi.