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.