GnuPG/Informacje ogólne

Z Wikibooks, biblioteki wolnych podręczników.

Co to jest[edytuj]

GnuPG jest udostępnianym na licencji GPL w pełni funkcjonalnym zamiennikiem PGP zgodnym ze standardem OpenPGP. Ważne jest, że GnuPG nie używa opatentowanego algorytmu IDEA, dzięki czemu jego używanie nie jest w żaden sposób ograniczone. Jest to oprogramowanie stabilne, działające na systemach zgodnych z POSIX (takich jak GNU/Linux i różne odmiany BSD), Mac OS X a nawet MS-Windows. Sam GnuPG jest programem konsolowym, ale jeśli nie lubisz wpisywania poleceń, to istnieje wiele nakładek graficznych (takie jak GPA pod GNU/Linux lub WinPT pod Windows). Niektóre programy pocztowe (np. Sylpheed-claws) mają wbudowaną obsługę kluczy GnuPG. Inne wymagają instalacji odpowiedniego pluginu. Enigmail to plugin, dzięki któremu Mozilla Thunderbird może korzystać z GnuPG.

Do czego to służy[edytuj]

GnuPG to skrót od GNU Privacy Guard. Jeśli ktoś zna nieco język angielski pewnie domyśla się, że jest to oprogramowanie, które ma dbać o naszą prywatność. Tak właśnie jest, GnuPG jest oprogramowaniem kryptograficznym, które umożliwia bezpieczną komunikację i przechowywanie danych. W czasach, kiedy Internet był tworzony a także w pierwszych latach jego istnienia nie zdawano sobie sprawy z wielu zagrożeń jakie może on ze sobą nieść. Z tego powodu nie został on zaprojektowany w sposób bezpieczny. Większość usług internetowych wykorzystywanych na codzień nie oferuje wystarczającego poziomu bezpieczeństwa. Najlepszym przykładem jest tu poczta elektroniczna. Nasza prywatność może być naruszona przez "podsłuchanie" wiadomości, które wysyłamy lub odbieramy albo, co gorsza, przez podszycie się pod nas. W obecnej sytuacji system poczty elektronicznej nie umożliwia wystarczającej weryfikacji nadawcy. Prawdopodobnie nie zdajesz sobie z tego sprawy. Powinieneś jednak wiedzieć, że KAŻDY może wysłać wiadomość do kogoś podpisując się TWOIM adresem e-mail. Wystarczy tylko wykorzystać źle skonfigurowany serwer pocztowy albo skonfigurowac do tego celu własny (co wbrew pozorom nie jest trudne). Istnieją również pewne programy, które to ułatwiają. Wyobraź sobie teraz jakie zamieszanie może wywołać umyślne i złośliwe wykorzystanie tej wady.

Szyfrowanie asymetryczne[edytuj]

Nie będę się rozwodził nad teorią działania kryptografii asymetrycznej, opiszę po prostu jak ona działa w praktyce w przypadku GnuPG. Najważniejsze jest to, że istnieją dwa powiązane ze sobą klucze - publiczny i prywatny. Na podstawie klucza prywatnego można wygenerować publiczny, ale nie odwrotnie. Z tego powodu tajność klucza prywatnego jest elementem krytycznym - jego ujawnienie wiąże się ze złamaniem systemu.

Szyfrowanie[edytuj]

Do szyfrowania informacji jest używany klucz publiczny. Odszyfrować wiadomość można tylko za pomocą klucza prywatnego, który powinien być w wyłącznym posiadaniu adresata. Klucz publiczny musi mieć każdy kto chce szyfrować wiadomości dla jego właściciela. Dzięki asymetrii, ujawnienie klucza publicznego jest zupełnie bezpieczne (pamietajmy, że za pomocą klucza publicznego nie da się wygenerować prywatnego a więc i odszyfrować wiadomości). Należy zauważyć, że nawet nadawca wiadomości nie jest w stanie jej odszyfrować. Można to porównać do skrzynki z samozatrzaskowym zamkiem. Każdy może tam coś włożyć po czym zatrzasnąć drzwiczki. Klucz do skrzynki ma tylko jedna osoba - adresat i tylko on może ją otworzyć.

Podpisywanie cyfrowe[edytuj]

Różne algorytmy podpisów cyfrowych używają innych technik. Za każdym jednak razem aby podpisać wiadomość potrzebujemy (odwrotnie niż w przypadku szyfrowania) klucza prywatnego. Na podstawie wiadomości tworzony jest tzw. hash, czyli pewien ciąg znaków, który powstał z przekształcenia tej wiadomości za pomocą jakiegoś ogólnie znanego algorytmu. Ważne jest to, że dany ciąg poddany funkcji haszującej za każdym razem daje w wyniku taki sam hash. Następnie ten hash szyfrowany jest za pomocą klucza prywatnego. W ten sposób każdy może sprawdzić autentyczność wiadomości przez rozszyfrowanie hasha kluczem publicznym a następnie porównanie go z osobiście wylicznonym na podstawie wiadomości. Istnieją algorytmy asymetryczne, które umożliwiają zarówno szyfrowanie jak i podpisywanie wiadomości (np. algorytm ElGamala). Istnieją również algorytmy, które umożliwiają jedynie podpisy cyfrowe (np. DSA). Dlaczego więc są one stosowane? Być może dlatego, że są ludzie i rządy (np. rząd USA), którym nie jest na rękę szeroka dostępność skutecznego szyfrowania wiadomości. Nie można było jednak całkowicie pozbawić ludzi możliwości ochrony swojej prywatności, przez co bardzo promowany był system podpisów cyfrowych DSA.

Jak zdobyć GnuPG?[edytuj]

Program GnuPG może być pobrany z oficjalnej strony projektu http://www.gnupg.org. Można tam znaleźć zarówno wersje zródłowe jak i binarki dla różnych systemów i dystrybucji. Instalacja zależy od tego jaki system posiadasz więc nie będę jej tu opisywał (tym bardziej, że nie jest ona skomplikowana).