Wycheproof: proyecto para auditar librerías criptográficas

Varios investigadores de seguridad de Google han lanzado el proyecto Wycheproof, un conjunto de pruebas de seguridad que chequean la existencia de debilidades conocidas en bibliotecas de software criptográfico.

Han desarrollado más de 80 casos de prueba que han descubierto más de 40 errores de seguridad (algunas pruebas o errores no son de código abierto todavía ya que están siendo arreglados por los proveedores). Por ejemplo, descubrieron que podían recuperar la clave privada de las implementaciones ampliamente utilizadas de DSA y ECDHC.
También ofrecen herramientas para comprobar proveedores de Java Cryptography Architecture como Bouncy Castle y los proveedores predeterminados en OpenJDK.

La principal motivación del proyecto es tener un objetivo alcanzable. Es por eso que llamaron al proyecto Wycheproof, la montaña más pequeña del mundo. ¡Cuanto más pequeña es la montaña, más fácil es subirla! En criptografía, los errores sutiles pueden tener consecuencias catastróficas, y los errores en las bibliotecas de software criptográfico de código abierto se repiten con demasiada frecuencia y permanecen sin descubrir durante demasiado tiempo. Por otro lado, las buenas directrices de implementación son difíciles de conseguir: la comprensión de cómo implementar la criptografía de forma segura requiere digerir el valor de la documentación académica de décadas.

Hay que reconocer que los ingenieros de software solucionan y previenen bugs con pruebas específicas, pero muchos problemas criptográficos pueden resolverse por los mismos medios. Estas observaciones les llevaron a desarrollar Project Wycheproof, una colección de pruebas unitarias que detectan debilidades conocidas o comprueban comportamientos esperados de algún algoritmo criptográfico. Los criptógrafos han estudiado la documentación e implementado los ataques más conocidos. Como resultado, Project Wycheproof proporciona pruebas para la mayoría de los algoritmos criptográficos, incluyendo RSA, codificación de curva elíptica y cifrado autenticado.

El primer conjunto de pruebas está escrito en Java, porque Java tiene una interfaz criptográfica común. Eso les permitió probar múltiples proveedores con una sola suite de pruebas. Si bien esta interfaz es un poco de nivel bajo, y no debe utilizarse directamente, siguen aplicando un argumento de "defensa en profundidad" y esperan que las implementaciones sean tan robustas como sea posible. Por ejemplo, consideran que los valores por defecto débiles son un fallo de seguridad significativo.

También están convirtiendo todas las pruebas posibles en conjuntos de vectores para simplificar el portado de las pruebas a otros idiomas. Y si bien están comprometidos en desarrollar tantas pruebas como sea posible, las contribuciones externas son bienvenidas (lee CONTRIBUIR).

Pasar las pruebas no implica que la biblioteca sea segura, simplemente significa que no es vulnerable a los ataques que Project Wycheproof intenta detectar. Los criptógrafos descubren constantemente nuevas debilidades en los protocolos criptográficos. Sin embargo, con los desarrolladores y usuarios de Project Wycheproof ahora podemos revisar bibliotecas frente a un gran número de ataques conocidos sin tener que pasar por cientos de documentos académicos o convertirse en criptógrafos. Para obtener más información sobre las pruebas y lo que puede hacer con ellas, visita su página principal en GitHub: https://github.com/google/wycheproof

Fuente: https://security.googleblog.com/2016/12/project-wycheproof.html

Comentarios