¿Qué es TLS?
TLS (Transport Layer Security o Seguridad de la Capa de Transporte) es un protocolo criptográfico que proporciona comunicación segura sobre redes informáticas. TLS es el sucesor de SSL (Secure Sockets Layer) y es la tecnología detrás de las conexiones HTTPS, transmisión segura de correo electrónico (STARTTLS) y muchos otros protocolos de internet encriptados. Cuando ve el icono de candado en su navegador, TLS está funcionando para encriptar datos entre su dispositivo y el servidor.Historial de Versiones de TLS
| Versión | Año | Estado |
|---|---|---|
| SSL 2.0 | 1995 | Deprecado, inseguro |
| SSL 3.0 | 1996 | Deprecado, inseguro |
| TLS 1.0 | 1999 | Deprecado |
| TLS 1.1 | 2006 | Deprecado |
| TLS 1.2 | 2008 | Estándar actual |
| TLS 1.3 | 2018 | Último, recomendado |
Cómo Funciona TLS
Protocolo de Enlace TLS (TLS 1.2)
Cliente Servidor
│ │
├──── ClientHello ─────────────────► │
│ (cifrados soportados, aleatorio)│
│ │
│ ◄─── ServerHello ──────────────────┤
│ (cifrado seleccionado, cert) │
│ │
├──── Intercambio de Clave ───────► │
│ (secreto premaestro encriptado)│
│ │
│ ◄─── Finalizado ────────────────────┤
│ │
└──── Datos Encriptados ◄──────────►┘
Mejoras de TLS 1.3
- Menos viajes de ida y vuelta (protocolo de enlace más rápido)
- Cifrados inseguros eliminados
- Secreto hacia adelante obligatorio
- Mensajes de protocolo de enlace encriptados
Componentes de TLS
Certificados
- Autenticar identidad del servidor
- Emitido por Autoridades Certificadoras
- Contiene clave pública para encriptación
Suites de Cifrado
Definen algoritmos de encriptación utilizados:
TLS_AES_256_GCM_SHA384 (TLS 1.3)
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (TLS 1.2)
│ │ │ │
│ │ │ └── Algoritmo hash
│ │ └── Algoritmo de encriptación
│ └── Intercambio de clave
└── Protocolo
Casos de Uso de TLS
| Aplicación | Protocolo | Puerto |
|---|---|---|
| Navegación web | HTTPS | 443 |
| Correo (IMAP) | IMAPS | 993 |
| Correo (SMTP) | SMTPS | 465 |
| Presentación de correo | STARTTLS | 587 |
| FTP | FTPS | 990 |
Configuración del Servidor
Configuración TLS de Nginx
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
Mejores Prácticas
1. Usar TLS 1.2 o 1.3: Deshabilitar versiones antiguas
2. Suites de cifrado fuertes: Preferir cifrados AEAD
3. Habilitar HSTS: Forzar conexiones TLS
4. Gestión de certificados: Automatizar renovación
5. Secreto hacia adelante: Usar intercambio de clave ECDHE
6. Pruebas regulares: SSL Labs, testssl.sh
Prueba de Configuración TLS
# Prueba OpenSSL
openssl s_client -connect example.com:443 -tls1_3
# Verificar certificado
echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -text
TLS es la base de la comunicación segura en internet, encriptando datos en tránsito para proteger contra vigilancia, manipulación y ataques de intermediario.