[Lintulan etusivu] -> [Ohjeita] -> [Sähköposti] -> [Sähköpostin salaus] -> [PGP-salaus teoriassa]

Lintula

Sähköpostin PGP-salaus teoriassa


Tällä sivulla on teoriatietoa PGP-salauksesta ja sen toiminnasta käytännössä. Tämä sivu ei pyri olemaan tieteellisesti tarkka, vaan ajatuksena on antaa yksinkertainen kuva asiasta. Salauksen teoriasta löytyy erittäin havainnollinen kaaviokuva Viestintäviraston sähköpostin tietoturvasta kertovalta sivulta http://www.viestintavirasto.fi/index/tietoturva/sahkoposti.html

Salaus teoriassa

Sähköpostin salaus (encryption) PGP (Pretty Good Privacy) -yhteensopivalla ohjelmalla perustuu julkisen avaimen menetelmään. Sähköpostin lähettäjä ja vastaanottaja luovat itselleen salauksessa käytettävän avainparin. Avainpari muodostuu julkisesta avaimesta ja salaisesta avaimesta. Julkinen avain on nimensä mukaisesti julkinen ja jotta mekanismi toimisi, muiden osapuolten (sähköpostikeskustelun toinen osapuoli) tulee tuntea tämä julkinen avain. Salainen avain on vain avainparin omistajan käyttöön ja tietoisuuteen tarkoitettu avain. Avaimet on muodostettu matemaattisesti niin, että käyttäjän julkisella avaimella salattu viesti voidaan purkaa vain ja ainoastaan saman käyttäjän salaisella avaimella.

Mikäli siis Alice ja Bob haluavat salata keskinäisen sähköpostiliikenteensä, molemmat luovat itselleen avainparit, joka sisältää julkiset ja salaiset avaimet. He tallettavat salaiset avaimensa varmaan talteen ja toimittavat julkiset avaimensa toisilleen. Kun Alice nyt haluaa lähettää Bobille salatun sähköpostiviestin, Alice ottaa Bobin julkisen avaimen ja salaa lähettämänsä viestin sillä. Näin viesti on purettavissa vain Bobin salaisella avaimella, joka on Bobilla tallennettu turvallisesti. Vastavuoroisesti kun Bob haluaa lähettää salatun viestin Alicelle, hän ottaa Alicen julkisen avaimen ja salaa lähettämänsä viestin sillä. Näin vain Alice voi purkaa Bobin lähettämän viestin, koska viesti on purettavissa vain Alicen salaisella avaimella ja vain Alice tietää oman salaisen avaimensa.

Salainen avain ja salalause (pass phrase)

Salainen avain ei siis saa missään tilanteessa paljastua ulkopuolisille. Tämän takia salainen avain itsessään salataan yleensä niin kutsutulla salalauseella (pass phrase), joka on hieman kuin käyttäjätunnukseen liittyvä salasana, mutta sen on syytä olla huomattavasti pitempi. Salalausetta tarvitaan siis aina, kun salaista avainta halutaan käyttää. Lisäksi on syytä huolehtia siitä, että avain on tallennettu hakemistoon, johon ei ole muilla käyttäjillä oikeuksia.

Allekirjoitus

Julkisen avaimen menetelmää voidaan hyödyntää myös sähköpostiviestin allekirjoittamiseen. Allekirjoittamisella tarkoitetaan sitä, että viestiin lisätään erillinen matemaattisesti salaisen avaimen avulla laskettava tarkastussumma. Viestin vastaanottaja voi tarkistaa kyseisen tarkastussumman käyttäen lähettäjän julkista avainta. Näin voidaan varmistaa viestin olevan varmasti tietyn tahon lähettämä. Tämä voi olla sähköpostiviestinnässä tärkeää, koska sähköpostin otsikkotiedot on helposti väärennettävissä näyttämään siltä, että viesti olisi tullut tietyltä henkilöltä. Allekirjoitusta voidaan käyttää joko ilman salausta tai tarvittaessa myös salauksen kanssa.

Mikäli siis Alice haluaa lähettää Bobille allekirjoitetun viestin, jotta Bob voi olla varma, että viesti on Alicelta, Alice kirjoittaa viestin ja laskee viestistä tarkastussumman käyttäen omaa salaista avaintaan, jonka vain Alice tietää. Viestiä lähettäessään Alice liittää tarkastussumman viestiin. Kun viesti saapuu Bobille, hän ottaa Alicen julkisen avaimen ja tämän avulla varmentaa viestissä olevan tarkastussumman.

Julkisten avainten jakelu

Jotta salaus ja allekirjoitus toimisivat, tulee Alicen toimittaa julkinen avaimensa Bobille luotettavasti. Ainoa todella luotettava tapa on, että henkilöt tapaavat henkilökohtaisesti ja vaihtavat näin julkisia avaimiaan (ja varmentavat toistensa henkilöllisyyden, mikäli eivät toisiaan tunne).  Tämä on PGP-salauksen suurinpia ongelma.

Alice voi esimerkiksi laittaa julkisen avaimensa omalle www-sivulleen, josta Bob voi avaimen ladata. Tällöin Bobin täytyy kuitenkin tietää Alicen www-sivun osoite ja toisaalta Bobin pitää luottaa siihen, että sivulla julkaistu avain on varmasti Alicen, eikä jonkun Aliceksi tekeytyvän henkilön. Alice voi myös tallentaa julkisen avaimensa jollekin Internetin avainpalvelimelle (ks seuraava kappale), josta Bob tai Bobin PGP-yhteensopiva sähköpostiohjelma voi ladata avaimen.

Internetin avainpalvelimet

Internetiin on liitetty useita PGP-yhteensopivia avainpalvelimia. Osa näistä on julkisia, niin että kaikki Internetin käyttäjät voivat tallentaa niille julkisia avaimia. Julkisille avainpalvelimille voi kuka tahansa tallentaa minkä tahansa avaimen, eli myöskään avainpalvelimen avaimeen ei täysin voi luottaa. Avainpalvelimelta ei myöskään mitenkään voi poistaa avaimia, mikä voi aiheuttaa ongelmia käyttäjän salaisen avain paljastuessa tai avaimen salalauseen unohtuessa. Yleisesti käytettyjä julkisia avainpalvelimia on esimerkiksi pgp.mit.edu. Julkiset avainpalvelimet saattavat myös levittää avaimia keskenään, eli yhdelle palvelimelle tallennettu avain saattaa levitä myös muille.

Lisäksi esimerkiksi yrityksellä tai yhteisöillä voi olla avainpalvelimia, joiden käyttö on rajoitetumpaa. Tällöin voidaan esimerkiksi rajoittaa avainten tallennusta palvelimelle esimerkiksi niin, että vain käyttäjä itse voi tallentaa oman avaimensa avainpalvelimelle. Näin voidaan kiertää avainjakelun ongelmaa. TTY:llä on käytössään avainpalvelin keyserver.tut.fi. Avaimen tallennus palvelimelle onnistuu www-liittymän kautta osoitteessa https://keypublish.tut.fi/ ja on sallittu vain TTY:n Intranet -tunnuksella.

Jos salainen avain paljastuu tai salalause unohtuu

Mikäli salainen avain paljastuu tai joutuu vääriin käsiin, avainparia voidaan käytännössä pitää käyttökelvottomana. Avainpari muuttuu käyttökelvottomaksi myös siinä tilanteessa, että salainen avain tuhoutuu tai salaisen avaimen salalause unohtuu. Tällöin käyttäjän tulee tehdä itselleen uusi avainpari ja tiedottaa kaikille oman julkisen avaimen käyttäjille uudesta avaimesta. Mikäli julkinen avain on tallennettu avainpalvelimelle, julkinen avain voidaan mitätöidä palvelimella erillisellä mitätöintisertifikaatilla (revocation certificate). Mitätöintisertifikaatin tekoon tarvitaan avainparin salainen avain ja avaimen salalause, eli mitätöintisertifikaatti on syytä tehdä avainparin luonnin yhteydessä ja tallentaa hyvään talteen sellaiseen paikkaan, josta siihen ei ulkopuoliset pääse käsiksi. Sopiva tallennustapa voisi olla esimerkiksi CD-R -levy ja/tai tulostus paperille. Mitätöintisertifikaattia ei saa paljastua ulkopuolisille, koska ulkopuolinen voisi sertifikaatin avulla mitätöidä käyttäjän avainparin avainpalvelimilla.


Salaus ja allekirjoitus käytännössä PGP -yhteensopivalla ohjelmalla

Jotta käyttäjä voisi käyttää salausta, hänellä täytyy olla henkilökohtainen avainpari. Lisäksi käyttäjän tulee hankkia vastaanottajan julkinen avain ja lisätä se omaan avainrenkaaseensa. Mikäli halutaan käyttää viestin allekirjoitusta, vastaanottajan tulee hankkia lähettäjän julkinen avain.

Mikäli käytetty sähköpostiohjelma tukee PGP-salausta, salatun  viestin lähettäminen onnistuu varsin helposti. Käyttäjä kirjoittaa viestin normaaliin tapaan. Ohjelma valitsee kohdeosoitteiden perusteella niiden käyttäjien julkiset avaimet, joilla viesti salataan. Ohjelma salaa viestin ja lähettää sen vastaanottajalle. Vastaanottaja saa alla olevan esimerkin mukaisen viestin.

Jos käytetty sähköpostiohjelma ei tue PGP-salausta, salatun viestin lähettäminen on hieman hankalampaa. Käyttäjän tulee kirjoittaa viesti, salata se gpg -nimisellä komentoriviltä toimivalla ohjelmalla, kopioida salattu viesti postiohjelmaan ja lähettää se ohjelmalla. Vastaanottaja saa alla olevan esimerkin mukaisen viestin.

Date: Tue, 05 Apr 2005 22:42:51 +0300
From: Timo Alatalo <timo.alatalo(at)tut.fi>
To: luuser@cs.tut.fi
Subject: PGP-salaustestiviesti

-----BEGIN PGP MESSAGE-----
Charset: ISO-8859-1
Version: GnuPG v1.4.1 (GNU/Linux)

hQEOAztx1cfDRuVbEAP+IgZzBw4r7GbPtIf1I9+r4BS1LYYqPcpluNG9I8YnB+MD
lNSTb0fC3kAr3k2sh3+6YVPoagE4TLIaTYLFz5+iBTYNL2ZcAebgBu+6dQv7J0Ws
mWqiB6zByg78DFiYvIHVHIG4RLAN6SYfsOiCkshKeTWCkVumIjjen0rP121lCMAD
/0Uq5xtNLhQNq0bQ8CC3MC6+BuyYRqeuMM1IIc4QmH7JEKVDuR5ZrfxuIxDnAFyX
V7b4sHnshZ9Z0kNjh9NIKn7h2PHVHYRPGezTVKhkuPyYsRmrHVi4ph1ypn9W97Ue
nNOy6cHm2SMi/oSXUQB57pti9KxHNeCbr3YTT44As6IXhQEOA46bgQh9pWcZEAQA
jhS3zFD909jQhtJY3skUk5euj0+r7co9wyWFUp7DGue+PgjYJlnBiqkSjrIohrMc
Rfi6mXRYFizzTSSr+jBm//zZY6NuOHPghjfoI1MgKox0K9Wl5WXE3PIHTBRF3zAp
jDZwvnHgugxn+zcthRn1yZiW2gZ0hM0LaHrPimvZxDUD/iYYqEaxz/MY8aYY8M07
Fi/Gch/4gJZChoK2b4ysPQoDRBI5XQCsCHpSRM/oX7ixpF5yo9f5mMnwkaaeDtgV
DyhP2/+2aQnTk3MOI6NsSwaktVbKGhXVRhqEEM8e8FkdViRKTdXc7ZY0mBR2mJgm
QV8FnlQ+LPIjbx2HjKBr5Ywf0sC7ActddpGDFVme4fQzZvJYjXZx6LnUR3tPBC28
SYej4xlflSuSgojNte58JLguh/sXg41hVqJmBcGODFIXMf71cSgHMKHElwdSO00L
HhHpGLdhD+wSbQYjy1uHiF3CgloIfv69qZWVaFW/KMpXVbjjK3337TGwvq4ABVuB
zwnFSbnYO2ZnUeMmRnHDLbxwCqpPXn1YhQ3dkx4WWp2mUqEJe5H8B8ljc7XWNPGA
5UXQ4rcbBppP27blOvNGi0dQKUtXwROmjPH4cNmFNNTvRKpfEaN7HLUcZ/KdMNlc
ZTLIi2PLecp7XJx2jx6msc/5jfO4BsAIhRa7g/PpobJJ4oVRyUfBNpKjByCeggcg
D15nGqhFu6OMoI/8C/irQq7ckwhQJv+7lWDVZ3yVRtM0OP0R7QxOM+GdsAosp0jH
n1WcZIY6ejJzEkMq3f3XpNtCKz/lsXTkbIqELICK9VDZpSfP0Any/DYDfCaIPOZI
rUZ0fN33zRnlMaxVu8SOjg==
=r4oW
-----END PGP MESSAGE-----


Mikäli vastaanottajan sähköpostiohjelma osaa käsitellä PGP-salattuja viestejä, sähköpostiohjelma luultavasti kysyy käyttäjän salaisen avaimen salalausetta ja purkaa viestin käyttäjän ruudulle selväkieliseen muotoon automaattisesti. Mikäli käytetty sähköpostiohjelma ei tätä osaa tehdä, käyttäjä joutuu tallentamaan viestin ja purkamaan salauksen esimerkiksi gpg -nimisellä komentoriviltä toimivalla ohjelmalla.

Mikäli lähettäjä olisi vain allekirjoittanut viestin, mutta ei salannut sitä, vastaanottajan saama viesti näyttäisi seuraavankaltaiselta:

Date: Tue, 05 Apr 2005 22:52:16 +0300
From: Timo Alatalo <timo.alatalo(at)tut.fi>
To: luuser@cs.tut.fi
Subject: PGP allekirjoitustestiviesti


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


Testaanpa tässä PGP-allekirjoituksen toimintaa.

- --
Timo Alatalo <timo.alatalo(at)tut.fi> http://www.cs.tut.fi/~talatalo/
Administrator of @cs.tut.fi Room: TC207
Phone: +358 3 3115 3813 GSM: +358 40 8490 738
Department of Information Technology Tampere University of Technology

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFCUuxwbtqXwIDUM1ERAlmjAJ9XRc9veHzBXMxzIyLcAD9p59EMLACdG7+E
AfjfuGDgsHo1W3aEa2djJUw=
=tJpZ
-----END PGP SIGNATURE-----

Jälleen, mikäli vastaanottajan sähköpostiohjelma osaa käsitellä PGP-allekirjoitettuja viestejä, sähköpostiohjelma tarkistaa viestin allekirjoituksen lähettäjän julkisen avaimen avulla ja ilmoittaa käyttäjälle allekirjoituksen oikeellisuudesta. Muussa tapauksessa käyttäjän tulee esimerkiksi tallentaa viesti tiedostoon ja tarkistaa allekirjoitus gpg -ohjelmalla.


18.02.2011