PGP angliškai reiškia „Pretty Good Privacy“ (liet. „visai neblogas privatumas“). Tai yra šifravimo programinė įranga, skirta internetinių ryšio sistemų privatumui, saugumui ir autentifikavimui užtikrinti. Pirmosios PGP programos kūrėjas yra Philas Zimmermanas. Anot jo, ji padaryta viešai prieinama dėl visuomenėje augančio privatumo poreikio.
Nuo pirmosios programos atsiradimo 1991 m. buvo sukurta daug kitos PGP programinės įrangos. 1997 m. Philas Zimmermanas interneto inžinerijos darbo grupei (IETF) pateikė pasiūlymą sukurti atvirojo kodo PGP standartą. Pasiūlymas buvo priimtas ir paskatino sukurti OpenPGP protokolą, kuriuo apibrėžiami šifravimo raktų ir pranešimų standartų formatai.
Iš pradžių PGP buvo naudojamas tik el. laiškams ir jų priedams apsaugoti, tačiau dabar jis taikomas įvairioms paskirtims, įskaitant skaitmeninius parašus, viso disko šifravimą ir tinklo apsaugą.
Iš pradžių PGP priklausė įmonei PGP Inc, kurią vėliau įsigijo Network Associates Inc. 2010 m. PGP už 300 mln. $ įsigijo bendrovė Symantec Corp. ir dabar šis terminas yra registruotas prekės ženklas, naudojamas šios bendrovės OpenPGP standartą atitinkantiems produktams.
Kaip tai veikia?
PGP yra viena iš pirmųjų plačiai prieinamų programų, kuriose įdiegta kriptografija viešuoju raktu. Tai hibridinė kriptosistema, kurioje naudojamas ir simetrinis, ir asimetrinis šifravimas aukštam saugumo lygiui užtikrinti.
Bazinio teksto šifravimo proceso metu paprastas tekstas (aiškiai suprantami duomenys) konvertuojamas į šifruotą tekstą (nenuskaitomus duomenis). Tačiau prieš atlikdamos šifravimą dauguma PGP sistemų vykdo duomenų glaudinimą. Suglaudindama paprastojo teksto failus prieš juos perduodant PGP programa sutaupo vietos diske ir sutrumpina perdavimo laiką, o kartu ir padidina saugumą.
Po failų glaudinimo prasideda tikrasis šifravimo procesas. Šiame etape suglaudintas paprastojo teksto failas užšifruojamas vienkartiniu raktu, vadinamu seanso raktu. Šis raktas atsitiktinai sugeneruojamas naudojant simetrinę kriptografiją, o kiekvienas PGP ryšio seansas turi unikalų seanso raktą.
Tada pats seanso raktas (1) užšifruojamas naudojant asimetrinį šifravimą: numatytasis gavėjas (Bobas) pateikia savo viešąjį raktą (2) pranešimo siuntėjai (Alisai), kad ji galėtų užšifruoti seanso raktą. Šis veiksmas leidžia Alisai saugiai internetu perduoti seanso raktą Bobui nepriklausomai nuo saugumo sąlygų.
Asimetrinis seanso rakto šifravimas paprastai atliekamas naudojant RSA algoritmą. RSA naudoja daugelis kitų šifravimo sistemų, įskaitant transportavimo lygmens saugos (angl. „Transport Layer Security“, TLS) protokolą, kuriuo yra apsaugota didelė dalis interneto.
Perdavus šifruotą pranešimo tekstą ir užšifruotą seanso raktą, Bobas gali šį seanso raktą iššifruoti naudodamas savo privatų raktą (3) – tada seanso raktu iššifruojamas minėtas šifruotasis tekstas ir vėl gaunamas pradinis paprastasis tekstas.
Be bazinio užšifravimo ir iššifravimo proceso, PGP taip pat palaiko skaitmeninius parašus, kurie atlieka mažiausiai tris toliau nurodytas funkcijas.
Autentifikavimo. Bobas gali patikrinti, ar pranešimo siuntėja yra Alisa.
Vientisumo. Bobas gali įsitikinti, kad pranešimas nebuvo pakeistas.
Neatsisakymo. Pasirašiusi pranešimą skaitmeniniu būdu Alisa negali tvirtinti, kad jo neišsiuntė.
Naudojimo atvejai
Vienas iš labiausiai paplitusių PGP naudojimo būdų yra el. laiškų apsaugojimas. PGP apsaugotas el. laiškas paverčiamas simbolių eilute, kurios neįmanoma perskaityti (dėl šifruoto teksto) ir kuri gali būti iššifruota tik naudojant atitinkamą iššifravimo raktą. Taikomi praktiškai tokie patys mechanizmai kaip ir apsaugant tekstinius pranešimus. Taip pat yra programų, leidžiančių integruoti PGP kartu su kitomis programėlėmis, tokiu būdu iš esmės pridedant šifravimo sistemą prie neapsaugotų pranešimų paslaugų.
PGP dažniausiai naudojamas interneto ryšiui apsaugoti, tačiau juo taip pat gali būti šifruojami atskiri įrenginiai. Šiuo atveju PGP gali būti pritaikytas kompiuterio ar mobiliojo įrenginio disko skaidiniams. Užšifravęs standųjį diską vartotojas turės įvesti slaptažodį kiekvieną kartą, kai sistema paleidžiama.
Privalumai ir trūkumai
Dėl simetrinio ir asimetrinio šifravimo derinimo PGP leidžia vartotojams saugiai internetu perduoti informaciją ir kriptografinius raktus. Kadangi PGP yra hibridinė sistema, ji suteikia asimetrinei kriptografijai būdingą saugumą ir simetriniam šifravimui būdingą greitį. Be saugumo ir greičio, skaitmeniniai parašai taip pat užtikrina duomenų vientisumą ir siuntėjo autentiškumą.
OpenPGP protokolas leido sukurti standartizuotą konkurencinę aplinką – PGP sprendimus dabar teikia įvairios įmonės ir organizacijos. Nepaisant to, visos OpenPGP standartus atitinkančios PGP programos yra viena su kita suderinamos. Tai reiškia, kad vienoje programoje sugeneruoti failai ir raktai gali būti be problemų naudojami kitoje programoje.
Kalbant apie trūkumus, naudoti ir suprasti PGP sistemas nėra paprasta, ypač mažai techninių žinių turintiems vartotojams. Be to, viešieji raktai būna ilgi, o tai, daugelio nuomone, yra gana nepatogu.
2018 m. Electronic Frontier Foundation (EFF) paskelbė apie didelį pažeidžiamumą, pavadintą EFAIL. EFAIL leido užpuolikams išnaudoti aktyvų HTML turinį šifruotuose el. laiškuose, kad gautų prieigą prie paprastojo pranešimų teksto versijų.
Tačiau dalis EFAIL aprašytų problemų PGP bendruomenei jau buvo žinomos nuo XX a. 10-ojo deš. pabaigos – iš tikrųjų šis pažeidžiamumas yra susijęs su skirtingomis el. pašto klientų versijomis, o ne su pačiu PGP. Tad nepaisant nerimą keliančių ir klaidinančių antraščių PGP sprendimas nėra pakirstas ir toliau išlieka labai saugus.
Baigiamosios mintys
Nuo PGP sukūrimo 1991 m. tai yra esminis duomenų apsaugos įrankis, šiuo metu naudojamas įvairioms programoms – juo užtikrinamas skirtingų ryšio sistemų ir skaitmeninių paslaugų teikėjų privatumas, saugumas ir autentifikavimas.
Nors 2018 m. aptiktas EFAIL trūkumas sukėlė didelį susirūpinimą dėl protokolo tinkamumo, pagrindinė technologija vis dar laikoma atsparia ir kriptografiškai patikima. Verta paminėti, kad saugumo lygis gali priklausyti ir nuo PGP pritaikymo būdo.