Qu'est-ce qu'un ID de clé OpenPGP / GnuPG?

25

Je comprends l'utilité du bloc de clés lui-même et d'un hachage de la clé, mais je ne sais pas pourquoi des informations supplémentaires seraient nécessaires, donc je ne peux pas commencer à deviner l'utilité d'un peu d'informations supplémentaires.

Plus précisément,

  • Qu'est-ce que cela signifie,
  • où est-il utilisé, et
  • (comment) peut-il être déterminé compte tenu du bloc de clé publique?

Il a tendance à être mentionné tangentiellement et en passant, ce qui conduit à la confusion, car clairement la sortie dans l'espace reconnaît une différence entre l'empreinte digitale et l'ID , tandis que certains documents GPG publiés par Fedora incluent la phrase

Pour KEYNAME, remplacez l'ID de clé ou l'empreinte digitale de votre paire de clés principale,

ce qui donne l'impression que les deux partagent le même objectif; mais cela n'a pas de sens parce que si c'était le cas, pourquoi auriez-vous besoin des deux pour commencer?

Flèche du Parthe
la source
L'utilitaire gpg vous permet de spécifier soit pour votre commodité. Si vous spécifiez une empreinte digitale, il recherchera l'empreinte digitale et si vous spécifiez l'ID, il recherchera un ID égal ou contenant la chaîne que vous spécifiez. L'ID est souvent un identifiant lisible par l'homme pour la clé. L'empreinte digitale en général est décrite sur en.wikipedia.org/wiki/Public_key_fingerprint . Quel est le problème que vous rencontrez réellement?
Jason C
@JasonC Spacewalk veut un ID ainsi qu'une empreinte digitale et une URL pour le bloc clé, mais les repos (par exemple EPEL ) ne fournissent que le bloc clé. Maintenant, je sais que je peux obtenir l'empreinte digitale simplement en prenant un hachage du bloc de clé, mais je ne sais pas si je suis censé obtenir l'ID ailleurs, en décider une et la charger dans une base de données avant de dire sortie dans l'espace à ce sujet, ou tout simplement en faire un pour la sortie dans l'espace Fondamentalement, c'est un problème de sortie dans l'espace qui devient beaucoup plus facile une fois que j'en sais plus sur la façon dont les ID GPG sont utilisés.
Parthian Shot
@JasonC Plus succinctement: je vais télécharger des RPM signés, et tout ce que j'ai, c'est le bloc de clé, j'ai donc besoin de savoir si je décide d'un ID ou si l'émetteur décide d'un ID.
Parthian Shot
Avez-vous suivi les instructions d'installation EPEL / Spacewalk de fedorahosted.org/spacewalk/wiki/HowToInstall#EPELrepository ou wiki.centos.org/HowTos/PackageManagement/… et Spacewalk ne parvient-il pas à gérer les packages à partir d'EPEL? Access.redhat.com/site/solutions/308983 est- il pertinent?
Jason C
1
Si cela fonctionne sans que vous le remplissiez, il sait comment gérer sans que vous le précisiez, et le remplir n'est pas utile. Cependant, consultez web.archive.org/web/20130821232554/http://centosforge.com/node/… qui vous indique comment obtenir une empreinte digitale et un ID pour Spacewalk. Instructions similaires sur darkoperator.com/blog/2011/12/16/… . Plus d'informations sur google.com/search?q=spacewalk%20package%20key%20id
Jason C

Réponses:

29

De RFC 4880 :

Une empreinte V4 est le hachage SHA-1 160 bits de l'octet 0x99, suivi de la longueur de paquet de deux octets, suivi de l'ensemble du paquet de clé publique commençant par le champ version. L'identifiant de clé correspond aux 64 bits de poids faible de l'empreinte digitale.

Pour les clés V3, le calcul est similaire, mais la longueur de clé est omise.

En d'autres termes, l'empreinte digitale est calculée à partir d'une constante, la longueur du paquet et enfin une partie du paquet de clé publique. Plus d'explications sur ce qui est inclus (et donc comment le calculer) dans le RFC lié.

L'identifiant de clé (long) est représenté par les 64 bits les plus bas et est utilisé car l'empreinte digitale complète est une valeur longue et peu pratique. Encore plus souvent, l'ID de clé courte formé par les 32 bits de poids faible est utilisé. Ces identifiants de clé courts sont souvent considérés comme ayant un risque trop élevé de collisions et d'utiliser au moins l'identifiant long, sinon même une empreinte digitale complète est recommandée.

Récapitulé en quelques mots:

L'empreinte digitale est la valeur de hachage calculée à partir du paquet de clé publique. Les identifiants clés font partie de l'empreinte digitale:

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

Parfois, les ID sont préfixés 0xcar ce sont des valeurs hexadécimales.

Jens Erat
la source
1
Lien très utile vers les informations sur les collisions, merci. Vous voudrez peut-être changer la réponse pour dire que même les touches longues sont forgeables et donc déconseillées.
zkilnbqi
Alors que les identifiants de clé courts sont falsifiés très facilement, les identifiants de clé longs sont 2 à 32 fois plus difficiles à entrer en collision et toujours considérés comme appropriés. Même les empreintes digitales peuvent être falsifiées, elles sont encore plus difficiles à falsifier (en raison du grand nombre d'empreintes digitales possibles).
Jens Erat
1
J'ai été convaincu par le lien que vous avez inclus dans votre réponse. Maintenant, ma signature dit "[email protected] pgp.mit.edu ID à partir du 2015-03-22" est beaucoup plus logique. Si quelqu'un veut vous envoyer un message crypté ou vérifier que vous en avez signé un, il devra quand même trouver votre clé publique sur le serveur de clés, donc il n'y a aucun avantage à utiliser l'ID de clé.
zkilnbqi