1

Я новый пользователь GnuPG. Я очень хорошо знаком с концепцией открытых и закрытых ключей, а также с сетью доверия после прочтения Руководства по конфиденциальности GNU и нескольких блогов. Тем не менее, я не понимаю, как мне поступить, если я только что начал с пустого набора ключей и trustdb, и мне нужно проверить новые файлы, загруженные из Интернета.

Например, я хотел бы скомпилировать Emacs из источников. Я скачал два файла с его сайта Gnu Emacs: emacs-25.3.tar.gz.sig и emacs-25.3.tar.gz . Я проверил подпись и получил этот вывод:

gpg: Signature made Mon 11 Sep 2017 20:52:45 BST
gpg:                using RSA key 28D3BED851FDF3AB57FEF93C233587A47C207910
gpg: Can't check signature: No public key

По какой-то причине я не могу получить ключ "7C207910", поскольку gpg сообщает:

[fw@localhost~ ]$ gpg --recv-keys 7C207910
gpg: Note: signatures using the SHA1 algorithm are rejected
gpg: key 0x233587A47C207910: 19 signatures not checked due to missing keys
gpg: key 0x233587A47C207910: 10 bad signatures
gpg: key 0x233587A47C207910: no valid user IDs
gpg: this may be caused by a missing self-signature
gpg: Total number processed: 1
gpg:           w/o user IDs: 1

После проверки мне кажется, что ключ принадлежит Николя Петтону, чей идентификатор заканчивается на 7C207910 . Я думаю, если бы я получил ключ от сервера ключей, я бы знал его отпечаток. Если на веб-сайте и в моем недавно полученном ключе совпадают оба отпечатка пальца, будет ли этого достаточно для подтверждения передачи ключей Николя Петтону? Будет ли достаточно информации для подтверждения ключа и установки его полного доверия?

Какая у тебя рутина?

Спасибо

1 ответ1

2

Вы или ваш дистрибутив добавили параметр weak-digest SHA1 в конфигурацию GnuPG (~/.gnupg/gpg.conf), в результате чего он отклоняет подписи, сделанные с помощью SHA-1, как "слабые". (По умолчанию отклоняется только MD5. SHA-1 все еще приемлем, но только едва.)

Без этой опции ожидаемый результат:

$ gpg --recv-keys 28D3BED851FDF3AB57FEF93C233587A47C207910
gpg: key 233587A47C207910: public key "Nicolas Petton <nicolas@petton.fr>" imported
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: depth: 0  valid:   2  signed:   9  trust: 0-, 0q, 0n, 0m, 0f, 2u
gpg: depth: 1  valid:   9  signed:  78  trust: 3-, 0q, 0n, 6m, 0f, 0u
gpg: depth: 2  valid:  68  signed:  18  trust: 31-, 20q, 2n, 15m, 0f, 0u
gpg: depth: 3  valid:   2  signed:   2  trust: 1-, 1q, 0n, 0m, 0f, 0u
gpg: next trustdb check due at 2018-06-25
gpg: Total number processed: 1
gpg:               imported: 1

Я думаю, если бы я получил ключ от сервера ключей, я бы знал его отпечаток

Не обязательно. Вы еще не знаете, получили ли вы реальный ключ или какой-то другой ключ, который имеет такой же идентификатор ключа. «Короткие» (8-значные) идентификаторы клавиш очень легко дублировать, и будущее для «длинных» (16-значных) идентификаторов также выглядит не очень хорошо. Если вы уже знаете отпечаток пальца, вы должны напрямую использовать его с --recv-keys и другими командами.

В любом случае вы не должны получать отпечатки пальцев с сервера ключей; такой вид побеждает весь пункт проверки по отпечатку пальца.

Будет ли достаточно информации для подтверждения ключа и установки его полного доверия?

И да и нет. Вы можете подтвердить ключ как действительный, но установка доверия ключа - это не одно и то же - он фактически позволяет этому ключу способствовать действию других ключей (именно так создается "сеть доверия").

Если вы не знаете этого человека (или, в частности, не знаете его практики PGP), вам не следует доверять его ключам. Достаточно пометить ключ как действительный, используя --lsign-key <fingerprint> если вы хотите оставить его только локальным, или --sign-key если вы хотите опубликовать "подтверждение".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .