Si un atacante repite los viejos mensajes de intercambio de manos, los trucos se harán evidentes con el mensaje Finished
del atacante, ya que el mensaje previamente grabado fue cifrado y con MAC con claves distintas, y su contenido no coincidirá con ninguno:
-
La derivación del secreto maestro (resultante del mecanismo de intercambio de claves, por ejemplo, RSA) en el cifrado simétrico y las claves MAC implica el client_random
y server_random
de los dos mensajes de "saludo"; el atacante reprodujo uno de estos valores (por ejemplo, client_random
si el atacante está reproduciendo los mensajes cliente ) pero el otro es del interlocutor, y es distinto de lo que se registró.
-
El contenido de los mensajes Finished
es un hash computado sobre todos los mensajes anteriores de handshake, incluidos los dos mensajes "hola", y así, de nuevo, uno de los "randoms" ha cambiado y el hash ganó. no coinciden.
Nota: si el servidor requiere autenticación de cliente basada en certificados y el atacante está reproduciendo la parte del cliente del intercambio, la reproducción se detectará antes, en el mensaje CertificateVerify
: el mensaje grabado de reconocimiento es una firma (por el cliente genuino) que se calcula sobre un hash de todos los mensajes anteriores de reconocimiento, incluyendo, nuevamente, los dos "randoms". Sin embargo, el servidor SSL que solicita certificados de cliente es relativamente raro.
Un atacante que comienza pero nunca termina un apretón de manos está haciendo un Ataque de Denegación de Servicio : él hace que el servidor asigne recursos y gaste ciclos de CPU para nada. Normalmente, el atacante enviaría un ClientHello
reclamando el soporte de solo las suites de cifrado "DHE"; luego, el servidor debe responder con una secuencia de mensajes, incluido un mensaje ServerKeyExchange
que necesariamente implica una firma recientemente calculada. El costo de la CPU para el atacante es mínimo (solo el esfuerzo de abrir una conexión TCP y enviar unos pocos bytes), mientras que el servidor debe hacer algo de criptografía.
Dado que ese tipo de DoS requiere hacer una conexión TCP real, se revela la dirección IP del atacante; Además, las firmas no son tan caras: una PC puede hacer miles de firmas por segundo. Por lo tanto, los DoS basados en SSL generalmente se realizan mediante botnets.