ネットワークスペシャリスト 平成25年秋試験の午後1 問1でクライアント証明書に関する問題が出ました。皆さんも恐らく聞きなれないクライアント証明書について自分で調べた事をまとめてみます。
サーバ証明書とクライアント証明書の大きな違い
SSLで出てくるサーバ証明書は、接続をしようとしているサーバの正当性を確認する物です。この仕組みは、利用者側の視点から通信相手となるサーバの信頼性を担保するという物ですよね。
クライアント証明書はサービス提供側(サーバ)の視点から利用者の信頼性を担保するという物ですので、サーバ証明書とは逆になります。
つまり、サーバ側から見て接続をしてくるクライアントが正しい利用者なのかを確認したいという事ですね。たとえばインターネット上からIDやパスワードの入力で利用できるシステムがあるとすると、このIDとパスワードが分かってしまえば誰でも成りすますことが可能です。
しかしこのサーバがIDとパスワードだけでなくクライアント証明書有無までチェックする場合は、このクライアント証明書を持つクライアント(パソコンやスマートフォン)でないとログインをすることが出来ないのです。
クライアント証明書の利用シーンは?
ざっくりと書くと、以下のような使い道があります。
・メールでの利用(電子署名(S/MIME))
・パソコンやスマートフォンでの認証に利用
・USBトークンとして利用(USBメモリ内にクライアント証明書を格納)
クライアント証明書の発行方法は主に2つある
(1)パブリック認証局で発行する。
サーバ証明書と同じように、パブリック認証局にて発行をします。(当然有料)
※パブリック認証局とは、シマンテック、グローバルサイン、サイバートラストなどの他社に証明書を発行する機関のこと。パブリック認証局のルート証明書はブラウザやメールソフトなどに予め組み込まれています。
(2)プライベート認証局で発行する。
自組織でプライベート認証局を作り、クライアント証明書を発行します。
プライベート認証局を作り、証明書を発行できますが、当然自組織で行っていることですので費用は発生しません。
※プライベート認証局を作るといってもイメージが湧かないと思いますが、例えばLinux(CentOSなど)をプライベート認証局として利用する事が可能です。
最後に
クライアント証明書を導入することによって、サーバ側から見たクライアントの信頼性を担保出来ることが分かりました。
またクライアント証明書の導入により認証の強化をすることが出来ることも分かりました。