OpenSSL diz "descriptografia incorreta", embora o texto simples correto tenha sido produzido

OpenSSL diz "descriptografia incorreta", embora o texto simples correto tenha sido produzido

Estou usando OpenSSL 1.0.1e-fips no RHEL 6.9.

Eu criptografei um arquivo com este comando:

openssl enc -aes-256-gcm -a -e -in plaintext -out ciphertext

Em seguida, descriptografo o arquivo criptografado com este comando:

openssl enc -aes-256-gcm -a -d -in ciphertext

Este comando produz esta saída:

test text
bad decrypt

O arquivo foi descriptografado corretamente (ou seja, o conteúdo do arquivo era de fato "texto de teste"), mas o OpenSSL está relatando "descriptografia incorreta". Isso acontece mesmo se eu especificar explicitamente uma função hash para usar (por exemplo-md sha512).

Por que estou recebendo a mensagem "descriptografia incorreta"?

Responder1

Nenhuma versão do OpenSSL suporta qualquer modo AEAD (que inclui GCM) em conjunto com o aplicativo de linha de comando “enc”. Todas as versões atualmente suportadas do OpenSSL exibirão uma mensagem de erro se você tentar criptografar/descriptografar usando este modo:

$ openssl enc -aes-256-gcm -a -e -in plaintext -out ciphertext
enc: AEAD ciphers not supported

OpenSSL 1.0.1 é uma versão muito antiga do OpenSSL e atualmente não é suportada pelo projeto (embora possa ser suportada pela Red Hat). Versões muito antigas do OpenSSL não tinham a verificação AEAD que produz o aviso acima e tentaram criptografar/descriptografar de qualquer maneira - mas incorretamente. Mais significativamente, o comando "enc" não sabe como lidar com a "tag" de um modo AEAD (daí a mensagem "descriptografia incorreta" que você vê). A tag é crítica para a segurança, pois verifica a integridade do texto cifrado.

O comando pode parecer que funcionou - mas não funcionou. Basicamente não use o modo GCM com o comando enc.

informação relacionada