🍋
Menu
Security

SSL/TLS

SSL/TLS(Secure Sockets Layer / Transport Layer Security)

クライアント(ブラウザ)とサーバー間のデータを暗号化し、サーバーの身元を認証し、送信中のデータの完全性を保証することで、インターネット上の通信を保護する暗号プロトコルです。

技術的詳細

SSLは非推奨で、TLS 1.2と1.3が現在の標準です。TLSハンドシェイクは安全な接続を確立します:クライアントが対応する暗号スイートを送信し、サーバーが証明書と選択した暗号で応答し、鍵素材を交換し(前方秘匿性のためにECDHE)、共通鍵セッション鍵を導出します。TLS 1.3はハンドシェイクを1往復(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('');
```

関連ツール

関連用語