Dlaczego GPG / PGP domyślnie używają różnych kluczy do podpisywania / szyfrowania?

22

Jeśli utworzysz nowy klucz GPG, domyślnie otrzymasz parę kluczy głównych tylko do podpisywania i parę kluczy podrzędnych tylko do szyfrowania.

pub  2048R/XXXXXXXX  created: 2013-02-09  expires: 2014-02-09  usage: SC  
sec  2048R/XXXXXXXX           2013-02-09 [expires: 2014-02-09]

sub  2048R/ZZZZZZZZ  created: 2013-02-09  expires: 2014-02-09  usage: E
ssb  2048R/ZZZZZZZZ           2013-02-09 [expires: 2014-02-09]  

(Dane wyjściowe połączone z gpg --list-keysi gpg --list-secret-keys)

Zaleca się również, aby nie używać klucza głównego do regularnego podpisywania (wiadomości e-mail / danych), ale aby utworzyć kolejny podklucz tylko do podpisywania i usunąć / wykonać kopię zapasową klucza głównego w bezpiecznej lokalizacji offline, aby używać go tylko do podpisywania kluczy .

Ma to sens, ponieważ większość punktów końcowych szyfrowania to laptopy / telefony lub inne zawsze mobilne urządzenia mobilne, które narażają klucze prywatne na ryzyko kradzieży lub utraty. Dzięki bezpiecznie przechowywanemu kluczowi głównemu zawsze możesz odwołać zgubione podklucze i nigdy nie utracić podpisów kluczy.

Tak więc, chociaż separacja klucza głównego <-> jest dla mnie jasna, nie rozumiem, dlaczego nacisk kładziony jest na rozdzielanie kluczy podpisywania i szyfrowania (nawet jeśli oba są podkluczami). Czy ktoś może wyjaśnić, dlaczego jest to konieczne, a przynajmniej jaka jest korzyść z bezpieczeństwa lub z praktycznego punktu widzenia?

Technicznie jest całkowicie wykonalne i obsługiwane przez GnuPG, aby utworzyć podklucz ORAZ do szyfrowania.

pub  2048R/YYYYYYYY  created: 2013-08-13  expires: 2014-08-13  usage: SCEA
sub  2048R/VVVVVVVV  created: 2013-08-13  expires: 2014-08-13  usage: SEA 
Chaos_99
źródło
2
Na Security.SE można znaleźć dobrą odpowiedź na wypadek, gdyby ktoś był zainteresowany.
GnP

Odpowiedzi:

9

W Zjednoczonym Królestwie mówi rozporządzenie w sprawie uprawnień dochodzeniowych z 2000 r

49 (9) Zawiadomienie na podstawie niniejszej sekcji nie wymaga ujawnienia żadnego klucza, który:

a) jest przeznaczony do użytku wyłącznie w celu generowania podpisów elektronicznych; i

(b) nie był faktycznie wykorzystywany do jakichkolwiek innych celów.

… Co oznacza, że ​​rząd Wielkiej Brytanii może w niektórych okolicznościach być w stanie zmusić cię do przekazania klucza deszyfrującego (jeśli jesteś rezydentem), ale nie wolno im podszywać się pod twój klucz podpisu.


źródło
1
Interesujące ... dotyczyłoby to również kluczy prywatnych Bitcoin (używanych tylko do podpisywania, a nie do szyfrowania).
Jonathan Cross
… I wygląda na to, że to zwolnienie obowiązuje w ustawie z 2016 r .
8

Nie wiem dokładnie, dlaczego GPG / PGP robi to, co robi, ale jedną z możliwych motywacji do tego rodzaju działań jest odzyskiwanie po awarii. Możesz chcieć przekazać kopię swojego prywatnego klucza szyfrującego bardzo bliskiemu, zaufanemu przyjacielowi, więc jeśli twój dom zostanie uderzony przez meteoryt, możesz nadal czytać swoje stare wiadomości zapisane w chmurze. (Podobnie może być konieczne podanie klucza szyfrowania 1 swojemu szefowi, aby mógł on przeczytać wiadomość e-mail po twoim odejściu).

Ale nikt nie ma powodu, aby mieć kopię pary kluczy do podpisywania.
________________
1  „może być konieczne podanie komuś klucza szyfrującego” - patrz odpowiedź TEV .

Scott
źródło
2

Prosta odpowiedź jest taka, że ​​im częściej używasz klucza, tym więcej informacji wycierasz o kluczu.

Klucz podpisujący jest używany przez Ciebie do uwierzytelnienia, że ​​ufasz kluczowi i na podstawie wniosku właściciela, ale co ważniejsze, że Twoja komunikacja pochodzi od Ciebie. Nazywa się to niezaprzeczalnością .

Na wszelki wypadek, powiedzmy, użycie klucza 10000 razy oznacza, że ​​wyciekłeś ze wszystkich informacji potrzebnych komuś do odtworzenia tego klucza. Użycie jednego klucza> 9999 razy oznaczałoby, że ktoś mógłby potencjalnie podszyć się pod Ciebie i przekazać twój zaufany podpis kluczowi lub dokumentowi osoby trzeciej, powodując, że cała Twoja zaufana sieć wierzy, że ta strona to Ty lub dokument pochodzi od Ciebie.

Jeśli jednak szyfrujesz również przy użyciu tego samego klucza, próg zostanie szybciej osiągnięty.

Aby uniknąć tej potencjalnej irytacji, tworzony jest drugi klucz, który jest używany tylko do szyfrowania / deszyfrowania, który służy tylko do szyfrowania danych. Gdy ten klucz zostanie użyty 9999 razy, możesz stracić ważność tego klucza, nie tracąc całego zaufania, które przekazałeś przy użyciu ważnego klucza do podpisywania. Ponownie generujesz klucz, generujesz nowy klucz szyfrowania i podpisujesz go kluczem do podpisu, aby pokazać, że jest to zaufany klucz szyfrowania, który każdy może zweryfikować.

EDYTOWAĆ:

Na re-czytając to, co napisałem powyżej i prywatności GNU Handbook , mój wniosek jest taki, że subjest to klucz prywatny i pubmusi być kluczem publicznym. @GnP tę odpowiedź:

The keyword pub identifies the public master signing key, and the keyword sub identifies a public subordinate key.

Daniël W. Crompton
źródło
Przypuszczam, że dla większości osób klucz podpisujący jest używany znacznie częściej niż klucz szyfrujący, ponieważ prawie wszystkie wiadomości e-mail będą podpisywane, ale tylko niektóre będą szyfrowane. W tym przypadku wartość domyślna gpg jest niewłaściwa, ponieważ jest to encr. Klucz można łatwo zmienić, a klucz podpisujący nie.
Chaos_99,
Ponieważ zwykle szyfrujesz przy użyciu klucza publicznego innej osoby, brzmi to trochę logicznie i prawdopodobnie istnieją dobre powody, których obecnie nie jestem świadomy.
Daniël W. Crompton
Masz rację. W moim komentarzu zamień „szyfrowanie” na „deszyfrowanie”. Ale punkt pozostaje ważny. Podpisujesz częściej niż DECrypt. Zadałem to pytanie, aby dowiedzieć się dokładnie o „prawdopodobnie dobrych powodach”, o których wspomniałeś.
Chaos_99,
1
Zarówno klucz główny, jak i podklucz są poprawnymi parami kluczy z kluczem publicznym i prywatnym. Skrótem prywatnego wzorca jest „sec”, a prywatnego podklucza „ssb”. Oba można zobaczyć za pomocą gpg --list-secret-keys. Powyższe wykazy pokazują tylko klucze publiczne zwrócone przez gpg --list-keys.
Chaos_99,
1
„im częściej używasz klucza, tym więcej informacji wycieksz na temat klucza” czy masz źródło tego roszczenia?
GnP
0

Jeśli utworzysz nowy klucz GPG, domyślnie otrzymasz parę kluczy głównych tylko do podpisywania i parę kluczy podrzędnych tylko do szyfrowania.

Wiadomości mogą być:

  • niepodpisane i niezaszyfrowane
  • podpisane i niezaszyfrowane
  • niepodpisane i zaszyfrowane
  • podpisane i zaszyfrowane

i są zastosowania dla każdego z tych przypadków, w zależności od tego, co próbujesz osiągnąć przy podpisywaniu i szyfrowaniu.

Jeśli podpisując się, ustanawiasz tożsamość / poparcie, a szyfrując czynisz wiadomości prywatnymi, możliwość szyfrowania, ale nie podpisanie, daje możliwość wysłania wiadomości prywatnej, która niekoniecznie jest powiązana z twoją tożsamością lub przez ciebie poparta. W tym przypadku potrzebujesz oddzielnych kluczy.

LawrenceC
źródło
2
Popraw mnie, jeśli się mylę, ale wierzę, że kiedy szyfrujesz wiadomość, używasz klucza (publicznego) odbiorcy , więc kiedy opuści twoje ręce, nie będzie to dla ciebie możliwe. Twój klucz szyfrujący służy do wysyłania Ci zaszyfrowanych wiadomości.
Scott
@Scott tak, ale większość ludzi zwykle ma również domyślny zestaw kluczy, aby mogli odczytać wszystko, co znajduje się w ich skrzynce nadawczej i zwykle określić domyślny podpis. Chociaż w takich przypadkach do wybrania prawidłowego podklucza używany jest identyfikator klucza głównego / certyfikacyjnego.
Ben