Google libero el codigo fuente de Paranoid, el proyecto para detección de vulnerabilidades en artefactos criptográficos
Los miembros del equipo de seguridad de Google, dieron a conocer mediante una publicación de blog que han tomado la decisión de liberar el código fuente de la biblioteca «Paranoid», diseñada para detectar debilidades conocidas en grandes cantidades de artefactos criptográficos poco confiables, como claves públicas y firmas digitales creadas en sistemas de software y hardware vulnerable (HSM).
El proyecto puede ser útil para la evaluación indirecta del uso de algoritmos y bibliotecas que tienen brechas y vulnerabilidades conocidas que afectan la confiabilidad de las claves y firmas digitales generadas, si los artefactos que se verifican son generados por hardware que es inaccesible para la verificación o componentes cerrados que son una caja negra.
Ademas de ello, tambien Google menciona que una caja negra puede generar un artefacto sí, en un escenario, no fue generado por una de las propias herramientas de Google como Tink. Esto tambien sucedería si fuera generado por una biblioteca que Google puede inspeccionar y probar con el uso de Wycheproof.
El objetivo de abrir la biblioteca es aumentar la transparencia, permitir que otros ecosistemas la utilicen (como las autoridades de certificación, CA que necesitan realizar controles similares para cumplir con el cumplimiento ) y recibir contribuciones de investigadores externos. Al hacerlo, estamos haciendo un llamado para contribuciones , con la esperanza de que después de que los investigadores encuentren e informen vulnerabilidades criptográficas, los cheques se agreguen a la biblioteca. De esta forma, Google y el resto del mundo pueden responder rápidamente a las nuevas amenazas.
La biblioteca también puede analizar conjuntos de números pseudoaleatorios para determinar la confiabilidad de su generador y, utilizando una gran colección de artefactos, identificar problemas previamente desconocidos que surgen debido a errores de programación o al uso de generadores de números pseudoaleatorios poco confiables.
Por otra parte, tambien se menciona que Paranoid presenta implementaciones y optimizaciones que se extrajeron de la literatura existente relacionada con la criptografía, lo que implica que la generación de estos artefactos fue defectuosa en algunos casos.
Al verificar el contenido del registro público CT (Certificate Transparency), que incluye información sobre más de 7 mil millones de certificados, utilizando la biblioteca propuesta, no se encontraron claves públicas problemáticas basadas en curvas elípticas (EC) y firmas digitales basadas en el algoritmo ECDSA, pero se encontraron claves públicas problemáticas según el algoritmo RSA.
Después de la divulgación de la vulnerabilidad ROCA , nos preguntamos qué otras debilidades pueden existir en los artefactos criptográficos generados por las cajas negras y qué podríamos hacer para detectarlas y mitigarlas. Luego comenzamos a trabajar en este proyecto en 2019 y creamos una biblioteca para realizar comprobaciones contra grandes cantidades de artefactos criptográficos.
La biblioteca contiene implementaciones y optimizaciones de trabajos existentes que se encuentran en la literatura. La literatura muestra que la generación de artefactos es defectuosa en algunos casos; a continuación, se muestran ejemplos de publicaciones en las que se basa la biblioteca.
En particular, se identificaron 3586 claves no confiables generadas por el código con la vulnerabilidad CVE-2008-0166 sin parchear en el paquete OpenSSL para Debian, 2533 claves asociadas con la vulnerabilidad CVE-2017-15361 en la biblioteca Infineon y 1860 claves con la vulnerabilidad asociada con encontrar el máximo común divisor (MCD).
Tenga en cuenta que el proyecto pretende ser liviano en el uso de recursos computacionales. Las comprobaciones deben ser lo suficientemente rápidas para ejecutarse en una gran cantidad de artefactos y deben tener sentido en el contexto de producción del mundo real. Los proyectos con menos restricciones, como RsaCtfTool , pueden ser más apropiados para diferentes casos de uso.
Finalmente se menciona que se envió información sobre los certificados problemáticos que permanecían en uso a los centros de certificación para su revocación.
Para los interesados en poder conocer más sobre el proyecto, deben saber que el código está escrito en Python y se distribuye bajo la licencia Apache 2.0. Pueden consultar los detalles, asi como el codigo fuente en el siguiente enlace.