Почему 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 
Chaos_99
источник
2
На Security.SE есть хороший ответ на этот вопрос, если кому-то интересно.
GnP

Ответы:

9

В Великобритании Закон о регулировании следственных полномочий 2000 года гласит:

49 (9) Уведомление в соответствии с этим разделом не требует раскрытия какого-либо ключа, который:

(а) предназначен для использования только с целью генерирования электронных подписей; а также

(б) фактически не использовался для каких-либо других целей.

… Это означает, что правительство Великобритании может при некоторых обстоятельствах заставить вас передать ваш ключ дешифрования (если вы являетесь резидентом), но ему не разрешено выдавать себя за ваш ключ подписи.


источник
1
Интересно ... это также относится и к закрытым ключам Биткойн (используется только для подписи, но не для шифрования).
Джонатан Кросс
... и похоже, что это исключение остается в силе в законе 2016 года .
8

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

Но ни у кого нет причины иметь копию вашей пары ключей подписи.
________________
1  «вам может потребоваться передать ваш ключ шифрования» кому-либо - см . Ответ TEV .

Скотт
источник
2

Простой ответ заключается в том, что чем больше вы используете ключ, тем больше информации о ключе вы теряете.

Ключ подписи используется вами для подтверждения того, что вы доверяете ключу, и, исходя из предположения владельца, но, что более важно, ваши сообщения исходят от вас. Это называется непризнанием .

Ради аргумента скажем, использование ключа 10000 раз означает, что вы теряете всю информацию, необходимую для восстановления этого ключа. Использование одного ключа> 9999 раз означало бы, что кто-то другой может потенциально выдать себя за вас и передать вашу доверенную подпись ключу или документу злой третьей стороны, из-за чего вся ваша доверенная сеть будет считать, что эта сторона принадлежит вам или документу принадлежит вам.

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

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

РЕДАКТИРОВАТЬ:

Перечитав то, что я написал выше и Руководство по конфиденциальности GNU , я пришел к выводу, что 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
Поскольку вы обычно шифруете с помощью чьего-либо открытого ключа, это звучит несколько логично, и, вероятно, для этого есть веские причины, о которых я сейчас не знаю.
Даниэль В. Кромптон
Вы правы. Пожалуйста, замените «шифрование» на «дешифрование» в моем комментарии. Но точка остается в силе. Вы подписываете чаще, чем вы DEcrypt. Я задал этот вопрос, чтобы узнать, какие именно "веские причины" вы упомянули.
Chaos_99
1
И главный, и дополнительный ключи являются действительными ключами ПАР с открытым и закрытым ключом. Сокращение для частного мастера - «sec», для частного ключа «ssb». Оба можно увидеть с gpg --list-secret-keys. В приведенных выше списках показаны только открытые ключи, возвращенные пользователем gpg --list-keys.
Chaos_99
1
«Чем больше вы используете ключ, тем больше информации о ключе вы теряете». У вас есть источник для этого заявления?
GnP
0

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

Сообщения могут быть:

  • неподписанный и незашифрованный
  • подписанный и незашифрованный
  • без знака и в зашифрованном виде
  • подписано и зашифровано

и для каждого из этих случаев есть применение, в зависимости от того, что вы пытаетесь достичь с помощью подписи и шифрования.

Если, подписывая, вы устанавливаете личность / одобрение, и, шифруя, вы делаете сообщения частными, возможность шифрования, но не подписи дает вам возможность отправить личное сообщение, которое не обязательно связано с вашей личностью или одобрено вами. Вы хотели бы отдельные ключи в этом случае.

LawrenceC
источник
2
Поправьте меня, если я ошибаюсь, но я считаю, что когда вы шифруете сообщение, вы используете (открытый) ключ получателя , поэтому, как только он покинет ваши руки, он не будет отслеживаться вами. Ваш ключ шифрования предназначен для других, чтобы отправлять вам зашифрованные сообщения.
Скотт
@ Скотт да, но у большинства людей обычно также установлен ключ по умолчанию, поэтому они могут читать все, что находится в их исходящих сообщениях, и обычно указывать подпись по умолчанию. Хотя в этих случаях идентификатор ключа главного / сертификационного ключа используется для выбора правильного подраздела.
Бен