パスワード認証

パスワード認証

パスワードは利用者本人の記憶のみに存在し、知っているのは本人のみであるという前提に基づいた認証方式です。

認証はその方法によって「Certification(サーティフィケーション)」と「Authentication(オーセンティケーション)」とに分類されます。


Certification

被認証者が認証場所に直接アクセスして行う認証の事です。

認証登録管理者と認証請求者の「二者間認証」となります。


Authentication

被認証者が認証場所に直接アクセスする事無く遠隔地から電子的に受ける認証の事です。

認証登録管理者と認証請求者に加えて、第三者機関の証明書を利用する「三者間認証」となります。


固定長パスワード認証

事前に登録したパスワード(文字列)を用いて認証する方式です。

単純な仕組みであり実装が容易であるが、あらゆる脆弱性が内在する可能性が高く、パスワードクラックなどで不正利用される恐れがあります。


問題点

パスワード文字列をネットワーク上にクリアテキストで送信すると盗聴される可能性があります。

パスワードを暗号化しても、その文字列をパスワードであると判断された場合には、暗号文字列を用いて認証される「リプレイアタック」を受ける可能性があります。


ワンタイムパスワード認証

認証毎に異なるパスワードを用いて認証する方式です。

毎回使い捨てパスワードを生成するため、認証プロセスを盗聴されても不正アクセスを受ける可能性を減少できます。

生成パスワードの規則性や連続性が無いようにする必要があります。


チャレンジレスポンス方式

認証プロセスにおいて固定パスワードをネットワークに流さないことで、盗聴を防ぐ方式です。

認証プロトコルとして「CHAP(Challenge Handshake Authentication Protocol)」がRFC1994として存在します。


ユーザの固定パスワードを「シード:Seed」と呼び、認証毎に生成する乱数文字列を「チャレンジ」と呼びます。

仕組みは以下の通りで、毎回異なる「チャレンジ」を生成するため、シードそのものがネットワークに流れることがありません。

  1. サーバが「チャレンジ」をクライアントに送付します。
  2. クライアントは「チャレンジ」と「シード」を組み合わせてハッシュ関数で計算した文字列を生成し、サーバに送付します。
  3. サーバも同様に、「チャレンジ」と「シード」を組み合わせてハッシュ関数で計算した文字列を生成します。
  4. サーバは生成文字列とクライアントからの応答文字列を比較して、ユーザの認証を行います。

応用として「S/Key」という計算結果を予測してから照合する方式もあります。


トークン(携帯認証装置)認証方式

クライアント側で「トークン」と呼ばれる専用のパスワード生成システムを用いる認証方式です。

トークンとしてはハードウェア(カード型やUSBメモリ型など)やソフトウェア(PDAや携帯電話など)を利用します。


時刻同期方式

サーバとクライアント(トークン)で時間の同期を行い、日付(自国)とユーザ識別番号(PIN:Personal Identification Number)によってワンタイムパスワードを生成する方式です。

トークン側で時刻やPINコードから生成したパスワード「トークンコード」を生成し、認証サーバに送付します。

認証サーバは自身が生成した「トークンコード」と送付されたものを比較して認証を行います。


関連ページ