SSLサーバ認証

インターネットショッピングやインターネットバンキングなど、重要な情報の入力を求められるようなサイトでは、SSLで暗号化するのは常識となっています。

しかし、本当に今通信しているサイトは、自分が意図したサイトなのでしょうか?

偽者のサイトに誘い込んで、パスワードなどを盗む、「フィッシング詐欺」の対策ですが、IPA http://www.ipa.go.jp/security/personal/protect/phishing.html
によると

1.ブラウザの鍵マークがあるか?
2.鍵マークをダブルクリックして、証明書をの内容を確認し、サイト名が接続しているURLとあっているか?
3.信頼された機関が発行した電子証明書かどうか?
が見極めるポイントだそうです。

これらは、PKIを利用したSSLによるサーバ認証の仕組みで成り立っています。

SSLのサーバ認証は、セッションの暗号化とサーバの認証を行い、「盗聴」・「改竄」「なりすまし」を防止することを目的に、広く使われています。

クライアントのアクセス制限

次に、会員限定のような、アクセス制限のあるサイトについて調べてみましょう。

アクセス制限の種類

Basic認証

・ユーザ名とパスワードによる認証
・認証データは暗号化されず平文でネットワーク上を流れる

通信経路上のパケットを盗聴すれば、暗号化されていないユーザ名やパスワードが丸見えです。
弱いパスワードは、辞書攻撃、総当り攻撃に脆弱で、すぐに破られてしまうことでしょう。

Digest認証

・ユーザ名・パスワードとnonceによる認証
・チャレンジ・レスポンス形式で、MD5暗号化してネットワークを流れる

認証データは暗号化されるので、Basic認証よりはましになりますが、
認証後のデータのやりとりは暗号化されないため、安全性に欠けます。

SSLクライアント認証

サーバ認証に加えて、サーバ側からクライアントを認証するしくみで、最もセキュリティレベルが高い方式です。

たとえば、銀行で口座を開設する際には、本人確認のためにパスポートや運転免許証のような公的機関が発行する身分証明書の提示を求められます。公的機関が発行する証明書は「信頼できる」ということです。

IEやFireFoxのようなブラウザには、あらかじめ認証局のルート証明書が組み込まれています。この認証局は「信頼できる」と自分が認めているということになります。自分が信頼する認証局が発行する証明書を提示した相手は「信用できる」ということです。

具体的な例を次回まとめてみることにします。