Cifré un archivo usando cifrado simétrico como este:
gpg --symmetric myfile
que da como resultado un archivo myfile.gpg
.
Bien. Ahora desencriptemos el archivo nuevamente:
gpg -o myfile --decrypt myfile.gpg
Me piden la frase de 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 última línea allí.
- ¿Cuál es el cifrado CAST5 y es seguro? Sé 3DES y AES y sé que esos son seguros.
- ¿Por qué no está protegido por integridad?
- Y además, ¿cómo soluciono esto?
encryption
gnupg
data-integrity
aes
gertvdijk
fuente
fuente
gpg -c myfile
cifrar ygpg myfile.gpg
descifrar, la salida se descifrarámyfile
de forma predeterminada.gpg myfile.gpg
dará como resultado una salida descifrada enviada a stdout en mi sistema ...Respuestas:
Antecedentes
CAST-5 es un algoritmo de cifrado más antiguo utilizado por GnuPG porque AES aún no existía en el momento en que GnuPG se creó inicialmente como fuente . No se usa ampliamente (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 manera predeterminada en el momento del cifrado. Si esto estaba activado, GnuPG podría decir si el archivo ha sido alterado en tránsito.Actualización: las versiones modernas de GnuPG incluidas con Ubuntu / Debian ahora tienen MDC habilitado de forma predeterminada y 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 fuerte, 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 para encriptar se conviertaArchivo de configuración (recomendado): agregue la siguiente línea a su
~/.gnupg/gpg.conf
archivo de configuración.Recomiendo este enfoque porque se usará para todas las futuras operaciones de GPG 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 usar el cifrado AES-256, el mensaje se protege automáticamente por integridad. Para habilitar manualmente la protección de integridad en otros cifrados para los que esto no está habilitado (como CAST-5), agregue la
--force-mdc
opción al cifrar.Aún mejor: ¡firme!
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, de esta manera:Esto no solo validará la integridad del archivo, sino que también hará posible que el destinatario del archivo verifique el origen. Cualquier alteración en el archivo tendría la verificación de firma para fallar.
fuente