【SSL】 クライアント証明書とは何か?

SSL証明書に関して様々な情報を見ていくと「クライアント証明書」というキーワードを見かけることがあります。

サーバー証明書はよく耳にすると思います。

サーバー証明書はサーバーを証明します。

下図のようにサーバー証明書を確認することにより、本物のタマちゃんのサーバーであることが判明します。

また、例えば銀行のサイトで本物であることを証明します。(フィッシングサイト対策になります)

 

しかしクライアント証明書とは何でしょうか?

 

クライアント証明書はクライアントを証明するSSL証明書

クライアント証明書は、クライアントが本物かどうかを証明するSSL証明書です。

 

ちなみにSSL証明書には以下の2種類があります。

  • サーバー証明書
  • クライアント証明書

 

サーバー証明書はサーバーを証明します

クライアント証明書はクライアントを証明します

 

クライアント証明書はクライアントを証明するとして、なぜクライアント証明書が必要なのでしょうか?

クライアント証明書が必要となる場面

たとえば、このような場面でクライアント証明書が必要になります。

  • 出張先からインターネット経由で、会社の情報にアクセスする時
  • 限定会員向けオンラインサービス
  • スマホからも安全にアクセスさせたい
  • セキュリティや個人情報保護などのために確実に特定のクライアントだけにしかアクセスさせたくない時

 

パスワード認証だけだとダメ?

タマちゃん
パスワード認証だけだとダメなの?
山ちゃん
パスワード認証だけでもいいけど、パスワードを盗まれたらどこからでもアクセスされちゃうよ

 

たとえば、会員限定サービスのサイトがあるとします。

HTTPに「Basic認証」機能があります。

 

「Basic認証」機能を利用して、それぞれの会員にアカウントとパスワードを配布します。

これでも問題ないのですが、セキュリティ的には弱いです。

その理由は、「パスワードが盗まれたらどこからでもログインされてしまう」からです。

言葉を変えると、パスワード認証は世界中からパスワード総アタックされる可能性があります。

 

しかし、クライアント証明書で本物の会員かどうかをチェックしていたら、

パスワードを盗まれても、クライアント証明書が盗まれなければアクセスできません

クライアント証明書を盗まれても、パスワードが盗まれなければアクセスできません

 

つまり、クラッキングのハードルが非常に上がるのです。

そもそもクライアント証明書がなければ、世界中からパスワード総アタックをしても何の意味もありません。

 

また、「パスワード」も「クライアント証明書」も盗まれる人が仮にいたとしたら、犯人はものすごく身近な存在しかいません。

そこまでいくと家族とかそのレベルです。

 

だからクラッキングのハードルが上がるし、仮にクラッキングをされたとしても誰なのか調べればすぐに分かるレベルです。

 

 

どうやってクライアント証明書を使うのか?

クライアント証明書はパソコンにインストールをして利用します。

もっと言うと、大体「Google Chrome」とか「Firefox」などの Web ブラウザにインストールして利用することになります。

もちろんクライアント証明書は1人に1つずつ配布されます。

世界中で自分のクライアント証明書は1つだけです。

このクライアント証明書をインストールしたパソコンさえ盗まれなければ、またこのパソコンにログインするパスワードさえ盗まれなければ、仮に盗まれたとして会員サイトにログインするためのアカウントとパスワードを盗まれなければ安全です。

※もちろんクライアント証明書を盗まれたらすぐに失効処理をするなど対策を取らなければいけません

 

証明書はルート証明書に保証される

所詮と言ってしまうと何ですが、「クライアント証明書」も「サーバー証明書」も同じようなものです。

ただ単に証明する対象が異なるだけで、中身は一緒だと思ってください。

 

若干難しい話になりますが、「クライアント証明書」「サーバー証明書」も同じ構成をしており、サーバー証明書をどうやって保証しているのかと言うと、クライアントPCにインストールしてある「ルート証明書」が保証しているのです。

クライアント証明書も同じようにどのように保証されているのかと言うと、サーバーにインストールした「ルート証明書」が保証しています。

言葉で説明すると分かりにくいと思うので図解してみました。

ルート証明書とは?

ここで少しルート証明書について説明します。

ルート証明書とは、分かりやすくいうと「証明書システムの最後の保証の要(かなめ)となる部分」です。

そもそもルート証明書があらゆる証明書を保証しているので(オレオレ証明書は別)、ルート証明書の保証が信用できないと、SSL証明書そのものの信頼性が消えてしまいます。

だからルート証明書を発行できる機関は世界中でも限定された信頼のおける組織のみとなっています。

 

 

 

自分のパソコンのルート証明書を確認してみる

1.インターネットエクスプローラーを起動します。

 

2.インターネットエクスプローラーのメニューより「ツール」-「オプション」をクリックします。

 

3.「コンテンツ」タブをクリックします。

 

4.「証明書」ボタンをクリックします。

 

 

5.「信頼されたルート証明機関」タブをクリックしいます。

 

6.ルート証明書を発行している機関を確認してみましょう。

VeriSign や SECOM、Geo Trust、GlobalSign など有名どころが「信頼されたルート証明機関」としてルート証明書を発行しています。

 

 

 

 

クライアント証明書のデメリット

このようにクライアント証明書にはメリットしかないと思うかもしれませんが、デメリットもあります。

本人だけがクライアントを入手できるシステム

まず初めに、100%確実に本人だけがクライアント証明書を入手できるシステムがなければ意味がありません。

どうやってクライアント証明書を配布するのか?

 

古いスマホ等対応できるのか?

今の時代、スマホを持つのが当たり前といっても、まだまだ携帯電話を使っている方もいます。

しかもみんなが最新のスマホを使っているかといえば、古いスマホを使っている方もいます。

その人たちがお金を払って会員になったとしてもクライアント証明書が使えなくて会員限定サイトにアクセスできないかもしれません。

その場合、どうやってサービスを提供するのか?

単純なアカウントとパスワードだけで本人認証をするのか?

最終的にどうするのか?設計が難しいところです。

 

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメント一覧 (1件)

コメントする

AlphaOmega Captcha Medica  –  What Do You See?
     
 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください