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

45

Eu 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

Me pedem a 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 lá.

  • O que é a cifra CAST5 e é segura? Conheço o 3DES e o AES e sei que eles são seguros.
  • Por que não é protegido por integridade?
  • Além disso, como faço para corrigir isso?
gertvdijk
fonte
Btw você pode apenas gpg -c myfilepara criptografar e gpg myfile.gpgdescriptografar, saída será descriptografada myfilepor padrão.
Cprn 12/12/16
1
@CyprianGuerra gpg myfile.gpgresultará na saída descriptografado enviado para stdout no meu sistema ...
gertvdijk
Interessante. Eu tê-lo em padrões ...
CPRN
Eu baixei a GUI daqui e decifrei o arquivo usando-o. Funcionou! pgptool.github.io
Iftikhar Ahmad Dar

Respostas:

69

fundo

O CAST-5 é um algoritmo de criptografia mais antigo usado pelo GnuPG porque o AES ainda não existia no tempo em que o GnuPG foi criado inicialmente como fonte . Não é amplamente utilizado (além do GnuPG por motivos de compatibilidade).

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

Atualização: as versões modernas do GnuPG enviadas com o Ubuntu / Debian agora têm o MDC ativado por padrão e você nunca deve ver esta mensagem novamente por nada assinado com essas versões mais recentes.

Soluções

Para usar um AES-256 mais forte, você deve 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 a 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
    

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

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

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

Melhor ainda: assine!

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

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

Isso não apenas validará a integridade do arquivo, mas também permitirá ao destinatário do arquivo verificar a origem. Quaisquer alterações no arquivo teriam uma falha na verificação da assinatura.

gertvdijk
fonte
Não preciso de um certificado para assinar?
bilal fazlani
@bilalfazlani para assinar, você precisará de um par de chaves no GnuPG, sim. Não há necessidade de torná-lo público, se você não quiser. Apenas compartilhe a chave pública com os colegas com quem você está compartilhando os arquivos criptografados e eles deverão verificar a impressão digital da chave com você.
Gtvdijk # 3/16
Obrigado pela resposta detalhada. Você pode explicar mais sobre como usar o par de chaves?
ben-Nabiy Derush
"a mensagem não estava protegida pela integridade" acontece no lado do destinatário e você diz como corrigir isso no lado do remetente. A questão é como ignorar a questão do lado do destinatário para ser capaz de decifrar mensagens mais antigas (em enigmail)
ensonic
@ ben-NabiyDerush Esses dois artigos podem esclarecer suas dúvidas sobre como (e por que) usar um par de chaves público e privado. Criptografia de chave pública . Web of Trust
jpaugh 23/09