(57)【要約】【課題】パスワード漏洩の危険性を減少させたマトリクス認証システムを提供する。【解決手段】認証を受けるユーザに提示パターンを提示し、それに含まれる特定の位置の要素に適用することによりワンタイムパスワードを生成するためのルールをパスワードとするユーザ認証システムであって、認証サーバは、ユーザＩＤと組み合わされて提示パターンをユニークに決定する値であるパターンシード値を発生させて認証要求クライアントに送信し、認証要求クライアントは、入力されたユーザＩＤと受信したパターンシード値とに基づいて、所定のパターン要素列生成規則により提示パターンを生成して表示させ、ユーザからワンタイムパスワードの入力を受け付けて認証サーバに送信し、認証サーバは、提示パターンを再現して検証コードを生成し、それとワンタイムパスワードとを比較してユーザ認証を行う。【選択図】図２
2007264839.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」が、パターンシード値２８３を受信する。次に、認証要求クライアント２５１は、パターン要素列発生手段２６２により、ステップＳ２０３で入力されている入力ユーザＩＤ２８１と、ステップＳ２１３で受信したパターンシード値２８３とに基づいて所定のパターン要素列生成規則により提示パターン２９１を構成するパターン要素列２９０を生成する（ステップＳ２１５）。所定のパターン要素列生成規則とは、入力ユーザＩＤ２８１とパターンシード値２８３との組み合わせに対してユニークに決定されるパターン要素列であって、そのパターン要素列だけからは元の入力ユーザＩＤ２８１とパターンシード値２８３とを推定することが極めて困難なものを発生させる規則であって、典型的には、以下に述べるような、入力ユーザＩＤ２８１とパターンシード値２８３との組み合わせを一種の初期値とした暗号化演算によるものである。図５は、提示パターン２９１の生成方法の概念図である。ここでは、「Ｕｓｅｒ」という入力ユーザＩＤ２８１と「２８４Ｅ１７・・・３９Ｄ０」というパターンシード値２８３とに基づいてパターン要素列２９０が生成される。そのために、まず、入力ユーザＩＤ２８１とパターンシード値２８３の組み合わせから、所定の数字列を一意的に生成する。図５の第１段及び第２段に示した例では、それぞれ１６進数で表わした入力ユーザＩＤ２８１とパターンシード値２８３とを結合して所定の数字列を生成している。入力ユーザＩＤ２８１とパターンシード値２８３との組み合わせ方としては、他には、加算、減算、排他的論理和、などのあらゆる演算を使用して組み合わせることができる。次に、その所定の数字列に対して暗号化演算を実施して、所定のビット長のビット列２８４を生成する。ここでは、所定のビット長は、６４の数字からなる提示パターン２９１を生成するために十分な情報量である２５６ビットである。暗号化演算としては、演算結果から元の数字列を求めることが事実上不可能なものであればよく、ハッシュ関数演算、共通鍵暗号化演算、などを使用することができる。例えば、ハッシュ関数としてＳＨＡ２５６を使用して、その所定の数字列を暗号化すると、２５６ビットのビット列２８４を生成することができる。また、共通鍵暗号化演算としてＡＥＳを使用して、その所定の数字列から鍵を生成し、その鍵によってあらかじめ適当に設定した２５６ビットの数字列を暗号化すると、２５６ビットのビット列２８４を生成することができる。また、それらのハッシュ関数演算と共通鍵暗号化演算とを��み合わせることもできる。なお、図５に示したビット列２８４「０１１１００１０１１００１１０１・・・１１０１０」の値は説明のための例示であり、正確なＳＨＡ２５６演算の結果を示したものではない。次に、２５６ビットのビット列２８４を７７桁の十進数に変換し、そこから６４桁の数字を抽出してパターン要素列２９０とする。なお、図５に示したパターン要素列２９０「３８０６４６５５・・・１０１７」の値は説明のための例示であり、正確な変換・抽出の結果を示したものではない。６４桁の数字の抽出は、不要な上位ビット列の削除、不要な下位ビット列の削除、割算などのあらゆる演算を使用することができる。次に、認証要求クライアント２５１は、パターン表示手段２５５により、パターン要素列２９０のそれぞれのパターン要素を４つの４×４のマトリクスからなるパターンのそれぞれの要素の位置に配置した提示パターン２９１の画像を生成し、それを認証要求クライアント２５１の画面に表示させる（ステップＳ２１７）。Ｗｉｎｄｏｗｓのドメインネットワークへのログイン認証の場合は、図８に示されるように、ログオン認証画面２９７Ａに続いて、提示パターン２９１を含むログオン認証画面２９７Ｂが表示させられる。
【００５６】
次に、認証を受けようとするユーザは、認証要求クライアント２５１の画面に表示された提示パターン２９１の特定の位置に表示されたパターン要素を選択したり、提示パターン２９１に基づかない数字などのキャラクターを入力したりすることを順番に実施することによって、自分のワンタイムパスワード導出ルール２０２ｂを提示パターン２９１に適用した結果であるワンタイムパスワード２９２を認証要求クライアント２５１に入力する。認証要求クライアント２５１は、ワンタイムパスワード入力手段２５６により、ワンタイムパスワード２９２の入力を受け付ける（ステップＳ２１９）。次に、認証要求クライアント２５１は、ワンタイムパスワード送信手段２５７により、入力されたワンタイムパスワード２９２を認証サーバ２０１に送信する（ステップＳ２２１）。次に、認証サーバ２０１は、ワンタイムパスワード受信手段２０７により、認証要求クライアント２５１から送信されたワンタイムパスワード２９２を受信する（ステップＳ２２３）。
【００５７】
次に、認証サーバ２０１は、検証コード生成手段２０６により、認証要求クライアント２５１から受信した入力ユーザＩＤ２８１および認証要求クライアント２５１に送信したパターンシード値２８３に基づいて、所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンに、当該入力ユーザＩＤ２８１に対応するワンタイムパスワード導出ルール２０２ｂを適用した結果である検証コード２９３を生成する（ステップＳ２２５）。ここでの所定のパターン要素列生成規則は、認証要求クライアント２５１において、ステップＳ２１５でパターン要素列生成手段２６２がパターン要素列を発生させたパターン要素列生成規則と全く同じ規則である。従って、検証コード２９３は、入力ユーザＩＤ２８１のユーザに関連付けられた正しいワンタイムパスワード導出ルール２０２ｂが、その入力ユーザＩＤ２８１と正しいパターンシード値２８３とに基づく正しい提示パターン２９１に適用された結果である正しいワンタイムパスワード２９２と同じ値となる。次に、認証サーバ２０１は、ユーザ認証手段２０８により、受信したワンタイムパスワード２９２と生成した検証コード２９３とを比較し、それらが等しければ、当該ユーザのユーザ認証を成功させる（ステップＳ２２７）。認証が成功すると、以下のように、ユーザ認証の利用形態に応じたサービスが許可されることになる。Ｗｅｂ上のコンテンツ等の使用許可のためのユーザ認証の場合は、コンテンツへのアクセスが許可されたり、アプリケーションの利用が許可されたりする。Ｗｉｎｄｏｗｓのドメインネットワークへのログオン認証の場合は、認証サーバ２０１は、認証結果をＷｉｎｄｏｗｓのドメインコントローラに伝達し、Ｗｉｎｄｏｗｓネットワークへの参加を認めさせる。認証サーバ２０１が、ＳＳＬ−ＶＰＮゲートウェイの形態であれば、当該ＳＳＬ−ＶＰＮへのアクセスが許可される。
【００５８】
なお、以上に説明した動作フローにおいて、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの動作フロー上の矛盾が生じない限りにおいて、動作フローを自由に変更することができる。例えば、ステップＳ２２５の認証サーバ２０１における検証コード２９３の生成などは、入力ユーザＩＤ２８１とパターンシード値２８３が利用できるようになるステップＳ２０９の直後で実行されてもよい。また、ステップＳ２０７の認証サーバ２０１における入力ユーザＩＤ２８１の受信は、ステップＳ２２５の認証サーバ２０１における検証コード２９３の生成の前であれば、現在の順番より後に実行されてもよい。
【００５９】
以上に説明してきた各実施形態は、本発明を説明するための例示であり、本発明はこれらの実施形態に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
【図面の簡単な説明】
【００６０】
【図１】本発明の一実施形態に係るユーザ認証システム２００のハードウェア構成図である。
【図２】本発明の一実施形態に係るユーザ認証システム２００のブロック図である。
【図３】本発明の一実施形態に係るユーザ認証システム２００の動作フロー図である。
【図４】本発明の一実施形態に係るユーザ認証システム２００の動作フロー図であり、図３に示した動作フローの続きである。
【図５】本発明の一実施形態に係るユーザ認証システム２００における提示パターンの生成方法の概念図である。
【図６】マトリクス認証方式におけるワンタイムパスワード導出ルールの概念図である。
【図７】マトリクス認証方式におけるワンタイムパスワード入力方法の概念図である。
【図８】ユーザ認証システム２００におけるＷｉｎｄｏｗｓログオン認証画面のイメージ図である。
【図９】従来のマトリクス認証方式のユーザ認証システム１００のブロック図である。
【図１０】従来のマトリクス認証方式のユーザ認証システム１００における提示パターンの生成方法の概念図である。
【符号の説明】
【００６１】
１００  ユーザ認証システム
１０１  認証サーバ
１０２  パスワード記憶部
１０２ａ  ユーザＩＤ
１０２ｂ  ワンタイムパスワード導出ルール
１０３  ユーザＩＤ受信手段
１０４  パターン発生手段
１０５  パターン送信手段
１０６  検証コード生成手段
１０７  ワンタイムパスワード受信手段
１０８  ユーザ認証手段
１５１  認証要求クライアント
１５２  ユーザＩＤ入力手段
１５３  ユーザＩＤ送信手段
１５４  パターン受信手段
１５５  パターン表示手段
１５６  ワンタイムパスワード入力手段
１５７  ワンタイムパスワード送信手段
１８１  入力ユーザＩＤ
１９０  パターン要素列
１９１  提示パターン
１９１ｐ  所定パターン
１９２  ワンタイムパスワード
１９３  検証コード
１９６  キーボード
２００  ユーザ認証システム
２０１  認証サーバ
２０１ａ  ＣＰＵ
２０１ｂ  ＲＡＭ
２０１ｃ  記憶装置
２０１ｃ１  ＯＳ
２０１ｃ２  ユーザ認証アプリケーション
２０１ｄ  ユーザインターフェース（Ｉ／Ｆ）
２０１ｅ  ネットワークインターフェース（Ｉ／Ｆ）
２０２  パスワード記憶部
２０２ａ  ユーザＩＤ
２０２ｂ  ワンタイムパスワード導出ルール
２０３  ユーザＩＤ受信手段
２０６  検証コード生成手段
２０７  ワンタイムパスワード受信手段
２０８  ユーザ認証手段
２１１  パターンシード値発生手段
２１２  パターンシード値送信手段
２５１  認証要求クライアント
２５１ａ  ＣＰＵ
２５１ｂ  ＲＡＭ
２５１ｃ  記憶装置
２５１ｃ１  ＯＳ
２５１ｃ２  ブラウザアプリケーション
２５１ｃ３  提示パターン生成モジュール
２５１ｄ  ユーザインターフェース（Ｉ／Ｆ）
２５１ｅ  ネットワークインターフェース（Ｉ／Ｆ）
２５２  ユーザＩＤ入力手段
２５３  ユーザＩＤ送信手段
２５５  パターン表示手段
２５６  ワンタイムパスワード入力手段
２５７  ワンタイムパスワード送信手段
２６１  パターンシード値受信手段
２６２  パターン要素列生成手段
２８１  入力ユーザＩＤ
２８３  パターンシード値
２８４  ビット列
２９０  パターン要素列
２９１  提示パターン
２９１ｐ  所定パターン
２９２  ワンタイムパスワード
２９３  検証コード
２９６  キーボード
２９７Ａ  ログオン認証画面
２９７Ｂ  ログオン認証画面
【図１】
2007264839.tif 000003
【図２】
2007264839.tif 000004
【図３】
2007264839.tif 000005
【図４】
2007264839.tif 000006
【図５】
2007264839.tif 000007
【図６】
2007264839.tif 000008
【図７】
2007264839.tif 000009
【図８】
2007264839.tif 000010
【図９】
2007264839.tif 000011
【図１０】
2007264839.tif 000012