PGP je zkratka pro „Pretty Good Privacy“ (dost dobré soukromí). Jedná se o šifrovací software pro online komunikační systémy navržený k zajištění soukromí, bezpečnosti a ověřování. Za prvním programem PGP stojí Phil Zimmerman, který uvádí, že kvůli rostoucí společenské poptávce po soukromí ho udělal volně dostupný.
Od jeho vzniku v roce 1991 bylo vytvořeno mnoho verzí softwaru PGP. V roce 1997 předložil Phil Zimmerman sdružení IETF (Internet Engineering Task Force) návrh na vytvoření standardu PGP s otevřeným zdrojovým kódem. Jeho návrh byl přijat a vedl k vytvoření protokolu OpenPGP, který definuje standardní formáty pro šifrovací klíče a zprávy.
Přestože se PGP původně používal pouze k zabezpečení e-mailových zpráv a příloh, dnes má širokou škálu využití, včetně digitálních podpisů, šifrování celého disku a ochrany sítě.
Program PGP původně vlastnila společnost PGP Inc, kterou později koupila společnost Network Associates Inc. Společnost Symantec Corp. koupila v roce 2010 PGP za 300 milionů dolarů a tento termín je dnes ochrannou známkou používanou pro její produkty kompatibilní s OpenPGP.
Jak to funguje?
PGP je jedním z prvních široce dostupných programů, který zavedl kryptografii s veřejným klíčem. Jedná se o hybridní kryptosystém, který k dosažení vysoké úrovně zabezpečení používá symetrické i asymetrické šifrování.
Základní šifrování textu probíhá tak, že se nešifrovaný text (srozumitelná data) převede na šifrový text (nečitelná data). Před samotným šifrováním ale většina systémů PGP provádí kompresi dat. Komprimací souborů s otevřeným textem před jejich převodem šetří PGP místo na disku i dobu přenosu a zároveň zvyšuje bezpečnost.
Po kompresi souboru začíná vlastní proces šifrování. V této fázi je komprimovaný soubor s otevřeným textem zašifrován jednorázovým klíčem, takzvaným klíčem relace. Tento klíč se generuje náhodně pomocí symetrické kryptografie a každá komunikační relace PGP má jedinečný klíč relace.
Následně se pomocí asymetrického šifrování zašifruje samotný klíč relace (1). Zamýšlený příjemce (Bob) poskytne svůj veřejný klíč (2) odesílateli zprávy (Alici), aby mohla zašifrovat klíč relace. Tento krok umožňuje Alici, bez ohledu na bezpečnostní podmínky, bezpečně sdílet klíč relace s Bobem prostřednictvím internetu.
Asymetrické šifrování klíče relace se obvykle provádí pomocí algoritmu RSA. Algoritmus RSA používá řada dalších šifrovacích systémů, včetně protokolu TLS (Transport Layer Security), který zabezpečuje velkou část internetu.
Po přenosu šifrovaného textu zprávy a zašifrovaného klíče relace může Bob použít svůj soukromý klíč (3) k dešifrování klíče relace, který se pak použije k dešifrování šifrovaného textu zpět na původní otevřený text.
Kromě základního procesu šifrování a dešifrování podporuje PGP také digitální podpisy, které plní alespoň tři funkce:
Ověřování: Bob může ověřit, že odesílatelem zprávy byla Alice.
Integrita: Bob si může být jistý, že zpráva nebyla změněna.
Nepopiratelnost: poté, co je zpráva digitálně podepsána, nemůže Alice tvrdit, že ji neodeslala.
Možnosti využití
Jednou z nejčastějších možností využití protokolu PGP je zabezpečení e-mailů. E-mail chráněný pomocí PGP se změní na nečitelný řetězec znaků (šifrovaný text), který je možné dešifrovat jedině pomocí příslušného dešifrovacího klíče. Mechanismy zabezpečující textové zprávy jsou v podstatě stejné a existují i softwarové aplikace, které umožňují implementovat PGP nad jiné aplikace, a přidat tak šifrovací systém k nezabezpečeným službám pro zasílání zpráv.
I když se PGP většinou používá k zabezpečení internetové komunikace, je možné ho použít i k šifrování jednotlivých zařízení. V této souvislosti je možné PGP použít na diskové oddíly počítače nebo mobilního zařízení. Po zašifrování pevného disku bude muset uživatel při každém spuštění systému zadat heslo.
Výhody a nevýhody
Díky kombinaci symetrického a asymetrického šifrování umožňuje PGP uživatelům bezpečně sdílet informace a kryptografické klíče prostřednictvím internetu. Jako hybridní systém využívá PGP výhod bezpečnosti asymetrické kryptografie i rychlosti symetrického šifrování. Kromě bezpečnosti a rychlosti zajišťují digitální podpisy také integritu dat a pravost odesílatele.
Protokol OpenPGP umožnil vznik standardizovaného konkurenčního prostředí a řešení PGP dnes poskytuje řada společností a organizací. Přesto jsou všechny programy PGP, které jsou v souladu se standardy OpenPGP, vzájemně kompatibilní. To znamená, že soubory a klíče vytvořené v jednom programu je možné bez problémů používat v jiném programu.
Pokud jde o nevýhody, systémy PGP jsou složitější na používání a pochopení, zejména pro uživatele bez dostatečných technických znalostí. Za značně nepraktickou je mnohými považována také velká délka veřejných klíčů.
V roce 2018 zveřejnila organizace EFF (Electronic Frontier Foundation) závažné ohrožení zabezpečení EFAIL. EFAIL umožňovalo útočníkům zneužít aktivní obsah HTML v šifrovaných e-mailech k získání přístupu k nešifrovaným verzím zpráv.
O některých problémech, které popsala organizace EFF, ale o kterých komunita PGP věděla už od konce 90. let a ohrožení zabezpečení ve skutečnosti souvisí s rozdílnými implementacemi na straně e-mailových klientů, ne se samotným PGP. Navzdory poplašným a zavádějícím titulkům tedy PGP není prolomený a i nadále je vysoce bezpečný.
Závěrem
PGP je důležitým nástrojem pro ochranu dat už od svého vzniku v roce 1991 a dnes má široké využití a zajišťuje soukromí, bezpečnost a ověření pro řadu komunikačních systémů a poskytovatelů digitálních služeb.
Přestože objev ohrožení zabezpečení EFAIL v roce 2018 vyvolal značné obavy o udržitelnost protokolu, jeho základní technologie je pořád považována za robustní a kryptograficky spolehlivou. Nesmíme ale zapomínat, že různé implementace PGP mohou mít různou úroveň zabezpečení.