Cifrado SSL (para HTTP) y Seguridad vs Rendimiento

6

Estaba analizando el rendimiento del servidor cuando utilizaba varios certificados SSL. Específicamente, 1024 bits frente a 2048 frente a 4096. ¡Resulta que hay una gran diferencia!

Últimamente he escuchado muchas conversaciones sobre proveedores que emiten 2048 certificados por defecto y me preguntaba cuál es el consenso en la comunidad.

Mi línea de pensamiento es que para algo como enviar datos de formulario de contacto 1024 podría estar bien, pero para transacciones de e-comm y / o inicios de sesión 2048 sería más apropiado. ¿Hay un buen caso de uso para 4096?

¿Cuáles son las implicaciones de usar 1024 bits para obtener información confidencial? ¿Existe mucho más riesgo de un ataque?

Solo para aclarar: encontré este problema al realizar pruebas de rendimiento en un equilibrador de carga de AWS y sí, el tamaño de la clave hizo una gran diferencia, y sí, he tratado con clientes que esperan mucho tráfico en ráfagas, así que es un problema. Preocupación legítima no solo una hipotética.

    
pregunta Drew Khoury 01.04.2013 - 14:51
fuente

1 respuesta

11

El cambio de 1024 bits a 2048 bits significa que las operaciones con la clave privada asimétrica requerirán aproximadamente 8 veces más CPU. Un núcleo de "PC normal" puede realizar aproximadamente 1000 operaciones de 1024 bits RSA por segundo, hasta aproximadamente 125 por segundo para RSA de 2048 bits. Tenga en cuenta que RSA se usa solo al inicio de la conexión SSL, no después; además, en SSL, hay un protocolo de enlace abreviado por el cual el cliente y el servidor reutilizan el intercambio criptográfico de un protocolo de enlace anterior. Los navegadores web y los servidores web hacen eso mucho, por lo que el costo de RSA en SSL es realmente para nuevos clientes (es decir, clientes que no se han conectado desde la última vez que cerraron y volvieron a abrir su navegador). Por lo tanto, se necesitan unos cien clientes nuevos por segundo para ver realmente los problemas de rendimiento relacionados con el tamaño de la clave en el servidor. No todos los servidores web pueden presumir de ese contexto.

Recomiendo que haga medidas en un contexto real y real. Las marcas de microbios ("¿cuántos descifrados por segundo?") No siempre son buenos predictores.

En cuanto a la seguridad, el RSA de 1024 bits todavía no está roto. El registro de rotura actual es RSA-768 . Algunas personas inteligentes han tratado de equiparar la longitud de la clave RSA con la robustez de la clave simétrica; Consulte este sitio para obtener más información. La comparación no es perfecta porque romper claves RSA grandes implica algunas operaciones que utilizan una gran cantidad de RAM muy rápida, a diferencia de la búsqueda exhaustiva en una clave simétrica (una tarea vergonzosamente paralela que no tiene necesidad de RAM). Sin embargo, el RSA de 1024 bits es equivalente a una clave simétrica de 77 a 80 bits. Eso no es suficiente para lo paranoico, pero aún más allá de lo que se ha demostrado que es rompible con la tecnología implementada actualmente.

NIST recomienda usar claves RSA de 2048 bits en este momento (desde 2010). Si usa una clave RSA de 1024 bits, su sitio no se romperá de esa manera (cuando se piratee, será a través de otro canal que no sea el criptoanálisis por adelantado); sin embargo, sus clientes pueden concebir la idea de que al usar una clave pequeña y anticuada, realmente no les preocupa por ellos. Se trata más de relaciones públicas que de seguridad ...

Si realmente tiene problemas de rendimiento real con las claves RSA de 2048 bits (no lo creo, pero suceden cosas extrañas), lo aliento a investigar las curvas elípticas. Un conjunto de cifrado ECDHE_ECDSA con la curva NIST P-256 será más rápido que RSA-1024, y tan fuerte como (posiblemente más fuerte que) RSA-2048.

    
respondido por el Thomas Pornin 01.04.2013 - 15:13
fuente

Lea otras preguntas en las etiquetas