Czy GnuPG 1 i GnuPG 2 są ze sobą kompatybilne?

83

W przypadku Macports zdaję sobie sprawę, że są porty gnupgi nowsze gnupg2. Chciałbym użyć GnuPG do szyfrowania plików. Czy powinienem zainstalować oba, czy tylko jeden wystarczy? Jeśli zainstalowałem oba, czy oba są ze sobą kompatybilne? Czy w ogóle ma znaczenie, który z nich zainstaluję jako pierwszy?

qazwsx
źródło

Odpowiedzi:

89

GnuPG 1

GnuPG 1.4 („klasyczny”) pozostanie w wersji wbudowanej i na serwerze, ponieważ zapewnia mniej zależności i mniejsze pliki binarne. Wcześniej był często instalowany, ponieważ gpgdziś jest częściej nazywany gpg1(w zależności od dystrybucji).

Ze strony podręcznika GnuPG 1.4:

To jest samodzielna wersja gpg. Do użytku na komputerze należy rozważyć użycie gpg2z pakietu GnuPG-2 (na niektórych platformach gpg2jest zainstalowany pod nazwą gpg)

GnuPG 2

GnuPG 2.0 to przeprojektowana wersja GnuPG - ale zmiany są głównie na poziomie wewnętrznym. Nowsza wersja jest podzielona na wiele modułów, na przykład istnieją również moduły dla X.509 (używane przez S / MIME).

Od man gpg2:

W przeciwieństwie do autonomicznej wersji gpg, która jest bardziej odpowiednia dla serwerów i platform wbudowanych, ta wersja jest zwykle instalowana pod nazwą gpg2i bardziej ukierunkowana na pulpit, ponieważ wymaga zainstalowania kilku innych modułów.

GnuPG 2.1

Ważna zmiana nadeszła wraz z GnuPG 2.1, który łączy wcześniej oddzielone klucze publiczne i prywatne ( pubring.gpgvs. secring.gpg) w klucze publiczne. Zostało to zaimplementowane w sposób zapewniający kompatybilność, więc nadal możesz używać GnuPG 1, gdy GnuPG 2.1 zintegrował prywatny klucz, ale zmiany w kluczach prywatnych nie pojawią się w przypadku innej implementacji. Z dziennika zmian :

[...] pozwala na współistnienie starszych wersji GnuPG z GnuPG 2.1. Jednak wszelkie zmiany w kluczach prywatnych przy użyciu nowego gpg nie pojawią się, gdy użyjesz GnuPG w wersjach wcześniejszych niż 2.1 i odwrotnie.


Aby bezpośrednio odpowiedzieć na twoje pytanie:

Czy powinienem zainstalować oba, czy tylko jeden wystarczy? Czy w ogóle ma znaczenie to, które z nich zainstaluję?

Wystarczy zainstalować oba. I tak nie ingerują. Zainstaluj gpg(jeśli i tak nie jest zainstalowany) dla innych aplikacji, które uzyskują do niego dostęp (takich jak menedżery pakietów, klienci poczty, ...) oraz gpg2do „bezpośredniego użycia” w wierszu poleceń.

Jeśli zainstalowałem oba, czy oba są ze sobą kompatybilne?

Oba implementują protokół OpenPGP, więc są ze sobą kompatybilne w zakresie danych dzielonych między nimi. Dodatkowo używają (przeważnie) tych samych poleceń i opcji, więc przez większość czasu można się między nimi dowolnie przełączać.

GnuPG 2.1 powoduje, że zmiany w prywatnym breloku są niewidoczne dla implementacji wcześniejszych niż GnuPG 2.1 (patrz wyżej w sekcji GnuPG 2.1).

Jens Erat
źródło
1
gpg2wydaje się, że nie gpgwidzi kluczy prywatnych, które widzi. Na przykład gpg2 --list-secret-keysnie daje danych wyjściowych, ale gpg --list-secret-keysdaje dane wyjściowe.
Flimm,
6
Dokładnie to opisałem z istotną różnicą między GnuPG 2 a 2.1: GnuPG 2.1 przechowuje klucze prywatne w innym pliku. Twoje klucze prywatne są przechowywane w GnuPG 1.4 secring.gpg, który nie jest przeszukiwany przez GnuPG 2.1. Skopiuj je do GnuPG 2.1 do gpg --export-secret-keys [key-id] | gpg2 --import.
Jens Erat,
gpg2 faktycznie automatycznie zaimportował dla mnie klucze gpg (cygwin)
lucidbrot
4
Ta odpowiedź może być nieco nieaktualna. W Ubuntu 18.04 bionic gpgv1pakiet jest opisany jako „przestarzała” klasyczna „wersja” i gpgv2„atrapowy pakiet przejściowy”. Zainstalowanie zwykłego gpgpakietu daje gpg w wersji 2.2.4. Wygląda więc na to, że gpgv1 odchodzi, a gpgv2 (zwany po prostu „gpg”) jest nowym standardem.
Mark Doliner