LinuCレベル3 303試験の例題と解説
325.2暗号化、署名および認証のX.509 証明書
■トピックの概要
このトピックの内容は以下の通りです。
<325.2 暗号化、署名および認証のX.509 証明書>
重要度 4
<説明>
Apache Webサービスの使用と使用方法と設定上のセキュリティ問題について経験と知識があること。
<主要な知識範囲>
・Apache v1 及び v2 の安全性を中心とした設定
<重要なファイル、用語、ユーティリティ>
・SSL
・.htaccess
・Basic 認証
・htpasswd
・AllowOverride
■例題
Apache Webサービスのセキュリティの説明として間違っているものを選びなさい。
1. SSLを利用することで、サーバなりすましの防止が行える
2. SSLを利用しても、フィッシング詐欺などを完全に防げるわけではない
3. Basic認証はパスワードが暗号化されて送信されるので安全である
4. 認証で使用するパスワードはhtpasswdコマンドでハッシュ化して作成する
※この例題は実際のLinuC試験とは異なります。
解答と解説
答えは3. Basic認証はパスワードが暗号化されて送信されるので安全である です。
通信経路の安全性を高めるためには、SSLを利用した通信プロトコルであるHTTPSの利用が有効です。特に入力フォームに情報を入力して送信させるような場合には、通信が暗号化されていることが必須になってきていると言ってもいいでしょう。
HTTPSには通信の暗号化のほかに、サーバ証明書によるなりすましの防止や、メッセージダイジェストによる通信内容の改ざん防止などの役割があります。
ただし、なりすましの防止はあくまでWebブラウザが入力したアドレスに一致するWebサイトにアクセスしていることを確認できるだけです。最初からメールなどで誘導されてしまうフィッシング詐欺には、HTTPSは有効な対策手段にはなり得ません。
Basic認証は、Webページへのアクセスの際にパスワード認証を要求する仕組みです。パスワードは暗号化されず平文で送信されるので、安全性を考えるとダイジェスト認証が行えるDigest認証を使用するべきでしょう。以前はBasic認証しか対応していないWebブラウザがあったため、Basic認証が必要とされていましたが、現在ではDigest認証への対応が進んでいるので、あえてBasic認証を使用する必要はないでしょう。
Basic認証、Digest認証で使用するパスワードはhtpasswdコマンドで作成します。/etc/shadowなどと同じくパスワードはハッシュ化されていますが、ハッシュ値を見られてしまうとパスワードを解析されてしまう可能性があります。パスワードファイルは、Webサーバで外部からアクセスできてしまうDocumentRoot以下などの場所には置かないなど、セキュリティ上の配慮が必要となります。