web-dev-qa-db-fra.com

Impossible de décrypter la clé privée même si je connais la phrase secrète

Je pense que mon problème se résume au fait que quelque chose ne va pas avec la clé, mais je ne peux pas simplement la décrypter, pour une enquête plus approfondie, sans l'analyser. Mais je ne suis pas sûr.

J'essaie d'utiliser la méthode standard:

openssl rsa -in ./id_rsa -out ./id_rsa.decrypted

Je pense que je connais la phrase secrète, car lorsque j'entre une mauvaise, j'obtiens:

Enter pass phrase for ./id_rsa:
unable to load Private Key
140256774473360:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:544:
140256774473360:error:0906A065:PEM routines:PEM_do_header:bad decrypt:pem_lib.c:483

"bad decrypt" est assez clair. Maintenant, quand j'entre ma phrase secrète apparemment bonne, je reviens:

Enter pass phrase for ./id_rsa:
unable to load Private Key
139662870623888:error:0D07207B:asn1 encoding routines:ASN1_get_object:header too long:asn1_lib.c:153:
139662870623888:error:0D068066:asn1 encoding routines:ASN1_CHECK_TLEN:bad object header:tasn_dec.c:1314:
139662870623888:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:381:Type=RSA
139662870623888:error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib:rsa_ameth.c:115:
139662870623888:error:0D07207B:asn1 encoding routines:ASN1_get_object:header too long:asn1_lib.c:153:
139662870623888:error:0D068066:asn1 encoding routines:ASN1_CHECK_TLEN:bad object header:tasn_dec.c:1314:
139662870623888:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:381:Type=PKCS8_PRIV_KEY_INFO
139662870623888:error:0907B00D:PEM routines:PEM_READ_BIO_PRIVATEKEY:ASN1 lib:pem_pkey.c:132:

Il a également échoué à charger la clé, mais maintenant il a échoué sur l'analyseur asn1, rien à propos de la phrase secrète.

Puis-je obtenir la version non chiffrée de la clé et utiliser d'autres outils pour voir ce qui ne va pas?

J'ai vu certains articles que quelque chose a changé et les causes possibles de clés apparemment bonnes ne parviennent pas à analyser, mais ils ont tous fonctionné sur une version non chiffrée. Mais la seule méthode que j'ai vue pour dercypter la clé est celle ci-dessus.

9
luk32

Je crois que votre clé privée a été modifiée, car j'ai pu dupliquer le même message d'erreur en changeant un seul caractère dans un exemple de clé protégée de phrase secrète que je viens de créer.

Vous pouvez reproduire ceci comme suit -

  1. Créer une clé privée protégée par une phrase secrète
  2. Déchiffrez la clé privée pour vous assurer qu'elle fonctionne.
  3. Modifiez un seul caractère dans le fichier contenant la clé privée chiffrée.
  4. Essayez de le déchiffrer maintenant.
 [testuser @ whitehat .ssh] $ openssl rsa -in id_rsa -out id_rsa.decrypted 
 Entrez la phrase de passe pour id_rsa: 
 en écrivant la clé RSA 
 [testuser @ whitehat .ssh] $ ls -al id_rsa * 
 - rw -------. 1 testuser testuser 951 24 mars 15:01 id_rsa 
 - rw-rw-r--. 1 testuser testuser 887 24 mars 15:02 id_rsa.decrypted 
 - rw-r - r--. 1 testuser testuser 236 24 mars 14:52 id_rsa.pub 
 [Testuser @ whitehat .ssh] $ vim id_rsa 
 [Testuser @ whitehat .ssh] $ openssl rsa -in id_rsa -out id_rsa.decrypted 
 Entrez la phrase de passe pour id_rsa: 
 Impossible de charger la clé privée 
 139900595279688: erreur: 0D07207B: routines de codage asn1: ASN1_get_object: en-tête trop long: asn1_lib.c: 150: 
 139900595279688: erreur: 0D068066: routines de codage asn1: ASN1_CHECK_TLEN: en-tête d'objet incorrect: tasn_dec.c: 1306: 
 139900595279688: erreur: 0D07803A: routines de codage asn1: asn1_ITEI: ns_n1_ITEM: ASN1_2 381: Type = RSA 
 139900595279688: erreur: 04093004: routines rsa: OLD_RSA_PRIV_DECODE: RSA lib: rsa_ameth.c: 115: 
 139900595279688: erreur: 0D07207B: routeurs de codage asn1 trop longs: ASN1 : asn1_lib.c: 150: 
 139900595279688: erreur: 0D068066: routines de codage asn1: ASN1_CHECK_TLEN: en-tête d'objet incorrect: tasn_dec.c: 1306: 
 139900595279688: erreur: 0D07803A: asM1_S1 : erreur asn1 imbriquée: tasn_ dec.c: 381: Type = PKCS8_PRIV_KEY_INFO 
 139900595279688: erreur: 0907B00D: routines PEM: PEM_READ_BIO_PRIVATEKEY: ASN1 lib: pem_pkey.c: 132: 
 [testuser @ whitehat .ssh] .]

Informations sur la version OS et openssl

 [testuser @ whitehat /] $ lsb_release -a 
 Version LSB:: core-4.0-AMD64: core-4.0-noarch: graphics-4.0-AMD64: graphics-4.0-noarch: printing- 4.0-AMD64: printing-4.0-noarch 
 ID du distributeur: Scientific 
 Description: Scientific Linux version 6.2 (Carbon) 
 Release: 6.2 
 Nom de code: Carbon 
 [testuser @ whitehat /] $ rpm -q openssl 
 openssl-1.0.1e-30.el6_6.5.x86_64 
9
Daniel t.

Je me suis retrouvé ici parce que j'avais le même problème, mais le mien était dû à l'interface d'exportation de certificat AWS ACM. (Les certificats d'autorité de certification privés peuvent être exportés avec une phrase secrète)

Quelque chose à propos de la phrase secrète que j'ai utilisée ... Je ne sais pas exactement ce qui a causé le problème, mais c'était probablement la longueur ou les symboles utilisés.

Le résultat final était que j'avais une clé avec un mot de passe différent/raccourci à ce que j'attendais.

J'espère que cela aide quelqu'un ...

1
comfytoday