GNU Privacy Guard to system do szyfrowania, podpisywania i sprawdzania tożsamości. Ponieważ za każdym razem mam problem z odpowiednią instalacją, postanowiłem spisać jak to się robi. Może jeszcze komuś się przyda.

GPG w wersji desktopowej składa się z trzech elementów:

  1. programu szyfrującego/podpisującego
  2. agenta przechowującego klucze kryptograficzne
  3. programu do wpisywania hasła do kluczy

Ogólny schemat działania GPG wygląda nasŧepująco:

  1. jakiś program (np. klient pocztowy) stwierdza że musi coś podpisać/zaszyfrować, względnie odszyfrować/zweryfikować podpis
  2. wywołuje w tym celu gpg
  3. gpg zwraca się do agenta, z prośbą o niezbędny klucz kryptograficzny
  4. agent uruchamia program pytający o hasło do klucza
  5. użytkownik wpisuje hasło
  6. agent przekazuje klucz do gpg
  7. gpg robi to o co jest poproszone i zwraca przetworzone dane do programu który je wywołał

To oczywiście uproszczony schemat zakładający że wszystko pójdzie zgodnie z planem i nie uwzględniający wielu możliwości

Te trzy, tu przedstawione, składniki mogą być zupełnie różnymi programami. Dlatego, np. w Ubuntu, znajdują się w różnych pakietach (o czym zdarza mi się zapomnieć)

Te pakiety to:

  • program szyfrujący deszyfrujący: gnupg (nie znam zamienników)
  • agent do kluczy: do wyboru: gnupg-agent, seahorse...
  • program do wpisywania haseł do kluczy: (jest ich kilka)
    • pinentry-gtk - dla użytkowników Gnome 1.2
    • pinentry-qt - dla użytkowników KDE
    • pinentry-gtk2 - dla użytkowników Gnome 2.x
    • pinentry-curses - dla użytkowników konsoli

W naszym systemie musimy mieć zainstalowane gnupg, dowolna ilość agentów i dowolną ilość programów do wpisywania haseł. Jeśli jednak zainstalujemy wiele agentów, musimy liczyć się z tym że będziemy musieli samodzielnie je skonfigurować (bez tego mogą być kłopoty).