PROTOCOLO TLS
El protocolo TLS
(Transport Layer Security) es una evolución del
protocolo SSL (Secure Sockets Layer), es un protocolo mediante el cual se
establece una conexión segura por medio de un canal cifrado entre el cliente y servidor.
Normalmente el servidor es el único que es autenticado,
garantizando así su identidad,
pero el cliente se mantiene sin autenticar, ya que para la autenticación mútua
se necesita una infraestructura de claves públicas (o PKI) para los clientes.
Estos protocolos permiten
prevenir escuchas (eavesdropping), evitar la falsificación de la identidad del
remitente y mantener la integridad del mensaje en una aplicación
cliente-servidor.
DESCRIPCIÓN
DEL PROTOCOLO
El protocolo SSL/TSL se basa en tres fases básicas:
Negociación:
Los dos extremos de la comunicación (cliente
y servidor) negocian que algoritmos criptográficos
utilizarán para autenticarse y cifrar la información. Actualmente existen
diferentes opciones:
Para criptografía de
clave pública: RSA, Diffie-Hellman, DSA (Digital Signature Algorithm).
Para cifrado simétrico: RC2, RC4, IDEA (International Data
Encryption Algorithm), DES (Data Encryption Standard), Triple DES o AES
(Advanced Encryption Standard).
Con funciones hash: MD5 o
de la familia SHA.
Autenticación y Claves: Los extremos se autentican mediante
certificados digitales e intercambian las claves para el cifrado, según la negociación.
Transmisión Segura:
los extremos pueden iniciar el tráfico de información cifrada y autentica.
OBJETIVOS DEL
PROTOCOLO TLS
Los objetivos del
protocolo son varios:
Seguridad criptográfica. El protocolo se debe emplear para
establecer una conexión segura entre dos partes.
Interoperabilidad. Aplicaciones distintas deben poder intercambiar
parámetros criptográficos sin necesidad de que ninguna de las dos conozca
el código de
la otra.
Extensibilidad. El protocolo permite la incorporación
de nuevos algoritmos criptográficos.
Eficiencia. Los algoritmos criptográficos son costosos
computacionalmente, por lo que el protocolo incluye un esquema de cache de
sesionespara reducir el número de sesiones que deben inicializarse desde cero
(usando criptografía de clave pública).
FUNCIONAMIENTO
DEL PROTOCOLO TLS
El protocolo está dividido en dos niveles:
1. Protocolo de registro TLS (TLS
Record Protocol).
2. Protocolo de mutuo acuerdo TLS (TLS Handshake Protocol).
El de más bajo nivel es el Protocolo de Registro, que
se implementa sobre un protocolo de transporte fiable
como el TCP. El protocolo proporciona seguridad en
la conexión con dos propiedades fundamentales:
La conexión es privada. Para encriptar los datos se
usan algoritmos de cifrado simétrico. Las claves se generan para cada conexión
y se basan en un secreto negociado por otro protocolo (como el de mutuo
acuerdo). El protocolo también se puede usar sin encriptación.
La conexión es fiable. El transporte de mensajes incluye una
verificación de integridad.
El Protocolo de mutuo acuerdo, proporciona
seguridad en la conexión con tres propiedades básicas:
La identidad del interlocutor puede ser autentificada usando
criptografía de clave pública. Esta autentificación puede ser opcional, pero
generalmente es necesaria al menos para uno de los interlocutores.
La negociación de un secreto compartido es segura.
La negociación es fiable, nadie puede modificar la
negociación sin ser detectado por los interlocutores.
Esquema de operación
del protocolo de mutuo acuerdo (TLS Handshake Protocol)
Informacion Segura |
La comunicación
entre los nodos CLIENTE y SERVIDOR está
basada en el intercambio de mensajes. En cada mensaje existe un campo
(content_type) donde se especifica el protocolo de nivel superior utilizado. Estos
mensajes pueden ser comprimidos, cifrados y empaquetados con un código de
autentificación del mensaje (MAC).