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):
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
sprawdzanie podpisu
- gpg –verify [signed_file] #sprawdzanie podpisu
- gpg –check-sigs #lista i sprawdzenie podpisów kluczy
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)
deszyfrowanie:
- gpg -o [output_file] -d [pgp_file]
- gpg –output [output_file] –decrypt [pgp_file]