説明

オフラインユーザ認証システム、その方法、およびそのプログラム

【課題】セキュリティの確保されたオフラインでのマトリクス認証を実現する。
【解決手段】認証を受けるユーザに提示パターンを提示し、それに含まれる特定の位置の要素に適用することによりワンタイムパスワードを生成するための導出ルールをパスワードとするユーザ認証システムであって、オフライン認証クライアント内に、提示パターンを構成する複数のパターン要素列と、そのそれぞれの提示パターンに導出ルールを適用した結果に一方向関数演算を実施したものである複数の検証コードをクライアントに記憶させ、記憶されたパターン要素列から1つを選択することによって提示パターンを生成し、入力されたワンタイムパスワードを対応する検証コードに基づいて検証することによって認証を実施する。

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

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

標準のログオン認証のモジュールは「msgina.dll」というDLLファイルであり、それが前述した「GinaDLL」という名前のキーのデータに設定されている。当該キーのデータを「SmxGina.dll」に書き換えると、本願発明に係る認証方法を実施するログオン認証モジュール「SmxGinaDLL」がログオン認証時に呼び出されることになる。
【0062】
図14は、オフラインユーザ認証システム200におけるログオン認証画面297Aおよび297Bのイメージ図である。Windowsのログオン時にログオン認証モジュール「SmxGinaDLL」が起動させられることによって、まず、ログオン認証画面297Aが表示させられる。ログオン認証画面297Aには、ユーザ名入力フィールド、ログオン先入力フィールドが表示される。オフライン認証クライアント251がドメインネットワークに接続された状態で、ログオン先にドメイン名を入力することによってオンラインで使用するためにWindowsのドメインネットワークへのログオン認証を行わせることができる。オフライン認証クライアント251がドメインネットワークに接続されていない状態では、ログオン先にドメイン名を入力することによってドメインネットワークのユーザとしてオフラインでコンピュータを使用するためのログオン認証を行わせることができ、ログオン先にコンピュータ名を入力することによってローカルコンピュータのユーザとしてオフラインで使用するためにコンピュータへのログオン認証を行わせることができる。ユーザがログオン認証画面297Aのユーザ名入力フィールドに自己のユーザIDを入力ユーザID281として入力すると、次に、提示パターン291を含むログオン認証画面297Bが表示される。ログオン認証画面297Bにはパスワード入力フィールドがあり、キーボード296やポインティングデバイスによってワンタイムパスワードとして数字などのキャラクターが入力されると、それに応答して「*」が1つずつ表示される。
【0063】
[第1の実施形態に係るオフラインユーザ認証システム200の機能ブロック構成]
図3は、本発明の一実施形態に係るオフラインユーザ認証システム200のブロック図である。図3は、図1に示したハードウェア構成のオフラインユーザ認証システム200を、ソフトウェアとハードウェア資源とが協働して実施される情報処理の観点から表現した図であり、当該情報処理を機能ブロックの単位で表わした図である。図3において、オフライン認証支援サーバ201は、パスワード記憶部202、要求受付手段203、パターン発生手段204、パターン送信手段205、検証コード生成手段206、検証コード送信手段211から構成される。これらの機能ブロックは、ユーザ認証支援アプリケーション201c2の必要部分がOS201c1の必要部分とともに記憶装置201cからRAM201b上に読み込まれ、それらのソフトウェアがCPU201aによって実行されることによって、RAM201b、記憶装置201c、ユーザI/F201d、外部/ネットワークI/F201eなどのハードウェア要素とも適宜協働して実現されるものである。
【0064】
パスワード記憶部202は、それぞれのユーザに関して、ユーザID202aと、当該ユーザのパスワードであるワンタイムパスワード導出ルール202bとをお互いに関連付けてあらかじめ記憶する構成要素であり、CPU201a、RAM201b、記憶装置201cなどがソフトウェアと協働することによって実現される機能ブロックである。要求受付手段203は、認証を受けることになるユーザのユーザIDの情報を伴う当該ユーザのための検証データ294の生成と出力の要求である検証データ要求を受け付ける構成要素であり、CPU201a、RAM201b、ユーザI/F201dあるいは外部/ネットワークI/F201eなどがソフトウェアと協働することによって実現される機能ブロックである。検証データ要求はオフライン認証クライアント251からネットワークを通じて受信してもよく、また、オフライン認証支援サーバ201にユーザI/F201dを通じて直接入力されてもよい。パターン発生手段204は、提示パターン291を構成するパターン要素の内容の情報を含むパターン要素列290を乱数発生アルゴリズムなどの所定の発生規則により複数発生させる構成要素であり、CPU201a、RAM201bなどがソフトウェアと協働することによって実現される機能ブロックである。パターン送信手段205は、発生させられた複数のパターン要素列290を、オフライン認証クライアント251に記憶させるために出力する構成要素であり、CPU201a、RAM201b、ユーザI/F201dあるいは外部/ネットワークI/F201eなどがソフトウェアと協働することによって実現される機能ブロックである。複数のパターン要素列290は、ネットワークを通じてオフライン認証クライアント251に送信されてもよいし、記憶媒体に出力されてもよい。検証コード生成手段206は、要求受付手段203を通じて入力された入力ユーザID281を有するユーザに関連付けられた、当該ユーザのパスワードであるワンタイムパスワード導出ルール202bを、オフライン認証クライアント251に表示されることになる、発生させられた複数のパターン要素列290から構成される提示パターン291に適用した結果に一方向関数演算を実施したものである検証コード293を複数生成する構成要素であり、CPU201a、RAM201bなどがソフトウェアと協働することによって実現される機能ブロックである。検証コード送信手段211は、生成された複数の検証コード293をオフライン認証クライアント251に記憶させるために出力する構成要素であり、CPU201a、RAM201b、ユーザI/F201dあるいは外部/ネットワークI/F201eなどがソフトウェアと協働することによって実現される機能ブロックである。複数の検証コード293は、ネットワークを通じてオフライン認証クライアント251に送信されてもよいし、記憶媒体に出力されてもよい。
【0065】
オフライン認証クライアント251は、ユーザID入力手段252、検証データ要求手段253、パターン受信手段254、パターン表示手段255、ワンタイムパスワード入力手段256、検証データ記憶部261、検証コード受信手段262、パターン選択手段263、検証コード特定手段264、ユーザ認証手段265から構成される。これらの機能ブロックは、ブラウザアプリケーション201c2の必要部分、提示パターン生成モジュール251c3がOS251c1の必要部分とともに記憶装置251cからRAM251b上に読み込まれ、それらのソフトウェアがCPU251aによって実行されることによって、RAM251b、記憶装置251c、ユーザI/F251d、外部/ネットワークI/F251eなどのハードウェア要素とも適宜協働して実現されるものである。オフライン認証クライアント251がネットワークを通じてオフライン認証支援サーバ201から検証データ294を取得しない場合は、検証データ要求手段253は必ずしも必要ない。
【0066】
ユーザID入力手段252は、認証を受けようとするユーザのユーザIDを入力ユーザID281として入力を受け付ける構成要素であり、CPU251a、RAM251b、ユーザI/F251dなどがソフトウェアと協働することによって実現される機能ブロックである。ユーザがオフライン認証クライアント251をオンラインで使用するためにネットワークへのログオン認証をする場合には、検証データ要求手段253に入力ユーザID281を伝達し、それに検証データ要求を送信させる。検証データ要求手段253は、入力された入力ユーザID281の情報を含む検証データ要求をオフライン認証支援サーバ201に送信する構成要素であり、CPU251a、RAM251b、外部/ネットワークI/F251eなどがソフトウェアと協働することによって実現される機能ブロックである。パターン受信手段254は、オフライン認証支援サーバ201で生成された検証データ294を構成する複数のパターン要素列290を取得する構成要素であり、CPU251a、RAM251b、ユーザI/F251dまたは外部/ネットワークI/F251eなどがソフトウェアと協働することによって実現される機能ブロックである。複数のパターン要素列290は、オフライン認証支援サーバ201からネットワークを通じて取得してもよく、それを記憶した記憶媒体から取得してもよい。パターン表示手段255は、パターン選択手段263によって選択されたパターン要素列290のパターン要素を所定パターン291pに配列して提示パターン291を生成し、それを画面に表示させる構成要素であり、CPU251a、RAM251b、ユーザI/F251dなどがソフトウェアと協働することによって実現される機能ブロックである。ワンタイムパスワード入力手段256は、画面に表示させた提示パターン291などを通じてワンタイムパスワード292のユーザからの入力を受け付ける構成要素であり、CPU251a、RAM251b、ユーザI/F251dなどがソフトウェアと協働することによって実現される機能ブロックである。検証データ記憶部261は、あるユーザのための複数のパターン要素列290および複数の検証コード293から構成される検証データ294を、当該ユーザのユーザID202aと関連付けて記憶する構成要素であり、CPU201a、RAM201b、記憶装置201cなどがソフトウェアと協働することによって実現される機能ブロックである。検証データ記憶部261が記憶する検証データ294は、パターン受信手段254および検証コード受信手段262から取得され、それらを取得したときに使用されているユーザIDがユーザID202aとして対応付けられて記憶される。検証データ記憶部261は、複数のユーザの検証データ294を記憶することができる。検証コード受信手段262は、オフライン認証支援サーバ201で生成された検証データ294を構成する複数の検証コード293を取得する構成要素であり、CPU251a、RAM251b、ユーザI/F251dまたは外部/ネットワークI/Fなどがソフトウェアと協働することによって実現される機能ブロックである。複数の検証コード293は、オフライン認証支援サーバ201からネットワークを通じて取得してもよく、それを記憶した記憶媒体から取得してもよい。パターン選択手段263は、入力ユーザID281に等しいユーザIDがユーザID202aに記憶されているかどうかを確認し、入力ユーザID281に等しいユーザIDがあった場合は、そのユーザIDに関連付けられている検証データ294に含まれる複数のパターン要素列290の中から所定の規則により1つを選択することによって、提示パターン291を生成するためのパターン要素列290を選択する構成要素であり、CPU251a、RAM251b、記憶装置251cなどがソフトウェアと協働することによって実現される機能ブロックである。検証コード特定手段264は、パターン選択手段263で選択されたパターン要素列290に対応する検証コード293を特定する構成要素であり、CPU251a、RAM251b、記憶装置251cなどがソフトウェアと協働することによって実現される機能ブロックである。ユーザ認証手段265は、入力されたワンタイムパスワード292に検証コード293の生成時に使用したものと同じ一方向関数演算を実施したものと特定された検証コード293とを比較して、それらが等しいときにユーザ認証を成功させる構成要素であり、CPU201a、RAM201bなどがソフトウェアと協働することによって実現される機能ブロックである。
【0067】
本実施形態においては、オフラインユーザ認証システム200は、具体的には以下のような構成を有するものとする。オフライン認証支援サーバ201は、従来のオンラインユーザ認証システム100のオンライン認証サーバ101の機能を有しており、その機能によって、オフライン認証クライアント251のネットワークを通じたユーザ認証が実施される。オフライン認証クライアント251はクライアント用Windows OSで動作しており、ユーザがWindowsにログオンする際にはログオン認証モジュール「SmxGinaDLL」が起動して、まず、ログオン認証画面297Aが表示される。オフライン認証クライアント251がドメインネットワークに接続されている状態で、ログオン認証画面297Aにおいてログオン先にドメイン名を指定してネットワークへの認証が要求された場合には、続いてログオン認証画面297Bが表示され、従来のオンラインユーザ認証システム100で実施されていたものと同様のユーザ認証が実行されるとともに、当該ネットワークへのログオン認証が成功すると、オフライン認証クライアント251からオフライン認証支援サーバ201に対して検証データ要求が送信され、オフライン認証クライアント251はオフライン認証支援サーバ201からオンラインで検証データ294をあらかじめ取得して記憶する。オフライン認証クライアント251がドメインネットワークに接続されていない状態で、ログオン認証画面297Aにおいてログオン先にドメイン名またはコンピュータ名を指定してコンピュータへの認証が要求された場合には、続いてログオン認証画面297Bが表示され、あらかじめ記憶していた検証データ294に基づいて、本発明に係るオフラインユーザ認証が実施される。
【0068】
[オフラインユーザ認証システム200の動作]
これから、オフラインユーザ認証システム200の動作について説明する。オフラインユーザ認証システム200の動作は、大きく2つの段階に分けることができる。1つの段階は、オフライン認証クライアント251が、ユーザ認証を受けることになるユーザのための検証データ294をオフライン認証支援サーバ201に生成させて、それをあらかじめ取得して記憶する段階である。もう1つの段階は、ユーザ認証を受けようとするユーザに対して、オフライン認証クライアント251が、あらかじめ記憶した検証データ294に基づいてオフラインでユーザ認証を実施する段階である。
【0069】
[オフラインユーザ認証システム200の動作(1)−検証データ取得]
まず、検証データ294を取得する動作フローについて説明する。図5は、オフラインユーザ認証システム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に記憶される。
【0070】
次に、認証を受けようとするユーザは、ユーザID入力手段252を通じて、オフライン認証クライアント251において、ユーザID入力手段252により自分のユーザIDを入力ユーザID281として入力する(ステップS203)。ユーザは、典型的には、オフライン認証クライアント251がドメインネットワークに接続された状態で、オフライン認証クライアント251のWindowsのログオン認証画面297Aにおいて、ユーザー名フィールドに自己のユーザIDを入力し、ログオン先としてドメイン名を入力したユーザ認証の要求を行う。これによって、入力ユーザID281がオフライン認証クライアント251に入力される。続いて、ログオン認証画面297Bが表示され、従来のオンラインユーザ認証システム100で実施されていたユーザ認証方法と同様の方法によってユーザ認証が実施される。ユーザ認証が成功すると、次に、オフライン認証クライアント251は、検証データ要求手段253により、入力された入力ユーザID281を含む検証データ294の生成と出力の要求をオフライン認証支援サーバ201に送信する(ステップS205)。典型的には、ログオン認証画面297Aおよび297Bを表示させているログオン認証モジュール「SmxGinaDLL」が、オフライン認証支援サーバ201がネットワーク上に検証データ294の提供のためのリソースにアクセスして、入力ユーザID281の情報を含む、検証データ要求のデータを伝達する。当該リソースは、典型的には、HTTPSプロトコルでアクセス可能なJava(登録商標)サーブレットの形態である。次に、オフライン認証支援サーバ201は、要求受付手段203により、オフライン認証クライアント251から送信された入力ユーザID281を含む検証データ要求を受信する(ステップS207)。典型的には、オフライン認証支援サーバ201は、ユーザ認証支援アプリケーション201c2を動作させ、それによって入力ユーザID281を受信する。次に、オフライン認証支援サーバ201は、パターン発生手段204により、パターン要素列290を所定の発生規則によって複数発生させる(ステップS209)。所定の発生規則は、典型的には、64桁の乱数を発生させることである。図9には、パターン要素列290(選択前の状態)として、「25664796・・・1714」などが例示されている。
【0071】
次に、オフライン認証支援サーバ201は、検証コード生成手段206により、発生させた複数のパターン要素列290のそれぞれによって構成される提示パターン291のそれぞれに対応させて、オフライン認証クライアント251から受信した入力ユーザID281に関連付けられたワンタイムパスワード導出ルール202bをそれぞれの提示パターン291に含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コード293を複数生成する。(ステップS211)。次に、オフライン認証支援サーバ201は、パターン送信手段205により、発生した複数のパターン要素列290をオフライン認証クライアント251に送信する(ステップS213)。典型的には、オフライン認証支援サーバ201は、ユーザ認証支援アプリケーション201c2を動作させ、それによって複数のパターン要素列290をオフライン認証クライアント251に送信する。次に、オフライン認証クライアント251は、パターン受信手段254により、オフライン認証支援サーバ201から送信された複数のパターン要素列290を受信し、それを入力ユーザID281とともに検証データ記憶部261に記憶する(ステップS215)。典型的には、オフライン認証クライアント251上で動作しているログオン認証モジュール「SmxGinaDLL」が、複数のパターン要素列290を受信して記憶させる。次に、オフライン認証支援サーバ201は、検証コード送信手段211により、発生した複数の検証コード293をオフライン認証クライアント251に送信する(ステップS217)。典型的には、オフライン認証支援サーバ201は、ユーザ認証支援アプリケーション201c2を動作させ、それによって複数の検証コード293をオフライン認証クライアント251に送信する。次に、オフライン認証クライアント251は、検証コード受信手段262により、オフライン認証支援サーバ201から送信された複数の検証コード293を受信し、それを検証データ記憶部261に記憶する(ステップS219)。典型的には、オフライン認証クライアント251上で動作しているログオン認証モジュール「SmxGinaDLL」が、複数の検証コード293を受信して記憶させる。以上の動作によって、入力ユーザID281に対応した検証データ294がオフライン認証クライアント251に記憶され、オフラインユーザ認証の準備が完了したことになる。
【0072】
なお、検証データ要求は、オフライン認証支援サーバ201に直接入力することもできる。この場合、オフライン認証支援サーバ201に入力ユーザID281を含む検証データ要求を入力し、それに対応する検証データ294を記憶媒体などに出力させる。オフライン認証クライアント251は、当該記憶媒体から検証データ294を読み込ませて記憶させる。
【0073】
[オフラインユーザ認証システム200の動作(2)−ユーザ認証]
次に、オフラインでのユーザ認証の動作フローについて説明する。図6は、オフラインユーザ認証システム200のオフラインユーザ認証の動作フロー図である。まず、認証を受けようとするユーザは、ユーザID入力手段252を通じて、そのユーザIDをオフライン認証クライアント251に入力する(ステップS251)。ユーザは、典型的には、オフライン認証クライアント251がドメインネットワークに接続されていない状態で、オフライン認証クライアント251のWindowsのログオン認証画面297Aにおいて、ユーザー名フィールドに自己のユーザIDを入力し、ログオン先としてドメイン名またはコンピュータ名を指定したユーザ認証の要求を行うことによって、入力ユーザID281を入力する。次に、オフライン認証クライアント251は、パターン選択手段263により、入力ユーザID281が、検証データ記憶部261に記憶されているユーザID202aに含まれていることを確認する(ステップS253)。これによって、認証を受けようとするユーザに対応する検証データ294が記憶されており、オフラインユーザ認証を行うことができることを確認する。次に、オフライン認証クライアント251は、パターン選択手段263により、入力ユーザID281に関連付けられた複数のパターン要素列290の中から、所定の規則により1つのパターン要素列290を選択する(ステップS255)。選択されるパターン要素列290としては、好適には、次にオフライン認証支援サーバ201から検証データ294を新しく取得して記憶するまでは、記憶された複数のパターン要素列290のうち、当該ユーザの認証に使用するためにすでに選択されたものは選択されない。このようにすることによって、1回のオフラインユーザ認証ごとに、異なる提示パターン291を表示させることができ、総当り攻撃を排除できるため、よりセキュリティを向上させることができる。パターン要素列290が例えば100個記憶されている場合は、新しく検証データ294を取得するまでの間、連続して100回、オフラインユーザ認証を実施することができることになる。選択されていないパターン要素列290が少なくなってくると、その旨の警告が表示される。すべてのパターン要素列290が選択されてしまうと、それ以上の新しいユーザ認証はできない。次に、オフライン認証クライアント251は、検証コード特定手段262により、入力ユーザID281に関連付けられた複数の検証コード293の中から、ステップS255で選択されたパターン要素列290に対応する検証コードを特定する(ステップS257)。次に、オフライン認証クライアント251は、パターン表示手段263により、選択されたパターン要素列290のそれぞれのパターン要素を4つの4×4のマトリクスからなるパターンのそれぞれの要素の位置に配置した提示パターン291の画像を生成し、それをオフライン認証クライアント251の画面に表示させる(ステップS259)。典型的には、図14に示されるように、ログオン認証画面297Aに続いて、提示パターン291を含むログオン認証画面297Bが表示させられる。
【0074】
次に、認証を受けようとするユーザは、オフライン認証クライアント251の画面に表示された提示パターン291の特定の位置に表示されたパターン要素を選択したり、提示パターン291に基づかない数字などのキャラクターを入力したりすることを順番に実施することによって、自分のワンタイムパスワード導出ルール202bを提示パターン291に適用した結果であるワンタイムパスワード292をオフライン認証クライアント251に入力する。オフライン認証クライアント251は、ワンタイムパスワード入力手段256により、ワンタイムパスワード292の入力を受け付ける(ステップS261)。
【0075】
次に、オフライン認証クライアント251は、ユーザ認証手段265により、入力されたワンタイムパスワード292に検証コード293の生成時に使用したものと同じ一方向関数演算を実施したものと特定された検証コード293とを比較し、それらが等しければ、当該ユーザのユーザ認証を成功させる(ステップS263)。
【0076】
[第2の実施形態に係るオフラインユーザ認証システム300のハードウェア構成]
次に、本発明の第2の実施形態に係るオフラインユーザ認証システム300の説明を、オフラインユーザ認証システム200との相違点を中心に説明する。オフラインユーザ認証システム300では、オフラインユーザ認証において、パターン要素列290ではなくパターンシード値383を使用する点がオフラインユーザ認証システム200と異なるが、その他はほぼ同様の構成であり、同様の特徴を有している。まず、本発明の第2の実施形態に係るオフラインユーザ認証システム300の構成の説明をする。図2は、本発明の一実施形態に係るオフラインユーザ認証システム300のハードウェア構成図である。図2を参照すると、オフラインユーザ認証システム300は、大きく、オフライン認証支援サーバ301とオフライン認証クライアント351とから構成される。オフライン認証支援サーバ301は、オフライン認証支援サーバ201と同様の構成である。オフライン認証クライアント351は、オフライン認証クライアント251とほぼ同様の構成であるが、記憶装置351cにおいて、OS351c1内にシード値選択・パターン生成モジュール351c3が記憶されている点、および検証データ記憶部361にパターンシード値383が記憶されている点が異なっている。検証データ記憶部361は、複数のパターンシード値383、複数の検証コード393を記憶する。それらの複数のパターンシード値383、複数の検証コード393をまとめて検証データ394と呼ぶ。
【0077】
オフライン認証支援サーバ301を構成する各構成要素は、オフライン認証支援サーバ201の各構成要素とほぼ同じ機能を有している。ただし、ユーザ認証支援アプリケーション301c2は、OS301c1上で動作する、パターンシード値383および検証コード394を生成してそれをオフライン認証クライアント351に伝達するためのアプリケーションソフトウェアである。
【0078】
オフライン認証クライアント351は、オフラインユーザ認証システム300において、ユーザからの認証要求に応答してオフラインの状態で認証を実施する構成要素であり、OS351c1、検証データ要求モジュール351c2、シード値選択・パターン生成モジュール351c3、検証コード特定・認証モジュール351c4などがインストールされた端末であり、以下の構成要素を除き、オフライン認証クライアント251とほぼ同じ機能を有している。
【0079】
シード値選択・パターン生成モジュール351c3は、OS351c1とともに動作する、検証データ394に含まれる複数のパターンシード値383から1つのパターンシード値383を所定の選択規則によって選択し、それに基づいてパターン要素列390を生成し、さらに提示パターン391を生成するプログラムである。
【0080】
[第2の実施形態に係るオフラインユーザ認証システム300の機能ブロック構成]
図4は、本発明の一実施形態に係るオフラインユーザ認証システム300のブロック図である。図4は、図2に示したハードウェア構成のオフラインユーザ認証システム300を、ソフトウェアとハードウェア資源とが協働して実施される情報処理の観点から表現した図であり、当該情報処理を機能ブロックの単位で表わした図である。図4において、オフライン認証支援サーバ301は、パスワード記憶部302、要求受付手段303、パターンシード値発生手段321、パターンシード値送信手段322、検証コード生成手段306、検証コード送信手段311から構成される。これらの機能ブロックは、ユーザ認証支援アプリケーション301c2の必要部分がOS301c1の必要部分とともに記憶装置301cからRAM301b上に読み込まれ、それらのソフトウェアがCPU301aによって実行されることによって、RAM301b、記憶装置301c、ユーザI/F301d、外部/ネットワークI/F301eなどのハードウェア要素とも適宜協働して実現されるものである。
【0081】
パスワード記憶部302、要求受付手段303は、オフラインユーザ認証システム200の対応する構成要素と同様の構成である。パターンシード値発生手段321は、ユーザIDとともにに提示パターン391を規定する値であるパターンシード値383を所定の発生規則により複数複数発生させる構成要素であり、CPU301a、RAM301bなどがソフトウェアと協働することによって実現される機能ブロックである。パターンシード値送信手段322は、発生させられた複数のパターンシード値383を、オフライン認証クライアント351に記憶させるために出力する構成要素であり、CPU301a、RAM301b、ユーザI/F301dあるいは外部/ネットワークI/F301eなどがソフトウェアと協働することによって実現される機能ブロックである。複数のパターンシード値383は、ネットワークを通じてオフライン認証クライアント351に送信されてもよいし、記憶媒体に出力されてもよい。検証コード生成手段306は、要求受付手段303を通じて入力された入力ユーザID381および発生させられたそれぞれのパターンシード値383に基づいて所定のパターン要素列生成規則により生成されるパターン要素列390から構成される提示パターン391のそれぞれに対応させて、当該入力ユーザID381に関連付けられたワンタイムパスワード導出ルール302bをそれぞれの提示パターン391に含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コード393を複数生成する構成要素であり、CPU301a、RAM301bなどがソフトウェアと協働することによって実現される機能ブロックである。検証コード送信手段311は、オフラインユーザ認証システム200の対応する構成要素と同様の構成である。
【0082】
オフライン認証クライアント351は、ユーザID入力手段352、検証データ要求手段353、パターン表示手段355、ワンタイムパスワード入力手段356、検証データ記憶部361、検証コード受信手段362、検証コード特定手段364、ユーザ認証手段365、パターンシード値受信手段371、パターンシード値選択手段372、パターン要素列生成手段373から構成される。これらの機能ブロックは、ブラウザアプリケーション301c2の必要部分、提示パターン生成モジュール351c3がOS351c1の必要部分とともに記憶装置351cからRAM351b上に読み込まれ、それらのソフトウェアがCPU351aによって実行されることによって、RAM351b、記憶装置351c、ユーザI/F351d、外部/ネットワークI/F351eなどのハードウェア要素とも適宜協働して実現されるものである。オフライン認証クライアント351がネットワークを通じてオフライン認証支援サーバ301から検証データ394を取得しない場合は、検証データ要求手段353は必ずしも必要ない。
【0083】
ユーザID入力手段352、検証データ要求手段353は、オフラインユーザ認証システム200の対応する構成要素と同様の構成である。パターン表示手段355は、パターン要素列生成手段373によって生成されたパターン要素列390のパターン要素を所定パターン391pに配列して提示パターン391を生成し、それを画面に表示させる構成要素であり、CPU351a、RAM351b、ユーザI/F351dなどがソフトウェアと協働することによって実現される機能ブロックである。ワンタイムパスワード入力手段356は、オフラインユーザ認証システム200の対応する構成要素と同様の構成である。検証データ記憶部361は、あるユーザのための複数のパターンシード値383および複数の検証コード393から構成される検証データ394を、当該ユーザのユーザID302aと関連付けて記憶する構成要素であり、CPU301a、RAM301b、記憶装置301cなどがソフトウェアと協働することによって実現される機能ブロックである。検証データ記憶部361が記憶する検証データ394は、パターンシード値受信手段371および検証コード受信手段362から取得され、それらを取得したときに使用されているユーザIDがユーザID302aとして対応付けられて記憶される。検証データ記憶部361は、複数のユーザの検証データ394を記憶することができる。検証コード受信手段362は、オフラインユーザ認証システム200の対応する構成要素と同様の構成である。検証コード特定手段364は、パターンシード値選択手段372で選択されたパターンシード値383に対応する検証コード393を特定する構成要素であり、CPU351a、RAM351b、記憶装置351cなどがソフトウェアと協働することによって実現される機能ブロックである。ユーザ認証手段365は、オフラインユーザ認証システム200の対応する構成要素と同様の構成である。パターンシード値受信手段371は、オフライン認証支援サーバ301で生成された検証データ394を構成する複数のパターンシード値383を取得する構成要素であり、CPU351a、RAM351b、ユーザI/F351dまたは外部/ネットワークI/F351eなどがソフトウェアと協働することによって実現される機能ブロックである。複数のパターンシード値383は、オフライン認証支援サーバ301からネットワークを通じて取得してもよく、それを記憶した記憶媒体から取得してもよい。パターンシード値選択手段372は、入力ユーザID381に等しいユーザIDがユーザID302aに記憶されているかどうかを確認し、入力ユーザID381に等しいユーザIDがあった場合は、そのユーザIDに関連付けられている検証データ394に含まれる複数のパターンシード値383の中から所定の規則により1つを選択することによって、入力ユーザID381とともに提示パターン391を生成するパターンシード値383を選択する構成要素であり、CPU351a、RAM351b、記憶装置351cなどがソフトウェアと協働することによって実現される機能ブロックである。パターン要素列生成手段373は、パターンシード値選択手段372によって選択されたパターンシード値383と入力ユーザID381とに基づいて所定の生成規則により提示パターン391に含まれるパターン要素を生成する構成要素であり、CPU351a、RAM351bなどがソフトウェアと協働することによって実現される機能ブロックである。
【0084】
本実施形態においては、オフラインユーザ認証システム300は、具体的にはオフラインユーザ認証システム200と同様の構成を有するものとする。
【0085】
[オフラインユーザ認証システム300の動作]
これから、オフラインユーザ認証システム300の動作について説明する。オフラインユーザ認証システム300の動作は、大きく2つの段階に分けることができる。1つの段階は、オフラインユーザ認証システム300が、ユーザ認証を受けることになるユーザのための検証データ394を生成させて、それをあらかじめ取得して記憶する段階である。もう1つの段階は、ユーザ認証を受けようとするユーザに対して、オフライン認証クライアント351が、あらかじめ記憶した検証データ394に基づいてユーザ認証を実施する段階である。
【0086】
[オフラインユーザ認証システム300の動作(1)−検証データ取得]
まず、検証データ394を取得する動作フローについて説明する。図7は、オフラインユーザ認証システム300の検証データ取得の動作フロー図である。まず、オフラインユーザ認証システム300で認証を受けることになるユーザは、そのユーザID302aとパスワードであるワンタイムパスワード導出ルール302bとをあらかじめオフライン認証支援サーバ301に入力して登録しておく。パスワード記憶部302は、そのユーザのユーザID302aとワンタイムパスワード導出ルール302bとをお互いに関連付けてユーザの認証に先立ってあらかじめ記憶する(ステップS301)。
【0087】
次に、認証を受けようとするユーザは、ユーザID入力手段352を通じて、オフライン認証クライアント351において、ユーザID入力手段352により自分のユーザIDを入力ユーザID381として入力する(ステップS303)。次に、オフライン認証クライアント351は、検証データ要求手段353により、入力された入力ユーザID381を含む検証データ394の生成と出力の要求をオフライン認証支援サーバ301に送信する(ステップS305)。次に、オフライン認証支援サーバ301は、要求受付手段303により、オフライン認証クライアント351から送信された入力ユーザID381を含む検証データ要求を受信する(ステップS307)。次に、オフライン認証支援サーバ301は、パターンシード値発生手段321により、パターンシード値383を所定の発生規則によって複数発生させる(ステップS309)。所定の発生規則は、典型的には、所定の範囲内の乱数を発生させることである。図10には、パターンシード値383として、16進数で表わした「284E17・・・39D0」などが例示されている。パターンシード値383は、例えば、8バイトのような所定のビット長の数字列で表わすことができ、この場合、当該所定の範囲とは、16進数で「0000000000000000」から「FFFFFFFFFFFFFFFF」の範囲となる。従って、同一の入力ユーザID302aに対しては、当該所定の範囲の任意の数字列をパターンシード値383とすることができるため、最大で当該所定の範囲の数だけ異なる提示パターン391を生成することが可能となる。
【0088】
次に、オフライン認証支援サーバ301は、検証コード生成手段306により、入力ユーザID381および発生させられたそれぞれのパターンシード値383に基づいて所定のパターン要素列生成規則により生成されるパターン要素列390から構成される提示パターン391のそれぞれに対応させて、当該入力ユーザID381に関連付けられたワンタイムパスワード導出ルール302bをそれぞれの提示パターン391に含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コード393を複数生成する。(ステップS311)。次に、オフライン認証支援サーバ301は、パターンシード値送信手段322により、発生した複数のパターンシード値383をオフライン認証クライアント351に送信する(ステップS313)。次に、オフライン認証クライアント351は、パターンシード値受信手段371により、オフライン認証支援サーバ301から送信された複数のパターンシード値383を受信し、それを入力ユーザID381とともに検証データ記憶部361に記憶する(ステップS315)。次に、オフライン認証支援サーバ301は、検証コード送信手段311により、発生した複数の検証コード393をオフライン認証クライアント351に送信する(ステップS317)。次に、オフライン認証クライアント351は、検証コード受信手段362により、オフライン認証支援サーバ301から送信された複数の検証コード393を受信し、それを検証データ記憶部361に記憶する(ステップS319)。以上の動作によって、入力ユーザID381に対応した検証データ394がオフライン認証クライアント351に記憶され、オフラインユーザ認証の準備が完了したことになる。
【0089】
なお、検証データ要求は、オフライン認証支援サーバ301に直接入力することもできる。この場合、オフライン認証支援サーバ301に入力ユーザID381を含む検証データ要求を入力し、それに対応する検証データ394を記憶媒体などに出力させる。オフライン認証クライアント351は、当該記憶媒体から検証データ394を読み込ませて記憶させる。
【0090】
[オフラインユーザ認証システム300の動作(2)−ユーザ認証]
次に、オフラインでのユーザ認証の動作フローについて説明する。図8は、オフラインユーザ認証システム300のオフラインユーザ認証の動作フロー図である。まず、認証を受けようとするユーザは、ユーザID入力手段352を通じて、そのユーザIDをオフライン認証クライアント351に入力する(ステップS351)。次に、オフライン認証クライアント351は、パターンシード値選択手段372により、入力ユーザID381が、検証データ記憶部361に記憶されているユーザID302aに含まれていることを確認する(ステップS353)。次に、オフライン認証クライアント351は、パターンシード値選択手段372により、入力ユーザID381に関連付けられた複数のパターンシード値383の中から、所定の規則により1つのパターンシード値383を選択する(ステップS355)。次に、オフライン認証クライアント351は、検証コード特定手段362により、入力ユーザID381に関連付けられた複数の検証コード393の中から、ステップS355で選択されたパターンシード値383に対応する検証コードを特定する(ステップS357)。次に、オフライン認証クライアント351は、パターン要素列生成手段373により、ステップS351で入力されている入力ユーザID381と、ステップS355で選択されたパターンシード値383とに基づいて所定のパターン要素列生成規則により提示パターン391を構成するパターン要素列390を生成する(ステップS359)。所定のパターン要素列生成規則とは、入力ユーザID381とパターンシード値383との組み合わせに対してユニークに決定されるパターン要素列であって、そのパターン要素列だけからは元の入力ユーザID381とパターンシード値383とを推定することが極めて困難なものを発生させる規則であって、典型的には、以下に述べるような、入力ユーザID381とパターンシード値383との組み合わせを一種の初期値とした暗号化演算によるものである。図11は、提示パターン391の生成方法の概念図である。ここでは、「User」という入力ユーザID381と「284E17・・・39D0」というパターンシード値383とに基づいてパターン要素列390が生成される。そのために、まず、入力ユーザID381とパターンシード値383の組み合わせから、所定の数字列を一意的に生成する。図11の第1段及び第2段に示した例では、それぞれ16進数で表わした入力ユーザID381とパターンシード値383とを結合して所定の数字列を生成している。入力ユーザID381とパターンシード値383との組み合わせ方としては、他には、加算、減算、排他的論理和、などのあらゆる演算を使用して組み合わせることができる。次に、その所定の数字列に対して暗号化演算を実施して、所定のビット長のビット列384を生成する。ここでは、所定のビット長は、64の数字からなる提示パターン391を生成するために十分な情報量である256ビットである。暗号化演算としては、演算結果から元の数字列を求めることが事実上不可能なものであればよく、ハッシュ関数演算、共通鍵暗号化演算、などを使用することができる。例えば、ハッシュ関数としてSHA256を使用して、その所定の数字列を暗号化すると、256ビットのビット列384を生成することができる。また、共通鍵暗号化演算としてAESを使用して、その所定の数字列から鍵を生成し、その鍵によってあらかじめ適当に設定した256ビットの数字列を暗号化すると、256ビットのビット列384を生成することができる。また、それらのハッシュ関数演算と共通鍵暗号化演算とを組み合わせることもできる。なお、図11に示したビット列384「0111001011001101・・・11010」の値は説明のための例示であり、正確なSHA256演算の結果を示したものではない。次に、256ビットのビット列384を77桁の十進数に変換し、そこから64桁の数字を抽出してパターン要素列390とする。なお、図11に示したパターン要素列390「38064655・・・1017」の値は説明のための例示であり、正確な変換・抽出の結果を示したものではない。64桁の数字の抽出は、不要な上位ビット列の削除、不要な下位ビット列の削除、割算などのあらゆる演算を使用することができる。次に、オフライン認証クライアント351は、パターン表示手段363により、生成されたパターン要素列390のそれぞれのパターン要素を4つの4×4のマトリクスからなるパターンのそれぞれの要素の位置に配置した提示パターン391の画像を生成し、それをオフライン認証クライアント351の画面に表示させる(ステップS361)。
【0091】
次に、オフライン認証クライアント351は、ワンタイムパスワード入力手段356により、ワンタイムパスワード392の入力を受け付ける(ステップS363)。次に、オフライン認証クライアント351は、ユーザ認証手段365により、入力されたワンタイムパスワード392に検証コード393の生成時に使用したものと同じ一方向関数演算を実施したものと特定された検証コード393とを比較し、それらが等しければ、当該ユーザのユーザ認証を成功させる(ステップS363)。
【0092】
なお、以上に説明した動作フローにおいて、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの動作フロー上の矛盾が生じない限りにおいて、動作フローを自由に変更することができる。
【0093】
以上に説明してきた各実施形態は、本発明を説明するための例示であり、本発明はこれらの実施形態に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
【図面の簡単な説明】
【0094】
【図1】本発明の一実施形態に係るオフラインユーザ認証システム200のハードウェア構成図である。
【図2】本発明の一実施形態に係るオフラインユーザ認証システム300のハードウェア構成図である。
【図3】本発明の一実施形態に係るオフラインユーザ認証システム200のブロック図である。
【図4】本発明の一実施形態に係るオフラインユーザ認証システム300のブロック図である。
【図5】本発明の一実施形態に係るオフラインユーザ認証システム200の検証データ取得の動作フロー図である。
【図6】本発明の一実施形態に係るオフラインユーザ認証システム200のオフラインユーザ認証の動作フロー図である。
【図7】本発明の一実施形態に係るオフラインユーザ認証システム300の検証データ取得の動作フロー図である。
【図8】本発明の一実施形態に係るオフラインユーザ認証システム300のオフラインユーザ認証の動作フロー図である。
【図9】本発明の一実施形態に係るオフラインユーザ認証システム200における提示パターンの生成方法の概念図である。
【図10】本発明の一実施形態に係るオフラインユーザ認証システム300における提示パターンの生成方法の概念図である。
【図11】本発明の一実施形態に係るオフラインユーザ認証システム200における提示パターンの生成方法の概念図であり、図10の続きである。
【図12】マトリクス認証方式におけるワンタイムパスワード導出ルールの概念図である。
【図13】マトリクス認証方式におけるワンタイムパスワード入力方法の概念図である。
【図14】オフラインユーザ認証システム200、300におけるWindowsログオン認証画面のイメージ図である。
【図15】従来のマトリクス認証方式のオンラインユーザ認証システム100のブロック図である。
【図16】従来のマトリクス認証方式のオンラインユーザ認証システム100における提示パターンの生成方法の概念図である。
【符号の説明】
【0095】
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 要求受付手段
204 パターン発生手段
205 パターン送信手段
206 検証コード生成手段
211 検証コード送信手段
251 オフライン認証クライアント
251a CPU
251b RAM
251c 記憶装置
251c1 OS
251c2 検証データ要求モジュール
251c3 提示パターン選択・生成モジュール
251c4 検証コード特定・認証モジュール
251d ユーザインターフェース(I/F)
251e 外部/ネットワークインターフェース(I/F)
252 ユーザID入力手段
253 検証データ要求手段
254 パターン受信手段
255 パターン表示手段
256 ワンタイムパスワード入力手段
262 検証コード受信手段
263 パターン選択手段
264 検証コード特定手段
265 ユーザ認証手段
281 入力ユーザID
284 ビット列
290 パターン要素列
291 提示パターン
291p 所定パターン
292 ワンタイムパスワード
293 検証コード
294 検証データ
296 キーボード
297A ログオン認証画面
297B ログオン認証画面
300 オフラインユーザ認証システム
301 オフライン認証支援サーバ
301a CPU
301b RAM
301c 記憶装置
301c1 OS
301c2 ユーザ認証支援アプリケーション
301d ユーザインターフェース(I/F)
301e 外部/ネットワークインターフェース(I/F)
302 パスワード記憶部
302a ユーザID
302b ワンタイムパスワード導出ルール
303 要求受付手段
304 パターン発生手段
305 パターン送信手段
306 検証コード生成手段
311 検証コード送信手段
351 オフライン認証クライアント
351a CPU
351b RAM
351c 記憶装置
351c1 OS
351c2 検証データ要求モジュール
351c3 シード値選択・パターン生成モジュール
351c4 検証コード特定・認証モジュール
351d ユーザインターフェース(I/F)
351e 外部/ネットワークインターフェース(I/F)
352 ユーザID入力手段
353 検証データ要求手段
355 パターン表示手段
356 ワンタイムパスワード入力手段
362 検証コード受信手段
364 検証コード特定手段
365 ユーザ認証手段
371 パターンシード値受信手段
372 パターンシード値選択手段
373 パターン要素列生成手段
381 入力ユーザID
383 パターンシード値
384 ビット列
390 パターン要素列
391 提示パターン
391p 所定パターン
392 ワンタイムパスワード
393 検証コード
394 検証データ
396 キーボード
397A ログオン認証画面
397B ログオン認証画面

【特許請求の範囲】
【請求項1】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムであって、
前記ユーザのユーザIDおよびパスワードを管理するオフライン認証支援サーバと、
前記オフライン認証支援サーバとネットワークで接続可能であるがネットワーク非接続状態であるオフラインで前記ユーザの認証を行う端末であるオフライン認証クライアントと、を有し、
前記オフライン認証クライアントは、
前記ユーザから前記ユーザIDの入力を受け付けるユーザID入力手段と、
入力された前記ユーザIDを前記オフライン認証支援サーバに前記ネットワークを通じて送信するユーザID送信手段と、
を有し、
前記オフライン認証支援サーバは、
あらかじめ前記ユーザのユーザIDと当該ユーザのワンタイムパスワード導出ルールとをお互いに関連付けて記憶するパスワード記憶部と、
前記提示パターンを構成するパターン要素の集合であるパターン要素列を所定の発生規則により複数発生するパターン発生手段と、
認証を受けようとするユーザのユーザIDを前記オフライン認証クライアントから前記ネットワークを通じて受信するユーザID受信手段と、
前記パターン発生手段で発生させられた複数の前記パターン要素列のそれぞれによって構成される前記提示パターンのそれぞれに対応させて、受信した前記ユーザIDに関連付けられた前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードを複数生成する検証コード生成手段と、
発生させられた複数の前記パターン要素列を、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信するパターン送信手段と、
生成された複数の前記検証コードを、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信する検証コード送信手段と、
を有し、
前記オフライン認証クライアントは、
前記オフライン認証支援サーバから送信された複数の前記パターン要素列を前記ネットワークを通じて受信するパターン受信手段と、
受信した複数の前記パターン要素列を記憶するパターン記憶部と、
前記オフライン認証支援サーバから送信された複数の前記検証コードを前記ネットワークを通じて受信する検証コード受信手段と、
受信した複数の前記検証コードを記憶する検証コード記憶部と、
前記パターン記憶部が記憶する複数の前記パターン要素列のうちの1つのパターン要素列を前記ユーザの認証に使用するために選択するパターン選択手段と、
選択された前記パターン要素列に対応する検証コードを特定する検証コード特定手段と、
選択された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるパターン表示手段と、
前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるワンタイムパスワード入力手段と、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるユーザ認証手段と、
をさらに有することを特徴とするオフラインユーザ認証システム。
【請求項2】
請求項1に記載のオフラインユーザ認証システムにおいて、
前記パターン選択手段は、次に前記オフライン認証支援サーバに接続されて前記パターン要素列および前記検証コードを新しく受信して記憶するまでは、記憶された複数の前記パターン要素列のうち、前記ユーザの認証に使用するためにすでに選択されたものは選択しないように構成されているオフラインユーザ認証システム。
【請求項3】
請求項1または2に記載のオフラインユーザ認証システムにおいて、
前記パターン要素列および前記検証コードは前記オフライン認証クライアント内に記憶される際に暗号化されるオフラインユーザ認証システム。
【請求項4】
請求項1から3のいずれか1項に記載のオフラインユーザ認証システムにおいて、
前記オフライン認証支援サーバは、前記オフライン認証クライアントが前記オフライン認証支援サーバとの間の前記ネットワークへの前記ユーザIDを使用したユーザ認証が成功してオンラインの状態になった直後に動作させられるオフラインユーザ認証システム。
【請求項5】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムであって、
前記ユーザのユーザIDおよびパスワードを管理するオフライン認証支援サーバと、
前記オフライン認証支援サーバとネットワークで接続可能であるがネットワーク非接続状態であるオフラインで前記ユーザの認証を行う端末であるオフライン認証クライアントと、を有し、
前記オフライン認証クライアントは、
前記ユーザから前記ユーザIDの入力を受け付けるユーザID入力手段と、
入力された前記ユーザIDを前記オフライン認証支援サーバに前記ネットワークを通じて送信するユーザID送信手段と、
を有し、
前記オフライン認証支援サーバは、
あらかじめ前記ユーザのユーザIDと当該ユーザのワンタイムパスワード導出ルールとをお互いに関連付けて記憶するパスワード記憶部と、
前記ユーザIDと組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値を所定の発生規則により複数発生するパターンシード値発生手段と、
認証を受けようとするユーザのユーザIDを前記オフライン認証クライアントから前記ネットワークを通じて受信するユーザID受信手段と、
受信した前記ユーザIDおよび発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させて、当該ユーザIDに関連付けられた前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードを複数生成する検証コード生成手段と、
発生させられた複数の前記パターンシード値を、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信するパターンシード値送信手段と、
生成された複数の前記検証コードを、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信する検証コード送信手段と、
を有し、
前記オフライン認証クライアントは、
前記オフライン認証支援サーバから送信された複数の前記パターンシード値を前記ネットワークを通じて受信するパターンシード値受信手段と、
受信した複数の前記パターンシード値を記憶するパターンシード値記憶部と、
前記オフライン認証支援サーバから送信された複数の前記検証コードを前記ネットワークを通じて受信する検証コード受信手段と、
受信した複数の前記検証コードを記憶する検証コード記憶部と、
前記パターンシード値記憶部が記憶する複数の前記パターンシード値のうちの1つのパターンシード値を前記ユーザの認証に使用するために選択するパターンシード値選択手段と、
選択された前記パターンシード値に対応する検証コードを特定する検証コード特定手段と、
入力された前記ユーザIDと選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するパターン要素列生成手段と、
生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるパターン表示手段と、
前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるワンタイムパスワード入力手段と、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるユーザ認証手段と、
をさらに有することを特徴とするオフラインユーザ認証システム。
【請求項6】
請求項5に記載のオフラインユーザ認証システムにおいて、
前記パターンシード値選択手段は、次に前記オフライン認証支援サーバに接続されて前記パターンシード値および前記検証コードを新しく受信して記憶するまでは、記憶された複数の前記パターンシード値のうち、前記ユーザの認証に使用するためにすでに選択されたものは選択しないように構成されているオフラインユーザ認証システム。
【請求項7】
請求項5または6に記載のオフラインユーザ認証システムにおいて、
前記パターンシード値および前記検証コードは前記オフライン認証クライアント内に記憶される際に暗号化されるオフラインユーザ認証システム。
【請求項8】
請求項5から7のいずれか1項に記載のオフラインユーザ認証システムにおいて、
前記オフライン認証支援サーバは、前記オフライン認証クライアントが前記オフライン認証支援サーバとの間の前記ネットワークへの前記ユーザIDを使用したユーザ認証が成功してオンラインの状態になった直後に動作させられるオフラインユーザ認証システム。
【請求項9】
請求項5に記載のオフラインユーザ認証システムにおいて、
前記パターン要素列生成手段の前記パターン要素列生成規則は、所定の初期キャラクター文字列に対して、前記ユーザIDおよび前記パターンシード値に基づく値を鍵として共通鍵暗号化アルゴリズム演算を適用した結果に基づいて、前記パターン要素列を生成するものであるオフラインユーザ認証システム。
【請求項10】
請求項5に記載のオフラインユーザ認証システムにおいて、
前記パターン要素列生成手段の前記パターン要素列生成規則は、前記ユーザIDおよび前記パターンシード値に基づく値にハッシュ関数演算を適用した結果に基づいて前記パターン要素列を生成するものであるオフラインユーザ認証システム。
【請求項11】
請求項1から10のいずれか1項に記載のオフラインユーザ認証システムにおいて、
前記ワンタイムパスワード導出ルールは、前記提示パターンに含まれるパターン要素のそれぞれの位置と、当該それぞれのパターン要素の位置が選択される順番との組み合わせであるオフラインユーザ認証システム。
【請求項12】
請求項11に記載のオフラインユーザ認証システムにおいて、
前記ワンタイムパスワード導出ルールは、前記提示パターンに含まれる選択されるパターン要素のそれぞれの位置および当該提示パターンに基づかないで入力されるキャラクターのそれぞれと、当該それぞれのパターン要素の位置および当該それぞれのキャラクターが選択あるいは入力される順番との組み合わせであるオフラインユーザ認証システム。
【請求項13】
請求項11または12に記載のオフラインユーザ認証システムにおいて、
前記提示パターンに含まれるそれぞれのパターン要素は0から9までの数字および記号から選択されるオフラインユーザ認証システム。
【請求項14】
請求項13に記載のオフラインユーザ認証システムにおいて、
前記提示パターンに含まれるそれぞれのパターン要素は0から9までの数字から選択されるオフラインユーザ認証システム。
【請求項15】
請求項14に記載のオフラインユーザ認証システムにおいて、
前記提示パターンに含まれる複数のパターン要素が配列される前記所定パターンは、前記パターン要素を縦m個×横n個のそれぞれの位置に全体が方形を形成するように配置したマトリクスを含むオフラインユーザ認証システム。
【請求項16】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとし、前記ユーザのユーザIDおよびパスワードを管理するオフライン認証支援サーバと、前記オフライン認証支援サーバとネットワークで接続可能であるオフライン認証クライアントにおいてネットワーク非接続状態であるオフラインで前記ユーザの認証を行うオフラインユーザ認証方法であって、
前記オフライン認証支援サーバが、あらかじめ前記ユーザのユーザIDと当該ユーザのワンタイムパスワード導出ルールとをお互いに関連付けて記憶するステップと、
前記オフライン認証クライアントが、認証を受けようとするユーザのユーザIDの入力を受け付けるステップと、
前記オフライン認証クライアントが、入力された前記ユーザIDを前記オフライン認証支援サーバに前記ネットワークを通じて送信するステップと、
前記オフライン認証支援サーバが、認証を受けようとするユーザのユーザIDを前記オフライン認証クライアントから前記ネットワークを通じて受信するステップと、
前記オフライン認証支援サーバが、前記提示パターンを構成するパターン要素の集合であるパターン要素列を所定の発生規則により複数発生するステップと、
前記オフライン認証支援サーバが、発生させられた複数の前記パターン要素列のそれぞれによって構成される前記提示パターンのそれぞれに対応させて、受信した前記ユーザIDに関連付けられた前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードを複数生成するステップと、
前記オフライン認証支援サーバが、発生させられた複数の前記パターン要素列を、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信するステップと、
前記オフライン認証支援サーバが、生成された複数の前記検証コードを、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信するステップと、
前記オフライン認証クライアントが、前記オフライン認証支援サーバから送信された複数の前記パターン要素列を前記ネットワークを通じて受信するステップと、
前記オフライン認証クライアントが、受信した複数の前記パターン要素列を記憶するステップと、
前記オフライン認証クライアントが、前記オフライン認証支援サーバから送信された複数の前記検証コードを前記ネットワークを通じて受信するステップと、
前記オフライン認証クライアントが、受信した複数の前記検証コードを記憶するステップと、
前記オフライン認証クライアントが、記憶された複数の前記パターン要素列のうちの1つのパターン要素列を前記ユーザの認証に使用するために選択するステップと、
前記オフライン認証クライアントが、選択された前記パターン要素列に対応する検証コードを特定するステップと、
前記オフライン認証クライアントが、選択された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
前記オフライン認証クライアントが、前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を前記ユーザから受け付けるステップと、
前記オフライン認証クライアントが、入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるステップと、
を有することを特徴とするオフラインユーザ認証方法。
【請求項17】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとし、前記ユーザのユーザIDおよびパスワードを管理するオフライン認証支援サーバと、前記オフライン認証支援サーバとネットワークで接続可能であるオフライン認証クライアントにおいてネットワーク非接続状態であるオフラインで前記ユーザの認証を行うオフラインユーザ認証方法であって、
前記オフライン認証支援サーバが、あらかじめ前記ユーザのユーザIDと当該ユーザのワンタイムパスワード導出ルールとをお互いに関連付けて記憶するステップと、
前記オフライン認証クライアントが、認証を受けようとするユーザのユーザIDの入力を受け付けるステップと、
前記オフライン認証クライアントが、入力された前記ユーザIDを前記オフライン認証支援サーバに前記ネットワークを通じて送信するステップと、
前記オフライン認証支援サーバが、前記ユーザIDと組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値を所定の発生規則により複数発生するステップと、
前記オフライン認証支援サーバが、認証を受けようとするユーザのユーザIDを前記オフライン認証クライアントから前記ネットワークを通じて受信するステップと、
前記オフライン認証支援サーバが、受信した前記ユーザIDおよび発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させて、当該ユーザIDに関連付けられた前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に前記一方向関数演算を実施したものである検証コードを複数生成するステップと、
前記オフライン認証支援サーバが、発生させられた複数の前記パターンシード値を、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信するステップと、
前記オフライン認証支援サーバが、生成された複数の前記検証コードを、認証を受けるユーザのオフライン認証クライアントに前記ネットワークを通じて送信するステップと、
前記オフライン認証クライアントが、前記オフライン認証支援サーバから送信された複数の前記パターンシード値を前記ネットワークを通じて受信するステップと、
前記オフライン認証クライアントが、受信した複数の前記パターンシード値を記憶するステップと、
前記オフライン認証クライアントが、前記オフライン認証支援サーバから送信された複数の前記検証コードを前記ネットワークを通じて受信するステップと、
前記オフライン認証クライアントが、受信した複数の前記検証コードを記憶するステップと、
前記オフライン認証クライアントが、記憶された複数の前記パターンシード値のうちの1つのパターンシード値を前記ユーザの認証に使用するために選択するステップと、
前記オフライン認証クライアントが、選択された前記パターンシード値に対応する検証コードを特定するステップと、
前記オフライン認証クライアントが、入力された前記ユーザIDと選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するステップと、
前記オフライン認証クライアントが、生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
前記オフライン認証クライアントが、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を前記ユーザから受け付けるステップと、
前記オフライン認証クライアントが、入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるステップと、
を有することを特徴とするオフラインユーザ認証方法。
【請求項18】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムにおける、オフラインで前記ユーザの認証を行う端末であるオフライン認証クライアントであって、
所定の発生規則によりあらかじめ複数発生させられた前記提示パターンを構成するパターン要素の集合であるパターン要素列の入力をあらかじめ受け付けるパターン入力手段と、
入力された複数の前記パターン要素列をあらかじめ記憶するパターン記憶部と、
前記あらかじめ入力された複数の前記パターン要素列のそれぞれによって構成される前記提示パターンのそれぞれに対応させてあらかじめ複数生成された、認証を受けようとするユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付ける検証コード入力手段と、
入力された複数の前記検証コードをあらかじめ記憶する検証コード記憶部と、
認証を受けようとするユーザから前記ユーザIDの入力を受け付けるユーザID入力手段と、
前記パターン記憶部があらかじめ記憶している複数の前記パターン要素列のうちの1つのパターン要素列を前記ユーザの認証に使用するために選択するパターン選択手段と、
選択された前記パターン要素列に対応する検証コードを特定する検証コード特定手段と、
選択された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるパターン表示手段と、
認証を受けようとする前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるワンタイムパスワード入力手段と、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるユーザ認証手段と、
を有することを特徴とするオフライン認証クライアント。
【請求項19】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムにおける、オフラインで前記ユーザの認証を行う端末であるオフライン認証クライアントであって、
所定の発生規則によりあらかじめ複数発生させられた、前記ユーザIDと組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値の入力をあらかじめ受け付けるパターンシード値入力手段と、
入力された複数の前記パターンシード値をあらかじめ記憶するパターンシード値記憶部と、
認証を受けようとするユーザの前記ユーザIDおよび前記あらかじめ発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させてあらかじめ複数生成された、当該認証を受けようとするユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付ける検証コード入力手段と、
入力された複数の前記検証コードをあらかじめ記憶する検証コード記憶部と、
認証を受けようとするユーザから前記ユーザIDの入力を受け付けるユーザID入力手段と、
前記パターンシード値記憶部があらかじめ記憶している複数の前記パターンシード値のうちの1つのパターンシード値を前記ユーザの認証に使用するために選択するパターンシード値選択手段と、
選択された前記パターンシード値に対応する検証コードを特定する検証コード特定手段と、
入力された前記ユーザIDと選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するパターン要素列生成手段と、
生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるパターン表示手段と、
前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるワンタイムパスワード入力手段と、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるユーザ認証手段と、
を有することを特徴とするオフライン認証クライアント。
【請求項20】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムにおける、オフラインで前記ユーザの認証を行う端末であるオフライン認証クライアントで認証を行うオフラインユーザ認証方法であって、
所定の発生規則によりあらかじめ複数発生させられた前記提示パターンを構成するパターン要素の集合であるパターン要素列の入力をあらかじめ受け付けるステップと、
入力された複数の前記パターン要素列をあらかじめ記憶するステップと、
前記あらかじめ入力された複数の前記パターン要素列のそれぞれによって構成される前記提示パターンのそれぞれに対応させてあらかじめ複数生成された、認証を受けようとするユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付けるステップと、
入力された複数の前記検証コードをあらかじめ記憶するステップと、
認証を受けようとするユーザから前記ユーザIDの入力を受け付けるステップと、
あらかじめ記憶された複数の前記パターン要素列のうちの1つのパターン要素列を前記ユーザの認証に使用するために選択するステップと、
選択された前記パターン要素列に対応する検証コードを特定するステップと、
選択された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
認証を受けようとする前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるステップと、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるステップと、
を有することを特徴とするオフラインユーザ認証方法。
【請求項21】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムにおける、オフラインで前記ユーザの認証を行う端末であるオフライン認証クライアントで認証を行うオフラインユーザ認証方法であって、
所定の発生規則によりあらかじめ複数発生させられた、前記ユーザIDと組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値の入力をあらかじめ受け付けるステップと、
入力された複数の前記パターンシード値をあらかじめ記憶するステップと、
認証を受けようとするユーザの前記ユーザIDおよび前記あらかじめ発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させてあらかじめ複数生成された、当該認証を受けようとするユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付けるステップと、
入力された複数の前記検証コードをあらかじめ記憶するステップと、
認証を受けようとするユーザから前記ユーザIDの入力を受け付けるステップと、
あらかじめ記憶された複数の前記パターンシード値のうちの1つのパターンシード値を前記ユーザの認証に使用するために選択するステップと、
選択された前記パターンシード値に対応する検証コードを特定するステップと、
入力された前記ユーザIDと選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するステップと、
生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるステップと、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるステップと、
を有することを特徴とするオフラインユーザ認証方法。
【請求項22】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムにおいて、オフラインのコンピュータにオフラインユーザ認証方法を実行させるオフラインユーザ認証プログラムであって、
前記オフラインユーザ認証方法は、
所定の発生規則によりあらかじめ複数発生させられた前記提示パターンを構成するパターン要素の集合であるパターン要素列の入力をあらかじめ受け付けるステップと、
入力された複数の前記パターン要素列をあらかじめ記憶するステップと、
前記あらかじめ入力された複数の前記パターン要素列のそれぞれによって構成される前記提示パターンのそれぞれに対応させてあらかじめ複数生成された、認証を受けようとするユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付けるステップと、
入力された複数の前記検証コードをあらかじめ記憶するステップと、
認証を受けようとするユーザから前記ユーザIDの入力を受け付けるステップと、
あらかじめ記憶された複数の前記パターン要素列のうちの1つのパターン要素列を前記ユーザの認証に使用するために選択するステップと、
選択された前記パターン要素列に対応する検証コードを特定するステップと、
選択された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
認証を受けようとする前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるステップと、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるステップと、
を有することを特徴とするオフラインユーザ認証プログラム。
【請求項23】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのオフラインでのパスワードとするオフラインユーザ認証システムにおいて、オフラインのコンピュータにオフラインユーザ認証方法を実行させるオフラインユーザ認証プログラムであって、
前記オフラインユーザ認証方法は、
所定の発生規則によりあらかじめ複数発生させられた、前記ユーザIDと組み合わされて前記提示パターンをユニークに決定する値であるパターンシード値の入力をあらかじめ受け付けるステップと、
入力された複数の前記パターンシード値をあらかじめ記憶するステップと、
認証を受けようとするユーザの前記ユーザIDおよび前記あらかじめ発生させられたそれぞれの前記パターンシード値に基づいて所定のパターン要素列生成規則により生成されるパターン要素列から構成される提示パターンのそれぞれに対応させてあらかじめ複数生成された、当該認証を受けようとするユーザに関連付けられたパスワードである前記ワンタイムパスワード導出ルールを前記それぞれの提示パターンに含まれるパターン要素に適用した結果に一方向関数演算を実施したものである検証コードの入力をあらかじめ受け付けるステップと、
入力された複数の前記検証コードをあらかじめ記憶するステップと、
認証を受けようとするユーザから前記ユーザIDの入力を受け付けるステップと、
あらかじめ記憶された複数の前記パターンシード値のうちの1つのパターンシード値を前記ユーザの認証に使用するために選択するステップと、
選択された前記パターンシード値に対応する検証コードを特定するステップと、
入力された前記ユーザIDと選択された前記パターンシード値とに基づいて、前記所定のパターン要素列生成規則によりパターン要素列を生成するステップと、
生成された前記パターン要素列に含まれるそれぞれのパターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
前記ユーザから、前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードの入力を受け付けるステップと、
入力された前記ワンタイムパスワードに前記一方向関数演算を実施したものと特定された前記検証コードとを比較し、それらが等しい場合に前記ユーザの認証をオフラインで成功させるステップと、
を有することを特徴とするオフラインユーザ認証プログラム。
【請求項24】
請求項22または23に記載のオフラインユーザ認証プログラムにおいて、
当該プログラムは、Windows OS起動時にレジストリの設定により呼び出されるWindows認証プログラムの形態であるオフラインユーザ認証プログラム。

【図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

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2007−272364(P2007−272364A)
【公開日】平成19年10月18日(2007.10.18)
【国際特許分類】
【出願番号】特願2006−94782(P2006−94782)
【出願日】平成18年3月30日(2006.3.30)
【出願人】(500325001)株式会社シー・エス・イー (7)
【Fターム(参考)】