Nuestros mejores desarrolladores han agotado sus reservas de café, buscando día y noche por la solución, hasta que Alfredo encontró la solución en GitHub por lo tanto hoy la comparte contigo.
Solución:
TL; DR: para GnuPG 1.0 y 2.0, el valor predeterminado es Cast5, para GnuPG 2.1 es AES-128.
Preferencias del destinatario
De manera predeterminada, GnuPG leerá las preferencias de algoritmo del destinatario y tomará el primer algoritmo de esa lista que admita (en otras palabras, tomará el algoritmo admitido más preferido que solicite el destinatario).
Algoritmos seguros
Si no se dan preferencias (o --symmetric
se usa para el cifrado simétrico usando una frase de contraseña), elige una “segura”. Medio seguro, que debe ser o debería ser implementado. Cuál es depende de la versión de GnuPG y el nivel de compatibilidad elegido. Puede verificar esto fácilmente iniciando un cifrado simétrico, pasando uno de los niveles de compatibilidad (o ninguno, lo que implica --gnupg
):
gpg --verbose --symmetric
gpg: using cipher CAST5
Cumplimiento estricto de RFC
Por otro lado, si se aplica el cumplimiento estricto de OpenPGP siguiendo RFC 4880, se reduce al triple DES:
gpg --rfc4880 --verbose --symmetric
gpg: using cipher 3DES
Lo mismo se aplica si se hace cumplir RFC 2440 usando --rfc2440
.
GnuPG 2.1 por defecto es AES-128
GnuPG 2.0 también usa CAST5 con el valor predeterminado --gnupg
mientras que este valor predeterminado se cambió a AES-128 en GnuPG 2.1:
LANG=C gpg2 --verbose --symmetric
gpg: using cipher AES
(AES sin más especificaciones significa AES-128 en GnuPG)
GnuPG 2.1 usa los mismos algoritmos para la configuración compatible con RFC.
Algoritmos de resumen
Para algoritmos de resumen, se realiza una inferencia de preferencia de algoritmo similar. Si --verbose
se establece como una opción, se imprime el algoritmo utilizado.
Una excepción es el paquete de código de detección de modificación, que solo permite SHA-1 sin elección de algoritmo según lo definido por el estándar.
Los valores predeterminados deben haber cambiado. El valor predeterminado (a principios de 2019) para gnupg-1.4.23 es AES128. El valor predeterminado para gnupg-2.1.18 es AES256. Las páginas de manual de ambas versiones indican que el valor predeterminado es AES128, pero eso no es correcto para gnupg-2.1.18.
Para responder esto usted mismo para su versión de gnupg, haga lo siguiente:
echo hi > testfile
gpg -c -vv testfile
rm testfile testfile.gpg
Después de ingresar la frase de contraseña dos veces, dirá algo como:
gpg: using cipher AES
gpg: writing to `testfile.gpg'
o:
gpg: using cipher AES256
gpg: writing to 'testfile.gpg'
AES significa AES128.