def

  • Klucz publiczny jest kluczem szyfrującym.
    Jego nazwa wzięła się z tytułu tego iż powinien być dostępny dla wszystkich.
  • Klucz publiczny i prywatny danego użytkownika stanowią unikalną parę.
  • Osoba chcąca wysłać zaszyfrowaną wiadomość/plik do właściciela klucza szyfruje ją jego kluczem publicznym.
  • Wiadomość taką można rozszyfrować tylko odpowiednim kluczem prywatnym (stanowiącym parę z kluczem publicznym).
  • Osoba szyfrująca plik czyimś kluczem publicznym nie może go ponownie przeczytać.
  • Podpis cyfrowy natomiast polega na tym, iż w procesie szyfrowania (podpisu) wykorzystujemy klucz prywatny.
    Plik/wiadomość będzie można odszyfrować tylko kluczem publicznym pasującym do klucza prywatnego.
    Dzięki temu odbiorca będzie pewien, że dostaje plik/wiadomość od pożądanej przez niego osoby.
  • Obie funkcje tj. szyfrowanie i podpisanie cyfrowe, można łączyć do jednego pliku/wiadomośći
    Najpierw wiadomość/plik podpisuje się kluczem prywatnym nadawcy, a potem szyfruje się kluczem publicznym odbiorcy.
    Odbiorca odwraca ten proces.

generacja pary kluczy (publiczny i prywatny):

  • gpg –gen-key

odcisk palca (weryfikacja klucza publicznego):

  • gpg –fingerprint
  • gpg –with-fingerprint [plik]
  • /etc/pki/rpm-gpg #lokalizacja kluczy redhat,fedora

pliki baz

  • pubring.gpg #publiczna baza domyślna, widoczne przy gpg -k
  • secring.gpg #prywatna baza domyślna, widoczne przy gpg -K
  • gpg.conf #plik konfiguracji

lista kluczy w bazie

  • gpg [ -k | –list-keys] [user] #baza ~/.gnupg/pubring
  • gpg [ -K | –list-secret-keys ] [user] #baza ~/.gnupg/secring

lista podpisów dla kluczy publicznych

  • gpg –list-sigs

sprawdzanie podpisu

  • gpg –verify [signed_file] #sprawdzanie podpisu
  • gpg –check-sigs #lista i sprawdzenie podpisów kluczy

edycja klucza

  • gpg –edit-key [user_ID]

podpisywanie klucza publicznego w bazie

  • w przypadku błędu:
    • It is NOT certain that the key belongs to the person named in the user ID.
  • najpierw należy wygenerować swój klucz prywatny a potem podpisać klucz publiczny:
    • gpg –edit-key
    • Command> sign

import klucza do bazy:

  • gpg –import [pubkeyfile_path]

export kluczy

publiczny

  • binarnie:
    • gpg –export [user] > [output_file]
  • ascii
    • gpg -a –export [user] > [output_file]

prywatny

  • gpg -a –export-secret-keys [user]> [output_file]

usuwanie klucza

  • gpg –delete-keys [user] [baza]
  • gpg –delete-secret-keys [user] [baza]

podpisywanie pliku

  • każda osoba posiadająca klucz publiczny nadawcy może go zweryfikować i być pewnym że nie została ona zminiona,
    oczywiście sygnaturę można wysłać w osobnym pliku
  • gpg -u [localuser] -s [file] #opcja -u ustawia defaultowy klucz prywatny, bez tej opcji zostanie użyty pierwszy klucz wybrany z bazy
  • gpg -s [file] #podpis skonwertowany do ASCII
  • gpg –clearsign [file] #podpis i nie kompresowanie tylko dołączenie sygnatury pod dokumentem
  • gpg -b [file] #generacja samej sygnatury musi być plik ponieważ jest generowana na podstawie sumy kontrolnej pliku i klucza prywatnego

podpisywanie klucza publicznego w bazie

  • gpg -u [localuser] –edit-key [pulic_user]

szyfrowanie

asymetryczne

  • gpg –output [output_file].pgp [–encrypt|-e] [–recipient|-r] „[nazwa_klucza_publicznego_z_bazy]” [input_file]
    • recipienta(adresata) można pobrać z komendy: gpg –list-keys
  • gpg -a -r [email protected] -e [file] -o [output_file] #szyfrowanie w formacie ASCII
  • można dodać wielu adresatów (recipients)

symetryczne

  • gpg -c [file]

deszyfrowanie:

  • gpg -o [output_file] -d [pgp_file]
  • gpg –output [output_file] –decrypt [pgp_file]