5.4 El protocolo de mutuo acuerdo TLS
El protocolo consta de tres subprotocolos que se emplean para
permitir que los interlocutores lleguen a un acuerdo respecto a
los parámetros de seguridad para el nivel de registro, se
autentifiquen, instancien parámetros de seguridad negociados y
se comuniquen condiciones de error.
El protocolo es responsable de negociar una sesión que consta
de los siguientes items:
- Identificador de sesión. Secuencia de bytes
aleatoria elegida por el servidor para identificar el estado
de una sesión activa o reanudable.
- Certificado del interlocutor. Certificado X.509
v3 del interlocutor. Este elemento puede ser nulo.
- Método de compresión. Algoritmo empleado para
comprimir los datos antes de encriptarlos.
- Especificaciones del algoritmo de
encriptación. Especifica el algoritmo de encriptación
(nulo, DES, etc.) y el algoritmo de firmado (MD5 o
SHA). También define atributos criptográficos como el tamaño
de la clave de la función de dispersión.
- Secreto principal. Clave secreta de 48 bytes
compartida entre el cliente y el servidor.
- Reutilizable. Valor que indica si la sesión
puede ser empleada para iniciar nuevas conexiones.
Protocolo de cambio de especificaciones criptográficas
Este protocolo marca las transiciones entre distintas
estrategias de cifrado. Consta de un mensaje que se encripta y
comprime con las especificaciones actuales de la conexión (no
las pendientes).
Cuando el destinatario recibe este mensaje la capa de
registro copia el estado de lectura pendiente al estado de
lectura actual. De forma similar, el emisor cambia su estado
de escritura al enviar este mensaje.
Este mensaje se envía durante el acuerdo, después de haber
acordado los parámetros de seguridad pero antes de que se
envíe el mensaje de verificación finalizada.
Protocolo de alerta
Uno de los tipos de mensaje que soporta la capa de registro
es el de alerta. Estos mensajes incluyen la severidad de la
alerta y una descripción de la misma. Los mensajes de alerta
con nivel de fatal
provocan la inmediata terminación
de la comunicación.
Existen distintos tipos de alertas:
- Alerta de cierre. El cliente y el servidor
deben saber que la conexión se está cerrando para evitar
un ataque de truncado. Cualquiera de los dos puede iniciar
el intercambio de mensajes de cierre. Cualquier
información recibida después de la alerta de cierre es
ignorada.
- Alerta de error. La gestión de errores el el
protocolo de mutuo acuerdo es muy simple, cuando uno de
los interlocutores detecta un error lo envía al otro y, si
se trata de un error fatal, cierran la conexión.
Protocolo de mutuo acuerdo
Los parámetros del estado de la sesión son producidos por
este protocolo, que opera sobre el protocolo de registro
TLS. Cuando un cliente y un servidor empiezan a comunicarse,
acuerdan la versión del protocolo, selección de algoritmos
criptográficos, opcionalmente se autentifican mutuamente y
emplean algoritmos de clave pública para generar secretos
compartidos.
El protocolo de mutuo acuerdo consta de los siguientes pasos:
- Intercambio de mensajes de saludo (hello
messages) para acordar los algoritmos a emplear,
intercambiar valores aleatorios y verificar si es una
sesión reanudada.
- Intercambiar los parámetros criptográficos necesarios
para permitir que el cliente y el servidor acuerden un
pre-secreto.
- Intercambio de certificados e información
criptográfica para permitir que cliente y servidor se
autentifiquen.
- Generar un secreto principal a partir del pre-secreto
e intercambiar valores aleatorios.
- Proporcionar los parámetros de seguridad a la capa de
registro.
- Permitir al cliente y al servidor verificar que su
interlocutor a calculado los mismos parámetros de
seguridad y que el acuerdo se produjo sin alteraciones por
parte de un tercero.
Protocolo de datos de aplicación
Los mensajes de datos de la aplicación son transportados por
la capa de registro y son fragmentados, comprimidos y
encriptados basándose en el estado actual de la conexión. Los
mensajes se tratan como datos transparentes para la capa de
registro.