Что такое идентификатор ключа OpenPGP / GnuPG?


25

Я понимаю полезность самого блока ключей и хэша ключа, но я не знаю, зачем нужна дополнительная информация, поэтому я не могу догадаться о полезности дополнительного бита информации.

В частности,

  • Что это значит,
  • где это используется, и
  • (как) это можно определить с помощью блока открытого ключа?

Это, как правило, упоминается по касательной и попутно, что приводит к путанице, поскольку ясно, что Spacewalk распознает разницу между отпечатком пальца и ID , в то время как некоторые документы GPG, выпущенные Fedora, включают фразу

Для KEYNAME замените идентификатор ключа или отпечаток вашей основной пары ключей,

из-за чего кажется, что оба имеют одну и ту же цель; но это не имеет смысла, потому что если бы это было так, зачем вам нужно было бы начать с обоих?


Утилита gpg позволяет вам указать любой из них для вашего удобства. Если вы укажете отпечаток пальца, он будет искать отпечаток пальца, а если вы укажете идентификатор, он будет искать идентификатор, который равен или содержит указанную вами строку. Идентификатор часто является читаемым идентификатором ключа. Отпечаток пальца в целом описан в en.wikipedia.org/wiki/Public_key_fingerprint . Какая проблема у вас на самом деле?
Джейсон С

@JasonC Spacewalk хочет идентификатор, а также отпечаток пальца и URL для блока ключей, но репозитории (например, EPEL ) предоставляют только блок ключей. Теперь я знаю, что могу получить отпечаток пальца, просто взяв хеш блока ключей, но я не знаю, должен ли я получить идентификатор откуда-то еще, выбрать один и загрузить его в базу данных, прежде чем сказать выход в открытый космос об этом или просто наверстать упущенное. По сути, это проблема выхода в открытый космос, которая становится намного легче, когда я узнаю больше об использовании идентификаторов GPG.
Парфянский выстрел

@JasonC Более кратко: я буду загружать подписанные RPM, и все, что у меня есть, это ключевой блок, поэтому мне нужно знать, выбираю ли я идентификатор, или эмитент выбирает идентификатор.
Парфянский выстрел

Следовали ли вы инструкциям по установке EPEL / Spacewalk от fedorahosted.org/spacewalk/wiki/HowToInstall#EPELrepository или wiki.centos.org/HowTos/PackageManagement/… и Spacewalk фактически не может управлять пакетами из EPEL? Имеет ли отношение access.redhat.com/site/solutions/308983 ?
Jason C

1
Если это работает без того, чтобы вы его заполняли, тогда он знает, как обойтись без того, чтобы вы его указали, и заполнение его бесполезно. Тем не менее, посетите web.archive.org/web/20130821232554/http://centosforge.com/node/…, в котором рассказывается, как получить отпечаток пальца и идентификатор для Spacewalk. Аналогичные инструкции на darkoperator.com/blog/2011/12/16/… . Дополнительная информация на google.com/search?q=spacewalk%20package%20key%20id
Джейсон C,

Ответы:


29

Из RFC 4880 :

Отпечаток V4 - это 160-битный хэш SHA-1 октета 0x99, за которым следует длина в два октета пакета, за которым следует весь пакет с открытым ключом, начиная с поля версии. Идентификатор ключа представляет собой младшие 64 бита отпечатка пальца.

Для ключей V3 расчет аналогичен, но длина ключа не указана.

Другими словами, отпечаток пальца вычисляется из константы, длины пакета и, наконец, части пакета с открытым ключом. Дальнейшее объяснение того, что включено (и, следовательно, как его рассчитать) в связанный RFC.

(Длинный) идентификатор ключа представлен младшими 64 битами и используется, так как полный отпечаток пальца является случайным и длинным значением. Еще чаще используется идентификатор короткого ключа, образованный младшими 32 битами. Считается, что эти короткие идентификаторы клавиш имеют слишком высокую вероятность коллизий и использования по крайней мере длинных идентификаторов, если не рекомендуется даже полный отпечаток пальца.

Пересчитано в нескольких словах:

Отпечаток пальца - это значение хеша, вычисленное из пакета открытого ключа. Идентификаторы ключей являются частью отпечатка пальца:

Fingerprint: 0D69 E11F 12BD BA07 7B37  26AB 4E1F 799A A4FF 2279
Long key ID:                                4E1F 799A A4FF 2279
Short key ID:                                         A4FF 2279

Иногда к идентификаторам добавляется префикс, 0xпоскольку они являются шестнадцатеричными значениями.


1
Очень полезная ссылка на информацию о столкновениях, спасибо. Вы можете изменить ответ, чтобы сказать, что даже длинные ключи подделываются и поэтому не рекомендуются.
zkilnbqi

В то время как идентификаторы коротких ключей подделываются очень легко, идентификаторы длинных ключей в 2 ^ 32 раза сложнее и все еще считаются подходящими. Можно даже подделать отпечатки пальцев, их еще сложнее подделать (из-за огромного количества возможных отпечатков пальцев).
Йенс Эрат

1
Меня убедила ссылка, которую вы включили в свой ответ. Теперь моя подпись гласит: «harold@foo.com pgp.mit.edu ID по состоянию на 2015-03-22». Если кто-то захочет отправить вам зашифрованное сообщение или подтвердить, что вы его подписали, ему все равно придется найти ваш открытый ключ на сервере ключей, поэтому использование идентификатора ключа не дает никаких преимуществ.
zkilnbqi
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.