web-dev-qa-db-fra.com

GnuPG générant une paire de clés publique / privée où la clé publique et la clé privée sont identiques et non différentes

Je veux générer des paires de clés privées publiques GnuPG. J'ai gpg et pas gpg2 installé. Je suis donc allé au terminal et j'ai fait:

gpg --gen-key

production:

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)

J'ai sélectionné 1 Production:

What keysize do you want? (2048) 

J'ai sélectionné 4096 Production:

Key is valid for? (0)

J'ai sélectionné 0 Production:

You need a user ID to identify your key; 
the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
"Name Title (some comment) <[email protected]>"

Real name: My Name
Email address: [email protected]
Comment: comment
You selected this USER-ID:
"My Name (comment) <[email protected]>"

Production:

You need a Passphrase to protect your secret key.

J'ai donné un mot de passe de sortie:

gpg: key XXXXXXXL marked as ultimately trusted
public and secret key created and signed.

pub   ABCDE/XXXXXXXL 2016-06-09
Key fingerprint = XXXX XXXX XXXX XXXX XXXX  XXXX XXXX XXXX XXXX XXXXL
uid                  My Name (comment) <[email protected]>
sub   ABCDE/XXXXXXXM 2016-06-09

J'ai ajouté la ligne suivante à mon ~/.profile:

export GPGKEY=XXXXXXXM

Ensuite, je l'ai fait

killall -q gpg-agent
eval $(gpg-agent --daemon)
export GPGKEY=XXXXXXXM

Ensuite, je l'ai chiffré:

gpg --cert-digest-algo=SHA256 --edit-key XXXXXXXM

Production:

Secret key is available.

pub   ABCDE/XXXXXXXM  created: 2016-06-09  expires: never       usage: SC  
                     trust: ultimate      validity: ultimate
[ultimate] (1). My Name (comment) <[email protected]>

Command> 

J'ai fait

addkey

Production:

Please select what kind of key you want:
   (2) DSA (sign only)
   (4) Elgamal (encrypt only)
   (5) RSA (sign only)
   (6) RSA (encrypt only)

J'ai sélectionné 6 Production:

What keysize do you want? (2048)

J'ai sélectionné 4096 Production:

Key is valid for? (0)

J'ai sélectionné 0 Production:

pub   ABCDE/XXXXXXXL  created: 2016-06-09  expires: never       usage: SC  
                     trust: ultimate      validity: ultimate
sub   ABCDE/XXXXXXXM created: 2016-06-09  expires: never       
sub   ABCDE/XXXXXXXN created: 2016-06-09  expires: never       usage: E   

[ultimate] (1). My Name (comment) <[email protected]>
Command> 

J'ai fait:

save

Ensuite, j'ai fait:

gpg --list-keys

Voici mon exemple de sortie:

pub   ABCDE/XXXXXXXL 2016-06-09
uid                  My Name (comment) <[email protected]>
sub   ABCDE/XXXXXXXM 2016-06-09
sub   ABCDE/XXXXXXXN 2016-06-10

Mais quand je fais

`gpg --list-secret-keys`

J'obtiens de-à-de la même sortie à l'exception de sec au lieu de pub:

sec   ABCDE/XXXXXXXL 2016-06-09
uid                  My Name (comment) <[email protected]>
sub   ABCDE/XXXXXXXM 2016-06-09
sub   ABCDE/XXXXXXXN 2016-06-10

Je sais que la portion après pub ABCDE/ est la clé publique et la partie après sec ABCDE/ est la clé privée. Bref, ma clé publique et ma clé privée sont les mêmes.

Un autre scénario particulier est qu'ici trois lignes commencent par ABCDE, mais la combinaison doit être différente.

Comment obtenir des clés publiques et privées distinctes?

1
rancho

Finalement, j'ai réussi à résoudre mon problème. Bien que d'une manière différente.

J'ai installé Thunderbird, créé un compte pour mon adresse e-mail. Ensuite, j'ai installé l'extension enigmail. À partir de l'assistant de configuration enigmail, j'ai créé une paire de clés pour mon compte et un certificat de révocation.

Mais ici, le problème n'était toujours pas résolu. Je suis allé à la gestion des clés enigmail, puis j'ai fait un clic droit sur ma clé et sélectionné le téléchargement sur le serveur de clés publiques. Mais une erreur constante venait. C'est parce qu'enigmail n'a pas pu ajouter les clés à mon trousseau de clés de confiance.

J'ai donc de nouveau fait un clic droit sur ma clé et sélectionné la clé d'exportation, puis activé l'exportation de la clé privée et cliqué sur OK. Supposons que j'avais donné le nom au fichier de sortie mykey-pub-sec.asc

Ensuite, je suis allé au terminal et j'ai tapé:

cd /path/to/the/saved/file
gpg --allow-secret-key-import --import mykey-pub-sec.asc
gpg --keyserver keyserver.ubuntu.com --send-key $GPGKEY

Ici, j'ai remplacé $ GPGKEY par l'ID de clé

Voilà le travail fait

0
rancho

Je sais que la portion après pub ABCDE/ est la clé publique et la partie après sec ABCDE/ est la clé privée.

Vous confondez le champ d'identification de l'algorithme avec l'ID de clé.

sec   ABCDE/XXXXXXXL 2016-06-09
uid                  My Name (comment) <[email protected]>
sub   ABCDE/XXXXXXXM 2016-06-09
sub   ABCDE/XXXXXXXN 2016-06-10

Le champ que vous avez masqué par ABCDE ne peut jamais être ABCDE. Ce champ contient l'algorithme et l'identificateur de taille de clé, par exemple R4096 pour une clé RSA 4096 bits. Il devrait contenir les mêmes informations pour le même algorithme et la même taille de clé. D1024 désigne une clé DSA 1024 bits, et cetera.

L'identifiant de la clé (courte) est la partie derrière la barre oblique / - et en regardant la question, cela semble déjà être différent, de toute façon.

Comment obtenir des clés publiques et privées distinctes?

Tu as déjà. Trois paires de clés publiques/privées ont été générées, chacune étant unique. Il n'y a rien de tel qu'un identifiant de clé privée, dans OpenPGP vous faites toujours référence à la clé publique (car les clés viennent toujours par paires, de toute façon).

1
Jens Erat