TLS: ¿por qué combinar mensajes de intercambio?

1

Estoy implementando un prototipo similar a TLS (para propósitos académicos), y tengo varios problemas en el apretón de manos.

Después de ClientHello , el servidor envía 3 marcos en una fila ( ServerHello , ServerKeyExchange y ServerHelloDone ), y el cliente no puede capturar cada uno de ellos.

También vi en la página de Wikipedia de TLS los mensajes de protocolo de enlace del servidor (estos 3 marcos) puede combinarse en un solo "registro".

La primera pregunta que me viene a la mente es: ¿Por qué combinarlos? ¿Para hacer marcos más grandes?

Digamos que en mi caso concatené automáticamente los 3 cuadros en 1, para facilitar la recepción de todos estos mensajes. En mi caso, eso llevaría a un marco de ~ 700 bytes.

Mi segunda pregunta es: ¿Podría esta "combinación" traer brechas de seguridad? ¿Podría alguien aprovecharse de tener toda la información en un marco? Estamos de acuerdo en que el sistema es seguro cuando los marcos están separados, la pregunta es solo sobre la concatenación de los marcos.

    
pregunta EisenHeim 09.10.2015 - 09:30
fuente

1 respuesta

3
  

La primera pregunta que me viene a la mente es: ¿Por qué combinarlos? ¿Para hacer marcos más grandes?

Si usa un solo marco que contiene 3 mensajes en lugar de 3 marcos, cada uno con un solo mensaje, la sobrecarga es menor.

  

Después de ClientHello, el servidor envía 3 marcos en una fila (ServerHello, ServerKeyExchangeand ServerHelloDone), y el cliente no puede capturar cada uno de ellos.

Dado que se trata de un flujo de TCP, los mensajes no se pueden perder. Parece más bien que su cliente está haciendo la recepción de los mensajes de una manera incorrecta. A menudo, esto significa que el cliente está implementado para esperar exactamente un solo mensaje con una sola lectura, pero esto puede ser incluso la mitad de los mensajes, etc. porque TCP es una secuencia y no un protocolo de mensajes.

  

Mi segunda pregunta es: ¿Podría esta "combinación" traer brechas de seguridad?

La información intercambiada es la misma. Solo importa la cantidad de cuadros que necesita para transferir la información si alguien no puede obtener todos los datos. Pero, de nuevo, esto generalmente se debe a un diseño defectuoso del cliente / atacante y no es un problema del protocolo.

    
respondido por el Steffen Ullrich 09.10.2015 - 10:07
fuente

Lea otras preguntas en las etiquetas