PGP (Pretty Good Privacy) to oprogramowanie szyfrujące zaprojektowane w celu zapewnienia prywatności, bezpieczeństwa i uwierzytelniania w systemach komunikacji online. Phil Zimmerman stworzył pierwszy program PGP i według niego stał się on publicznie dostępny w związku z rosnącym zapotrzebowaniem na prywatność.

Od czasu jego wprowadzenia w 1991 roku powstało wiele wersji oprogramowania PGP. W 1997 roku Phil Zimmerman zaproponował utworzenie Internet Engineering Task Force (IETF), powszechnie akceptowanego standardu open source dla PGP. Propozycja została zaakceptowana i doprowadziła do stworzenia protokołu OpenPGP, który definiuje standardowe formaty szyfrowania kluczy i wiadomości.

Chociaż pierwotnie protokół PGP był używany wyłącznie do ochrony wiadomości e-mail i załączników, obecnie jest używany szerzej, włączając podpisy cyfrowe, szyfrowanie całego dysku i bezpieczeństwo sieci.

PGP była pierwotnie własnością PGP Inc, która później została przejęta przez Network Associates Inc. W 2010 roku Symantec Corp. kupił PGP za 300 milionów dolarów i termin ten jest obecnie znakiem towarowym używanym w ich produktach kompatybilnych 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 szyfrowanie danych tekstowych (które można łatwo zrozumieć) przekształca je w tekst zaszyfrowany (dane nieczytelne). Jednak zanim rozpocznie się proces szyfrowania, większość systemów PGP wykonuje kompresję. Kompresując pliki tekstowe, PGP oszczędza miejsce na dysku i czas przesyłania, a także poprawia bezpieczeństwo.

Po skompresowaniu pliku rozpoczyna się proces szyfrowania. Na tym etapie skompresowany plik tekstowy jest szyfrowany jednorazowym kluczem zwanym kluczem sesyjnym. Klucz ten jest generowany losowo przy użyciu kryptografii symetrycznej, a każda sesja PGP ma swój własny, unikalny klucz sesyjny.

Klucz sesji (1) jest następnie 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 Bobowi przez Internet, niezależnie od poziomu bezpieczeństwa.

Что такое PGP?

Asymetryczne szyfrowanie klucza sesji jest zwykle wykonywane przy użyciu algorytmu RSA. Korzysta z niego wiele innych systemów szyfrowania, w tym protokół Transport Layer Security (TLS), który zabezpiecza większość Internetu.

Po uzyskaniu 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 zostanie użyty do odszyfrowania zaszyfrowanego tekstu.

Что такое 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;

  • Integralność: Bob może mieć pewność, że wiadomość jest nienaruszona;

  • Niezaprzeczalność: Gdy wiadomość zostanie podpisana cyfrowo, Alicja nie będzie mogła twierdzić, że jej nie wysłała.


Opcje aplikacji

Jednym z najczęstszych zastosowań PGP jest zabezpieczanie poczty elektronicznej. Wiadomość zabezpieczona PGP zamienia się w ciąg znaków, którego nie można odczytać (tekst zaszyfrowany) i który można odszyfrować jedynie przy użyciu odpowiedniego klucza. Aby zapewnić bezpieczeństwo wiadomości, mechanizm bezpieczeństwa jest zasadniczo taki sam, istnieją także aplikacje, które pozwalają na implementację protokołu PGP na innych, skutecznie integrując szyfrowanie z niezabezpieczonymi usługami przesyłania wiadomości.

Chociaż protokół PGP jest przeznaczony przede wszystkim do zabezpieczania komunikacji internetowej, może być również używany do szyfrowania poszczególnych urządzeń. W takim przypadku program można zastosować do partycji dysku na komputerze PC lub urządzeniu mobilnym. Podczas szyfrowania dysku twardego użytkownik będzie musiał podać hasło przy każdym uruchomieniu systemu.


Zalety i wady

Dzięki połączeniu szyfrowania symetrycznego i asymetrycznego, PGP umożliwia użytkownikom bezpieczną wymianę informacji i kluczy kryptograficznych przez Internet. Jako system hybrydowy, PGP ma zalety zarówno bezpieczeństwa kryptografii asymetrycznej, jak i szybkości szyfrowania symetrycznego. Oprócz tych korzyści, PGP wdraża podpisy cyfrowe, aby zapewnić integralność danych i autentyczność nadawcy.

Protokół OpenPGP stworzył ujednolicone środowisko konkurencyjne, a rozwiązania PGP są obecnie oferowane przez kilka firm i organizacji. Jednakże wszystkie programy PGP zgodne ze standardami OpenPGP są ze sobą kompatybilne. Oznacza to, że pliki i klucze utworzone w jednym programie można bez problemu wykorzystać w innym.

Jeśli chodzi o wady, systemy PGP nie są łatwe w użyciu i zrozumieniu, szczególnie dla użytkowników o słabych umiejętnościach technicznych. Ponadto duża długość kluczy publicznych jest przez wielu uważana za niewygodną.

W 2018 roku Electronic Frontier Foundation (EFF) opublikowała poważną lukę o nazwie EFAIL. Ten problem umożliwia hakerom użycie aktywnej zawartości HTML w zaszyfrowanych wiadomościach e-mail w celu uzyskania dostępu do odszyfrowanej wersji wiadomości.

Jednakże niektóre problemy opisane w EFAIL były już znane społeczności użytkowników PGP od końca lat 90. XX wieku i tak naprawdę luka wynikała z różnych implementacji klientów poczty e-mail, a nie z samego PGP. Zatem pomimo alarmujących i wprowadzających w błąd nagłówków, PGP jest nadal wysoce bezpieczne.


Wniosek

Od swojego powstania w 1991 r. PGP jest niezbędnym narzędziem zapewniającym bezpieczeństwo danych i jest obecnie używany w większości aplikacji, zapewniając prywatność, bezpieczeństwo i uwierzytelnianie dla systemów komunikacyjnych i dostawców usług cyfrowych. 

Chociaż ujawnienie EFAIL w 2018 r. wzbudziło poważne obawy co do wykonalności protokołu, technologia leżąca u jego podstaw jest nadal uważana za bezpieczną i solidną pod względem kryptograficznym. Warto zauważyć, że różne implementacje PGP mogą mieć różne poziomy bezpieczeństwa.