説明

ユーザ認証システム、およびその方法

【課題】パスワード漏洩の危険性を減少させたマトリクス認証システムを提供する。
【解決手段】認証を受けるユーザに提示パターンを提示し、それに含まれる特定の位置の要素に適用することによりワンタイムパスワードを生成するためのルールをパスワードとするユーザ認証システムであって、認証サーバは、ユーザIDと組み合わされて提示パターンをユニークに決定する値であるパターンシード値を発生させて認証要求クライアントに送信し、認証要求クライアントは、入力されたユーザIDと受信したパターンシード値とに基づいて、所定のパターン要素列生成規則により提示パターンを生成して表示させ、ユーザからワンタイムパスワードの入力を受け付けて認証サーバに送信し、認証サーバは、提示パターンを再現して検証コードを生成し、それとワンタイムパスワードとを比較してユーザ認証を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はユーザ認証システムに関し、より詳しくは、所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのパスワードとするユーザ認証システムに関する。
【背景技術】
【0002】
ユーザ認証システムにおいて、固定パスワードより高いセキュリティを有する方式として、ユーザ認証のために1回しか使用することができない使い捨てパスワードであるワンタイムパスワードを使用するシステムが多く使用されるようになってきた。ワンタイムパスワードには、認証サーバと同期したワンタイムパスワード発生ルールによりワンタイムパスワードを生成するトークンを使用する方式や、認証サーバからクライアントに毎回変化するチャレンジという値が送られ、クライアントがそれに対してパスワードを所定のルールで適用したレスポンスを返すチャレンジ・レスポンス方式などがある。トークンは、それを手元の有しているユーザを確実に特定できるが、トークンを持ち歩く必要があり、またトークンの費用や、トークンを紛失した際の安全性に問題がある。一方、チャレンジ・レスポンス方式においては、トークンを使用する必要がないという簡便さはあるものの、類推されやすい固定パスワードを使用してワンタイムパスワードを発生させるので、パスワード入力時の盗み見などに弱いという問題や、クライアントにレスポンスを発生させるための専用のソフトウェアを導入する必要があるという問題などがある。
【0003】
近年、そのような従来のチャレンジ・レスポンス方式の問題を改善した方式として、いわゆるマトリクス認証方式のユーザ認証システムが開発された(例えば、特許文献1、非特許文献1参照)。マトリクス認証においては、乱数を所定パターンに配列したマトリクス状の提示パターンを認証を受けようとするユーザに提示し、当該提示パターンに含まれるパターン要素(それぞれの乱数の数字)に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールが当該ユーザのパスワードとされる。そして、サーバとクライアントで同じ提示パターンを共有し、クライアントにおいてパスワードであるワンタイムパスワード導出ルールを提示パターンに適用した結果であるワンタイムパスワードと、サーバにおいてパスワードであるワンタイムパスワード導出ルールを提示パターンに適用した結果である検証コードとを比較することによって、パスワードを直接比較することなく、ユーザ認証が実施される。マトリクス認証においては、パスワードであるワンタイムパスワード導出ルールは、マトリクス上で選択される要素の位置と順番であって、イメージとして記憶しやすいものであり、また、パスワード入力時に盗み見されてもパスワードを特定することはできないという特徴がある。
【0004】
図9は、従来の代表的なマトリクス認証を使用したユーザ認証システム100のブロック図である。従来のマトリクス認証システムにおいては、提示パターン191を生成するための情報がパターン要素列190として認証サーバ101から認証要求クライアント151に送信されていた(例えば、特許文献1参照)。ユーザ認証システム100は、大きく、ユーザの認証を行う認証サーバ101と、ユーザが認証を要求する端末である認証要求クライアント151とから構成される。認証サーバ101は、ワンタイムパスワード導出ルール記憶部102と、ユーザID受信手段103と、パターン発生手段104と、パターン送信手段105と、検証コード生成手段106と、ワンタイムパスワード受信手段107と、ユーザ認証手段108とから構成される。認証要求クライアント151は、ユーザID入力手段152と、ユーザID送信手段153と、パターン受信手段154と、パターン表示手段155と、ワンタイムパスワード入力手段156と、ワンタイムパスワード送信手段157とから構成される。
【0005】
認証要求クライアント151は、ユーザID入力手段152と、ユーザID送信手段153と、パターン受信手段154と、パターン表示手段155と、ワンタイムパスワード入力手段156と、ワンタイムパスワード送信手段157とから構成される。
【0006】
認証サーバ101において、ワンタイムパスワード導出ルール記憶部102は、ユーザID102aおよびワンタイムパスワード導出ルール102bをお互いに関連付けてあらかじめ記憶している。ユーザID受信手段103は、認証を受けようとするユーザのユーザID181を認証要求クライアント151から受信する。パターン発生手段104は、マトリクス状の提示パターン191に含まれるパターン要素の配列であるパターン要素列190を擬似乱数などの所定の発生規則により発生する。パターン送信手段105は、発生させられたパターン要素列190を認証要求クライアント151に送信する。
【0007】
認証を受けようとするユーザが、認証要求クライアント151において、キーボードなどのユーザID入力手段152から自己のユーザID181を入力する。ユーザID送信手段153が入力されたユーザID181を認証サーバ101に送信する。認証サーバ101において、ユーザID受信手段103がユーザID181を受信する。パターン発生手段104が、マトリクス状の提示パターン191を構成する乱数の列であるパターン要素列190を所定の発生規則により発生する。パターン送信手段105は、発生させられたパターン要素列190を認証要求クライアント151に送信する。認証要求クライアント151において、パターン受信手段154がパターン要素列154を受信する。パターン表示手段155が、受信されたパターン要素列190に含まれるそれぞれのパターン要素を所定パターン191pに配列して提示パターン191を生成し、それを画面に表示させる。
【0008】
図10は、従来のユーザ認証システム100における提示パターン191の生成方法の概念図である。図10には、0から9までの1桁の数字をパターン要素とし、それぞれのパターン要素を4つの4×4のマトリクスからなるパターンのそれぞれの要素の位置に配置した提示パターン191が例示されている。認証サーバ101では、提示パターン191に含まれるパターン要素である64個の1桁の数字を乱数発生アルゴリズムにより発生し、それらを並べたパターン要素列190を認証要求クライアント151に送信する。認証要求クライアント151は、認証サーバ101からパターン要素列190を受信し、それに含まれるそれぞれのパターン要素を所定パターン191pの形状、ここでは4つの4×4のマトリクスのそれぞれの要素の位置に順番に配列することによって提示パターン191を生成し、それを画面に表示させる。
【0009】
図7は、マトリクス認証方式におけるワンタイムパスワード入力方法の概念図である。ユーザは、提示パターン191に対してワンタイムパスワード導出ルール102bを適用することによって、マトリクス上の所定の位置に表示された数字を順番に抽出し、ワンタイムパスワード入力手段156から入力する。また、提示パターン191に基づかないで、数字を入力することも可能である。すなわち、固定パスワードをワンタイムパスワードに含めることもできる。それらの数字の入力は、マウス、タッチパネルなどのポインティングデバイスやキーボード196で行われる。図7において破線で示した矢印と丸は、提示パターン191に基づくワンタイムパスワードをキーボード196から入力することを表わしている。ワンタイムパスワード送信手段157は、入力されたワンタイムパスワード192を認証サーバ101に送信する。認証サーバ101において、ワンタイムパスワード受信手段107がワンタイムパスワード192を受信する。検証コード生成手段106が、受信したユーザID181に関連付けられたワンタイムパスワード導出ルール102bを、送信したパターン要素列190によって構成される提示パターンのパターン要素に適用した結果である検証コードを生成する。ユーザ認証手段108が、受信したワンタイムパスワード192と検証コードとを比較し、それらが等しい場合に当該ユーザの認証を成功させる。
【0010】
【特許文献1】国際公開WO03/069490号パンフレット(第10頁第2−3行)
【非特許文献1】タイズ大西&ASSOCIATES IT調査会議,「ベーステクロノジーに学ぶ“モバイル経営術”」,IT SELECT,株式会社メディアセレクト,2002年2月1日,p.56-p.60
【発明の開示】
【発明が解決しようとする課題】
【0011】
従来のマトリクス認証システムにおいては、認証サーバから認証要求クライアントに、マトリクス形状の提示パターンを構成するパターン要素の列であるパターン要素列が送信される。ここで、ネットワーク盗聴などによってこのパターン要素列の情報が悪意の第三者に取得されると、それに基づいて提示パターンを推測することが可能となる。そして、その提示パターンに対するレスポンスであるワンタイムパスワードが1回盗聴されただけでは、ワンタイムパスワードのそれぞれの要素を提示パターンのパターン要素に1対1に対応付けることができないためパスワードであるワンタイムパスワード導出ルールが1つに特定されることはないが、パターン要素列とそれに対するワンタイムパスワードとが複数回盗聴されると、ワンタイムパスワードのそれぞれの要素が対応する提示パターンのパターン要素の位置を絞ることが可能となるため、パスワードであるワンタイムパスワード導出ルールを特定することが可能となる。従って、そのような第三者のネットワーク盗聴によるパスワード漏洩の危険性を減少させたマトリクス認証システムが必要とされていた。
【課題を解決するための手段】
【0012】
本発明は上記の課題に鑑みてなされたものであり、以下のような特徴を有している。すなわち本発明は、所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのパスワードとするユーザ認証システムであって、認証サーバと認証要求クライアントとを有し、認証サーバは、ユーザIDと組み合わされて提示パターンをユニークに決定する値であるパターンシード値を所定の発生規則により発生させて認証要求クライアントに送信し、認証要求クライアントは、入力されたユーザIDと受信したパターンシード値とに基づいて、所定のパターン要素列生成規則により提示パターンを生成して表示させ、ユーザから、提示パターンに含まれるパターン要素にワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けて認証サーバに送信し、認証サーバは、受信したユーザIDおよび送信したパターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンに含まれるパターン要素に当該ユーザIDに対応するワンタイムパスワード導出ルールを適用した結果である検証コードを生成し、受信したワンタイムパスワードと検証コードとを比較することによってユーザの認証を実行することを特徴とする。
【0013】
本発明は、前記所定のパターン要素列生成規則が、所定の初期キャラクター文字列に対して、ユーザIDおよびパターンシード値に基づく値を鍵として共通鍵暗号化アルゴリズム演算を適用した結果に基づいて、パターン要素列を生成するように構成できる。
【0014】
本発明は、前記所定のパターン要素列生成規則が、ユーザIDおよびパターンシード値に基づく値にハッシュ関数演算を適用した結果に基づいてパターン要素列を生成するように構成できる。
【0015】
本発明は、認証要求クライアントが、ハッシュ化されたワンタイムパスワードを認証サーバに送信し、認証サーバが、ハッシュ化された検証コードを使用してユーザの認証を実行する構成できる。
【0016】
本発明は、前記ワンタイムパスワード導出ルールが、提示パターンに含まれる選択されるパターン要素のそれぞれの位置と、当該それぞれのパターン要素の位置が選択される順番との組み合わせとすることや、あるいは、提示パターンに含まれる選択されるパターン要素のそれぞれの位置および当該提示パターンに基づかないで入力されるキャラクターのそれぞれと、当該それぞれのパターン要素の位置および当該それぞれのキャラクターが選択あるいは入力される順番との組み合わせとすることであるように構成できる。
【0017】
本発明は、前記提示パターンに含まれるそれぞれのパターン要素が、0から9までの数字および記号から選択されることや、あるいは、0から9までの数字から選択されることであるように構成できる。
【0018】
本発明は、前記提示パターンに含まれる複数のパターン要素が配列される前記所定パターンが、前記パターン要素を縦m個×横n個のそれぞれの位置に全体が方形を形成するように配置したマトリクスを含むように構成できる。
【0019】
上記あるいは特許請求の範囲に記載の発明において、サーバ、クライアントなどの用語は、装置の具体的形態や具体的呼称を限定するものではなく、その一般的な機能を備えた装置を表わすためのものである。1つの構成要素が有する機能が2つ以上の物理的構成によって実現されてもよく、2つ以上の構成要素が有する機能が1つの物理的構成によって実現されてもよい。システムの発明は、それぞれの構成要素の有する機能が逐次的に実行される方法の発明として把握することもできるし、その逆も成り立つ。方法の発明においては、各ステップは記載された順序に実行されるものに限定されるものではなく、全体としての機能が矛盾なく実行され得る限りにおいて、自由な順序でそれを実行することができる。これらの発明は、所定のハードウェアと協働して所定の機能を実現させるプログラムとしても成立し、それを記録した記録媒体としても成立する。また本発明は、搬送波上に具現化されたコンピュータ・データ信号であって、そのプログラムのコードを備えたものとしても成立しうる。
【発明の効果】
【0020】
本発明は、認証を受けるユーザに提示パターンを提示し、それに含まれる特定の位置の要素に適用することによりワンタイムパスワードを生成するためのルールをパスワードとするユーザ認証システムであって、認証サーバは、ユーザIDと組み合わされて提示パターンをユニークに決定する値であるパターンシード値を発生させて認証要求クライアントに送信し、認証要求クライアントは、入力されたユーザIDと受信したパターンシード値とに基づいて、所定のパターン要素列生成規則により提示パターンを生成して表示させ、ユーザからワンタイムパスワードの入力を受け付けて認証サーバに送信し、認証サーバは、提示パターンを再現して検証コードを生成し、それとワンタイムパスワードとを比較してユーザ認証を行うので、ネットワーク盗聴などによってパターンシード値やワンタイムパスワードが悪意の第三者に取得されたとしても、パターン要素列生成規則や入力ユーザIDが分からない限り、パターンシード値から提示パターンを再現することができないため、ワンタイムパスワードからパスワードを特定することができないという効果を有する。
【0021】
さらに本発明は、前記所定のパターン要素列生成規則が、所定の初期キャラクター文字列に対して、ユーザIDおよびパターンシード値に基づく値を鍵として共通鍵暗号化アルゴリズム演算を適用した結果に基づいて、パターン要素列を生成するものとすることができるため、パターンシード値から提示パターンを推測することが事実上不可能であるという効果を有する。
【0022】
さらに本発明は、前記所定のパターン要素列生成規則が、ユーザIDおよびパターンシード値に基づく値にハッシュ関数演算を適用した結果に基づいてパターン要素列を生成するものとすることができるため、パターンシード値から提示パターンを推測することが事実上不可能であるという効果を有する。
【発明を実施するための最良の形態】
【0023】
[本発明に係るユーザ認証方法]
これから図面を参照して本発明の実施形態に係るユーザ認証システム200の説明を行う。図面においては、従来のユーザ認証システム100と本発明に係るユーザ認証システム200との間で対応する構成要素に関しては、付している参照番号の下2桁は同じ番号としている。図1はハードウェア構成図、図2はブロック図、図3および4は動作フロー図である。まず、本発明に係るユーザ認証方法の概要について説明する。本発明に係るユーザ認証方法は、上述したような、チャレンジ・レスポンス方式の認証方法の一種であるマトリクス認証である。本発明に係るユーザ認証方法では、所定パターンに配列した複数のパターン要素を認証要求クライアント251において認証を受けるユーザに提示パターン291として提示し、当該提示パターン291に含まれる特定の位置のパターン要素に対してユーザが適用することによりワンタイムパスワード292を生成するためのワンタイムパスワード導出ルール202bを当該ユーザのパスワードとするものである。認証要求クライアント251においてユーザに提示される提示パターン291を生成する際に使用される情報であるパターンシード値283は、認証サーバ201において生成され、認証要求クライアント251に送信される。提示パターン291は、パターンシード値283とユーザIDとに基づいて生成される。認証要求クライアント251において入力されたワンタイムパスワード292は、認証要求クライアント251から認証サーバ201に送信され、認証サーバ201は、当該ユーザのユーザIDと送信したパターンシード値283とに基づいて提示パターンを再現し、それに当該ユーザのパスワードであるワンタイムパスワード導出ルール202bを適用することによって検証コード293を生成する。そして認証サーバ201は、認証要求クライアント251から送信されたワンタイムパスワード292が検証コード293とを比較し、それらが等しければ当該ユーザに対する認証を成功させる。
【0024】
[提示パターンとパターン要素]
提示パターンとは、パターン要素を所定パターンに配列したものである。所定パターンとしては、縦m個×横n個のそれぞれの位置に全体が方形を形成するように配置したマトリクス、そのようなマトリクスを複数並べたもの、などが典型的であるが、その他に任意の図形の形状とすることができる。本明細書では、そのような典型的なマトリクス形状以外の形状の提示パターンを使用した場合も、マトリクス認証方式と呼ぶことにする。所定パターンとしては、規則的な形状や印象的な形状が、ユーザの記憶に残りやすく、従ってユーザがパスワードであるワンタイムパスワード導出ルール202bを記憶しやすいために好適である。
【0025】
パターン要素とは、提示パターン内において所定パターンを構成するように所定位置に配置される要素であり、好適には0から9までの1桁の数字であるが、他に、アルファベット、記号、などの任意のキャラクターとすることができる。なお、記号としては、PCの標準のキーボードに割り当てられている「+」、「−」、「*」、「=」、「_」、「!」、「?」、「#」、「$」、「&」などの記号が特に好適である。キャラクターとして、図形、イラスト、写真などの図柄を使用することもできる。好適には、同じパターン要素は、提示パターン内において、複数個表示される。このようにすると、パスワードであるワンタイムパスワード導出ルール202bと、ワンタイムパスワード導出ルール202bを提示パターンに適用した結果であるワンタイムパスワード292とは多対1の対応となり、ワンタイムパスワード292の入力時に自動的に一方向化がなされることになる。すなわち、ワンタイムパスワード292の入力時に、自動的にハッシュ関数演算と同様の処理がなされることになり、そのため、1つのワンタイムパスワード292だけからは、提示パターンが特定されていたとしても、ワンタイムパスワード導出ルール202bを特定することはできない。
【0026】
本実施例では、図7などに示すような、0から9までの1桁の数字をパターン要素とし、それぞれのパターン要素を4つの4×4のマトリクスからなる所定パターン291pに配列したものを提示パターン291とする。なお、携帯電話機などのように画面の面積が小さい場合は、4×4のマトリクスの数を3つなどに減少させた提示パターンを使用すると好適である。
【0027】
[パターン要素列]
パターン要素列290は、提示パターン291を生成するために所定パターン291pに配置する要素の内容を表わすデータであり、典型的には、その提示パターン291に含まれるすべてのパターン要素を順番に並べたものである。パターン要素列290は、提示パターン291が生成される前に生成される。なお、パターン要素列290は、パターン要素が順番に並べられた1つの文字列でなければならないというものではなく、1つの提示パターン291に含まれるすべてのパターン要素の情報を含むデータを意味するものである。従って、パターン要素列290に含まれるそれぞれのパターン要素を提示パターン内のそれぞれの位置に対応付けられる限り、パターン要素列290に含まれるパターン要素の順番は自由である。またパターン要素列290は、複数のデータに分割されていても構わない。本発明に係るユーザ認証システム200においては、パターン要素列290は、認証要求クライアント251の内部で生成されて、その中で提示パターン291の生成に使用されるのみであって、パターン要素列290がネットワークを通じて送信されることはない。なお、従来のユーザ認証システム100においては、パターン要素列190は、認証サーバ101内で発生させられた後、認証サーバ101から認証要求クライアント151にネットワークを通じて送信される。
【0028】
[ワンタイムパスワード導出ルール]
ワンタイムパスワード導出ルール202bは、提示パターン291に含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワード292を生成するためのルールであり、ユーザのパスワードとして機能するデータである。パターン要素に対して適用するルールとは、典型的には、どの位置のパターン要素をどの順番で選択するのかということである。この場合、ワンタイムパスワード導出ルール202bは、提示パターン291に含まれる選択されるパターン要素のそれぞれの位置と、当該それぞれのパターン要素が選択される順番との組み合わせの情報である。またワンタイムパスワード導出ルール202bは、提示パターン291、391に基づかないで入力される数字などのキャラクターの情報を含んでいてもよく、この場合、ワンタイムパスワード導出ルール202bは、提示パターン291に含まれる選択されるパターン要素のそれぞれの位置および当該提示パターン291に基づかないで入力されるキャラクターのそれぞれと、当該それぞれのパターン要素の位置および当該それぞれのキャラクターが選択あるいは入力される順番との組み合わせの情報である。
【0029】
図6に典型的なワンタイムパスワード導出ルール202bの構造を示す。本実施例では、0から9までの1桁の数字をパターン要素とし、それぞれのパターン要素を4つの4×4のマトリクスからなる所定パターン291pのそれぞれの要素の位置に配置した提示パターン291に対するワンタイムパスワード導出ルール202bが例示されている。図6においては、所定パターン291pのそれぞれの要素の位置は、01から64までの数字で区別されて表示されている。提示パターン291が認証を受けようとするユーザに対して表示されるときには、所定パターン291pのそれぞれの要素の位置には0から9までの1桁の数字が表示される。
【0030】
入力されるワンタイムパスワード292は、好適には、提示パターン291に基づく数字と、それに基づかないで入力される数字とを使用するものである。提示パターン291に含まれるパターン要素の数は64個であるため、提示パターン291に含まれるパターン要素のそれぞれの位置が選択されたことは、それぞれの位置に割り当てられた01から64までの2桁の数字によって表わされる。そして、提示パターン291に基づかないで入力される数字については、最初にそのような数字であることを示す「9」の数字が割り当てられ、次に入力される1桁の数字が割り当てられた、2桁の数字によって表わされる。図6の例では、ワンタイムパスワード292の最初の4つの数字は、提示パターン291の特定の位置のパターン要素を選択することによって入力されるものである。ワンタイムパスワード導出ルール202bのそれらに対応する部分として、それらの位置を表わす数字である「01」、「16」、「29」、「20」がその順番に配置される。選択されたパターン要素は、キーボード296、396やポインティングデバイスによって入力される。ワンタイムパスワード292のその次の2つの数字は、提示パターン291に基づかないで、キーボード296などから入力されるものである。ワンタイムパスワード導出ルール202bのそれらに対応する部分として、直接入力を表わす「9」の数字の後に、入力される数字である「2」および「9」がそれぞれ付加された「92」、「99」が続いてその順番に配置される。ワンタイムパスワード292のその次の1つの最後の数字は、提示パターン291の特定の位置のパターン要素を選択することによって入力されるものである。ワンタイムパスワード導出ルール202bのそれに対応する部分として、それの位置を表わす数字である「33」が続いて配置され、ワンタイムパスワード導出ルール202bはここで終了する。ワンタイムパスワード導出ルール202bには、それの終了点をユニークに特定するエンドマーク、例えば「00」などの数字をその最後にさらに付加してもよいし、あるいは、ワンタイムパスワード導出ルール202bの全体の長さを示す数値をそれに関連付けていてもよい。
【0031】
[パターンシード値]
パターンシード値283は、入力ユーザID281と組み合わされて1つの提示パターン291に含まれるパターン要素をユニークに決定する値であり、所定の発生規則により所定の範囲内において発生されられた定数である。認証サーバ201が、認証要求クライアント251で入力されたワンタイムパスワードが正しいかどうかを検証するためには、認証要求クライアント251において表示される提示パターンを知る必要がある。従来のユーザ認証システム100においては、認証サーバ101において提示パターンに含まれるパターン要素を発生させ、それを並べてパターン要素列190として認証要求クライアント151に送信していた。しかしそれがネットワーク盗聴などにより悪意の第三者に取得されると、パスワードが推測される可能性が生じることは前述したとおりである。その一方、提示パターン191を認証サーバ101と認証要求クライアント151との間で共有しなければ、認証サーバ101においてワンタイムパスワード192の検証を行うことができない。
【0032】
このような相反する要求に対して、提示パターン291をユニークに決定するが、パターン要素列290そのものではない情報である提示パターン特定情報を認証サーバ201から認証要求クライアント251に送信することが考えられる。そして、認証要求クライアント251においては、認証サーバ201から受信した提示パターン特定情報から所定の規則により提示パターン291を生成することになる。所定の規則とは、例えばハッシュ関数演算などが考えられる。この場合、パターン要素列290そのものはネットワーク上を流れないため、セキュリティが向上する。しかしこのような構成においても、認証要求クライアント251に実装されている、提示パターン291を提示パターン特定情報から生成するアルゴリズムが悪意の第三者によって一旦解析されてしまえば、悪意の第三者がネットワーク盗聴などにより提示パターン特定情報を取得すると、それから提示パターン291を生成することが可能となってしまう。従って、このような提示パターン特定情報を採用したユーザ認証システムにおいても、まだセキュリティは完全とは言えない。
【0033】
本発明においては、認証サーバ201から認証要求クライアント251へは、パターン要素列290そのものは送信されず、それに代えてパターンシード値283が送信される。このパターンシード値283は、認証要求クライアント251においてユーザから入力される入力ユーザID281と組み合わされて提示パターン291をユニークに決定する。すなわち、パターンシード値283は、それだけからは提示パターン291をユニークに決定することはできないが、必然的にユーザが認証要求クライアント251において入力する入力ユーザID281と組み合わせられると提示パターン291をユニークに決定することができる。従って、認証サーバ201から認証要求クライアント251へ送信されるパターンシード値283がネットワーク盗聴などにより悪意の第三者に取得されたとしても、まず、そのパターンシード値283は提示パターン291そのものを表わすものではないため、提示パターン291を推測することはできないし、さらに、たとえ入力ユーザID281とパターンシード値283とから提示パターン291を生成するアルゴリズムが解析されたとしても、入力ユーザID281が分からなければ、提示パターン291を推測することは不可能である。このような構成を採用することによって、本発明は認証要求クライアント251において表示される提示パターン291をネットワーク盗聴によって推測することを極めて困難とすることができ、より高いセキュリティが提供される。
【0034】
パターンシード値283は、典型的には、乱数発生アルゴリズムによって発生させられた所定の範囲内の数値である。パターンシード値283は、所定の範囲内の数値であれば、乱数発生アルゴリズム以外の発生規則、例えば、所定の初期値からの所定値ごとのカウントアップやカウントダウンで発生させられてもよい。
【0035】
[ワンタイムパスワード]
ワンタイムパスワード292は、認証を受けようとするユーザが提示パターン291に対して自己のワンタイムパスワード導出ルール202bを適用することによって生成・入力される使い捨てのパスワードである。図7は、マトリクス認証方式におけるワンタイムパスワード入力方法の概念図である。図7において使用されているワンタイムパスワード導出ルール202bは、図6において示したものと同じである。ユーザは、自己のワンタイムパスワード導出ルール202bに従って、提示パターン291に含まれる所定の位置のパターン要素の選択、および提示パターン291に基づかない所定の数字の入力を所定の順番で実施することによって、ワンタイムパスワード292として「2504290」を生成・入力する。
【0036】
[ユーザ認証システム200のハードウェア構成]
次に、ユーザ認証システム200の構成の説明をする。図1は、本発明の一実施形態に係るユーザ認証システム200のハードウェア構成図である。図1を参照すると、ユーザ認証システム200は、大きく、認証サーバ201と認証要求クライアント251とから構成される。認証サーバ201は、CPU201a、RAM201b、記憶装置201c、ユーザインターフェース(I/F)201d、ネットワークインターフェース(I/F)201eから構成される。記憶装置201cは、その記憶領域にOS201c1、ユーザ認証アプリケーション201c2を記憶し、またその記憶領域にパスワード記憶部202を含む。パスワード記憶部202は、ユーザID202a、ワンタイムパスワード導出ルール202bを記憶する。認証要求クライアント251は、CPU251a、RAM251b、記憶装置251c、ユーザインターフェース(I/F)251d、ネットワークインターフェース(I/F)251eから構成される。記憶装置251cは、その記憶領域にOS251c1、ユーザ認証アプリケーション251c2、提示パターン生成モジュール251c3を記憶する。
【0037】
認証サーバ201は、ユーザ認証システム200において、認証要求クライアント251からのユーザ認証要求に応答して、ユーザの認証を行う構成要素である。認証サーバ201は、OS201c1、ユーザ認証アプリケーション201c2などがインストールされた、サーバとしてのコンピュータなどの形態である。また、認証サーバ201は、SSL−VPNゲートウェイのようなインターネット上に仮想専用線ネットワークを提供するためのゲートウェイ装置などにおけるユーザ認証を提供するハードウェアの形態とすることもできる。CPU201aは、ユーザ認証アプリケーション201c2などをOS201c1上で実行してユーザ認証に関する情報処理を行うプロセッサである。RAM201bは、記憶装置201cに記憶されたソフトウェアがその上に読み込まれるメモリ空間と、読み込まれたソフトウェアがCPU201aによって実行される際に必要となるワークエリア等を提供するメモリである。記憶装置201cは、ソフトウェアやデータなどの情報を記憶・管理する構成要素であり、典型的にはハードディスクドライブなどの形態である。記憶装置201cは、好適には、OS201c1、ユーザ認証アプリケーション201c2のプログラムのファイルを記憶しており、それらのプログラムはRAM201b上に読み出されて実行される。記憶装置201cは、OS201c1、ユーザ認証アプリケーション201c2のプログラムに関しては、それをROMに記憶した形態であってもよい。この場合、そのようなROMはCPU201aなどのプログラム実行要素とともにファームウェアを構成することになる。ユーザI/F201dは、ユーザとの間でデータの入出力を行うための構成要素であり、典型的にはキーボード296、マウスなどのポインティングデバイスからなる入力手段と、画面に情報を表示するディスプレイなどの出力手段と、それらとの間のハードウェアI/Fとから構成される。キーボード296は、テンキー、標準のフルキーボードなど、ワンタイムパスワードを構成するパターン要素の入力ができる限り、任意の形態のものを使用できる。ネットワークI/F201eは、ネットワークに接続して情報の入出力を行うためのI/Fである。
【0038】
OS201c1、ユーザ認証アプリケーション201c2は、それらが組み合わされて形式的には一体のプログラムの形態となっていてもよい。例えば、OS251c1がユーザ認証アプリケーション201c2の機能を包含していてもよい。また、ユーザ認証アプリケーション201c2が、他のアプリケーションに組み込まれていてもよい。また、それらがそれぞれ複数のプログラムに分割されていてもよい。
【0039】
認証サーバ201と認証要求クライアント251とはネットワークで接続される。ネットワークは、好適には、TCP/IPベースのプロトコルで動作するインターネットあるいはイントラネットである。イントラネットにおいて、認証要求クライアント251がクライアント用Windows(登録商標。以下、同じ) OSで動作している場合には、ネットワークはTCP/IPベースのプロトコルで動作するWindowsのドメインネットワークとすることができる。なお、本明細書ではOSとしてWindowsを例示して説明しているが、他のOS、例えば、Mac OS(登録商標)、Linux(登録商標)、Unix(登録商標)などを使用することも可能である。
【0040】
本発明に係る認証方法は、少なくとも以下の2つの利用形態で実施することが可能である。1つの利用形態は、認証要求クライアント251をネットワーク上のWebサービスに接続した状態で、WebブラウザなどによってWeb上のコンテンツ、SSL−VPNサービス、アプリケーションを使用する際の、当該ユーザに対する使用許可のための認証の形態である。この場合、認証サーバ201は、典型的には、インターネットまたはイントラネットなどのネットワーク上に配置され、当該ネットワークを通じてアクセスしてきた認証要求クライアント251に対してユーザ認証のためのWebページを提供し、それを通じてユーザ認証のためのデータの送受信を行うようなWebサーバの形態や、RADIUSサーバと連携して認証・アカウンティング管理を実施する、SSL−VPNゲートウェイのようなインターネット上に仮想専用線ネットワークを提供する装置の形態である。
【0041】
もう1つの利用形態は、ユーザが認証要求クライアント251を使用して、認証サーバ201と同じWindowsのドメインネットワークに適正なネットワークユーザとして接続する際の、当該ユーザのそのネットワークへのログオン認証の形態である。この場合、認証サーバ201は、典型的には、認証のためのリソースをネットワーク上に提供しており、それによって、ユーザからの認証要求クライアント251を使用したWindowsのドメインネットワークへのログオン認証要求に応答してユーザ認証を実行し、その認証結果を当該Windowsのドメインネットワークのネットワークユーザの権限を管理するドメインコントローラに伝達する。
【0042】
OS201c1は、認証サーバ201のハードウェアに密接な基本的な情報処理を行うオペレーティングシステムである。ユーザ認証アプリケーション201c2は、OS201c1上で動作するユーザ認証のためのアプリケーションソフトウェアである。認証サーバ201がWebサーバの形態である場合、ユーザ認証アプリケーション201c2は、典型的には、CGIで呼び出される形態かサーブレットの形態の認証プログラムを備えた、認証のためのWebページまたはリソースをインターネットまたはイントラネットのWeb上に提供するWebサーバプログラムである。パスワード記憶部202は、典型的にはハードディスクドライブなどの一領域であり、好適にはデータは暗号化ファイルとしてパスワード記憶部202に記憶される。ユーザID202aは、ユーザをユニークに識別するためのデータである。ユーザID202aは、任意の文字列を使用することができる。ワンタイムパスワード導出ルール202bは、上述したように、提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのルールであり、ユーザのパスワードとして機能するデータである。
【0043】
認証要求クライアント251は、ユーザ認証システム200において、ユーザが認証サーバ201に対して認証を要求する構成要素であり、OS251c1、ブラウザアプリケーション251c2、提示パターン生成モジュール251c3などがインストールされた端末であり、具体的には、PC、携帯電話機、PDAなどの形態である。CPU251aは、ブラウザアプリケーション251c2、提示パターン生成モジュール251c3などをOS251c1上で実行して、ユーザ認証要求に関する情報処理を行うプロセッサである。RAM251bは、記憶装置251cに記憶されたソフトウェアがその上に読み込まれるメモリ空間と、読み込まれたソフトウェアがCPU251aによって実行される際に必要となるワークエリア等を提供するメモリである。記憶装置251cは、ソフトウェアやデータなどの情報を記憶・管理する構成要素であり、典型的にはハードディスクドライブなどの形態である。記憶装置251cは、好適には、OS251c1、ブラウザアプリケーション251c2、提示パターン生成モジュール251c3のプログラムのファイルを記憶しており、それらのプログラムはRAM251b上に読み出されて実行される。なお、記憶装置251cは、OS251c1、ブラウザアプリケーション251c2、提示パターン生成モジュール251c3に関しては、そのプログラムをROMに記憶した形態であってもよい。この場合、そのようなROMはCPU251aなどのプログラム実行要素とともにファームウェアを構成することになる。ユーザI/F251dは、ユーザとの間でデータの入出力を行うための構成要素であり、典型的には、図示していないが、キーボード296や、マウス、トラックボール、タッチパネルなどのポインティングデバイスからなる入力手段と、画面に情報を表示するディスプレイなどの出力手段と、それらとの間のハードウェアI/Fとから構成される。ネットワークI/F251eは、ネットワークに接続して情報の入出力を行うためのI/Fである。
【0044】
OS251c1、ブラウザアプリケーション251c2、提示パターン生成モジュール251c3は、それらの一部または全部が組み合わされて形式的には一体のプログラムの形態となっていてもよい。例えば、ブラウザアプリケーション251c2が提示パターン生成モジュール251c3の機能を包含していてもよく、OS251c1がブラウザアプリケーション251c2および提示パターン生成モジュール251c3の機能を包含していてもよい。また、それらが他のアプリケーションに組み込まれていてもよい。また、それらがそれぞれ複数のプログラムに分割されていてもよい。
【0045】
OS251c1は、認証要求クライアント251のハードウェアに密接な基本的な情報処理を行うオペレーティングシステムであり、認証要求クライアント251のハードウェアに応じた基本プログラムである。OS251c1は、プラットフォームに準じたアーキテクチャのファームウェアの形態であってもよい。ブラウザアプリケーション251c2は、OS251c1上で動作する、ネットワーク上に提供されている情報にアクセスして表示させ、さらにユーザからのデータの入力を受け付けるためのブラウザの機能を実現させるソフトウェアであり、典型的には、インターネットまたはイントラネット上のWebページにアクセスするためのWebブラウザアプリケーションの形態である。なお、ブラウザアプリケーション251c2は、Webブラウザアプリケーションに限られることはなく、サーバがネットワーク上に提供するユーザ認証用の画面にアクセスすることができるアプリケーションであれば、どのようなアプリケーションであってもよい。ブラウザアプリケーション251c2は、他のアプリケーションが認証を実施する際の画面表示のためのAPIを提供するプラットフォームに準じたアーキテクチャのファームウェアの形態であってもよい。提示パターン生成モジュール251c3は、ブラウザアプリケーション251c2に組み込まれて実行される、提示パターンを生成してブラウザに表示させるためのプログラムであり、認証要求クライアント251がPCの場合、典型的には、Java(登録商標)アプレット、ActiveX(登録商標)、Flash(登録商標)などの形態である。認証要求クライアント251が、携帯電話機、PDAなどの場合であっても、近い将来にはブラウザアプリケーション251c2にモジュールを組み込むことが可能になると見込まれており、提示パターン生成モジュール251c3は、そのようなモジュールの形態として機能することになる。提示パターン生成モジュール251c3は、他のアプリケーションが認証を実施するためのAPIを提供するプラットフォームに準じたアーキテクチャのファームウェアの形態であってもよい。
【0046】
認証サーバ201がWindowsのドメインネットワークへのログオン認証を実施する場合には、認証のためのブラウザアプリケーション251c2および提示パターン生成モジュール251c3は、クライアント用Windows OSとしてのOS251c1に組み込まれており、認証要求クライアント251のWindowsのドメインネットワークへのログオン認証画面に提示パターン291を表示させ、本願発明に係る認証方法に基づいた認証手続をユーザに要求する。
【0047】
標準のWindowsのログオン認証画面の変更は、具体的には以下のようにして実施する。まず、ブラウザアプリケーション251c2および提示パターン生成モジュール251c3の機能を実施するプログラムであるログオン認証モジュールをWindows用のDLLファイルとして作成する。ここでは、「SmxGina.dll」という名前のDLLファイルを作成する。ここで、Windowsのログオン認証画面のプログラムは、以下に示すレジストリのロケーションにおいて「GinaDLL」という名前のキーのデータとして指定されている。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

標準のログオン認証のモジュールは「msgina.dll」というDLLファイルであり、それが前述した「GinaDLL」という名前のキーのデータに設定されている。当該キーのデータを「SmxGina.dll」に書き換えると、本願発明に係る認証方法を実施するログオン認証モジュールがログオン認証時に呼び出されることになる。
【0048】
図8は、ユーザ認証システム200におけるログオン認証画面297Aおよび297Bのイメージ図である。Windowsのログオン時にログオン認証モジュール「SmxGinaDLL」が起動させられることによって、まず、ログオン認証画面297Aが表示させられる。ログオン認証画面297Aには、ユーザ名入力フィールド、ログオン先入力フィールドが表示される。ログオン先にネットワーク名を入力することによってオンラインで使用するためにWindowsのドメインネットワークへのログオン認証を行わせることができる。ユーザがログオン認証画面297Aのユーザ名入力フィールドに自己のユーザIDを入力ユーザID281として入力すると、当該認証モジュールは認証サーバ201に入力ユーザID281を伝達してそれに基づいて提示パターン291を生成させる。そして、提示パターン291を含むログオン認証画面297Bが表示される。ログオン認証画面297Bにはパスワード入力フィールドがあり、キーボード296やポインティングデバイスによってワンタイムパスワードとして数字などのキャラクターが入力されると、それに応答して「*」が1つずつ表示される。ワンタイムパスワード292の入力が完了すると、当該認証モジュールは、認証サーバ201にワンタイムパスワード292を伝達してユーザ認証を実行させ、その認証結果をドメインコントローラに伝達する。
【0049】
[ユーザ認証システム200の機能ブロック構成]
図2は、本発明の一実施形態に係るユーザ認証システム200のブロック図である。図2は、図1に示したハードウェア構成のユーザ認証システム200を、ソフトウェアとハードウェア資源とが協働して実施される情報処理の観点から表現した図であり、当該情報処理を機能ブロックの単位で表わした図である。図2において、認証サーバ201は、パスワード記憶部202、ユーザID受信手段203、検証コード生成手段206、ワンタイムパスワード受信手段207、ユーザ認証手段208、パターンシード値発生手段211、パターンシード値送信手段212から構成される。これらの機能ブロックは、ユーザ認証アプリケーション201c2の必要部分がOS201c1の必要部分とともに記憶装置201cからRAM201b上に読み込まれ、それらのソフトウェアがCPU201aによって実行されることによって、RAM201b、記憶装置201c、ユーザI/F201d、ネットワークI/F201eなどのハードウェア要素とも適宜協働して実現されるものである。
【0050】
パスワード記憶部202は、それぞれのユーザに関して、ユーザID202aと、当該ユーザのパスワードであるワンタイムパスワード導出ルール202bとをお互いに関連付けてあらかじめ記憶する構成要素であり、CPU201a、RAM201b、記憶装置201cなどがソフトウェアと協働することによって実現される機能ブロックである。ユーザID受信手段203は、認証要求クライアント251から、そこで入力された入力ユーザID281を受信する構成要素であり、CPU201a、RAM201b、ネットワークI/F201eなどがソフトウェアと協働することによって実現される機能ブロックである。検証コード生成手段206は、認証を受けようとしているユーザのパスワードであるワンタイムパスワード導出ルール202bを、認証要求クライアント251に表示されている提示パターン291に適用した結果である検証コード293を生成する構成要素であり、CPU201a、RAM201bなどがソフトウェアと協働することによって実現される機能ブロックである。検証コード293は、正しいワンタイムパスワード導出ルール202bが正しい提示パターンに適用された結果である正しいワンタイムパスワード292と同じ値である。ワンタイムパスワード受信手段207は、認証要求クライアント251から、そこで入力されたワンタイムパスワード292を受信する構成要素であり、CPU201a、RAM201b、ネットワークI/F201eなどがソフトウェアと協働することによって実現される機能ブロックである。ユーザ認証手段208は、ワンタイムパスワード292と検証コード293とを比較して、それらが等しいときにユーザ認証を成功させる構成要素であり、CPU201a、RAM201bなどがソフトウェアと協働することによって実現される機能ブロックである。パターンシード値発生手段211は、ユーザIDとともにに提示パターンを規定する値であるパターンシード値を所定の発生規則により発生する構成要素であり、CPU201a、RAM201bなどがソフトウェアと協働することによって実現される機能ブロックである。パターンシード値送信手段212は、発生させられたパターンシード値283を認証要求クライアント251に送信する構成要素であり、CPU201a、RAM201b、ネットワークI/F201eなどがソフトウェアと協働することによって実現される機能ブロックである。
【0051】
認証要求クライアント251は、ユーザID入力手段252、ユーザID送信手段253、パターン表示手段255、ワンタイムパスワード入力手段256、ワンタイムパスワード送信手段257、パターンシード値受信手段261、パターン要素列生成手段262から構成される。これらの機能ブロックは、ブラウザアプリケーション201c2の必要部分、提示パターン生成モジュール251c3がOS251c1の必要部分とともに記憶装置251cからRAM251b上に読み込まれ、それらのソフトウェアがCPU251aによって実行されることによって、RAM251b、記憶装置251c、ユーザI/F251d、ネットワークI/F251eなどのハードウェア要素とも適宜協働して実現されるものである。
【0052】
ユーザID入力手段252は、認証を受けようとするユーザのユーザIDを入力ユーザID281として入力を受け付ける構成要素であり、CPU251a、RAM251b、ユーザI/F251dなどがソフトウェアと協働することによって実現される機能ブロックである。ユーザID送信手段253は、入力された入力ユーザID281を認証サーバ201に送信する構成要素であり、CPU251a、RAM251b、ネットワークI/F251eなどがソフトウェアと協働することによって実現される機能ブロックである。パターン表示手段255は、後述のパターン要素列生成手段262によって生成されたパターン要素列290のパターン要素を所定パターン291pに配列して提示パターンを生成し、それを画面に表示させる構成要素であり、CPU251a、RAM251b、ユーザI/F251dなどがソフトウェアと協働することによって実現される機能ブロックである。ワンタイムパスワード入力手段256は、画面に表示させた提示パターンなどを通じてワンタイムパスワード292のユーザからの入力を受け付ける構成要素であり、CPU251a、RAM251b、ユーザI/F251dなどがソフトウェアと協働することによって実現される機能ブロックである。ワンタイムパスワード送信手段257は、入力されたワンタイムパスワード292を認証サーバ201に送信する構成要素であり、CPU251a、RAM251b、ネットワークI/F251eなどがソフトウェアと協働することによって実現される機能ブロックである。パターンシード値受信手段261は、認証サーバ201から、パターンシード値283を受信する構成要素であり、CPU251a、RAM251b、ネットワークI/F251eなどがソフトウェアと協働することによって実現される機能ブロックである。パターン要素列生成手段262は、入力された入力ユーザID281および認証サーバ201から受信したパターンシード値283に基づいて、所定のパターン要素列生成規則により提示パターンに含まれるパターン要素を生成する構成要素であり、CPU251a、RAM251bなどがソフトウェアと協働することによって実現される機能ブロックである。
【0053】
[ユーザ認証システム200の動作]
これから、ユーザ認証システム200の動作について説明する。図3および4は、ユーザ認証システム200の動作フロー図である。まず、ユーザ認証システム200で認証を受けることになるユーザは、そのユーザID202aとパスワードであるワンタイムパスワード導出ルール202bとをあらかじめ認証サーバ201に入力して登録する。パスワード記憶部202は、そのユーザのユーザID202aとワンタイムパスワード導出ルール202bとをお互いに関連付けてユーザの認証に先立ってあらかじめ記憶する(ステップS201)。認証サーバ201は、好適にはインターネットまたはイントラネットのWeb上にユーザIDとパスワードの登録のためのWebページまたはリソースを提供しており、ユーザは、認証要求クライアント251などの端末から認証サーバ201にアクセスする。それによって、認証要求クライアント251には、ユーザID入力のための入力フィールドと、0から9までの数字を乱数的にパターン要素として配置した提示パターン291が表示される(図示せず)。ユーザは入力フィールドに自分が登録したいユーザID202aを入力する。ユーザは次に、自分が登録しようとするワンタイムパスワード導出ルール202bに従って、提示パターン291に含まれるパターン要素の位置の選択または当該提示パターン291に基づかない数字などのキャラクターの入力を行う。認証サーバ201は、入力されたユーザID202aをそのユーザのユーザIDとしてパスワード記憶部202に記憶させる。一方、選択または入力された数字の列は、それだけではワンタイムパスワード導出ルール202bを特定することができない。従って、認証サーバ201は、異なる提示パターン291を表示して2回目のパスワード導出ルール202bに従った数字の選択または入力を行わせ、選択または入力された数字の列を1回目のものと比較して、ワンタイムパスワード導出ルール202bを特定する。2回目の提示パターン291を、1回目の提示パターン291と大きく異なるように工夫して発生させると、2回の提示パターン291の提示によってワンタイムパスワード導出ルール202bを特定することが可能である。2回の提示パターン291の提示でワンタイムパスワード導出ルール202bの特定ができなかった場合は、それが特定できるまで、提示パターン291の内容を変えてそれの提示を繰り返す。これによって、提示パターン291に含まれる選択されるパターン要素のそれぞれの位置および当該提示パターン291に基づかないキャラクターのそれぞれと、当該それぞれのパターン要素の位置および当該それぞれのキャラクターが選択あるいは入力される順番との組み合わせであるワンタイムパスワード導出ルール202bが特定される。特定されたワンタイムパスワード導出ルール202bは、当該ユーザのユーザID202aと関連付けられてパスワード記憶部202に記憶される。
【0054】
次に、認証を受けようとするユーザは、認証要求クライアント251において、ユーザID入力手段252により自分のユーザIDを入力ユーザID281として入力する(ステップS203)。典型的には、ユーザは認証要求クライアント251上で動作しているブラウザアプリケーション251c2を使用して、認証サーバ201が提供するユーザ認証Webページにアクセスし、そこに表示されるユーザID入力のための入力フィールドに自己のユーザIDを入力する。Windowsのドメインネットワークへのログイン認証の場合は、図8に示されたログオン認証画面297Aにおいて、ユーザー名フィールドに自己のユーザIDを入力し、ログオン先にログオンしようとするネットワーク名を入力する。次に、認証要求クライアント251は、ユーザID送信手段253により、入力された入力ユーザID281を認証サーバ201に送信する(ステップS205)。典型的には、認証要求クライアント251上で動作しているブラウザアプリケーション251c2が、入力フィールドに入力された入力ユーザID281をインターネットまたはイントラネットを通じて認証サーバ201に送信する。Windowsのドメインネットワークへのログイン認証の場合は、ログオン認証モジュール「SmxGinaDLL」が入力ユーザID281を認証サーバ201に送信する。次に、認証サーバ201は、ユーザID受信手段203により、認証要求クライアント251から送信された入力ユーザID281を受信する(ステップS207)。典型的には、認証サーバ201は、ユーザ認証アプリケーション201c2を動作させ、それによって入力ユーザID281を受信する。次に、認証サーバ201は、パターンシード値発生手段211により、パターンシード値283を所定の発生規則によって発生させる(ステップS209)。所定の発生規則は、典型的には、所定の範囲内の乱数を発生させることである。図5には、パターンシード値283として、16進数で表わした「284E17・・・39D0」が例示されている。パターンシード値283は、例えば、8バイトのような所定のビット長の数字列で表わすことができ、この場合、当該所定の範囲とは、16進数で「0000000000000000」から「FFFFFFFFFFFFFFFF」の範囲となる。従って、同一の入力ユーザID202aに対しては、当該所定の範囲の任意の数字列をパターンシード値283とすることができるため、最大で当該所定の範囲の数だけ異なる提示パターン291を生成することが可能となる。
【0055】
次に、認証サーバ201は、パターンシード値送信手段212により、発生したパターンシード値283を認証要求クライアント251に送信する(ステップS211)。典型的には、認証サーバ201は、ユーザ認証アプリケーション201c2を動作させ、それによってパターンシード値283を認証要求クライアント251に送信する。次に、認証要求クライアント251は、パターンシード値受信手段261により、認証サーバ201から送信されたパターンシード値283を受信する(ステップS213)。典型的には、認証要求クライアント251上で動作しているブラウザアプリケーション251c2またはログオン認証モジュール「SmxGinaDLL」が、パターンシード値283を受信する。次に、認証要求クライアント251は、パターン要素列発生手段262により、ステップS203で入力されている入力ユーザID281と、ステップS213で受信したパターンシード値283とに基づいて所定のパターン要素列生成規則により提示パターン291を構成するパターン要素列290を生成する(ステップS215)。所定のパターン要素列生成規則とは、入力ユーザID281とパターンシード値283との組み合わせに対してユニークに決定されるパターン要素列であって、そのパターン要素列だけからは元の入力ユーザID281とパターンシード値283とを推定することが極めて困難なものを発生させる規則であって、典型的には、以下に述べるような、入力ユーザID281とパターンシード値283との組み合わせを一種の初期値とした暗号化演算によるものである。図5は、提示パターン291の生成方法の概念図である。ここでは、「User」という入力ユーザID281と「284E17・・・39D0」というパターンシード値283とに基づいてパターン要素列290が生成される。そのために、まず、入力ユーザID281とパターンシード値283の組み合わせから、所定の数字列を一意的に生成する。図5の第1段及び第2段に示した例では、それぞれ16進数で表わした入力ユーザID281とパターンシード値283とを結合して所定の数字列を生成している。入力ユーザID281とパターンシード値283との組み合わせ方としては、他には、加算、減算、排他的論理和、などのあらゆる演算を使用して組み合わせることができる。次に、その所定の数字列に対して暗号化演算を実施して、所定のビット長のビット列284を生成する。ここでは、所定のビット長は、64の数字からなる提示パターン291を生成するために十分な情報量である256ビットである。暗号化演算としては、演算結果から元の数字列を求めることが事実上不可能なものであればよく、ハッシュ関数演算、共通鍵暗号化演算、などを使用することができる。例えば、ハッシュ関数としてSHA256を使用して、その所定の数字列を暗号化すると、256ビットのビット列284を生成することができる。また、共通鍵暗号化演算としてAESを使用して、その所定の数字列から鍵を生成し、その鍵によってあらかじめ適当に設定した256ビットの数字列を暗号化すると、256ビットのビット列284を生成することができる。また、それらのハッシュ関数演算と共通鍵暗号化演算とを組み合わせることもできる。なお、図5に示したビット列284「0111001011001101・・・11010」の値は説明のための例示であり、正確なSHA256演算の結果を示したものではない。次に、256ビットのビット列284を77桁の十進数に変換し、そこから64桁の数字を抽出してパターン要素列290とする。なお、図5に示したパターン要素列290「38064655・・・1017」の値は説明のための例示であり、正確な変換・抽出の結果を示したものではない。64桁の数字の抽出は、不要な上位ビット列の削除、不要な下位ビット列の削除、割算などのあらゆる演算を使用することができる。次に、認証要求クライアント251は、パターン表示手段255により、パターン要素列290のそれぞれのパターン要素を4つの4×4のマトリクスからなるパターンのそれぞれの要素の位置に配置した提示パターン291の画像を生成し、それを認証要求クライアント251の画面に表示させる(ステップS217)。Windowsのドメインネットワークへのログイン認証の場合は、図8に示されるように、ログオン認証画面297Aに続いて、提示パターン291を含むログオン認証画面297Bが表示させられる。
【0056】
次に、認証を受けようとするユーザは、認証要求クライアント251の画面に表示された提示パターン291の特定の位置に表示されたパターン要素を選択したり、提示パターン291に基づかない数字などのキャラクターを入力したりすることを順番に実施することによって、自分のワンタイムパスワード導出ルール202bを提示パターン291に適用した結果であるワンタイムパスワード292を認証要求クライアント251に入力する。認証要求クライアント251は、ワンタイムパスワード入力手段256により、ワンタイムパスワード292の入力を受け付ける(ステップS219)。次に、認証要求クライアント251は、ワンタイムパスワード送信手段257により、入力されたワンタイムパスワード292を認証サーバ201に送信する(ステップS221)。次に、認証サーバ201は、ワンタイムパスワード受信手段207により、認証要求クライアント251から送信されたワンタイムパスワード292を受信する(ステップS223)。
【0057】
次に、認証サーバ201は、検証コード生成手段206により、認証要求クライアント251から受信した入力ユーザID281および認証要求クライアント251に送信したパターンシード値283に基づいて、所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンに、当該入力ユーザID281に対応するワンタイムパスワード導出ルール202bを適用した結果である検証コード293を生成する(ステップS225)。ここでの所定のパターン要素列生成規則は、認証要求クライアント251において、ステップS215でパターン要素列生成手段262がパターン要素列を発生させたパターン要素列生成規則と全く同じ規則である。従って、検証コード293は、入力ユーザID281のユーザに関連付けられた正しいワンタイムパスワード導出ルール202bが、その入力ユーザID281と正しいパターンシード値283とに基づく正しい提示パターン291に適用された結果である正しいワンタイムパスワード292と同じ値となる。次に、認証サーバ201は、ユーザ認証手段208により、受信したワンタイムパスワード292と生成した検証コード293とを比較し、それらが等しければ、当該ユーザのユーザ認証を成功させる(ステップS227)。認証が成功すると、以下のように、ユーザ認証の利用形態に応じたサービスが許可されることになる。Web上のコンテンツ等の使用許可のためのユーザ認証の場合は、コンテンツへのアクセスが許可されたり、アプリケーションの利用が許可されたりする。Windowsのドメインネットワークへのログオン認証の場合は、認証サーバ201は、認証結果をWindowsのドメインコントローラに伝達し、Windowsネットワークへの参加を認めさせる。認証サーバ201が、SSL−VPNゲートウェイの形態であれば、当該SSL−VPNへのアクセスが許可される。
【0058】
なお、以上に説明した動作フローにおいて、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの動作フロー上の矛盾が生じない限りにおいて、動作フローを自由に変更することができる。例えば、ステップS225の認証サーバ201における検証コード293の生成などは、入力ユーザID281とパターンシード値283が利用できるようになるステップS209の直後で実行されてもよい。また、ステップS207の認証サーバ201における入力ユーザID281の受信は、ステップS225の認証サーバ201における検証コード293の生成の前であれば、現在の順番より後に実行されてもよい。
【0059】
以上に説明してきた各実施形態は、本発明を説明するための例示であり、本発明はこれらの実施形態に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
【図面の簡単な説明】
【0060】
【図1】本発明の一実施形態に係るユーザ認証システム200のハードウェア構成図である。
【図2】本発明の一実施形態に係るユーザ認証システム200のブロック図である。
【図3】本発明の一実施形態に係るユーザ認証システム200の動作フロー図である。
【図4】本発明の一実施形態に係るユーザ認証システム200の動作フロー図であり、図3に示した動作フローの続きである。
【図5】本発明の一実施形態に係るユーザ認証システム200における提示パターンの生成方法の概念図である。
【図6】マトリクス認証方式におけるワンタイムパスワード導出ルールの概念図である。
【図7】マトリクス認証方式におけるワンタイムパスワード入力方法の概念図である。
【図8】ユーザ認証システム200におけるWindowsログオン認証画面のイメージ図である。
【図9】従来のマトリクス認証方式のユーザ認証システム100のブロック図である。
【図10】従来のマトリクス認証方式のユーザ認証システム100における提示パターンの生成方法の概念図である。
【符号の説明】
【0061】
100 ユーザ認証システム
101 認証サーバ
102 パスワード記憶部
102a ユーザID
102b ワンタイムパスワード導出ルール
103 ユーザID受信手段
104 パターン発生手段
105 パターン送信手段
106 検証コード生成手段
107 ワンタイムパスワード受信手段
108 ユーザ認証手段
151 認証要求クライアント
152 ユーザID入力手段
153 ユーザID送信手段
154 パターン受信手段
155 パターン表示手段
156 ワンタイムパスワード入力手段
157 ワンタイムパスワード送信手段
181 入力ユーザID
190 パターン要素列
191 提示パターン
191p 所定パターン
192 ワンタイムパスワード
193 検証コード
196 キーボード
200 ユーザ認証システム
201 認証サーバ
201a CPU
201b RAM
201c 記憶装置
201c1 OS
201c2 ユーザ認証アプリケーション
201d ユーザインターフェース(I/F)
201e ネットワークインターフェース(I/F)
202 パスワード記憶部
202a ユーザID
202b ワンタイムパスワード導出ルール
203 ユーザID受信手段
206 検証コード生成手段
207 ワンタイムパスワード受信手段
208 ユーザ認証手段
211 パターンシード値発生手段
212 パターンシード値送信手段
251 認証要求クライアント
251a CPU
251b RAM
251c 記憶装置
251c1 OS
251c2 ブラウザアプリケーション
251c3 提示パターン生成モジュール
251d ユーザインターフェース(I/F)
251e ネットワークインターフェース(I/F)
252 ユーザID入力手段
253 ユーザID送信手段
255 パターン表示手段
256 ワンタイムパスワード入力手段
257 ワンタイムパスワード送信手段
261 パターンシード値受信手段
262 パターン要素列生成手段
281 入力ユーザID
283 パターンシード値
284 ビット列
290 パターン要素列
291 提示パターン
291p 所定パターン
292 ワンタイムパスワード
293 検証コード
296 キーボード
297A ログオン認証画面
297B ログオン認証画面

【特許請求の範囲】
【請求項1】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのパスワードとするユーザ認証システムであって、
前記ユーザのユーザIDおよびパスワードを管理する認証サーバと、
前記認証サーバとネットワークで接続された、前記ユーザが認証を要求する端末である認証要求クライアントと、を有し、
前記認証サーバは、
あらかじめ前記ユーザのユーザIDと当該ユーザのワンタイムパスワード導出ルールとをお互いに関連付けて記憶するパスワード記憶部と、
前記ユーザIDと組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値を所定の発生規則により発生するパターンシード値発生手段と、
認証を受けようとするユーザのユーザIDを前記認証要求クライアントから受信するユーザID受信手段と、
発生させられた前記パターンシード値を、認証を受けようとするユーザの前記認証要求クライアントに送信するパターンシード値送信手段と、
を有し、
前記認証要求クライアントは、
前記ユーザから前記ユーザIDの入力を受け付けるユーザID入力手段と、
入力された前記ユーザIDを前記認証サーバに送信するユーザID送信手段と、
前記認証サーバから送信された前記パターンシード値を受信するパターンシード値受信手段と、
入力された前記ユーザIDと受信した前記パターンシード値とに基づいて、所定のパターン要素列生成規則により前記提示パターンを構成するパターン要素の集合であるパターン要素列を生成するパターン要素列生成手段と、
生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるパターン表示手段と、
前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるワンタイムパスワード入力手段と、
入力された前記ワンタイムパスワードを前記認証サーバに送信するワンタイムパスワード送信手段と、
を有し、
前記認証サーバは、
前記ワンタイムパスワードを受信するワンタイムパスワード受信手段と、
受信した前記ユーザIDおよび送信した前記パターンシード値に基づいて前記所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンに含まれるパターン要素に当該ユーザIDに対応する前記ワンタイムパスワード導出ルールを適用した結果である検証コードを生成する検証コード生成手段と、
受信した前記ワンタイムパスワードと生成された前記検証コードとを比較し、それらが等しい場合に前記ユーザIDに対応するユーザの認証を成功させるユーザ認証手段と、
をさらに有することを特徴とするユーザ認証システム。
【請求項2】
請求項1に記載のユーザ認証システムにおいて、
前記パターン要素列生成手段の前記所定のパターン要素列生成規則は、所定の初期キャラクター文字列に対して、前記ユーザIDおよび前記パターンシード値に基づく値を鍵として共通鍵暗号化アルゴリズム演算を適用した結果に基づいて、前記パターン要素列を生成するものであるユーザ認証システム。
【請求項3】
請求項1に記載のユーザ認証システムにおいて、
前記パターン要素列生成手段の前記所定のパターン要素列生成規則は、前記ユーザIDおよび前記パターンシード値に基づく値にハッシュ関数演算を適用した結果に基づいて前記パターン要素列を生成するものであるユーザ認証システム。
【請求項4】
請求項1から3のいずれか1項に記載のユーザ認証システムにおいて、
前記ワンタイムパスワード送信手段は、入力された前記ワンタイムパスワードに所定のハッシュ関数演算を適用することによってハッシュ化された前記ワンタイムパスワードを前記認証サーバに送信し、
前記検証コード生成手段は、受信した前記ユーザIDおよび送信した前記パターンシード値に基づいて前記所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンに含まれるパターン要素に当該ユーザIDに対応する前記ワンタイムパスワード導出ルールを適用した結果に対して前記所定のハッシュ関数演算を適用することによってハッシュ化された検証コードを生成し、
前記ユーザ認証手段は、受信した前記ハッシュ化されたワンタイムパスワードと前記生成されたハッシュ化された検証コードとを比較し、それらが等しい場合に前記ユーザIDに対応するユーザの認証を成功させるユーザ認証システム。
【請求項5】
請求項4に記載のユーザ認証システムにおいて、
前記ワンタイムパスワード導出ルールは、前記提示パターンに含まれる選択されるパターン要素のそれぞれの位置と、当該それぞれのパターン要素の位置が選択される順番との組み合わせであるユーザ認証システム。
【請求項6】
請求項5に記載のユーザ認証システムにおいて、
前記ワンタイムパスワード導出ルールは、前記提示パターンに含まれる選択されるパターン要素のそれぞれの位置および当該提示パターンに基づかないで入力されるキャラクターのそれぞれと、当該それぞれのパターン要素の位置および当該それぞれのキャラクターが選択あるいは入力される順番との組み合わせであるユーザ認証システム。
【請求項7】
請求項5または6に記載のユーザ認証システムにおいて、
前記提示パターンに含まれるそれぞれのパターン要素は0から9までの数字および記号から選択されるユーザ認証システム。
【請求項8】
請求項7に記載のユーザ認証システムにおいて、
前記提示パターンに含まれるそれぞれのパターン要素は0から9までの数字から選択されるユーザ認証システム。
【請求項9】
請求項8に記載のユーザ認証システムにおいて、
前記提示パターンに含まれる複数のパターン要素が配列される前記所定パターンは、前記パターン要素を縦m個×横n個のそれぞれの位置に全体が方形を形成するように配置したマトリクスを含むユーザ認証システム。
【請求項10】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのパスワードとし、ユーザが認証を要求する端末である認証要求クライアントからの認証要求に応答して、当該認証要求クライアントとネットワークで接続され、前記ユーザのユーザIDおよびパスワードを管理する認証サーバが認証を行うユーザ認証方法であって、
前記認証サーバが、あらかじめ前記ユーザのユーザIDと当該ユーザのワンタイムパスワード導出ルールとをお互いに関連付けて記憶するステップと、
認証要求クライアントが、認証を受けようとするユーザのユーザIDの入力を受け付けるステップと、
前記認証要求クライアントが、入力された前記ユーザIDを前記認証サーバに送信するステップと、
前記認証サーバが、前記認証要求クライアントから送信された認証を受けようとするユーザのユーザIDを受信するステップと、
前記認証サーバが、前記ユーザIDと組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値を所定の発生規則により発生するステップと、
前記認証サーバが、発生させられた前記パターンシード値を認証を受けようとするユーザの前記認証要求クライアントに送信するステップと、
前記認証要求クライアントが、前記認証サーバから送信された前記パターンシード値を受信するステップと、
前記認証要求クライアントが、入力された前記ユーザIDと受信した前記パターンシード値とに基づいて、所定のパターン要素列生成規則により前記提示パターンを構成するパターン要素の集合であるパターン要素列を生成するステップと、
前記認証要求クライアントが、生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
前記認証要求クライアントが、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を前記ユーザから受け付けるステップと、
前記認証要求クライアントが、入力された前記ワンタイムパスワードを前記認証サーバに送信するステップと、
前記認証サーバが、前記ワンタイムパスワードを前記認証要求クライアントから受信するステップと、
前記認証サーバが、受信した前記ユーザIDおよび送信した前記パターンシード値に基づいて前記所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンに含まれるパターン要素に当該ユーザIDに対応する前記ワンタイムパスワード導出ルールを適用した結果である検証コードを生成するステップと、
前記認証サーバが、受信した前記ワンタイムパスワードと生成された前記検証コードとを比較し、それらが等しい場合に前記ユーザIDに対応するユーザの認証を成功させるステップと、
を有することを特徴とするユーザ認証方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2007−264839(P2007−264839A)
【公開日】平成19年10月11日(2007.10.11)
【国際特許分類】
【出願番号】特願2006−86603(P2006−86603)
【出願日】平成18年3月27日(2006.3.27)
【特許番号】特許第3939736号(P3939736)
【特許公報発行日】平成19年7月4日(2007.7.4)
【出願人】(500325001)株式会社シー・エス・イー (7)
【Fターム(参考)】