5.2 El protocolo TLS
El protocolo TLS (Transport Layer Security) es una
evolución del protocolo SSL (Secure Sockets Layer). La
última propuesta de estándar está documentada en la referencia
[RFC_2246]
.
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 sesiones para reducir el
número de sesiones que deben inicializarse desde cero
(usando criptografía de clave pública).
El protocolo está dividido en dos niveles:
- Protocolo de registro TLS (TLS Record
Protocol).
- 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 registrose emplea para encapsular
varios protocolos de más alto nivel, uno de ellos, el
protocolo de mutuo acuerdo, permite al servidor y al
cliente autentificarse mutuamente y negociar un algoritmo de
encriptación y sus claves antes de que el protocolo de
aplicación transmita o reciba datos.
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.