Чому GPG / PGP за замовчуванням використовує різні ключі для підписання / шифрування?


22

Якщо ви створите новий ключ GPG, ви за замовчуванням отримаєте пару головних ключів лише для підписання та пару підклавішів, що мають лише шифрування.

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]  

(Вихід суміщений з gpg --list-keysта gpg --list-secret-keys)

Також рекомендується не використовувати свій головний ключ для регулярного підписання (поштою / даними), а створити інший під ключ лише для підписання та видалити / створити резервну копію головного ключа в безпечному та офлайн-місці лише для використання для підпису ключа. .

Це має сенс, оскільки більшість кінцевих точок шифрування - це ноутбуки / телефони чи інші мобільні пристрої, що постійно працюють в Інтернеті, що піддають ваші приватні ключі ризику крадіжки або втрати. За допомогою надійно збереженого основного ключа ви завжди можете відкликати такі втрачені підключі та ніколи не втрачати свої підписи.

Тож як мені відоме розділення основного ключа <->, я не розумію, чому саме цей акцент робиться на розділенні ключів підпису та шифрування (навіть якщо вони обидва підключі). Чи може хтось пояснити, чому це потрібно чи хоча б яка перевага з безпеки чи практичної точки зору?

Технічно це цілком можливо і підтримується GnuPG для створення підкладу підписування І шифрування.

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 

2
На це питання є гарна відповідь на Security.SE, якщо хтось зацікавлений.
GnP

Відповіді:


9

У Сполученому Королівстві говориться про Закон про регулювання повноважень слідчих органів 2000 року

49 (9) Повідомлення відповідно до цього розділу не вимагає розголошення жодного ключа, який:

(а) призначений для використання лише для створення електронних підписів; і

(b) насправді не використовувався для будь-яких інших цілей.

... це означає, що за певних обставин уряд Великобританії може змусити вас передати ключ розшифровки (якщо ви є резидентом), але їм не дозволяється видавати себе за ваш ключ підпису.


1
Цікаво ... це стосується і приватних ключів Bitcoin тоді (використовується лише для підписання, не використовується для шифрування).
Джонатан Крос

… І, схоже, це звільнення залишається в силі в акті 2016 року .

8

Я не знаю конкретно, чому GPG / PGP робить те, що робить, але одна з можливих мотивацій для подібного - це відновлення після аварій. Ви можете надати копію приватного ключа шифрування дуже близькому, довіреному другу, тож, якщо ваш будинок потрапив у метеорит, ви все ще можете прочитати свої старі повідомлення, збережені в хмарі. (Аналогічно, вам може знадобитися надати вашому начальникові ключ 1 шифрування , щоб він міг прочитати вашу електронну пошту після того, як ви підете.)

Але немає причин, щоб хто-небудь інший мав копію вашої пари ключів для підписання.
________________
1  "Можливо, вам потрібно буде надати ключ шифрування" комусь - дивіться відповідь TEV .


2

Проста відповідь полягає в тому, що чим більше ви використовуєте клавішу, тим більше інформації про ключ ви просочуєтесь.

Ви використовуєте ключ підпису для підтвердження довіри до ключа та для висновку власника, але що ще важливіше, щоб ваші повідомлення надходили від вас. Це називається неприйняттям .

Для аргументу, скажімо, використання ключа 10000 разів означає, що ви просочили всю інформацію, необхідну для того, щоб хтось реконструював цей ключ. Використання одного ключа> 9999 разів означає, що хтось інший може потенційно представити вас і передати ваш довірений підпис ключу або документу злого сторонніх сторін, що змушує всю вашу довірену мережу повірити, що ця сторона - це ви, або документ походить від вас.

Однак якщо ви також шифруєте цим самим ключем, порог буде швидше досягнутий.

Щоб уникнути потенційного роздратування, створюється другий ключ, який використовується тільки для шифрування / розшифровки, який використовується лише для шифрування даних як ви. Щойно цей ключ використано 9999 разів, ви можете закінчити термін дії цього ключа, не втрачаючи всієї довіри, яку ви передали за допомогою дійсного ключа підпису. Ви перепробовуєте, генеруєте новий ключ шифрування та підписуєте його своїм ключем підпису, щоб показати, що це надійний ключ шифрування, який кожен може перевірити.

Редагувати:

На перечитуючи то , що я написав вище , і GNU Privacy Handbook , мій висновок полягає в тому , що subє приватним ключем і pubповинен бути відкритим ключем. @GnP ця відповідь:

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


Я припускаю, що для більшості людей ключ підпису використовується набагато частіше, ніж ключ шифрування, оскільки майже всі листи будуть підписані, але лише деякі будуть зашифровані. У цьому випадку gpg-default є неправильним способом, як encr. Ключ легко змінити, поки ключ підпису немає.
Chaos_99

Оскільки ви зазвичай шифруєте чужий відкритий ключ, це звучить дещо логічно, і для цього, мабуть, є вагомі причини, про які я зараз не знаю.
Даніель В. Кромптон

Ти правий. Будь ласка, обміняйте "шифрування" на "розшифрування" в моєму коментарі. Але пункт залишається дійсним. Ви підписуєте частіше, ніж ви розшифровуєте. Я поставив це запитання, щоб дізнатися про саме "ймовірно вагомі причини", які ви згадали.
Chaos_99

1
Як головний, так і під ключ є дійсними ключами ПАРИ з відкритим і приватним ключем. Абревіатура для приватного майстра - 'sec', для приватного під-ключа 'ssb'. І те, і інше можна побачити gpg --list-secret-keys. У списках, наведених вище, відображаються лише відкриті ключі gpg --list-keys.
Chaos_99

1
"чим більше ви використовуєте ключ, тим більше інформації про ключ ви маєте", чи є у вас джерело для цієї претензії?
GnP

0

Якщо ви створите новий ключ GPG, ви за замовчуванням отримаєте пару головних ключів лише для підписання та пару підклавішів, що мають лише шифрування.

Повідомлення можуть бути:

  • неподписані та незашифровані
  • підписані та незашифровані
  • неподписані та зашифровані
  • підписані та зашифровані

і для кожного з цих випадків є використання, залежно від того, що ви намагаєтеся виконати підписанням та шифруванням.

Якщо підписом ви встановлюєте особу / підтвердження та шифруючи, ви робите повідомлення приватними, можливість шифрувати, але не підписувати, дає вам змогу надсилати приватне повідомлення, яке не обов'язково пов’язане з вашою особою або підтверджене вами. У цьому випадку вам потрібно окремі ключі.


2
Виправте мене, якщо я помиляюся, але я вважаю, що, коли ви шифруєте повідомлення, ви використовуєте (відкритий) ключ одержувача , тож, як тільки він вийде з ваших рук, це не простежується для вас. Ваш ключ шифрування призначений для того, щоб інші надсилали вам зашифровані повідомлення.
Скотт

@Scott так, але більшість людей, як правило, також встановлюють ключ за замовчуванням, щоб вони могли читати все, що є у вихідній скриньці, і зазвичай вказувати підпис за замовчуванням. Хоча в цих випадках ідентифікатор ключа головного / сертифікаційного ключа використовується для вибору правильного підрозділу.
Бен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.