Uporaba kriptografije v internetu
Kazalo   
 

PGP (Pretty Good Privacy)

Leta 1990 so se razširile govorice, da ameriška vlada na predlog FBI in NSA pripravlja zakon, ki bo močno omejil uporabo kriptografskih algoritmov. Phil Zimmermann, računalniški strokovnjak in idealist, je kot odgovor na to napisal programski paket PGP (Pretty Good Privacy). Za to je porabil pol leta neplačanega dopusta in se moral celo zadolžiti. Ko ga je s pomočjo somišljenikov junija 1991 začel širiti po Internetu, si je nakopal triletno preganjanje ameriških vladnih ustanov, saj so ga hoteli obsoditi, da je kršil zakon o izvozu orožja. Prav gotovo je razširjenost uporabe PGP prispevala k temu, da je ameriška vlada v začetku leta 2000 omilila omejitve za izvoz kriptografske opreme.

PGP je šifrirni program, ki omogoča enostavno šifriranje podatkov in pri tem uporablja simetrične in asimetrične algoritme, zgoščevalne funkcije in vse, kar je potrebno, da lahko pošiljamo šifrirana poročila po elektronski pošti. Poleg avtorja in njegovih sodelavcev so ga dopolnjevali uporabniki po vsem svetu.

Zimmermannu je poleg preganjanja zaradi izvoza kriptografske opreme grozila še tožba zaradi kršitve patentnih pravic. V ZDA se namreč da patentirati algoritme in podjetje Public Key Partners (PKP) je imelo patent za uporabo algoritma RSA (patent je potekel leta 2000). Tako je bil prisiljen pripraviti dve verziji- eno za ZDA in eno za preostali svet. Dogovoril se je z MIT, da od verzije 2.5 naprej vzdržujejo verzijo za ZDA, ki za implementacijo algoritma RSA uporablja podprograme RSAREF podjetja PKP. Za uporabnike izven ZDA so na strežniku www.pgpi.org na voljo verzije s končnico i kot international, ki jih vzdržuje Norvežan Staale Schumacher. Te inačice PGP uporabljajo Zimmermannovo knjižnico programov za RSA MPILIB. Poleg tega ameriška verzija ne zna prebrati tekstov, zašifriranih s starejšimi verzijami. Tako so zagotovili, da bodo vsi uporabniki v ZDA uporabljali "uradno" verzijo.

PGP je uspešno preživel težave zaradi kršenja izvoznih omejitev in patentnih pravic, manj uspešni pa so poskusi trženja. Zimmermann je leta 1996 ustanovil podjetje PGP Inc., da bi si s prodajo PGP in svetovanjem povrnil stroške razvoja. Podjetje je še naprej nudilo neplačljivo verzijo. Zaslužka ni bilo dovolj in po enem letu je podjetje propadlo. Kupila ga je firma Network Associates. Tudi ta je po petih letih ugotovila, da PGP ni dovolj donosen in so to področje ukinili. Lani je Zimmermann s sodelavci ustanovil podjetje PGP Corp. V decembru 2002 so objavili verzijo 8.0. Tokrat pa v neplačljivi različici ni več pluginov za programe za elektronsko pošto, tako da je treba datoteke zašifrirati posebej ali prek odložišča.

V prvih verzijah je uporabnik vnašal ukaze v ukazni vrstici, saj je bil takrat najbolj razširjen operacijski sistem na osebnih računalnikih DOS. Zdaj je na voljo grafični vmesnik za različne operacijske sisteme:

Na voljo imamo module za upravljanje s ključi, za šifriranje datotek, za podpisovanje, za dešifriranje in verificiranje podpisov, za varno brisanje datotek ter druge. Poleg tega so na voljo tudi plugini za večino znanih programov za elektronsko pošto. Prvotno je PGP uporabljal algoritme RSA, IDEA in MD5, od verzije 5 naprej pa je možno izbirati med algoritmi RSA, Diffie-Hellman, DSA, med simetričnimi pa med IDEA, CAST, trojni DES, Twofish in AES. Ključ za asimetrični algoritem Diffie-Hellman je lahko dolg do 4096 bitov, za RSA do 2048 bitov.

Nastavitve izberemo z uporabo modula PGP-keys prek menija Edit -> Options, n.pr. kje naj bosta datoteki z zasebnim in javnim ključem. Ko kreiramo ključ, lahko izberemo možnost "Expert" za določanje dolžine ključa, algoritma ipd. Seveda si moramo zapomniti geslo, s katerim smo zaščitili naš zasebni ključ. Na koncu postopka nas program opozori, naj si naredimo varnostno kopijo ključa:

To moramo vsekakor narediti.

Vidimo, da sta se pojavili datoteki SECRING.SKR in PUBRING.PKR. PGP je avtomatično shranil privatni ključ na obroč tajnih ključev SECRING.SKR in ga zaščitil z geslom, ki smo ga vnesli ob tvorjenju. Javni ključ je shranjen v obroču javnih ključev PUBRING.PKR. Sem bomo dodajali javne ključe ljudi, s katerimi si bomo dopisovali.

Kako ugotovimo, ali nek javni ključ pripada ravno človeku, ki mu hočemo pisati? V času nastanka PGP overiteljev javnih ključev skoraj še ni bilo, poleg tega je Zimmermann želel, da bi se PGP uporabljal brez dodatnih stroškov ali vpletanj državnih ali komercialnih overiteljev. Zato si je zamislil "mrežo zaupanja" (web of trust) - uporabniki si sami izmenjujejo javne ključe v obliki digitalnih potrdil in jih drug drugemu podpisujejo ter tako jamčijo za njihovo verodostojnost. Objavljajo jih tudi na strežnikih javnih ključev.

Digitalna potrdila PGP vsebujejo poleg javnega ključa imetnika, imena, elektronskega naslova, identifikacijske oznake, algoritmov, dolžine ključa, časa kreiranja in veljavnosti še enega ali več digitalnih podpisov, ki jih naredijo znanci. Lahko vključimo tudi fotografijo.

Ko hočemo pisati prijatelju, lahko njegovo potrdilo potegnemo s strežnika javnih ključev, ali pa nam dopisovalec pošlje svoj javni ključ na datoteki, ki jo uvozimo v svoj obroč javnih ključev. Če nismo prepričani, da imamo pravi ključ, lahko lastnika ključa prosimo, da nam sporoči njegov prstni odtis. PGP ponudi prstni odtis v dveh verzijah - običajnih hexadecimalnih oznakah ali kot seznam besed, kar je primerno za sporočanje po telefonu. Tudi svoj javni ključ lahko objavimo na strežniku javnih ključev ali pa ga dopisovalcu pošljemo kot pripeto datoteko (svoj javni ključ izvozimo na datoteko prek menija "Export Selected keys to a file").

Potrdila niso v skladu s standardom X509V3. V plačljivi verziji pa je na voljo tudi možnost, da imamo potrdilo v tem formatu in ga pridobimo od overitelja javnih ključev.

Ko imamo dopisovalčev javni ključ, mu pošljemo podpisano šifrirano sporočilo. PGP iz datoteke najprej izračuna povzetek z zgoščevalno funkcijo in ga zašifrira s privatnim ključem pošiljatelja z algoritmom RSA oziroma drugim izbranim asimetričnim algoritmom. Ta podpis doda datoteki in vse skupaj zgosti s postopkom ZIP. Izračuna enkratni ključ (session key) in z njim zašifrira zgoščeno datoteko z uporabo izbranega simetričnega algoritma. Zdaj z naslovnikovim javnim ključem zašifrira enkratni ključ po asimetričnem algoritmu in vse skupaj doda prejšnji datoteki. Rezultat je šifrirano sporočilo (8-bitni znaki). To običajno pretvori v berljive znake s programom radix64 (iz treh 8-bitnih znakov naredi štiri 6-bitne ). Tako prirejeno sporočilo potuje do naslovnika. Tu se vsi postopki odvijejo v obratnem vrstnem redu:

  • PGP pretvori datoteko iz formata, ki je primeren za prenos po elektronski pošti;
  • dobi enkratni ključ z dešifriranjem s prejemnikovim privatnim ključem po asimetričnem algoritmu;
  • dešifrira datoteko z enkratnim ključem s simetričnim algoritmom;
  • razširi (dekompresira) datoteko z UNZIP;
  • verificira pošiljateljev digitalni podpis z njegovim javnim ključem.

Možnost izbire različnih algoritmov lahko predstavlja problem, če si dopisujemo z ljudmi, ki uporabljajo starejše verzije PGP. N.pr. za RSA sta na voljo dva formata - "RSA legacy" in novi RSA. Če izberemo "RSA legacy", bodo našo pošto lahko dešifrirali z večino verzij PGP, ne bomo pa imeli na voljo novejših opcij, kot so slike v potrdilu ali ADK.

ADK -Additional Decription Key so dodali v verziji 5 na zahtevo organizacij, da bi se dalo dešifrirati datoteke, ki so jih s svojimi ključi zašifrirali bivši uslužbenci. Tako se izognemo temu, da bi se izgubili pomembni službeni podatki. Pri kreiranju ključa izberemo, da se bodo vsa sporočila, zašifrirana s tem ključem, zašifrirala tudi s ključem organizacije, za katero delamo. PGP v tem primeru doda ključ organizacije v seznam prejemnikov pošte. Uporabnik lahko to opcijo obide in šifrira podatke samo s svojim ključem. V zvezi z ADK so ugotovili programsko napako v vseh verzijah 5.5.x in 6.x - odpravljena je bila z verzijo 6.5.8.

V plačljivih verzijah je na voljo PGPnet, ki omogoča vzpostavljanje navideznih zasebnih povezav (VPN) na nivoju IP po protokolu IPsec.


Pavla Lah, 1997, zadnjič ažurirano januarja 2003

URL: http://www.ca.gov.si/kripto/kr-pgp.htm