Saltar al contenido

HTTPS y TLS

De SSL a TLS y qué versiones siguen vivas, las tres propiedades que asegura, qué protocolos se apoyan en él, por qué el esquema es híbrido y cómo está organizado por dentro.

De SSL a TLS: qué versión está viva

SSL, Secure Sockets Layer, lo creó Netscape a mediados de los años noventa. Cuando su desarrollo pasó al IETF, el protocolo se renombró TLS, Transport Layer Security. No son dos protocolos rivales: TLS es la continuación de SSL con otro nombre, aunque en el lenguaje corriente y en los productos se sigan escribiendo juntos.

VersiónAñoEstado actual
SSL 2.01995Prohibido. Roto desde hace décadas
SSL 3.01996Prohibido. Es el que rompió el ataque POODLE
TLS 1.01999Desaconsejado y prohibido por el RFC 8996 (2021)
TLS 1.12006Desaconsejado y prohibido por el mismo RFC
TLS 1.22008Vigente. Es todavía el más extendido
TLS 1.32018Vigente y recomendado. Más rápido y con menos algoritmos

Solo hay dos versiones admisibles hoy: TLS 1.2 y TLS 1.3. Cualquier opción de examen que dé por buena SSL 3.0 o TLS 1.0 está mal.

Para el examen

  • Obsoletos: SSL entero y TLS 1.0 y 1.1

  • Seguros: TLS 1.2 y TLS 1.3

  • Decir «SSL»: es un uso coloquial

Qué garantiza TLS y qué no

La criptografía se aplica a un activo de información para asegurar tres propiedades, y TLS las cubre las tres a la vez sobre el canal de comunicación.

PropiedadQué aseguraCon qué se consigue en TLS
ConfidencialidadQue nadie más pueda leer lo que se transmiteCifrado simétrico del canal, con la clave acordada en el saludo
IntegridadQue nadie haya alterado los datos por el camino, aunque no diga si el contenido es buenoCódigos de autenticación de mensaje sobre cada registro
AutenticidadQue quien está al otro lado es quien dice serEl certificado del servidor, firmado por una autoridad de certificación

Conviene saber también qué queda fuera. TLS no aporta disponibilidad: un servidor con el mejor certificado del mundo se cae igual. Y protege el canal, no el contenido almacenado: lo que llega cifrado al servidor se guarda allí en claro salvo que alguien lo cifre aparte.

Para el examen

  • Qué da TLS: confidencialidad, integridad y autenticación del servidor

  • Lo que NO garantiza: que el sitio sea honrado: un sitio fraudulento también puede tener candado

HTTPS y los demás protocolos sobre TLS

TLS no es exclusivo de la web: es una capa genérica que se intercala entre el transporte y la aplicación, de modo que cualquier protocolo de aplicación puede apoyarse en él sin cambiar. HTTPS es sencillamente HTTP hablado dentro de un canal TLS, en el puerto 443 en vez del 80.

ProtocoloEn claroSobre TLS
WebHTTP, puerto 80HTTPS, puerto 443
DirectorioLDAP, puerto 389LDAPS, puerto 636
Correo de entradaIMAP 143 y POP3 110IMAPS 993 y POP3S 995
Correo de salidaSMTP, puerto 25SMTPS, puerto 465
Transferencia de ficherosFTP, puertos 20 y 21FTPS, puerto 990

Hay dos formas de llegar a ese canal cifrado. Una es el puerto dedicado, como el 443: la conexión nace cifrada. La otra es STARTTLS, en la que se conecta al puerto de siempre en claro y se pide elevar la conexión a cifrada con una orden del propio protocolo, cosa habitual en correo. Cómo se aplica esto a cada servicio de correo corresponde a su tema de este mismo bloque.

Para el examen

  • HTTPS: 443

  • SMTPS e IMAPS: 465 y 993

  • POP3S y LDAPS: 995 y 636

Por qué el esquema es híbrido

Las dos familias de cifrado tienen defectos complementarios. El simétrico usa una sola clave para cifrar y descifrar, es muy rápido y sirve para volúmenes grandes, pero exige que las dos partes compartan ya esa clave, y hacérsela llegar a un desconocido por una red pública es justamente el problema. El asimétrico usa un par de claves, de forma que lo que se cifra con una solo se deshace con la otra, y no necesita compartir ningún secreto previo, pero es lento y no sirve para cifrar un canal entero.

TLS combina las dos y por eso se le llama sistema híbrido, igual que PGP. Se usa el cifrado asimétrico una sola vez, al principio, para acordar una clave simétrica, que es pequeña y por tanto barata de proteger así. A partir de ese momento todo el tráfico va con esa clave simétrica, que es lo único que aguanta el volumen de una conexión real.

FamiliaPapel en TLSAlgoritmos
SimétricaCifrar el canal una vez acordada la claveAES, 3DES, RC5, IDEA
AsimétricaAcordar la clave de sesión y autenticar al servidorRSA, DSA, DH y ECDH, curva elíptica
Resumen y MACComprobar que nadie ha alterado los datosSHA-2, SHA-3, HMAC

Cómo funcionan por dentro el resumen, el cifrado asimétrico y la firma electrónica se estudia en el tema de administración electrónica del Bloque I, donde también está la diferencia entre MIC y HMAC y la tabla de codificaciones del certificado. Aquí basta con saber qué papel juega cada pieza dentro de la conexión. En la práctica nada de esto se programa a mano: se usan las bibliotecas del sistema, con OpenSSL como herramienta de referencia, o bibliotecas de terceros como BouncyCastle cuando la plataforma no trae lo necesario.

Asimétrico para acordar la clave, simétrico para cifrar el canal. Invertir esos dos papeles es el error más repetido del tema.

Para el examen

  • Qué hace la asimétrica: acordar la clave y autenticar

  • Qué hace la simétrica: cifrar los datos de la sesión

  • Por qué se reparten: la simétrica es mucho más rápida

Cómo está organizado TLS por dentro

TLS se coloca entre el transporte y la aplicación: por debajo tiene TCP e IP, y por encima el protocolo que quiera protegerse, HTTP en el caso de HTTPS. Internamente se divide en dos niveles.

El nivel de abajo es el protocolo de registro, o TLS Record Protocol. Es el que hace el trabajo material sobre cada bloque de datos: lo trocea, lo cifra y le añade el código de autenticación que garantiza la integridad. La compresión que también contemplaba se retiró por los ataques que aprovechaban precisamente comprimir antes de cifrar.

Por encima corren cuatro subprotocolos, y cada registro lleva un identificador que dice cuál de ellos transporta. Esos números caen literales.

CódigoSubprotocoloPara qué
20Change Cipher SpecAvisa de que a partir del siguiente mensaje se cifra con lo acordado
21AlertComunica errores y avisos, incluido el cierre ordenado de la sesión
22HandshakeEl saludo: negociación de parámetros y acuerdo de la clave
23Application DataLos datos de la aplicación ya cifrados, es decir, el HTTP de dentro

Para el examen

  • Protocolo de registro: el que transporta

  • Encima van: saludo, cambio de cifrado, alerta y datos de aplicación