SSL/TLS
SSL/TLS (Secure Sockets Layer / Transport Layer Security)
Protocolos criptográficos que aseguran la comunicación por internet cifrando datos entre un cliente (navegador) y un servidor, autenticando la identidad del servidor y garantizando la integridad de los datos durante la transmisión.
Detalle técnico
SSL está obsoleto; TLS 1.2 y 1.3 son los estándares actuales. El handshake TLS establece una conexión segura: el cliente envía las suites de cifrado compatibles, el servidor responde con su certificado y cifrado elegido, intercambian material de clave (ECDHE para secreto perfecto hacia adelante) y derivan claves de sesión simétricas. TLS 1.3 reduce el handshake a un viaje de ida y vuelta (1-RTT, o 0-RTT para reanudación) y exige secreto perfecto hacia adelante y cifrados AEAD (AES-GCM, ChaCha20-Poly1305). Los certificados son emitidos por Autoridades de Certificación (CA) y validados usando la cadena PKI X.509. Let's Encrypt proporciona certificados gratuitos y automatizados.
Ejemplo
```javascript
// SSL/TLS — Web Crypto API example
const data = new TextEncoder().encode('sensitive data');
const hash = await crypto.subtle.digest('SHA-256', data);
const hex = Array.from(new Uint8Array(hash))
.map(b => b.toString(16).padStart(2, '0')).join('');
```