Como verificar a integridade do par de chaves privadas?

Você pode verificar a integridade de um certificado SSL e de um par de chaves privadas com o utilitário
utilitário OpenSSL
e suas linhas de comando.

O processo consiste em quatro etapas:

  1. Verifique se a chave privada não foi alterada.
  2. Verificar a correspondência do valor do módulo com a chave privada e o par de certificados SSL
  3. Executar com êxito a criptografia com a chave pública do certificado e a descriptografia com a chave privada
  4. Confirmar a integridade do arquivo, que é assinado com a chave privada

Verificar a integridade da chave privada

Execute o seguinte comando: openssl rsa -in [key-file .key] -check -noout

Aqui está um exemplo de uma chave privada corrompida:

erro de chave privada

Outros erros resultantes de uma chave alterada/forjada estão listados abaixo:

  • Erro na chave RSA: p não é primo
  • Erro na chave RSA: n não é igual a p q
  • Erro na chave RSA: d e não é congruente com 1
  • Erro de chave RSA: dmp1 não é congruente com d
  • Erro na chave RSA: iqmp não é o inverso de q

Se você encontrou algum dos erros acima, sua chave privada foi adulterada e pode não funcionar com sua chave pública. Considere a possibilidade de criar uma nova chave privada e solicitar um certificado de substituição.

Aqui está um exemplo de chave privada que atende à integridade:

chave rsa ok

Verificar a correspondência do valor do módulo com a chave privada e o par de certificados SSL


Observação:

O módulo da chave privada e do certificado deve corresponder exatamente.

Para visualizar o Modulus do certificado, execute o comando:

openssl x509 -noout -modulus -in [certificate-file .cer]

Para exibir a chave privada Modulus, execute o comando:

openssl rsa -noout -modulus -in [key-file .key]

Criptografar com a chave pública de e descriptografar com a chave privada

1. Obtenha a chave pública do certificado:

openssl x509 -in [certificate-file .cer] -noout -pubkey > certificatefile.pub.cer

2. Criptografar o conteúdo do arquivo test.txt usando a chave pública

Crie um novo arquivo chamado test.txt (você pode usar o Bloco de Notas) com o conteúdo “message test”. Execute o seguinte comando para criar uma mensagem criptografada no arquivo cipher.txt.

openssl rsautl -encrypt -in test.txt -pubin -inkey certificatefile.pub.cer -out cipher.txt

3. Descriptografar de cipher.txt usando a chave privada
Execute o seguinte comando para descriptografar o conteúdo de cipher.txt.

openssl rsautl -decrypt -in cipher.txt -inkey [key-file .key]

Certifique-se de poder descriptografar o conteúdo do arquivo cipher.txt no terminal. A saída do terminal deve corresponder ao conteúdo do arquivo test.txt.

Se o conteúdo não corresponder, a chave privada foi adulterada e pode não funcionar com sua chave pública. Considere a possibilidade de criar uma nova chave privada e solicitar um certificado de substituição. Aqui está um exemplo de uma mensagem descriptografada:

teste de mensagem

4. Confirme a integridade do arquivo assinado com a chave privada

Execute o seguinte comando para assinar os arquivos test.sig e test.txt com sua chave privada:

openssl dgst -sha256 -sign [key-file .key] -out test.sig test.txt

Agora, verifique os arquivos assinados com sua chave pública extraída da etapa 1.

openssl dgst -sha256 -verify certificatefile.pub.cer -signature test.sig test.txt

Certifique-se de que a saída do terminal seja exatamente como no exemplo abaixo:

verificado ok
Se sua chave privada for adulterada, você receberá a seguinte mensagem:

falha na verificação
Nesse caso, você deve criar uma nova chave privada e solicitar um certificado de substituição.

Fonte: Base de Conhecimento da Digicert

Economize 10% em certificados SSL ao fazer seu pedido hoje!

Emissão rápida, criptografia forte, 99,99% de confiança no navegador, suporte dedicado e garantia de reembolso de 25 dias. Código do cupom: SAVE10