Vidage lisible par l'homme de la clé publique gpg


22

Existe-t-il un outil pour écrire le contenu réel d'une clé publique GnuPG d'une manière qu'un humain puisse comprendre? Je veux dire non seulement une armure ascii qu'un humain peut lire et taper, mais quelque chose qui décompose vraiment les données en grands nombres décimaux pour la partie crypto, des chaînes pour les UID, etc.? J'aimerais vraiment voir ce qu'il y a dedans.

Application réelle aujourd'hui: J'ai deux clés de la même personne, créées à la même date, mais dont l'empreinte digitale diffère. L'hypothèse est que l'un d'eux a été créé à partir de l'autre par une sorte de conversion, probablement en important l'ancienne clé dans un trousseau à l'aide d'un logiciel récent. J'aimerais voir ce qui a réellement changé. Peut-être que ce n'est que l'algorithme d'empreinte digitale qui a changé, mais peut-être qu'il y a plus.


J'ai trouvé toutes les réponses suggérées avant d'arriver à cette question. Malheureusement, cela craint toujours d'être "lisible par l'homme", surtout lorsque la clé a de nombreuses signatures. Je m'attendais vraiment à ce que gpg2 donne facilement ces informations dans une sorte de show-keycommande :-(
Bluehorn

Réponses:


20

Essayer

gpg --list-packets --verbose < pubkey.asc

Il ne vide pas les données clés, mais il montre tous les autres détails. Pour vider des parties de données brutes supplémentaires, vous avez besoin de l'indicateur de débogage 2, alors ajoutez-le --debug 0x02, cela videra les clés et autres données en hexadécimal. Cela fonctionne dans les versions GPG 1.2 et 1.4, mais malheureusement pas dans 2.0 car la prise en charge du dumping des données bignum (MPI) n'est pas activée (voir DBG_MPIdans g10/parse-packet.c) pour une raison quelconque.

Essayez également pgpdump :

pgpdump < pubkey.asc

Semble bon, mais il omet toujours certaines données: certaines choses sont abrégées en tant que [1024 bits]ou j'aime. J'aimerais voir ces morceaux. Je sais que vous avez écrit que ceux-ci ne sont pas inclus.
MvG

1
Trouvé, indicateur de débogage 2, mis à jour.
mr.spuratic

Ce drapeau de débogage ne fonctionne pas pour moi, pour une raison quelconque. Il imprime un message sur le drapeau en cours d'activation, mais n'imprime pas les informations de débogage pour cela. Il faudra probablement fouiller dans les sources pour savoir pourquoi… @grawity: pgpdump ressemble beaucoup à ce que j'avais en tête, merci. Toute raison particulière pour laquelle vous avez choisi de modifier une réponse existante au lieu d'en publier une nouvelle. Après tout, les deux sont des suggestions différentes, chacune ayant ses propres avantages et inconvénients, de sorte que les utilisateurs peuvent vouloir voter de manière indépendante.
MvG

3
Cet indicateur de débogage est pour le débogage MPI (bignum) ( DBG_MPI), il fonctionne comme indiqué dans GPG 1.2 / 1.4, mais il n'est pas correctement pris en charge dans GPG 2.0.x (il est commenté g10/parse-packet.c) avec un "FIXME" à côté ... @ grawity merci pour la pointe pgpdump, semble utile.
mr.spuratic

4

En attendant les réponses, j'ai lu le RFC4880 (OpenPGP) et j'ai trouvé mon propre code pour analyser et imprimer la partie pertinente d'un flux de paquets exporté. Loin d'être complet, mais il pourrait être utile à d'autres, donc je le poste également. En ce moment, je vois peu d'avantages par rapport à ce pgpdump suggéré par @grawity, mais qui sait…


2

J'ai utilisé pgpdump Cela fonctionne bien et montre une belle sortie lisible par l'homme. Il n'imprime pas encore les clés de courbe elliptique, mais il vous indiquera au moins qu'il s'agit d'une clé EC. Si vous sélectionnez l'option "vidage des littéraux", elle vous montrera les données clés réelles.


pastebin.com/pRezWQfP est un exemple de sortie utilisant ma clé publique.
Brian Minton

1
On dirait que le site a disparu, juste quelques squatteurs de domaine là maintenant ...
npostavs

Oui, c'est comme ça.
Brian Minton
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.