午前I問題
TLS/SSLプロトコルに関する記述として、適切なものはどれか。
ア)TLSはトランスポート層で動作し、アプリケーション層のHTTPとは独立して暗号化を行う。
イ)TLSハンドシェイクでは、まずサーバがクライアントの公開鍵証明書を検証する。
ウ)TLS 1.3ではRC4暗号が標準の暗号スイートとして規定されている。
エ)TLS 1.3では0-RTTにより初回ハンドシェイクのラウンドトリップが不要になる。
午前I の解答・解説を見る
正解: ア)
解説: TLS(Transport Layer Security)はトランスポート層(TCP)の上位に位置するプロトコルで、アプリケーション層のHTTPデータを暗号化します。
- イ)誤り:ハンドシェイクではクライアントがサーバの証明書を検証します(逆)。クライアント認証はオプション。
- ウ)誤り:RC4はすでに廃止されており、TLS 1.3では禁止されています。
- エ)誤り:0-RTTは再接続時(セッション再開)の機能で、初回ハンドシェイクでも1-RTTは必要です。
午前II問題
HTTP Strict Transport Security(HSTS)の説明として、正しいものはどれか。
ア)Webサーバが「このドメインには常にHTTPSで接続せよ」とブラウザに指示するセキュリティ機構である。
イ)HTTPSの通信内容をキャッシュサーバが復号して検査する仕組みである。
ウ)ブラウザがHTTPリクエストをHTTPSに書き換える処理をDNSサーバに委託する機構である。
エ)TLS証明書の有効期限を自動延長するためのHTTPヘッダ仕様である。
午前II の解答・解説を見る
正解: ア)
解説: HSTSは、Webサーバが Strict-Transport-Security レスポンスヘッダを送信することで、ブラウザに「次回以降は必ずHTTPSで接続すること」を指示する機能です。有効期間(max-age)を設定でき、includeSubDomains でサブドメインにも適用できます。
- イ)誤り:これはSSLインスペクション(TLS終端プロキシ)の説明です。HSTSとは無関係です。
- ウ)誤り:HSTSはHTTPヘッダで動作し、DNSは関与しません。
- エ)誤り:証明書の延長はACME(Let’s Encrypt等)の機能です。HSTSに更新機能はありません。
午後問題
ある企業のWebサービスでは、ユーザがブラウザで http://example.com/ にアクセスすると、サーバが302リダイレクトで https://example.com/ に転送する実装になっている。セキュリティ担当者は「この実装にはSSLストリッピング攻撃のリスクがある」と指摘した。
設問1
SSLストリッピング攻撃とはどのような攻撃か、30字以内で答えなさい。
設問1の解答・解説を見る
正解例: 攻撃者がHTTPSをHTTPに格下げしてMITM盗聴する攻撃。
解説: SSLストリッピングは中間者攻撃(MITM)の一種で、ユーザとサーバの間に割り込んだ攻撃者が、サーバへの接続はHTTPSを維持しながら、ユーザへの接続をHTTPに格下げする攻撃です。ユーザは暗号化されていない通信をしているにもかかわらず気付きにくい点が特徴です。
採点ポイント(各5点):
- HTTPS→HTTPへの格下げという内容
- MITM(中間者)または盗聴・改ざんの目的
設問2
SSLストリッピング攻撃を防ぐための対策として、Webサーバの設定で追加すべきHTTPレスポンスヘッダを答え、その効果を50字以内で説明しなさい。
設問2の解答・解説を見る
正解例:
ヘッダ名:Strict-Transport-Security
設定例:Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
効果:ブラウザが以降のアクセスを自動的にHTTPSにアップグレードするため、HTTPでの初回接続が発生しなくなる。
解説: HSTSを設定することで、初回以降のアクセスはブラウザ側でHTTPSに変換されるため、攻撃者がHTTPの通信を傍受する機会がなくなります。preload を指定してHSTSプリロードリストに登録すると、初回アクセス時も保護されます。
採点ポイント(各5点):
- ヘッダ名が正しい
- ブラウザが自動でHTTPSにアップグレードするという効果の説明
重要キーワード
| 用語 | 説明 |
|---|---|
| HSTS | HTTP Strict Transport Security。HTTPSの強制接続を指示するHTTPヘッダ機能 |
| SSLストリッピング | MITM攻撃の一種。HTTPS→HTTPへの格下げによる盗聴 |
| max-age | HSTSの有効期間(秒)。31536000秒=1年が推奨値 |
| includeSubDomains | HSTSをサブドメインにも適用するオプション |
| preload | HSTSプリロードリストへの登録を示すオプション。初回アクセスから保護 |
| TLS 1.3 | 現行の最新TLSバージョン。1-RTTハンドシェイクと前方秘匿性が特徴 |
まとめ
- 午前I視点: TLSの動作順序(サーバ証明書→クライアントが検証)と各バージョンの特徴を押さえる
- 午前II視点: HSTSの目的(HTTPSの強制)とヘッダ名(
Strict-Transport-Security)を正確に覚える - 午後視点: HTTPリダイレクト実装の脆弱性(初回HTTP接続)とHSTSによる対策の仕組みを論述できるようにする