¿Cuando SSL detecta un ataque de repetición?

3

Supongamos que un atacante registra todos los mensajes de un protocolo de enlace SSL (RSA de una sola vía) e inicia un ataque de repetición. ¿Cuándo (después de qué mensaje) puede el servidor detectar el ataque?

Ahora suponga que el atacante cambia de estrategia y envía las primeras tres fases (hasta el intercambio de claves de la sesión), pero envía esta secuencia muchas veces. ¿Por qué haría esto un atacante y cuál sería el impacto en el servidor?

    
pregunta AlphaSnake 05.06.2014 - 11:32
fuente

1 respuesta

2

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.

    
respondido por el Tom Leek 05.06.2014 - 12:55
fuente

Lea otras preguntas en las etiquetas