PGP oznacza całkiem dobrą prywatność. Jest to oprogramowanie szyfrujące zaprojektowane w celu zapewnienia prywatności, bezpieczeństwa i uwierzytelniania systemów komunikacji online. Za pierwszym programem PGP stoi Phil Zimmerman, który według niego został udostępniony bezpłatnie ze względu na rosnące zapotrzebowanie społeczne na prywatność.

Od momentu powstania w 1991 roku powstało wiele wersji oprogramowania PGP. W 1997 roku Phil Zimmerman przedstawił Grupie Zadaniowej ds. Inżynierii Internetu (IETF) propozycję stworzenia standardu PGP o otwartym kodzie źródłowym. Propozycja została zaakceptowana i doprowadziła do stworzenia protokołu OpenPGP, który definiuje standardowe formaty kluczy szyfrujących i wiadomości.

Chociaż początkowo używany był wyłącznie do zabezpieczania wiadomości e-mail i załączników, PGP jest obecnie stosowany w szerokim zakresie zastosowań, w tym w podpisach cyfrowych, szyfrowaniu całego dysku i ochronie sieci.

PGP był początkowo własnością firmy PGP Inc, która później została przejęta przez Network Associates Inc. W 2010 roku firma Symantec Corp. nabyła PGP za 300 milionów dolarów i obecnie termin ten jest znakiem towarowym używanym w odniesieniu do jej produktów zgodnych z OpenPGP.


Jak to działa?

PGP jest jednym z pierwszych powszechnie dostępnych programów implementujących kryptografię klucza publicznego. Jest to kryptosystem hybrydowy, który wykorzystuje zarówno szyfrowanie symetryczne, jak i asymetryczne, aby osiągnąć wysoki poziom bezpieczeństwa.

W podstawowym procesie szyfrowania tekstu tekst jawny (dane, które można łatwo zrozumieć) jest konwertowany na tekst zaszyfrowany (dane nieczytelne). Zanim jednak nastąpi proces szyfrowania, większość systemów PGP wykonuje kompresję danych. Kompresując pliki w postaci zwykłego tekstu przed ich przesłaniem, PGP oszczędza zarówno miejsce na dysku, jak i czas transmisji, jednocześnie poprawiając bezpieczeństwo.

Po kompresji pliku rozpoczyna się właściwy proces szyfrowania. Na tym etapie skompresowany plik tekstowy jest szyfrowany za pomocą klucza jednorazowego, zwanego kluczem sesji. Klucz ten jest generowany losowo przy użyciu kryptografii symetrycznej, a każda sesja komunikacyjna PGP ma unikalny klucz sesji.

Następnie sam klucz sesji (1) jest szyfrowany przy użyciu szyfrowania asymetrycznego: zamierzony odbiorca (Bob) udostępnia swój klucz publiczny (2) nadawcy wiadomości (Alicja), aby mogła ona zaszyfrować klucz sesji. Ten krok umożliwia Alicji bezpieczne udostępnienie klucza sesji Bobowi przez Internet, niezależnie od warunków bezpieczeństwa.

What Is PGP?

Szyfrowanie asymetryczne klucza sesyjnego zwykle odbywa się za pomocą algorytmu RSA. Wiele innych systemów szyfrowania wykorzystuje RSA, w tym protokół Transport Layer Security (TLS), który zabezpiecza dużą część Internetu.

Po przesłaniu zaszyfrowanego tekstu wiadomości i zaszyfrowanego klucza sesji Bob może użyć swojego klucza prywatnego (3) do odszyfrowania klucza sesji, który następnie służy do odszyfrowania tekstu zaszyfrowanego z powrotem do oryginalnego tekstu jawnego.

What Is PGP?

Oprócz podstawowego procesu szyfrowania i deszyfrowania, PGP obsługuje także podpisy cyfrowe - które spełniają co najmniej trzy funkcje:

  • Uwierzytelnianie: Bob może sprawdzić, czy nadawcą wiadomości była Alicja.

  • Uczciwość: Bob może być pewien, że wiadomość nie została zmieniona.

  • Niezaprzeczalność: po podpisaniu wiadomości cyfrowej Alicja nie może twierdzić, że jej nie wysłała.


Przypadków użycia

Jednym z najczęstszych zastosowań protokołu PGP jest zabezpieczanie wiadomości e-mail. Wiadomość e-mail zabezpieczona za pomocą protokołu PGP jest zamieniana na ciąg znaków, który jest nieczytelny (tekst zaszyfrowany) i można go odszyfrować jedynie za pomocą odpowiedniego klucza odszyfrowującego. Mechanizmy działania są praktycznie takie same w przypadku zabezpieczania wiadomości tekstowych, a istnieją również aplikacje, które pozwalają na implementację protokołu PGP na innych aplikacjach, skutecznie dodając system szyfrowania do niezabezpieczonych usług przesyłania wiadomości.

Chociaż protokół PGP jest najczęściej używany do zabezpieczania komunikacji internetowej, można go również zastosować do szyfrowania poszczególnych urządzeń. W tym kontekście PGP można zastosować do partycji dysku komputera lub urządzenia mobilnego. Szyfrując dysk twardy, użytkownik będzie musiał podać hasło przy każdym uruchomieniu systemu.


Zalety i wady

Dzięki połączonemu wykorzystaniu szyfrowania symetrycznego i asymetrycznego, PGP umożliwia użytkownikom bezpieczne udostępnianie informacji i kluczy kryptograficznych przez Internet. Jako system hybrydowy, PGP korzysta zarówno z bezpieczeństwa kryptografii asymetrycznej, jak i szybkości szyfrowania symetrycznego. Oprócz bezpieczeństwa i szybkości podpisy cyfrowe zapewniają integralność danych i autentyczność nadawcy.

Protokół OpenPGP pozwolił na pojawienie się ustandaryzowanego środowiska konkurencyjnego, a 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 można bez problemu wykorzystać w innym.

Jeśli chodzi o wady, systemy PGP nie są tak proste w użyciu i zrozumieniu, szczególnie dla użytkowników z niewielką wiedzą techniczną. Ponadto duża długość kluczy publicznych jest przez wielu uważana za dość niewygodną.

W 2018 roku Electronic Frontier Foundation (EFF) opublikowała poważną lukę o nazwie EFAIL. EFAIL umożliwił atakującym wykorzystanie aktywnej zawartości HTML w zaszyfrowanych wiadomościach e-mail w celu uzyskania dostępu do wersji wiadomości w postaci zwykłego tekstu.

Jednakże niektóre z problemów opisanych przez EFAIL były już znane społeczności PGP od końca lat 90-tych i tak naprawdę luki są związane z różnymi implementacjami klientów poczty e-mail, a nie z samym PGP. Zatem pomimo alarmujących i wprowadzających w błąd nagłówków, protokół PGP nie został uszkodzony i nadal jest wysoce bezpieczny.


Zamykanie myśli

Od czasu opracowania w 1991 r. PGP jest niezbędnym narzędziem do ochrony danych i jest obecnie używany w szerokiej gamie zastosowań, zapewniając prywatność, bezpieczeństwo i uwierzytelnianie dla kilku systemów komunikacyjnych i dostawców usług cyfrowych.

Chociaż odkrycie luki w EFAIL w 2018 r. wzbudziło poważne obawy co do żywotności protokołu, podstawowa technologia jest nadal uważana za solidną i solidną pod względem kryptograficznym. Warto zauważyć, że różne implementacje PGP mogą prezentować różne poziomy bezpieczeństwa.