TTKK / Tietoliikenne / J.Koskinen : Tietoturvallisuuden perusteet
1. viikko, ma 30.8.1999
Aluksi esitellään kurssin tavoite, järjestelyt ja sisältö asiaa koskevan webbisivun pohjalta. Tämän kerran aiheena on johdatus
tietoturvaan: Muutaman määritelmän pohjalta kaivetaan esille kuulijoiden
kokemuksia ja näkemyksiä tietoturvaongelmista ja suojakeinoista, kirjataan niitä
ja keskustellaan niistä yrittäen jäsentää kenttää. Viimeisellä viikolla käydään
läpi muutaman standardin pohjalta koko kenttä kertauksen ja täydentävän
yhteenvedon merkeissä, mutta standardeja näkyy hieman jo tällä kerralla.
Tietojenkäsittelyn uskottavuudesta yleisesti
Näiden ajatusten lähteenä on artikkeli Shawn Tseng, B.J. Fogg: Credibility and
Computing Technology, Communications of the ACM, Vol. 42, No. 5 May, 1999,
39-44.
On sellaista tietojenkäsittelyä, jossa ihminen ei yleensä paljon välitä
uskottavuudesta:
- käyttäjä ei edes tiedosta tietokoneen läsnäoloa (sulautettu järjestelmä
kuten auton polttoaineen ruiskutus);
- käyttäjä ei huomaa mahdollisuutta, että kone olisi epäluotettava
(esim. taskulaskin);
- vuorovaikutus on käyttäjälle merkityksetöntä (esim. surffailu);
- kone on vain välityslaite (esim. videokonferenssi, jossa voi toki olla
muita laadullisia puutteita, mutta tietoa ei ole tarpeen epäillä, ainakaan
koneen takia).
Sellaista ihmisen ja tietokoneen vuorovaikutusta, jossa uskottavuudella voi olla
keskeinenkin merkitys, voidaan erottaa seitsemänlaatuista. Tällöin kone
- on tietovarastona (staattisesta tietokannasta tms., tai dynaamisesti
laskennan perusteella, ... vrt. myös luentosalin varausjärjestelmä!!)
- ohjaa tai opettaa käyttäjää (asiantuntijajärjestelmät, online-help,
asennusohjelman "defaultit", ...)
- raportoi mittauksista (oskilloskooppi, verenpaine, GPS, ...)
- raportoi omasta toiminnastaan (ohjelman asennus, virustarkistus, tiedoston
siirto, ...)
- raportoi omasta tilastaan (levytila, prosessorin kuorma, akun kesto, ...)
- simuloi (prosesseja, liikettä, ...)
- luo virtuaaliympäristöjä.
Tässä jaottelussa ei kunnolla oteta huomioon sitä, että koneet kyllä välittävät
käyttäjiltä toisille sellaistakin tietoa, josta on syytä olla huolissaan monella
tavalla: onko saatu tieto oikeaa, meneekö tieto, esim. sähköposti, perille ja vain
tarkoitettuun paikkaan, säilyykö se muuttumattomana. Kahdeksanneksi kohdaksi
pitäisi siis lisätä koneen hoitama tietoliikenne.
Turvallisuus
Yritysturvallisuuden neuvottelukunta jaottelee turvallisuusaiheen
ja erityisesti tietoturvan seuraavasti:
- Turvallisuusjohtaminen
- Tuotannon ja toiminnan turvallisuus
- Työsuojelu
- Ympäristönsuojelu
- Pelastustoiminta
- Valmiussuunnittelu (contingency plan; tässä on kyse varautumisesta toiminnan
mahdolliseen jatkamiseen poikkeusoloissa, jollaisia on erilaajuisia sähkökatkoista
luonnonkatastrofeihin)
- Tietoturvallisuus (lista on sama kuin valtioneuvoston
Internetin käyttö- ja tietoturvallisuussuosituksessa (3.12.1998)
paitsi että suosituksessa ei mainita kahta viimeistä kohtaa):
- hallinnollinen turvallisuus
- fyysinen turvallisuus
- tietoaineistoturvallisuus
- käyttöturvallisuus
- ohjelmistoturvallisuus
- henkilöstöturvallisuus
- tietoliikenneturvallisuus: puhelin, telefaksi, data, sähköposti, internet
- laitteistoturvallisuus
- henkilön yksityiselämän suoja
- salassapitosopimukset
- Henkilöturvallisuus
- Kiinteistö- ja toimitilaturvallisuus
- Ulkomaantoimintojen turvallisuus
- Rikosturvallisuus
Harjoitus: Keksi jokaiseen kohtaan jokin uhka, jolta pitäisi suojautua, ja jokin
keino, jota tällaisen uhkan varalta käytetään. Jatketaan tietoturvauhkien
pohdiskelua ja luokittelua vielä myöhemmin, mutta luokittele jokainen keksimäsi
keino johonkin seuraavista luokista:
- Välttäminen (avoidance)
- Pelottaminen (deterrence)
- Estäminen (prevention)
- Havaitseminen (detection)
- Toipuminen (recovery)
- Korjaaminen (correction)
Luokittele lisäksi tietoturvallisuutta edistävät keinot seuraavasti:
- laitteistollinen
- informaatiollinen
- hallinnollinen
Tietoturvallisuus
Tietoturvallisuus määritellään em. valtioneuvoston
suosituksessa seuraavasti:
Tietoturvallisuudella tarkoitetaan tietojen, järjestelmien ja palveluiden
asianmukaista suojaamista sekä normaali- että poikkeusoloissa hallinnollisilla,
teknisillä ja muilla toimenpiteillä. Tietojen luottamuksellisuutta, eheyttä ja
käytettävyyttä turvataan laitteisto- ja ohjelmistovikojen, luonnontapahtumien sekä
tahallisten, tuottamuksellisten tai tapaturmaisten tekojen aiheuttamilta uhilta ja
vahingoilta. Tietoturvallisuuden keskeisillä käsitteillä tarkoitetaan
seuraavaa:
Luottamuksellisuus; tiedot ja järjestelmät ovat vain niiden käyttöön oikeutettujen
käytettävissä. Tietoja ei paljasteta sivullisille eikä heille anneta
mahdollisuutta muuttaa tai tuhota tietoja.
Eheys; tiedot ja järjestelmät ovat luotettavia, oikeellisia ja ajantasaisia,
eivätkä ne ole hallitsemattomasti muuttuneet tai muutettavissa laitteisto- tai
ohjelmistovikojen, luonnontapahtumien tai inhimillisen toiminnan seurauksena.
Käytettävyys; järjestelmien tiedot ja palvelut ovat niihin oikeutettujen
käytettävissä etukäteen määritellyn vasteajan puitteissa. Tiedot eivät ole
tuhoutuneet tai tuhottavissa vikojen, tapahtumien tai muun toiminnan
seurauksena.
Muita yleisiä tietoturvallisuuteen kuuluvia vaatimuksia ovat autentikointi ja
kiistämättömyys, jotka ovat erityisen tärkeitä silloin, kun järjestelmän käyttäjät
täytyy pystyä tunnistamaan (esim. vuorovaikutteiset sähköiset asiointipalvelut tai
järjestelmien etäkäyttö). Autentikointi tarkoittaa osapuolten (henkilö tai
järjestelmä) luotettavaa tunnistamista. Kiistämättömyys tarkoittaa tapahtuneen
todistamista jälkeenpäin, jolloin tavoitteena on juridinen sitovuus.
Kiistämättömyys varmistaa sen, ettei toinen osapuoli voi kieltää toimintaansa
jälkeenpäin.
Perustavoitteiden eli luottamuksellisuuden, eheyden ja käytettävyyden
englanninkieliset vastineet ovat confidentiality, integrity ja availability ja
näiden alkukirjaimista muodostuu suosittu muistisääntö. Kiistämättömyys on
englanniksi nonrepudiation. Termin authentication suoran väännöksen
"autentikointi" rinnakkaismuotona esiintyy usein "autentisointi", jonka
taustana lienee sana "autenttisuus".
Painotuksia ja käsitteiden rajauksia on erilaisia. Mainitaan tästä kaksi
esimerkkiä.
- Eheyttä voidaan pitää autenttisuuden osana: jos bitit ovat autenttisia eli
niiden alkuperä on varmuudella oikea, niin silloin ne ovat myös eheitä eli
samanlaisia kuin ne alunperinkin olivat. Bitit voivat olla kuitenkin oikeat,
vaikka ne tulisivat jostain epämääräisestä lähteestä (esim. veikkaustulokset
löytämälläsi paperilapulla). Tällaisen eheyden käytännön merkitys voidaan tosin
asettaa kyseenalaiseksi. Toisaalta autenttisuuden tarjoama eheyskään ei koske
tiedon suhdetta todellisuuteen vaan ainoastaan sitä, että tieto on alkuperäisen
laatijansa/lähettäjänsä tarkoittamaa.
- Turvallisuus (security) kaiken kaikkiaan voidaan ajatella osaksi
luotettavuutta (dependability). Muina osina turvallisuuden rinnalla ovat sellaiset
käsitteet kuin availability, reliability ja safety. Tämän mukaisen turvallisuuden
osa-alueina ovat sitten vain luottamuksellisuus ja eheys. Todettakoon että
laajasti ymmärretty turvallisuuden käsite ottaa mukaan paitsi "availabiliteetin",
myös "reliabiliteetin" ja "safety"-käsitteen. Edelliset kaksi sisältyvät
oikeastaan käytettävyyteen ja safety puolestaan tuo lisää sen, ettei systeemi
kaatuessaankaan aiheuta vahinkoa ("fail-safe"-ajatus).
Harjoitus: Eheyskäsite voidaan myös jakaa kahteen osaan: "data integrity" ja
"system integrity". Jälkimmäinen määritellään vaatimuksella että systeemi
"performs its function in an unimpaired manner, free from deliberate or
inadvertent unauthorized manipulation of the system". Mitä tämä on suomeksi ja
onko se mahdollisesti laajempi kuin edellä esitelty eheyden käsite?
Tietoturvatavoitteiden saavuttaminen edellyttää myös jonkinlaista
vakuuttumista siitä, että ne saavutetaan.
Erityisesti pitää siis voida vakuuttua tiedon oikeellisuudesta ja siitä ettei se
ole päässyt asiattomien käsiin ja että se on saatavissa kun sitä tarvitaan.
Tämä voi perustua paitsi hyväuskoisuuteen myös siihen, että tiedot ovat
tarkistettavissa ja tietojärjestelmän rakenne ja toiminta arvioitavissa.
Tämä tulee esille tietoturvan evaluoinnin yhteydessä.
Alussa puhuttiin uskottavuudesta. Viitteenä ollut artikkeli luokittelee ihmisen
tietokonetta kohtaan tunteman uskottavuuden erilaiset lähteet näin:
- oletettu;
- maineeseen perustuva;
- pinnallinen (päällisin puolin tehtyihin havaintoihin perustuva);
- koettu.
Edellä mainittu "hyväuskoisuus" kattaa oikeastaan kolme ensimmäistä kohtaa. Koettu
uskottavuuskin perustuu omaan kokemukseen eikä se tämän kurssin jälkeen
toivottavasti riitä vakuuttamaan ketään siitä, että esim. oma sähköposti on
kulkenut turvallisesti Internetissä.
Tietoturvan rakennusprosessi
Tietoturvan Common
Criteria-standardi esittää (Part 1, sivu 13) havainnollisen kaavion
tietoturvan peruskäsitteistä ja niiden suhteista. Epälineaarisen kaavion voi
tiivistää vaikkapa seuraaviin lauseisiin "Owners impose
countermeasures to reduce risk to assets" ja Threat
agents give rise to threats that exploit vulnerabilities leading
to risk to assets. Nämä käsitteet esiintyvät seuraavassa.
Myöhemmin asiaa katsotaan tarkemmin, mutta tässä vaiheessa on jo hyvä oivaltaa,
että jonkin järjestelmän suojaaminen tietoturvauhkilta tapahtuu useassa vaiheessa,
esimerkiksi seuraavasti:
0 Ota selvää, mikä on arvokasta ja suojeltavaa (assets).
1 Tunnista uhkat, haavoittuvuudet, hyökkäykset.
2 Arvioi riskit. Jos ne ovat tarpeeksi alhaiset,
lopeta ja palaa aiheeseen uudelleen sopivan ajan kuluttua
3 Aseta haavoittuvuudet tärkeysjärjestykseen.
4 Valitse ja asenna suojatoimet, palaa kohtaan 1.
Kaikessa pitää ottaa huomioon kustannukset.
Niitä kasvattavat aiheettomasti sekä kovin tiukat turvatoimet että niiden puute.
Jostain välimaastosta pitää löytää kompromissi, mutta on epätodennäköistä, että
optimoinnille voi koskaan olla tarkkaa numeerista perustaa.
Vaiheissa 0-3 täytyy tuntea oma järjestelmä, mutta vaiheessa 4 täytyy olla paljon
tietoa turvamekanismeista. Tämän kurssin tavoitteena on kertoa joistakin
sellaisista ja tarjota viitteitä muihin. Vaikka monet mekanismeista ovat
periaatteessa yksinkertaisia, haasteena on näiden mekanismien moninaisuus,
erityisyys ja yksityiskohtaisuus ja silti tietty epävarmuus, varsinkin kun useita
mekanismeja yhdistellään.
Millaisia tietoturvamekanismeja sitten on olemassa
Edellä on tullut esille lukuisia toivottavia asioita kuten eheys tai
kiistämättömyys. Mitä näiden hyväksi voidaan yleisesti ottaen tehdä?
Seuraava jaottelu on mukaeltu ja täydennetty kirjassa Handbook of Applied
Cryptography esitetystä tietoturvatavoitteiden luettelosta. Useat mekanismit
voidaankin nähdä palveluina, jotka toteuttavat tavoitteita melko suoraan.
- salakirjoituksella voidaan saavuttaa luottamuksellisuus: tieto tulee
vain siihen oikeutettujen nähtäväksi. Samalla voidaan yleensä saavuttaa myös
eheys.
- tarkistussummaa (yleisemmin: tiivistefunktiota)
voidaan käyttää eheyden toteamiseen: jos summa on oikea (eikä sitä ole peukaloitu)
niin tieto on alkuperäisessä muodossaan. Tällä voidaan tarkastaa myös ohjelmakoodin
puhtautta viruksista.
- allekirjoitus: tiedon (myös digitaalisen) kytkeminen olioon
mahdollistaa viestin autentikoinnin eli varmistumisen viestin
lähde-/lähettäjäoliosta.
- nimettömyys (anonymiteetti): asiointi voi toteutua ilman yksilöintiä
- tunnistus (identification): kuka tai mikä olio väittää olevansa
- olion autentikointi: varmistuminen siitä, kenestä tai mistä oliosta on kyse.
- pääsynvalvonta: vain tietyille olioille annetaan oikeudet tiettyihin
resursseihin.
- erottelumekanismit, joilla pääsynvalvonta toteutetaan.
- kirjanpito tapahtumista (auditointi) ja sen perusteella tunkeutumisen
havaitseminen.
- oikeutus, auktorisointi: (jonkun myöntämä) lupa tehdä jotakin tai olla
jokin.
- omistusoikeus: ominaisuus, joka antaa oikeutuksen käyttää jotakin
resurssia tai siirtää kyseinen oikeutus jollekulle muulle.
- valtuutus, delegointi: lupa tehdä jotain jonkun toisen puolesta.
- validointi: kelpuutus, jolla oikeutus todetaan voimassaolevaksi
- varmentaminen (certification): luotettu (yleensä "kolmas") osapuoli
todistaa (vaikkapa henkilökortin tai tutkinnon) yleensä allekirjoituksellaan
- aikaleimaus: osoittaa milloin tieto (viimeistään) on syntynyt.
- todistaminen (witnessing): tiedon olemassaolon tai syntymisen
todentaminen jonkun muun kuin tuottajan toimesta.
- kuittaus: ilmoitus tiedon vastaanottamisesta
- konfirmointi: ilmoitus palvelun vastaanottamisesta
- kiistämättömyys: ominaisuus, joka tekee oliolle mahdottomaksi kiistää jokin
sen lähettämä viesti tai suorittama toimenpide.
- peruutus (revocation): koskee esim. avainta (tai sellaisen
varmennetta) tai jotain oikeutta.
- tietoliikennemekanismit:
perinteisenä menetelmänä virheenkorjaavat koodit; satunnainen
"tyhjäkäyntiliikenne", pakettien yhdenmukaistaminen jne.
- toipumismekanismit: perusmenetelmänä redundanssi ("kahdennus") eli
varmuuskopiot ja vaihtoehtoiset laitteet ja reitit, erikoisempana kryptograafinen
tiedon paloittelu.