SSL/TLS
SSL/TLS (Secure Sockets Layer / Transport Layer Security)
Криптографические протоколы, обеспечивающие безопасную связь в интернете путём шифрования данных между клиентом (браузером) и сервером, аутентификации сервера и гарантии целостности данных при передаче.
Техническая деталь
SSL устарел; TLS 1.2 и 1.3 — актуальные стандарты. Рукопожатие TLS устанавливает защищённое соединение: клиент отправляет поддерживаемые наборы шифров, сервер отвечает сертификатом и выбранным шифром, стороны обмениваются ключевым материалом (ECDHE для прямой секретности) и выводят симметричные сессионные ключи. TLS 1.3 сокращает рукопожатие до одного обмена (1-RTT, или 0-RTT для возобновления) и обязывает использовать прямую секретность и AEAD-шифры (AES-GCM, ChaCha20-Poly1305). Сертификаты выдаются центрами сертификации (CA) и проверяются по цепочке X.509 PKI. Let's Encrypt предоставляет бесплатные автоматизированные сертификаты.
Пример
```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('');
```