クライアント認証

0pt

SSLについては素人なので間違ってたらごめんなさい。

今、HTTPSのクライアント認証の事をちょっと調べてます。

クライアント認証とは?


SSLサーバー認証は「サーバーはxxx.example.comである」という事を証明するための仕組みであるのに対して、クライアント認証はアクセスしている「ブラウザ(ユーザーエージェント)がxxxxxxxさん」であることを証明します。

サーバー認証はサーバーの設定が必要であるのに対して、クライアント認証ブラウザの設定が必要です。
(実際に利用する際には、大抵の場合、サーバー側の設定も必要になります。)

どうやってクライアント認証するのか


クライアントに秘密鍵とサーバー側で署名した公開鍵のセットを設定し、サーバーサーバーの公開鍵(サーバー認証に使用しているものである必要はありません)を設定します。

クライアント認証に使用する鍵のセットとサーバー認証に使用する鍵のセットを関連付ける必要はありません。

Basic認証やDigest認証では「誰がアクセスできるか」を設定しますが、クライアント認証の場合には「証明書がサーバー鍵で署名されているかどうか」を確認するだけです。

例えば、Basic認証の場合には、「アリスさんとボブさんのアクセスを許可」という感じで設定を行いますが、クライアント認証の場合には、「チャーリーが許可した人」と漠然な感じで認証されます。(この場合に、チャーリーはサーバーの秘密鍵を持っています)

これは例えば、Basic認証の場合には設定の変更を行う場合にはサーバー上の設定(=データベース)の変更が必要ですが、クライアント認証の場合にはサーバーの設定を変更する必要が無いことを意味しています。

一度認証したユーザーをアクセス拒否にする場合には、ユーザーの鍵のシリアル番号を利用して拒否することができるそうです。(自分は実際そのようなことをしたことはないですが)

何を調べてるのか?


SSLを利用するにはクライアント認証のみで利用出来るはずなのですが(例えばSSHとか)、Apacheではその設定ができないようです。

ひょっとしたら、HTTPSの仕様でサーバー認証が必須なのかもしれません。(そこまで調べきれてないです)

「クライアント認証」について友人に書いてもらう。

あなたにとって「クライアント認証」とは?

ログインするとワンクリックでキーワードを投稿できます

ログインする 新規登録する

関連したキーワードを持つお気に入り

他の人の「クライアント認証」を見る