PGP (Pretty Good Privacy) — definicja, szyfrowanie i podpis e-mail
PGP — definicja, działanie, szyfrowanie i podpis e-mail. Krok po kroku: klucze, OpenPGP, konfiguracja i praktyczne porady dla bezpiecznej komunikacji pocztowej.
Pretty Good Privacy (PGP) to program komputerowy, który zapewnia kryptograficzną prywatność i uwierzytelnianie. PGP jest często używany do podpisywania, szyfrowania i odszyfrowywania poczty elektronicznej (e-maili) w celu zwiększenia bezpieczeństwa komunikacji e-mailowej. Pierwotnie został stworzony przez Phila Zimmermanna w 1991 roku.
PGP i inne podobne produkty wykorzystują standard OpenPGP (RFC 4880) do szyfrowania i odszyfrowywania danych.
Co to jest PGP i dlaczego się go używa
PGP to system kryptografii asymetrycznej, który pozwala na bezpieczne przesyłanie wiadomości oraz potwierdzanie tożsamości nadawcy. Dzięki PGP możesz:
- zaszyfrować wiadomość tak, aby tylko upoważniona osoba (posiadająca odpowiedni klucz prywatny) mogła ją odczytać,
- podpisać cyfrowo wiadomość, co pozwala odbiorcy zweryfikować, że wiadomość pochodzi od Ciebie i nie została zmieniona,
- szyfrować pliki i tworzyć bezpieczne archiwa,
- zarządzać kluczami oraz ich zaufaniem (tzw. „web of trust”).
Jak działa PGP — najważniejsze koncepcje
- Klucze publiczny/prywatny: każdy użytkownik generuje parę kluczy — publiczny (do udostępniania innym) i prywatny (który należy chronić). Wiadomość zaszyfrowana kluczem publicznym może być odszyfrowana tylko kluczem prywatnym tej osoby.
- Szyfrowanie hybrydowe: PGP używa kombinacji kryptografii asymetrycznej (do bezpiecznej wymiany klucza sesyjnego) oraz szyfrowania symetrycznego (do szyfrowania samej treści). Dzięki temu jest szybkie i bezpieczne.
- Podpis cyfrowy: podpis tworzy się przez obliczenie skrótu (hash) wiadomości i zaszyfrowanie go kluczem prywatnym nadawcy. Odbiorca odszyfrowuje podpis kluczem publicznym nadawcy i porównuje hashe.
- Odcisk (fingerprint): krótki, unikatowy identyfikator klucza publicznego, używany do jego weryfikacji przez zaufany kanał.
Zarządzanie kluczami i model zaufania
- Web of Trust: model zaufania używany tradycyjnie w PGP — użytkownicy podpisują klucze innych użytkowników, tworząc sieć powiązań zaufania.
- Serwery kluczy i WKD: publiczne klucze można publikować na serwerach kluczy (HKP) lub korzystać z Web Key Directory (WKD), aby inni łatwo znaleźli Twój klucz.
- Revokacja: zawsze wygeneruj certyfikat unieważnienia (revocation certificate) po utworzeniu klucza i przechowuj go w bezpiecznym miejscu — przyda się, jeśli zgubisz klucz prywatny lub zostanie skompromitowany.
Implementacje i narzędzia
Najpopularniejsze i powszechnie rekomendowane implementacje to:
- GnuPG (GPG) — wolne oprogramowanie zgodne ze standardem OpenPGP, dostępne na Linux, Windows i macOS, często używane w skryptach i aplikacjach.
- Gpg4win (Windows) — pakiet zawierający GnuPG, Kleopatra (gui) i integracje z systemem.
- Kleopatra, Enigmail (historycznie) — narzędzia do integracji z klientami poczty; obecnie Thunderbird ma wbudowane wsparcie OpenPGP, a dla webmaili dostępne są rozszerzenia typu Mailvelope.
- Niektóre usługi pocztowe (np. ProtonMail) oferują zgodność z OpenPGP lub narzędzia do importu/eksportu kluczy.
Formaty i użycie z pocztą elektroniczną
- ASCII Armor: PGP potrafi zamienić dane binarne na tekstowy blok rozpoczynający się od -----BEGIN PGP MESSAGE-----, co ułatwia przesyłanie e-mailami.
- Szyfrowanie plików: poza e-mailami PGP jest używane do szyfrowania pojedynczych plików lub archiwów.
- Praktyczne kroki użycia z e-mailem:
- wygeneruj parę kluczy (publiczny i prywatny),
- udostępnij swój klucz publiczny odbiorcom lub umieść go na serwerze kluczy/WKD,
- zweryfikuj odciski (fingerprints) kluczy osób, z którymi wymieniasz wiadomości,
- szyfruj wiadomości kluczem publicznym odbiorcy i podpisuj za pomocą własnego klucza prywatnego.
Dobre praktyki i bezpieczeństwo
- Używaj silnej frazy (passphrase) do ochrony klucza prywatnego i nigdy nie udostępniaj klucza prywatnego innym.
- Regularnie twórz kopie zapasowe klucza prywatnego oraz przechowuj certyfikat unieważnienia w bezpiecznym miejscu.
- Weryfikuj odciski kluczy przez zaufany kanał (np. rozmowa telefoniczna, osobiste spotkanie) zamiast polegać wyłącznie na serwerach kluczy.
- Ustaw rozsądne daty wygaśnięcia klucza i odnawiaj je w razie potrzeby.
- Stosuj aktualne algorytmy i długości kluczy — obecnie rekomendowane są m.in. RSA 3072/4096 lub nowoczesne krzywe eliptyczne (Ed25519, Curve25519) w zależności od implementacji.
Ograniczenia i zagrożenia
- Modele zaufania (web of trust) mogą być trudne do zarządzania na większą skalę — w praktyce wiele organizacji korzysta z hybrydowych rozwiązań lub PKI.
- Publiczne serwery kluczy przechowują klucze bez centralnej kontroli — usunięcie klucza z serwera może być trudne, jeśli został opublikowany.
- Bezpieczeństwo zależy od ochrony klucza prywatnego i siły hasła; skompromitowany klucz oznacza utratę poufności i/lub możliwości podszywania się.
- PGP nie chroni przed metadata (np. nagłówkami e-maili) — szyfrowana treść nie ukryje informacji o tym, kto koresponduje z kim.
Podsumowanie
PGP (i standard OpenPGP) to sprawdzona technologia do szyfrowania i podpisywania wiadomości oraz plików. Przy prawidłowym użyciu i zarządzaniu kluczami zapewnia wysoki poziom poufności i uwierzytelniania. W praktyce warto korzystać z zaufanych implementacji (np. GnuPG), weryfikować odciski kluczy, tworzyć kopie zapasowe i revokacje oraz stosować aktualne algorytmy kryptograficzne.
OpenPGP
OpenPGP znajduje się w Internet Standards Track; aktualna specyfikacja to RFC 4880 (listopad 2007). OpenPGP jest nadal w fazie rozwoju, a następca RFC 2440, czyli RFC 4880, został uznany za proponowany standard. Wiele klientów poczty elektronicznej zapewnia bezpieczeństwo poczty elektronicznej zgodne z OpenPGP, jak opisano w RFC 3156.
Fundacja Wolnego Oprogramowania stworzyła swój własny program zgodny z OpenPGP o nazwie GNU Privacy Guard (w skrócie GnuPG lub GPG). GnuPG jest swobodnie dostępny wraz z całym kodem źródłowym na licencji GNU General Public License (GPL) i jest utrzymywany oddzielnie od kilku graficznych interfejsów użytkownika (GUI), które współdziałają z biblioteką GnuPG w zakresie szyfrowania, deszyfrowania i podpisywania (zobacz KGPG, Seahorse, MacGPG). Kilku innych producentów stworzyło również oprogramowanie zgodne z OpenPGP.
Powiązane strony
- FreeOTFE - Szyfrowanie dysków
- PuTTY - szyfrowanie SSH
Przeszukaj encyklopedię