HTTPS / TLS
HTTP 通信を TLS で暗号化し、盗聴・改ざん・なりすましを防ぐプロトコル
HTTPS / TLS とは
HTTPS は HTTP を TLS (Transport Layer Security) で暗号化したプロトコルで、通信の盗聴・改ざん・なりすましを防ぐ。TLS は SSL の後継で、現在は TLS 1.3 が最新。全ての Web サイトで HTTPS が標準であり、HTTP のみのサイトはブラウザが警告を表示する。
TLS が提供する 3 つの保護
TLS が提供する 3 つの保護を以下にまとめる。
| 保護 | 説明 | 防ぐ攻撃 |
|---|---|---|
| 暗号化 | 通信内容を第三者が読めない | 盗聴 |
| 完全性 | 通信内容が改ざんされていない | 中間者攻撃 |
| 認証 | サーバーが本物であることを証明 | なりすまし |
TLS ハンドシェイク (TLS 1.3)
TLS ハンドシェイク (TLS 1.3) を図で示す。
クライアント → ClientHello (対応する暗号スイート) → サーバー
クライアント ← ServerHello + 証明書 + 鍵交換 ← サーバー
クライアント → 鍵交換完了 → サーバー
→ 暗号化通信開始 (1-RTT)
TLS 1.3 は TLS 1.2 より 1 RTT 少なく、再接続時は 0-RTT で通信を開始できる。
ACM は無料で TLS 証明書を発行・自動更新する。CloudFront、ALB、API Gateway に設定できる。
TLS 1.2 vs TLS 1.3
TLS 1.2 と TLS 1.3 の違いを以下にまとめる。
| 観点 | TLS 1.2 | TLS 1.3 |
|---|---|---|
| ハンドシェイク | 2-RTT | 1-RTT (再接続 0-RTT) |
| 暗号スイート | 多数 (脆弱なものも) | 安全なもののみ |
| 前方秘匿性 | オプション | 必須 |
HSTS
HSTS を図で示す。
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
ブラウザに「このサイトには常に HTTPS でアクセスせよ」と指示する。HTTP → HTTPS のリダイレクト前の攻撃を防ぐ。
Let's Encrypt vs ACM
Let's Encrypt と ACM の違いを以下にまとめる。
| 観点 | Let's Encrypt | ACM |
|---|---|---|
| コスト | 無料 | 無料 |
| 更新 | 90 日ごと (自動更新) | 自動更新 |
| 対象 | 任意のサーバー | AWS サービスのみ |
基礎から学ぶなら関連書籍が手がかりになる。
この記事は役に立ちましたか?
関連用語
TLS 終端
ロードバランサーや CDN で TLS を復号し、バックエンドとの通信負荷を軽減する構成パターン
証明書ピンニング
特定の証明書や公開鍵のみを信頼し、中間者攻撃を防ぐセキュリティ手法
セキュリティヘッダー
HTTP レスポンスヘッダーでブラウザのセキュリティ機能を制御し、XSS やクリックジャッキングを防ぐ仕組み
TCP 3-way ハンドシェイク
TCP 接続を確立するための 3 段階の手順で、SYN → SYN-ACK → ACK の順で行われる
TLS 証明書
HTTPS 通信を実現するための電子証明書で、サーバーの身元を証明し通信を暗号化する
mTLS
クライアントとサーバーが互いに証明書を検証し、双方向で認証する TLS の拡張
関連する記事
技術書を Kindle で読むコツ - 電子書籍ならではの活用術
技術書を Kindle で効率的に読むための具体的なテクニックを紹介します。ハイライト、検索、フォントサイズの調整など、紙にはない電子書籍の強みを活かす方法。
技術書のタイトルに隠された法則 - 「入門」「実践」「詳解」の意味を読み解く
技術書のタイトルに使われる「入門」「実践」「詳解」などのキーワードには暗黙のルールがあります。タイトルだけで本のレベルと内容を見抜くコツを紹介します。
技術書の読む順番戦略 - 複数冊を組み合わせて理解を加速させる
技術書を 1 冊ずつ読むのではなく、複数冊を戦略的に組み合わせることで理解の深さと速度を飛躍的に高める方法を解説します。