LinuCレベル3 303試験の例題と解説
325.2 暗号化、署名および認証のX.509 証明書
■トピックの概要
このトピックの内容は以下の通りです。
<325.2 暗号化、署名および認証のX.509 証明書>
重要度 4
<説明>
サーバー認証とクライアント認証両方のX.509証明書の使用方法を理解していることが求められる。また、Apache HTTPD のユーザー認証とサーバー認証の実装ができること。Apache HTTPD のバージョンは2.4以降とする。
<主要な知識範囲>
・SSL、TLSおよびプロトコルのバージョンの理解。
・一般的なトランスポート層のセキュリティの脅威、例えば Man-in-the-Middleの脅威の知識。
・SNIやHSTSを含む、HTTPSサービスにmod_sslを使用したApache のHTTPDの設定。
・証明書を使用した認証ユーザにmod_sslを使用したApache HTTPDの設定。
・OCSP staplingを提供するためのmod_sslを使用したApache HTTPDの設定。
・SSL/TLSクライアント、サーバーのテストでのSSLの使用。
<重要なファイル、用語、ユーティリティ>
・中間認証局
・Cipher の設定(cipher固有の知識ではありません)
・httpd.conf
・mod_ssl
・openssl
■例題
WEBサーバにおける中間者攻撃の説明として適切な内容を選択してください。
1. 中間者攻撃は、自己署名証明書を利用することで防ぐことができる
2. 中間者攻撃は、第三者が通信を中継し、データの傍受や改ざんを行う攻撃である
3. 中間者攻撃は、HTTPS通信を行うことで防ぐことができる
4. 中間者攻撃は、第三者がシステムをダウンさせる攻撃である
※この例題は実際の試験問題とは異なります。
解答と解説
答えは「2. 中間者攻撃は、第三者が通信を中継し、データの傍受や改ざんを行う攻撃である」です。
例えば以下のように中間者攻撃は成立します。
1. WEBサーバとクライアントがHTTPS通信を開始しようとする
2. WEBサーバは公開鍵を含む証明書をクライアントに送る
3. 証明書がクライアントに到達する前に、中間者が証明書を奪取する
4. 中間者は、別の証明書をクライアントに送る
5. クライアントは、中間者の存在に気づかず、送られてきた証明書で共通鍵を作りデータの暗号化を行いWEBサーバに返す
6. 中間者はクライアントからの情報を、復号化し傍受・改ざんを行う
7. 中間者は、WEBサーバの証明書から共通鍵を作り、クライアントからの情報を暗号化してWEBサーバに返す
8. WEBサーバは中間者からのデータと気づかず、通信を継続する
上記の通り、中間者攻撃は証明書(公開鍵)の奪取が成功してしまえば成立します。
これを防ぐためには、証明書を信頼できる機関に署名してもらい、証明書の正当性をWEBサーバとクライアントが確認できる状態にする必要があります。
Apache HTTP Serverなど多くのWEBサーバは、HTTPS通信を行う際に、証明書(公開鍵)を使って通信の暗号化を行っているため、中間者攻撃を受けるリスクがあります。
特に第三者の証明が無い、自己署名証明書を利用している場合に、リスクが増大します。
ただ単にHTTPS通信を使ってデータを暗号化していれば安心ではなく、しっかりとした機関が署名した証明書を使うことが重要ということを覚えておきましょう。
■例題作成者 株式会社デージーネット ソリューション開発部 森 彰吾 氏