Llegamos a ustedes gracias a:



Noticias

Google coloca como código abierto suite de evaluación

Para encontrar bugs criptográficos

[23/12/2016] Trabajar con bibliotecas criptográficas es difícil, y un solo error de implementación puede resultar en problemas de seguridad graves. Para ayudar a los desarrolladores a revisar su código en busca de errores de implementación y encontrar debilidades en las bibliotecas de software criptográfico, Google ha lanzado una suite de pruebas como parte del Proyecto Wycheproof.

"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 demasiado a menudo y se mantienen sin descubrir por demasiado tiempo, escribieron Daniel Bleichenbacher y Thai Duong, ingenieros de seguridad de Google, en una entrada que anunciaba el proyecto en el blog Google Security.

Llamado en honor del Mount Wycheproof de Australia, la montaña más pequeña del mundo, Wycheproof proporciona a los desarrolladores un conjunto de pruebas unitarias que detectan las debilidades conocidas en los algoritmos criptográficos y revisan los comportamientos esperados. El primer conjunto de pruebas está escrito en Java, porque Java tiene una interfaz criptográfica común y puede ser usada para probar varios proveedores.

"Reconocemos que los ingenieros de software arreglarán y evitarán los bugs con pruebas unitarias, y encontramos que muchos problemas criptográficos pueden resolverse por el mismo medio, escribieron Bleichenbacher y Duong.

La suite puede usarse para probar algoritmos criptográficos como RSA, criptografía de curva elíptica, y cifrado autenticado, entre otros. El proyecto también tiene herramientas listas para su uso para verificar proveedores de Java Cryptography Architecture, como Bouncy Castle y los proveedores predeterminados en OpenJDK. Los ingenieros afirmaron que están convirtiendo las pruebas en conjuntos de vectores de prueba para simplificar el proceso de migración a otros lenguajes.

Las pruebas en esta versión son de bajo nivel y no deberían usarse directamente, pero se pueden aplicar para probar los algoritmos contra ataques conocidos públicamente, afirmaron los ingenieros. Por ejemplo, los desarrolladores pueden utilizar Wycheproof para verificar si los algoritmos son vulnerables a ataques de curva no válidos o momentos sesgados en esquemas de firma digital.

Hasta ahora el proyecto se ha utilizado para ejecutar más de 80 casos de prueba y ha identificado más de 40 vulnerabilidades, incluyendo un problema donde se pudo recuperar la clave privada de algoritmos DSA y ECDHC bajo circunstancias específicas. La debilidad en el algoritmo estaba presente porque las bibliotecas no estaban revisando los puntos de curva elíptica que recibieron de fuentes externas.

"El cifrado de las llaves públicas generalmente contiene la curva por el punto de clave pública. Si ese cifrado se utiliza en el intercambio de claves, es importante verificar que la clave pública y secreta utilizada para calcular el secreto ECDH compartido esté utilizando la misma curva. Algunas bibliotecas no hacen esta comprobación, según la documentación disponible.

Las bibliotecas criptográficas pueden ser muy difíciles de implementar, y los atacantes frecuentemente buscan implementaciones criptográficas débiles en lugar de intentar romper la matemática real subyacente al cifrado. Con Wycheproof, desarrolladores y usuarios pueden consultar sus bibliotecas contra un gran número de ataques conocidos sin tener que buscar en papers académicos para averiguar de qué tipo de ataques tienen que preocuparse.

Los ingenieros buscaron en la literatura criptográfica pública e implementaron ataques conocidos para construir la suite de pruebas. Sin embargo, los desarrolladores no deben considerar que la suite es completa o capaz de detectar todas las debilidades, porque siempre se descubren y revelan nuevas debilidades.

"El Proyecto Wycheproof no se encuentra de ninguna manera terminado. Pasar las pruebas no implica que la biblioteca es segura, sólo significa que no es vulnerable a los ataques que el Proyecto Wycheproof intenta detectar, escribieron los ingenieros.

Wycheproof llega dos semanas después de que Google lanzó un fuzzer para ayudar a los desarrolladores a descubrir errores de programación en software de código abierto. Al igual que con OSS-Fuzz, todo el código de Wycheproof se encuentra disponible en GitHub. OSS-Fuzz aún se encuentra en beta, pero ya ha trabajado en cuatro billones de casos de prueba y ha descubierto 150 bugs en proyectos de código abierto desde que se anunció públicamente.