Diseño TLS / SSL y modelo OSI

1

TLS debe ser, al menos en un sentido amplio y teórico, un protocolo de capa de transporte. Pero TLS proporciona autenticación a través de certificados X.509 que se basan en un nombre de host, nombre de servidor o cualquier tipo de "nombre" que solo debe existir en el nivel de la aplicación (a menos que solo autentiquemos las direcciones IP). Entonces, en la práctica, los TLS se extienden en gran medida entre la capa de aplicación y la capa de transporte. Ahora me preguntaba, ¿existen razones técnicas y prácticas por las cuales TLS no fue diseñado para simplemente proporcionar métodos de intercambio de claves, y el establecimiento de un canal de estado cifrado que deja la verificación de certificados a la capa de aplicación, creando un protocolo de capa de transporte más suave con una interfaz más lineal? ?

    
pregunta Claudio P 14.07.2018 - 13:44
fuente

1 respuesta

3

Los protocolos de capa de transporte como UDP, TCP, SCTP ... se implementan tradicionalmente en el núcleo del sistema operativo. Si bien probablemente sería posible diseñar un protocolo que realice el cifrado en la capa de transporte (o capa de red como IPSec), la adopción del protocolo requeriría cambios en todos los sistemas operativos relevantes. Esto significa que la adopción del protocolo probablemente sería muy lenta.

En el momento en que se inventó SSL, Netscape no solo creó el navegador principal, sino también el software de servidor principal. Por lo tanto, fue mucho más fácil y rápido agregar el transporte protegido directamente al software de la aplicación (cliente y servidor) en lugar de intentar obtener un enfoque tal vez más limpio académicamente en los distintos sistemas operativos.

Además del modelo OSI y el modelo TCP / IP, solo son vistas abstractas de cómo funcionaba la red en el momento en que se crearon estos modelos. Mientras que en este momento la complejidad era mayoritariamente en las capas inferiores, la complejidad actual está en las capas superiores y el modelo OSI y TCP / IP ya no aborda la complejidad actual. Simplemente tome QUIC, HTTP / 2 o incluso WebSockets que implementan tareas de la capa de transporte dentro de la capa de aplicación.

    
respondido por el Steffen Ullrich 14.07.2018 - 14:19
fuente

Lea otras preguntas en las etiquetas