Od momentu powstania pierwszej wersji w 1991 r. Wydanych zostało już wiele wersji oprogramowania PGP. W 1997 r. Phil Zimmerman złożył wniosek do Internet Engineering Task Force (IETF) o stworzenie standardu PGP o otwartym kodzie źródłowym. Wniosek został zaakceptowany i doprowadził do utworzenia protokołu OpenPGP, który definiuje standardy formatowania dla kluczy szyfrujących i wiadomości.
PGP chociaż początkowo wykorzystywany był tylko do zabezpieczania wiadomości e-mail i załączników do nich dołączonych, obecnie stosowany jest na wielu płaszczyznach, wliczając w to m.in podpisy cyfrowe, pełne szyfrowanie dysków czy generalnie ochrona sieci.
PGP początkowo należało do spółki PGP Inc. W pewnym momencie została przejęta przez Network Associates Inc. W 2010 r. Symantec Corp. nabył prawa do PGP za 300 mln USD (około 882 mln PLN licząc po kursie z 2010 r.). Termin PGP jest obecnie znakiem towarowym używanym dla produktów zgodnych z OpenPGP.
Jak działa PGP?
Po kompresji plików rozpoczyna się rzeczywisty proces szyfrowania. Na tym etapie skompresowany plik tekstowy jest szyfrowany za pomocą jednorazowego klucza, który jest znany jako klucz sesji. Klucz ten generowany jest w sposób losowy za pomocą odpowiednich algorytmów kryptografii symetrycznej. Co ważne, każda sesja w której odbywa się komunikacja przy użyciu PGP posiada swój unikalny klucz sesji.
Następnie sam klucz sesji (1) jest szyfrowany przy użyciu szyfrowania asymetrycznego: odbiorca (Krystian) dostarcza swój klucz publiczny (2) nadawcy wiadomości (Kasia), aby móc zaszyfrować klucz sesji. Taka konstrukcja sprawia, że Kasia może bezpieczne współdzielić klucza sesji z Krystianem - nawet przez Internet, niezależnie od bezpieczeństwa sieci lub przyjętej przez nich metody komunikacji.
Szyfrowanie asymetryczne klucza sesji zazwyczaj odbywa się za pomocą algorytmu RSA. Obecnie wiele algorytmów szyfrowania korzysta już z dobrodziejstw RSA, wliczając w to m.in protokół Transport Layer Security (TLS), który zabezpiecza dużą część dzisiejszej sieci Internet.
Po przesłaniu zaszyfrowanych danych i zaszyfrowanego klucza sesji Krystian może użyć swojego klucza prywatnego (3) do odszyfrowania klucza sesji, który jest następnie używany do odszyfrowania tekstu zaszyfrowanego z powrotem do oryginalnego tekstu.
Poza podstawowym procesem szyfrowania i deszyfrowania, PGP obsługuje również podpisy cyfrowe - które spełniają co najmniej trzy funkcje:
Uwierzytelnianie: Krystian może sprawdzić, czy nadawcą wiadomości na pewno była Kasia.
Integralność: Krystian może być pewien tego, że wiadomość nie została zmieniona po drodze.
Niezaprzeczalność: po podpisaniu wiadomości, Kasia nie może już stwierdzić, że jej nie wysłała.
Przykłady wykorzystania
Jednym z najbardziej znanych zastosowań PGP jest zabezpieczanie wiadomości e-mail. W wiadomości e-mail, która jest chroniona za pomocą PGP, jej zawartość zamieniana jest na ciąg znaków, który jest całkowicie nieczytelny (inaczej tekst zaszyfrowany),a który może zostać odszyfrowany tylko za pomocą odpowiedniego klucza deszyfrowania. Mechanizm działania PGP w przypadku zabezpieczania zwykłych wiadomości tekstowych jest analogiczny. Obecnie istnieją także już pewne aplikacje, które umożliwiają wdrożenie PGP do innych aplikacji (tzw. wtyczki).
Chociaż PGP jest najczęściej używany do zabezpieczania komunikacji internetowej, może być również stosowany do szyfrowania poszczególnych urządzeń. W tym kontekście PGP można zastosować aby zaszyfrować partycję na dysku twardym komputera lub urządzenia mobilnego. Szyfrowanie dysku twardego wymaga od użytkownika podania hasła przy każdym uruchomieniu systemu.
Wady i zalety
Protokół OpenPGP umożliwił powstanie znormalizowanego i konkurencyjnego środowiska skupionego wokół szyfrowania danych. Rozwiązania PGP są obecnie dostarczane przez wiele firm i organizacji. Mimo to wszystkie programy PGP zgodne ze standardami OpenPGP są ze sobą kompatybilne. Oznacza to, że pliki i klucze wygenerowane w jednym programie mogą być używane bez problemu w innym.
Jeśli chodzi o wady, systemy PGP nie są tak proste w obsłudze i zrozumieniu jak mogłoby się to wydawać, zwłaszcza dla użytkowników o niewielkiej wiedzy techniczne. Kolejną wadą PGP jest długość kluczy publicznych - przez wielu uważane za zdecydowanie zbyt długie.
W 2018 r. Electronic Frontier Foundation (EFF) opublikowała informację na temat poważnej luki występującej powiązanej z PGP, a występującej pod nazwą EFAIL. EFAIL umożliwiał atakującym wykorzystanie aktywnej zawartości HTML w zaszyfrowanych wiadomościach e-mail, aby uzyskać dostęp do nie zaszyfrowanych wersji wiadomości, które zabezpieczane były przez PGP.
Niektóre z problemów i wniosków opisanych w ramach luki EFAIL były już znane społeczności PGP od późnych lat 90., a luki te są związane z różnymi implementacjami ze strony klientów poczty elektronicznej, a nie z samym PGP. Dzięki temu pomimo alarmujących i mylących nagłówków w wielu serwisach informacyjnych, PGP nie jest ani awaryjne, ani podatne na ataki i nadal jest bardzo bezpieczne.
Zakończenie
Od momentu swojego powstania w 1991 roku, PGP cały czas pozostaje podstawowym narzędziem ochrony danych i jest obecnie wykorzystywany w szerokim zakresie aplikacji, zapewniając prywatność, bezpieczeństwo i uwierzytelnianie w wielu systemach komunikacyjnych i dostawców usług cyfrowych.
Chociaż odkrycie i upublicznienie informacji na temat EFAIL w 2018 r. Wzbudziło poważne obawy dotyczące bezpieczeństwa protokołu PGP, podstawowa technologia za nim stojąca jest nadal uważana za solidną i kryptograficznie odporną na ataki. Przy tej okazji warto również zauważyć, że różne implementacje PGP mogą charakteryzować się różnym poziomem bezpieczeństwa.