S/MIME
Denne teksten skreiv eg i november 2005. I januar 2006 la eg til denne boksen:
Merk: Det eg skriv her, er ikkje heilt sant enno. Lykelen min er ikkje godkjent av notarar, så førebels seier ikkje signeringa noko anna enn at alle meldingar signert med same lykel kjem frå same person.
(2006-01-03) Det ser ut til at Brønnøysundregistra har lansert Sikkerhetsportalen, med ei fin ordning for skriva ut digitale sertifikat. Eg ser meir på dette no, og oppdaterer denne artikkelen når eg finn ut meir. Dei har òg ei fin side med spørsmål og svar om teknologien.
Eg skjemst òg over at eg ikkje hadde fått med meg NOU2001:10 Uten penn og papir, som grundig drøftar spørsmålet om digitale signaturar.
Eg signerer e-posten min med eit S/MIME-sertifikat, eller i visse tilfelle ein OpenPGP-lykel. Dette sannsynleggjer i rimeleg grad at meldingane er frå meg. Her fortel eg korleis og kvifor slik signering verkar og oppmodar andre om å ta i bruk same teknologien.
Du har kanskje lagt merke til at all personleg e-post eg sender, og det meste av e-post til lister, er signert med eit S/MIME-sertifikat med namnet mitt, frå «Thawte Personal Freemail Issuing CA»? Nett korleis ulike e-postlesarar viser det fram, ymsar, men oftast er det eit lite ikon som seier at «denne meldinga er signert». For å få eit Sertifikat med namnet sitt på, må minst to godkjende (av Thawte) vitne [notarar], uavhengig av einannan stadfesta (andsynes Thawte) at det er samsvar mellom den namnet ein har oppgjeve og ein fysisk person som kan legitimera seg.
Dersom du mottek ei e-postmelding som er gyldig signert med eit slikt sertifikat, er det rimeleg sikkert at meldinga kjem frå ein ekte person med mitt namn og e-postadresse: meg (eg nyttar rimeleg, sidan dette aldri kan verta heilt sikkert). Dersom du kjenner meg, veit du kven som har sendt deg e-posten. Er eg ein framand, veit du iallfall at det er ein ekte person med eit ekte namn som står som avsendar, ikkje ein oppdikta Internet-identitet.
Ein annan fordel med slike sertifikat, er at dei kan brukast når ein vil utveksla krypterte meldingar. Sidan e-post er ein grunnleggjande usikra kanal på Internet, er det ein god regel å kryptera all e-post mellom eit avgrensa tal menneske. Eg vil oppmoda alle om å kryptera e-posten sin: sjølv sender eg kryptert post når eg kan, det vil seia når eg har den offentlege lykelen til mottakaren. Sjølv om kryptering og signering er to nærskylde emne, er det svært mykje lettare å kryptera ei melding enn å laga eit system der avsendaren kan prova at e-posten er ekte. Det første er stort sett eit teknisk problem, det andre er eit spørsmål om sosiale strukturar. Når ein skal skjøna kvifor denne teknologien kan fungera, kan det vera greitt å halda desse to spørsmåla frå einannan.
Eg tek først føre meg den tekniske løysinga, og dinest dei menneskelege faktorane. Tykkjer du at dette vert for overflatisk, er det ikkje vanskeleg å finna meir stoff å fordjupa seg i. Du du kan til dømes ta ein titt på The Basics of Cryptography frå How PGP Works.
Lykelparet
Teknikken baserer seg på at det finst to lyklar, ein offentleg som ein kan gjeva til andre [public key], og ein privat [private key]. Det som er koda med den eine, kan berre avkodast med den hin, og dette går båe vegar. Lyklane fungerer altså som motstykkje, men du kan ikkje rekna ut den eine om du har hin. Eit slikt lykelpar er veldig stort (vanlegvis mellom 1024 og 4096 bitar), og ein bruker ei datamaskin for å rekna ut desse lykelpara. Denne krypteringsmekanismen vert kalla «public key encryption» [«kryptering med offentleg lykel»]. Når alle har distribuert dei offentlege lyklane sine, kan folk lett send koda meldingar til kvarandre: Skal Kari senda ei melding berre Ola kan lesa, kodar ho henne med Ola sin offentlege lykel. Berre Ola, som har Ola sin private lykel, kan avkoda meldinga.
Same lykelparet kan òg brukast for å signera e-post. Med signering er ikkje målet å koda meldinga, men å garantera at meldinga kjem frå hevda sendar. Skal Kari signera meldinga, reknar datamaskina ut ein kontrollsum for e-posten (eit langt tal som identifiserer meldinga) og kodar denne kontrollsummen med den private lykelen til Kari. Resultatet vert lagt som eit vedlegg til e-posten. Ola kan bruka Kari sin offentlege lykel til å dekoda vedlegget, og sjølv rekna ut kontrollsummen for meldinga og sjå at han svarar til kontrollsummen i vedlegget. Då kan han konkludera med at «ingen har endra innhaldet undervegs, for berre Kari har den private lykelen som skal til for å koda kontrollsummen slik at Ola kan dekryptera han med den offentlege lykelen til Kari». Datamaskina tek seg sjølvsagt av all mekanikken her.
Whose keys? Queen Elisabeth’s keys!
Når portvaktane i Tower of London skal låsa av for kvelden, er visstnok desse replikkane nok til å identifisera den som kjem med lyklane. På Internet er dette sjølvsagt ikkje nok.
Kven som helst kan laga ein e-postadresse som heiter «kari.nordmann@domene.no», og gje seg ut for å vera Kari. Kven som helst kan senda som ser ut som han kjem frå Kari. Dersom nokon har tilgang til e-postkontoen til Kari, kan dei til og med senda e-post frå henne med ein falsk kodelykel! Me treng altså ein måte å identifisera kven som høyrer til ei e-postadresse.
PGP-modellen: Egalitær og nettverksbasert
Den absolutt beste måten å utveksla lyklar på, er gjennom personleg, fysisk kontakt. Då veit du at du har fått den offentlege lykelen til rett person. Diverre er dette upraktisk: ein av fordelane med Internet er å kunna kommunisera med folk ein er fysisk langt borte frå: kanskje folk ein ikkje ein gong er interessert i å møtest fysisk.
Løysinga då er at ein eller fleire tredjepersonar, kan signera lyklen til Kari (omlag slik Kari signerte meldinga si). Om Ola lit på ein av desse tredjepersonar, og han denne lykelen, kan han vera viss på at Kari er Kari. Då denne teknologien vart vanleg på 1990-talet, var det gjennom programmet PGP, som brukte denne modellen for å garantera at lyklar var ekte.
Problemet: Det er tungvint å signera andre sine lyklar heile tida, og det krev mykje arbeid å samla nok signaturer for å kunne presentera ein lykel med nok signaturerer. Korleis veit du kva for ein tredjeperson («nettverket» kan gjerne utvidast med fleire ledd, men det løyser ikkje problemet) ein ukjend mottakar krev? Korleis veit du at vedkomande har teke oppgåva med å signera ein lykel seriøst nok, og ikkje berre signert ein lykel han har fått på e-post? Kompleksiteten i å vita kva du kan stola på og ikkje, vert for stor til at alle tek det alvorleg. Det gjer at mange lit på lyklar utan tilstrekkjelege signaturar, og heile autensiterings-delen av PGP fell bort.
SSL-modellen: byråkrati
Den andre måten ein kan løysa problemet på, er at dei du liter på på, kan bestemma kven du skal lita på. Slik er med SSL-modellen, som ligg til grunn for t.d. krypterte HTTP-samband (når webadressa byrjar med https og ikkje http), og altså S/MIME-teknologien for å signera og kryptera e-post.
Saman med dei fleste moderne operativsystem vert det distribuert ei pakke med «rotsertifikat». Dette er dei offentlege lyklane til ei rekkje utferdarar av sertifikat [certificate authority, CA]. Eit sertifikat er ein lykel med ein eller fleire signaturar. Ein må gå til ein CA for å få ein signert lykel; og det må ein ofte betala ei viss avgift i året for å få. Det er mogleg å laga sin eigen SSL-lykel og signera denne sjølv, men då vil andre få feilmelding fordi lykelen din ikkje er sertifisert. Kostnaden med å få eit sertifikat er stort sett så høg at få privatpersonar gjer det, men det finst gratis sertifikat tilgjengeleg.
Skilnadene mellom S/MIME og PGP finn du på denne sida, og for å lesa meir om S/MIME kan du sjå kva Wikipedia skriv om saka.
Thawte, som er ein CA, tilbyr noko som heiter Freemail. Alle kan få ein signert lykel frå dei til e-postadressa si, og om ein vil ha ein lykel med namnet sitt på - som altså viser at e-postadressa høyrer til ein verkeleg person - kan ein ta kontakt med to notarar. Du legitimerer deg for desse, dei melder attende til Thawte at du er ein ekte person, og Thawte skriv namnet ditt på sertifikatet/lykelen din. Notar kan òg alle verta, men det krev at ein går gjennom litt meir arbeid for å stadfesta kven ein er. I dei største norske byane finst det fleire notarar.
InstantSSL tilbyr òg frie sertifikat, men eg kjenner i mindre grad til korleis dei garanterer at namnet på sertifikatet samsvarar med innehavaren.
Enkelt og greitt
Medan PGP ofte krev at ein installerer ekstra programvare på maskina si, har - så vidt eg veit - alle dei store e-postprogramma god støtte for S/MIME. Det gjer at ein ikkje treng høg teknisk kompetanse for å auka sikkerheita på e-post alt i dag.
E-postprogrammet kan òg syta for å spørja CA-ane kva for sertifikat dei har gjort ugyldige [revokert]. Dette er eit viktig moment som ikkje er nemnd over, men det er viktig informasjon om du skal kunna lita på at eit sertifikat er gyldig.
Det er fleire andre problemstellingar som er viktige nok å tenkja over. Korleis sikrar du at ingen stel den private lykelen din? Korleis veit du om nokon har stole han? Er det trygt å lesa avkoda vedlegg på maskina di? Dette er problemstellingar som er svært viktige å vurdera, men som fell utanom denne teksten.
Eg vonar at denne teksten gjorde at du vart overtydd om at signering av e-post er tingen. Om det er slik, tilrår eg at du vitjar Thawtefor å skaffa deg eit Freemail-sertifikat i dag. Spør gjerne dersom du lurer på noko, eller vil kommentera denne artikkelen.
Takk for alle rettingar og presiseringsframlegg eg fekk då eg arbeidde med denne teksten.