Oppikerta 12, 13.4.1999
Tämän kerran aiheet:
- Kahden peruutetun seminaariesityksen sijasta on yksi,
jota tekijä suostui aikaistamaan kahdella viikolla!
- Peruutetun PGP-demonstraation tilalla PGP:n ja S/MIME:n yleinen
esittely (jälkimmäinen hyvin lyhyesti).
- SET, Secure Electronic Transactions. Lisätietoja aiheesta löytyy mm.
Luottokunnasta ja tarkemmin
mutta silti kohtalaisen nopealukuisesti myös
spesifikaatioiden kirjasta 1 (Business description)
PGP
Pretty Good Privacy, PGP on laajalti käytetty turvallisen sähköpostin
de-facto-standardi, joka on suurelta osin yhden henkilön, Phil Zimmermannin,
aikaansaannos. Kyseessä on helppokäyttöinen, parhaista kryptoalgoritmeista
(alunperin IDEA ja RSA) koostuva paketti (yksi ohjelma), jonka dokumentaatio
ja lähdekoodi ovat vapaasti saatavilla. Ohjelma pitää kytkeä olemassaolevaan
email/news-ohjelmaan.
Avainten jakelu tapahtuu "ruohonjuuritasolla": varmenneviranomaisten sijasta
luotetut esittelijät (introducers) toimivat avainten varmentajina.
Jokaisella käyttäjällä on omassa käytössään avainrengas, jossa on
- oma julkinen avain ja salasanalla (oik. tiivistetyllä salalauseella)
suojattu salainen avain (näitä voi olla useita);
- toisilta osapuolilta suoraan saatuja julkisia avaimia;
- kolmansien osapuolten julkisia avaimia, jotka on allekirjoituksellaan
varmentanut joku esittelijä, johon käyttäjä luottaa.
PGP:n algoritmeja ovat:
- allekirjoitus: SHA+DSS (tai MD5+RSA versiota 5 vanhemmissa)
- salaus: CAST-128, IDEA tai 3DES (kolmella avaimella) varsinaiseen
salaukseen sekä DH (tai RSA vanhemmissa) salausavaimen salaamiseen
(vastaanottajan julkisella avaimella) - viestin mukaan liitettäväksi
- tiivistys: ZIP, ennen (mahdollista) salausta mutta
(mahdollisen) allekirjoituksen jälkeen.
- yhteensopivuus mailerien kanssa: radix-64 -muunnos, viimeisenä ennen
lähettämistä.
Harjoitus: Diffie-Hellman on avaintenvaihtoalgoritmi, eikä sitä voi
käyttää viestin salaamiseen. Miten kuitenkin on mahdollista, että se on yllä
vaihtoehtona RSA:lle juuri salaustehtävässä?
Vastaus: Todellisuudessa DH:n tilalla on ElGamal, mutta tämä on toisaalta
lähes sama asia, vrt. oppikerta 3.
(Melko tiivistä
lisätietoa algoritmeista.)
Kryptologisesti vaativampi mutta käsitteellisesti yksinkertaisempi puoli
PGP:tä on sen varsinainen toiminta, josta seuraavassa esitellään miten
osapuolen A viesti osapuolelle B muodostetaan. Merkintöjä:
Z = ZIP = tiivistys
H = hash = yksisuuntainen tiivistys
EK = kryptaus avaimella K
|| = katenaatio
Ks = istuntoavain, joka viestille omansa. Avaimen luonnissa
käytetään näppäinpainalluksia ja niiden ajoitusta, eräänlaisena
siemenlukuna, nimittäin osana syötettä IDEA-algoritmille.
- Pelkkä autenttisuus
(olettaen että B voi luottaa A:n julkiseen avaimeen KA):
-
Z( EKA-1( H(M) ) || M )
- Pelkkä luottamuksellisuus: (olettaen että A voi luottaa B:n julkiseen
avaimeen KB):
-
EKs( Z(M) ) || EKB(Ks)
- Harjoitus: Sekä autenttisuus että luottamuksellisuus
(vastaavin oletuksin):
- EKs(
Z( EKA-1( H(M) ) || M )
)
|| EKB(Ks)
Vastaanottajan toimet viestin saavuttua ovat ilmeisiä (ensimmäisenä on
radix-64-muunnos, jota ei tässä mainittu).
Avainrenkaat
Kuten yleensäkin salaus ja allekirjoittaminen hyvillä algoritmeilla ovat
ongelmattomia, kunhan vain avaimiin, ja nimenomaan julkisiin, voidaan
luottaa. PGP ei määrittele käytäntöä, jolla luottamuksen voi rakentaa, mutta
se tarjoaa mekanismit, joilla luottamusta voidaan käyttää ja liittää
sitä julkisiin avaimiin.
Osapuolella B on avainrenkaassaan muiden tahojen julkisia avaimia ja
kullekin niistä yksi tai useampia allekirjoituksia
(sertifikaatteja) kolmansilta tahoilta.
B:n luottamus avaimeen KA ilmenee kahdessa eri
"ulottuvuudessa", joista jälkimmäinen voi esiintyä toisessakin paikassa:
- 'Key legitimacy': missä määrin B luottaa siihen, että kyseessä on A:n
julkinen avain. Kolme tasoa: ei luottamusta, marginaalinen ja täysi
luottamus; lisäksi määrittelemätön ja tuntematon.
- 'Signature trust': Jos taho C on allekirjoittanut KA:n,
tähän allekirjoitukseen liittyy tieto, missä määrin B luottaa C:n
kykyyn/rehellisyyteen (tms.) tuottaa tällaisia allekirjoituksia.
Neljä tasoa: yleensä ei luotettava, yleensä luotettava, aina luotettava,
äärimmäisen luotettava (jolloin C=B), lisäksi määrittelemätön ja tuntematon.
Jos kohdassa 2 mainitun C:n julkinen avain kuuluu B:n avainrenkaaseen, B:n
luottamus C:hen allekirjoittajana esiintyy myös tähän avaimeen liitetyssä
kentässä 'Owner trust'.
Tarkasteltavana olleen A:n avaimeen liittyy vastaava kenttä (siis owner
trust), mutta se ei kerro mitään siitä, miten B luottaa A:n avaimen
aitouteen.
Tässä mainittujen kolmen tietokentän välillä suoritetaan tiettyä
automaattista laskentaa:
- Owner trust-kenttä on sikäli ensisijainen, että käyttäjän on
määriteltävä se, kun uuden henkilön avain liitetään renkaaseen. PGP kopioi
sen saman henkilön laatimien allekirjoitusten Signature trust-kenttään
(vaikka avain ei olisikaan vastaava). Kenttä saa arvon "tuntematon" jos
allekirjoittajaa ei esiinny avainrenkaassa. Käyttäjän itse laatimat
allekirjoitukset (esim. off-line tai muuten luotettavasti
hankituille avaimille) saavat tietysti äärimmäisen luotetun Signature
trust-arvon.
- Tietyn avaimen legitimacy-kenttä lasketaan allekirjoitusten Signature
trust-kenttien painotettuna summana. Käyttäjä määrittelee kertoimet eli
käänteisluvut (erikseen) lukumäärille, montako "aina luotettavaa" ja montako
"yleensä luotettavaa" allekirjoittajaa tarvitaan, jotta luottamus avaimeen
olisi täysi.
Avainten peruuttaminen on PGP:n heikoin osa. Avaimelle voidaan määrittää
voimassaoloaika ja se ilmenee myös sertifikaatissa. Ennen tämän ajan
umpeutumista ainoa peruutuskeino on allekirjoittaa peruutettavalla avaimella
peruutusta koskeva ilmoitus ja lähettää se niille osapuolille, joiden
arvelee voivan käyttää ko. avainta.
S/MIME
MIME eli Multimedia Internet Mail Extensions nimensä mukaisesti laajentaa
sähköpostia käsittelemään erityyppisiä sisältöjä - dokumentti varustetaan
tiedolla datan tyypistä. S/MIME on 'Secure'-laajennus tälle: uusia tyyppejä,
jotka kerrostavat salauksia ja allekirjoituksia. Toiminnaltaan se on hyvin
samantapainen kuin PGP. S/MIMEn taustalla on RSA Data Security Inc.,
määrittely kuitenkin IETF:n standardeissa, kuten MIMElläkin.
Mikä erottaa S/MIMEn PGP:stä, on luottamusrakenne eli miten avaimet
sertifioidaan. S/MIME käyttää X.509-sertifikaatteja, mutta
avaintenhallinnassa on myös PGP-tyyppisiä piirteitä: jokaisen
asiakkaan (tai hänen paikallisen edustajansa) on nimittäin itse
pidettävä yllä luotettujen avainten listaa sekä sulkulistaa. Avaimet
kuitenkin on rekisteröitävä siten. että ne saavat sertifikaatin
varmenneviranomaiselta.
Aiheesta X.509 kuullaan lisää viimeisellä oppikerralla.
SET
Secure electronic transactions (SET) on joukko tietoturvaprotokollia, jotka
turvaavat avoimen tietoverkon välityksellä tapahtuvan mutta muilta osin
perinteisen luottokorttimaksaminen. Visa ja MasterCard panivat SETin
alulle 1995 ja kehittelyssä on ollut mukana useita teknologiayrityksiä.
SET voi toimia suoraan TCP/IP:n päällä, mutta toisaalta se ei estä
käyttämästä muita turvamekanismeja (esim. IPSec tai SSL/TLS).
Epäelektronisessa maailmassa tapahtumat ovat suurinpiirtein seuraavanlaisia:
- asiakas esittää kortin (tai puhelimessa sen numeron)
kauppiaalle oston tai tilauksen yhteydessä;
- kauppias välittää maksutiedot omalle pankilleen,
- joka välittää ne kortinhaltijan pankille,
- joka tarkistaa tilin ja hyväksyy rahaliikkeen;
- tuote siirtyy kauppiaalta asiakkaalle (voi tapahtua jo alussa);
- raha siirtyy asiakkaan pankilta kauppiaan pankkiin (tämän tilille);
- raha siirtyy asiakkaalta tämän pankille (asiakkaan maksaessa laskun)
Yksi keskeinen SET:in tuoma lisäominaisuus on tilaus- ja maksutietojen
eriyttäminen siten, että kauppias ja pankki saavat tietää vain sen, mikä
niiden kannalta on tarpeen. Toisaalta nämä tiedot on kytketty toisiinsa
siten, ettei esim. kauppias pysty liittämään maksutietoihin jotain muuta
tilausta. Harjoitus: Käytössäsi on tiivistefunktio H ja asiakkaan
allekirjoitusfunktio S. Muodosta maksutiedosta M ja tilaustiedosta T
sellainen "kaksoisallekirjoitus" (dual signature), että pankki/kauppias voi
vakuuttua M:n/T:n autenttisuudesta saamatta tietää T:tä/M:ää.
Vastaus: allekirjoitus on A = S( H ( H(M) || H(T)) ). Pankki saa
verifiointia varten M:n, A:n ja H(T):n, kauppias T:n, A:n ja H(M):n.
SET:n käyttöönottoa edeltävät toimet:
- Asiakas avaa luottokorttitilin ja saa pankkinsa (=issuer)
allekirjoittaman X.509-varmenteen (=luottokortin elektroninen vastine,
SET-spesifikaation mukaan se on kuitenkin vapaaehtoinen).
Pankin julkinen avain on luottokorttiyhtiön varmentama.
- Myös kauppias tekee sopimuksen luottokorttiyhtiön kanssa
(esim. liittymällä Luottokuntaan) ja saa pankiltaan (=acquirer) varmenteet
kahdelle julkiselle avaimelleen: toisen käyttö on allekirjoituksessa ja toisen
avaimenvaihdossa (edellinen vastaa luottokorttiyhtiön tunnuksia liikkeen
ikkunassa).
- Kauppiaan pankki tai jokin siihen yhteydessä oleva kolmas
osapuoli operoi maksuyhdyskäytävää (payment gateway). Kauppias tarvitsee
kopion maksukäytävän julkisen avaimen varmenteesta.
SETin puitteissa asiakas lähettää viestejä pelkästään kauppiaalle, tämä taas
vain asiakkaalle ja maksuyhdyskäytävälle. Yhdyskäytävän toimet pankkien kanssa
ovat SETin ulkopuolella. Keskeinen osa SETin toimintaa muodostuu seuraavista
kolmesta protokollasta:
- Asiakas "tekee ostoksen", erityisesti palauttaa allekirjoittamansa
"tilauslomakkeen". Tässä vaiheessa asiakas pystyy autentikoimaan
kauppiaan tämän lähettämän varmenteen perusteella.
- Kauppias hankkii yhdyskäytävältä "maksuvaltuutuksen" eli tiedon siitä
että asiakkaalla on tarpeeksi luottoa. (Tuotteen toimitus voi tapahtua tämän
jälkeen.)
- Kauppias lähettää maksupyynnön yhdyskäytävälle - ehkä useasta maksusta
yhtäaikaa (ja saa rahat tililleen).
Tilauslomake lähtee kauppiaalle salaamattomana, eikä se sisälläkään enää
muuta kuin SETin käyttöä edeltäneen "ostoskorin" tms. tunnistetiedot.
Samassa viestissä kauppias saa salattuna maksutiedot, jotka hän välittää
(vaiheessa 2) sellaisinaan maksuyhdyskäytävälle. Salausavain on asiakkaan
valitsema ja hän on salannut sen maksuyhdyskäytävän julkisella avaimella
(tulosta kutsutaan digitaaliseksi kirjekuoreksi).
Kauppias salaa valtuutusta koskevat tiedot vastaavalla tavalla viestissään
maksuyhdyskäytävälle (vaiheessa 2) ja maksuyhdyskäytävän vastaus käyttää
edelleen samaa tekniikkaa. Tämä toistuu vaiheessa 3. Kaikkiaan osapuolet
generoivat prosessin kuluessa siis kaikkiaan viisi symmetristä avainta
(asiakas yhden, kauppias ja maksuyhdyskäytävä kumpikin kaksi), jotka
salataan vastaanottajan julkisella avaimenvaihtoavaimella (jollaista ei ole
asiakkaalla). Kullakin osapuolella on allekirjoituksia varten oma avain.
Tässä jätettiin käsittelemättä paitsi rekisteröityminen, myös erilaisia
tarkistus- ja korjausviestejä. SET-järjestelmässä asiakas voi tarkistaa
- milloin teki tilauksen;
- onko kauppias jo käsitellyt sen;
- onko kauppias jo tilittänyt tapahtuman ja lähettänyt tavaran;
- onko kauppias hyvittänyt asiakkaan tiliä, jos tavara on palautettu.
Luettavaksi: A.D. Rubin, D.E. Geer Jr.: A Survey of WebSecurity, IEEE
Computer Sep 1998, 34-41.