Como corrijo a mensagem “AVISO: a mensagem não estava protegida contra integridade” ao usar criptografia simétrica GPG?

43

Eu criptografei um arquivo usando criptografia simétrica como esta:

gpg --symmetric myfile

que resulta em um arquivo myfile.gpg .

Tudo bem. Agora vamos descriptografar o arquivo novamente:

gpg -o myfile --decrypt myfile.gpg

Estou sendo perguntado pela senha que eu coloquei e depois 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.

  • Qual é a cifra CAST5 e ela é segura? Eu conheço o 3DES e o AES e sei que eles são seguros.
  • Por que não é protegido pela integridade?
  • E, além disso, como faço para corrigir isso?
por gertvdijk 19.08.2013 / 16:22

1 resposta

65

Antecedentes

CAST-5 é um algoritmo de criptografia mais antigo usado pelo GnuPG porque o AES ainda não existia tempo GnuPG foi criado inicialmente fonte . Não é muito usado (além do GnuPG por razões de compatibilidade).

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

Update: versões modernas do GnuPG fornecidas com o Ubuntu / Debian agora possuem o ativado do MDC por padrão e você nunca mais verá essa mensagem para assinar com essas versões mais recentes.

Soluções

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

  • Linha de comando: adicione a opção --cipher-algo AES256 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 arquivo de configuração ~/.gnupg/gpg.conf .

    cipher-algo AES256
    

    Eu recomendo essa abordagem porque ela será usada para todas as futuras operações GPG nessa conta de usuário.

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

Note que usando a cifra AES-256, a mensagem é automaticamente protegida para integridade. Para ativar manualmente a proteção de integridade em outras cifras para as quais isso não está habilitado (como o CAST-5), adicione a opção --force-mdc ao criptografar.

Melhor ainda: assine!

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

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

Isso não apenas validará a integridade do arquivo, mas também possibilitará que o destinatário do arquivo verifique a origem. Quaisquer alterações no arquivo teriam a verificação de assinatura para falhar.

    
por 19.08.2013 / 16:22