¿Cómo soluciono la "ADVERTENCIA: la integridad del mensaje no estaba protegida" cuando uso el cifrado simétrico GPG?

¿Cómo soluciono la "ADVERTENCIA: la integridad del mensaje no estaba protegida" cuando uso el cifrado simétrico GPG?

Cifré un archivo usando cifrado simétrico como este:

gpg --symmetric myfile

lo que da como resultado un archivo myfile.gpg.

Está bien. Ahora desciframos el archivo nuevamente:

gpg -o myfile --decrypt myfile.gpg

Me piden la contraseña que puse y luego veo

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

No estoy seguro de la primera y la última línea.

  • ¿Qué es el cifrado CAST5 y es seguro? Conozco 3DES y AES y sé que son seguros.
  • ¿Por qué no está protegido por su integridad?
  • Y además, ¿cómo soluciono esto?

Respuesta1

Fondo

REPARTO-5es un algoritmo de cifrado más antiguo utilizado por GnuPG porque AES aún no existía cuando se creó GnuPG inicialmente.fuente. No se usa mucho (aparte de GnuPG por razones de compatibilidad).

Esto WARNING: message was not integrity protectedse debe a que esta función no está activada de forma predeterminada en el momento del cifrado. Si esto estuviera activado, GnuPG podría saber si el archivo ha sido modificado en tránsito.

Actualización: las versiones modernas de GnuPG enviadas con Ubuntu/Debian ahora tienen MDChabilitado por defectoy nunca debería volver a ver este mensaje para nada firmado con estas versiones más nuevas.

Soluciones

Para utilizar un AES-256 más potente, debe especificarlo en la línea de comando o en su archivo de configuración.

  • Línea de comando: agregue la --cipher-algo AES256opción para que la línea completa a cifrar se convierta en

    gpg -o myfile.gpg --cipher-algo AES256 --symmetric myfile
    
  • Archivo de configuración (recomendado): agregue la siguiente línea a su ~/.gnupg/gpg.confarchivo de configuración.

    cipher-algo AES256
    

    Recomiendo este enfoque porque se utilizará para todas las operaciones GPG futuras en esta cuenta de usuario.

No hay nada que cambiar para que el usuario descifre el archivo; GnuPG lo detectará automáticamente.

Tenga en cuenta que al utilizar el cifrado AES-256, el mensaje se protege automáticamente para garantizar su integridad. Para habilitar manualmente la protección de integridad en otros cifrados para los cuales no está habilitado (como CAST-5), agregue la --force-mdcopción al cifrar.

Aún mejor: ¡firma!

Un enfoque aún mejor sería firmar sus archivos con su par de claves (si lo tiene). Simplemente agregue la --signopción al comando de cifrado, así:

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

Esto no sólo validará la integridad del archivo, sino que también permitirá que el destinatario del archivo verifique el origen. Cualquier modificación en el archivo provocaría que la verificación de firma fallara.

información relacionada