Como faço para corrigir "AVISO: a mensagem não tinha integridade protegida" ao usar a criptografia simétrica GPG?

Como faço para corrigir "AVISO: a mensagem não tinha integridade protegida" ao usar a criptografia simétrica GPG?

Criptografei um arquivo usando criptografia simétrica como esta:

gpg --symmetric myfile

o que resulta em um arquivo myfile.gpg.

Tudo bem. Agora vamos descriptografar o arquivo novamente:

gpg -o myfile --decrypt myfile.gpg

Estão me pedindo a senha que coloquei e então vejo

gpg: CAST5 encrypted data
gpg: encrypted with 1 passphrase
gpg: WARNING: message was not integrity protected

Não tenho certeza sobre a primeira e a última linha.

  • O que é a cifra CAST5 e ela é segura? Conheço 3DES e AES e sei que são seguros.
  • Por que não está protegido para integridade?
  • E além disso, como faço para corrigir isso?

Responder1

Fundo

STARRING-5é um algoritmo de criptografia mais antigo usado pelo GnuPG porque o AES ainda não existia na época em que o GnuPG foi criado inicialmentefonte. Não é amplamente utilizado (exceto o GnuPG por motivos de compatibilidade).

Isso WARNING: message was not integrity protectedocorre porque esse recurso não está ativado por padrão no momento da criptografia. Se isto estivesse ativado, o GnuPG poderia dizer se o arquivo foi alterado em trânsito.

Atualização: versões modernas do GnuPG fornecidas com Ubuntu/Debian agora possuem MDCativado por padrãoe você nunca deverá ver esta mensagem novamente para qualquer coisa assinada com essas versões mais recentes.

Soluções

Para usar um AES-256 mais forte você precisa especificá-lo na linha de comando ou no seu arquivo de configuração.

  • Linha de comando: adicione a --cipher-algo AES256opção para que a linha completa para criptografar se torne

    gpg -o myfile.gpg --cipher-algo AES256 --symmetric myfile
    
  • Arquivo de configuração (recomendado): adicione a seguinte linha ao seu ~/.gnupg/gpg.confarquivo de configuração.

    cipher-algo AES256
    

    Recomendo esta abordagem porque ela será usada para todas as operações futuras de GPG nesta conta de usuário.

Não há nada a mudar para o usuário descriptografar o arquivo - o GnuPG detectará isso automaticamente.

Observe que usando a cifra AES-256, a mensagem é automaticamente protegida quanto à integridade. Para habilitar manualmente a proteção de integridade em outras cifras para as quais esta não está habilitada (como CAST-5) adicione a --force-mdcopção ao criptografar.

Melhor ainda: assine!

Uma abordagem ainda melhor seria assinar seus arquivos com seu par de chaves (se você tiver). Basta adicionar a --signopção ao comando de criptografia, assim:

gpg -o myfile.gpg --cipher-algo AES256 --sign --symmetric myfile

Isto não só validará a integridade do arquivo, mas também permitirá que o destinatário do arquivo verifique a origem. Quaisquer alterações no arquivo fariam com que a verificação de assinatura falhasse.

informação relacionada