El protocolo Transport Layer Security (TLS) se utiliza para establecer una conexión segura entre un cliente y un servidor y garantizar la privacidad e integridad de la información durante la transmisión. Utiliza una clave simétrica para el cifrado masivo, una clave asimétrica para la autenticación y el intercambio de claves, y códigos de autenticación de mensajes para la integridad de los mensajes. Utiliza el algoritmo RSA con potencias de 1024 y 2048 bits. Con TLS, se pueden reducir los riesgos de seguridad, como la manipulación de mensajes, la falsificación de mensajes y la interceptación de mensajes. Una ventaja de TLS es que es independiente del protocolo de aplicación. Los protocolos de nivel superior pueden estar encima de TLS de forma transparente.
TLS consta de dos capas: TLS Record Protocol y TLS Handshake Protocol.
1. Protocolo de registro TLS
El protocolo de registro TLS es un protocolo en capas. Proporciona conexiones seguras con un método de cifrado como DES. Protege los datos de la aplicación utilizando las claves generadas durante el protocolo de enlace y verifica su integridad y origen. El protocolo de registro TLS proporciona seguridad de conexión con dos propiedades básicas:
La conexión es privada: utiliza criptografía simétrica para el cifrado de datos (p. ej., DES). El protocolo genera claves únicas para el cifrado simétrico de cada conexión, en función de un secreto negociado por otro protocolo (como el protocolo TLS Handshake). Se puede usar el Protocolo de registro TLS sin encriptación.
La conexión es confiable: proporciona una verificación de la integridad del mensaje en el momento del transporte del mensaje mediante un MAC con clave. Las funciones hash seguras (por ejemplo, SHA, MOS) ayudan a realizar cálculos MAC.
El protocolo de registro TLS hace lo siguiente:
o Fragmenta los datos salientes en bloques manejables y vuelve a ensamblar los datos entrantes
o Opcionalmente comprime los datos salientes y descomprime los datos entrantes
o Aplica MAC a los datos salientes y usa MAC para verificar los datos entrantes
o Cifra los datos salientes y descifra los datos entrantes
El protocolo de registro TLS envía los datos cifrados salientes a la capa TCP para su transporte.
2. Protocolo de protocolo de enlace TLS
El protocolo TLS Handshake permite que el cliente y el servidor se autentiquen entre sí y seleccionen un algoritmo de cifrado y claves criptográficas antes del intercambio de datos por parte del protocolo de la aplicación.
Proporciona seguridad de conexión con tres propiedades básicas:
o La identidad del par se puede autenticar mediante criptografía asimétrica. Esto se puede hacer opcional, pero en su mayoría se requiere para al menos uno de los pares.
o La negociación de un clave compartida es segura.
o La negociación es confiable.
El TLS Handshake Protocol opera sobre el TLS Record Protocol y es responsable de producir parámetros criptográficos del estado de la sesión. Al comienzo de la comunicación, el cliente y el servidor TLS acuerdan una versión de protocolo, seleccionan algoritmos criptográficos, opcionalmente se autentican entre sí y usan técnicas de criptografía asimétrica para crear secretos compartidos.
Los pasos involucrados en el protocolo TLS Handshake son los siguientes:
• Inicialmente, el cliente envía un mensaje de "Hola al cliente" acompañado del valor aleatorio del cliente y conjuntos de cifrado admitidos al servidor.
• El servidor responde al cliente enviando un mensaje de "Servidor hola" acompañado del valor aleatorio del servidor.
• El servidor envía su certificado al cliente para su autenticación y puede solicitar el certificado del cliente. El servidor envía el mensaje "Servidor hello done".
• El cliente envía su certificado al servidor, si así lo solicita.
• El cliente genera un secreto premaestro aleatorio y lo encripta con la clave pública del servidor; luego, envía el secreto pre-maestro encriptado al servidor.
• El servidor recibe el secreto premaestro. A partir de entonces, el cliente y el servidor crean cada uno el secreto maestro y las claves de sesión en función del secreto maestro previo.
• El cliente envía "Change cipher spec" al servidor para indicar que comenzará a usar las nuevas claves de sesión para codificar y codificar mensajes. El cliente también envía "Cliente terminado".
• El servidor recibe "Changecipher spec" del cliente y cambia su estado de seguridad de capa de registro a cifrado simétrico utilizando las claves de sesión. Luego, el servidor envía "Serverfinished" al cliente.
• Ahora, el cliente y el servidor pueden intercambiar datos de aplicaciones a través del canal seguro que han establecido, y todos los mensajes intercambiados entre el cliente y el servidor se cifran mediante una clave de sesión.
0 Comentarios