PGP

***Pretty Good Privacy*** (***PGP***) informazioa zifratzeko eta deszifratzeko programa informatiko bat da, konfidentzialtasun kriptografikoa eta kautotasuna bermatzen dituena informazio trukean. Askotan, testuak, mezuak, fitxategiak eta disko partizio osoak sinatzeko, zifratzeko eta deszifratzeko erabiltzen da, mezu bidezko komunikazioaren segurtasuna handitzeko asmoz. Phil Zimmermannek sortu zuen 1991. urtean

Programa hau oso azkarra eta fidagarria da, kriptoanalizatzeko oso zaila egiten duena.

PGP eta antzeko produktuek OpenPGP estandarra (RFC 4880) daukate oinarrian informazioa zifratu eta deszifratzeko.

## Diseinua 
PGPren zifratze metodoak *hash* funtzioak, informazio konprimitzea, kriptografia simetrikoa eta, azkenik, kriptografia asimetrikoa erabiltzen ditu seriean konbinatuta. Modu honetan, garraiorako denbora murriztea, diskoan espazioa aurreztea eta, batez ere, segurtasun kriptografikoa handitzea lortzen da.

Zifratzea, nagusiki, bi pausotan egiten da. Behin informazioa konprimitu dugula, PGPk IDEA gako ezkutu bat sortzen du (simetrikoa) eta datuak honekin zifratzen ditu. Gero, PGPk IDEA gako ezkutu hori zifratzen du hartzailearen gako publikoa erabiliz.

thumb|erdian|700px|PGP Zifratzea

Deszifratzea ere antzekoa da. PGPk IDEA gako ezkutua deszifratzen du hartzailearen gako ezkutua erabiliz. Jarraian, PGPk datuak deszifratzen ditu aurreko pausuan lortutako IDEA gako ezkutu horrekin.

thumb|erdian|700px|PGP Deszifratzea

Algoritmo simetrikoa izatez azkarragoa da, baina gako banaketaren arazoa daukagu. Hortaz, abiadura hori ez galtzeko eta, aldi berean, gakoen banaketarekin arazorik ez izateko erabiltzen da bi algoritmoen konbinazio hau.

Goian azaldutako pauso bakoitzak algoritmo bat erabiltzen du. Gako publiko bakoitza erabiltzaile edo posta helbide batena da. Sistema honen lehen bertsioa konfiantzazko taldea (web of trust) bezala ezagutzen zen X.509 sistemarekin konparatuz. Azken honek ziurtagirien baimen hierarkikoa erabiltzen zuen, zeina geroago PGPri gehitu zitzaion. PGPren azken bertsioaren zifratze metodoak bi aukerak barneratzen ditu, gako zerbitzari bat erabiliz

### Bateragarritasuna 
PGP erabat berritzen eta hobetzen ari denez, PGP bertsio zaharragoak batzuetan ezin dituzte ezaugarri eta algoritmo berriagoak dituzten PGP bertsioek sortutako mezuak deszifratu, nahiz eta gako ezkutua baliozkoa izan. Beraz, garrantzitsua da kideen artean bakoitzak dituen PGP baliabideak kontuan hartzea edo gutxienez, konfigurazioan ados jartzea.

### Konfidentzialtasuna 
PGP mezuak konfidentzialtasunez bidaltzeko erabil daiteke. Horretarako, PGPk zifratze simetrikoa eta asimetrikoa konbinatzen ditu. Mezua algoritmo simetrikoa erabiliz zifratzen da; hortaz, gako simetriko bat behar da. Hauetako gako bakoitza behin bakarrik erabiltzen da; saio-gakoa ere deitzen zaio. Gako hau babesteko, hartzailearen gako publikoarekin zifratzen da, hartzaileak bakarrik deszifra dezakeela ziurtatuz. Zifratutako mezua eta gakoa hartzaileari bidaltzen zaizkio azkenik.

### Sinadura digitalak 
PGPk *kautotasuna* eta *osotasuna* bermatzen ditu. Osotasunaren bidez, mezua osatu zenetik norbaitek aldatu duen edo ez jakiten da; eta kautotasunaren bidez, ea igorlea dela esaten duenak bidali duen benetan mezua. Edukia zifratuta dagoenez, mezuan egiten den edozein aldaketak gako egokiarekin deszifratzeko garaian arazoak emango ditu. Igorleak PGP erabiltzen du mezuarentzako sinadura digital bat sortzeko, RSA edo DSA algoritmoetako bat erabiliz. Hau egiteko, PGPk hash bat aplikatzen dio mezuari eta gero sinadura digitala sortzen du, hash hori igorlearen gako ezkutuarekin zifratuta.

thumb|erdian|700px|PGP Sinadura

Sinadura hau edonork konproba dezake igorlearen gako publikoa erabiliz.

### Konfiantzazko taldea 
Bai mezuak zifratzerakoan eta bai sinadurak egiaztatzerakoan, beharrezkoa da mezuak bidaltzeko erabilitako gako publikoa benetan hartzailearena izatea. Gako publiko bat edozein lekutatik lortzeak ez du segurtasunik ematen, pertsona ordezkatzea posible baita, nahita edo nahigabe. PGPk, bere lehen bertsiotik, erabiltzaileen gako publikoak zabaldu ditu identifikazio ziurtagirien bitartez. Hau ere zifratuz sortzen da faltsifikazioak edo akatsak berehala detektatzeko.

Hala ere, ziurtagiri bat egitea ez da nahikoa, izan ere, honek faltsukeria detekta dezake, baina soilik ziurtagiria sortu zenetik aurrera, ez lehenago. Beraz, erabiltzaileek moduren batez ziurtatu behar dute ziurtagiriko gako publikoa benetan ziurtagirian azaltzen den nagusiarena dela. PGPren lehen bertsiotik, bere produktuek vetting scheme (aztertzeko eskema) izeneko barne ziurtagiri bat erabili dute arazo horrekin laguntzeko, segurtasunezko modelo bat, konfiantzazko weba deitua. Hirugarren partaide batek gako publiko bat sinatuko du gako horren eta bere erabiltzaile izenaren arteko lotura ziurtatzeko. Konfiantza maila desberdinak izan ditzake sinadurak. Nahiz eta programa askok irakurri eta idazten duten informazio hau, gutxik erabiltzen dute ziurtagirien maila hau gakoen konfiantza maila kalkulatzerakoan.

Konfiantzazko webaren protokoloa Zimmermannek idatzi zuen 1992an PGP 2.0 bertsioaren eskuliburuan:

: *Denbora aurrera doan heinean, konfiantzazko erabiltzaile moduan izendatu nahi dituzuen pertsona askoren gakoak izango dituzue. Bakoitzak aukeratuko ditu zein diren bakoitzaren konfiantzazko erabiltzaileak. Eta bakoitzak gorde eta banatuko ditu beste pertsona batzuen gakoekin zenbait ziurtatzeko erabilitako sinadura, jasotzen dituen edonork gutxienez sinadura bat edo bi konfiantzaz hartuko dituelakoan. Honek, gako publiko guztientzako konfiantzazko web bat sortzeko beharra ekarriko du.*

Konfiantzazko web mekanismoak zenbait abantaila ditu zentralizatutako gako publikoen azpiegitura baten aldean. Erabiltzaileek ziurtagirien baliozkotasuna begiratzea edo, gutxienez, onartzea nahi izan dute. Ez da arazoarentzako irtenbide onik bilatu.

### Ziurtagiriak 
OpenPGPren azkeneko espezifikazioan, *konfiantzazko sinadurak* erabil daitezke autoritateen ziurtagiriak sortzeko. Konfiantzazko sinadura batek gakoa benetan esandako erabiltzailearena dela eta erabiltzailea konfiantzazkoa dela bera baino maila bat beherago dauden erabiltzaileen gakoak sinatzeko. 0 mailako sinadura bat konfiantzazko web batekin konpara daiteke, izan ere, gakoaren baliozkotasuna bakarrik ziurtatzen baita. 1 mailako sinadurak autorizatutako sinadura baten antzeko konfiantza ematen du, 0 mailako infinitu sinadura sortzeko gai baita. 2 mailako sinadura batean izan behar dute erabiltzaileek konfiantza gehien ziurtagirien zerrenda bat behar duten garaian; gakoaren erabiltzaileari beste gako batzuen ziurtagiriak autorizatzeko aukera ematen dio.

PGPren bertsio guztiek eman dute sortutako identifikazio ziurtagiri bat desegiteko aukera. Hau gako ezkutua galtzean edo publiko egitean beharrezkoa da erabiltzaileak komunikazio segurua erabiltzen jarraitu nahi badu.

Gako publiko bat erabiltzaile jakin batena den edo ez identifikatzearen arazoa ez da PGPrena soilik. Gako publikoa edota ezkutua erabiltzen duten zifratze-sistema guztiek daukate arazo hau, nahiz eta beste ikuspuntu batetik izan eta soluziorik ez dagoen. PGPk, gutxienez, azterketa hau egiteko sistema erabili edo ez aukeratzen uzten dio erabiltzaileari, beste PKI eskema gehienek ez bezala, zeinak ziurtagiri guztiak ziurtagirien baimen zentral batean onartuak izatea behartzen duten.

#### Ziurtagirien formatua 
PGP ziurtagiri batek informazio hau jasotzen du, besteak beste:

* **PGPren bertsio zenbakia**: ziurtagiriarekin lotuta dagoen gakoa sortu duen PGP bertsioa identifikatzen du.
* **Ziurtagiriaren jabearen gako publikoa**: jabearen gako publikoa eta gakoaren algoritmoa (RSA, DH edo DSA).
* **Ziurtagiriaren jabearen informazioa**: erabiltzailearen identifikazio datuak jasotzen ditu, hala nola, izena, erabiltzaile identifikazioa, argazkia…
* **Ziurtagiriaren jaulkitzailearen sinadura digitala**: adierazitako gakoa bertan idatzitako erabiltzaileari dagokiola ziurtatzen duen entitate edo pertsonaren sinadura.
* **Ziurtagiriaren balio-data**: ziurtagiriaren hasiera eta balio-galtze datak. Ziurtagiriak noiz arte balio duen adierazten du.
* **Gakoarentzako algoritmo simetriko gustukoena**: ziurtagiriaren jabeak informazioan zein algoritmo erabiltzea nahiago duen adierazten du (CAST, IDEA edo DES hirukoitza).

PGPren ziurtagirietan, batek baino gehiago sina dezake ziurtagiria baliozkoa dela, hots, adierazten den gako publikoa benetan adierazitako jabearena dela. Honek segurtasuna handitzen du. PGP ziurtagiri batzuk, gako publiko bakarra izaten dute hainbat izenentzako, hau da, gako horren jabea identifikatzen duten izen desberdin guztiak biltzen dira, esaterako, helbide elektronikoa, erabiltzaile izena, argazkia…

### Segurtasun kalitatea 
Publikoki eskuragarri dagoen informazioaren alde, ez da ezagutzen PGPren zifratzea desegingo duen modu kriptografiko edo konputazionalik. Gehiago dena, 1996an, Bruce Schneier zifratzaileak PGPren bertsio zaharrago bat maila militarrean lor daitekeen zifratze metodorik onenetik hurbilen dagoen metodo bezala deskribatu zuen. PGPren bertsio zaharrek akats teorikoak dituztela bilatu da, beraz, berrienak erabiltzea gomendatzen da. Sarean zeharreko garraioan informazioa babesteaz gain, PGPren zifratzeak denbora luzean disko batean gordetako informazioa ere babes dezake.

PGPren zifratzearen segurtasuna kriptoanalistek erabilitako algoritmoak askatzeko aukeren araberakoa da. Adibidez, bertsio originalean RSA algoritmoa saio-gakoak zifratzeko erabiltzen zen. RSAren segurtasuna norabide bakarreko osokoen faktorizazio matematikoaren araberakoa da. PGPren bigarren bertsioan IDEA algoritmoa erabiltzen zen gako simetrikoa zifratzeko; posible da etorkizunean kriptoanalisten aurrean arazoren bat daukala ohartzea. Momentuko PGP edo IDEAren segurtasun akatsak, baldin badaude, ez dira publikoak. Azken bertsioek zifratze algoritmo gehigarriak dituztenez, algoritmoaren arabera aldatzen da kriptografiaren indarra. Momentuan erabiltzen diren algoritmoak ez daude publikatuta.

PGPren bertsio berriagoak egunero ateratzen dira eta ahultasunak zuzentzen dituzte.

## Historia 
### Hasiera 
Phil Zimmermannek sortu zuen PGPren lehen bertsioa 1991n. Izena janarien denda baten izenetik otu zitzaion, “Ralph’s Pretty Good Grocery”, Garrison Keillorren fikziozko herri Lake Wobegonen azaldua. Lehen bertsio honek egileak berak diseinatutako algoritmo simetriko bat erabiltzen zuen, BassOmatic izenekoa. Zimmermann luzaroan nuklearren aurkako aktibista bat izan zen eta PGP zifratzea sortu zuen jendeak segurtasunez mezuak eta fitxategiak gorde zitzan. PGPk bere bidea egin zuen internetera eta berehala munduan zehar zabaldu zen.

### Delitu ikerketa 
1993an Estatu Batuetako Gobernuak Zimmermannen izan zuen helburu lizentziarik gabeko munizioen esportazioen inguruko kasu batean sartuta. Garai hartan, 40 bit baino gehiagoko gakoak munizioak kontsideratzen ziren. PGPk inoiz ez ditu erabili 128 bit baino gutxiagoko gakoak. Urte batzuen ostean, kasua itxi egin zen inongo kargurik egotzi gabe inorri.

Zimmermannek PGPren kode guztia publikatu zuen liburu batean. Mundu osoan zabaldu zen. PGPren kopia bat sortu nahi zuen edonork liburua erosi, eskaneatu eta GNU Compiler Collection erabiliz aplikazioa sor zezakeen. Horrela, munizioen esportazioa ekidin zuen, liburuak esportatzea onartzen baitzen.

Estatu batuetako kriptografiaren inguruko esportazio arauak indarrean jarraitzen dute baina asko malgutu ziren 1990. hamarkadan. PGP jada ez da esportatu ezin den zifratzea eta mundu osoan zehar zabal daiteke, zerrendatuta dauden herrialde, talde edo banako jakin batzuetan izan ezik.

### PGP 3 eta PGP Inc. 
Arazo horien denen artean, Zimmermannen taldeak PGP 3 izeneko bertsioan egin zuen lan, segurtasuna nabarmen hobetzeko, ziurtagirien estruktura berri bat gehituz, aurreko bertsioen akatsak zuzentzeko. Patentatzerako garaian izandako arazoek, proiektua bertan behera uztea eragin zuten.

1996an ikerketa amaitu zenean, enpresa bat ireki zuten PGPren zifratzearen bertsio berriak sortzeko. Viacrypt izenarekin hasi baziren ere, gero PGP Incorporated izena eman zioten. Taldea PGP 3 sisteman oinarritu zen zifratze bertsio berriak sortzeko.

### OpenPGP 
PGP Inc. enpresa, hala ere, patentatze arazoen beldur zen. PGPk mundu osoan zehar hartu zuen garrantzia zela eta, askok beraien software propioa idatzi nahi zuten, PGP 5 oinarrian hartuko zuena (PGP 3 zaharra zena). Orduan, Zimmermannek pentsatu zuen beharrezkoa zela PGPren bertsio libre bat. 1997an, PGP Inc. enpresak OpenPGP estandarra proposatu zuen.

OpenPGP Internet Standards Track zerrendan dago. Bere espezifikazioa RFC 4880an dago. Free Software Foundationek OpenPGPrentzako konpilatzailea sortu du, GNU Privacy Guard. Doan eskuragarri dago kode guztiarekin GNU lizentzia publiko orokorrarekin.

### Network Associates acquisition 
1997 amaieran, Network Associates, Inc. enpresak PGP Inc. erosi zuen. Esportazioak legalki publikatu zituen lehen enpresa izan zen. Garai honetan, PGP taldeak diskoen zifratzea gehitu zuen. 2000. urteko liberalizazioei esker, ez zen kodea gehiago publikatu behar izan.

2001ean, Zimmermannek NAI utzi eta Chief Cryptographer enpresarekin egin zuen lan. Veridis eta beste enpresa batzuekin ere egin du lan. Urrian, NAIk bere PGP akzioak salgai zeudela jakinarazi zuen, beraz, PGPren zifratze gehiagorik ez zen sortuko, akzio bat izan ezik. 2002an denak atzera utzi ziren. NAI enpresak orain McAfee izenean saltzen ditu produktuak.

### Momentuko egoera 
2002an PGP Corporation izeneko enpresa sortu eta PGPren akzioak erosi zituzten. Zimmermann bertan gomendioak ematen eta ikuskatzen egoten da. 2003an, PGP Universal sortu zuten. 2004an, bere aginduen linea propioa jaurti zuen, PGP zifratze plataformaren aplikazioak dituena. 2005ean, Glück & Kanja Technology AG enpresa alemaniarra erosi zuen. which is now PGP Deutschland AG.

## PGP Corporation zifratze aplikazioak 
Nahiz eta hasieran PGP mezuak eta fitxategiak zifratzeko erabiltzen zen, bere erabilera zabaltzen joan da. Gaur egun, PGP zifratze aplikazioek mezu elektronikoak eta fitxategiak, sinadura digitalak, portatilen disko osoaren zifratzea, fitxategi eta karpeten segurtasuna, IM saioetarako babesa, fitxategien garraioen zifratzea eta zerbitzarien babesa eskaintzen dute. Azken bertsioetan http eskaera/erantzunak ere zifratzen dira.

## Erreferentziak 
* Computer World
* Epic
* Phil Zimmermann

## Ikus, gainera 
* GnuPG.
* Kriptografia.
* Sinadura digital.

## Kanpo estekak 
* Zimmermann, Phil: *Why I Wrote PGP*, 1991-06.
* PGP Corporation
* GNU Privacy Guard
* OpenPGP::SDK
* cl.cam.ac.uk PGP information
* MIT Public Key Directory for Registration and Search
* List of public keyservers
* IETF OpenPGP working group
* OpenPGP Alliance
* iPGMail Application