
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 protected
ocorre 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 AES256
opção para que a linha completa para criptografar se tornegpg -o myfile.gpg --cipher-algo AES256 --symmetric myfile
Arquivo de configuração (recomendado): adicione a seguinte linha ao seu
~/.gnupg/gpg.conf
arquivo 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-mdc
opçã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 --sign
opçã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.