Oppikerta 12, 13.4.1999

Tämän kerran aiheet:

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 PGP:n algoritmeja ovat: 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:

  1. '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.
  2. '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:

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:

  1. asiakas esittää kortin (tai puhelimessa sen numeron) kauppiaalle oston tai tilauksen yhteydessä;
  2. kauppias välittää maksutiedot omalle pankilleen,
  3. joka välittää ne kortinhaltijan pankille,
  4. joka tarkistaa tilin ja hyväksyy rahaliikkeen;
  5. tuote siirtyy kauppiaalta asiakkaalle (voi tapahtua jo alussa);
  6. raha siirtyy asiakkaan pankilta kauppiaan pankkiin (tämän tilille);
  7. 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:

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:
  1. Asiakas "tekee ostoksen", erityisesti palauttaa allekirjoittamansa "tilauslomakkeen". Tässä vaiheessa asiakas pystyy autentikoimaan kauppiaan tämän lähettämän varmenteen perusteella.
  2. Kauppias hankkii yhdyskäytävältä "maksuvaltuutuksen" eli tiedon siitä että asiakkaalla on tarpeeksi luottoa. (Tuotteen toimitus voi tapahtua tämän jälkeen.)
  3. 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


Luettavaksi: A.D. Rubin, D.E. Geer Jr.: A Survey of WebSecurity, IEEE Computer Sep 1998, 34-41.