(57)【要約】【課題】セキュリティの確保されたオフラインでのマトリクス認証を実現する。【解決手段】認証を受けるユーザに提示パターンを提示し、それに含まれる特定の位置の要素に適用することによりワンタイムパスワードを生成するための導出ルールをパスワードとするユーザ認証システムであって、オフライン認証クライアント内に、提示パターンを構成する複数のパターン要素列と、そのそれぞれの提示パターンに導出ルールを適用した結果に一方向関数演算を実施したものである複数の検証コードをクライアントに記憶させ、記憶されたパターン要素列から１つを選択することによって提示パターンを生成し、入力されたワンタイムパスワードを対応する検証コードに基づいて検証することによって認証を実施する。【選択図】図３
2007272364.tif 000002
【特許請求の範囲】
【請求項１】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムであって、
前記ユーザのユーザＩＤおよびパスワードを管理するオフライン認証支援サーバと、
前記オフライン認証支援サーバとネットワークで接続可能であるがネットワーク非接続状態であるオフラインで前記ユーザの認証を行う端末であるオフライン認証クライアントと、を有し、
前記オフライン認証クライアントは、
前記ユーザから前記ユーザＩＤの入力を受け付けるユーザＩＤ入力手段と、
入力された前記ユーザＩＤを前記オフライン認証支援サーバに前記ネットワークを通じて送信するユーザＩＤ送信手段と、
を有し、
前記オフライン認証支援サーバは、
あらかじめ前記ユーザのユーザＩＤと当該ユーザのワンタイムパスワード導出ルールとをお互いに関連付けて記憶するパスワード記憶部と、
前記提示パターンを構成するパターン要素の集合であるパターン要素列を所定の発生規則により複数発生するパターン発生手段と、
認証を受けようとするユーザのユーザＩＤを前記オフライン認証クライアントから前記ネットワークを通じて受信するユーザＩＤ受信手段と、
前記パターン発生手段で発生させられた複数の前記パターン要素列のそれぞれによって構成される前記提示パターンのそれぞれに対応させて、受信した前記ユーザＩＤに関連付けられた前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードを複数生成する検証コード生成手段と、
発生させられた複数の前記パターン要素列を、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信するパターン送信手段と、
生成された複数の前記検証コードを、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信する検証コード送信手段と、
を有し、
前記オフライン認証クライアントは、
前記オフライン認証支援サーバから送信された複数の前記パターン要素列を前記ネットワークを通じて受信するパターン受信手段と、
受信した複数の前記パターン要素列を記憶するパターン記憶部と、
前記オフライン認証支援サーバから送信された複数の前記検証コードを前記ネットワークを通じて受信する検証コード受信手段と、
受信した複数の前記検証コードを記憶する検証コード記憶部と、
前記パターン記憶部が記憶する複数の前記パターン要素列のうちの１つのパターン要素列を前記ユーザの認証に使用するために選択するパターン選択手段と、
選択された前記パターン要素列に対応する検証コードを特定する検証コード特定手段と、
選択された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるパターン表示手段と、
前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるワンタイムパスワード入力手段と、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるユーザ認証手段と、
をさらに有することを特徴とするオフラインユーザ認証システム。
【請求項２】
請求項１に記載のオフラインユーザ認証システムにおいて、
前記パターン選択手段は、次に前記オフライン認証支援サーバに接続されて前記パターン要素列および前記検証コードを新しく受信して記憶するまでは、記憶された複数の前記パターン要素列のうち、前記ユーザの認証に使用するためにすでに選択されたものは選択しないように構成されているオフラインユーザ認証システム。
【請求項３】
請求項１または２に記載のオフラインユーザ認証システムにおいて、
前記パターン要素列および前記検証コードは前記オフライン認証クライアント内に記憶される際に暗号化されるオフラインユーザ認証システム。
【請求項４】
請求項１から３のいずれか１項に記載のオフラインユーザ認証システムにおいて、
前記オフライン認証支援サーバは、前記オフライン認証クライアントが前記オフライン認証支援サーバとの間の前記ネットワークへの前記ユーザＩＤを使用したユーザ認証が成功してオンラインの状態になった直後に動作させられるオフラインユーザ認証システム。
【請求項５】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムであって、
前記ユーザのユーザＩＤおよびパスワードを管理するオフライン認証支援サーバと、
前記オフライン認証支援サーバとネットワークで接続可能であるがネットワーク非接続状態であるオフラインで前記ユーザの認証を行う端末であるオフライン認証クライアントと、を有し、
前記オフライン認証クライアントは、
前記ユーザから前記ユーザＩＤの入力を受け付けるユーザＩＤ入力手段と、
入力された前記ユーザＩＤを前記オフライン認証支援サーバに前記ネットワークを通じて送信するユーザＩＤ送信手段と、
を有し、
前記オフライン認証支援サーバは、
あらかじめ前記ユーザのユーザＩＤと当該ユーザのワンタイムパスワード導出ルールとをお互いに関連付けて記憶するパスワード記憶部と、
前記ユーザＩＤと組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値を所定の発生規則により複数発生するパターンシード値発生手段と、
認証を受けようとするユーザのユーザＩＤを前記オフライン認証クライアントから前記ネットワークを通じて受信するユーザＩＤ受信手段と、
受信した前記ユーザＩＤおよび発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させて、当該ユーザＩＤに関連付けられた前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードを複数生成する検証コード生成手段と、
発生させられた複数の前記パターンシード値を、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信するパターンシード値送信手段と、
生成された複数の前記検証コードを、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信する検証コード送信手段と、
を有し、
前記オフライン認証クライアントは、
前記オフライン認証支援サーバから送信された複数の前記パターンシード値を前記ネットワークを通じて受信するパターンシード値受信手段と、
受信した複数の前記パターンシード値を記憶するパターンシード値記憶部と、
前記オフライン認証支援サーバから送信された複数の前記検証コードを前記ネットワークを通じて受信する検証コード受信手段と、
受信した複数の前記検証コードを記憶する検証コード記憶部と、
前記パターンシード値記憶部が記憶する複数の前記パターンシード値のうちの１つのパターンシード値を前記ユーザの認証に使用するために選択するパターンシード値選択手段と、
選択された前記パターンシード値に対応する検証コードを特定する検証コード特定手段と、
入力された前記ユーザＩＤと選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するパターン要素列生成手段と、
生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるパターン表示手段と、
前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるワンタイムパスワード入力手段と、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるユーザ認証手段と、
をさらに有することを特徴とするオフラインユーザ認証システム。
【請求項６】
請求項５に記載のオフラインユーザ認証システムにおいて、
前記パターンシード値選択手段は、次に前記オフライン認証支援サーバに接続されて前記パターンシード値および前記検証コードを新しく受信して記憶するまでは、記憶された複数の前記パターンシード値のうち、前記ユーザの認証に使用するためにすでに選択されたものは選択しないように構成されているオフラインユーザ認証システム。
【請求項７】
請求項５または６に記載のオフラインユーザ認証システムにおいて、
前記パターンシード値および前記検証コードは前記オフライン認証クライアント内に記憶される際に暗号化されるオフラインユーザ認証システム。
【請求項８】
請求項５から７のいずれか１項に記載のオフラインユーザ認証システムにおいて、
前記オフライン認証支援サーバは、前記オフライン認証クライアントが前記オフライン認証支援サーバとの間の前記ネットワークへの前記ユーザＩＤを使用したユーザ認証が成功してオンラインの状態になった直後に動作させられるオフラインユーザ認証システム。
【請求項９】
請求項５に記載のオフラインユーザ認証システムにおいて、
前記パターン要素列生成手段の前記パターン要素列生成規則は、所定の初期キャラクター文字列に対して、前記ユーザＩＤおよび前記パターンシード値に基づく値を鍵として共通鍵暗号化アルゴリズム演算を適用した結果に基づいて、前記パターン要素列を生成するものであるオフラインユーザ認証システム。
【請求項１０】
請求項５に記載のオフラインユーザ認証システムにおいて、
前記パターン要素列生成手段の前記パターン要素列生成規則は、前記ユーザＩＤおよび前記パターンシード値に基づく値にハッシュ関数演算を適用した結果に基づいて前記パターン要素列を生成するものであるオフラインユーザ認証システム。
【請求項１１】
請求項１から１０のいずれか１項に記載のオフラインユーザ認証システムにおいて、
前記ワンタイムパスワード導出ルールは、前記提示パターンに含まれるパターン要素のそれぞれの位置と、当該それぞれのパターン要素の位置が選択される順番との組み合わせであるオフラインユーザ認証システム。
【請求項１２】
請求項１１に記載のオフラインユーザ認証システムにおいて、
前記ワンタイムパスワード導出ルールは、前記提示パターンに含まれる選択されるパターン要素のそれぞれの位置および当該提示パターンに基づかないで入力されるキャラクターのそれぞれと、当該それぞれのパターン要素の位置および当該それぞれのキャラクターが選択あるいは入力される順番との組み合わせであるオフラインユーザ認証システム。
【請求項１３】
請求項１１または１２に記載のオフラインユーザ認証システムにおいて、
前記提示パターンに含まれるそれぞれのパターン要素は０から９までの数字および記号から選択されるオフラインユーザ認証システム。
【請求項１４】
請求項１３に記載のオフラインユーザ認証システムにおいて、
前記提示パターンに含まれるそれぞれのパターン要素は０から９までの数字から選択されるオフラインユーザ認証システム。
【請求項１５】
請求項１４に記載のオフラインユーザ認証システムにおいて、
前記提示パターンに含まれる複数のパターン要素が配列される前記所定パターンは、前記パターン要素を縦ｍ個×横ｎ個のそれぞれの位置に全体が方形を形成するように配置したマトリクスを含むオフラインユーザ認証システム。
【請求項１６】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとし、前記ユーザのユーザＩＤおよびパスワードを管理するオフライン認証支援サーバと、前記オフライン認証支援サーバとネットワークで接続可能であるオフライン認証クライアントにおいてネットワーク非接続状態であるオフラインで前記ユーザの認証を行うオフラインユーザ認証方法であって、
前記オフライン認証支援サーバが、あらかじめ前記ユーザのユーザＩＤと当該ユーザのワンタイムパスワード導出ルールとをお互いに関連付けて記憶するステップと、
前記オフライン認証クライアントが、認証を受けようとするユーザのユーザＩＤの入力を受け付けるステップと、
前記オフライン認証クライアントが、入力された前記ユーザＩＤを前記オフライン認証支援サーバに前記ネットワークを通じて送信するステップと、
前記オフライン認証支援サーバが、認証を受けようとするユーザのユーザＩＤを前記オフライン認証クライアントから前記ネットワークを通じて受信するステップと、
前記オフライン認証支援サーバが、前記提示パターンを構成するパターン要素の集合であるパターン要素列を所定の発生規則により複数発生するステップと、
前記オフライン認証支援サーバが、発生させられた複数の前記パターン要素列のそれぞれによって構成される前記提示パターンのそれぞれに対応させて、受信した前記ユーザＩＤに関連付けられた前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードを複数生成するステップと、
前記オフライン認証支援サーバが、発生させられた複数の前記パターン要素列を、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信するステップと、
前記オフライン認証支援サーバが、生成された複数の前記検証コードを、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信するステップと、
前記オフライン認証クライアントが、前記オフライン認証支援サーバから送信された複数の前記パターン要素列を前記ネットワークを通じて受信するステップと、
前記オフライン認証クライアントが、受信した複数の前記パターン要素列を記憶するステップと、
前記オフライン認証クライアントが、前記オフライン認証支援サーバから送信された複数の前記検証コードを前記ネットワークを通じて受信するステップと、
前記オフライン認証クライアントが、受信した複数の前記検証コードを記憶するステップと、
前記オフライン認証クライアントが、記憶された複数の前記パターン要素列のうちの１つのパターン要素列を前記ユーザの認証に使用するために選択するステップと、
前記オフライン認証クライアントが、選択された前記パターン要素列に対応する検証コードを特定するステップと、
前記オフライン認証クライアントが、選択された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
前記オフライン認証クライアントが、前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を前記ユーザから受け付けるステップと、
前記オフライン認証クライアントが、入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるステップと、
を有することを特徴とするオフラインユーザ認証方法。
【請求項１７】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとし、前記ユーザのユーザＩＤおよびパスワードを管理するオフライン認証支援サーバと、前記オフライン認証支援サーバとネットワークで接続可能であるオフライン認証クライアントにおいてネットワーク非接続状態であるオフラインで前記ユーザの認証を行うオフラインユーザ認証方法であって、
前記オフライン認証支援サーバが、あらかじめ前記ユーザのユーザＩＤと当該ユーザのワンタイムパスワード導出ルールとをお互いに関連付けて記憶するステップと、
前記オフライン認証クライアントが、認証を受けようとするユーザのユーザＩＤの入力を受け付けるステップと、
前記オフライン認証クライアントが、入力された前記ユーザＩＤを前記オフライン認証支援サーバに前記ネットワークを通じて送信するステップと、
前記オフライン認証支援サーバが、前記ユーザＩＤと組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値を所定の発生規則により複数発生するステップと、
前記オフライン認証支援サーバが、認証を受けようとするユーザのユーザＩＤを前記オフライン認証クライアントから前記ネットワークを通じて受信するステップと、
前記オフライン認証支援サーバが、受信した前記ユーザＩＤおよび発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させて、当該ユーザＩＤに関連付けられた前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に前記一方向関数演算を実施したものである検証コードを複数生成するステップと、
前記オフライン認証支援サーバが、発生させられた複数の前記パターンシード値を、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信するステップと、
前記オフライン認証支援サーバが、生成された複数の前記検証コードを、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信するステップと、
前記オフライン認証クライアントが、前記オフライン認証支援サーバから送信された複数の前記パターンシード値を前記ネットワークを通じて受信するステップと、
前記オフライン認証クライアントが、受信した複数の前記パターンシード値を記憶するステップと、
前記オフライン認証クライアントが、前記オフライン認証支援サーバから送信された複数の前記検証コードを前記ネットワークを通じて受信するステップと、
前記オフライン認証クライアントが、受信した複数の前記検証コードを記憶するステップと、
前記オフライン認証クライアントが、記憶された複数の前記パターンシード値のうちの１つのパターンシード値を前記ユーザの認証に使用するために選択するステップと、
前記オフライン認証クライアントが、選択された前記パターンシード値に対応する検証コードを特定するステップと、
前記オフライン認証クライアントが、入力された前記ユーザＩＤと選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するステップと、
前記オフライン認証クライアントが、生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
前記オフライン認証クライアントが、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を前記ユーザから受け付けるステップと、
前記オフライン認証クライアントが、入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるステップと、
を有することを特徴とするオフラインユーザ認証方法。
【請求項１８】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムにおける、オフラインで前記ユーザの認証を行う端末であるオフライン認証クライアントであって、
所定の発生規則によりあらかじめ複数発生させられた前記提示パターンを構成するパターン要素の集合であるパターン要素列の入力をあらかじめ受け付けるパターン入力手段と、
入力された複数の前記パターン要素列をあらかじめ記憶するパターン記憶部と、
前記あらかじめ入力された複数の前記パターン要素列のそれぞれによって構成される前記提示パターンのそれぞれに対応させてあらかじめ複数生成された、認証を受けようとするユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付ける検証コード入力手段と、
入力された複数の前記検証コードをあらかじめ記憶する検証コード記憶部と、
認証を受けようとするユーザから前記ユーザＩＤの入力を受け付けるユーザＩＤ入力手段と、
前記パターン記憶部があらかじめ記憶している複数の前記パターン要素列のうちの１つのパターン要素列を前記ユーザの認証に使用するために選択するパターン選択手段と、
選択された前記パターン要素列に対応する検証コードを特定する検証コード特定手段と、
選択された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるパターン表示手段と、
認証を受けようとする前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるワンタイムパスワード入力手段と、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるユーザ認証手段と、
を有することを特徴とするオフライン認証クライアント。
【請求項１９】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムにおける、オフラインで前記ユーザの認証を行う端末であるオフライン認証クライアントであって、
所定の発生規則によりあらかじめ複数発生させられた、前記ユーザＩＤと組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値の入力をあらかじめ受け付けるパターンシード値入力手段と、
入力された複数の前記パターンシード値をあらかじめ記憶するパターンシード値記憶部と、
認証を受けようとするユーザの前記ユーザＩＤおよび前記あらかじめ発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させてあらかじめ複数生成された、当該認証を受けようとするユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付ける検証コード入力手段と、
入力された複数の前記検証コードをあらかじめ記憶する検証コード記憶部と、
認証を受けようとするユーザから前記ユーザＩＤの入力を受け付けるユーザＩＤ入力手段と、
前記パターンシード値記憶部があらかじめ記憶している複数の前記パターンシード値のうちの１つのパターンシード値を前記ユーザの認証に使用するために選択するパターンシード値選択手段と、
選択された前記パターンシード値に対応する検証コードを特定する検証コード特定手段と、
入力された前記ユーザＩＤと選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するパターン要素列生成手段と、
生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるパターン表示手段と、
前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるワンタイムパスワード入力手段と、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるユーザ認証手段と、
を有することを特徴とするオフライン認証クライアント。
【請求項２０】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムにおける、オフラインで前記ユーザの認証を行う端末であるオフライン認証クライアントで認証を行うオフラインユーザ認証方法であって、
所定の発生規則によりあらかじめ複数発生させられた前記提示パターンを構成するパターン要素の集合であるパターン要素列の入力をあらかじめ受け付けるステップと、
入力された複数の前記パターン要素列をあらかじめ記憶するステップと、
前記あらかじめ入力された複数の前記パターン要素列のそれぞれによって構成される前記提示パターンのそれぞれに対応させてあらかじめ複数生成された、認証を受けようとするユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付けるステップと、
入力された複数の前記検証コードをあらかじめ記憶するステップと、
認証を受けようとするユーザから前記ユーザＩＤの入力を受け付けるステップと、
あらかじめ記憶された複数の前記パターン要素列のうちの１つのパターン要素列を前記ユーザの認証に使用するために選択するステップと、
選択された前記パターン要素列に対応する検証コードを特定するステップと、
選択された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
認証を受けようとする前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるステップと、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるステップと、
を有することを特徴とするオフラインユーザ認証方法。
【請求項２１】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムにおける、オフラインで前記ユーザの認証を行う端末であるオフライン認証クライアントで認証を行うオフラインユーザ認証方法であって、
所定の発生規則によりあらかじめ複数発生させられた、前記ユーザＩＤと組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値の入力をあらかじめ受け付けるステップと、
入力された複数の前記パターンシード値をあらかじめ記憶するステップと、
認証を受けようとするユーザの前記ユーザＩＤおよび前記あらかじめ発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させてあらかじめ複数生成された、当該認証を受けようとするユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付けるステップと、
入力された複数の前記検証コードをあらかじめ記憶するステップと、
認証を受けようとするユーザから前記ユーザＩＤの入力を受け付けるステップと、
あらかじめ記憶された複数の前記パターンシード値のうちの１つのパターンシード値を前記ユーザの認証に使用するために選択するステップと、
選択された前記パターンシード値に対応する検証コードを特定するステップと、
入力された前記ユーザＩＤと選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するステップと、
生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるステップと、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるステップと、
を有することを特徴とするオフラインユーザ認証方法。
【請求項２２】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムにおいて、オフラインのコンピュータにオフラインユーザ認証方法を実行させるオフラインユーザ認証プログラムであって、
前記オフラインユーザ認証方法は、
所定の発生規則によりあらかじめ複数発生させられた前記提示パターンを構成するパターン要素の集合であるパターン要素列の入力をあらかじめ受け付けるステップと、
入力された複数の前記パターン要素列をあらかじめ記憶するステップと、
前記あらかじめ入力された複数の前記パターン要素列のそれぞれによって構成される前記提示パターンのそれぞれに対応させてあらかじめ複数生成された、認証を受けようとするユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付けるステップと、
入力された複数の前記検証コードをあらかじめ記憶するステップと、
認証を受けようとするユーザから前記ユーザＩＤの入力を受け付けるステップと、
あらかじめ記憶された複数の前記パターン要素列のうちの１つのパターン要素列を前記ユーザの認証に使用するために選択するステップと、
選択された前記パターン要素列に対応する検証コードを特定するステップと、
選択された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
認証を受けようとする前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるステップと、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるステップと、
を有することを特徴とするオフラインユーザ認証プログラム。
【請求項２３】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムにおいて、オフラインのコンピュータにオフラインユーザ認証方法を実行させるオフラインユーザ認証プログラムであって、
前記オフラインユーザ認証方法は、
所定の発生規則によりあらかじめ複数発生させられた、前記ユーザＩＤと組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値の入力をあらかじめ受け付けるステップと、
入力された複数の前記パターンシード値をあらかじめ記憶するステップと、
認証を受けようとするユーザの前記ユーザＩＤおよび前記あらかじめ発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させてあらかじめ複数生成された、当該認証を受けようとするユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付けるステップと、
入力された複数の前記検証コードをあらかじめ記憶するステップと、
認証を受けようとするユーザから前記ユーザＩＤの入力を受け付けるステップと、
あらかじめ記憶された複数の前記パターンシード値のうちの１つのパターンシード値を前記ユーザの認証に使用するために選択するステップと、
選択された前記パターンシード値に対応する検証コードを特定するステップと、
入力された前記ユーザＩＤと選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するステップと、
生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるステップと、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるステップと、
を有することを特徴とするオフラインユーザ認証プログラム。
【請求項２４】
請求項２２または２３に記載のオフラインユーザ認証プログラムにおいて、
当該プログラムは、Ｗｉｎｄｏｗｓ  ＯＳ起動時にレジストリの設定により呼び出されるＷｉｎｄｏｗｓ認証プログラムの形態であるオフラインユーザ認証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はユーザ認証システムに関し、より詳しくは、所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのパスワードとするユーザ認証システムに関する。
【背景技術】
【０００２】
ユーザ認証システムにおいて、固定パスワードより高いセキュリティを有する方式として、ユーザ認証のために１回しか使用することができない使い捨てパスワードであるワンタイムパスワードを使用するシステムが多く使用されるようになってきた。ワンタイムパスワードには、認証サーバと同期したワンタイムパスワード発生ルールによりワンタイムパスワードを生成するトークンを使用する方式や、認証サーバからクライアントに毎回変化するチャレンジという値が送られ、クライアントがそれに対してパスワードを所定のルールで適用したレスポンスを返すチャレンジ・レスポンス方式などがある。トークンは、それを手元の有しているユーザを確実に特定できるが、トークンを持ち歩く必要があり、またトークンの費用や、トークンを紛失した際の安全性に問題がある。一方、チャレンジ・レスポンス方式においては、トークンを使用する必要がないという簡便さはあるものの、類推されやすい固定パスワードを使用してワンタイムパスワードを発生させるので、パスワード入力時の盗み見などに弱いという問題や、クライアントにレスポンスを発生させるための専用のソフトウェアを導入する必要があるという問題などがある。
【０００３】
近年、そのような従来のチャレンジ・レスポンス方式の問題を改善した方式として、いわゆるマトリクス認証方式のユーザ認証システムが開発された（例えば、特許文献１、非特許文献１参照）。マトリクス認証においては、乱数を所定パターンに配列したマトリクス状の提示パターンを認証を受けようとするユーザに提示し、当該提示パターンに含まれるパターン要素（それぞれの乱数の数字）に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールが当該ユーザのパスワードとされる。そして、サーバとクライアントで同じ提示パターンを共有し、クライアントにおいてパスワードであるワンタイムパスワード導出ルールを提示パターンに適用した結果であるワンタイムパスワードと、サーバにおいてパスワードであるワンタイムパスワード導出ルールを提示パターンに適用した結果である検証コードとを比較することによって、パスワードを直接比較することなく、ユーザ認証が実施される。マトリクス認証においては、パスワードであるワンタイムパスワード導出ルールは、マトリクス上で選択される要素の位置と順番であって、イメージとして記憶しやすいものであり、また、パスワード入力時に盗み見されてもパスワードを特定することはできないという特徴がある。
【０００４】
図１５は、従来の代表的なマトリクス認証を使用したオンラインユーザ認証システム１００のブロック図である。従来のマトリクス認証システムにおいては、提示パターン１９１を生成するための情報がパターン要素列１９０として認証サーバ１０１から認証要求クライアント１５１に送信されていた（例えば、特許文献１参照）。また従来のマトリクス認証システムにおいては、オンライン認証サーバ１０１が、認証を受けようとするユーザの認証要求クライアント１５１からの認証要求を受信して、当該ユーザをオンラインで認証していた（例えば、特許文献１参照）。オンラインユーザ認証システム１００は、大きく、ユーザの認証を行うオンライン認証サーバ１０１と、ユーザが認証を要求する端末である認証要求クライアント１５１とから構成される。オンライン認証サーバ１０１は、ワンタイムパスワード導出ルール記憶部１０２と、ユーザＩＤ受信手段１０３と、パターン発生手段１０４と、パターン送信手段１０５と、検証コード生成手段１０６と、ワンタイムパスワード受信手段１０７と、ユーザ認証手段１０８とから構成される。認証要求クライアント１５１は、ユーザＩＤ入力手段１５２と、ユーザＩＤ送信手段１５３と、パターン受信手段１５４と、パターン表示手段１５５と、ワンタイムパスワード入力手段１５６と、ワンタイムパスワード送信手段１５７とから構成される。
【０００５】
認証要求クライアント１５１は、ユーザＩＤ入力手段１５２と、ユーザＩＤ送信手段１５３と、パターン受信手段１５４と、パターン表示手段１５５と、ワンタイムパスワード入力手段１５６と、ワンタイムパスワード送信手段１５７とから構成される。
【０００６】
オンライン認証サーバ１０１において、ワンタイムパスワード導出ルール記憶部１０２は、ユーザＩＤ１０２ａおよびワンタイムパスワード導出ルール１０２ｂをお互いに関連付けてあらかじめ記憶している。ユーザＩＤ受信手段１０３は、認証を受けようとするユーザのユーザＩＤ１８１を認証要求クライアント１５１から受信する。パターン発生手段１０４は、マトリクス状の提示パターン１９１に含まれるパターン要素の配列であるパターン要素列１９０を擬似乱数などの所定の発生規則により発生する。パターン送信手段１０５は、発生させられたパターン要素列１９０を認証要求クライアント１５１に送信する。
【０００７】
認証を受けようとするユーザが、認証要求クライアント１５１において、キーボードなどのユーザＩＤ入力手段１５２から自己のユーザＩＤ１８１を入力する。ユーザＩＤ送信手段１５３が入力されたユーザＩＤ１８１をオンライン認証サーバ１０１に送信する。オンライン認証サーバ１０１において、ユーザＩＤ受信手段１０３がユーザＩＤ１８１を受信する。パターン発生手段１０４が、マトリクス状の提示パターン１９１を構成する乱数の列であるパターン要素列１９０を所定の発生規則により発生する。パターン送信手段１０５は、発生させられたパターン要素列１９０を認証要求クライアント１５１に送信する。認証要求クライアント１５１において、パターン受信手段１５４がパターン要素列１５４を受信する。パターン表示手段１５５が、受信されたパターン要素列１９０に含まれるそれぞれのパターン要素を所定パターン１９１ｐに配列して提示パターン１９１を生成し、それを画面に表示させる。
【０００８】
図１６は、従来のオンラインユーザ認証システム１００における提示パターン１９１の生成方法の概念図である。図１６には、０から９までの１桁の数字をパターン要素とし、それぞれのパターン要素を４つの４×４のマトリクスからなるパターンのそれぞれの要素の位置に配置した提示パターン１９１が例示されている。オンライン認証サーバ１０１では、提示パターン１９１に含まれるパターン要素である６４個の１桁の数字を乱数発生アルゴリズムにより発生し、それらを並べたパターン要素列１９０を認証要求クライアント１５１に送信する。認証要求クライアント１５１は、オンライン認証サーバ１０１からパターン要素列１９０を受信し、それに含まれるそれぞれのパターン要素を所定パターン１９１ｐの形状、ここでは４つの４×４のマトリクスのそれぞれの要素の位置に順番に配列することによって提示パターン１９１を生成し、それを画面に表示させる。
【０００９】
図１３は、マトリクス認証方式におけるワンタイムパスワード入力方法の概念図である。ユーザは、提示パターン１９１に対してワンタイムパスワード導出ルール１０２ｂを適用することによって、マトリクス上の所定の位置に表示された数字を順番に抽出し、ワンタイムパスワード入力手段１５６から入力する。また、提示パターン１９１に基づかないで、数字を入力することも可能である。すなわち、固定パスワード成分をワンタイムパスワードに含めることもできる。それらの数字の入力は、マウス、タッチパネルなどのポインティングデバイスやキーボード１９６で行われる。図１３において破線で示した矢印と丸は、提示パターン１９１に基づくワンタイムパスワードをキーボード１９６から入力することを表わしている。ワンタイムパスワード送信手段１５７は、入力されたワンタイムパスワード１９２をオンライン認証サーバ１０１に送信する。オンライン認証サーバ１０１において、ワンタイムパスワード受信手段１０７がワンタイムパスワード１９２を受信する。検証コード生成手段１０６が、受信したユーザＩＤ１８１に関連付けられたワンタイムパスワード導出ルール１０２ｂを、送信したパターン要素列１９０によって構成される提示パターン１９１のパターン要素に適用した結果である検証コード１９３を生成する。ユーザ認証手段１０８が、受信したワンタイムパスワード１９２と検証コード１９３とを比較し、それらが等しい場合に当該ユーザの認証を成功させる。
【００１０】
【特許文献１】国際公開ＷＯ０３／０６９４９０号パンフレット（第１０頁第２−１４行）
【非特許文献１】タイズ大西＆ＡＳＳＯＣＩＡＴＥＳ  ＩＴ調査会議，「ベーステクロノジーに学ぶ“モバイル経営術”」，ＩＴ  ＳＥＬＥＣＴ，株式会社メディアセレクト，２００２年２月１日，p.56-p.60
【発明の開示】
【発明が解決しようとする課題】
【００１１】
従来のオンラインユーザ認証システム１００においては、オンライン認証サーバ１０１が、認証を受けようとするユーザの認証要求クライアント１５１からの認証要求を受信して、当該ユーザを認証していた。このように、従来のオンラインユーザ認証システム１００においては、クライアントだけでのユーザ認証を行うことはできず、それとネットワークで接続された認証サーバがユーザ認証を行う必要があった。従って、従来のマトリクス認証は、主としてネットワーク上の資源の利用許可のためにオンラインで使用されており、コンピュータ自体の資源の利用許可のためにオフラインで使用されることはなかった。一方、そのようなオフライン認証のニーズは存在していた。
【００１２】
ここで、ワンタイムパスワード導出ルール記憶部１０２、パターン発生手段１０４、検証コード生成手段１０６、ユーザ認証手段１０８に相当する構成を単にサーバ側からクライアント側に移動させても、セキュリティの確保されたオフライン認証を行わせることはできない。それは、パスワードとして機能するワンタイムパスワード導出ルール１０２ｂをクライアントに記憶させる場合には、通常のパスワードとは違って、ワンタイムパスワード導出ルール１０２ｂをハッシュ関数演算を使用してハッシュ化することができないからである。具体的には、検証コード１９３を生成するためには、具体的なワンタイムパスワード導出ルール１０２ｂを提示パターン１９１に適用する必要があるところ、ワンタイムパスワード導出ルール１０２ｂをハッシュ化して記憶すると、ハッシュ化されたものからはワンタイムパスワード導出ルール１０２ｂを復元することができず、従って、検証コード１９３を生成することもできないからである。従って、このような問題を有しない、セキュリティの確保された、オフラインでのマトリクス認証システムが必要とされていた。
【課題を解決するための手段】
【００１３】
本発明は上記の課題に鑑みてなされたものであり、以下のような特徴を有している。すなわち本発明は、所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムであって、オフライン認証支援サーバとオフライン認証クライアントとを有し、オフライン認証支援サーバは、提示パターンを構成するパターン要素の集合であるパターン要素列を所定の発生規則により複数発生し、発生させられた複数のパターン要素列のそれぞれに基づく提示パターンのそれぞれに対応させて、当該ユーザのワンタイムパスワード導出ルールをそれぞれの提示パターンに適用した結果に一方向関数演算を実施した検証コードを複数生成し、それらの複数のパターン要素列と検証コードをオフライン認証クライアントに送信し、オフライン認証クライアントは、受信した複数のパターン要素列から１つを選択して提示パターンを表示し、それに基づいて入力されたワンタイムパスワードに前記の一方向関数演算を実施したものを対応する検証コードと比較してユーザの認証を実行することを特徴とする。
【００１４】
本発明は、オフライン認証クライアントにおいて、パターン要素列に代えて、入力ユーザＩＤとともにパターン要素列を規定するパターンシード値をオフライン認証支援サーバから受信するように構成できる。
【００１５】
本発明は、オフライン認証クライアントで一度使用されたパターン要素列やパターンシード値を再使用しないように構成できる。
【００１６】
本発明は、オフライン認証支援サーバは、オフライン認証クライアントがオフライン認証支援サーバとの間のネットワークへのユーザＩＤを使用したユーザ認証が成功してオンラインの状態になった直後に動作させられるように構成できる。
【００１７】
本発明は、前記ワンタイムパスワード導出ルールが、提示パターンに含まれる選択されるパターン要素のそれぞれの位置と、当該それぞれのパターン要素の位置が選択される順番との組み合わせとすることや、あるいは、提示パターンに含まれる選択されるパターン要素のそれぞれの位置および当該提示パターンに基づかないで入力されるキャラクターのそれぞれと、当該それぞれのパターン要素の位置および当該それぞれのキャラクターが選択あるいは入力される順番との組み合わせとすることであるように構成できる。
【００１８】
本発明は、前記提示パターンに含まれるそれぞれのパターン要素が、０から９までの数字および記号から選択されることや、あるいは、０から９までの数字から選択されることであるように構成できる。
【００１９】
本発明は、前記提示パターンに含まれる複数のパターン要素が配列される前記所定パターンが、前記パターン要素を縦ｍ個×横ｎ個のそれぞれの位置に全体が方形を形成するように配置したマトリクスを含むように構成できる。
【００２０】
上記あるいは特許請求の範囲に記載の発明において、サーバ、クライアントなどの用語は、装置の具体的形態や具体的呼称を限定するものではなく、その一般的な機能を備えた装置を表わすためのものである。１つの構成要素が有する機能が２つ以上の物理的構成によって実現されてもよく、２つ以上の構成要素が有する機能が１つの物理的構成によって実現されてもよい。システムの発明は、それぞれの構成要素の有する機能が逐次的に実行される方法の発明として把握することもできるし、その逆も成り立つ。方法の発明においては、各ステップは記載された順序に実行されるものに限定されるものではなく、全体としての機能が矛盾なく実行され得る限りにおいて、自由な順序でそれを実行することができる。これらの発明は、所定のハードウェアと協働して所定の機能を実現させるプログラムとしても成立し、それを記録した記録媒体としても成立する。また本発明は、搬送波上に具現化されたコンピュータ・データ信号であって、そのプログラムのコードを備えたものとしても成立しうる。
【発明の効果】
【００２１】
本発明は、認証を受けるユーザに提示パターンを提示し、それに含まれる特定の位置の要素に適用することによりワンタイムパスワードを生成するための導出ルールをパスワードとするユーザ認証システムであって、オフライン認証クライアント内に、提示パターンを構成する複数のパターン要素列と、そのそれぞれの提示パターンに導出ルールを適用した結果に一方向関数演算を実施したものである複数の検証コードをクライアントに記憶させ、記憶されたパターン要素列から１つを選択することによって提示パターンを生成し、入力されたワンタイムパスワードに前記の一方向関数演算を実施したものを対応する検証コードと比較して認証を実施するという構成を有していることにより、オフライン認証クライアントで提示パターンを表示することができる一方、パスワード自体は記憶されず、パスワードを検証するための検証コードはハッシュ化されて記憶されるため、クライアントＰＣが解析されてもパスワード漏洩が発生しないような高いセキュリティを有するオフラインでのマトリクス認証を実現できるという効果を有する。さらに本発明は、ユーザの認証のために一度使用されたパターン要素列は再使用されないようにできるため、総当り攻撃に対して、より高いセキュリティを確保できるという効果を有する。
【００２２】
さらに本発明は、オフライン認証クライアントにおいて、入力されたユーザＩＤと記憶したパターンシード値とに基づいて、所定のパターン要素列生成規則により提示パターンを生成して表示させるようにも構成できるため、クライアントＰＣが解析されてパターンシード値とパターン要素列生成規則が悪意の第三者に漏洩した場合においても、ユーザＩＤが分からなければ提示パターンを生成することができず、高いセキュリティを確保できるという効果を有する。
【００２３】
さらに本発明は、オフライン認証支援サーバは、オフライン認証クライアントがオフライン認証支援サーバとの間のネットワークへのユーザＩＤを使用したユーザ認証が成功してオンラインの状態になった直後に動作させられるように構成できるため、オンラインとオフラインのログオン認証をシームレスに実施することができ、ネットワークの適正なユーザに対して自動的にオフライン認証のための検証データを伝達することができるという効果を有する。
【発明を実施するための最良の形態】
【００２４】
［本発明の実施形態］
これから本発明の説明を行う。本発明は、複数の提示パターンを生成することができる情報と、そのそれぞれの提示パターンに対応する複数の検証コードとをあらかじめクライアントに記憶させておき、それに基づいてクライアントにおいて提示パターンを表示させてユーザからワンタイムパスワードを入力させ、当該ワンタイムパスワードに一方向関数演算を実施したものと検証コードとを比較して、ユーザの認証を実施するものである。クライアントにおいて記憶される提示パターンを生成することができる情報として、提示パターンを構成するパターン要素列を使用する第１の実施形態と、入力ユーザＩＤと組み合わされてパターン要素列を生成するパターンシード値を使用する第２の実施形態とがある。本発明の第１の実施形態に係るオフラインユーザ認証システム２００は、提示パターン２９１を構成するパターン要素列２９０をオフライン認証クライアント２５１に記憶させる実施形態である。本発明の第２の実施形態に係るオフラインユーザ認証システム３００は、入力ユーザＩＤ３８１と組み合わされて提示パターン３９１を構成するパターンシード値３８３をオフライン認証クライアント３５１に記憶させる実施形態である。最初に、いずれの実施形態にも共通する本発明に係るユーザ認証方法の概要について説明し、その後に、第１の実施形態の説明、第２の実施形態の説明を行う。
【００２５】
本明細書において、ユーザがオフライン認証クライアント２５１、３５１を使用して、オフライン認証支援サーバ２０１、３０１と同じネットワークに適正なネットワークユーザとして接続している状態をオンラインと呼ぶ。ユーザがオフライン認証クライアント２５１、３５１をオンラインの状態で使用するためにはそのネットワークのリソースの使用許可を得る必要があるため、ネットワークがドメインとして管理されている場合には、当該ユーザのそのドメインネットワークへのログオン認証が必要である。ユーザがオフライン認証クライアント２５１、３５１を適正なユーザとして使用しているが、オフライン認証支援サーバ２０１、３０１と同じネットワークには接続していない状態をオフラインと呼ぶ。オフラインの状態であっても、Ｗｉｎｄｏｗｓ（登録商標。以下、同じ）ネットワークの場合はドメインネットワークのユーザとしてログオンすることも可能であり、また、ローカルのコンピュータのユーザとログオンすることも可能である。ユーザがオフライン認証クライアント２５１、３５１をオフラインの状態で使用するためには、当該ユーザは、そのドメインネットワークまたはそのコンピュータへのログオン認証を受けることが必要である。
【００２６】
［本発明に係るユーザ認証方法］
これから図面を参照して本発明に係るユーザ認証方法の説明を行う。図面においては、従来のオンラインユーザ認証システム１００と本発明に係るオフラインユーザ認証システム２００、３００との間で対応する構成要素に関しては、付している参照番号の下２桁は同じ番号としている。図１および２はハードウェア構成図、図３および４はブロック図、図５から８は動作フロー図である。まず、本発明に係るユーザ認証方法の概要について説明する。本発明に係るユーザ認証方法は、上述したような、チャレンジ・レスポンス方式の認証方法の一種であるマトリクス認証である。本発明に係るユーザ認証方法では、いずれの実施形態においても、所定パターンに配列した複数のパターン要素をオフライン認証クライアント２５１、３５１において認証を受けるユーザに提示パターン２９１、３９１として提示し、当該提示パターン２９１、３９１に含まれる特定の位置のパターン要素に対してユーザが適用することによりワンタイムパスワード２９２、３９２を生成するためのワンタイムパスワード導出ルール２０２ｂ、３０２ｂを当該ユーザのパスワードとするものである。
【００２７】
第１の実施形態においては、オフライン認証クライアント２５１においてユーザに提示される提示パターン２９１を生成する際に使用される情報であるパターン要素列２９０は、オフライン認証支援サーバ２０１においてあらかじめ複数生成され、オフライン認証クライアント２５１にネットワークあるいは他の記憶媒体を介して伝達されてあらかじめ記憶される。オフライン認証クライアント２５１に入力されたワンタイムパスワード２９２が正当であるかどうかを検証するための検証コード２９３は、パターン要素列２９０から構成される提示パターン２９１のそれぞれに当該ユーザのパスワードであるワンタイムパスワード導出ルール２０２ｂを適用した結果に一方向関数演算を実施することによってオフライン認証支援サーバ２０１であらかじめ複数生成され、オフライン認証クライアント２５１にネットワークあるいは他の記憶媒体を介して伝達されて記憶される。
【００２８】
第２の実施形態においては、オフライン認証クライアント３５１においてユーザに提示される提示パターン３９１を生成する際に使用される情報であるパターンシード値３８３は、オフライン認証支援サーバ３０１においてあらかじめ複数生成され、オフライン認証クライアント３５１にネットワークあるいは他の記憶媒体を介して伝達されてあらかじめ記憶される。提示パターン３９１は、パターンシード値３８３と入力されたユーザＩＤとに基づいて所定の生成規則により生成される。オフライン認証クライアント３５１に入力されたワンタイムパスワード３９２が正当であるかどうかを検証するための検証コード３９３は、パターンシード値３８３のそれぞれと入力されたユーザＩＤとに基づいて生成されるパターン要素列３９０から構成される提示パターン３９１のそれぞれに当該ユーザのパスワードであるワンタイムパスワード導出ルール３０２ｂを適用した結果に一方向関数演算を実施することによってオフライン認証支援サーバ３０１であらかじめ複数生成され、オフライン認証クライアント３５１にネットワークあるいは他の記憶媒体を介して伝達されて記憶される。
【００２９】
いずれの実施形態においても、オフライン認証クライアント２５１、３５１において、複数が生成可能な提示パターン２９１、３９１の中から１つが選択されて表示される。ユーザは表示された提示パターン２９１、３９１に対して自分のワンタイムパスワード導出ルール２０２ｂ、３０２ｂを適用することによってワンタイムパスワード２９２、３９２を入力する。オフライン認証クライアント２５１、３５１は、入力されたワンタイムパスワード２９２、３９２に検証コード２９３、３９３の生成時に使用したものと同じ一方向関数演算を実施したものを、それに対応する検証コード２９３、３９３と比較し、それらが等しければ当該ユーザに対する認証を成功させる。
【００３０】
以下に、本明細書で使用される用語について説明する。
【００３１】
［用語−提示パターンとパターン要素］
提示パターンとは、パターン要素を所定パターンに配列したものである。所定パターンとしては、縦ｍ個×横ｎ個のそれぞれの位置に全体が方形を形成するように配置したマトリクス、そのようなマトリクスを複数並べたもの、などが典型的であるが、その他に任意の図形の形状とすることができる。本明細書では、そのような典型的なマトリクス形状以外の形状の提示パターンを使用した場合も、マトリクス認証方式と呼ぶことにする。所定パターンとしては、規則的な形状や印象的な形状が、ユーザの記憶に残りやすく、従ってユーザがパスワードであるワンタイムパスワード導出ルール２０２ｂ、３０２ｂを記憶しやすいために好適である。
【００３２】
パターン要素とは、提示パターン内において所定パターンを構成するように所定位置に配置される要素であり、好適には０から９までの１桁の数字であるが、他に、アルファベット、記号、などの任意のキャラクターとすることができる。なお、記号としては、ＰＣの標準のキーボードに割り当てられている「＋」、「−」、「＊」、「＝」、「＿」、「！」、「？」、「＃」、「＄」、「＆」などの記号が特に好適である。キャラクターとして、図形、イラスト、写真などの図柄を使用することもできる。好適には、同じパターン要素は、提示パターン内において、複数個表示される。このようにすると、パスワードであるワンタイムパスワード導出ルール２０２ｂ、３０２ｂと、ワンタイムパスワード導出ルール２０２ｂ、３０２ｂを提示パターン２９１、３９１に適用した結果であるワンタイムパスワード２９２、３９２とは多対１の対応となり、ワンタイムパスワード２９２、３９２の入力時に自動的に一方向化がなされることになる。そのため、１つのワンタイムパスワード２９２、３９２だけからは、提示パターン２９１、３９１が特定されていたとしても、ワンタイムパスワード導出ルール２０２ｂ、３０２ｂを特定することはできない。
【００３３】
本実施例では、図１３などに示すような、０から９までの１桁の数字をパターン要素とし、それぞれのパターン要素を４つの４×４のマトリクスからなる所定パターン２９１ｐ、３９１ｐに配列したものを提示パターン２９１、３９１とする。なお、携帯電話機などのように画面の面積が小さい場合は、４×４のマトリクスの数を３つなどに減少させた提示パターンを使用すると好適である。
【００３４】
［用語−パターン要素列］
パターン要素列２９０、３９０は、提示パターン２９１、３９１を生成するために所定パターン２９１ｐ、３９１ｐに配置する要素の内容を表わすデータであり、典型的には、その提示パターン２９１、３９１に含まれるすべてのパターン要素を順番に並べたものである。パターン要素列２９０、３９０は、提示パターン２９１、３９１が生成される前に生成される。なお、パターン要素列２９０、３９０は、パターン要素が順番に並べられた１つの文字列でなければならないというものではなく、１つの提示パターン２９１、３９１に含まれるすべてのパターン要素の情報を含むデータを意味するものである。従って、パターン要素列２９０、３９０に含まれるそれぞれのパターン要素を提示パターン内のそれぞれの位置に対応付けられる限り、パターン要素列２９０、３９０に含まれるパターン要素の順番は自由である。またパターン要素列２９０、３９０は、複数のデータに分割されていても構わない。
【００３５】
［用語−第１の実施形態におけるパターン要素列］
第１の実施形態に係るオフラインユーザ認証システム２００においては、パターン要素列２９０は、オフライン認証支援サーバ２０１内で発生させられた後、オフライン認証クライアント２５１にネットワーク、あるいは、ＵＳＢメモリ、フロッピー（登録商標）ディスクなどの記憶媒体を通じて伝達され、そこに記憶される。
【００３６】
［用語−第２の実施形態におけるパターン要素列］
第２の実施形態に係るオフラインユーザ認証システム３００においては、パターン要素列３９０は、オフライン認証クライアント３５１の内部で生成されて提示パターン３９１の生成に使用されるのみであって、パターン要素列３９０がネットワークを通じて送信されることはない。
【００３７】
［用語−ワンタイムパスワード導出ルール］
ワンタイムパスワード導出ルール２０２ｂ、３０２ｂは、提示パターン２９１、３９１に含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワード２９２、３９３を生成するためのルールであり、ユーザのパスワードとして機能するデータである。パターン要素に対して適用するルールとは、典型的には、どの位置のパターン要素をどの順番で選択するのかということである。この場合、ワンタイムパスワード導出ルール２０２ｂ、３０２ｂは、提示パターン２９１、３９１に含まれる選択されるパターン要素のそれぞれの位置と、当該それぞれのパターン要素が選択される順番との組み合わせの情報である。またワンタイムパスワード導出ルール２０２ｂ、３０２ｂは、提示パターン２９１、３９１に基づかないで入力される数字などのキャラクターの情報を含んでいてもよく、この場合、ワンタイムパスワード導出ルール２０２ｂ、３０２ｂは、提示パターン２９１、３９１に含まれる選択されるパターン要素のそれぞれの位置および当該提示パターン２９１、３９１に基づかないで入力されるキャラクターのそれぞれと、当該それぞれのパターン要素の位置および当該それぞれのキャラクターが選択あるいは入力される順番との組み合わせの情報である。すなわち、提示パターン２９１、３９１に基づかない固定パスワード成分をワンタイムパスワードに含めることができる。
【００３８】
図１２に典型的なワンタイムパスワード導出ルール２０２ｂ、３０２ｂの構造を示す。本実施例では、０から９までの１桁の数字をパターン要素とし、それぞれのパターン要素を４つの４×４のマトリクスからなる所定パターン２９１ｐ、３９１ｐのそれぞれの要素の位置に配置した提示パターン２９１、３９１に対するワンタイムパスワード導出ルール２０２ｂ、３０２ｂが例示されている。図１２においては、所定パターン２９１ｐ、３９１ｐのそれぞれの要素の位置は、０１から６４までの数字で区別されて表示されている。提示パターン２９１、３９１が認証を受けようとするユーザに対して表示されるときには、所定パターン２９１ｐ、３９１ｐのそれぞれの要素の位置には０から９までの１桁の数字が表示される。
【００３９】
入力されるワンタイムパスワード２９２、３９２は、好適には、提示パターン２９１、３９１に基づく数字と、それに基づかないで入力される数字とを使用するものである。提示パターン２９１、３９１に含まれるパターン要素の数は６４個であるため、提示パターン２９１、３９１に含まれるパターン要素のそれぞれの位置が選択されたことは、それぞれの位置に割り当てられた０１から６４までの２桁の数字によって表わされる。そして、提示パターン２９１、３９１に基づかないで入力される数字については、最初にそのような数字であることを示す「９」の数字が割り当てられ、次に入力される１桁の数字が割り当てられた、２桁の数字によって表わされる。図１２の例では、ワンタイムパスワード２９２、３９２の最初の４つの数字は、提示パターン２９１、３９１の特定の位置のパターン要素を選択することによって入力されるものである。ワンタイムパスワード導出ルール２０２ｂ、３０２ｂのそれらに対応する部分として、それらの位置を表わす数字である「０１」、「１６」、「２９」、「２０」がその順番に配置される。選択されたパターン要素は、キーボード２９６、３９６やポインティングデバイスによって入力される。ワンタイムパスワード２９２、３９２のその次の２つの数字は、提示パターン２９１、３９１に基づかないで、キーボード２９６、３９６などから入力される固定パスワード成分である。ワンタイムパスワード導出ルール２０２ｂ、３０２ｂのそれらに対応する部分として、固定パスワード成分であることを表わす「９」の数字の後に、入力される数字である「２」および「９」がそれぞれ付加された「９２」、「９９」が続いてその順番に配置される。ワンタイムパスワード２９２、３９２のその次の１つの最後の数字は、提示パターン２９１、３９１の特定の位置のパターン要素を選択することによって入力されるものである。ワンタイムパスワード導出ルール２０２ｂ、３０２ｂのそれに対応する部分として、それの位置を表わす数字である「３３」が続いて配置され、ワンタイムパスワード導出ルール２０２ｂ、３０２ｂはここで終了する。ワンタイムパスワード導出ルール２０２ｂ、３０２ｂには、それの終了点をユニークに特定するエンドマーク、例えば「００」などの数字をその最後にさらに付加してもよいし、あるいは、ワンタイムパスワード導出ルール２０２ｂ、３０２ｂの全体の長さを示す数値をそれに関連付けていてもよい。
【００４０】
［用語−パターンシード値］
パターンシード値３８３は、第２の実施形態においてのみ使用される。パターンシード値３８３は、入力ユーザＩＤ３８１と組み合わされて１つの提示パターン３９１に含まれるパターン要素をユニークに決定する値であり、所定の発生規則により所定の範囲内において発生されられた定数である。オフライン認証クライアント３５１は、提示パターン３９１を表示するために、それを生成するための情報を記憶しておく必要がある。第１の実施形態では、オフライン認証クライアント２５１は、提示パターン２９１を構成するパターン要素列２９０を記憶するが、このような構成だと、悪意の第三者がオフライン認証クライアント２５１を解析すると、パターン要素列２９０を特定され、従って、提示パターン２９１を特定される可能性がある。これは、セキュリティ上、あまり好ましいことではない。これを防止するためには、パターン要素列２９０を記憶させないことが考えられる。その一方、オフライン認証クライアント３５１で認証を実施するためには、提示パターン３９１を生成して表示できなければならない。
【００４１】
このような相反する要求に対して、提示パターン３９１をユニークに決定するが、パターン要素列３９０そのものではない情報である提示パターン特定情報をオフライン認証クライアント３５１に記憶させておくことが考えられる。そしてオフライン認証クライアント３５１においては、記憶している提示パターン特定情報から所定の規則により提示パターン３９１を生成することになる。所定の規則とは、例えばハッシュ関数演算などが考えられる。この場合、パターン要素列２９０そのものは記憶されていないため、セキュリティが向上する。しかしこのような構成においても、オフライン認証クライアント３５１に実装されている、提示パターン３９１を提示パターン特定情報から生成するアルゴリズムが悪意の第三者によって一旦解析されてしまえば、悪意の第三者がオフライン認証クライアント３５１の解析により提示パターン特定情報を取得すると、それから提示パターン３９１を生成することが可能となってしまう。従って、このような提示パターン特定情報を採用したユーザ認証システムにおいても、まだセキュリティ上、あまり好ましくない状況が考えられる。
【００４２】
本発明の第２の実施形態においては、オフライン認証クライアント３５１は、パターン要素列３９０そのものは記憶されず、それに代えてパターンシード値３８３が記憶される。このパターンシード値３８３は、オフライン認証クライアント３５１においてユーザから入力される入力ユーザＩＤ３８１と組み合わされて提示パターン３９１をユニークに決定する。すなわち、パターンシード値３８３は、それだけからは提示パターン３９１をユニークに決定することはできないが、必然的にユーザが認証要求クライアント３５１において入力する入力ユーザＩＤ３８１と組み合わせられると提示パターン３９１をユニークに決定することができる。従って、パターンシード値３８３が、オフライン認証クライアント３５１の解析により悪意の第三者に取得されたとしても、まず、そのパターンシード値３８３は提示パターン３９１そのものを表わすものではないため、提示パターン３９１を推測することはできないし、さらに、たとえ入力ユーザＩＤ３８１とパターンシード値３８３とから提示パターン３９１を生成するアルゴリズムが解析されたとしても、入力ユーザＩＤ３８１が分からなければ、提示パターン３９１を推測することは不可能である。このような構成を採用することによって、第２の実施形態においては、オフライン認証クライアント３５１において表示される提示パターン３９１をオフライン認証クライアント３５１の解析によって推測することを極めて困難とすることができ、より高いセキュリティが提供される。
【００４３】
パターンシード値３８３は、典型的には、乱数発生アルゴリズムによって発生させられた所定の範囲内の数値である。パターンシード値３８３は、所定の範囲内の数値であれば、乱数発生アルゴリズム以外の発生規則、例えば、所定の初期値からの所定値ごとのカウントアップやカウントダウンで発生させられてもよい。
【００４４】
［用語−ワンタイムパスワード］
ワンタイムパスワード２９２、３９２は、認証を受けようとするユーザが提示パターン２９１、３９１に対して自己のワンタイムパスワード導出ルール２０２ｂ、３０２ｂを適用することによって生成・入力される使い捨てのパスワードである。図１３は、マトリクス認証方式におけるワンタイムパスワード入力方法の概念図である。図１３において使用されているワンタイムパスワード導出ルール２０２ｂ、３０２ｂは、図１２において示したものと同じである。ユーザは、自己のワンタイムパスワード導出ルール２０２ｂ、３０２ｂに従って、提示パターン２９１、３９１に含まれる所定の位置のパターン要素の選択、および提示パターン２９１、３９１に基づかない所定の数字の入力を所定の順番で実施することによって、ワンタイムパスワード２９２、３９２として「２５０４２９０」を生成・入力する。
【００４５】
［用語−検証コード］
検証コード２９３、３９３は、入力されたワンタイムパスワード２９２、３９２の正当性を検証するためのデータである。検証コード２９３、３９３は、オフライン認証クライアント２５１、３５１において複数のパターン要素列２９０または複数のパターンシード値３８３に基づいて表示することが可能な複数の提示パターン２９１、３９１のそれぞれに含まれる特定の位置のパターン要素に対してユーザが自己のワンタイムパスワード導出ルール２０２ｂ、３０２ｂを適用した結果に一方向関数演算を実施したものである。すなわち、検証コード２９３、３９３は、認証を受けようとするユーザに関連付けられた正しいワンタイムパスワード導出ルール２０２ｂ、３０２ｂが正しい提示パターン２９１、３９１に適用された結果である正しいワンタイムパスワード２９２、３９２と同じ値に一方向関数演算を実施したものである。従って、検証コード２９３、３９３は、表示可能な提示パターン２９１、３９１と同じ数だけ生成されてオフライン認証クライアント２５１、３５１に記憶される。オフライン認証クライアント２５１、３５１におけるユーザ認証時には、提示された提示パターン２９１、３９１に基づいて入力されたワンタイムパスワード２９２、３９２に検証コード２９３、３９３の生成時に使用したものと同じ一方向関数演算を実施した値と、提示パターン２９１、３９１に対応する検証コード２９３、３９３とを比較することによって、ワンタイムパスワード２９２、３９２の正当性が検証される。ここで、検証コードをハッシュ化していないものとしても、当然にワンタイムパスワード２９２、３９２の正当性を検証することはできる。しかし、そのような検証コードは正しいワンタイムパスワード２９２、３９２と等しいものであるため、クライアントＰＣが悪意の第三者に解析された場合には、提示パターン２９１、３９１と正しいワンタイムパスワード２９２、３９２のペアが複数知られることになってしまい、パスワードであるワンタイムパスワード導出ルール２０２ｂ、３０２ｂが特定されてしまうという問題がある。検証コード２９３、３９３をハッシュ化したものとすることによって、検証コード２９３、３９３からは正しいワンタイムパスワード２９２、３９２を特定することができなくなるので、クライアントＰＣが悪意の第三者に解析されたとしても、パスワードであるワンタイムパスワード導出ルール２０２ｂ、３０２ｂが漏洩することはない。
【００４６】
［用語−一方向関数およびハッシュ関数］
一方向関数とは、ある入力値に適用した出力値は簡単に計算できるが、その出力値からは元の入力値を求めることは極めて困難な関数のことをいう。ハッシュ関数とは、一方向関数の特徴である一方向性を有し、さらに、元の入力値が異なる場合に出力値が同一になる確率が極めて小さいという衝突耐性を有する関数をいう。ハッシュ関数は、通常、入力値にかかわらず一定範囲の出力値を生成する。一方向関数はハッシュ関数を含む概念であり、一方向関数とハッシュ関数はほぼ同様に使用することができるが、入力値の範囲が大きいなどの理由で、より高い衝突耐性が必要とされる場合には、ハッシュ関数を使用すると好適である。本発明においては、一方向関数に代えてハッシュ関数を使用することは当然に可能であるが、ハッシュ関数に代えて一方向関数を使用することも可能である。
【００４７】
［第１の実施形態に係るオフラインユーザ認証システム２００のハードウェア構成］
次に、本発明の第１の実施形態に係るオフラインユーザ認証システム２００の構成の説明をする。図１は、本発明の一実施形態に係るオフラインユーザ認証システム２００のハードウェア構成図である。図１を参照すると、オフラインユーザ認証システム２００は、大きく、オフライン認証支援サーバ２０１とオフライン認証クライアント２５１とから構成される。オフライン認証支援サーバ２０１は、ＣＰＵ２０１ａ、ＲＡＭ２０１ｂ、記憶装置２０１ｃ、ユーザインターフェース（Ｉ／Ｆ）２０１ｄ、外部／ネットワークインターフェース（Ｉ／Ｆ）２０１ｅから構成される。記憶装置２０１ｃは、その記憶領域にＯＳ２０１ｃ１、ユーザ認証支援アプリケーション２０１ｃ２を記憶し、またその記憶領域にパスワード記憶部２０２を含む。パスワード記憶部２０２は、ユーザＩＤ２０２ａ、ワンタイムパスワード導出ルール２０２ｂを記憶する。オフライン認証クライアント２５１は、ＣＰＵ２５１ａ、ＲＡＭ２５１ｂ、記憶装置２５１ｃ、ユーザインターフェース（Ｉ／Ｆ）２５１ｄ、外部／ネットワークインターフェース（Ｉ／Ｆ）２５１ｅから構成される。記憶装置２５１ｃは、その記憶領域にＯＳ２５１ｃ１を記憶し、またその記憶領域に検証データ記憶部２６１を含む。ＯＳ２５１ｃ１は、検証データ要求モジュール２５１ｃ２、提示パターン選択・生成モジュール２５１ｃ３、検証コード特定・認証モジュール２５１ｃ４を含む。検証データ記憶部２６１は、複数のパターン要素列２９０、複数の検証コード２９３を記憶する。それらの複数のパターン要素列２９０、複数の検証コード２９３をまとめて検証データ２９４と呼ぶ。
【００４８】
オフライン認証支援サーバ２０１は、オフラインユーザ認証システム２００において、オフライン認証クライアント２５１においてオフラインのユーザ認証が実施できるために必要なデータをあらかじめ生成する構成要素である。オフライン認証支援サーバ２０１は、ＯＳ２０１ｃ１、ユーザ認証支援アプリケーション２０１ｃ２などがインストールされた、サーバあるいはパーソナルコンピュータなどの形態である。ＣＰＵ２０１ａは、ＯＳ２０１ｃ１、ユーザ認証支援アプリケーション２０１ｃ２などをＯＳ２０１ｃ１上で実行してオフライン認証クライアント２５１でのユーザ認証を支援する情報処理を行うプロセッサである。ＲＡＭ２０１ｂは、記憶装置２０１ｃに記憶されたソフトウェアがその上に読み込まれるメモリ空間と、読み込まれたソフトウェアがＣＰＵ２０１ａによって実行される際に必要となるワークエリア等を提供するメモリである。記憶装置２０１ｃは、ソフトウェアやデータなどの情報を記憶・管理する構成要素であり、典型的にはハードディスクドライブなどの形態である。記憶装置２０１ｃは、好適には、ＯＳ２０１ｃ１、ユーザ認証支援アプリケーション２０１ｃ２のプログラムのファイルを記憶しており、それらのプログラムはＲＡＭ２０１ｂ上に読み出されて実行される。記憶装置２０１ｃは、ＯＳ２０１ｃ１、ユーザ認証支援アプリケーション２０１ｃ２のプログラムに関しては、それをＲＯＭに記憶した形態であってもよい。この場合、そのようなＲＯＭはＣＰＵ２０１ａなどのプログラム実行要素とともにファームウェアを構成することになる。ユーザＩ／Ｆ２０１ｄは、ユーザとの間でデータの入出力を行うための構成要素であり、典型的にはキーボード２９６、マウスなどのポインティングデバイスからなる入力手段と、画面に情報を表示するディスプレイなどの出力手段と、それらとの間のハードウェアＩ／Ｆとから構成される。キーボード２９６は、テンキー、標準のフルキーボードなど、ワンタイムパスワードを構成するパターン要素の入力ができる限り、任意の形態のものを使用できる。外部／ネットワークＩ／Ｆ２０１ｅは、ＵＳＢメモリやフロッピーディスクドライブなどの記憶装置やネットワークに接続して情報の入出力を行うためのＩ／Ｆである。
【００４９】
ＯＳ２０１ｃ１、ユーザ認証支援アプリケーション２０１ｃ２は、それらが組み合わされて形式的には一体のプログラムの形態となっていてもよい。例えば、ＯＳ２５１ｃ１がユーザ認証支援アプリケーション２０１ｃ２の機能を包含していてもよい。また、ユーザ認証支援アプリケーション２０１ｃ２が、他のアプリケーションに組み込まれていてもよい。また、それらがそれぞれ複数のプログラムに分割されていてもよい。
【００５０】
オフライン認証支援サーバ２０１は、オフライン認証クライアント２５１に対して何らかの形態で検証データ２９４を伝達することができれば、ネットワークで接続されていても、されていなくてもよい。しかし好適には、オフライン認証支援サーバ２０１は、オフライン認証クライアント２５１とネットワークで接続することが可能であり、ネットワーク接続されているオンライン状態において、あらかじめ検証データ２９４をオフライン認証クライアント２５１に伝達する。ネットワークは、好適には、ＴＣＰ／ＩＰベースのプロトコルで動作するインターネットあるいはイントラネットである。イントラネットにおいて、オフライン認証クライアント２５１がクライアント用Ｗｉｎｄｏｗｓ  ＯＳで動作している場合には、ネットワークはＴＣＰ／ＩＰベースのプロトコルで動作するＷｉｎｄｏｗｓのドメインネットワークとすることができる。なお、本明細書ではＯＳとしてＷｉｎｄｏｗｓを例示して説明しているが、他のＯＳ、例えば、Ｍａｃ  ＯＳ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ｕｎｉｘ（登録商標）などを使用することも可能である。
【００５１】
オフライン認証支援サーバ２０１がオフライン認証クライアント２５１とネットワークで接続される場合は、オフライン認証支援サーバ２０１は、典型的にはインターネットあるいはイントラネットなどのネットワーク上に配置され、当該ネットワークを通じてアクセスしてきたオフライン認証クライアント２５１に対してユーザ認証のための検証データ２９４を提供するリソースを提供するＷｅｂサーバの形態である。この場合、好適には、オフライン認証クライアント２５１をオフライン認証支援サーバ２０１と同じネットワークに接続するためのネットワークへのログオン認証時に検証データ２９４がオフライン認証クライアント２５１に伝達される。ネットワークへのログオン認証は、従来のオンラインユーザ認証システム１００で実施されていたユーザ認証方法と同じ方法であると好適であり、この場合、オフライン認証支援サーバ２０１は、オンライン認証サーバ１０１の機能も含んでいる。
【００５２】
好適には、オフライン認証クライアント２５１のログオン時に、本発明に係るユーザ認証方法を実施するプログラムが起動してログオン認証画面を表示するようにし、そのログオン認証画面においてはネットワークへのログオンとコンピュータへのログオンとが選択できるように構成する。このように構成すると、オンラインとオフラインのログオン認証をシームレスに実施することができるようになるとともに、オフライン認証クライアント２５１のネットワークへのログオン認証時において、検証データ２９４の生成と伝達の要求をＨＴＴＰプロトコル、ＨＴＴＰＳプロトコルなどを使用してオフライン認証支援サーバ２０１に送信することができる。従って、オフライン認証クライアント２５１は、ネットワークへのログオン認証が成功した直後に、ネットワークを通じてオフライン認証支援サーバ２０１から簡便かつ確実に検証データ２９４を取得することができる。
【００５３】
他には、オフライン認証支援サーバ２０１は、検証データ２９４のデータを添付した電子メールをユーザに送信するメールサーバの形態とすることもできる。この場合、オフライン認証クライアント２５１は、認証支援サーバ２０１からユーザ宛に送信された電子メールが蓄積されているサーバにアクセスして当該電子メールを受信し、当該電子メールに添付されている検証データ２９４を取得する。電子メールに添付されているデータは、検証データ２９４そのもののファイルであってもよいし、検証データ２９４をインストールするための実行形式のファイルであってもよい。オフライン認証支援サーバ２０１は、それぞれのユーザのメールアドレスを記憶していると好適である。電子メールによる検証データ２９４の伝達は、認証支援サーバ２０１からのネットワークや記憶媒体を通じてデータの伝達が、ユーザの長期出張などで困難な場合に有効である。
【００５４】
オフライン認証支援サーバ２０１がオフライン認証クライアント２５１とネットワークで接続されない場合は、オフライン認証支援サーバ２０１は、検証データ２９４を外部／ネットワークＩ／Ｆ２０１ｅを通じてフロッピーディスク、ＵＳＢメモリなどの記憶媒体に出力する。出力するデータは、検証データ２９４そのもののファイルであってもよいし、検証データ２９４をインストールするための実行形式のファイルであってもよい。オフライン認証クライアント２５１は、検証データ２９４が記憶された記憶媒体を外部／ネットワークＩ／Ｆ２５１ｅを通じて接続し、そこから検証データ２９４を取得する。
【００５５】
上述した、オフライン認証支援サーバ２０１が検証データ２９４を生成し、オフライン認証クライアント２５１が生成された検証データ２９４を取得して記憶することは、ユーザがオフライン認証クライアント２５１で認証を受けようとする前にあらかじめ実行される必要がある。
【００５６】
ＯＳ２０１ｃ１は、オフライン認証支援サーバ２０１のハードウェアに密接な基本的な情報処理を行うオペレーティングシステムである。ユーザ認証支援アプリケーション２０１ｃ２は、ＯＳ２０１ｃ１上で動作する、パターン要素列２９０および検証コード２９４を生成してそれをオフライン認証クライアント２５１に伝達するためのアプリケーションソフトウェアである。オフライン認証支援サーバ２０１がＷｅｂサーバの形態である場合、ユーザ認証支援アプリケーション２０１ｃ２は、典型的には、ＣＧＩで呼び出される形態かサーブレットの形態の認証支援プログラムを備えた、検証データ２９４をインターネットまたはイントラネットのＷｅｂを介して提供するＷｅｂサーバプログラムである。オフライン認証支援サーバ２０１がメールサーバの形態である場合、ユーザ認証支援アプリケーション２０１ｃ２は、典型的には、検証データ２９４を生成するプログラムを備えた、検証データ２９４を添付したメールをインターネットまたはイントラネットを介して提供するメールサーバプログラムである。パスワード記憶部２０２は、典型的にはハードディスクドライブなどの一領域であり、好適にはデータは暗号化ファイルとしてパスワード記憶部２０２に記憶される。ユーザＩＤ２０２ａは、ユーザをユニークに識別するためのデータである。ユーザＩＤ２０２ａは、任意の文字列を使用することができる。ワンタイムパスワード導出ルール２０２ｂは、上述したように、提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのルールであり、ユーザのパスワードとして機能するデータである。
【００５７】
オフライン認証クライアント２５１は、オフラインユーザ認証システム２００において、ユーザからの認証要求に応答してオフラインの状態で認証を実施する構成要素であり、ＯＳ２５１ｃ１、検証データ要求モジュール２５１ｃ２、提示パターン選択・生成モジュール２５１ｃ３、検証コード特定・認証モジュール２５１ｃ４などがインストールされた端末であり、具体的には、ＰＣ、携帯電話機、ＰＤＡなどの形態である。ＣＰＵ２５１ａは、検証データ要求モジュール２５１ｃ２、提示パターン選択・生成モジュール２５１ｃ３、検証コード特定・認証モジュール２５１ｃ４などをＯＳ２５１ｃ１とともに実行して、ユーザ認証に関する情報処理を行うプロセッサである。ＲＡＭ２５１ｂは、記憶装置２５１ｃに記憶されたソフトウェアがその上に読み込まれるメモリ空間と、読み込まれたソフトウェアがＣＰＵ２５１ａによって実行される際に必要となるワークエリア等を提供するメモリである。記憶装置２５１ｃは、ソフトウェアやデータなどの情報を記憶・管理する構成要素であり、典型的にはハードディスクドライブなどの形態である。記憶装置２５１ｃは、好適には、ＯＳ２５１ｃ１、検証データ要求モジュール２５１ｃ２、提示パターン選択・生成モジュール２５１ｃ３、検証コード特定・認証モジュール２５１ｃ４のプログラムのファイルを記憶しており、それらのプログラムはＲＡＭ２５１ｂ上に読み出されて実行される。なお、記憶装置２５１ｃは、ＯＳ２５１ｃ１、検証データ要求モジュール２５１ｃ２、提示パターン選択・生成モジュール２５１ｃ３、検証コード特定・認証モジュール２５１ｃ４に関しては、そのプログラムをＲＯＭに記憶した形態であってもよい。この場合、そのようなＲＯＭはＣＰＵ２５１ａなどのプログラム実行要素とともにファームウェアを構成することになる。ユーザＩ／Ｆ２５１ｄは、ユーザとの間でデータの入出力を行うための構成要素であり、典型的には、図示していないが、キーボード２９６や、マウス、トラックボール、タッチパネルなどのポインティングデバイスからなる入力手段と、画面に情報を表示するディスプレイなどの出力手段と、それらとの間のハードウェアＩ／Ｆとから構成される。外部／ネットワークＩ／Ｆ２５１ｅは、ＵＳＢメモリやフロッピーディスクドライブなどの記憶装置やネットワークに接続して情報の入出力を行うためのＩ／Ｆである。オフライン認証クライアント２５１をオフライン認証支援サーバ２０１とネットワークで接続しない形態においては、検証データ要求モジュール２５１ｃ２は必ずしも必要ない。
【００５８】
ＯＳ２５１ｃ１、検証データ要求モジュール２５１ｃ２、提示パターン選択・生成モジュール２５１ｃ３、検証コード特定・認証モジュール２５１ｃ４は、それらの一部または全部が組み合わされて形式的には一体のプログラムの形態となっていてもよい。例えば、検証データ要求モジュール２５１ｃ２、提示パターン選択・生成モジュール２５１ｃ３、検証コード特定・認証モジュール２５１ｃ４とが一体であってもよい。また、それらが独立したアプリケーションであっても、あるいは、他のアプリケーションに組み込まれていてもよい。また、それらがそれぞれ複数のプログラムに分割されていてもよい。
【００５９】
ＯＳ２５１ｃ１は、オフライン認証クライアント２５１のハードウェアに密接な基本的な情報処理を行うオペレーティングシステムであり、オフライン認証クライアント２５１のハードウェアに応じた基本プログラムである。ＯＳ２５１ｃ１は、プラットフォームに準じたアーキテクチャのファームウェアの形態であってもよい。検証データ要求モジュール２５１ｃ２は、オフライン認証クライアント２５１がオフライン認証支援サーバ２０１と同じネットワークにログオンする際に、オフライン認証支援サーバ２０１に対して検証データ２９４の生成および送信を要求するプログラムであり、典型的には、ＯＳ２５１ｃ１によってネットワークへのログオン認証時に呼び出されるモジュールの形態である。提示パターン選択・生成モジュール２５１ｃ３は、ＯＳ２５１ｃ１とともに動作する、検証データ２９４に含まれる複数のパターン要素列２９０から１つのパターン要素列２９０を所定の選択規則によって選択し、それに基づいて提示パターン２９１を生成するプログラムであり、典型的には、ＯＳ２５１ｃ１によってコンピュータへのログオン認証時に呼び出されるモジュールの形態である。生成された提示パターン２９１は、ＯＳ２５１ｃ１によって画面に表示される。検証コード特定・認証モジュール２５１ｃ４は、ＯＳ２５１ｃ１とともに動作する、検証データ２９４に含まれる複数の検証コード２９３から表示されている提示パターン２９１に対応する１つの検証コード２９３を特定し、認証を受けようとするユーザがＯＳ２５１ｃ１を通じて入力したワンタイムパスワード２９２と特定された検証コード２９３とを比較し、それらが等しければ当該ユーザに対する認証を成功させるプログラムであり、典型的には、ＯＳ２５１ｃ１によってコンピュータへのログオン認証時に呼び出されるモジュールの形態である。検証データ要求モジュール２５１ｃ２、提示パターン選択・生成モジュール２５１ｃ３、検証コード特定・認証モジュール２５１ｃ４は、プラットフォームに準じたアーキテクチャのファームウェアの形態であってもよい。
【００６０】
典型的には、ＯＳ２５１ｃ１はクライアント用Ｗｉｎｄｏｗｓ  ＯＳであり、検証データ要求モジュール２５１ｃ２はネットワークへのログオン認証時などのオンラインのときに検証データ要求を行い、提示パターン選択・生成モジュール２５１ｃ３および検証コード特定・認証モジュール２５１ｃ４はコンピュータへのログオン認証画面に提示パターン２９１を表示させてユーザに認証を要求し、本願発明に係る認証方法に基づいてユーザの認証を実施する。このように、標準のＷｉｎｄｏｗｓへのログオン認証に代えて、本願発明に係る認証方法に基づくユーザ認証を実施させると好適である。
【００６１】
標準のＷｉｎｄｏｗｓへのログオン認証画面の変更は、具体的には以下のようにして実施する。まず、検証データ要求モジュール２５１ｃ２、提示パターン選択・生成モジュール２５１ｃ３、および検証コード特定・認証モジュール２５１ｃ４の機能を実現するプログラムであるログオン認証モジュールをＷｉｎｄｏｗｓ用のＤＬＬファイルとして作成する。ここでは、「SmxGina.dll」という名前のＤＬＬファイルを作成する。ここで、Ｗｉｎｄｏｗｓへのログオン認証画面のプログラムは、以下に示すレジストリのロケーションにおいて「GinaDLL」という名前のキーのデータとして指定されている。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
標準のログオン認証のモジュールは「msgina.dll」というＤＬＬファイルであり、それが前述した「GinaDLL」という名前のキーのデータに設定されている。当該キーのデータを「SmxGina.dll」に書き換えると、本願発明に係る認証方法を実施するログオン認証モジュール「SmxGinaDLL」がログオン認証時に呼び出されることになる。
【００６２】
図１４は、オフラインユーザ認証システム２００におけるログオン認証画面２９７Ａおよび２９７Ｂのイメージ図である。Ｗｉｎｄｏｗｓのログオン時にログオン認証モジュール「SmxGinaDLL」が起動させられることによって、まず、ログオン認証画面２９７Ａが表示させられる。ログオン認証画面２９７Ａには、ユーザ名入力フィールド、ログオン先入力フィールドが表示される。オフライン認証クライアント２５１がドメインネットワークに接続された状態で、ログオン先にドメイン名を入力することによってオンラインで使用するためにＷｉｎｄｏｗｓのドメインネットワークへのログオン認証を行わせることができる。オフライン認証クライアント２５１がドメインネットワークに接続されていない状態では、ログオン先にドメイン名を入力することによってドメインネットワークのユーザとしてオフラインでコンピュータを使用するためのログオン認証を行わせることができ、ログオン先にコンピュータ名を入力することによってローカルコンピュータのユーザとしてオフラインで使用するためにコンピュータへのログオン認証を行わせることができる。ユーザがログオン認証画面２９７Ａのユーザ名入力フィールドに自己のユーザＩＤを入力ユーザＩＤ２８１として入力すると、次に、提示パターン２９１を含むログオン認証画面２９７Ｂが表示される。ログオン認証画面２９７Ｂにはパスワード入力フィールドがあり、キーボード２９６やポインティングデバイスによってワンタイムパスワードとして数字などのキャラクターが入力されると、それに応答して「＊」が１つずつ表示される。
【００６３】
［第１の実施形態に係るオフラインユーザ認証システム２００の機能ブロック構成］
図３は、本発明の一実施形態に係るオフラインユーザ認証システム２００のブロック図である。図３は、図１に示したハードウェア構成のオフラインユーザ認証システム２００を、ソフトウェアとハードウェア資源とが協働して実施される情報処理の観点から表現した図であり、当該情報処理を機能ブロックの単位で表わした図である。図３において、オフライン認証支援サーバ２０１は、パスワード記憶部２０２、要求受付手段２０３、パターン発生手段２０４、パターン送信手段２０５、検証コード生成手段２０６、検証コード送信手段２１１から構成される。これらの機能ブロックは、ユーザ認証支援アプリケーション２０１ｃ２の必要部分がＯＳ２０１ｃ１の必要部分とともに記憶装置２０１ｃからＲＡＭ２０１ｂ上に読み込まれ、それらのソフトウェアがＣＰＵ２０１ａによって実行されることによって、ＲＡＭ２０１ｂ、記憶装置２０１ｃ、ユーザＩ／Ｆ２０１ｄ、外部／ネットワークＩ／Ｆ２０１ｅなどのハードウェア要素とも適宜協働して実現されるものである。
【００６４】
パスワード記憶部２０２は、それぞれのユーザに関して、ユーザＩＤ２０２ａと、当該ユーザのパスワードであるワンタイムパスワード導出ルール２０２ｂとをお互いに関連付けてあらかじめ記憶する構成要素であり、ＣＰＵ２０１ａ、ＲＡＭ２０１ｂ、記憶装置２０１ｃなどがソフトウェアと協働することによって実現される機能ブロックである。要求受付手段２０３は、認証を受けることになるユーザのユーザＩＤの情報を伴う当該ユーザのための検証データ２９４の生成と出力の要求である検証データ要求を受け付ける構成要素であり、ＣＰＵ２０１ａ、ＲＡＭ２０１ｂ、ユーザＩ／Ｆ２０１ｄあるいは外部／ネットワークＩ／Ｆ２０１ｅなどがソフトウェアと協働することによって実現される機能ブロックである。検証データ要求はオフライン認証クライアント２５１からネットワークを通じて受信してもよく、また、オフライン認証支援サーバ２０１にユーザＩ／Ｆ２０１ｄを通じて直接入力されてもよい。パターン発生手段２０４は、提示パターン２９１を構成するパターン要素の内容の情報を含むパターン要素列２９０を乱数発生アルゴリズムなどの所定の発生規則により複数発生させる構成要素であり、ＣＰＵ２０１ａ、ＲＡＭ２０１ｂなどがソフトウェアと協働することによって実現される機能ブロックである。パターン送信手段２０５は、発生させられた複数のパターン要素列２９０を、オフライン認証クライアント２５１に記憶させるために出力する構成要素であり、ＣＰＵ２０１ａ、ＲＡＭ２０１ｂ、ユーザＩ／Ｆ２０１ｄあるいは外部／ネットワークＩ／Ｆ２０１ｅなどがソフトウェアと協働することによって実現される機能ブロックである。複数のパターン要素列２９０は、ネットワークを通じてオフライン認証クライアント２５１に送信されてもよいし、記憶媒体に出力されてもよい。検証コード生成手段２０６は、要求受付手段２０３を通じて入力された入力ユーザＩＤ２８１を有するユーザに関連付けられた、当該ユーザのパスワードであるワンタイムパスワード導出ルール２０２ｂを、オフライン認証クライアント２５１に表示されることになる、発生させられた複数のパターン要素列２９０から構成される提示パターン２９１に適用した結果に一方向関数演算を実施したものである検証コード２９３を複数生成する構成要素であり、ＣＰＵ２０１ａ、ＲＡＭ２０１ｂなどがソフトウェアと協働することによって実現される機能ブロックである。検証コード送信手段２１１は、生成された複数の検証コード２９３をオフライン認証クライアント２５１に記憶させるために出力する構成要素であり、ＣＰＵ２０１ａ、ＲＡＭ２０１ｂ、ユーザＩ／Ｆ２０１ｄあるいは外部／ネットワークＩ／Ｆ２０１ｅなどがソフトウェアと協働することによって実現される機能ブロックである。複数の検証コード２９３は、ネットワークを通じてオフライン認証クライアント２５１に送信されてもよいし、記憶媒体に出力されてもよい。
【００６５】
オフライン認証クライアント２５１は、ユーザＩＤ入力手段２５２、検証データ要求手段２５３、パターン受信手段２５４、パターン表示手段２５５、ワンタイムパスワード入力手段２５６、検証データ記憶部２６１、検証コード受信手段２６２、パターン選択手段２６３、検証コード特定手段２６４、ユーザ認証手段２６５から構成される。これらの機能ブロックは、ブラウザアプリケーション２０１ｃ２の必要部分、提示パターン生成モジュール２５１ｃ３がＯＳ２５１ｃ１の必要部分とともに記憶装置２５１ｃからＲＡＭ２５１ｂ上に読み込まれ、それらのソフトウェアがＣＰＵ２５１ａによって実行されることによって、ＲＡＭ２５１ｂ、記憶装置２５１ｃ、ユーザＩ／Ｆ２５１ｄ、外部／ネットワークＩ／Ｆ２５１ｅなどのハードウェア要素とも適宜協働して実現されるものである。オフライン認証クライアント２５１がネットワークを通じてオフライン認証支援サーバ２０１から検証データ２９４を取得しない場合は、検証データ要求手段２５３は必ずしも必要ない。
【００６６】
ユーザＩＤ入力手段２５２は、認証を受けようとするユーザのユーザＩＤを入力ユーザＩＤ２８１として入力を受け付ける構成要素であり、ＣＰＵ２５１ａ、ＲＡＭ２５１ｂ、ユーザＩ／Ｆ２５１ｄなどがソフトウェアと協働することによって実現される機能ブロックである。ユーザがオフライン認証クライアント２５１をオンラインで使用するためにネットワークへのログオン認証をする場合には、検証データ要求手段２５３に入力ユーザＩＤ２８１を伝達し、それに検証データ要求を送信させる。検証データ要求手段２５３は、入力された入力ユーザＩＤ２８１の情報を含む検証データ要求をオフライン認証支援サーバ２０１に送信する構成要素であり、ＣＰＵ２５１ａ、ＲＡＭ２５１ｂ、外部／ネットワークＩ／Ｆ２５１ｅなどがソフトウェアと協働することによって実現される機能ブロックである。パターン受信手段２５４は、オフライン認証支援サーバ２０１で生成された検証データ２９４を構成する複数のパターン要素列２９０を取得する構成要素であり、ＣＰＵ２５１ａ、ＲＡＭ２５１ｂ、ユーザＩ／Ｆ２５１ｄまたは外部／ネットワークＩ／Ｆ２５１ｅなどがソフトウェアと協働することによって実現される機能ブロックである。複数のパターン要素列２９０は、オフライン認証支援サーバ２０１からネットワークを通じて取得してもよく、それを記憶した記憶媒体から取得してもよい。パターン表示手段２５５は、パターン選択手段２６３によって選択されたパターン要素列２９０のパターン要素を所定パターン２９１ｐに配列して提示パターン２９１を生成し、それを画面に表示させる構成要素であり、ＣＰＵ２５１ａ、ＲＡＭ２５１ｂ、ユーザＩ／Ｆ２５１ｄなどがソフトウェアと協働することによって実現される機能ブロックである。ワンタイムパスワード入力手段２５６は、画面に表示させた提示パターン２９１などを通じてワンタイムパスワード２９２のユーザからの入力を受け付ける構成要素であり、ＣＰＵ２５１ａ、ＲＡＭ２５１ｂ、ユーザＩ／Ｆ２５１ｄなどがソフトウェアと協働することによって実現される機能ブロックである。検証データ記憶部２６１は、あるユーザのための複数のパターン要素列２９０および複数の検証コード２９３から構成される検証データ２９４を、当該ユーザのユーザＩＤ２０２ａと関連付けて記憶する構成要素であり、ＣＰＵ２０１ａ、ＲＡＭ２０１ｂ、記憶装置２０１ｃなどがソフトウェアと協働することによって実現される機能ブロックである。検証データ記憶部２６１が記憶する検証データ２９４は、パターン受信手段２５４および検証コード受信手段２６２から取得され、それらを取得したときに使用されているユーザＩＤがユーザＩＤ２０２ａとして対応付けられて記憶される。検証データ記憶部２６１は、複数のユーザの検証データ２９４を記憶することができる。検証コード受信手段２６２は、オフライン認証支援サーバ２０１で生成された検証データ２９４を構成する複数の検証コード２９３を取得する構成要素であり、ＣＰＵ２５１ａ、ＲＡＭ２５１ｂ、ユーザＩ／Ｆ２５１ｄまたは外部／ネットワークＩ／Ｆなどがソフトウェアと協働することによって実現される機能ブロックである。複数の検証コード２９３は、オフライン認証支援サーバ２０１からネットワークを通じて取得してもよく、それを記憶した記憶媒体から取得してもよい。パターン選択手段２６３は、入力ユーザＩＤ２８１に等しいユーザＩＤがユーザＩＤ２０２ａに記憶されているかどうかを確認し、入力ユーザＩＤ２８１に等しいユーザＩＤがあった場合は、そのユーザＩＤに関連付けられている検証データ２９４に含まれる複数のパターン要素列２９０の中から所定の規則により１つを選択することによって、提示パターン２９１を生成するためのパターン要素列２９０を選択する構成要素であり、ＣＰＵ２５１ａ、ＲＡＭ２５１ｂ、記憶装置２５１ｃなどがソフトウェアと協働することによって実現される機能ブロックである。検証コード特定手段２６４は、パターン選択手段２６３で選択されたパターン要素列２９０に対応する検証コード２９３を特定する構成要素であり、ＣＰＵ２５１ａ、ＲＡＭ２５１ｂ、記憶装置２５１ｃなどがソフトウェアと協働することによって実現される機能ブロックである。ユーザ認証手段２６５は、入力されたワンタイムパスワード２９２に検証コード２９３の生成時に使用したものと同じ一方向関数演算を実施したものと特定された検証コード２９３とを比較して、それらが等しいときにユーザ認証を成功させる構成要素であり、ＣＰＵ２０１ａ、ＲＡＭ２０１ｂなどがソフトウェアと協働することによって実現される機能ブロックである。
【００６７】
本実施形態においては、オフラインユーザ認証システム２００は、具体的には以下のような構成を有するものとする。オフライン認証支援サーバ２０１は、従来のオンラインユーザ認証システム１００のオンライン認証サーバ１０１の機能を有しており、その機能によって、オフライン認証クライアント２５１のネットワークを通じたユーザ認証が実施される。オフライン認証クライアント２５１はクライアント用Ｗｉｎｄｏｗｓ  ＯＳで動作しており、ユーザがＷｉｎｄｏｗｓにログオンする際にはログオン認証モジュール「SmxGinaDLL」が起動して、まず、ログオン認証画面２９７Ａが表示される。オフライン認証クライアント２５１がドメインネットワークに接続されている状態で、ログオン認証画面２９７Ａにおいてログオン先にドメイン名を指定してネットワークへの認証が要求された場合には、続いてログオン認証画面２９７Ｂが表示され、従来のオンラインユーザ認証システム１００で実施されていたものと同様のユーザ認証が実行されるとともに、当該ネットワークへのログオン認証が成功すると、オフライン認証クライアント２５１からオフライン認証支援サーバ２０１に対して検証データ要求が送信され、オフライン認証クライアント２５１はオフライン認証支援サーバ２０１からオンラインで検証データ２９４をあらかじめ取得して記憶する。オフライン認証クライアント２５１がドメインネットワークに接続されていない状態で、ログオン認証画面２９７Ａにおいてログオン先にドメイン名またはコンピュータ名を指定してコンピュータへの認証が要求された場合には、続いてログオン認証画面２９７Ｂが表示され、あらかじめ記憶していた検証データ２９４に基づいて、本発明に係るオフラインユーザ認証が実施される。
【００６８】
［オフラインユーザ認証システム２００の動作］
これから、オフラインユーザ認証システム２００の動作について説明する。オフラインユーザ認証システム２００の動作は、大きく２つの段階に分けることができる。１つの段階は、オフライン認証クライアント２５１が、ユーザ認証を受けることになるユーザのための検証データ２９４をオフライン認証支援サーバ２０１に生成させて、それをあらかじめ取得して記憶する段階である。もう１つの段階は、ユーザ認証を受けようとするユーザに対して、オフライン認証クライアント２５１が、あらかじめ記憶した検証データ２９４に基づいてオフラインでユーザ認証を実施する段階である。
【００６９】
［オフラインユーザ認証システム２００の動作（１）−検証データ取得］
まず、検証データ２９４を取得する動作フローについて説明する。図５は、オフラインユーザ認証システム２００の検証データ取得の動作フロー図である。まず、オフラインユーザ認証システム２００で認証を受けることになるユーザは、そのユーザＩＤ２０２ａとパスワードであるワンタイムパスワード導出ルール２０２ｂとをあらかじめオフライン認証支援サーバ２０１に入力して登録しておく。パスワード記憶部２０２は、そのユーザのユーザＩＤ２０２ａとワンタイムパスワード導出ルール２０２ｂとをお互いに関連付けてユーザの認証に先立ってあらかじめ記憶する（ステップＳ２０１）。オフライン認証支援サーバ２０１は、好適にはインターネットまたはイントラネットのＷｅｂ上にユーザＩＤとパスワードの登録のためのＷｅｂページまたはリソースを提供しており、ユーザは、オフライン認証クライアント２５１などの端末からオフライン認証支援サーバ２０１にアクセスする。それによって、オフライン認証クライアント２５１には、ユーザＩＤ入力のための入力フィールドと、０から９までの数字を乱数的にパターン要素として配置した提示パターン２９１が表示される（図示せず）。ユーザは入力フィールドに自分が登録したいユーザＩＤ２０２ａを入力する。ユーザは次に、自分が登録しようとするワンタイムパスワード導出ルール２０２ｂに従って、提示パターン２９１に含まれるパターン要素の位置の選択または当該提示パターン２９１に基づかない数字などのキャラクターの入力を行う。オフライン認証支援サーバ２０１は、入力されたユーザＩＤ２０２ａをそのユーザのユーザＩＤとしてパスワード記憶部２０２に記憶させる。一方、選択または入力された数字の列は、それだけではワンタイムパスワード導出ルール２０２ｂを特定することができない。従って、オフライン認証支援サーバ２０１は、異なる提示パターン２９１を表示して２回目のパスワード導出ルール２０２ｂに従った数字などのキャラクターの選択または入力を行わせ、選択または入力された数字などのキャラクターの列を１回目のものと比較して、ワンタイムパスワード導出ルール２０２ｂを特定する。２回目の提示パターン２９１を、１回目の提示パターン２９１と大きく異なるように工夫して発生させると、２回の提示パターン２９１の提示によってワンタイムパスワード導出ルール２０２ｂを特定することが可能である。２回の提示パターン２９１の提示でワンタイムパスワード導出ルール２０２ｂの特定ができなかった場合は、それが特定できるまで、提示パターン２９１の内容を変えてそれの提示を繰り返す。これによって、提示パターン２９１に含まれる選択されるパターン要素のそれぞれの位置および当該提示パターン２９１に基づかないキャラクターのそれぞれと、当該それぞれのパターン要素の位置および当該それぞれのキャラクターが選択あるいは入力される順番との組み合わせであるワンタイムパスワード導出ルール２０２ｂが特定される。特定されたワンタイムパスワード導出ルール２０２ｂは、当該ユーザのユーザＩＤ２０２ａと関連付けられてパスワード記憶部２０２に記憶される。
【００７０】
次に、認証を受けようとするユーザは、ユーザＩＤ入力手段２５２を通じて、オフライン認証クライアント２５１において、ユーザＩＤ入力手段２５２により自分のユーザＩＤを入力ユーザＩＤ２８１として入力する（ステップＳ２０３）。ユーザは、典型的には、オフライン認証クライアント２５１がドメインネットワークに接続された状態で、オフライン認証クライアント２５１のＷｉｎｄｏｗｓのログオン認証画面２９７Ａにおいて、ユーザー名フィールドに自己のユーザＩＤを入力し、ログオン先としてドメイン名を入力したユーザ認証の要求を行う。これによって、入力ユーザＩＤ２８１がオフライン認証クライアント２５１に入力される。続いて、ログオン認証画面２９７Ｂが表示され、従来のオンラインユーザ認証システム１００で実施されていたユーザ認証方法と同様の方法によってユーザ認証が実施される。ユーザ認証が成功すると、次に、オフライン認証クライアント２５１は、検証データ要求手段２５３により、入力された入力ユーザＩＤ２８１を含む検証データ２９４の生成と出力の要求をオフライン認証支援サーバ２０１に送信する（ステップＳ２０５）。典型的には、ログオン認証画面２９７Ａおよび２９７Ｂを表示させているログオン認証モジュール「SmxGinaDLL」が、オフライン認証支援サーバ２０１がネットワーク上に検証データ２９４の提供のためのリソースにアクセスして、入力ユーザＩＤ２８１の情報を含む、検証データ要求のデータを伝達する。当該リソースは、典型的には、ＨＴＴＰＳプロトコルでアクセス可能なＪａｖａ（登録商標）サーブレットの形態である。次に、オフライン認証支援サーバ２０１は、要求受付手段２０３により、オフライン認証クライアント２５１から送信された入力ユーザＩＤ２８１を含む検証データ要求を受信する（ステップＳ２０７）。典型的には、オフライン認証支援サーバ２０１は、ユーザ認証支援アプリケーション２０１ｃ２を動作させ、それによって入力ユーザＩＤ２８１を受信する。次に、オフライン認証支援サーバ２０１は、パターン発生手段２０４により、パターン要素列２９０を所定の発生規則によって複数発生させる（ステップＳ２０９）。所定の発生規則は、典型的には、６４桁の乱数を発生させることである。図９には、パターン要素列２９０（選択前の状態）として、「２５６６４７９６・・・１７１４」などが例示されている。
【００７１】
次に、オフライン認証支援サーバ２０１は、検証コード生成手段２０６により、発生させた複数のパターン要素列２９０のそれぞれによって構成される提示パターン２９１のそれぞれに対応させて、オフライン認証クライアント２５１から受信した入力ユーザＩＤ２８１に関連付けられたワンタイムパスワード導出ルール２０２ｂをそれぞれの提示パターン２９１に含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コード２９３を複数生成する。（ステップＳ２１１）。次に、オフライン認証支援サーバ２０１は、パターン送信手段２０５により、発生した複数のパターン要素列２９０をオフライン認証クライアント２５１に送信する（ステップＳ２１３）。典型的には、オフライン認証支援サーバ２０１は、ユーザ認証支援アプリケーション２０１ｃ２を動作させ、それによって複数のパターン要素列２９０をオフライン認証クライアント２５１に送信する。次に、オフライン認証クライアント２５１は、パターン受信手段２５４により、オフライン認証支援サーバ２０１から送信された複数のパターン要素列２９０を受信し、それを入力ユーザＩＤ２８１とともに検証データ記憶部２６１に記憶する（ステップＳ２１５）。典型的には、オフライン認証クライアント２５１上で動作しているログオン認証モジュール「SmxGinaDLL」が、複数のパターン要素列２９０を受信して記憶させる。次に、オフライン認証支援サーバ２０１は、検証コード送信手段２１１により、発生した複数の検証コード２９３をオフライン認証クライアント２５１に送信する（ステップＳ２１７）。典型的には、オフライン認証支援サーバ２０１は、ユーザ認証支援アプリケーション２０１ｃ２を動作させ、それによって複数の検証コード２９３をオフライン認証クライアント２５１に送信する。次に、オフライン認証クライアント２５１は、検証コード受信手段２６２により、オフライン認証支援サーバ２０１から送信された複数の検証コード２９３を受信し、それを検証データ記憶部２６１に記憶する（ステップＳ２１９）。典型的には、オフライン認証クライアント２５１上で動作しているログオン認証モジュール「SmxGinaDLL」が、複数の検証コード２９３を受信して記憶させる。以上の動作によって、入力ユーザＩＤ２８１に対応した検証データ２９４がオフライン認証クライアント２５１に記憶され、オフラインユーザ認証の準備が完了したことになる。
【００７２】
なお、検証データ要求は、オフライン認証支援サーバ２０１に直接入力することもできる。この場合、オフライン認証支援サーバ２０１に入力ユーザＩＤ２８１を含む検証データ要求を入力し、それに対応する検証データ２９４を記憶媒体などに出力させる。オフライン認証クライアント２５１は、当該記憶媒体から検証データ２９４を読み込ませて記憶させる。
【００７３】
［オフラインユーザ認証システム２００の動作（２）−ユーザ認証］
次に、オフラインでのユーザ認証の動作フローについて説明する。図６は、オフラインユーザ認証システム２００のオフラインユーザ認証の動作フロー図である。まず、認証を受けようとするユーザは、ユーザＩＤ入力手段２５２を通じて、そのユーザＩＤをオフライン認証クライアント２５１に入力する（ステップＳ２５１）。ユーザは、典型的には、オフライン認証クライアント２５１がドメインネットワークに接続されていない状態で、オフライン認証クライアント２５１のＷｉｎｄｏｗｓのログオン認証画面２９７Ａにおいて、ユーザー名フィールドに自己のユーザＩＤを入力し、ログオン先としてドメイン名またはコンピュータ名を指定したユーザ認証の要求を行うことによって、入力ユーザＩＤ２８１を入力する。次に、オフライン認証クライアント２５１は、パターン選択手段２６３により、入力ユーザＩＤ２８１が、検証データ記憶部２６１に記憶されているユーザＩＤ２０２ａに含まれていることを確認する（ステップＳ２５３）。これによって、認証を受けようとするユーザに対応する検証データ２９４が記憶されており、オフラインユーザ認証を行うことができることを確認する。次に、オフライン認証クライアント２５１は、パターン選択手段２６３により、入力ユーザＩＤ２８１に関連付けられた複数のパターン要素列２９０の中から、所定の規則により１つのパターン要素列２９０を選択する（ステップＳ２５５）。選択されるパターン要素列２９０としては、好適には、次にオフライン認証支援サーバ２０１から検証データ２９４を新しく取得して記憶するまでは、記憶された複数のパターン要素列２９０のうち、当該ユーザの認証に使用するためにすでに選択されたものは選択されない。このようにすることによって、１回のオフラインユーザ認証ごとに、異なる提示パターン２９１を表示させることができ、総当り攻撃を排除できるため、よりセキュリティを向上させることができる。パターン要素列２９０が例えば１００個記憶されている場合は、新しく検証データ２９４を取得するまでの間、連続して１００回、オフラインユーザ認証を実施することができることになる。選択されていないパターン要素列２９０が少なくなってくると、その旨の警告が表示される。すべてのパターン要素列２９０が選択されてしまうと、それ以上の新しいユーザ認証はできない。次に、オフライン認証クライアント２５１は、検証コード特定手段２６２により、入力ユーザＩＤ２８１に関連付けられた複数の検証コード２９３の中から、ステップＳ２５５で選択されたパターン要素列２９０に対応する検証コードを特定する（ステップＳ２５７）。次に、オフライン認証クライアント２５１は、パターン表示手段２６３により、選択されたパターン要素列２９０のそれぞれのパターン要素を４つの４×４のマトリクスからなるパターンのそれぞれの要素の位置に配置した提示パターン２９１の画像を生成し、それをオフライン認証クライアント２５１の画面に表示させる（ステップＳ２５９）。典型的には、図１４に示されるように、ログオン認証画面２９７Ａに続いて、提示パターン２９１を含むログオン認証画面２９７Ｂが表示させられる。
【００７４】
次に、認証を受けようとするユーザは、オフライン認証クライアント２５１の画面に表示された提示パターン２９１の特定の位置に表示されたパターン要素を選択したり、提示パターン２９１に基づかない数字などのキャラクターを入力したりすることを順番に実施することによって、自分のワンタイムパスワード導出ルール２０２ｂを提示パターン２９１に適用した結果であるワンタイムパスワード２９２をオフライン認証クライアント２５１に入力する。オフライン認証クライアント２５１は、ワンタイムパスワード入力手段２５６により、ワンタイムパスワード２９２の入力を受け付ける（ステップＳ２６１）。
【００７５】
次に、オフライン認証クライアント２５１は、ユーザ認証手段２６５により、入力されたワンタイムパスワード２９２に検証コード２９３の生成時に使用したものと同じ一方向関数演算を実施したものと特定された検証コード２９３とを比較し、それらが等しければ、当該ユーザのユーザ認証を成功させる（ステップＳ２６３）。
【００７６】
［第２の実施形態に係るオフラインユーザ認証システム３００のハードウェア構成］
次に、本発明の第２の実施形態に係るオフラインユーザ認証システム３００の説明を、オフラインユーザ認証システム２００との相違点を中心に説明する。オフラインユーザ認証システム３００では、オフラインユーザ認証において、パターン要素列２９０ではなくパターンシード値３８３を使用する点がオフラインユーザ認証システム２００と異なるが、その他はほぼ同様の構成であり、同様の特徴を有している。まず、本発明の第２の実施形態に係るオフラインユーザ認証システム３００の構成の説明をする。図２は、本発明の一実施形態に係るオフラインユーザ認証システム３００のハードウェア構成図である。図２を参照すると、オフラインユーザ認証システム３００は、大きく、オフライン認証支援サーバ３０１とオフライン認証クライアント３５１とから構成される。オフライン認証支援サーバ３０１は、オフライン認証支援サーバ２０１と同様の構成である。オフライン認証クライアント３５１は、オフライン認証クライアント２５１とほぼ同様の構成であるが、記憶装置３５１ｃにおいて、ＯＳ３５１ｃ１内にシード値選択・パターン生成モジュール３５１ｃ３が記憶されている点、および検証データ記憶部３６１にパターンシード値３８３が記憶されている点が異なっている。検証データ記憶部３６１は、複数のパターンシード値３８３、複数の検証コード３９３を記憶する。それらの複数のパターンシード値３８３、複数の検証コード３９３をまとめて検証データ３９４と呼ぶ。
【００７７】
オフライン認証支援サーバ３０１を構成する各構成要素は、オフライン認証支援サーバ２０１の各構成要素とほぼ同じ機能を有している。ただし、ユーザ認証支援アプリケーション３０１ｃ２は、ＯＳ３０１ｃ１上で動作する、パターンシード値３８３および検証コード３９４を生成してそれをオフライン認証クライアント３５１に伝達するためのアプリケーションソフトウェアである。
【００７８】
オフライン認証クライアント３５１は、オフラインユーザ認証システム３００において、ユーザからの認証要求に応答してオフラインの状態で認証を実施する構成要素であり、ＯＳ３５１ｃ１、検証データ要求モジュール３５１ｃ２、シード値選択・パターン生成モジュール３５１ｃ３、検証コード特定・認証モジュール３５１ｃ４などがインストールされた端末であり、以下の構成要素を除き、オフライン認証クライアント２５１とほぼ同じ機能を有している。
【００７９】
シード値選択・パターン生成モジュール３５１ｃ３は、ＯＳ３５１ｃ１とともに動作する、検証データ３９４に含まれる複数のパターンシード値３８３から１つのパターンシード値３８３を所定の選択規則によって選択し、それに基づいてパターン要素列３９０を生成し、さらに提示パターン３９１を生成するプログラムである。
【００８０】
［第２の実施形態に係るオフラインユーザ認証システム３００の機能ブロック構成］
図４は、本発明の一実施形態に係るオフラインユーザ認証システム３００のブロック図である。図４は、図２に示したハードウェア構成のオフラインユーザ認証システム３００を、ソフトウェアとハードウェア資源とが協働して実施される情報処理の観点から表現した図であり、当該情報処理を機能ブロックの単位で表わした図である。図４において、オフライン認証支援サーバ３０１は、パスワード記憶部３０２、要求受付手段３０３、パターンシード値発生手段３２１、パターンシード値送信手段３２２、検証コード生成手段３０６、検証コード送信手段３１１から構成される。これらの機能ブロックは、ユーザ認証支援アプリケーション３０１ｃ２の必要部分がＯＳ３０１ｃ１の必要部分とともに記憶装置３０１ｃからＲＡＭ３０１ｂ上に読み込まれ、それらのソフトウェアがＣＰＵ３０１ａによって実行されることによって、ＲＡＭ３０１ｂ、記憶装置３０１ｃ、ユーザＩ／Ｆ３０１ｄ、外部／ネットワークＩ／Ｆ３０１ｅなどのハードウェア要素とも適宜協働して実現されるものである。
【００８１】
パスワード記憶部３０２、要求受付手段３０３は、オフラインユーザ認証システム２００の対応する構成要素と同様の構成である。パターンシード値発生手段３２１は、ユーザＩＤとともにに提示パターン３９１を規定する値であるパターンシード値３８３を所定の発生規則により複数複数発生させる構成要素であり、ＣＰＵ３０１ａ、ＲＡＭ３０１ｂなどがソフトウェアと協働することによって実現される機能ブロックである。パターンシード値送信手段３２２は、発生させられた複数のパターンシード値３８３を、オフライン認証クライアント３５１に記憶させるために出力する構成要素であり、ＣＰＵ３０１ａ、ＲＡＭ３０１ｂ、ユーザＩ／Ｆ３０１ｄあるいは外部／ネットワークＩ／Ｆ３０１ｅなどがソフトウェアと協働することによって実現される機能ブロックである。複数のパターンシード値３８３は、ネットワークを通じてオフライン認証クライアント３５１に送信されてもよいし、記憶媒体に出力されてもよい。検証コード生成手段３０６は、要求受付手段３０３を通じて入力された入力ユーザＩＤ３８１および発生させられたそれぞれのパターンシード値３８３に基づいて所定のパターン要素列生成規則により生成されるパターン要素列３９０から構成される提示パターン３９１のそれぞれに対応させて、当該入力ユーザＩＤ３８１に関連付けられたワンタイムパスワード導出ルール３０２ｂをそれぞれの提示パターン３９１に含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コード３９３を複数生成する構成要素であり、ＣＰＵ３０１ａ、ＲＡＭ３０１ｂなどがソフトウェアと協働することによって実現される機能ブロックである。検証コード送信手段３１１は、オフラインユーザ認証システム２００の対応する構成要素と同様の構成である。
【００８２】
オフライン認証クライアント３５１は、ユーザＩＤ入力手段３５２、検証データ要求手段３５３、パターン表示手段３５５、ワンタイムパスワード入力手段３５６、検証データ記憶部３６１、検証コード受信手段３６２、検証コード特定手段３６４、ユーザ認証手段３６５、パターンシード値受信手段３７１、パターンシード値選択手段３７２、パターン要素列生成手段３７３から構成される。これらの機能ブロックは、ブラウザアプリケーション３０１ｃ２の必要部分、提示パターン生成モジュール３５１ｃ３がＯＳ３５１ｃ１の必要部分とともに記憶装置３５１ｃからＲＡＭ３５１ｂ上に読み込まれ、それらのソフトウェアがＣＰＵ３５１ａによって実行されることによって、ＲＡＭ３５１ｂ、記憶装置３５１ｃ、ユーザＩ／Ｆ３５１ｄ、外部／ネットワークＩ／Ｆ３５１ｅなどのハードウェア要素とも適宜協働して実現されるものである。オフライン認証クライアント３５１がネットワークを通じてオフライン認証支援サーバ３０１から検証データ３９４を取得しない場合は、検証データ要求手段３５３は必ずしも必要ない。
【００８３】
ユーザＩＤ入力手段３５２、検証データ要求手段３５３は、オフラインユーザ認証システム２００の対応する構成要素と同様の構成である。パターン表示手段３５５は、パターン要素列生成手段３７３によって生成されたパターン要素列３９０のパターン要素を所定パターン３９１ｐに配列して提示パターン３９１を生成し、それを画面に表示させる構成要素であり、ＣＰＵ３５１ａ、ＲＡＭ３５１ｂ、ユーザＩ／Ｆ３５１ｄなどがソフトウェアと協働することによって実現される機能ブロックである。ワンタイムパスワード入力手段３５６は、オフラインユーザ認証システム２００の対応する構成要素と同様の構成である。検証データ記憶部３６１は、あるユーザのための複数のパターンシード値３８３および複数の検証コード３９３から構成される検証データ３９４を、当該ユーザのユーザＩＤ３０２ａと関連付けて記憶する構成要素であり、ＣＰＵ３０１ａ、ＲＡＭ３０１ｂ、記憶装置３０１ｃなどがソフトウェアと協働することによって実現される機能ブロックである。検証データ記憶部３６１が記憶する検証データ３９４は、パターンシード値受信手段３７１および検証コード受信手段３６２から取得され、それらを取得したときに使用されているユーザＩＤがユーザＩＤ３０２ａとして対応付けられて記憶される。検証データ記憶部３６１は、複数のユーザの検証データ３９４を記憶することができる。検証コード受信手段３６２は、オフラインユーザ認証システム２００の対応する構成要素と同様の構成である。検証コード特定手段３６４は、パターンシード値選択手段３７２で選択されたパターンシード値３８３に対応する検証コード３９３を特定する構成要素であり、ＣＰＵ３５１ａ、ＲＡＭ３５１ｂ、記憶装置３５１ｃなどがソフトウェアと協働することによって実現される機能ブロックである。ユーザ認証手段３６５は、オフラインユーザ認証システム２００の対応する構成要素と同様の構成である。パターンシード値受信手段３７１は、オフライン認証支援サーバ３０１で生成された検証データ３９４を構成する複数のパターンシード値３８３を取得する構成要素であり、ＣＰＵ３５１ａ、ＲＡＭ３５１ｂ、ユーザＩ／Ｆ３５１ｄまたは外部／ネットワークＩ／Ｆ３５１ｅなどがソフトウェアと協働することによって実現される機能ブロックである。複数のパターンシード値３８３は、オフライン認証支援サーバ３０１からネットワークを通じて取得してもよく、それを記憶した記憶媒体から取得してもよい。パターンシード値選択手段３７２は、入力ユーザＩＤ３８１に等しいユーザＩＤがユーザＩＤ３０２ａに記憶されているかどうかを確認し、入力ユーザＩＤ３８１に等しいユーザＩＤがあった場合は、そのユーザＩＤに関連付けられている検証データ３９４に含まれる複数のパターンシード値３８３の中から所定の規則により１つを選択することによって、入力ユーザＩＤ３８１とともに提示パターン３９１を生成するパターンシード値３８３を選択する構成要素であり、ＣＰＵ３５１ａ、ＲＡＭ３５１ｂ、記憶装置３５１ｃなどがソフトウェアと協働することによって実現される機能ブロックである。パターン要素列生成手段３７３は、パターンシード値選択手段３７２によって選択されたパターンシード値３８３と入力ユーザＩＤ３８１とに基づいて所定の生成規則により提示パターン３９１に含まれるパターン要素を生成する構成要素であり、ＣＰＵ３５１ａ、ＲＡＭ３５１ｂなどがソフトウェアと協働することによって実現される機能ブロックである。
【００８４】
本実施形態においては、オフラインユーザ認証システム３００は、具体的にはオフラインユーザ認証システム２００と同様の構成を有するものとする。
【００８５】
［オフラインユーザ認証システム３００の動作］
これから、オフラインユーザ認証システム３００の動作について説明する。オフラインユーザ認証システム３００の動作は、大きく２つの段階に分けることができる。１つの段階は、オフラインユーザ認証システム３００が、ユーザ認証を受けることになるユーザのための検証データ３９４を生成させて、それをあらかじめ取得して記憶する段階である。もう１つの段階は、ユーザ認証を受けようとするユーザに対して、オフライン認証クライアント３５１が、あらかじめ記憶した検証データ３９４に基づいてユーザ認証を実施する段階である。
【００８６】
［オフラインユーザ認証システム３００の動作（１）−検証データ取得］
まず、検証データ３９４を取得する動作フローについて説明する。図７は、オフラインユーザ認証システム３００の検証データ取得の動作フロー図である。まず、オフラインユーザ認証システム３００で認証を受けることになるユーザは、そのユーザＩＤ３０２ａとパスワードであるワンタイムパスワード導出ルール３０２ｂとをあらかじめオフライン認証支援サーバ３０１に入力して登録しておく。パスワード記憶部３０２は、そのユーザのユーザＩＤ３０２ａとワンタイムパスワード導出ルール３０２ｂとをお互いに関連付けてユーザの認証に先立ってあらかじめ記憶する（ステップＳ３０１）。
【００８７】
次に、認証を受けようとするユーザは、ユーザＩＤ入力手段３５２を通じて、オフライン認証クライアント３５１において、ユーザＩＤ入力手段３５２により自分のユーザＩＤを入力ユーザＩＤ３８１として入力する（ステップＳ３０３）。次に、オフライン認証クライアント３５１は、検証データ要求手段３５３により、入力された入力ユーザＩＤ３８１を含む検証データ３９４の生成と出力の要求をオフライン認証支援サーバ３０１に送信する（ステップＳ３０５）。次に、オフライン認証支援サーバ３０１は、要求受付手段３０３により、オフライン認証クライアント３５１から送信された入力ユーザＩＤ３８１を含む検証データ要求を受信する（ステップＳ３０７）。次に、オフライン認証支援サーバ３０１は、パターンシード値発生手段３２１により、パターンシード値３８３を所定の発生規則によって複数発生させる（ステップＳ３０９）。所定の発生規則は、典型的には、所定の範囲内の乱数を発生させることである。図１０には、パターンシード値３８３として、１６進数で表わした「２８４Ｅ１７・・・３９Ｄ０」などが例示されている。パターンシード値３８３は、例えば、８バイトのような所定のビット長の数字列で表わすことができ、この場合、当該所定の範囲とは、１６進数で「００００００００００００００００」から「ＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦ」の範囲となる。従って、同一の入力ユーザＩＤ３０２ａに対しては、当該所定の範囲の任意の数字列をパターンシード値３８３とすることができるため、最大で当該所定の範囲の数だけ異なる提示パターン３９１を生成することが可能となる。
【００８８】
次に、オフライン認証支援サーバ３０１は、検証コード生成手段３０６により、入力ユーザＩＤ３８１および発生させられたそれぞれのパターンシード値３８３に基づいて所定のパターン要素列生成規則により生成されるパターン要素列３９０から構成される提示パターン３９１のそれぞれに対応させて、当該入力ユーザＩＤ３８１に関連付けられたワンタイムパスワード導出ルール３０２ｂをそれぞれの提示パターン３９１に含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コード３９３を複数生成する。（ステップＳ３１１）。次に、オフライン認証支援サーバ３０１は、パターンシード値送信手段３２２により、発生した複数のパターンシード値３８３をオフライン認証クライアント３５１に送信する（ステップＳ３１３）。次に、オフライン認証クライアント３５１は、パターンシード値受信手段３７１により、オフライン認証支援サーバ３０１から送信された複数のパターンシード値３８３を受信し、それを入力ユーザＩＤ３８１とともに検証データ記憶部３６１に記憶する（ステップＳ３１５）。次に、オフライン認証支援サーバ３０１は、検証コード送信手段３１１により、発生した複数の検証コード３９３をオフライン認証クライアント３５１に送信する（ステップＳ３１７）。次に、オフライン認証クライアント３５１は、検証コード受信手段３６２により、オフライン認証支援サーバ３０１から送信された複数の検証コード３９３を受信し、それを検証データ記憶部３６１に記憶する（ステップＳ３１９）。以上の動作によって、入力ユーザＩＤ３８１に対応した検証データ３９４がオフライン認証クライアント３５１に記憶され、オフラインユーザ認証の準備が完了したことになる。
【００８９】
なお、検証データ要求は、オフライン認証支援サーバ３０１に直接入力することもできる。この場合、オフライン認証支援サーバ３０１に入力ユーザＩＤ３８１を含む検証データ要求を入力し、それに対応する検証データ３９４を記憶媒体などに出力させる。オフライン認証クライアント３５１は、当該記憶媒体から検証データ３９４を読み込ませて記憶させる。
【００９０】
［オフラインユーザ認証システム３００の動作（２）−ユーザ認証］
次に、オフラインでのユーザ認証の動作フローについて説明する。図８は、オフラインユーザ認証システム３００のオフラインユーザ認証の動作フロー図である。まず、認証を受けようとするユーザは、ユーザＩＤ入力手段３５２を通じて、そのユーザＩＤをオフライン認証クライアント３５１に入力する（ステップＳ３５１）。次に、オフライン認証クライアント３５１は、パターンシード値選択手段３７２により、入力ユーザＩＤ３８１が、検証データ記憶部３６１に記憶されているユーザＩＤ３０２ａに含まれていることを確認する（ステップＳ３５３）。次に、オフライン認証クライアント３５１は、パターンシード値選択手段３７２により、入力ユーザＩＤ３８１に関連付けられた複数のパターンシード値３８３の中から、所定の規則により１つのパターンシード値３８３を選択する（ステップＳ３５５）。次に、オフライン認証クライアント３５１は、検証コード特定手段３６２により、入力ユーザＩＤ３８１に関連付けられた複数の検証コード３９３の中から、ステップＳ３５５で選択されたパターンシード値３８３に対応する検証コードを特定する（ステップＳ３５７）。次に、オフライン認証クライアント３５１は、パターン要素列生成手段３７３により、ステップＳ３５１で入力されている入力ユーザＩＤ３８１と、ステップＳ３５５で選択されたパターンシード値３８３とに基づいて所定のパターン要素列生成規則により提示パターン３９１を構成するパターン要素列３９０を生成する（ステップＳ３５９）。所定のパターン要素列生成規則とは、入力ユーザＩＤ３８１とパターンシード値３８３との組み合わせに対してユニークに決定されるパターン要素列であって、そのパターン要素列だけからは元の入力ユーザＩＤ３８１とパターンシード値３８３とを推定することが極めて困難なものを発生させる規則であって、典型的には、以下に述べるような、入力ユーザＩＤ３８１とパターンシード値３８３との組み合わせを一種の初期値とした暗号化演算によるものである。図１１は、提示パターン３９１の生成方法の概念図である。ここでは、「Ｕｓｅｒ」という入力ユーザＩＤ３８１と「２８４Ｅ１７・・・３９Ｄ０」というパターンシード値３８３とに基づいてパターン要素列３９０が生成される。そのために、まず、入力ユーザＩＤ３８１とパターンシード値３８３の組み合わせから、所定の数字列を一意的に生成する。図１１の第１段及び第２段に示した例では、それぞれ１６進数で表わした入力ユーザＩＤ３８１とパターンシード値３８３とを結合して所定の数字列を生成している。入力ユーザＩＤ３８１とパターンシード値３８３との組み合わせ方としては、他には、加算、減算、排他的論理和、などのあらゆる演算を使用して組み合わせることができる。次に、その所定の数字列に対して暗号化演算を実施して、所定のビット長のビット列３８４を生成する。ここでは、所定のビット長は、６４の数字からなる提示パターン３９１を生成するために十分な情報量である２５６ビットである。暗号化演算としては、演算結果から元の数字列を求めることが事実上不可能なものであればよく、ハッシュ関数演算、共通鍵暗号化演算、などを使用することができる。例えば、ハッシュ関数としてＳＨＡ２５６を使用して、その所定の数字列を暗号化すると、２５６ビットのビット列３８４を生成することができる。また、共通鍵暗号化演算としてＡＥＳを使用して、その所定の数字列から鍵を生成し、その鍵によってあらかじめ適当に設定した２５６ビットの数字列を暗号化すると、２５６ビットのビット列３８４を生成することができる。また、それらのハッシュ関数演算と共通鍵暗号化演算とを組み合わせることもできる。なお、図１１に示したビット列３８４「０１１１００１０１１００１１０１・・・１１０１０」の値は説明のための例示であり、正確なＳＨＡ２５６演算の結果を示したものではない。次に、２５６ビットのビット列３８４を７７桁の十進数に変換し、そこから６４桁の数字を抽出してパターン要素列３９０とする。なお、図１１に示したパターン要素列３９０「３８０６４６５５・・・１０１７」の値は説明のための例示であり、正確な変換・抽出の結果を示したものではない。６４桁の数字の抽出は、不要な上位ビット列の削除、不要な下位ビット列の削除、割算などのあらゆる演算を使用することができる。次に、オフライン認証クライアント３５１は、パターン表示手段３６３により、生成されたパターン要素列３９０のそれぞれのパターン要素を４つの４×４のマトリクスからなるパターンのそれぞれの要素の位置に配置した提示パターン３９１の画像を生成し、それをオフライン認証クライアント３５１の画面に表示させる（ステップＳ３６１）。
【００９１】
次に、オフライン認証クライアント３５１は、ワンタイムパスワード入力手段３５６により、ワンタイムパスワード３９２の入力を受け付ける（ステップＳ３６３）。次に、オフライン認証クライアント３５１は、ユーザ認証手段３６５により、入力されたワンタイムパスワード３９２に検証コード３９３の生成時に使用したものと同じ一方向関数演算を実施したものと特定された検証コード３９３とを比較し、それらが等しければ、当該ユーザのユーザ認証を成功させる（ステップＳ３６３）。
【００９２】
なお、以上に説明した動作フローにおいて、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの動作フロー上の矛盾が生じない限りにおいて、動作フローを自由に変更することができる。
【００９３】
以上に説明してきた各実施形態は、本発明を説明するための例示であり、本発明はこれらの実施形態に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
【図面の簡単な説明】
【００９４】
【図１】本発明の一実施形態に係るオフラインユーザ認証システム２００のハードウェア構成図である。
【図２】本発明の一実施形態に係るオフラインユーザ認証システム３００のハードウェア構成図である。
【図３】本発明の一実施形態に係るオフラインユーザ認証システム２００のブロック図である。
【図４】本発明の一実施形態に係るオフラインユーザ認証システム３００のブロック図である。
【図５】本発明の一実施形態に係るオフラインユーザ認証システム２００の検証データ取得の動作フロー図である。
【図６】本発明の一実施形態に係るオフラインユーザ認証システム２００のオフラインユーザ認証の動作フロー図である。
【図７】本発明の一実施形態に係るオフラインユーザ認証システム３００の検証データ取得の動作フロー図である。
【図８】本発明の一実施形態に係るオフラインユーザ認証システム３００のオフラインユーザ認証の動作フロー図である。
【図９】本発明の一実施形態に係るオフラインユーザ認証システム２００における提示パターンの生成方法の概念図である。
【図１０】本発明の一実施形態に係るオフラインユーザ認証システム３００における提示パターンの生成方法の概念図である。
【図１１】本発明の一実施形態に係るオフラインユーザ認証システム２００における提示パターンの生成方法の概念図であり、図１０の続きである。
【図１２】マトリクス認証方式におけるワンタイムパスワード導出ルールの概念図である。
【図１３】マトリクス認証方式におけるワンタイムパスワード入力方法の概念図である。
【図１４】オフラインユーザ認証システム２００、３００におけるＷｉｎｄｏｗｓログオン認証画面のイメージ図である。
【図１５】従来のマトリクス認証方式のオンラインユーザ認証システム１００のブロック図である。
【図１６】従来のマトリクス認証方式のオンラインユーザ認証システム１００における提示パターンの生成方法の概念図である。
【符号の説明】
【００９５】
１００  オンラインユーザ認証システム
１０１  オンライン認証サーバ
１０２  パスワード記憶部
１０２ａ  ユーザＩＤ
１０２ｂ  ワンタイムパスワード導出ルール
１０３  ユーザＩＤ受信手段
１０４  パターン発生手段
１０５  パターン送信手段
１０６  検証コード生成手段
１０７  ワンタイムパスワード受信手段
１０８  ユーザ認証手段
１５１  認証要求クライアント
１５２  ユーザＩＤ入力手段
１５３  ユーザＩＤ送信手段
１５４  パターン受信手段
１５５  パターン表示手段
１５６  ワンタイムパスワード入力手段
１５７  ワンタイムパスワード送信手段
１８１  入力ユーザＩＤ
１９０  パターン要素列
１９１  提示パターン
１９１ｐ  所定パターン
１９２  ワンタイムパスワード
１９３  検証コード
１９６  キーボード
２００  オフラインユーザ認証システム
２０１  オフライン認証支援サーバ
２０１ａ  ＣＰＵ
２０１ｂ  ＲＡＭ
２０１ｃ  記憶装置
２０１ｃ１  ＯＳ
２０１ｃ２  ユーザ認証支援アプリケーション
２０１ｄ  ユーザインターフェース（Ｉ／Ｆ）
２０１ｅ  外部／ネットワークインターフェース（Ｉ／Ｆ）
２０２  パスワード記憶部
２０２ａ  ユーザＩＤ
２０２ｂ  ワンタイムパスワード導出ルール
２０３  要求受付手段
２０４  パターン発生手段
２０５  パターン送信手段
２０６  検証コード生成手段
２１１  検証コード送信手段
２５１  オフライン認証クライアント
２５１ａ  ＣＰＵ
２５１ｂ  ＲＡＭ
２５１ｃ  記憶装置
２５１ｃ１  ＯＳ
２５１ｃ２  検証データ要求モジュール
２５１ｃ３  提示パターン選択・生成モジュール
２５１ｃ４  検証コード特定・認証モジュール
２５１ｄ  ユーザインターフェース（Ｉ／Ｆ）
２５１ｅ  外部／ネットワークインターフェース（Ｉ／Ｆ）
２５２  ユーザＩＤ入力手段
２５３  検証データ要求手段
２５４  パターン受信手段
２５５  パターン表示手段
２５６  ワンタイムパスワード入力手段
２６２  検証コード受信手段
２６３  パターン選択手段
２６４  検証コード特定手段
２６５  ユーザ認証手段
２８１  入力ユーザＩＤ
２８４  ビット列
２９０  パターン要素列
２９１  提示パターン
２９１ｐ  所定パターン
２９２  ワンタイムパスワード
２９３  検証コード
２９４  検証データ
２９６  キーボード
２９７Ａ  ログオン認証画面
２９７Ｂ  ログオン認証画面
３００  オフラインユーザ認証システム
３０１  オフライン認証支援サーバ
３０１ａ  ＣＰＵ
３０１ｂ  ＲＡＭ
３０１ｃ  記憶装置
３０１ｃ１  ＯＳ
３０１ｃ２  ユーザ認証支援アプリケーション
３０１ｄ  ユーザインターフェース（Ｉ／Ｆ）
３０１ｅ  外部／ネットワークインターフェース（Ｉ／Ｆ）
３０２  パスワード記憶部
３０２ａ  ユーザＩＤ
３０２ｂ  ワンタイムパスワード導出ルール
３０３  要求受付手段
３０４  パターン発生手段
３０５  パターン送信手段
３０６  検証コード生成手段
３１１  検証コード送信手段
３５１  オフライン認証クライアント
３５１ａ  ＣＰＵ
３５１ｂ  ＲＡＭ
３５１ｃ  記憶装置
３５１ｃ１  ＯＳ
３５１ｃ２  検証データ要求モジュール
３５１ｃ３  シード値選択・パターン生成モジュール
３５１ｃ４  検証コード特定・認証モジュール
３５１ｄ  ユーザインターフェース（Ｉ／Ｆ）
３５１ｅ  外部／ネットワークインターフェース（Ｉ／Ｆ）
３５２  ユーザＩＤ入力手段
３５３  検証データ要求手段
３５５  パターン表示手段
３５６  ワンタイムパスワード入力手段
３６２  検証コード受信手段
３６４  検証コード特定手段
３６５  ユーザ認証手段
３７１  パターンシード値受信手段
３７２  パターンシード値選択手段
３７３  パターン要素列生成手段
３８１  入力ユーザＩＤ
３８３  パターンシード値
３８４  ビット列
３９０  パターン要素列
３９１  提示パターン
３９１ｐ  所定パターン
３９２  ワンタイムパスワード
３９３  検証コード
３９４  検証データ
３９６  キーボード
３９７Ａ  ログオン認証画面
３９７Ｂ  ログオン認証画面
【図１】
2007272364.tif 000003
【図２】
2007272364.tif 000004
【図３】
2007272364.tif 000005
【図４】
2007272364.tif 000006
【図５】
2007272364.tif 000007
【図６】
2007272364.tif 000008
【図７】
2007272364.tif 000009
【図８】
2007272364.tif 000010
【図９】
2007272364.tif 000011
【図１０】
2007272364.tif 000012
【図１１】
2007272364.tif 000013
【図１２】
2007272364.tif 000014
【図１３】
2007272364.tif 000015
【図１４】
2007272364.tif 000016
【図１５】
2007272364.tif 000017
【図１６】
2007272364.tif 000018
【手続補正書】
【提出日】平成19年4月11日(2007.4.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムであって、
前記ユーザのユーザＩＤおよびパスワードを管理するオフライン認証支援サーバと、
前記オフライン認証支援サーバとネットワークで接続可能であるがネットワーク非接続状態であるオフラインで前記ユーザの認証を行う端末であるオフライン認証クライアントと、を有し、
前記オフライン認証クライアントは、
前記ユーザから前記ユーザＩＤの入力を受け付けるユーザＩＤ入力手段と、
入力された前記ユーザＩＤを前記オフライン認証支援サーバに前記ネットワークを通じて送信するユーザＩＤ送信手段と、
を有し、
前記オフライン認証支援サーバは、
あらかじめ前記ユーザのユーザＩＤと当該ユーザのワンタイムパスワード導出ルールとをお互いに関連付けて記憶するパスワード記憶部と、
前記提示パターンを構成するパターン要素の集合であるパターン要素列を所定の発生規則により複数発生するパターン発生手段と、
認証を受けようとするユーザのユーザＩＤを前記オフライン認証クライアントから前記ネットワークを通じて受信するユーザＩＤ受信手段と、
前記パターン発生手段で発生させられた複数の前記パターン要素列のそれぞれによって構成される前記提示パターンのそれぞれに対応させて、受信した前記ユーザＩＤに関連付けられた前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードを複数生成する検証コード生成手段と、
発生させられた複数の前記パターン要素列を、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信するパターン送信手段と、
生成された複数の前記検証コードを、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信する検証コード送信手段と、
を有し、
前記オフライン認証クライアントは、
前記オフライン認証支援サーバから送信された複数の前記パターン要素列を前記ネットワークを通じて受信するパターン受信手段と、
受信した複数の前記パターン要素列を記憶するパターン記憶部と、
前記オフライン認証支援サーバから送信された複数の前記検証コードを前記ネットワークを通じて受信する検証コード受信手段と、
受信した複数の前記検証コードを記憶する検証コード記憶部と、
前記パターン記憶部が記憶する複数の前記パターン要素列のうちの１つのパターン要素列を前記ユーザの認証に使用するために選択するパターン選択手段と、
選択された前記パターン要素列に対応する検証コードを特定する検証コード特定手段と、
選択された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるパターン表示手段と、
前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるワンタイムパスワード入力手段と、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるユーザ認証手段と、
をさらに有することを特徴とするオフラインユーザ認証システム。
【請求項２】
請求項１に記載のオフラインユーザ認証システムにおいて、
前記パターン選択手段は、次に前記オフライン認証支援サーバに接続されて前記パターン要素列および前記検証コードを新しく受信して記憶するまでは、記憶された複数の前記パターン要素列のうち、前記ユーザの認証に使用するためにすでに選択されたものは選択しないように構成されているオフラインユーザ認証システム。
【請求項３】
請求項１または２に記載のオフラインユーザ認証システムにおいて、
前記パターン要素列および前記検証コードは前記オフライン認証クライアント内に記憶される際に暗号化されるオフラインユーザ認証システム。
【請求項４】
請求項１から３のいずれか１項に記載のオフラインユーザ認証システムにおいて、
前記オフライン認証支援サーバは、前記オフライン認証クライアントが前記オフライン認証支援サーバとの間の前記ネットワークへの前記ユーザＩＤを使用したユーザ認証が成功してオンラインの状態になった直後に動作させられるオフラインユーザ認証システム。
【請求項５】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムであって、
前記ユーザのユーザＩＤおよびパスワードを管理するオフライン認証支援サーバと、
前記オフライン認証支援サーバとネットワークで接続可能であるがネットワーク非接続状態であるオフラインで前記ユーザの認証を行う端末であるオフライン認証クライアントと、を有し、
前記オフライン認証クライアントは、
前記ユーザから前記ユーザＩＤの入力を受け付けるユーザＩＤ入力手段と、
入力された前記ユーザＩＤを前記オフライン認証支援サーバに前記ネットワークを通じて送信するユーザＩＤ送信手段と、
を有し、
前記オフライン認証支援サーバは、
あらかじめ前記ユーザのユーザＩＤと当該ユーザのワンタイムパスワード導出ルールとをお互いに関連付けて記憶するパスワード記憶部と、
前記ユーザＩＤと組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値を所定の発生規則により複数発生するパターンシード値発生手段と、
認証を受けようとするユーザのユーザＩＤを前記オフライン認証クライアントから前記ネットワークを通じて受信するユーザＩＤ受信手段と、
受信した前記ユーザＩＤおよび発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させて、当該ユーザＩＤに関連付けられた前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードを複数生成する検証コード生成手段と、
発生させられた複数の前記パターンシード値を、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信するパターンシード値送信手段と、
生成された複数の前記検証コードを、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信する検証コード送信手段と、
を有し、
前記オフライン認証クライアントは、
前記オフライン認証支援サーバから送信された複数の前記パターンシード値を前記ネットワークを通じて受信するパターンシード値受信手段と、
受信した複数の前記パターンシード値を記憶するパターンシード値記憶部と、
前記オフライン認証支援サーバから送信された複数の前記検証コードを前記ネットワークを通じて受信する検証コード受信手段と、
受信した複数の前記検証コードを記憶する検証コード記憶部と、
前記パターンシード値記憶部が記憶する複数の前記パターンシード値のうちの１つのパターンシード値を前記ユーザの認証に使用するために選択するパターンシード値選択手段と、
選択された前記パターンシード値に対応する検証コードを特定する検証コード特定手段と、
入力された前記ユーザＩＤと選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するパターン要素列生成手段と、  生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるパターン表示手段と、
前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるワンタイムパスワード入力手段と、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるユーザ認証手段と、
をさらに有することを特徴とするオフラインユーザ認証システム。
【請求項６】
請求項５に記載のオフラインユーザ認証システムにおいて、
前記パターンシード値選択手段は、次に前記オフライン認証支援サーバに接続されて前記パターンシード値および前記検証コードを新しく受信して記憶するまでは、記憶された複数の前記パターンシード値のうち、前記ユーザの認証に使用するためにすでに選択されたものは選択しないように構成されているオフラインユーザ認証システム。
【請求項７】
請求項５または６に記載のオフラインユーザ認証システムにおいて、
前記パターンシード値および前記検証コードは前記オフライン認証クライアント内に記憶される際に暗号化されるオフラインユーザ認証システム。
【請求項８】
請求項５から７のいずれか１項に記載のオフラインユーザ認証システムにおいて、
前記オフライン認証支援サーバは、前記オフライン認証クライアントが前記オフライン認証支援サーバとの間の前記ネットワークへの前記ユーザＩＤを使用したユーザ認証が成功してオンラインの状態になった直後に動作させられるオフラインユーザ認証システム。
【請求項９】
請求項５に記載のオフラインユーザ認証システムにおいて、
前記パターン要素列生成手段の前記パターン要素列生成規則は、所定の初期キャラクター文字列に対して、前記ユーザＩＤおよび前記パターンシード値に基づく値を鍵として共通鍵暗号化アルゴリズム演算を適用した結果に基づいて、前記パターン要素列を生成するものであるオフラインユーザ認証システム。
【請求項１０】
請求項５に記載のオフラインユーザ認証システムにおいて、
前記パターン要素列生成手段の前記パターン要素列生成規則は、前記ユーザＩＤおよび前記パターンシード値に基づく値にハッシュ関数演算を適用した結果に基づいて前記パターン要素列を生成するものであるオフラインユーザ認証システム。
【請求項１１】
請求項１から１０のいずれか１項に記載のオフラインユーザ認証システムにおいて、
前記ワンタイムパスワード導出ルールは、前記提示パターンに含まれるパターン要素のそれぞれの位置と、当該それぞれのパターン要素の位置が選択される順番との組み合わせであるオフラインユーザ認証システム。
【請求項１２】
請求項１１に記載のオフラインユーザ認証システムにおいて、
前記ワンタイムパスワード導出ルールは、前記提示パターンに含まれる選択されるパターン要素のそれぞれの位置および当該提示パターンに基づかないで入力されるキャラクターのそれぞれと、当該それぞれのパターン要素の位置および当該それぞれのキャラクターが選択あるいは入力される順番との組み合わせであるオフラインユーザ認証システム。
【請求項１３】
請求項１１または１２に記載のオフラインユーザ認証システムにおいて、
前記提示パターンに含まれるそれぞれのパターン要素は０から９までの数字および記号から選択されるオフラインユーザ認証システム。
【請求項１４】
請求項１３に記載のオフラインユーザ認証システムにおいて、
前記提示パターンに含まれるそれぞれのパターン要素は０から９までの数字から選択されるオフラインユーザ認証システム。
【請求項１５】
請求項１４に記載のオフラインユーザ認証システムにおいて、
前記提示パターンに含まれる複数のパターン要素が配列される前記所定パターンは、前記パターン要素を縦ｍ個×横ｎ個のそれぞれの位置に全体が方形を形成するように配置したマトリクスを含むオフラインユーザ認証システム。
【請求項１６】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとし、前記ユーザのユーザＩＤおよびパスワードを管理するオフライン認証支援サーバと、前記オフライン認証支援サーバとネットワークで接続可能であるオフライン認証クライアントにおいてネットワーク非接続状態であるオフラインで前記ユーザの認証を行うオフラインユーザ認証方法であって、
前記オフライン認証支援サーバが、あらかじめ前記ユーザのユーザＩＤと当該ユーザのワンタイムパスワード導出ルールとをお互いに関連付けて記憶するステップと、
前記オフライン認証クライアントが、認証を受けようとするユーザのユーザＩＤの入力を受け付けるステップと、
前記オフライン認証クライアントが、入力された前記ユーザＩＤを前記オフライン認証支援サーバに前記ネットワークを通じて送信するステップと、
前記オフライン認証支援サーバが、認証を受けようとするユーザのユーザＩＤを前記オフライン認証クライアントから前記ネットワークを通じて受信するステップと、
前記オフライン認証支援サーバが、前記提示パターンを構成するパターン要素の集合であるパターン要素列を所定の発生規則により複数発生するステップと、
前記オフライン認証支援サーバが、発生させられた複数の前記パターン要素列のそれぞれによって構成される前記提示パターンのそれぞれに対応させて、受信した前記ユーザＩＤに関連付けられた前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードを複数生成するステップと、
前記オフライン認証支援サーバが、発生させられた複数の前記パターン要素列を、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信するステップと、
前記オフライン認証支援サーバが、生成された複数の前記検証コードを、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信するステップと、  前記オフライン認証クライアントが、前記オフライン認証支援サーバから送信された複数の前記パターン要素列を前記ネットワークを通じて受信するステップと、
前記オフライン認証クライアントが、受信した複数の前記パターン要素列を記憶するステップと、
前記オフライン認証クライアントが、前記オフライン認証支援サーバから送信された複数の前記検証コードを前記ネットワークを通じて受信するステップと、
前記オフライン認証クライアントが、受信した複数の前記検証コードを記憶するステップと、
前記オフライン認証クライアントが、記憶された複数の前記パターン要素列のうちの１つのパターン要素列を前記ユーザの認証に使用するために選択するステップと、
前記オフライン認証クライアントが、選択された前記パターン要素列に対応する検証コードを特定するステップと、
前記オフライン認証クライアントが、選択された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
前記オフライン認証クライアントが、前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を前記ユーザから受け付けるステップと、
前記オフライン認証クライアントが、入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるステップと、
を有することを特徴とするオフラインユーザ認証方法。
【請求項１７】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとし、前記ユーザのユーザＩＤおよびパスワードを管理するオフライン認証支援サーバと、前記オフライン認証支援サーバとネットワークで接続可能であるオフライン認証クライアントにおいてネットワーク非接続状態であるオフラインで前記ユーザの認証を行うオフラインユーザ認証方法であって、
前記オフライン認証支援サーバが、あらかじめ前記ユーザのユーザＩＤと当該ユーザのワンタイムパスワード導出ルールとをお互いに関連付けて記憶するステップと、
前記オフライン認証クライアントが、認証を受けようとするユーザのユーザＩＤの入力を受け付けるステップと、
前記オフライン認証クライアントが、入力された前記ユーザＩＤを前記オフライン認証支援サーバに前記ネットワークを通じて送信するステップと、
前記オフライン認証支援サーバが、前記ユーザＩＤと組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値を所定の発生規則により複数発生するステップと、
前記オフライン認証支援サーバが、認証を受けようとするユーザのユーザＩＤを前記オフライン認証クライアントから前記ネットワークを通じて受信するステップと、
前記オフライン認証支援サーバが、受信した前記ユーザＩＤおよび発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させて、当該ユーザＩＤに関連付けられた前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に前記一方向関数演算を実施したものである検証コードを複数生成するステップと、
前記オフライン認証支援サーバが、発生させられた複数の前記パターンシード値を、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信するステップと、
前記オフライン認証支援サーバが、生成された複数の前記検証コードを、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信するステップと、  前記オフライン認証クライアントが、前記オフライン認証支援サーバから送信された複数の前記パターンシード値を前記ネットワークを通じて受信するステップと、
前記オフライン認証クライアントが、受信した複数の前記パターンシード値を記憶するステップと、
前記オフライン認証クライアントが、前記オフライン認証支援サーバから送信された複数の前記検証コードを前記ネットワークを通じて受信するステップと、
前記オフライン認証クライアントが、受信した複数の前記検証コードを記憶するステップと、
前記オフライン認証クライアントが、記憶された複数の前記パターンシード値のうちの１つのパターンシード値を前記ユーザの認証に使用するために選択するステップと、
前記オフライン認証クライアントが、選択された前記パターンシード値に対応する検証コードを特定するステップと、
前記オフライン認証クライアントが、入力された前記ユーザＩＤと選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するステップと、
前記オフライン認証クライアントが、生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
前記オフライン認証クライアントが、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を前記ユーザから受け付けるステップと、
前記オフライン認証クライアントが、入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるステップと、
を有することを特徴とするオフラインユーザ認証方法。
【請求項１８】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムにおける、オフラインで前記ユーザの認証を行う端末であるオフライン認証クライアントであって、
所定の発生規則によりあらかじめ複数発生させられた前記提示パターンを構成するパターン要素の集合であるパターン要素列の入力をあらかじめ受け付けるパターン入力手段と、
入力された複数の前記パターン要素列をあらかじめ記憶するパターン記憶部と、
前記あらかじめ入力された複数の前記パターン要素列のそれぞれによって構成される前記提示パターンのそれぞれに対応させてあらかじめ複数生成された、認証を受けようとするユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付ける検証コード入力手段と、
入力された複数の前記検証コードをあらかじめ記憶する検証コード記憶部と、
認証を受けようとするユーザから前記ユーザＩＤの入力を受け付けるユーザＩＤ入力手段と、
前記パターン記憶部があらかじめ記憶している複数の前記パターン要素列のうちの１つのパターン要素列を前記ユーザの認証に使用するために選択するパターン選択手段と、
選択された前記パターン要素列に対応する検証コードを特定する検証コード特定手段と、
選択された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるパターン表示手段と、
認証を受けようとする前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるワンタイムパスワード入力手段と、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるユーザ認証手段と、
を有することを特徴とするオフライン認証クライアント。
【請求項１９】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムにおける、オフラインで前記ユーザの認証を行う端末であるオフライン認証クライアントであって、
所定の発生規則によりあらかじめ複数発生させられた、前記ユーザＩＤと組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値の入力をあらかじめ受け付けるパターンシード値入力手段と、
入力された複数の前記パターンシード値をあらかじめ記憶するパターンシード値記憶部と、
認証を受けようとするユーザの前記ユーザＩＤおよび前記あらかじめ発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させてあらかじめ複数生成された、当該認証を受けようとするユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付ける検証コード入力手段と、
入力された複数の前記検証コードをあらかじめ記憶する検証コード記憶部と、
認証を受けようとするユーザから前記ユーザＩＤの入力を受け付けるユーザＩＤ入力手段と、
前記パターンシード値記憶部があらかじめ記憶している複数の前記パターンシード値のうちの１つのパターンシード値を前記ユーザの認証に使用するために選択するパターンシード値選択手段と、
選択された前記パターンシード値に対応する検証コードを特定する検証コード特定手段と、
入力された前記ユーザＩＤと選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するパターン要素列生成手段と、  生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるパターン表示手段と、
前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるワンタイムパスワード入力手段と、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるユーザ認証手段と、
を有することを特徴とするオフライン認証クライアント。
【請求項２０】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムにおける、オフラインで前記ユーザの認証を行う端末であるオフライン認証クライアントで認証を行うオフラインユーザ認証方法であって、
所定の発生規則によりあらかじめ複数発生させられた前記提示パターンを構成するパターン要素の集合であるパターン要素列の入力をあらかじめ受け付けるステップと、
入力された複数の前記パターン要素列をあらかじめ記憶するステップと、
前記あらかじめ入力された複数の前記パターン要素列のそれぞれによって構成される前記提示パターンのそれぞれに対応させてあらかじめ複数生成された、認証を受けようとするユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付けるステップと、
入力された複数の前記検証コードをあらかじめ記憶するステップと、
認証を受けようとするユーザから前記ユーザＩＤの入力を受け付けるステップと、
あらかじめ記憶された複数の前記パターン要素列のうちの１つのパターン要素列を前記ユーザの認証に使用するために選択するステップと、
選択された前記パターン要素列に対応する検証コードを特定するステップと、
選択された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
認証を受けようとする前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるステップと、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるステップと、
を有することを特徴とするオフラインユーザ認証方法。
【請求項２１】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムにおける、オフラインで前記ユーザの認証を行う端末であるオフライン認証クライアントで認証を行うオフラインユーザ認証方法であって、
所定の発生規則によりあらかじめ複数発生させられた、前記ユーザＩＤと組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値の入力をあらかじめ受け付けるステップと、
入力された複数の前記パターンシード値をあらかじめ記憶するステップと、
認証を受けようとするユーザの前記ユーザＩＤおよび前記あらかじめ発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させてあらかじめ複数生成された、当該認証を受けようとするユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付けるステップと、
入力された複数の前記検証コードをあらかじめ記憶するステップと、
認証を受けようとするユーザから前記ユーザＩＤの入力を受け付けるステップと、
あらかじめ記憶された複数の前記パターンシード値のうちの１つのパターンシード値を前記ユーザの認証に使用するために選択するステップと、
選択された前記パターンシード値に対応する検証コードを特定するステップと、
入力された前記ユーザＩＤと選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するステップと、
生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるステップと、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるステップと、
を有することを特徴とするオフラインユーザ認証方法。
【請求項２２】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムにおいて、オフラインのコンピュータにオフラインユーザ認証方法を実行させるオフラインユーザ認証プログラムであって、
前記オフラインユーザ認証方法は、
所定の発生規則によりあらかじめ複数発生させられた前記提示パターンを構成するパターン要素の集合であるパターン要素列の入力をあらかじめ受け付けるステップと、
入力された複数の前記パターン要素列をあらかじめ記憶するステップと、
前記あらかじめ入力された複数の前記パターン要素列のそれぞれによって構成される前記提示パターンのそれぞれに対応させてあらかじめ複数生成された、認証を受けようとするユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付けるステップと、
入力された複数の前記検証コードをあらかじめ記憶するステップと、
認証を受けようとするユーザから前記ユーザＩＤの入力を受け付けるステップと、
あらかじめ記憶された複数の前記パターン要素列のうちの１つのパターン要素列を前記ユーザの認証に使用するために選択するステップと、
選択された前記パターン要素列に対応する検証コードを特定するステップと、
選択された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
認証を受けようとする前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるステップと、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるステップと、
を有することを特徴とするオフラインユーザ認証プログラム。
【請求項２３】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムにおいて、オフラインのコンピュータにオフラインユーザ認証方法を実行させるオフラインユーザ認証プログラムであって、
前記オフラインユーザ認証方法は、
所定の発生規則によりあらかじめ複数発生させられた、前記ユーザＩＤと組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値の入力をあらかじめ受け付けるステップと、
入力された複数の前記パターンシード値をあらかじめ記憶するステップと、
認証を受けようとするユーザの前記ユーザＩＤおよび前記あらかじめ発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させてあらかじめ複数生成された、当該認証を受けようとするユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付けるステップと、
入力された複数の前記検証コードをあらかじめ記憶するステップと、
認証を受けようとするユーザから前記ユーザＩＤの入力を受け付けるステップと、
あらかじめ記憶された複数の前記パターンシード値のうちの１つのパターンシード値を前記ユーザの認証に使用するために選択するステップと、
選択された前記パターンシード値に対応する検証コードを特定するステップと、
入力された前記ユーザＩＤと選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するステップと、
生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるステップと、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるステップと、
を有することを特徴とするオフラインユーザ認証プログラム。
【請求項２４】
請求項２２または２３に記載のオフラインユーザ認証プログラムにおいて、
当該オフラインユーザ認証プログラムは、ＯＳの起動時に当該ＯＳの設定により呼び出されるログオン認証プログラムの形態であるオフラインユーザ認証プログラム。