Probando la vulnerabilidad de Poodle TLS con OpenSSL en C ++

2

Estoy escribiendo una herramienta de línea de comandos para pruebas de vulnerabilidad SSL / TLS y hasta ahora pude implementar pruebas para todas las vulnerabilidades que necesito, excepto Poodle TLS. ¿Hay alguna forma en que pueda utilizar la biblioteca OpenSSL para realizar una prueba rápida y confiable para Poodle TLS? ¡El consejo y / o el código son muy apreciados, gracias!

    
pregunta Alexander Voloshyn 16.11.2015 - 22:18
fuente

1 respuesta

1

La forma en que lo hice funcionar es copiando la implementación de SSL_write y modificando manualmente el relleno después del cifrado. SSL_write utiliza otras funciones no públicas (de un par de archivos) y algunas macros, que también deben copiarse. La implementación correcta del protocolo TLS debe verificar el tamaño del relleno y todos los bytes deben establecerse en el mismo valor (de manera predeterminada, son ceros en OpenSSL). Las implementaciones vulnerables de Poodle TLS no verifican el contenido ni el tamaño del relleno. Así que acabo de agregar un bloque adicional con basura al relleno existente en la función de cifrado. Si la implementación de TLS no es vulnerable, el servidor abortará la conexión o continuará si es vulnerable.

// increase padding size
i += bs;
// fill padding with junk to test TLS protocol compliance
for(size_t j = 0; j < i; ++j) {
    rec->input[rec->length + j] = rand() % 256;
}
rec->length += i;
rec->input[l - 1] = (i - 1);
    
respondido por el Alexander Voloshyn 21.11.2015 - 05:06
fuente

Lea otras preguntas en las etiquetas