Denegación de servicio en servicios SSL

8

Cuando se produce el protocolo de enlace SSL, ¿hay un punto en el que el trabajo computacional realizado por el cliente es significativamente menor que el trabajo computacional realizado por el servidor?

¿Podría explotarse tal desequilibrio para producir un DoS con mayor eficacia? ¿Existen documentos académicos o implementaciones de prueba de concepto de esto?

    
pregunta Polynomial 02.08.2012 - 12:31
fuente

3 respuestas

6

Sí, un DoS basado en CPU en servidores SSL es fácil. Considere los dos tipos principales de suites de cifrado, como se usa comúnmente en SSL:

  • Intercambio de claves RSA : el servidor envía su certificado con una clave pública RSA; el cliente genera un blob aleatorio (la clave secreta pre-maestra) cifrada con la clave pública del servidor; el servidor lo descifra.

  • Intercambio de claves DHE : el servidor envía la mitad de un intercambio de claves Diffie-Hellman, firmado con la clave privada del servidor. El cliente envía su propia mitad de DH. El servidor completa el intercambio de claves DH mediante la aplicación de su clave privada DH (una exponenciación modular).

De cualquier manera, el servidor debe realizar una operación criptográfica relativamente pesada: un descifrado RSA o una exponenciación modular DH (para DHE, el servidor puede reutilizar sus parámetros efímeros de DH, siempre que no se reinicie, pero no se pueda evadir la exponenciación modular final calculada sobre lo que envía el cliente). Por otro lado, un cliente que intenta hacer DoS al servidor no necesita realizar ningún trabajo: solo necesita enviar un blob de aproximadamente el tamaño correcto. El descifrado en el servidor fallará, pero el gasto de la CPU se perderá de todas formas.

(Ya con los clientes honestos y el intercambio de claves RSA, el costo de la CPU es mayor en el servidor, porque el cifrado RSA es mucho más rápido que el descifrado RSA . Pero un cliente malvado, con la intención de hacer DoSing, puede evitar totalmente el trabajo.)

Tales ataques se han observado en la naturaleza y no se llevan a cabo Un artículo académico para explicar cómo funcionan.

    
respondido por el Thomas Pornin 13.01.2013 - 21:04
fuente
1

Sí, hay tales puntos. Especialmente si SSL-Renegotiation está activo, esos pueden ser explotados para derribar un servidor de manera bastante efectiva:

Estegráfico,tomadode Mitigación de DoS computacional de SSL muestra el cálculo tiempo necesario para el intercambio entre cliente y servidor, utilizando algoritmos comunes. Como puede ver, algunos algoritmos son significativamente mejores que otros.

  

Por ejemplo, con los certificados RSA de 2048 bits y un conjunto de cifrado como AES256-SHA, el servidor necesita 6 veces más potencia de CPU que el cliente. Sin embargo, si usamos DHE-RSA-AES256-SHA, el servidor necesita un 34% menos de potencia de CPU. El conjunto de cifrado más eficiente desde el punto de vista del servidor parece ser algo como DHE-DSS-AES256-SHA, donde el servidor necesita la mitad de la potencia del cliente.

Para obtener información detallada acerca de esto, consulte mitigación de DoS computacional de SSL y la Notas de la versión original de la herramienta THC que se está utilizando para demostrar esta dDoS: DOS SSL THC

espero haberte ayudado,

gewure

    
respondido por el Gewure 19.12.2016 - 16:10
fuente
0

La respuesta sería no, ya que eres el primero en hacer el mayor trabajo. Pero todavía puedes atacarlo.

Se distribuye la clave de tu pregunta. Incluso si el atacante tiene la misma cantidad (o casi la misma), hay numerosos clientes para iniciar un apretón de manos. Lo que significa que no necesita esforzarse al hacer un apretón de manos, simplemente divida la carga de trabajo entre diferentes clientes y ningún cliente puede sentir un cambio realmente significativo en el rendimiento, mientras que el servidor podría estar en su límite.

Creo que el truco es iniciar varias sesiones SSL, pero nunca hagas nada más que decir HOLA, el servidor responderá y esperará. Esto significa que puede hacerlo con sus recursos y la cantidad máxima de sesiones al mismo tiempo. (un poco como un ataque TCP SYN)

    
respondido por el Lucas Kauffman 02.08.2012 - 13:59
fuente

Lea otras preguntas en las etiquetas