Oheismuistojen tietoturva
Tämän luennon voisi esittää tietoturvan perusteiden kurssilla johdantona erilaisiin tietoturvamekanismeihin, joita jatkossa käsiteltäisiin tarkemmin. Toisaalta, hieman yksityiskohtaisemmassa muodossa tämän luennon voisi esittää sovellusesimerkkinä siinä vaiheessa, kun nämä mekanismit on jo esitelty. Luennon aihe edustaa paitsi opetustarkoitusta samalla myös äsken mainitun lokakuussa päättyneen kurssin jälkeen harrastamaani pohdiskelua, jota rohkenen kyllä kutsua tutkimukseksikin.
Aluksi esittelen oheismuistojen eli jossain määrin
uudenlaisen langattoman tietoverkkosovelluksen ideaa sen verran, että
voimme nähdä, millaisia tietoturvaongelmia siinä on. Kun
päällimmäiset tietoturvauhkat ja niihin liittyvät
tavoitteet
on aseteltu yleisiin kehyksiin, katsotaan mitä asian hyväksi
voitaisiin tehdä (tietoturvamekanismeja). Lopussa jätän
sitten auki joitain ongelmia, joihin voitaisiin palata vaikkapa
jatkokurssilla, jos niihin siihen mennessä on löytynyt ratkaisuja.
Jotta tällainen taltiointi olisi järkevää, tarvitaan tietenkin jokin vaivaton menetelmä, jolla yksilö voi palauttaa haluamansa muistot mieleensä. Tällaisia voivat olla tietokantaohjelmistot, assosiatiivisen muistin tai tekoälyn tekniikat tai vaikkapa Ted Nelsonin kehittämä uudenlainen tietorakenne ZigZag. Palautusmenetelmä ja sen vaatima säilön talletusrakenne on oma tutkimusalansa, jonka tavallaan pani alulle Vannevar Bush Memex-kaavailuillaan vuonna 1945 (Memory Extender). Nyt joudumme vain kuvittelemaan, että on jokin säilö ja sitä käyttää jonkinlainen käyttöliittymä, eli oheismuistopalvelin.
Jotta yksilö voisi kätevästi olla yhteydessä muistoihinsa milloin ja missä vain, hänet pitää vapauttaa koneensa ääreltä antamalla hänelle jonkinlainen kannettava tai puettava laite, johon hänellä on jokin edistyksellinen käyttöliittymä, joka varmaankin sisältää ainakin puheentunnistimen ja -tuottimen. Tämän laitteen pitää olla langattomasti yhteydessä johonkin tietoverkkoon, nykykäytännössä Internettiin, joskin välissä voi olla vaikkapa GSM-puhelinverkon osia. Muistopalvelin on kiinni verkon toisessa reunassa. Emme ota kantaa siihen, voivatko tämä palvelin ja siihen liittyvä säilö olla yksilön itse hallinnoimia laitteita hänen tukikohdassaan, esim. kotona. Toinen vaihtoehto olisi, että ne olisivat jonkin yrityksen tarjoamia palveluita ja yksilön hallitsema reviiri rajoittuisi häneen itseensä sekä omaan laitteeseen, silloin kun se on hänen käytössään.
Koko järjestelmän voisi tietysti jokainen rakentaa itsekin,
mutta käytännössä esiintyy varmasti vain hyvin rajallinen
määrä erilaisia muistopalveluita. Niilläkin saattaa
olla jokin yhteinen esitysmuoto, jonka avulla yksilöt voivat kertoa
toisilleen
muistamistaan asioista.
Aloitetaan nyt siis päällimmäisen kerroksen uhkien esittelyllä ja puututaan torjuntamekanismeihin vasta, kun uhkakartoitus alkaa tuntua kohtalaisen kattavalta.
Luottamuksellisuuden synonyymina käytetään usein termiä yksityisyys, mutta toisinaan yksityisyydellä tarkoitetaan vain tiettyä osa-aluetta, nimittäin anonymiteettia: yksilö ei välttämättä halua, että hänet pystytään jäljittämään: siis saataisiin selville, missä hän fyysisesti milloinkin on ollut ja mihin muihin palveluihin tai yksilöihin hän on ollut yhteydessä. Kommunikointiliikkeiden paljastuminen on tuttua jo seittiselauksesta ja sähköpostista, mutta matkaviestimen kaltaisen laitteen käyttäjä paljastaa teleoperaattorille myös fyysisen sijaintinsa suhteessa soluverkkoon.
Toinen ja vakavampi on uhka on mahdollisuus, että tiedot katoavat lopullisesti. Tämä voi tapahtua myös siten, että katoaakin vain avain, jolla bitit on satuttu turvallisuussyistä salaamaan.
Muistojen pitäisi säilyä ihmisikä. Tällainen kestävyys ei ole biteille kovin tavallista. Kaikenlaista ikävää sattuu lyhyemmälläkin aikavälillä, mutta vuosien saatossa bitit paitsi "kauhtuvat" myös muuttuvat todennäköisesti vanhanaikaisiksi laitteiden ja ohjelmistojen uudistuessa. Lisäksi säilö voi joutua fyysisen varkauden, vahingonteon tai onnettomuuden kohteeksi. Jos säilö on jonkin ulkopuolisen yksityisen yrityksen hoidossa, sille voi käydä huonosti esim. konkurssin yhteydessä. Jos se taas on yksilön omassa tukikohdassa, hänellä ei välttämättä ole varaa, tietämystä tai edes mahdollisuuttakaan hoitaa kaikkea fyysistä turvaamista riittävän hyvin. Kodissahan on muitakin toimijoita, joita ei voi pääsynvalvonnan keinoin täysin rajoittaa.
Käyttäjän oma (puettava) laitekaan ei ole immuuni tällaisille hyökkäyksille, sillä sen ohjelmistoja täytyy varmaan joskus päivittää ja jotkin muistot voivat muodostua tässä laitteessa ajettavista ohjelmista. Lisäksi laitteessa varmaan pyörii lukuisasti muitakin verkkosovelluksia. Ulkoapäin tulevat ohjelmat voivat sisältää viruksen tai muunlaista haitallista koodia, joka voi esimerkiksi sekoittaa tietoja. Haitallisen koodin ei tarvitse olla tarkoituksellisesti sellaista, vaan kuten hyvin tiedetään, ohjelmistovirheet voivat aiheuttaa paitsi koneen kaatumisen, myös havaitsematta jääviä virheitä tiedoissa, siis eheyden särkymisen.
Hieman toisenlainen eheys ja autenttisuus tulee kuvaan, jos muistoja
luovutetaan toisille tahoille. Ensinnäkin herää taas peruskysymys,
ovatko osapuolet oikeita. Toiseksi tietojen uskottavuus saattaa epäilyttää.
Tämä riippuu tietenkin käyttötarkoituksesta. Miten
saadaan bitteihin riittävän vakuuttava todistusvoima esimerkiksi
siitä, ettei kukaan pääse myöntämään
itselleen digitaalisia tutkintotodistuksia?
Tietojen tallettaminen salatussa muodossa on hieman ongelmallista, koska sisällön mukainen haku ei tällöin onnistu. Tarvitaan erillinen turvattu sisällysluettelo tai mieluummin hakemisto, josta on osoittimet salattuna talletettuihin tietoihin. Osoitettavien ja kerralla noudettavien yksiköiden pitää tällöin olla melko suuria. Yksityiskohtaisempaan etsintään voitaisiin päästä käyttämällä salauksessa ECB-moodia eli koodisanakirjaa, jolloin sama selväteksti tuottaa aina saman kryptotekstin. Tämä menetelmä on turvaton, jos salauslohko eli kerralla salattava tekstimäärä on algoritmeille tyypillinen 64 bittiä eli 8 kirjainta, mutta tilanne voi olla toinen, jos tätä moodia käytetään vain etsinnän kohteiksi valittuihin osiin ja lohkokokoa pidennetään.
Jos tiedot talletetaan salattuina, voitaneeen turvautua nykyistä pitempiin avaimiin, koska talletettaessa ei ole erityistä kiirettä ja monimutkainen etsintä puolestaan vienee oleellisesti suuremman ajan kuin salauksen purku. Kaikkea ei tarvitse salata samalla avaimella, mutta erilaisten avainten määrä on pidettävä kohtuullisena hakujen ja hallinnoinnin takia.
Salaukseen liittyy aina kysymys avainten hallinnasta. Mikäli yksilön reviirin ulkopuolella tieto esiintyy vain salattuna, ainoaksi ongelmaksi jää avainten turvallinen talletus, eräänlainen saatavuuden ja luottamuksellisuuden yhdistelmä. Hyväkään kassakaappi ei riitä ratkaisuksi vara-avaimen säilytykseen, koska siinä ongelma vain siirtyy. Yksi kryptologian tarjoama ratkaisu on soveltaa salaisuuden jakamista palasina useaan paikkaan. Se voidaan tehdä myös siten, että salaisuuden eli tässä avaimen selvittämiseksi ei tarvitse kerätä kokoon kaikkia palasia vaan jokin tietty kynnysmäärä, esim. mitkä tahansa kolme kaikkiaan viidestä. Mikään vähäisempi määrä ei sisällä mitään tietoa salaisuudesta.
Jos tietoa talletetaan ulkoiseen muistopalveluun salaamattomana, täytyy tiedonsiirtoa varten sopia avaimista. Tämä ei välttämättä tuota yleistä turvattoman kanavan ongelmaa, koska palveluun on kertaalleen kirjauduttu ja siinä yhteydessä on voitu vaihtaa avaimia autentikoidusti. Kummankin osapuolen on täytynyt tässä vaiheessa rakentaa jonkinlainen luottamus toiseen, myös siinä tapauksessa että talletus olisi salattua. Palvelun tarjoajan on saatava varmuus siitä, että se voi periä maksun ja yksilön puolestaan siitä, että hän tulevaisuudessa saa palvelun. Sopimuksen tekovaihe ja mahdollinen avaintenvaihto voidaan kyllä toteuttaa turvattoman kanavan yli, mutta silloin tarvitaan osapuolten autentikointia. Tyypillisesti tässä turvaudutaan osapuolten julkisiin avaimiin ja niiden varmenteisiin.
Julkinen avain toimii tässä ikäänkuin puoliksi vaihdettu salausavain ja varmenteen ansiosta voidaan uskoa, että julkisen avaimen yksityisen vastinkappaleen omistaa se, joka niin väittääkin. Varmenne muodostuu, kun joku kolmas yhteisesti luotettu osapuoli allekirjoittaa julkisen avaimen. Etäisempien osapuolten kanssakäyntiä varten voidaan tarvita heidän välimaastossaan toimivien viranomaisten myöntämien varmenteiden ketju. Jos löytyy tällaisia tahoja, joihin kaikki luottavat edes välillisesti, niitä voidaan käyttää myös notariointiin. Luotettu taho voi sitoa allekirjoituksellaan esimerkiksi aikaleiman tiettyihin muistoihin. Myös digitaalisia todistuksia saadaan aikaan tällä tavoin, kun luotetulle taholle esitetään aineisto, jonka perusteella se allekirjoittaa saman tiedon esityksen bittteinä.
Salausavainten vaihto vaatii siis autentikoinnin. Jatkossa viestien salauksella voidaan puolestaan saavuttaa autentikointi: Näin on, mikäli symmetrisen kryptosysteemin avain on vain viestivien osapuolten hallussa ja salauksen purku tuo näkyviin oikeanlaista redundanssia, esim. suomen kieltä. Autentikointi on keskeinen osa pääsynvalvontaa, jolla pidetään huolta ettei kukaan asiaton pääse muuttamaan talletettuja tietoja tai niiden perusteella yksilölle palautettavia muistumia. Tässä mielessä autentikointi alkaa jo siitä, että yksilö osoittaa henkilöllisyytensä puettavalle laitteelleen, esim. jollain biometrisellä menetelmällä ja laite puolestaan osoittaa käyttäjälleen olevansa aito ja ehjä.
Tiedon eheyttä voidaan varjella vahingossa tai tahallaan tehdyiltä muutoksilta tallettamalla alkuperäisestä tiedosta laskettu tiiviste- eli hash-funktion arvo turvaan erilleen tiedosta. Kaikki tarvittavat arvot mahtuvat varmasti puettavaan laitteeseenkin, sillä tiivistefunktion arvo on varsin lyhyt, esim. 160 bittiä. Vaikka erittäin monella tekstillä on sama tiivistearvo, saman arvon tuottavia on erittäin vaikea keksiä. Näin ollen talletetun tekstin voi uskoa eheäksi, jos se tuottaa saman tiivistearvon kuin ennenkin. Jos poikkeama esiintyy, tietoa on varmasti peukaloitu ja alkuperäistä täytyy etsiä varmuuskopioista.
Bittien pitkä säilytys edellyttää paitsi normaalia
varmuuskopiointia
myös ajoittaista virkistämistä eli kirjoittamista uudelleen,
uudelle välineelle tai uuteen tiedostomuotoon. Tämä on periaatteessa
yksinkertaista ja tarkoitukseen varmasti syntyy asianmukaiset palvelut
tai ohjelmistot, joiden ei tarvitse tietää ovatko bitit salattuja
vai eivät. Saatavuuden osalta palveluyritys pystyy olemaan yhtä
luotettava kuin pankkikin, jossa rahat tallettuvat oleellisesti bitteinä.
Jos tämä ei riitä, yksilön oma järjestelmä
voi toteuttaa ylimääräisen varmuuskopioinnin riippumattomaan
paikkaan.
Sen lisäksi että kommunikointipalvelu eli puhelin- ja tietoverkko voidaan tällä tavoin anonymisoida, voisiko vastaavan tehdä säilöpalvelulle? Muistopalvelija säilyttäisi ja operoisi tietoja yksilöimättömien lukujen, eräänlaisten osoittimien perusteella tietäen kuitenkin, että on jo saanut niistä maksun. Mikä ongelma mahtaakaan nousta ensinnä mieleen? Päällimmäinen huoli lienee ehkä lukujen pysyminen yksilöimättöminä, kun niiden pitää kuitenkin osoittaa aina samaan tietoon? Ehkäpä yksilön oma laite siirtelee tietoja samalla kun varmistelee sen, että varmuuskopiointi tulee hoidetuksi (vrt. ohjussiilot). Toinen ongelma on saada palvelun tarjoajan tilivelvolliseksi anonyymille käyttäjälle. Tilannehan on hankalampi kuin pelkässä kommunikointipalvelussa, jossa palvelun laatu näkyy heti.
Jos anonyymi talletus voidaan jotenkin järjestää, voisiko sen tehdä ehkä jopa niin, että tiedot voisivat olla selväkielisinä mutta siten hajautettuina että niistä muodostuisi henkilökohtainen merkitys vain sellaiselle, joka osaa niitä oikein yhdistää ja mahdollisesti kytkeä joihinkin enempi yksilöiviin, mutta turvallisessa paikassa sijaitseviin tietoihin? Tällöin riittäisi salata viestintä yksilön ja säilöpalvelun välillä ja hakua ei tarvitsisi hankaloittaa ainakaan kryptauksella. Lisäksi osa tiedoista voisi olla myös julkisesti saatavilla, jolloin ihmisten yksityistenkin ideoiden ja ajatusten kirjo voisi olla entistä paremmin jaettavissa ja hyödynnettävissä. Nimellä varustetut tiedot, eli julkaisut yms., olisivat sitten erillisenä osana samaa järjestelmää. Tällaisen tietoverkossa nykyiselläänkin tarjottavan tiedon mukanaolo säilöpalvelussa voisi mahdollistaa sen, ettei toisten tarvitsisi kopioida tätä tietoa, vaan he voisivat luottaa sen pysyvyyteen - mahdollisesti suoritettuaan jonkin yksilöimättömän mikromaksun siitä.
Koska muistojärjestelmä joka tapauksessa vaatii erittäin kehittynyttä tiedonhakumenettelyä, voisi ehkä ajatella että kryptologinen salaisuuden jakamisen tekniikka voitaisiin samalla ulottaa aiempaa korkeammalle merkityksen tasolle. Yleisesti on toki niin, että tietoturva ja sitä kautta kryptologia olisi hyvä ottaa huomioon kaikessa tietojenkäsittelyssä jo suunnitteluvaiheessa. Kryptologiaa on kuitenkin hyvin vaikea nostaa turvallisella tavalla ylös puhtaiden bittien kombinatorisesta maailmasta. Tämän vuoksi muistojen oheistaminenkin tulee olemaan melkoinen haaste.