En la aplicación de mi servidor que usa OpenSSL, para evitar el ataque de poodle, agregué una opción para permitir / prevenir completamente el protocolo SSL3.
SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2); //Prevent SSLv2
SSL_CTX_set_options(ctx,SSL_OP_NO_SSLv3); // Prevent SSL3
La autorización de SSL3 se realizó para interactuar con aquellos clientes que no son compatibles con TLS.
Hay una manera de ser inmune al ataque de POODLE con SSLv3. No permitir suites de cifrado en modo CBC en SSLv3.
Ahora, si deshabilito los cifrados en modo CBC de mi aplicación, también afecta a TLS (tiene una interfaz de servidor para uno). ¿Hay alguna manera de no permitir el cifrado en modo CBC solo en conexiones SSL3 pero usarlas para conexiones TLS?
Editar:
A continuación se muestra brevemente cómo se cargan las suites de cifrado en el objeto CTX de OpenSSL:
Cipher-Suite-Table Configuration:
--------------------------------
rsa-rc4-md5
rsa-des-cbc3-sha
rsa-aes256-cbc-sha
get_cipher_suites(ssl_cipher_suites);
get_cipher_suites(char *ssl_cipher_suites)
{
for(i=0; i < MAX_CIPHERS;i++) // traverse the list of cipher suites configured
{
strncat(ssl_cipher_suites,configured_suite[i]);
strncat(ssl_cipher_suites,":",1);
}
}
SSL_CTX_set_cipher_list(ctx,ssl_cipher_suites);