Não é possível descriptografar a chave privada mesmo sabendo a frase secreta

7

Acho que meu problema se resume ao fato de que algo está errado com a chave, mas não posso simplesmente descriptografá-la, para uma investigação mais aprofundada, sem analisá-la. Mas não tenho certeza.

Estou tentando usar o método padrão:

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

Eu acho que conheço a frase secreta, porque quando eu digito errado, eu recebo:

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

" decodificação incorreta " é bastante clara. Agora, quando eu insiro minha frase aparentemente boa, eu volto:

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:

Ele também falhou ao carregar a chave, mas agora falhou no analisador asn1, nada sobre a frase secreta.

Posso de alguma forma obter uma versão não criptografada da chave e usar outras ferramentas para ver o que está errado?

Eu vi algumas postagens que algo mudou e possíveis causas para chaves aparentemente boas não conseguem analisar, mas todas elas funcionaram em versões não criptografadas. Mas eles só o método que eu vi para enterrar chave é o anterior.

    
por luk32 24.03.2015 / 22:12

2 respostas

9

Acredito que sua chave privada foi modificada, já que consegui duplicar a mesma mensagem de erro alterando um único caractere em uma chave protegida de frase secreta de amostra que acabei de criar.

Você pode reproduzir isso da seguinte forma:

  1. Criar chave privada protegida por frase secreta
  2. Descriptografe a chave privada para garantir que funcione.
  3. Altere um único caractere dentro do arquivo que contém a chave privada criptografada.
  4. Tente decifrá-lo agora.
[testuser@whitehat .ssh]$ openssl rsa -in id_rsa -out id_rsa.decrypted
Enter pass phrase for id_rsa:
writing RSA key
[testuser@whitehat .ssh]$ ls -al id_rsa*
-rw-------. 1 testuser testuser 951 Mar 24 15:01 id_rsa
-rw-rw-r--. 1 testuser testuser 887 Mar 24 15:02 id_rsa.decrypted
-rw-r--r--. 1 testuser testuser 236 Mar 24 14:52 id_rsa.pub
[testuser@whitehat .ssh]$ vim id_rsa
[testuser@whitehat .ssh]$ openssl rsa -in id_rsa -out id_rsa.decrypted
Enter pass phrase for id_rsa:
unable to load Private Key
139900595279688:error:0D07207B:asn1 encoding routines:ASN1_get_object:header too long:asn1_lib.c:150:
139900595279688:error:0D068066:asn1 encoding routines:ASN1_CHECK_TLEN:bad object header:tasn_dec.c:1306:
139900595279688:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:381:Type=RSA
139900595279688:error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib:rsa_ameth.c:115:
139900595279688:error:0D07207B:asn1 encoding routines:ASN1_get_object:header too long:asn1_lib.c:150:
139900595279688:error:0D068066:asn1 encoding routines:ASN1_CHECK_TLEN:bad object header:tasn_dec.c:1306:
139900595279688:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:381:Type=PKCS8_PRIV_KEY_INFO
139900595279688:error:0907B00D:PEM routines:PEM_READ_BIO_PRIVATEKEY:ASN1 lib:pem_pkey.c:132:
[testuser@whitehat .ssh]$ 

Informações da versão do SO e do openssl

[testuser@whitehat /]$ lsb_release -a
LSB Version:    :core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: Scientific
Description:    Scientific Linux release 6.2 (Carbon)
Release:    6.2
Codename:   Carbon
[testuser@whitehat /]$ rpm -q openssl
openssl-1.0.1e-30.el6_6.5.x86_64
    
por 24.03.2015 / 23:06
1

Acabei aqui porque tive o mesmo problema, mas o meu foi causado pela interface de exportação do certificado AWS ACM. (Certificados privados de CA podem ser exportados com uma frase secreta)

Algo sobre a frase-senha específica que usei ... Não sei exatamente o que causou o problema, mas provavelmente foi o tamanho ou os símbolos usados.

O resultado final foi que eu tinha uma chave com uma frase-senha diferente / abreviada para o que eu esperava.

Espero que ajude alguém ...

    
por 20.04.2018 / 07:11