GnuPG (Polski)

Według official website:

GnuPG to pełna i darmowa implementacja OpenPGP standard zdefiniowany przez RFC4880 (znany również jako PGP). GnuPG pozwala na szyfrowanie i podpisywanie danych i komunikacji. Posiada wszechstronny system zarządzania kluczami, a także moduły dostępu do wszystkich rodzajów katalogów kluczy publicznych. GnuPG, znany również jako GPG, to narzędzie linii poleceń z funkcjami ułatwiającymi integrację z innymi aplikacjami. Dostępnych jest wiele aplikacji i bibliotek frontendowych. Wersja 2 GnuPG zapewnia także obsługę S/MIME i Secure Shell (ssh).

Instalacja

Install the gnupg package.

This will also install pinentry, a collection of simple PIN or passphrase entry dialogs which GnuPG uses for passphrase entry. Which pinentry dialog is used is determined by the symbolic link /usr/bin/pinentry, which by default points to /usr/bin/pinentry-gtk-2.

If you want to use a graphical frontend or program that integrates with GnuPG, see List of applications/Security#Encryption, signing, steganography.

Konfiguracja

Lokalizacja katalogu

$GNUPGHOME jest używany przez GnuPG do wskazywania katalogu, w którym przechowywane są jego pliki konfiguracyjne. Domyślnie $GNUPGHOMEnie jest ustawione i twoje $HOME jest używany zamiast; w ten sposób znajdziesz ~/.gnupg katalog zaraz po instalacji.

Aby zmienić domyślną lokalizację, uruchom gpg w ten sposób $ gpg --homedir path/to/file lub ustaw GNUPGHOME environment variable.

Pliki konfiguracyjne

Domyślne pliki konfiguracyjne to ~/.gnupg/gpg.conf i .

Domyślnie katalog gnupg ma ustawione uprawnienia do , a pliki, które zawiera, mają ustawione uprawnienia do 600. Tylko właściciel katalogu ma uprawnienia do odczytu, zapisu i uzyskiwania dostępu do plików. Jest to ze względów bezpieczeństwa i nie należy go zmieniać. W przypadku, gdy ten katalog lub jakikolwiek inny plik wewnątrz niego nie jest zgodny z tą miarą bezpieczeństwa, otrzymasz ostrzeżenia o niebezpiecznych uprawnieniach do plików i katalogu domowego.

Dołącz do tych plików dowolne długie opcje, które chcesz. Nie zapisuj dwóch kresek, ale po prostu nazwę opcji i wymagane argumenty. Znajdziesz pliki szkieletów w . Pliki te są kopiowane do ~/.gnupg przy pierwszym uruchomieniu gpg, jeśli tam nie istnieją. Inne przykłady można znaleźć w #Zobacz też.

Dodatkowo pacman używa innego zestawu plików konfiguracyjnych do weryfikacji podpisów paczek. Zobacz Pacman/Package signing dla szczegółów.

Domyślne opcje dla nowych użytkowników

Jeśli chcesz ustawić domyślne opcje dla nowych użytkowników, umieść pliki konfiguracyjne w /etc/skel/.gnupg/. Po dodaniu nowego użytkownika w systemie pliki z tego katalogu zostaną skopiowane do katalogu domowego GnuPG. Istnieje również prosty skrypt o nazwie "addgnupghome", który można wykorzystać do stworzenia nowych katalogów domowych GnuPG dla istniejących użytkowników:

# addgnupghome user1 user2

To doda odpowiednie i i skopiuj do niego pliki z katalogu szkieletu. Użytkownicy z istniejącym katalogiem macierzystym GnuPG są po prostu pomijani.

Używanie

Utwórz parę kluczy

Wygeneruj parę kluczy, wpisując terminal:

$ gpg --full-gen-key

Polecenie spowoduje wyświetlenie odpowiedzi na kilka pytań. Do ogólnego użytku większość ludzi będzie chciała:

  • klucz RSA (tylko podpis) i klucz RSA (tylko szyfrowanie).
  • klucz do domyślnej wartości (2048). Większy klucz 4096 "daje nam prawie nic, a kosztuje nas sporo".
  • data wygaśnięcia. Okres roku jest wystarczająco dobry dla przeciętnego użytkownika. W ten sposób, nawet jeśli dojdzie do utraty dostępu do kluczy, pozwoli to innym dowiedzieć się, że nie jest już ważny. Później, jeśli to konieczne, data wygaśnięcia może zostać przedłużona bez konieczności ponownego wydania nowego klucza.
  • twoje imię i adres e-mail. Możesz dodać wiele tożsamości do tego samego klucza później (" ', jeśli masz wiele adresów e-mail, które chcesz powiązać z tym kluczem).
  • 'komentarz "nie". Ponieważ semantyka pola komentarza to not well-defined, ma ograniczoną wartość do identyfikacji.
  • a secure passphrase.

Lista kluczy

Aby wyświetlić listę kluczy w swoim publicznym key ring:

$ gpg --list-keys

Aby wyświetlić sekretną listę kluczy key ring:

$ gpg --list-secret-keys

Wyeksportuj swój klucz publiczny

Głównym zastosowaniem gpg jest zapewnienie poufności wymienianych wiadomości za pośrednictwem kryptografii z kluczem publicznym. Dzięki niemu każdy użytkownik dystrybuuje klucz publiczny swojego klucza, który może być używany przez innych do szyfrowania wiadomości do użytkownika. Klucz prywatny musi być zawsze "prywatny", w przeciwnym razie dochodzi do złamania poufności. Zobacz w w:Public-key cryptography przykłady wymiany wiadomości.

Tak więc, aby inni mogli wysyłać zaszyfrowane wiadomości, potrzebują Twojego publicznego klucza.

By wygenerować wersję ASCII klucza publicznego do pliku (np. do dystrybucji poprzez e-mail):

$ gpg --output public.key --armor --export user-id

Alternatywnie lub dodatkowo możesz zobaczyć sekcję #Użyj serwera kluczy by podzielić się swoim kluczem.

Tip: Dodaj --no-emit-version aby uniknąć drukowania numeru wersji lub dodać odpowiednie ustawienie do pliku konfiguracyjnego.

Zaimportuj klucz publiczny

Aby szyfrować wiadomości innym osobom, a także weryfikować ich podpisy, potrzebujesz ich klucza publicznego. Aby zaimportować klucz publiczny z nazwą pliku do twojego publicznego breloczka

$ gpg --import public.key

Alternatywnie, #Użyj serwera kluczy znaleźć klucz publiczny.

Użyj serwera kluczy

Możesz zarejestrować swój klucz za pomocą publicznego serwera kluczy PGP, aby inni mogli odzyskać klucz bez konieczności bezpośredniego kontaktu z Tobą:

$ gpg --send-keys user-id

Aby poznać szczegóły klucza na serwerze kluczy, bez importowania go, wykonaj następujące czynności:

$ gpg --search-keys user-id

Aby zaimportować klucz z serwera kluczy:

$ gpg --recv-keys key-id
Tip:
  • Dodanie keyserver-options auto-key-retrieve do gpg.conf automatycznie pobierze klucze z serwera kluczy w razie potrzeby.
  • Alternatywny serwer kluczy to pool.sks-keyservers.net i można go określić za pomocą keyserver w dirmngr.conf; Zobacz też wikipedia:Key server (cryptographic)#Keyserver examples.
  • Jeśli twoja sieć blokuje porty używane dla hkp / hkps, być może musisz podać port 80, tzn. pool.sks-keyservers.net:80
  • Możesz połączyć się z serwerem kluczy przez Tor używając --use-tor. Zobacz GnuPG blog post po więcej informacji.
  • Możesz połączyć się z serwerem kluczy za pomocą serwera proxy, ustawiając opcję http_proxy Zmienna i ustawienie środowiska honor-http-proxy w dirmngr.conf. Ewentualnie ustaw http-proxy host[:port] w dirmngr.conf, przesłonięte http_proxyZmienna środowiskowa.
  • Jeśli chcesz zaimportować identyfikator klucza, aby zainstalować konkretny pakiet Arch Linux, Zobacz pacman/Package signing#Managing the keyring i Makepkg#Signature checking.

Asymetryczne

Musisz zaimportować klucz publiczny użytkownika przed szyfrowaniem (opcje or ) pliku lub wiadomości do danego odbiorcy (opcje or ). Dodatkowo musisz Utworzyć parę kluczy jeśli jeszcze tego nie zrobiłeś.

Aby zaszyfrować plik o nazwie "doc", użyj:

$ gpg --recipient user-id --encrypt doc

Aby odszyfrować (opcja lub ) zaszyfrowany kluczem prywatnym plik o nazwie doc .gpg za pomocą klucza publicznego, użyj:

$ gpg --output doc --decrypt doc.gpg

gpg poprosi cię o podanie hasła, a następnie odszyfruje i zapisze dane z doc . gpg do doc . Jeśli pominiesz () opcje, gpg zapisze odszyfrowane dane na standardowe wyjście.

Tip:
  • Dodaj --armor zaszyfrować plik przy użyciu zbroi ASCII (nadaje się do kopiowania i wklejania wiadomości w formacie tekstowym)
  • Używająć -R user-id lub --hidden-recipient user-id zamiast -r nie umieszczać identyfikatorów kluczy odbiorców w zaszyfrowanej wiadomości. Pomaga to ukryć odbiorców wiadomości i stanowi ograniczony środek zaradczy przeciwko analizie ruchu.
  • Dodaj --no-emit-version aby uniknąć drukowania numeru wersji lub dodać odpowiednie ustawienie do pliku konfiguracyjnego.
  • Możesz użyć gnupg do zaszyfrowania poufnych dokumentów za pomocą własnego identyfikatora użytkownika jako odbiorcy lub używając --default-recipient-self zamiast tego flaga; można jednak wykonać tylko ten jeden plik naraz, chociaż zawsze można zarchiwizować różne pliki, a następnie zaszyfrować plik tar. Zobacz też Disk encryption#Available methods jeśli chcesz zaszyfrować katalogi lub cały system plików.

Symetryczne

Szyfrowanie symetryczne nie wymaga generowania pary kluczy i może być używane do prostego szyfrowania danych za pomocą hasła. Po prostu użyj --symmetric lub aby wykonać szyfrowanie symetryczne:

$ gpg -c doc

Poniższy przykład:

  • Szyfruje z symetrycznym szyfrem za pomocą hasła
  • Używa algorytmu szyfrowania AES-256 do szyfrowania hasła
  • Korzysta z algorytmu skrótu SHA-512, aby zmapować hasło
  • Obejmuje hasło dla 65536 iteracje
$ gpg -c --s2k-cipher-algo AES256 --s2k-digest-algo SHA512 --s2k-count 65536 doc

Aby odszyfrować symetrycznie zaszyfrowany za pomocą hasła i wypakować odszyfrowane treści do tego samego katalogu, co :

$ gpg --output doc --decrypt doc.gpg

Konserwacja kluczy

Zrób kopię swojego klucza prywatnego

Aby wykonać kopię zapasową klucza prywatnego, wykonaj następujące czynności:

$ gpg --export-secret-keys --armor <user-id> > privkey.asc

Zwróć uwagę, że "gpg" wersja 2.1 zmieniła domyślne zachowanie, więc powyższe polecenie wymusza ochronę hasłem, nawet jeśli świadomie zdecydowałeś się nie używać go przy tworzeniu klucza. Jest tak, ponieważ w przeciwnym razie każdy, kto uzyska dostęp do powyższego wyeksportowanego pliku, będzie mógł szyfrować i podpisywać dokumenty tak, jakby były "bez", które wymagają znajomości hasła.

Aby zaimportować kopię zapasową klucza prywatnego:

$ gpg --import privkey.asc

Edytuj swój klucz

Uruchomienie Polecenie wyświetli menu, które pozwoli ci wykonać większość kluczowych zadań związanych z zarządzaniem.

Kilka przydatnych poleceń w podmenu edycji kluczy:

> passwd       # change the passphrase
> clean        # compact any user ID that is no longer usable (e.g revoked or expired)
> revkey       # revoke a key
> addkey       # add a subkey to this key
> expire       # change the key expiration time

Typ w podmenu edycji kluczy, aby uzyskać więcej poleceń.

Eksportowanie podklucza

Jeśli zamierzasz używać tego samego klucza na wielu urządzeniach, możesz usunąć klucz główny i przechowywać tylko minimalny podklucz szyfrowany na mniej bezpiecznych systemach.

Najpierw sprawdź, który podklucz chcesz wyeksportować.

$ gpg -K

Wybierz tylko ten podklucz do eksportu.

$ gpg -a --export-secret-subkeys [subkey id]! > /tmp/subkey.gpg

W tym momencie możesz przestać, ale najprawdopodobniej dobrze jest również zmienić hasło. Zaimportuj klucz do folderu tymczasowego.

$ gpg --homedir /tmp/gpg --import /tmp/subkey.gpg
$ gpg --homedir /tmp/gpg --edit-key <user-id>
> passwd
> save
$ gpg --homedir /tmp/gpg -a --export-secret-subkeys [subkey id]! > /tmp/subkey.altpass.gpg

W tym momencie możesz teraz użyć /tmp/subkey.altpass.gpg na innych urządzeniach.

Rotating subkeys

Jeśli ustawiłeś podklucze, aby wygasły po określonym czasie, możesz utworzyć nowe. Zrób to z kilkutygodniowym wyprzedzeniem, aby inni mogli zaktualizować swoją bazę kluczy.

Utwórz nowy podklucz (powtórz dla podpisu i klucza szyfrowania)

$ gpg --edit-key <user-id>
> addkey

I odpowiedz na następujące pytania, które prosi (patrz#Utwórz parę kluczy dla sugerowanych ustawień).

Zapisz zmiany

> save

Zaktualizuj go do serwera kluczy.

$ gpg --keyserver pgp.mit.edu --send-keys <user-id>
Tip: Odwołanie wygasłych podkluczy jest niepotrzebną i prawdopodobnie złą formą. Jeśli stale odnawiasz klucze, może to spowodować, że inni nie będą mieli do ciebie zaufania.

Podpisy

Dokumenty poświadczające i sygnatury czasowe podpisów. Jeśli dokument zostanie zmodyfikowany, weryfikacja podpisu nie powiedzie się. W przeciwieństwie do szyfrowania, które wykorzystuje klucze publiczne do szyfrowania dokumentu, podpisy tworzone są za pomocą klucza prywatnego użytkownika. Odbiorca podpisanego dokumentu sprawdza następnie podpis za pomocą klucza publicznego nadawcy.

Zarejestruj plik

Aby podpisać plik, użyj lub flaga:

 $ gpg --output doc.sig --sign doc
zawiera zarówno skompresowaną zawartość oryginalnego pliku , jak i podpis w formacie binarnym, ale plik nie jest zaszyfrowany. możesz łączyć podpisywanie z szyfrowaniem

Clearsign a file or message

Aby podpisać plik bez kompresowania go do formatu binarnego użyj:

 $ gpg --output doc.sig --clearsign doc

Tutaj zarówno zawartość oryginalnej dokumentacji , jak i podpis są przechowywane w formie czytelnej dla człowieka w pliku .

Utwórz oddzielny podpis

Aby utworzyć oddzielny plik podpisu, który ma być dystrybuowany oddzielnie od samego dokumentu lub pliku, użyj flagi

 $ gpg --output doc.sig --detach-sig doc

Tutaj podpis jest przechowywany w , ale zawartość nie jest w nim zapisana. Ta metoda jest często używana w dystrybucji oprogramowania, aby umożliwić użytkownikom sprawdzenie, czy program nie został zmodyfikowany przez stronę trzecią.

Zweryfikuj podpis

Aby zweryfikować podpis, użyj flagi

 $ gpg --verify doc.sig

gdzie to podpisany plik zawierający podpis, który chcesz zweryfikować.

Jeśli sprawdzasz odłączony podpis, zarówno podpisany plik danych, jak i plik podpisu muszą być obecne podczas weryfikacji. Na przykład, aby sprawdzić najnowszą wersję iso Arch Linux, wykonaj:

 $ gpg --verify archlinux-version.iso.sig

gdzie musi znajdować się w tym samym katalogu.

Można również określić podpisany plik danych z drugim argumentem:

 $ gpg --verify archlinux-version.iso.sig /path/to/archlinux-version.iso

Jeśli plik został zaszyfrowany, oprócz podpisu, po prostu odszyfruje plik i jego podpis również zostaną zweryfikowane.

gpg-agent

gpg-agent jest najczęściej używany jako demon do żądania i buforowania hasła dla pęku kluczy. Jest to przydatne, jeśli GnuPG jest używany z zewnętrznego programu, takiego jak klient poczty gnupg przychodzi z systemd user gniazda, które są domyślnie włączone. Te gniazda są gpg-agent.socket, , , , i .

  • Główny gpg-agent.socket jest używany przez gpg do łączenia się z demonem gpg-agent.
  • Celem użycia w systemie lokalnym jest skonfigurowanie przekazywania domeny unixowej z systemu zdalnego. Umożliwia to używanie gpg w systemie zdalnym bez narażania kluczy prywatnych w systemie zdalnym. Aby uzyskać szczegółowe informacje, patrz .
  • może być używany przez SSH do buforowania kluczy SSH dodanych przez program ssh-add. Zobacz #SSH agent dla potrzebnej konfiguracji.
  • uruchamia demona GnuPG obsługującego połączenia z serwerami kluczy.

.

Konfiguracja

gpg-agent można skonfigurować za pomocą pliku ~/.gnupg/gpg-agent.conf. Opcje konfiguracji są wymienione w . Na przykład możesz zmienić podręczne cache dla nieużywanych kluczy:

Załaduj ponownie agenta

Po zmianie konfiguracji, ponownie załaduj agenta za pomocą gpg-connect-agent:

$ gpg-connect-agent reloadagent /bye

Polecenie powinno wyświetlić OK.

Jednak w niektórych przypadkach tylko ponowne uruchomienie może nie być wystarczające, np. Gdy został dodany do konfiguracji agenta. W takim przypadku najpierw musisz zabić trwający proces gpg-agent, a następnie możesz go ponownie uruchomić, jak wyjaśniono powyżej.

pinentry

Wreszcie, agent musi wiedzieć, jak poprosić użytkownika o hasło. Można to ustawić w pliku konfiguracyjnym gpg-agent.

Domyślne używa okna dialogowego gtk. Dostępne są inne opcje - patrz informacja o pinentry. Aby zmienić konfigurację okna dialogowego, ustaw konfigurację programu :

Po wprowadzeniu tej zmiany, ponownie załaduj gpg-agent.

Bezobsługowe hasło

Począwszy od GnuPG 2.1.0, wymagane jest użycie gpg-agent i pinentry, co może przełamać kompatybilność wsteczną dla haseł wprowadzanych przez STDIN za pomocą opcji . Aby mieć ten sam typ funkcjonalności co starsze wersje, należy zrobić dwie rzeczy:

Najpierw edytuj konfigurację gpg-agent, aby umożliwić tryb pracy z loopback

Zrestartuj proces gpg-agent, jeśli jest uruchomiony, aby zmiana zaczęła obowiązywać.

Po drugie, albo aplikacja musi zostać zaktualizowana, aby zawierała parametr wiersza poleceń, aby użyć trybu pętli zwrotnej, jak na przykład:

$ gpg --pinentry-mode loopback ...

...lub jeśli nie jest to możliwe, dodaj opcję do konfiguracji:

Note: The upstream author indicates setting pinentry-mode loopback in gpg.conf may break other usage, using the commandline option should be preferred if at all possible.

SSH agent

gpg-agent ma emulację agenta OpenSSH. Jeśli już korzystasz z pakietu GnuPG, możesz rozważyć użycie jego agenta do buforowania SSH keys Ponadto niektórzy użytkownicy mogą preferować okno dialogowe wprowadzania kodu PIN, które zapewnia agent GnuPG w ramach zarządzania hasłami.

Set SSH_AUTH_SOCK

Musisz ustawić , aby SSH używał gpg-agent zamiast ssh-agent. Aby upewnić się, że każdy proces może znaleźć Twoją instancję gpg-agent niezależnie od np. typ powłoki jest dzieckiem użytkowania pam_env.

~/.config/environment.d/50-ssh_auth_sock.conf
SSH_AGENT_PID	DEFAULT=
SSH_AUTH_SOCK	DEFAULT="${XDG_RUNTIME_DIR}/gnupg/S.gpg-agent.ssh"

Ewentualnie zależą od Bash. Działa to również w przypadku niestandardowych lokalizacji gniazd:

Skonfiguruj pinentry, aby użyć prawidłowego TTY

Ustaw również GPG_TTY i odśwież TTY, jeśli użytkownik przełączył się w sesję X, jak podano w . Na przykład:

Dodaj klucze SSH

Po uruchomieniu gpg-agent możesz użyć ssh-add do zatwierdzenia kluczy, wykonując te same kroki, co dla ssh-agent. Lista zatwierdzonych kluczy przechowywana jest w pliku .

Po zatwierdzeniu klucza, za każdym razem, gdy potrzebne jest hasło, otrzymasz okno dialogowe z danymi. Możesz kontrolować buforowanie hasła w pliku ~/.gnupg/gpg-agent.conf. W poniższym przykładzie gpg-agent będzie przechowywać klucze w pamięci podręcznej przez 3 godziny:

Użyj klucza GPG jako klucza SSH

Jeśli używasz gpg-agent jako agent SSH, możesz użyć swojego klucza GnuPG jako klucza SSH. Zmniejsza to kluczową konserwację i możesz przechowywać klucz SSH na karcie dostępu. Musisz utworzyć klucz z funkcją uwierzytelniania (patrz #Niestandardowe funkcje). GnuPG automatycznie użyje tego klucza, jeśli będzie to konieczne. Aby sprawdzić, czy klucz został dodany, uruchom:

$ ssh-add -l

Komentarz do klucza powinien wyglądać tak: cardno:card-id.

Smartcards

GnuPG używa scdaemona jako interfejsu do czytnika kart inteligentnych. Szczegółowe informacje znajdują się w man page

GnuPG only setups

Jeśli nie planujesz używać innych kart oprócz tych opartych na GnuPG, powinieneś sprawdzić parametr port-czytnika w ~/.gnupg/scdaemon.conf. Wartość "0" odnosi się do pierwszego dostępnego czytnika portów szeregowych, a wartość "32768" (domyślnie) odnosi się do pierwszego czytnika USB.

GnuPG z pcscd (PCSC Lite)

pcscd to demon, który obsługuje dostęp do karty inteligentnej (SCard API). Jeśli scduemon GnuPG nie połączy bezpośrednio karty inteligentnej (np. Za pomocą zintegrowanej obsługi CCID), będzie się starał znaleźć kartę elektroniczną za pomocą sterownika PCSC Lite.

Zawsze używaj pcscd

Jeśli używasz jakiejkolwiek karty inteligentnej ze sterownikiem opensc (np .: karty identyfikacyjne z niektórych krajów) powinieneś zwrócić uwagę na konfigurację GnuPG. Po wyjęciu z pudełka możesz otrzymać wiadomość podobną do tej, gdy używasz

gpg: selecting openpgp failed: ec=6.108

Domyślnie scdaemon będzie próbował łączyć się bezpośrednio z urządzeniem. To połączenie zakończy się niepowodzeniem, jeśli czytnik będzie używany przez inny proces. Na przykład: demon pcscd używany przez OpenSC. Aby poradzić sobie z tą sytuacją, powinniśmy użyć tego samego sterownika, co opensc, aby mogli dobrze współpracować. W celu wskazania scdaemona do użycia pcscd powinieneś usunąć z ~/.gnupg/scdaemon.conf, określić lokalizację biblioteki i wyłączyć ccid, abyśmy upewnili się, że używamy pcscd:

Sprawdź , jeśli nie korzystasz z OpenSC.

Porady i wskazówki

Inny algorytm

Możesz użyć silniejszych algorytmów:

~/.gnupg/gpg.conf
...

personal-digest-preferences SHA512
cert-digest-algo SHA512
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
personal-cipher-preferences TWOFISH CAMELLIA256 AES 3DES

W najnowszej wersji GnuPG domyślnymi algorytmami są SHA256 i AES, które są wystarczająco bezpieczne dla większości ludzi. Jeśli jednak używasz wersji GnuPG starszej niż 2.1 lub chcesz uzyskać jeszcze wyższy poziom bezpieczeństwa, wykonaj powyższy krok.

Zaszyfruj hasło

Przydaje się szyfrowanie hasła, więc nie będzie ono zapisane w pliku konfiguracyjnym. Dobrym przykładem jest twoje hasło e-mail.

Najpierw utwórz plik z hasłem. Po podaniu hasła musisz zostawić jedną pustą linię, w przeciwnym razie gpg zwróci komunikat o błędzie podczas oceniania pliku.

Następnie uruchom:

$ gpg -e -a -r <user-id> your_password_file
is for encrypt,  for armor (ASCII output),  for recipient user ID.

Zostaniesz z nowym plikiem

Odwoływanie klucza

Certyfikaty unieważnienia są generowane automatycznie dla nowo wygenerowanych kluczy, chociaż jeden z nich może zostać wygenerowany ręcznie przez użytkownika później. Są one zlokalizowane w ~/.gnupg/openpgp-revocs.d/. Nazwa pliku certyfikatu to odcisk palca klucza, który zostanie odwołany.

Aby unieważnić klucz, wystarczy zaimportować certyfikat unieważnienia:

$ gpg --import <fingerprint>.rev

Teraz zaktualizuj serwer kluczy:

$ gpg --keyserver subkeys.pgp.net --send-keys <userid>

Change trust model

By default GnuPG uses the Web of Trust as the trust model. You can change this to Trust on first use by adding when adding a key or adding this option to your GnuPG configuration file. More details are in this email to the GnuPG list.

Ukryj wszystkie identyfikatory odbiorców

Domyślnie identyfikator klucza odbiorcy znajduje się w zaszyfrowanej wiadomości. Można go usunąć w czasie szyfrowania dla odbiorcy za pomocą ukrytego odbiorcy . Aby usunąć go dla wszystkich odbiorców, dodaj do pliku konfiguracyjnego. Pomaga to ukryć odbiorców wiadomości i stanowi ograniczony środek zaradczy przeciwko analizie ruchu. (Korzystając z małej inżynierii społecznej, każdy, kto potrafi odszyfrować wiadomość, może sprawdzić, czy jeden z pozostałych odbiorców jest tym, kogo podejrzewa.) Po stronie odbierającej może spowolnić proces deszyfrowania, ponieważ wszystkie dostępne klucze tajne muszą zostać wypróbowane ( np. z ).

Używanie caff do wysyłania kluczy partiami

Aby umożliwić użytkownikom sprawdzanie poprawności kluczy w serwerach kluczy iw ich plikach kluczy (to znaczy upewnić się, że pochodzą od kogo się podają), PGP/GPG korzysta z Web of Trust. Strony z kluczami pozwalają użytkownikom zebrać się w fizycznej lokalizacji, aby sprawdzić klucze. Protokół podpisywania kluczy Zimmermann-Sassaman jest sposobem na uczynienie ich bardzo skutecznymi. Tutaj znajdziesz artykuł z instrukcjami.

Aby ułatwić proces podpisywania kluczy i wysyłania podpisów do właścicieli po keysigning party możesz użyć narzędzia caff. Można go zainstalować z AUR z pakietem [broken link: package not found].

Aby wysłać podpisy do ich właścicieli, potrzebujesz działającego MTA. Jeśli jeszcze go nie masz, zainstaluj msmtp.

Zawsze pokazuj długie identyfikatory i odciski palca

Aby zawsze wyświetlać długie identyfikatory klucza, dodaj plik do pliku konfiguracyjnego. Aby zawsze wyświetlać pełne do pliku konfiguracyjnego.

Niestandardowe funkcje

W celu dalszego dostosowania można również ustawić niestandardowe możliwości do kluczy. Dostępne są następujące możliwości:

  • Certify (tylko dla kluczy głównych) - pozwala kluczowi tworzyć podklucze, obowiązkowe dla kluczy głównych.
  • Sign - pozwala kluczowi tworzyć podpisy kryptograficzne, które inni mogą zweryfikować za pomocą klucza publicznego.
  • Encrypt - umożliwia każdemu szyfrowanie danych za pomocą klucza publicznego, który tylko klucz prywatny może odszyfrować.
  • Authenticate - umożliwia uwierzytelnianie klucza za pomocą różnych programów innych niż GnuPG. Klucz może być użyty jako np. klucz SSH.

Możliwe jest określenie możliwości klucza głównego, uruchamiając:

$ gpg --full-generate-key --expert

Wybierz opcję, która pozwala ustawić własne możliwości.

Comparably, to specify custom capabilities for subkeys, add the flag to , see #Edytuj swój klucz for more information.

Porównywalnie, aby określić niestandardowe możliwości dla podkluczy, dodaj flag to zobacz #Edytuj swój klucz, aby uzyskać więcej informacji.

Cache passwords

Aby otrzymać hasło do GnuPG tylko raz na sesję, ustaw i default-cache-ttl na coś bardzo wysokiego, na przykład:

Zobacz #gpg-agent.

Rozwiązywanie problemów:

Nie ma wystarczającej liczby losowych bajtów

Podczas generowania klucza, gpg można napotkać ten błąd:

Not enough random bytes available. Please do some other work to give the OS a chance to collect more entropy!

Aby sprawdzić dostępną entropię, sprawdź parametry jądra:

cat /proc/sys/kernel/random/entropy_avail

Zdrowy system linuksowy z dużą dostępną entropią powróci do pełnej liczby 4096 bitów entropii. Jeśli wartość zwracana jest mniejsza niż 200, systemu zaczyna brakować entropii.

Aby go rozwiązać, pamiętaj, że często nie trzeba tworzyć kluczy, a najlepiej robić to, co sugeruje komunikat (np. Tworzyć aktywność na dysku, poruszać myszą, edytować wiki - wszystko stworzy entropię). Jeśli to nie pomoże, sprawdź, która usługa wykorzystuje entropię i zastanów się, czy nie zatrzymać jej na czas. Jeśli to nie jest alternatywa, zobacz Random number generation#Alternatives.

su

Podczas używania musisz mieć odpowiednie uprawnienia urządzenia końcowego (np. ) w użyciu. Jednak w przypadku su (lub sudo) własność pozostaje z oryginalnym użytkownikiem, a nie nowym. Oznacza to, że pinentry zawiedzie, nawet jako root. Poprawka polega na zmianie uprawnień urządzenia w pewnym momencie przed użyciem pinentry (tj. Za pomocą gpg z agentem). Jeśli robisz gpg jako root, po prostu zmień właściciela na root przed użyciem gpg:

# chown root /dev/ttyN  # where N is the current tty

a następnie zmienić go po użyciu gpg po raz pierwszy. Odpowiednik ten prawdopodobnie będzie true w .

Tip: Jeśli uruchomisz gpg ze script, użyje on nowego tty z poprawną wartością:
# script -q -c "gpg --gen-key" /dev/null

Agent complains end of file

Domyślnym programem pinentry jest pinentry-gtk-2, który do prawidłowego działania potrzebuje magistrali sesji DBus. Zobacz General troubleshooting#Session permissions szczegółowe informacje.

Alternatywnie możesz użyć . Zobacz #pinentry.

KGpg configuration permissions

Pojawiły się problemy z możliwością uzyskania dostępu do pliku options. Jeden problem może być wynikiem przestarzałego pliku opcji, zobacz raport o błędzie bug report.

GNOME na Wayland zastępuje gniazdo agenta SSH

W przypadku sesji Wayland, ustawia SSH_AUTH_SOCK na standardowe gniazdo gnome-keyring, $ . To przesłoni wszelkie wartości ustawione w ~/.pam_environmment lub systemd jednostek jednostkowych.

Aby wyłączyć to zachowanie, ustaw zmienną :

mutt

Mutt może nie używać poprawnie gpg-agent, musisz ustawić zmienną środowiskową (treść nie ma znaczenia) podczas uruchamiania mutt. Upewnij się także, czy poprawnie buforujesz hasła, patrz #Cache passwords.

Zobacz this forum thread

"Utracone" klucze, aktualizacja do wersji 2.1 Gnupg

Kiedy gpg gpg --list-keys nie pokazuje kluczy, które były tam wcześniej, a aplikacje narzekają na brakujące lub nieprawidłowe klucze, niektóre klucze mogły nie zostać zmigrowane do nowego formatu.

Przeczytaj GnuPG invalid packet workaround Zasadniczo jest napisane, że istnieje błąd związany z kluczami w starych plikach i , które zostały zastąpione nowym plikiem oraz podkatalogiem i plikami. Twoje brakujące klucze można odzyskać za pomocą następujących komend:

$ cd
$ cp -r .gnupg gnupgOLD
$ gpg --export-ownertrust > otrust.txt
$ gpg --import .gnupg/pubring.gpg
$ gpg --import-ownertrust otrust.txt
$ gpg --list-keys

gpg zawiesza się dla wszystkich serwerów kluczy (podczas próby odebrania kluczy)

Jeśli gpg zawieszi się z określonym serwerem kluczy podczas próby odebrania kluczy, być może trzeba zabić dirmngr, aby uzyskać dostęp do innych serwerów kluczy, które faktycznie działają, w przeciwnym razie może zachowywać zawieszenie dla nich wszystkich.

Nie wykryto SmartCard

Twój użytkownik może nie mieć uprawnień dostępu do karty elektronicznej, co powoduje , mimo że karta jest poprawnie skonfigurowana i włożona.

Jednym z możliwych rozwiązań jest dodanie nowego scard grupy, w tym użytkowników, którzy potrzebują dostępu do smartcard.

Następnie użyj reguły udev , podobnej do następującej: Trzeba dostosować VENDOR i MODEL zgodnie z wyjściem , powyższy przykład dotyczy YubikeyNEO.

gpg: WARNING: server 'gpg-agent' is older than us (x < y)

To ostrzeżenie pojawia się, gdy jest uaktualniony, a stary gpg-agent nadal działa. Zrestartuj gpg-agent.socket użytkownika (tj. Użyj flagi podczas ponownego uruchamiania).

gpg: ..., IPC connect call failed

Upewnij się, że gpg-agent i nie działają z , a folder ma uprawnienia ustawione na .

Jeśli twoj keyring jest przechowywana na systemie plików vFat (np. Dysku USB), gpg-agent nie będzie w stanie utworzyć wymaganych gniazd (vFat nie obsługuje gniazd), możesz utworzyć przekierowania do lokalizacji, która obsługuje gniazda, np. /dev/shm:

# export GNUPGHOME=/custom/gpg/home
# printf '%%Assuan%%\nsocket=/dev/shm/S.gpg-agent\n' > $GNUPGHOME/S.gpg-agent
# printf '%%Assuan%%\nsocket=/dev/shm/S.gpg-agent.browser\n' > $GNUPGHOME/S.gpg-agent.browser
# printf '%%Assuan%%\nsocket=/dev/shm/S.gpg-agent.extra\n' > $GNUPGHOME/S.gpg-agent.extra
# printf '%%Assuan%%\nsocket=/dev/shm/S.gpg-agent.ssh\n' > $GNUPGHOME/S.gpg-agent.ssh

Sprawdź, czy gpg-agent uruchamia się pomyślnie z .

Zobacz też

gollark: An ordered/indexmap is probably unnecessary.
gollark: Do I need a multimap, actually?
gollark: Wait, should I be storing my pronouns in a BTreeMap or regular HashMap?
gollark: It is a generic plural *or* singular third person pronoun.
gollark: > Calling someone who prefers a different pronoun "they" and not bothering or listenign when they say otherwise is just as badno.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.