
Herramienta para comprobar si un cliente PGP está afectado por CVE-2021-33560
Esta herramienta sirve para comprobar si tu cliente OpenPGP está afectado por CVE-2021-33560.
Esta vulnerabilidad permite recuperar el texto plano de los mensajes que cifras con algunas subclaves ElGamal. Los detalles técnicos de la vulnerabilidad se describen en esta entrada de blog y en este artículo de investigación.
Esta herramienta comprueba si tu cliente OpenPGP está afectado cuando actúa como remitente. No indica si tus subclaves ElGamal están afectadas cuando actúan como destinatario; lamentablemente, se trata de una comprobación computacionalmente costosa que solo puede realizar un experto. Si usas subclaves ElGamal y te preocupa su seguridad, lee nuestras preguntas frecuentes.
Necesitas Python versión 3.8 o superior.
Esta herramienta funciona cifrando un mensaje con una subclave ElGamal especialmente diseñada y analizando el texto cifrado resultante para buscar la vulnerabilidad.
La forma de importar la clave pública y cifrar con ella depende de tu cliente OpenPGP. En el siguiente ejemplo usamos GPG (cuya libgcrypt está afectada hasta las versiones 1.8.8 y 1.9.3), pero tendrás que adaptar los pasos a tu propio cliente.
Clona este repositorio y entra en él
git clone https://github.com/IBM/PGP-client-checker-CVE-2021-33560.git
cd PGP-client-checker-CVE-2021-33560
Importa la clave pública (este paso depende de tu cliente)
gpg --import key.asc
Cifra un mensaje (p. ej., "Hi") con la clave importada (este paso depende de tu cliente)
echo "Hi" | gpg -e --always-trust --armor -r [email protected] --output ciphertext.asc
Ejecuta la herramienta sobre el texto cifrado obtenido
./sec-check.py ciphertext.asc
e inspecciona la salida. Si tu cliente está afectado, es posible que veas un mensaje similar a este:
Inspecting ./ciphertext.asc
Ephemeral secret bit length: 342
**Your client is affected by CVE-2021-33560!**
Your client seems to be based on an old version of libgcrypt. If a
security patch for your client is available, install it!
Para obtener más información sobre la vulnerabilidad, lee nuestra entrada técnica del blog.