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('');
```