Tiempo de vida de las claves de sesión DTLS

3

Tengo una aplicación cliente UDP de larga duración: lo ideal es que se siga transmitiendo a un servidor para siempre. Estoy usando Seguridad de la capa de transporte de datagramas (DTLS) para asegurar la comunicación UDP.

  1. ¿Con qué frecuencia DTLS actualiza las claves de sesión establecidas durante el protocolo de enlace que se utilizan para asegurar la comunicación de la capa de grabación?
  2. ¿Es necesario volver a apretar las manos para actualizar las teclas? ¿Se puede hacer esto usando otro método?
pregunta cdev 30.04.2014 - 13:43
fuente

1 respuesta

3

No hay ninguna noción de "actualización de clave", ya sea en DTLS o incluso TLS , que sería independiente del protocolo de enlace. Si desea actualizar sus claves por algún motivo, debe hacerlo solicitando un nuevo saludo. Tanto el cliente como el servidor pueden desencadenar un nuevo protocolo de enlace en cualquier momento (el cliente lo hace enviando un ClientHello , mientras que el servidor envía un HelloRequest ).

Hay dos tipos de claves en TLS (y DTLS):

  • El master secret se establece mediante criptografía asimétrica (RSA, Diffie-Hellman) como parte de un "apretón de manos completo".
  • El cifrado real y las claves MAC se producen a partir del secreto maestro y los "valores aleatorios" enviados por el cliente y el servidor. Cuando un cliente y un servidor hacen un "apretón de manos abreviado", se reutiliza un "secreto maestro" previamente compartido, pero se producen nuevas claves de cifrado / MAC.

No hay ninguna razón intrínseca en TLS o DTLS que fuerce un nuevo saludo, excepto que posiblemente se quede sin números de secuencia distintos; pero dado que ese número es un contador de 64 bits, el agotamiento no ocurre en la práctica (por muy largo que sea). Cualquier aplicación específica puede desear hacer una "actualización" en cualquier momento, y puede hacerlo activando un nuevo saludo (abreviado o completo: un apretón de manos abreviado solo ocurre si tanto el cliente como el servidor lo aceptan).

Debe tenerse en cuenta que hay muy pocas razones racionales para "actualizar" las claves. Las personas que realizan la actualización en realidad lo hacen por el cumplimiento formal de los requisitos reglamentarios cuya base se ha perdido en las nieblas de Time (por lo general, remanentes de procedimientos que fueron necesarios para la seguridad con sistemas criptográficos anteriores a la invención de la computadora). El mito tácito en el trabajo en esos casos es una suposición de que las claves de alguna manera se degradan con el uso, como los cojinetes de una rueda, y deben reemplazarse regularmente. Este mito es, bueno, un mito, pero uno fuerte, que aún promueve muchos estándares y documentos de "mejores prácticas".

(La única razón racional que he visto para una "actualización" no se trataba de una actualización en absoluto; era un servidor TLS utilizado en un contexto donde el cliente también tiene un certificado, cuya clave privada estaba en una tarjeta inteligente. el servidor forzó regularmente un nuevo saludo de completo para asegurarse de que la tarjeta inteligente aún estuviera allí.)

    
respondido por el Tom Leek 30.04.2014 - 15:59
fuente

Lea otras preguntas en las etiquetas