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.2TLS 1.3
ハンドシェイク2-RTT1-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 EncryptACM
コスト無料無料
更新90 日ごと (自動更新)自動更新
対象任意のサーバーAWS サービスのみ

基礎から学ぶなら関連書籍が手がかりになる。

この記事は役に立ちましたか?

関連用語

関連する記事