TLS

Protocolos Y Transporte Security Notes Jan 6, 2025 BASH

Definicion

Cada vez que ves ese pequeño ícono de candado en tu navegador, TLS (Transport Layer Security) está trabajando tras bambalinas para proteger tus datos. Es el protocolo criptográfico que hace posible la comunicación segura en internet - encriptando todo desde tus contraseñas hasta los números de tu tarjeta de crédito para que incluso si alguien intercepta el tráfico, no pueda leerlo.

TLS hace tres cosas críticas. Primero, encripta la comunicación para que los espías solo vean basura. Segundo, verifica la identidad del servidor para que sepas que realmente estás hablando con tu banco y no con un impostor. Tercero, asegura la integridad de los datos para que sepas que el mensaje no fue alterado en tránsito. Esta combinación hace posible la navegación web segura, la banca en línea y el comercio electrónico.

La magia ocurre en el handshake TLS - una danza cuidadosamente coreografiada que ocurre antes de que se transmitan datos reales. Tu navegador y el servidor acuerdan algoritmos de encriptación, el servidor prueba su identidad con un certificado, y ambos lados generan claves de sesión. Todo esto ocurre en milisegundos, típicamente agregando solo 1-2 viajes de ida y vuelta al establecimiento de conexión. TLS 1.3, el estándar actual, optimizó aún más este proceso y eliminó opciones de encriptación más antiguas y débiles. Cuando la gente dice “HTTPS,” se refieren a HTTP protegido por TLS.

Ejemplo

Banca en línea: Cuando inicias sesión en el sitio web de tu banco, TLS encripta tu nombre de usuario y contraseña para que no puedan ser robados, verifica que estés conectado al banco real, y protege la información de tu cuenta mientras navegas.

Comercio electrónico: Cuando ingresas tu tarjeta de crédito en Amazon, TLS asegura que ese número de tarjeta esté encriptado todo el camino hasta los servidores de Amazon. Ni siquiera tu proveedor de internet puede verlo.

Encriptación de email: Cuando envías email a través de Gmail u Outlook, TLS encripta la conexión al servidor de email. Muchos proveedores de email también usan TLS entre sus servidores, protegiendo tus mensajes en tránsito.

Seguridad de APIs: Cada API moderna usa TLS. Cuando tu app del clima consulta el pronóstico, cuando tu app de redes sociales carga publicaciones, cuando tu hogar inteligente habla con su nube - TLS protege todo.

Analogia

La Valija Diplomática: Antes de enviar documentos sensibles, los diplomáticos los sellan en valijas especiales que son a prueba de manipulación y solo pueden ser abiertas por destinatarios autorizados. TLS crea un canal seguro similar para datos - sellado contra espionaje y manipulación.

La Sala Insonorizada: Imagina encontrarte con alguien en una sala insonorizada donde primero verifican las identidades del otro, luego hablan libremente sabiendo que nadie puede escuchar ni hacerse pasar por ninguna de las partes. TLS crea este canal de comunicación privada digitalmente.

La Verificación de Credencial de Seguridad: Al entrar a un edificio seguro, un guardia verifica tu credencial contra sus registros antes de dejarte entrar. Los certificados TLS funcionan de manera similar - tu navegador verifica el certificado del servidor contra autoridades confiables antes de establecer una conexión segura.

El Sobre Sellado: Cuando envías una carta en un sobre sellado, solo el destinatario previsto puede abrirlo, y puede saber si alguien intentó manipularlo. TLS envuelve cada pieza de datos en un sobre digital con las mismas propiedades.

Diagrama

sequenceDiagram
    participant C as Cliente
    participant S as Servidor

    rect rgb(200, 230, 200)
        Note over C,S: Handshake TLS 1.3 (1-RTT)
        C->>S: ClientHello
        Note right of C: Cifrados soportados
Key share (ECDHE)
Versiones soportadas S->>C: ServerHello + EncryptedExtensions Note left of S: Cifrado seleccionado
Key share
Certificado
CertificateVerify
Finished end rect rgb(240, 230, 200) Note over C,S: Verificacion de Certificado C->>C: Verificar certificado del servidor Note right of C: Verificar firma CA
Verificar fechas
Verificar dominio end rect rgb(200, 220, 240) Note over C,S: Handshake Completo C->>S: Finished Note right of C: Hash del handshake
encriptado con
clave de handshake end rect rgb(220, 240, 220) Note over C,S: Datos de Aplicacion Encriptados C->>S: Datos de Aplicacion (encriptados) S->>C: Datos de Aplicacion (encriptados) Note over C,S: Todos los datos encriptados
con claves de sesion derivadas
del intercambio ECDHE end

Code Example


# Probar conexión TLS y ver certificado
openssl s_client -connect api.example.com:443 -showcerts

# Ver versión TLS y cifrado
curl -vI https://api.example.com 2>&1 | grep -E "TLS|SSL"

# La salida muestra detalles TLS
* TLSv1.3 (OUT), TLS handshake
* TLSv1.3 (IN), TLS handshake
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384

# Node.js forzar TLS 1.3
const https = require('https');
const options = {
  minVersion: 'TLSv1.3',
  maxVersion: 'TLSv1.3'
};

Notas de Seguridad

SECURITY NOTES

CRÍTICO: Usa solo TLS 1.2 o TLS 1.3 - …

Configuración y Validación:

  • deshabilita SSL 3.0, TLS 1.0 y TLS 1.1.
  • Implementa certificate pinning para APIs de alta seguridad.
  • Usa suites de cifrado fuertes (cifrados AEAD como AES-GCM).
  • Habilita Perfect Forward Secrecy (PFS) con intercambio de claves ECDHE.
  • Implementa encabezados HSTS.

Monitoreo y Protección:

  • Rota certificados regularmente antes de expiración.
  • Monitorea logs de transparencia de certificados.
  • Valida cadenas de certificados adecuadamente.
  • Deshabilita compresión TLS para prevenir ataques CRIME.
  • Implementa OCSP stapling para mejor rendimiento y privacidad.
  • Nunca uses certificados autofirmados en producción.

Standards & RFCs