GPG #1 Teoria i podstawy zarządzania bazą danych kluczy

Uwaga: Ten wpis został utworzony ponad rok temu. Informacje w nim zawarte mogą być nieaktualne!

GnuPG jest udostępnianym na licencji GPL w pełni funkcjonalnym zamiennikiem PGP zgodnym ze standardem OpenPGP. Służy do bezpiecznego przechowywania danych i autoryzacji osób. Jedną z najważniejszych cech GPG jest to, że wykorzystuje szyfrowanie asymetryczne – w najprostszym rozumieniu oznacza to, że zaszyfrowanych danych tą samą metodą nie można odszyfrować. Do tych procesów wykorzystuje się:

  • Klucz publiczny – do szyfrowania
  • Klucz prywatny – do odszyfrowywania

Klucz publiczny jak sama nazwa wskazuje jest publikowany przez daną osobę w sposób jak najbardziej jawny, tak żeby każdy mógł mieć do niego dostęp. Jeżeli plik A zaszyfrujemy dzięki pewnemu kluczowi, to odpowiada mu tylko JEDEN klucz prywatny, który jest zdolny do poprawnego odszyfrowania pliku. Dzięki temu mamy pewność, że nie wpadnie ten plik w niepowołane ręce, zakładając, że właściciel z nikim nie dzielił się kluczem prywatnym. GPG nie miałoby większego sensu, gdyby dostęp do niego miał nie tylko On. Skoro już wiemy co nieco, przejdźmy do tworzenia własnego klucza :)

Najpierw zaopatrzmy się w GPG:

sudo apt-get install pgp

Następnie rozpocznijmy procedurę tworzenia pary kluczy:

sudo gpg --gen-key

Wybierzmy pierwszą opcję, dzięki której będziemy mogli podpisywać (o tym w następnym artykule) oraz szyfrować dane. Następnie podajemy wszystkie dane personalne o jakie poprosi nas program. Należy być uważnym przy wyborze długości ważności kluczy. Jeśli chcemy szyfrować naprawdę istotne dane to lepiej wybrać opcję inną od 0. Długość klucza można ustawić jako domyślną.

Nareszcie jesteśmy w posiadaniu pary kluczy :) Spróbujmy więc zaszyfrować plik szyfrowanie o dowolnej zawartość.

Dzięki poleceniu:

sudo gpg --output szyfrowanie.gpg --ecrypt szyfrowanie
  • określiliśmy nazwę wyjściową pliku binarnego za pomocą –output
  • zaszyfrowaliśmy plik szyfrowanie za pomocą –encrypt

Następnie poprosi nas o adresata pliku, którym jesteśmy my. Wpiszmy więc nasze imię i nazwisko podane podczas tworzenia pary kluczy lub email i wciśnijmy jeszcze raz Enter. W ten sposób zaszyfrowaliśmy plik dla siebie i jesteśmy w stanie go odszyfrować (gdybyśmy nie byli adresatem, to odszyfrowanie nie byłoby możliwe). Robimy to w bardzo prosty sposób:

sudo gpg szyfrowanie.pgp

Podajemy hasło naszego klucza prywatnego i… nasz plik jest odszyfrowany!

Źródło: WikiBooks
Jeżeli powyższy artykuł nie rozwiązał lub rozwiązał częściowo Twój problem, dodaj swój komentarz opisujący, w którym miejscu napotkałeś trudności.
Mile widziane komentarze z uwagami lub informacjami o rozwiązaniu problemu.
  • maxxo

    Czy podpisywac klucze z witryn np. Dropbox ,Chromium i innych ??

    • Yuri20

      Jeśli odciski „palców” się zgadzają, to tak. O tym w następnym artykule.

      • maxxo

        Dzieki !

  • http://404.g-net.pl salvadhor

    Jakie są przesłanki generowania takich kluczy dla użytkownika root (sudo), a nie dla użytkownika który ma być posiadaczem tych kluczy?

    Wyobraźmy sobie sytuację, że z komputera korzysta dwóch użytkowników – hasło wygenerowane przez jednego z nich dla roota będzie kompletnie nieużywalne dla drugiego użytkownika (lub nadpisane przy próbie stworzenia ‚swojego’ klucza).

    Poza tym, taki klucz nie będzie widoczny w środowisku użytkownika przez programy domyślnie odczytujące klucze użytkownika z jego katalogu domowego.

    A jeszcze poza tym, do generowania kluczy, zarządzania nimi, szyfrowania plików/folderów itp, są normalne programy graficzne, np. Seahorse (paczki: nautilus + seahorse + seahorse-plugins – i po wygenerowania klucza za pomocą seahorse, szyfrowanie w nautilusie mamy pod prawym przyciskiem w menu).

  • Yuri20

    Klucz prywatny da się wyeksportować i jeżeli komuś ufamy, to można mu go po prostu dać. Tym bardziej jeśli chodzi o dwa konta na tym samym komputerze. A co do nakładek graficznych: to już jest mała przesada, żeby do kilku operacji na kluczach robić GUI :P Zresztą wspomnę o tym w następnym artykule.

    • http://www.ubuntu-pomoc.org Szmitas

      Moim zdaniem nie ma mowy o „dawaniu komuś” swojego klucza prywatnego. Po to on jest, aby był przypisany do jednej, konkretnej osoby i służył np. w procesie uwierzytelniania wiadomości.

  • filips

    A czy jest planowane jakieś Signing Party?

  • Yuri20

    A cóż to znaczy? :D

  • Yuri20

    Haha, ciekawa rzecz. W następnym artykule (trochę się opóźnia przez mój brak czasu) postaram się o coś takiego, ale bęzie to raczej via www :D

    • filips

      Przez WWW to raczej mija się z celem, bo chodzi o zidentyfikowanie uczestników w realu (np wg dowodu osobistego – zobacz: http://lumd.linux.pl/lecture/03/lumd_ksp.htm)
      Ale fajnie jakbyś opisał ideę – może ktoś będzie chętny :)

  • Pingback: Ubuntu - pomoc | GPG Podpisywanie, certyfikat unieważniający, eksport klucza publicznego, weryfikacja klucza()