nonce en el protocolo SSL / TLS

5

En el protocolo de enlace SSL / TLS, el cliente siempre envía un nonce al servidor y viceversa. El nonce consiste básicamente en un número aleatorio y una marca de tiempo de Unix. ¿Por qué necesitamos la marca de tiempo de Unix?

Como el nonce siempre es un número aleatorio, ¿cómo protege esto del ataque de repetición de un hombre en el medio? Al ser algo aleatorio, el mismo punto puede repetirse en otro saludo con el mismo servidor.

¿Puede alguien decirme cualquier otro propósito de este asunto?

    
pregunta asit_dhal 04.06.2014 - 02:18
fuente

2 respuestas

5

El servidor nunca debe permitir un nonce duplicado. Esto es lo que protege de un ataque de repetición. Alguien puede capturar y tratar de reenviar su mensaje, pero se rechazará porque ese nonce se ha grabado y no se puede volver a utilizar.

Si tiene una marca de tiempo y niega las solicitudes de más de 5 minutos, entonces puede borrar la memoria caché de los archivos nonces usados cada 5 minutos. Puede borrar sus archivos de acceso porque incluso si volvieron a reproducir uno en este punto, verá que la marca de tiempo ha caducado y falla de todos modos. Esto significa que no tiene que mantener cada nonce usado hasta el final de los tiempos, lo que resulta en menos espacio de almacenamiento y tiempos de búsqueda más rápidos.

    
respondido por el Despertar 04.06.2014 - 02:20
fuente
1

En TLS 1.2 y anteriores, el campo Aleatorio de los mensajes de saludo del cliente y del servidor tiene una parte de bytes aleatoria y una marca de tiempo. El propósito de la marca de tiempo es aumentar la posibilidad de tener un valor único incluso si el generador de números aleatorios tiene fallas y produce bytes aleatorios duplicados.

Sin embargo, esta no es la práctica actual, las implementaciones modernas de TLS simplemente envían una secuencia completamente aleatoria debido a problemas de privacidad (pérdida de la hora local). Por este motivo, la parte de tiempo se eliminó en el borrador de TLS 1.3 .

Los números aleatorios de ambos lados se combinan con otro secreto compartido para formar una clave de sesión (consulte RFC 5246 TLS, Cálculo de la clave ). Así que incluso si un lado envía una secuencia aleatoria duplicada en el mensaje de saludo de saludo, no se obtendrá la misma clave de sesión.

    
respondido por el Lekensteyn 07.05.2016 - 22:46
fuente

Lea otras preguntas en las etiquetas