
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 protected
se 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 AES256
opción para que la línea completa a cifrar se convierta engpg -o myfile.gpg --cipher-algo AES256 --symmetric myfile
Archivo de configuración (recomendado): agregue la siguiente línea a su
~/.gnupg/gpg.conf
archivo 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-mdc
opció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 --sign
opció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.