(57)【特許請求の範囲】
【請求項１】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示したときの特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを前記ユーザのパスワードとし、前記ワンタイムパスワード内の所定の埋込位置にユーザＩＤを埋め込んだ認証用文字列に基づいて前記ユーザの認証を行う、認証サーバと認証要求クライアントとを含むユーザ認証システムであって、
前記認証サーバは、
それぞれの前記ユーザＩＤ毎に、前記ユーザのユーザＩＤと、前記ユーザのワンタイムパスワード導出ルールと、前記ユーザＩＤを前記ワンタイムパスワード内に埋め込む埋込位置を識別するユーザＩＤ埋込位置とをお互いに関連付けてあらかじめ記憶するパスワード記憶部と、
前記提示パターンを決定する提示パターン決定情報を所定の発生規則により発生する提示パターン決定情報発生手段と、
それぞれの前記ユーザＩＤ毎に、前記提示パターン決定情報に基づいて決定される前記提示パターンを構成する前記パターン要素に前記ユーザＩＤに関連付けられた前記ワンタイムパスワード導出ルールを適用した結果に対して、前記ユーザＩＤを前記ユーザＩＤ埋込位置に基づいて埋め込んだ検証コードを生成する検証コード生成手段と、
発生させられた前記提示パターン決定情報を、前記認証を受けるユーザの前記認証要求クライアントに送信する提示パターン決定情報送信手段と、
を有し、
前記認証要求クライアントは、
前記認証サーバから送信された前記提示パターン決定情報を受信する提示パターン決定情報受信手段と、
前記提示パターン決定情報に基づいて前記提示パターンを構成するパターン要素を決定するパターン要素決定手段と、
生成されたそれぞれの前記パターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるパターン表示手段と、
前記提示パターンに含まれる前記パターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードに対して、前記ユーザＩＤを前記ユーザＩＤ埋込位置に埋め込んだ認証用文字列の入力を前記認証を受けるユーザから受け付ける認証用文字列入力手段と、
入力された前記認証用文字列を前記認証サーバに送信する認証用文字列送信手段と、
を有し、
前記認証サーバは、
前記認証用文字列を前記認証要求クライアントから受信する認証用文字列受信手段と、
受信した前記認証用文字列と前記ユーザＩＤ毎に生成された前記検証コードとを比較し、受信した前記認証用文字列に等しい前記検証コードが存在する場合に、その検証コードに対応する前記ユーザＩＤの認証を成功させるユーザ認証手段と、
をさらに有することを特徴とするユーザ認証システム。
【請求項２】
前記提示パターン決定情報は、前記提示パターンを構成する前記パターン要素である、請求項１に記載のユーザ認証システム。
【請求項３】
前記提示パターン決定情報は、所定のパターン要素列生成規則に適用することにより前記提示パターンを構成する前記パターン要素を発生するパターンシード値である、請求項１に記載のユーザ認証システム。
【請求項４】
前記検証コード生成手段は、いずれかの２つ以上の前記ユーザＩＤに対して等しい前記検証コードが存在する場合は、等しい前記検証コードが存在しなくなるまで、前記提示パターン決定情報発生手段によって新しい前記提示パターン決定情報を発生させ、それに基づいてそれぞれの前記ユーザＩＤに対して前記検証コードを生成することを反復する、請求項１から３のいずれか１項に記載のユーザ認証システム。
【請求項５】
前記認証用文字列送信手段は、入力された前記認証用文字列を記憶するとともに、ハッシュ関数でハッシュ化して前記認証サーバに送信するものであり、
前記ユーザ認証手段は、受信したハッシュ化された前記認証用文字列と、前記ユーザＩＤ毎に生成された前記検証コードを前記ハッシュ関数でハッシュ化したものとを比較し、受信したハッシュ化された前記認証用文字列に等しいハッシュ化された前記検証コードが存在する場合に、その検証コードに対応する前記ユーザＩＤ埋込位置を前記認証要求クライアントに送信して前記認証用文字列の中の前記ユーザＩＤの問い合わせを行い、前記問い合わせで得られた前記ユーザＩＤと前記検証コードに対応する前記ユーザＩＤが等しい場合に前記ユーザＩＤの認証を成功させるものであることを特徴とする、請求項４に記載のユーザ認証システム。
【請求項６】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示したときの特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを前記ユーザのパスワードとし、前記ワンタイムパスワード内の所定の埋込位置にユーザＩＤを埋め込んだ認証用文字列に基づいて前記ユーザの認証を行う、認証サーバと認証要求クライアントによって実行されるユーザ認証方法であって、
前記認証サーバが、
それぞれの前記ユーザＩＤ毎に、前記ユーザのユーザＩＤと、前記ユーザのワンタイムパスワード導出ルールと、前記ユーザＩＤを前記ワンタイムパスワード内に埋め込む埋込位置を識別するユーザＩＤ埋込位置とをお互いに関連付けてあらかじめ記憶するステップと、
前記提示パターンを決定する提示パターン決定情報を所定の発生規則により発生するステップと、
それぞれの前記ユーザＩＤ毎に、前記提示パターン決定情報に基づいて決定される前記提示パターンを構成する前記パターン要素に前記ユーザＩＤに関連付けられた前記ワンタイムパスワード導出ルールを適用した結果に対して、前記ユーザＩＤを前記ユーザＩＤ埋込位置に基づいて埋め込んだ検証コードを生成するステップと、
発生させられた前記提示パターン決定情報を、前記認証を受けるユーザの前記認証要求クライアントに送信するステップと、
を有し、
前記認証要求クライアントが、
前記認証サーバから送信された前記提示パターン決定情報を受信するステップと、
受信した前記提示パターン決定情報に基づいて前記提示パターンを構成するパターン要素を決定するステップと、
生成されたそれぞれの前記パターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるステップと、
前記提示パターンに含まれる前記パターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードに対して、前記ユーザＩＤを前記ユーザＩＤ埋込位置に埋め込んだ認証用文字列の入力を前記認証を受けるユーザから受け付けるステップと、
入力された前記認証用文字列を前記認証サーバに送信するステップと、
を有し、
前記認証サーバが、
前記認証用文字列を前記認証要求クライアントから受信するステップと、
受信した前記認証用文字列と前記ユーザＩＤ毎に生成された前記検証コードとを比較し、受信した前記認証用文字列に等しい前記検証コードが存在する場合に、その検証コードに対応する前記ユーザＩＤの認証を成功させるステップと、
を有することを特徴とするユーザ認証方法。
【請求項７】
前記提示パターン決定情報は、前記提示パターンを構成する前記パターン要素である、請求項６に記載のユーザ認証方法。
【請求項８】
前記提示パターン決定情報は、所定のパターン要素列生成規則に適用することにより前記提示パターンを構成する前記パターン要素を発生するパターンシード値である、請求項６に記載のユーザ認証方法。
【請求項９】
前記検証コードを生成するステップは、いずれかの２つ以上の前記ユーザＩＤに対して等しい前記検証コードが存在する場合は、等しい前記検証コードが存在しなくなるまで、前記提示パターン決定情報を発生するステップによって新しい前記提示パターン決定情報を発生させ、それに基づいてそれぞれの前記ユーザＩＤに対して前記検証コードを生成することを反復する、請求項６から８のいずれか１項に記載のユーザ認証方法。
【請求項１０】
入力された前記認証用文字列を前記認証サーバに送信する前記ステップは、入力された前記認証用文字列を記憶するとともに、ハッシュ関数でハッシュ化して前記認証サーバに送信することを含み、
受信した前記認証用文字列と前記ユーザＩＤ毎に生成された前記検証コードとを比較し、受信した前記認証用文字列に等しい前記検証コードが存在する場合に、その検証コードに対応する前記ユーザＩＤの認証を成功させる前記ステップは、受信したハッシュ化された前記認証用文字列と、前記ユーザＩＤ毎に生成された前記検証コードを前記ハッシュ関数でハッシュ化したものとを比較し、受信したハッシュ化された前記認証用文字列に等しいハッシュ化された前記検証コードが存在する場合に、その検証コードに対応する前記ユーザＩＤ埋込位置及び前記ユーザＩＤの文字列の長さを前記認証要求クライアントに送信して前記認証用文字列の中の前記ユーザＩＤの問い合わせを行い、前記問い合わせで得られた前記ユーザＩＤと前記検証コードに対応する前記ユーザＩＤが等しい場合に前記ユーザＩＤの認証を成功させることを含む、ことを特徴とする、請求項９に記載のユーザ認証方法。
【請求項１１】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示したときの特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを前記ユーザのパスワードとし、前記ワンタイムパスワード内の所定の埋込位置にユーザＩＤを埋め込んだ認証用文字列に基づいて前記ユーザの認証を行う、認証要求クライアントに接続された認証サーバであって、
それぞれの前記ユーザＩＤ毎に、前記ユーザのユーザＩＤと、前記ユーザのワンタイムパスワード導出ルールと、前記ユーザＩＤを前記ワンタイムパスワード内に埋め込む埋込位置を識別するユーザＩＤ埋込位置とをお互いに関連付けてあらかじめ記憶するパスワード記憶部と、
前記提示パターンを決定する提示パターン決定情報を所定の発生規則により発生する提示パターン決定情報発生手段と、
それぞれの前記ユーザＩＤ毎に、前記提示パターン決定情報に基づいて決定される前記提示パターンを構成する前記パターン要素に前記ユーザＩＤに関連付けられた前記ワンタイムパスワード導出ルールを適用した結果に対して、前記ユーザＩＤを前記ユーザＩＤ埋込位置に基づいて埋め込んだ検証コードを生成する検証コード生成手段と、
発生させられた前記提示パターン決定情報を、前記認証を受けるユーザの前記認証要求クライアントに送信する提示パターン決定情報送信手段と、
前記認証要求クライアントから送信した、前記提示パターン決定情報に基づいて決定された前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードに対して、前記ユーザＩＤを前記ユーザＩＤ埋込位置に埋め込んだ認証用文字列を受信する認証用文字列受信手段と、
受信した前記認証用文字列と前記ユーザＩＤ毎に生成された前記検証コードとを比較し、受信した前記認証用文字列に等しい前記検証コードが存在する場合に、その検証コードに対応する前記ユーザＩＤの認証を成功させるユーザ認証手段と、
を有することを特徴とする認証サーバ。
【請求項１２】
所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示したときの特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを前記ユーザのパスワードとし、前記ワンタイムパスワード内の所定の埋込位置にユーザＩＤを埋め込んだ認証用文字列に基づいて前記ユーザの認証を行う、認証要求クライアントに接続された認証サーバによって実行されるユーザ認証方法であって、
それぞれの前記ユーザＩＤ毎に、前記ユーザのユーザＩＤと、前記ユーザのワンタイムパスワード導出ルールと、前記ユーザＩＤを前記ワンタイムパスワード内に埋め込む埋込位置を識別するユーザＩＤ埋込位置とをお互いに関連付けてあらかじめ記憶するステップと、
前記提示パターンを決定する提示パターン決定情報を所定の発生規則により発生するステップと、
それぞれの前記ユーザＩＤ毎に、前記提示パターン決定情報に基づいて決定される前記提示パターンを構成する前記パターン要素に前記ユーザＩＤに関連付けられた前記ワンタイムパスワード導出ルールを適用した結果に対して、前記ユーザＩＤを前記ユーザＩＤ埋込位置に基づいて埋め込んだ検証コードを生成するステップと、
発生させられた前記提示パターン決定情報を、前記認証を受けるユーザの前記認証要求クライアントに送信するステップと、
前記認証要求クライアントから送信した、前記提示パターン決定情報に基づいて決定された前記提示パターンに含まれるパターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードに対して、前記ユーザＩＤを前記ユーザＩＤ埋込位置に埋め込んだ認証用文字列を受信するステップと、
受信した前記認証用文字列と前記ユーザＩＤ毎に生成された前記検証コードとを比較し、受信した前記認証用文字列に等しい前記検証コードが存在する場合に、その検証コードに対応する前記ユーザＩＤの認証を成功させるステップと、
を有することを特徴とするユーザ認証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はユーザ認証システムに関し、より詳しくは、所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示し、当該提示パターンに含まれる特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを当該ユーザのパスワードとするユーザ認証システムに関する。
【背景技術】
【０００２】
従来のチャレンジ・レスポンス方式の問題を改善したユーザ認証方式として、いわゆるマトリクス認証（登録商標）方式のユーザ認証システムが使用されるようになってきた（例えば、特許文献１参照）。マトリクス認証においては、乱数を所定パターンに配列したマトリクス状の提示パターンを認証を受けようとするユーザに提示し、当該提示パターンに含まれるパターン要素（それぞれの乱数の数字）に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールが当該ユーザのパスワードとされる。そして、サーバとクライアントで同じ提示パターンを共有し、クライアントにおいてパスワードであるワンタイムパスワード導出ルールを提示パターンに適用した結果であるワンタイムパスワードと、サーバにおいてパスワードであるワンタイムパスワード導出ルールを提示パターンに適用した結果である検証コードとを比較することによって、パスワードを直接比較することなく、ユーザ認証が実施される。マトリクス認証においては、パスワードであるワンタイムパスワード導出ルールは、マトリクス上で選択されるパターン要素の位置と順番であって、イメージとして記憶しやすいものであり、また、パスワード入力時に盗み見されてもパスワードを特定することはできないという特徴がある。
【０００３】
図３は、従来の代表的なマトリクス認証を使用したユーザ認証システム２００のブロック図である（特許文献１）。ユーザ認証システム２００は、大きく、ユーザの認証を行う認証サーバ２０１と、ユーザが認証を要求する端末である認証要求クライアント２５１とから構成される。認証サーバ２０１は、ワンタイムパスワード導出ルール記憶部２０２と、ユーザＩＤ受信手段２０３と、パターン発生手段２０４と、パターン送信手段２０５と、検証コード生成手段２０６と、ワンタイムパスワード受信手段２０７と、ユーザ認証手段２０８とから構成される。
【０００４】
認証要求クライアント２５１は、ユーザＩＤ入力手段２５２と、ユーザＩＤ送信手段２５３と、パターン受信手段２５４と、パターン表示手段２５５と、ワンタイムパスワード入力手段２５６と、ワンタイムパスワード送信手段２５７とから構成される。
【０００５】
認証サーバ２０１において、ワンタイムパスワード導出ルール記憶部２０２は、ユーザＩＤ２０２ａおよびワンタイムパスワード導出ルール２０２ｂをお互いに関連付けてあらかじめ記憶している。ユーザＩＤ受信手段２０３は、認証を受けようとするユーザのユーザＩＤ２８１を認証要求クライアント２５１から受信し、パターン発生手段２０４は、マトリクス状の提示パターン２９１に含まれるパターン要素の配列であるパターン要素列２９０を擬似乱数などの所定の発生規則により発生させ、パターン送信手段２０５は、発生させられたパターン要素列２９０を認証要求クライアント２５１に送信するものである。
【０００６】
認証に当たっては、まず、認証を受けようとするユーザが、認証要求クライアント２５１において、キーボードなどのユーザＩＤ入力手段２５２から自己のユーザＩＤ２８１を入力する。ユーザＩＤ送信手段２５３が入力されたユーザＩＤ２８１を認証サーバ２０１に送信する。認証サーバ２０１において、ユーザＩＤ受信手段２０３がユーザＩＤ２８１を受信する。パターン発生手段２０４が、マトリクス状の提示パターン２９１を構成する乱数を所定の発生規則により発生する。パターン送信手段２０５は、発生されたパターン要素列２９０を認証要求クライアント２５１に送信する。認証要求クライアント２５１において、パターン受信手段２５４がパターン要素列２９０を受信する。パターン表示手段２５５が、受信したパターン要素列２９０を所定パターン２９１ｐに配列して提示パターン２９１を生成し、それを画面に表示させる。
【０００７】
図７は、マトリクス認証方式におけるワンタイムパスワード入力方法の概念図である。ユーザは、提示パターン２９１に対してワンタイムパスワード導出ルール２０２ｂを適用することによって、マトリクス上の所定の位置に表示された数字を順番に抽出し、ワンタイムパスワード入力手段２５６から入力する。また、提示パターン２９１に無関係な数字を入力することも可能である。すなわち、固定パスワードをワンタイムパスワードに含めることもできる。それらの数字の入力は、典型的にはタッチパネルなどのポインティングデバイスやキーボード２９６などで行われる。図７において破線で示した矢印と丸は、提示パターン２９１に基づくワンタイムパスワードをキーボード２９６から入力することを表わしている。ワンタイムパスワード送信手段２５７は、入力されたワンタイムパスワード２９２を認証サーバ２０１に送信する。認証サーバ２０１において、ワンタイムパスワード受信手段２０７がワンタイムパスワード２９２を受信する。検証コード生成手段２０６が、受信したユーザＩＤ２８１に関連付けられたワンタイムパスワード導出ルール２０２ｂを、送信したパターン要素列２９０に適用した結果である検証コード２９３を生成する。ユーザ認証手段２０８が、受信したワンタイムパスワード２９２と検証コード２９３とを比較し、それらが等しい場合に当該ユーザの認証を成功させる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−２６４８３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従来のマトリクス認証システムにおいては、まず、認証要求クライアントにおいてユーザＩＤの入力画面でユーザＩＤを入力して認証サーバに伝達した後に、認証サーバから認証要求クライアントに、マトリクス形状の提示パターンを構成するパターン要素などが送信される。そしてユーザは、提示パターンが表示されてから、その提示パターンに対するレスポンスであるワンタイムパスワードを入力する。すなわち、ユーザＩＤを入力した後、別の画面でワンタイムパスワードを入力する必要がある。このような、認証のために２画面を切り替えて表示させなければならない従来の認証方法は、ユーザの操作性が必ずしもいいとは言えない。これを改善するような、ユーザＩＤ入力ステップを不要とし、ワンタイムパスワード入力の１ステップのみでユーザＩＤの識別と認証の両方を同時に行なうシステムの必要性が存在していた。
【課題を解決するための手段】
【００１０】
本発明は上記の課題に鑑みてなされたものであり、以下のような特徴を有している。すなわち本発明は、所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示したときの特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを前記ユーザのパスワードとし、前記ワンタイムパスワード内の所定の埋込位置にユーザＩＤを埋め込んだ認証用文字列に基づいて前記ユーザの認証を行う、認証サーバと認証要求クライアントとを含むユーザ認証システムにおいて、
前記認証サーバは、
それぞれの前記ユーザＩＤ毎に、前記ユーザのユーザＩＤ１０２ａと、前記ユーザのワンタイムパスワード導出ルール１０２ｂと、前記ユーザＩＤを前記ワンタイムパスワード内に埋め込む埋込位置を識別するユーザＩＤ埋込位置１０２ｃをお互いに関連付けてあらかじめ記憶するパスワード記憶部１０２と、
前記提示パターンを決定する提示パターン決定情報を所定の発生規則により発生する提示パターン決定情報発生手段１１１と、
それぞれの前記ユーザＩＤ毎に、前記提示パターン決定情報に基づいて決定される前記提示パターンを構成する前記パターン要素に前記ユーザＩＤに関連付けられた前記ワンタイムパスワード導出ルールを適用した結果に対して、前記ユーザＩＤを前記ユーザＩＤ埋込位置に基づいて埋め込んだ検証コードを生成する検証コード生成手段１０６と、
発生させられた前記提示パターン決定情報を、前記認証を受けるユーザの前記認証要求クライアントに送信する提示パターン決定情報送信手段１１２と、
を有し、
前記認証要求クライアントは、
前記認証サーバから送信された前記提示パターン決定情報を受信する提示パターン決定情報受信手段１６１と、
前記提示パターン決定情報に基づいて前記提示パターンを構成するパターン要素を決定するパターン要素生成手段１６２と、
生成されたそれぞれの前記パターン要素を前記所定パターンに配列して提示パターンを生成し、それを画面に表示させるパターン表示手段１５５と、
前記提示パターンに含まれる前記パターン要素に前記ワンタイムパスワード導出ルールを適用した結果であるワンタイムパスワードに対して、前記ユーザＩＤを前記ユーザＩＤ埋込位置に埋め込んだ認証用文字列の入力を前記認証を受けるユーザから受け付ける認証用文字列入力手段１５６と、
入力された前記認証用文字列を前記認証サーバに送信する認証用文字列送信手段１５７と、
を有し、
前記認証サーバは、
前記認証用文字列を前記認証要求クライアントから受信する認証用文字列受信手段１０７と、
受信した前記認証用文字列と前記ユーザＩＤ毎に生成された前記検証コードとを比較し、受信した前記認証用文字列に等しい前記検証コードが存在する場合に、その検証コードに対応する前記ユーザＩＤの認証を成功させるユーザ認証手段１０８と、
をさらに有することを特徴とする。
【００１１】
本発明においては、前記提示パターン決定情報は、前記提示パターンを構成する前記パターン要素とすることができる。また本発明においては、前記提示パターン決定情報は、所定のパターン要素列生成規則に適用することにより前記提示パターンを構成する前記パターン要素を発生するパターンシード値とすることができる。また本発明においては、前記検証コード生成手段は、いずれかの２つ以上の前記ユーザＩＤに対して等しい前記検証コードが存在する場合は、等しい前記検証コードが存在しなくなるまで、前記提示パターン決定情報発生手段によって新しい前記提示パターン決定情報を発生させ、それに基づいてそれぞれの前記ユーザＩＤに対して前記検証コードを生成することを反復する、ように構成できる。また本発明においては、前記認証用文字列送信手段は、入力された前記認証用文字列を記憶するとともに、ハッシュ関数でハッシュ化して前記認証サーバに送信するものであり、
前記ユーザ認証手段は、受信したハッシュ化された前記認証用文字列と、前記ユーザＩＤ毎に生成された前記検証コードを前記ハッシュ関数でハッシュ化したものとを比較し、受信したハッシュ化された前記認証用文字列に等しいハッシュ化された前記検証コードが存在する場合に、その検証コードに対応する前記ユーザＩＤ埋込位置及び前記ユーザＩＤの文字列の長さを前記認証要求クライアントに送信して前記認証用文字列の中の前記ユーザＩＤの問い合わせを行い、前記問い合わせで得られた前記ユーザＩＤと前記検証コードに対応する前記ユーザＩＤが等しい場合に前記ユーザＩＤの認証を成功させるものであるようにすることもできる。
【００１２】
本発明は、上記のユーザ認証システムを使用したユーザ認証方法や、そのようなユーザ認証システムを実現するための認証サーバや、そのような認証サーバで実行されるユーザ認証方法としても成立する。
【００１３】
上記あるいは特許請求の範囲に記載の発明において、サーバ、クライアントなどの用語は、装置の具体的形態や具体的呼称を限定するものではなく、その一般的な機能を備えた装置を表わすためのものである。１つの構成要素が有する機能が２つ以上の物理的構成によって実現されてもよく、２つ以上の構成要素が有する機能が１つの物理的構成によって実現されてもよい。システムの発明は、それぞれの構成要素の有する機能が逐次的に実行される方法の発明として把握することもできるし、その逆も成り立つ。方法の発明においては、各ステップは記載された順序に実行されるものに限定されるものではなく、全体としての機能が矛盾なく実行され得る限りにおいて、自由な順序でそれを実行することができる。これらの発明は、所定のハードウェアと協働して所定の機能を実現させるプログラムとしても成立し、それを記録した記録媒体としても成立する。
【発明の効果】
【００１４】
本発明は、所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示したときの特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを前記ユーザのパスワードとし、ワンタイムパスワード内の所定の埋込位置にユーザＩＤを埋め込んだ認証用文字列に基づいてユーザの認証を行い、その際に、すべてのユーザＩＤに対して、提示している提示パターンに対する正しい認証用文字列を生成して検証コードとし、ユーザから入力された認証用文字列と等しい検証コードが存在する場合、その検証コードに対応するユーザＩＤのユーザ認証を成功させるという構成を採用したことにより、認証の開始時にユーザＩＤを認証システムに入力してユーザを特定する必要がなく、認証時に単一の認証用文字列を入力することにより、ユーザの特定とユーザの真正性の確認の両方を行うことができ、認証の際にパスワードの入力の前にユーザＩＤを入力する必要がなく、認証のために２画面を切り替えて表示させる必要がないという効果を有する。すなわち、本発明は、ユーザＩＤ入力ステップが不要となり、ワンタイムパスワードを含む文字列の入力の１ステップのみでユーザＩＤの識別と認証の両方を同時に行なうことができるという効果を有するものである。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態に係るユーザ認証システム１００のハードウェア構成図である。
【図２】本発明の一実施形態に係るユーザ認証システム１００の機能ブロック図である。
【図３】従来のマトリクス認証方式のユーザ認証システム２００のブロック図である。
【図４】本発明の一実施形態に係るユーザ認証システム１００の動作フロー図である。
【図５】本発明の一実施形態に係るユーザ認証システム１００の動作フロー図であり、図４に示した動作フローの続きである。
【図６】マトリクス認証方式におけるワンタイムパスワード導出ルールの概念図である。
【図７】マトリクス認証方式におけるワンタイムパスワード入力方法の概念図である。
【図８】認証用文字列の構造の説明図である。
【図９】ユーザ認証システム１００におけるログオン認証画面のイメージ図である。
【発明を実施するための形態】
【００１６】
［本発明に係るユーザ認証方法］
これから図面を参照して本発明の実施形態に係るユーザ認証システム１００の説明を行う。図面においては、従来のユーザ認証システム２００と本発明に係るユーザ認証システム１００との間で対応する構成要素に関しては、付している参照番号の下２桁は同じ番号としている。図１はハードウェア構成図、図２はブロック図、図４および５は動作フロー図である。まず、本発明に係るユーザ認証方法の概要について説明する。本発明に係るユーザ認証方法は、上述したような、チャレンジ・レスポンス方式の認証方法の一種であるマトリクス認証である。本発明に係るユーザ認証方法では、所定パターンに配列した複数のパターン要素を認証要求クライアント１５１において認証を受けるユーザに提示パターン１９１として提示し、当該提示パターン１９１に含まれる特定の位置のパターン要素１９０に対してユーザが適用することによりワンタイムパスワード１９２を生成するためのワンタイムパスワード導出ルール１０２ｂを当該ユーザのパスワードとするものである。認証要求クライアント１５１においてユーザに提示される提示パターン１９１を生成する際に使用される情報である提示パターン決定情報１８３は、認証サーバ１０１において生成され、認証要求クライアント１５１に送信される。提示パターン決定情報１８３は、提示パターン１９１を一意的に定める情報であり、パターン要素１９０そのものでもよく、また、所定の演算を行なうことによりパターン要素１９０を一意的に定めるパターンシード値であってもよい。
【００１７】
ユーザは、自分のユーザＩＤ１０２ａに対応付けられたワンタイムパスワード導出ルール１０２ｂを提示パターン１９１に適用することによってワンタイムパスワード１９２を生成するが、それを認証要求クライアント１５１に入力する際に、ワンタイムパスワード１９２内の所定の埋込位置にユーザＩＤ１０２ａを埋め込んだ認証用文字列１９２Ａとして入力する。ユーザは、その所定の位置をあらかじめ決めており、ユーザＩＤ埋込位置１０２ｃとしてユーザＩＤ１０２ａと対応付けて認証サーバ１０１に記憶させておく。ユーザＩＤ１０２ａは、ユーザを一意的に特定することができる情報であり、一般的には、ユーザが自分で設定する文字列である。ユーザＩＤ１０２ａとしては、ユーザが設定した文字列以外に、マイナンバー、銀行口座番号、社員番号、会員番号、メールアドレスなどのユーザに固有の任意の情報を使用することができる。
【００１８】
認証要求クライアント１５１においてユーザから入力された認証用文字列１９２Ａは、認証要求クライアント１５１から認証サーバ１０１に送信される。認証サーバ１０１は、すべてのユーザＩＤ１０２ａに対して、認証要求クライアント１５１に表示させている提示パターン１９１にユーザＩＤ１０２ａに対応付けられたワンタイムパスワード導出ルール１０２ｂを適用することによって正しいワンタイムパスワード１９２を生成し、ユーザＩＤ埋込位置１０２ｃの埋込位置にユーザＩＤ１０２ａを埋め込むことによって検証コード１９３を生成しておく。そして認証サーバ１０１は、認証要求クライアント１５１から送信された認証用文字列１９２Ａを検証コード１９３と比較し、それらが等しければ当該ユーザに対する認証を成功させる。
【００１９】
［提示パターンとパターン要素］
提示パターン１９１とは、パターン要素１９０を所定パターン１９１ｐに配列したものである。所定パターン１９１ｐとしては、縦ｍ個×横ｎ個のそれぞれの位置に全体が方形を形成するように配置したマトリクス、そのようなマトリクスを複数並べたもの、などが典型的であるが、その他に任意の図形の形状とすることができる。本明細書では、そのような典型的なマトリクス形状以外の形状の提示パターンを使用した場合も、マトリクス認証方式と呼ぶことにする。所定パターン１９１ｐとしては、規則的な形状や印象的な形状が、ユーザの記憶に残りやすく、従ってユーザがパスワードであるワンタイムパスワード導出ルール１０２ｂを記憶しやすいために好適である。
【００２０】
パターン要素１９０とは、提示パターン１９１内において所定パターン１９１ｐを構成するように所定位置に配置される要素であり、好適には０から９までの１桁の数字であるが、他に、アルファベット、記号、などの任意のキャラクターとすることができる。なお、記号としては、ＰＣの標準のキーボードに割り当てられている「＋」、「−」、「＊」、「＝」、「＿」、「！」、「？」、「＃」、「＄」、「＆」などの記号が特に好適である。キャラクターとして、図形、イラスト、写真などの図柄を使用することもできる。好適には、同じパターン要素１９０は、提示パターン１９１内において、複数個表示される。このようにすると、パスワードであるワンタイムパスワード導出ルール１０２ｂと、ワンタイムパスワード導出ルール１０２ｂを提示パターン１９１に適用した結果であるワンタイムパスワード１９２とは多対１の対応となり、ワンタイムパスワード１９２の入力時に自動的に一方向化がなされることになる。すなわち、ワンタイムパスワード１９２の入力時に、自動的にハッシュ関数演算と同様の処理がなされることになり、そのため、１つのワンタイムパスワード１９２だけからは、ワンタイムパスワード導出ルール１０２ｂを特定することはできない。
【００２１】
本実施例では、図７などに示すような、０から９までの１桁の数字でパターン要素１９０が構成されるものとし、それぞれのパターン要素１９０を４つの４×４のマトリクスからなる所定パターン１９１ｐに配列したものを提示パターン１９１とする。なお、携帯電話機などのように画面の面積が小さい場合は、４×４のマトリクスの数を３つなどに減少させた提示パターン１９１を使用すると好適である。
【００２２】
［提示パターン決定情報］
提示パターン決定情報１８３は、提示パターン１９１を生成するために所定パターン１９１ｐに配置するパターン要素１９０を一意的に定めることができる情報である。提示パターン決定情報１８３は、パターン要素１９０そのものを順番に並べたデータでもよく、また、所定の演算を行なうことによりパターン要素１９０を一意的に発生させることができるパターンシード値であってもよい。所定の演算としては、ハッシュ関数演算、加算、減算、排他的論理和、桁数調整などのあらゆる演算を使用することができる。パターンシード値は、典型的には、所定の発生規則により所定の範囲内において発生されられた定数である。
【００２３】
［ワンタイムパスワード導出ルール］
ワンタイムパスワード導出ルール１０２ｂは、提示パターン１９１に含まれる特定の位置のパターン要素１９０に対して適用することによりワンタイムパスワード１９２を生成するためのルールであり、ユーザのパスワードとして機能するデータである。パターン要素１９０に対して適用するルールとは、典型的には、どの位置のパターン要素１９０をどの順番で選択するのかということである。この場合、ワンタイムパスワード導出ルール１０２ｂは、提示パターン１９１に含まれる選択されるパターン要素１９０のそれぞれの位置と、当該それぞれのパターン要素１９０が選択される順番との組み合わせの情報である。またワンタイムパスワード導出ルール１０２ｂは、提示パターン１９１と無関係に入力される数字などのキャラクターの情報を固定パスワードとして含んでいてもよく、この場合、ワンタイムパスワード導出ルール１０２ｂは、提示パターン１９１に含まれる選択されるパターン要素１９０のそれぞれの位置および当該提示パターン１９１に無関係な固定パスワードのキャラクターのそれぞれと、当該それぞれのパターン要素１９０の位置および当該それぞれのキャラクターが選択あるいは入力される順番との組み合わせの情報である。
【００２４】
図６に典型的なワンタイムパスワード導出ルール１０２ｂの構造を示す。本実施例では、０から９までの１桁の数字でパターン要素１９０が構成されるものとし、それぞれのパターン要素１９０を４つの４×４のマトリクスからなる所定パターン１９１ｐのそれぞれの要素の位置に配置した提示パターン１９１に対するワンタイムパスワード導出ルール１０２ｂが例示されている。図６においては、所定パターン１９１ｐのそれぞれの要素の位置は、０１から６４までの数字で区別されて表示されている。提示パターン１９１が認証を受けようとするユーザに対して表示されるときには、所定パターン１９１ｐのそれぞれの要素の位置には０から９までの１桁の数字が表示される。
【００２５】
ワンタイムパスワード１９２は、好適には、提示パターン１９１に基づく数字と、それとは無関係に入力される数字とを使用するものである。提示パターン１９１に含まれるパターン要素の数は６４個であるため、提示パターン１９１に含まれるパターン要素のそれぞれの位置が選択されたことは、それぞれの位置に割り当てられた０１から６４までの２桁の数字によって表わされる。そして、提示パターン１９１とは無関係に入力される数字については、最初にそのような数字であることを示す「９」の数字が割り当てられ、次に入力される１桁の数字が割り当てられた、２桁の数字によって表わされる。図６の例では、ワンタイムパスワード１９２の最初の４つの数字は、提示パターン１９１の特定の位置のパターン要素を選択することによって入力されるものである。ワンタイムパスワード導出ルール１０２ｂのそれらに対応する部分として、それらの位置を表わす数字である「０１」、「１６」、「２９」、「２０」がその順番に配置される。選択されたパターン要素１９０は、キーボード１９６や、タッチパネルなどのポインティングデバイスによって入力される。ワンタイムパスワード１９２のその次の２つの数字は、提示パターン１９１とは無関係に、キーボード１９６などから入力されるものである。ワンタイムパスワード導出ルール１０２ｂのそれらに対応する部分として、直接入力を表わす「９」の数字の後に、入力される数字である「２」および「９」がそれぞれ付加された「９２」、「９９」が続いてその順番に配置される。ワンタイムパスワード１９２のその次の１つの最後の数字は、提示パターン１９１の特定の位置のパターン要素を選択することによって入力されるものである。ワンタイムパスワード導出ルール１０２ｂのそれに対応する部分として、それの位置を表わす数字である「３３」が続いて配置され、ワンタイムパスワード導出ルール１０２ｂはここで終了する。ワンタイムパスワード導出ルール１０２ｂには、それの終了点を一意的に特定するエンドマーク、例えば「００」などの数字をその最後にさらに付加してもよいし、あるいは、ワンタイムパスワード導出ルール１０２ｂの全体の長さを示す数値をそれに関連付けていてもよい。
【００２６】
［ワンタイムパスワード］
ワンタイムパスワード１９２は、認証を受けようとするユーザが提示パターン１９１に対して自己のワンタイムパスワード導出ルール１０２ｂを適用することによって生成・入力される使い捨てのパスワードである。図７は、マトリクス認証方式におけるワンタイムパスワード入力方法の概念図である。図７において使用されているワンタイムパスワード導出ルール１０２ｂは、図６において示したものと同じである。ユーザは、自己のワンタイムパスワード導出ルール１０２ｂに従って、提示パターン１９１に含まれる所定の位置のパターン要素１９０の選択、および提示パターン１９１とは無関係な所定の数字の入力を所定の順番で実施することによって、ワンタイムパスワード１９２として「２５０４２９０」を生成する。
【００２７】
［ユーザＩＤ埋込位置と認証用文字列］
図８は、認証用文字列１９２Ａの構造の説明図である。ワンタイムパスワード１９２内の所定の埋込位置にユーザＩＤ１０２ａを埋め込むことによって認証用文字列１９２Ａを構成するが、ユーザＩＤ埋込位置１０２ｃは、その際の埋込位置を特定する情報である。図８の例では、「２５０４２９０」というワンタイムパスワード１９２に対して埋込が可能な位置に０から７の数字を割り当てており、ユーザＩＤ埋込位置１０２ｃは、ワンタイムパスワード１９２の「５」と「０」の間の「２」（破線の三角形のシンボルで囲んだもの）で示された埋込位置である。ユーザは自分のユーザＩＤ埋込位置１０２ｃをあらかじめ決めておき、パスワード記憶部１０２に記憶させておく。ユーザＩＤ埋込位置１０２ｃは、ユーザが設定する情報であるため、パスワードの一部として機能することにもなる。図８の例では、ワンタイムパスワード１９２である「２５０４２９０」において「２」のユーザＩＤ埋込位置１０２ｃに、「ＵＳＥＲ１」というユーザＩＤ１０２ａを埋め込むことによって、「２５ＵＳＥＲ１０４２９０」という認証用文字列１９２Ａが構成されている。このように、認証用文字列１９２Ａは、ユーザを特定するユーザＩＤ１０２ａの情報と、パスワードであるワンタイムパスワード導出ルール１０２ｂに従って生成されたユーザの真正性を確認するためのワンタイムパスワード１９２の両方の情報を単一の文字列に統合したものである。すなわち、認証用文字列１９２Ａという単一の文字列が正当なものであることを検証することによって、どのユーザＩＤ１０２ａのユーザが認証を受けているか、及びそのユーザの真正性が確認されることとなり、そのユーザに対する本人認証が成功したかを確認することができる。
【００２８】
［ユーザ認証システム１００のハードウェア構成］
次に、ユーザ認証システム１００の構成の説明をする。図１は、本発明の一実施形態に係るユーザ認証システム１００のハードウェア構成図である。図１を参照すると、ユーザ認証システム１００は、大きく、認証サーバ１０１と認証要求クライアント１５１とから構成される。認証サーバ１０１は、ＣＰＵ１０１ａ、ＲＡＭ１０１ｂ、記憶装置１０１ｃ、ユーザインターフェース（Ｉ／Ｆ）１０１ｄ、ネットワークインターフェース（Ｉ／Ｆ）１０１ｅから構成される。記憶装置１０１ｃは、その記憶領域にＯＳ１０１ｃ１、ユーザ認証アプリケーション１０１ｃ２を記憶し、またその記憶領域にパスワード記憶部１０２を含む。パスワード記憶部１０２は、ユーザＩＤ１０２ａ、ワンタイムパスワード導出ルール１０２ｂ、ユーザＩＤ埋込位置１０２ｃを記憶する。認証要求クライアント１５１は、ＣＰＵ１５１ａ、ＲＡＭ１５１ｂ、記憶装置１５１ｃ、ユーザインターフェース（Ｉ／Ｆ）１５１ｄ、ネットワークインターフェース（Ｉ／Ｆ）１５１ｅから構成される。記憶装置１５１ｃは、その記憶領域にＯＳ１５１ｃ１、ブラウザアプリケーション１５１ｃ２、パターン要素生成モジュール１５１ｃ３を記憶する。
【００２９】
認証サーバ１０１は、ユーザ認証システム１００において、認証要求クライアント１５１からのユーザ認証要求に応答して、ユーザの認証を行う構成要素である。認証サーバ１０１は、ＯＳ１０１ｃ１、ユーザ認証アプリケーション１０１ｃ２などがインストールされた、サーバとしてのコンピュータなどの形態である。また、認証サーバ１０１は、ＳＳＬ−ＶＰＮゲートウェイのようなインターネット上に仮想専用線ネットワークを提供するためのゲートウェイ装置などにおけるユーザ認証を提供するハードウェアの形態とすることもできる。ＣＰＵ１０１ａは、ユーザ認証アプリケーション１０１ｃ２などをＯＳ１０１ｃ１上で実行してユーザ認証に関する情報処理を行うプロセッサである。ＲＡＭ１０１ｂは、記憶装置１０１ｃに記憶されたソフトウェアがその上に読み込まれるメモリ空間と、読み込まれたソフトウェアがＣＰＵ１０１ａによって実行される際に必要となるワークエリア等を提供するメモリである。記憶装置１０１ｃは、ソフトウェアやデータなどの情報を記憶・管理する構成要素であり、典型的にはハードディスクドライブなどの形態である。記憶装置１０１ｃは、好適には、ＯＳ１０１ｃ１、ユーザ認証アプリケーション１０１ｃ２のプログラムのファイルを記憶しており、それらのプログラムはＲＡＭ１０１ｂ上に読み出されて実行される。ユーザＩ／Ｆ１０１ｄは、ユーザとの間でデータの入出力を行うための構成要素であり、典型的にはキーボード１９６、マウスなどのポインティングデバイスからなる入力手段と、画面に情報を表示するディスプレイなどの出力手段と、それらとの間のハードウェアＩ／Ｆとから構成される。
【００３０】
認証サーバ１０１と認証要求クライアント１５１とはネットワークで接続される。ネットワークは、好適には、ＴＣＰ／ＩＰベースのプロトコルで動作するインターネットあるいはイントラネットである。イントラネットにおいて、認証要求クライアント１５１がクライアント用Ｗｉｎｄｏｗｓ（登録商標。以下、同じ）  ＯＳで動作している場合には、ネットワークはＴＣＰ／ＩＰベースのプロトコルで動作するＷｉｎｄｏｗｓのドメインネットワークとすることができる。なお、本明細書ではＯＳとしてＷｉｎｄｏｗｓを例示して説明しているが、他のＯＳ、例えば、Ｍａｃ  ＯＳ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ｕｎｉｘ（登録商標）などを使用することも可能である。
【００３１】
本発明に係る認証方法は、少なくとも以下の２つの利用形態で実施することが可能である。１つの利用形態は、認証要求クライアント１５１をネットワーク上のＷｅｂサービスに接続した状態で、ＷｅｂブラウザなどによってＷｅｂ上のコンテンツ、ＳＳＬ−ＶＰＮサービス、アプリケーションを使用する際の、当該ユーザに対する使用許可のための認証の形態である。この場合、認証サーバ１０１は、典型的には、インターネットまたはイントラネットなどのネットワーク上に配置され、当該ネットワークを通じてアクセスしてきた認証要求クライアント１５１に対してユーザ認証のためのＷｅｂページを提供し、それを通じてユーザ認証のためのデータの送受信を行うようなＷｅｂサーバの形態や、ＲＡＤＩＵＳサーバと連携して認証・アカウンティング管理を実施する、ＳＳＬ−ＶＰＮゲートウェイのようなインターネット上に仮想専用線ネットワークを提供する装置の形態である。
【００３２】
もう１つの利用形態は、ユーザが認証要求クライアント１５１を使用して、認証サーバ１０１と同じＷｉｎｄｏｗｓのドメインネットワークに適正なネットワークユーザとして接続する際の、当該ユーザのそのネットワークへのログオン認証の形態である。この場合、認証サーバ１０１は、典型的には、認証のためのリソースをネットワーク上に提供しており、それによって、ユーザからの認証要求クライアント１５１を使用したＷｉｎｄｏｗｓのドメインネットワークへのログオン認証要求に応答してユーザ認証を実行し、その認証結果を当該Ｗｉｎｄｏｗｓのドメインネットワークのネットワークユーザの権限を管理するドメインコントローラに伝達する。
【００３３】
ＯＳ１０１ｃ１は、認証サーバ１０１のハードウェアに密接な基本的な情報処理を行うオペレーティングシステムである。ユーザ認証アプリケーション１０１ｃ２は、ＯＳ１０１ｃ１上で動作するユーザ認証のためのアプリケーションソフトウェアである。認証サーバ１０１がＷｅｂサーバの形態である場合、ユーザ認証アプリケーション１０１ｃ２は、典型的には、ＣＧＩで呼び出される形態かサーブレットの形態の認証プログラムを備えた、認証のためのＷｅｂページまたはリソースをインターネットまたはイントラネットのＷｅｂ上に提供するＷｅｂサーバプログラムである。パスワード記憶部１０２は、典型的にはハードディスクドライブなどの記憶装置の一領域であり、好適にはデータは暗号化ファイルとしてパスワード記憶部１０２に記憶される。ユーザＩＤ１０２ａは、ユーザを一意的に識別するための文字列のデータである。ワンタイムパスワード導出ルール１０２ｂは、上述したように、提示パターン１９１に含まれる特定の位置のパターン要素１９０に対して適用することによりワンタイムパスワード１９２を生成するためのルールであり、ユーザのパスワードとして機能するデータである。ユーザＩＤ埋込位置１０２ｃは、ワンタイムパスワード１９２内にユーザＩＤ１０２を埋め込むことによって認証用文字列１９２Ａを構成するための埋込位置である。
【００３４】
認証要求クライアント１５１は、ユーザ認証システム１００において、ユーザが認証サーバ１０１に対して認証を要求する構成要素であり、ＯＳ１５１ｃ１、ブラウザアプリケーション１５１ｃ２、パターン要素生成モジュール１５１ｃ３などがインストールされた情報端末であり、具体的には、ＰＣ、スマートフォン、携帯電話機などの形態である。ＣＰＵ１５１ａは、ブラウザアプリケーション１５１ｃ２、パターン要素生成モジュール１５１ｃ３などをＯＳ１５１ｃ１上で実行して、ユーザ認証要求に関する情報処理を行うプロセッサである。ＲＡＭ１５１ｂは、記憶装置１５１ｃに記憶されたソフトウェアがその上に読み込まれるメモリ空間と、読み込まれたソフトウェアがＣＰＵ１５１ａによって実行される際に必要となるワークエリア等を提供するメモリである。記憶装置１５１ｃは、ソフトウェアやデータなどの情報を記憶・管理する構成要素であり、典型的にはハードディスクドライブなどの形態である。記憶装置１５１ｃは、好適には、ＯＳ１５１ｃ１、ブラウザアプリケーション１５１ｃ２、パターン要素生成モジュール１５１ｃ３のプログラムのファイルを記憶しており、それらのプログラムはＲＡＭ１５１ｂ上に読み出されて実行される。なお、記憶装置１５１ｃは、ＯＳ１５１ｃ１、ブラウザアプリケーション１５１ｃ２、パターン要素生成モジュール１５１ｃ３に関しては、そのプログラムをＲＯＭに記憶した形態であってもよい。この場合、そのようなＲＯＭはＣＰＵ１５１ａなどのプログラム実行要素とともにファームウェアを構成することになる。ユーザＩ／Ｆ１５１ｄは、ユーザとの間でデータの入出力を行うための構成要素であり、典型的には、図示していないが、キーボード１９６や、タッチパネルなどのポインティングデバイスからなる入力手段と、画面に情報を表示するディスプレイなどの出力手段と、それらとの間のハードウェアＩ／Ｆとから構成される。ネットワークＩ／Ｆ１５１ｅは、ネットワークに接続して情報の入出力を行うためのＩ／Ｆである。
【００３５】
ＯＳ１５１ｃ１、ブラウザアプリケーション１５１ｃ２、パターン要素生成モジュール１５１ｃ３は、それらの一部または全部が組み合わされて形式的には一体のプログラムの形態となっていてもよい。例えば、ブラウザアプリケーション１５１ｃ２がパターン要素生成モジュール１５１ｃ３の機能を包含していてもよく、ＯＳ１５１ｃ１がブラウザアプリケーション１５１ｃ２およびパターン要素生成モジュール１５１ｃ３の機能を包含していてもよい。また、それらが他のアプリケーションに組み込まれていてもよい。また、それらがそれぞれ複数のプログラムに分割されていてもよい。
【００３６】
ＯＳ１５１ｃ１は、認証要求クライアント１５１のハードウェアに密接な基本的な情報処理を行うオペレーティングシステムであり、認証要求クライアント１５１のハードウェアに応じた基本プログラムである。ＯＳ１５１ｃ１は、プラットフォームに準じたアーキテクチャのファームウェアの形態であってもよい。ブラウザアプリケーション１５１ｃ２は、ＯＳ１５１ｃ１上で動作する、ネットワーク上に提供されている情報にアクセスして表示させ、さらにユーザからのデータの入力を受け付けるためのブラウザの機能を実現させるソフトウェアであり、典型的には、インターネットまたはイントラネット上のＷｅｂページにアクセスするためのＷｅｂブラウザアプリケーションの形態である。なお、ブラウザアプリケーション１５１ｃ２は、Ｗｅｂブラウザアプリケーションに限られることはなく、サーバがネットワーク上に提供するユーザ認証用の画面にアクセスすることができるアプリケーションであれば、どのようなアプリケーションであってもよい。ブラウザアプリケーション１５１ｃ２は、他のアプリケーションが認証を実施する際の画面表示のためのＡＰＩを提供するプラットフォームに準じたアーキテクチャのファームウェアの形態であってもよい。パターン要素生成モジュール１５１ｃ３は、ブラウザアプリケーション１５１ｃ２に組み込まれて実行される、提示パターン１９１を生成してブラウザに表示させるためのプログラムであり、認証要求クライアント１５１がＰＣの場合、典型的には、Ｊａｖａ（登録商標）アプレット、ＡｃｔｉｖｅＸ（登録商標）、Ｆｌａｓｈ（登録商標）などの形態である。パターン要素生成モジュール１５１ｃ３は、他のアプリケーションが認証を実施するためのＡＰＩを提供するプラットフォームに準じたアーキテクチャのファームウェアの形態であってもよい。
【００３７】
認証サーバ１０１がＷｉｎｄｏｗｓのドメインネットワークへのログオン認証を実施する場合には、認証のためのブラウザアプリケーション１５１ｃ２およびパターン要素生成モジュール１５１ｃ３は、クライアント用Ｗｉｎｄｏｗｓ  ＯＳとしてのＯＳ１５１ｃ１に組み込まれており、認証要求クライアント１５１のＷｉｎｄｏｗｓのドメインネットワークへのログオン認証画面に提示パターン１９１を表示させ、本願発明に係る認証方法に基づいた認証手続をユーザに提供する。
【００３８】
図９は、ユーザ認証システム１００におけるログオン認証画面１９７のイメージ図である。これは、Ｗｉｎｄｏｗｓのドメインネットワークへのログオンしようとする時の認証画面であってもよいし、ブラウザアプリケーション１５１ｃ２によるＷｅｂサービスへログオンしようとする時の認証画面であってもよい。ログオン認証画面１９７には、提示パターン１９１、パスワード入力フィールドが表示される。キーボード１９６やタッチパネルなどのポインティングデバイスによって認証用文字列１９２Ａとして数字などのキャラクターがパスワード入力フィールドに入力されると、それに応答して当該キャラクターあるいは「＊」のような記号が１つずつ表示される。Ｗｉｎｄｏｗｓのドメインネットワークへのログオンの場合は、認証用文字列１９２Ａの入力が完了すると、当該認証モジュールは、認証サーバ１０１に認証用文字列１９２Ａを伝達してユーザ認証を実行させ、その認証結果をドメインコントローラに伝達する。ブラウザアプリケーション１５１ｃ２によるＷｅｂベースのログオンの場合は、認証サーバ１０１は、使用しようとしているＷｅｂサービスに認証結果を伝達する。
【００３９】
［ユーザ認証システム１００の機能ブロック構成］
図２は、本発明の一実施形態に係るユーザ認証システム１００の機能ブロック図である。図２は、図１に示したハードウェア構成のユーザ認証システム１００を、ソフトウェアとハードウェア資源とが協働して実施される情報処理の観点から表現した図であり、当該情報処理を機能ブロックの単位で表わした図である。図２において、認証サーバ１０１は、パスワード記憶部１０２、検証コード生成手段１０６、認証用文字列受信手段１０７、ユーザ認証手段１０８、提示パターン決定情報発生手段１１１、提示パターン決定情報送信手段１１２から構成される。これらの機能ブロックは、ユーザ認証アプリケーション１０１ｃ２がＯＳ１０１ｃ１とともに記憶装置１０１ｃからＲＡＭ１０１ｂ上に読み込まれ、それらのソフトウェアがＣＰＵ１０１ａによって実行されることによって、ＲＡＭ１０１ｂ、記憶装置１０１ｃ、ユーザＩ／Ｆ１０１ｄ、ネットワークＩ／Ｆ１０１ｅなどのハードウェア要素とも適宜協働して実現されるものである。
【００４０】
パスワード記憶部１０２は、それぞれのユーザに関して、ユーザＩＤ１０２ａと、当該ユーザのパスワードであるワンタイムパスワード導出ルール１０２ｂと、ユーザＩＤ埋込位置１０２ｃとをお互いに関連付けてあらかじめ記憶させておくための記憶装置であり、ＣＰＵ１０１ａ、ＲＡＭ１０１ｂ、記憶装置１０１ｃなどがソフトウェアと協働することによって実現される機能ブロックである。検証コード生成手段１０６は、認証を受けようとしているユーザのパスワードであるワンタイムパスワード導出ルール１０２ｂを、認証要求クライアント１５１に表示されている提示パターン１９１に適用した結果にユーザＩＤ１０２ａをユーザＩＤ埋込位置１０２ｃで示される位置に埋め込んだものである検証コード１９３を生成する構成要素であり、ＣＰＵ１０１ａ、ＲＡＭ１０１ｂなどがソフトウェアと協働することによって実現される機能ブロックである。ここで、検証コード１９３は、正しいワンタイムパスワード導出ルール１０２ｂが正しい提示パターンに適用された結果である正しいワンタイムパスワード１９２にユーザＩＤ１０２ａを正しいユーザＩＤ埋込位置１０２ｃで示される位置に埋め込んだ場合の認証用文字列１９２Ａと同じ値である。認証用文字列受信手段１０７は、認証要求クライアント１５１から、そこで入力された認証用文字列１９２Ａを受信する構成要素であり、ＣＰＵ１０１ａ、ＲＡＭ１０１ｂ、ネットワークＩ／Ｆ１０１ｅなどがソフトウェアと協働することによって実現される機能ブロックである。ユーザ認証手段１０８は、認証用文字列１９２Ａと検証コード１９３とを比較して、それらが等しいときにユーザ認証を成功させる構成要素であり、ＣＰＵ１０１ａ、ＲＡＭ１０１ｂなどがソフトウェアと協働することによって実現される機能ブロックである。提示パターン決定情報発生手段１１１は、提示パターンを規定する情報である提示パターン決定情報１８３を所定の発生規則により発生する構成要素であり、ＣＰＵ１０１ａ、ＲＡＭ１０１ｂなどがソフトウェアと協働することによって実現される機能ブロックである。提示パターン決定情報送信手段１１２は、提示パターン決定情報発生手段１１１によって発生させられた提示パターン決定情報１８３を認証要求クライアント１５１に送信する構成要素であり、ＣＰＵ１０１ａ、ＲＡＭ１０１ｂ、ネットワークＩ／Ｆ１０１ｅなどがソフトウェアと協働することによって実現される機能ブロックである。
【００４１】
認証要求クライアント１５１は、パターン表示手段１５５、認証用文字列入力手段１５６、認証用文字列送信手段１５７、提示パターン決定情報受信手段１６１、パターン要素生成手段１６２から構成される。これらの機能ブロックは、ブラウザアプリケーション１５１ｃ２の必要部分、パターン要素生成モジュール１５１ｃ３がＯＳ１５１ｃ１の必要部分とともに記憶装置１５１ｃからＲＡＭ１５１ｂ上に読み込まれ、それらのソフトウェアがＣＰＵ１５１ａによって実行されることによって、ＲＡＭ１５１ｂ、記憶装置１５１ｃ、ユーザＩ／Ｆ１５１ｄ、ネットワークＩ／Ｆ１５１ｅなどのハードウェア要素とも適宜協働して実現されるものである。
【００４２】
パターン表示手段１５５は、後述のパターン要素生成手段１６２によって生成されたパターン要素１９０を所定パターン１９１ｐに配列して提示パターン１９１を生成し、それを画面に表示させる構成要素であり、ＣＰＵ１５１ａ、ＲＡＭ１５１ｂ、ユーザＩ／Ｆ１５１ｄなどがソフトウェアと協働することによって実現される機能ブロックである。認証用文字列入力手段１５６は、画面に表示させた提示パターン１９１などを通じて認証用文字列１９２Ａのユーザからの入力を受け付ける構成要素であり、ＣＰＵ１５１ａ、ＲＡＭ１５１ｂ、ユーザＩ／Ｆ１５１ｄなどがソフトウェアと協働することによって実現される機能ブロックである。認証用文字列送信手段１５７は、入力された認証用文字列１９２Ａを認証サーバ１０１に送信する構成要素であり、ＣＰＵ１５１ａ、ＲＡＭ１５１ｂ、ネットワークＩ／Ｆ１５１ｅなどがソフトウェアと協働することによって実現される機能ブロックである。提示パターン決定情報受信手段１６１は、認証サーバ１０１から、提示パターン決定情報１８３を受信する構成要素であり、ＣＰＵ１５１ａ、ＲＡＭ１５１ｂ、ネットワークＩ／Ｆ１５１ｅなどがソフトウェアと協働することによって実現される機能ブロックである。パターン要素生成手段１６２は、認証サーバ１０１から受信した提示パターン決定情報１８３に基づいて、パターン要素１９０を生成する構成要素であり、ＣＰＵ１５１ａ、ＲＡＭ１５１ｂなどがソフトウェアと協働することによって実現される機能ブロックである。
【００４３】
［ユーザ認証システム１００の動作］
これから、ユーザ認証システム１００の動作について説明する。図４および図５は、ユーザ認証システム１００の動作フロー図である。まず、ユーザ認証システム１００で認証を受けることになるユーザは、そのユーザＩＤ１０２ａと、パスワードであるワンタイムパスワード導出ルール１０２ｂと、ユーザＩＤ埋込位置１０２ｃとをあらかじめ認証サーバ１０１に入力して登録しておく。パスワード記憶部１０２は、そのユーザのユーザＩＤ１０２ａとワンタイムパスワード導出ルール１０２ｂとユーザＩＤ埋込位置１０２ｃとをお互いに関連付けてユーザの認証に先立ってあらかじめ記憶する（ステップＳ１０１）。
【００４４】
次に、認証を受けようとするユーザは、認証要求クライアント１５１において、ＷｉｎｄｏｗｓへのログオンやＷｅｂサービスへログオンのために、ログオン認証画面１９７を表示させる。この際には、認証要求クライアント１５１から認証要求が認証サーバ１０１に送られ（ステップＳ１０２）、認証サーバ１０１が認証要求を受信して（ステップＳ１０３）、認証のためのプロセスを開始する。認証サーバ１０１は、まず、提示パターン決定情報発生手段１１１によって、提示パターン決定情報１８３を発生し、それによって提示パターン１９１を構成するパターン要素１９０を発生する（ステップＳ１０４）。すなわち、認証サーバ１０１は、パターン要素１９０そのもの、あるいは、所定の演算を行なうことによりパターン要素１９０を一意的に決定するパターンシード値を乱数などで発生させ、パターン要素１９０、及びそれを所定パターン１９１ｐに配列した提示パターン１９１を発生させる。
【００４５】
認証サーバ１０１は、検証コード生成手段１０６によって、すべての登録されているユーザＩＤ１０２ａのそれぞれに対して、発生させた提示パターン決定情報１８３に基づいて生成される提示パターン１９１に、そのユーザＩＤ１０２ａに関連付けられたワンタイムパスワード導出ルール１０２ｂを適用した結果（正しいワンタイムパスワード１９２に相当する）に、そのユーザＩＤ１０２ａに関連付けられたユーザＩＤ埋込位置１０２ｃにユーザＩＤ１０２ａを埋め込むことによって検証コード１９３（正しい認証用文字列１９２Ａに相当する）を生成する（ステップＳ１０５）。この検証コード１９３と比較することによって、認証の際に正しい認証用文字列１９２Ａが認証要求クライアント１５１から送られてきたかどうかを確認することができる。
【００４６】
ここで、認証用文字列１９２Ａ内に埋め込まれるユーザＩＤ１０２ａの内容やその埋込位置によっては、ある提示パターン１９１に対する正しい認証用文字列１９２Ａが等しいようなユーザＩＤ１０２ａが複数存在するような衝突が発生する可能性がある。この場合、認証用文字列１９２Ａが正当なものであること、すなわち、認証用文字列１９２Ａと同じ検証コード１９３が存在することが確認できても、それらのユーザＩＤ１０２ａを区別することはできず、ユーザを一意的に特定することができない。
【００４７】
上述のような不都合を防止するために、好適には、認証サーバ１０１は、検証コード生成手段１０６によって、異なるユーザＩＤ１０２ａに対して等しい検証コード１９３が存在するかどうかを確認する（ステップＳ１０６）。そして、いずれかの２つ以上のユーザＩＤ１０２ａに対して等しい検証コード１９３が存在する場合は、衝突が発生していると判断し、ステップＳ１０４にプロセスを戻して新しい提示パターン決定情報１８３（すなわち、新しいパターン要素１９０で構成される新しい提示パターン１９１）を発生させ、次のステップＳ１０５で新しい検証コード１９３を生成させ、次のステップＳ１０６でその検証コード１９３を有するユーザＩＤ１０２ａが複数存在するかどうかを確認する。このような確認を、異なるユーザＩＤ１０２ａに対して等しい検証コード１９３が存在しなくなるまで実行する。これを実行することにより、すべてのユーザＩＤ１０２ａに対して異なる検証コード１９３が存在することが保証されることとなり、検証コード１９３による認証用文字列１９２Ａの確認により、ユーザの特定と、そのユーザの真正性の確認とを同時に行うことができるようになる。
【００４８】
なお、別の方法により、すべてのユーザＩＤ１０２ａに対して確実に異なる検証コード１９３が存在するようにしていれば、ステップＳ１０６は必ずしも必要ない。例えば、すべてのユーザに対して、ユーザＩＤ埋込位置１０２ｃを同じ位置とし、また、ユーザＩＤ１０２ａの文字列の長さを同じにすると、認証用文字列１９２Ａ内の同じ位置にユーザＩＤ１０２ａが現れることになるため、すべてのユーザＩＤ１０２ａに対して必ず異なる検証コード１９３が存在することになる。
【００４９】
認証サーバ１０１は、提示パターン決定情報送信手段１１２によって、提示パターン決定情報１８３を認証要求クライアント１５１に送信する（ステップＳ１０７）。認証要求クライアント１５１は、提示パターン決定情報受信手段１６１によって、認証サーバ１０１から提示パターン決定情報１８３を受信する（ステップＳ１０８）。認証要求クライアント１５１は、パターン要素生成手段１６２によって、受信した提示パターン決定情報１８３に基いて、パターン要素１９０を決定する（ステップＳ１０９）。すなわち、パターン要素生成手段１６２は、提示パターン決定情報１８３がパターン要素１９０そのものの場合は、受信した提示パターン決定情報１８３をパターン要素１９０とし、提示パターン決定情報１８３がパターンシード値の場合は、それに所定の演算を行なうことによりパターン要素１９０を生成する。認証要求クライアント１５１は、パターン表示手段１５５によって、生成したパターン要素１９０を所定パターン１９１ｐ（典型的には、４つの４×４のマトリクスからなるパターン）に配列して提示パターン１９１を構成し、それをログオン認証画面１９７に含めて画面に表示させる（ステップＳ１１０）。
【００５０】
次に、認証を受けようとするユーザは、認証要求クライアント１５１の画面に表示された提示パターン１９１の特定の位置に表示されたパターン要素を選択したり、提示パターン１９１とは無関係な数字などのキャラクターを入力したりすることを順番に実施することによって、自分のワンタイムパスワード導出ルール１０２ｂを提示パターン１９１に適用した結果であるワンタイムパスワード１９２を生成し、ワンタイムパスワード１９２内の予め定めたユーザＩＤ埋込位置１０２ｃに自己のユーザＩＤ１０２ａを含めることによって認証用文字列１９２Ａを生成し、認証要求クライアント１５１に入力する。すなわち、認証要求クライアント１５１は、認証用文字列入力手段１５６によって、認証用文字列１９２Ａの入力を受け付ける（ステップＳ１１１）。次に、認証要求クライアント１５１は、認証用文字列送信手段１５７によって、入力された認証用文字列１９２Ａを認証サーバ１０１に送信する（ステップＳ１１２）。次に、認証サーバ１０１は、認証用文字列受信手段１０７によって、認証要求クライアント１５１から送信された認証用文字列１９２Ａを受信する（ステップＳ１１３）。
【００５１】
次に、認証サーバ１０１は、ユーザ認証手段１０８によって、受信した認証用文字列１９２Ａと等しい検証コード１９３が存在するかを、それぞれのユーザＩＤ１０２ａに対して生成された検証コード１９３と順番に比較することによって確認し、等しい検証コード１９３が存在していれば、その検証コード１９３に対応するユーザＩＤ１０２ａのユーザが真正のユーザであることが確認できたことになり、ユーザ認証を成功させる（ステップＳ１１４）。ユーザ認証が成功すると、以下のように、そのユーザＩＤ１０２ａのユーザに対して、ユーザ認証の利用形態に応じたサービスを許可することになる。すなわち、Ｗｅｂ上のコンテンツ等の使用許可のためのユーザ認証の場合は、コンテンツへのアクセスが許可されたり、アプリケーションの利用が許可されたりする。Ｗｉｎｄｏｗｓのドメインネットワークへのログオン認証の場合は、認証サーバ１０１は、認証結果をＷｉｎｄｏｗｓのドメインコントローラに伝達し、Ｗｉｎｄｏｗｓネットワークへの参加を許可させる。認証サーバ１０１が、ＳＳＬ−ＶＰＮゲートウェイの形態であれば、当該ＳＳＬ−ＶＰＮへのアクセスが許可される。
【００５２】
なお、本発明において送受信するデータは、適宜ハッシュ化することによって、さらにセキュリティを高めることもできる。すなわち、認証要求クライアント１５１は、入力された認証用文字列１９２Ａを一時的に記憶するとともに、それをハッシュ関数でハッシュ化したものを認証サーバ１０１に送信するようにできる。そして、認証サーバ１０１は、受信したハッシュ化された認証用文字列１９２Ａと、ユーザＩＤ１０２ａ毎に生成された検証コード１９３のそれぞれをハッシュ関数でハッシュ化したものとを比較する。認証サーバ１０１は、受信したハッシュ化された認証用文字列１９２Ａに等しいハッシュ化された検証コード１９３が存在する場合に、当該ユーザＩＤ１０２ａに対するユーザ認証を成功させることができる。ただし、この場合、ハッシュ化したもの同士を比較しているため、衝突により、認証用文字列１９２Ａと検証コード１９３が異なる場合であっても、ハッシュ化されたもの同士が等しくなる可能性がゼロではない。そのような可能性をなくすために、以下のような手順を追加的に実行することもできる。すなわち、その検証コード１９３に対応するユーザＩＤ１０２ａに関連付けられたユーザＩＤ埋込位置１０２ｃ及び前記ユーザＩＤ１０２ａの文字列の長さを認証要求クライアント１５１に送信して、認証用文字列１９２Ａの中のユーザＩＤ１０２ａの問い合わせを行う。認証要求クライアント１５１は、それらの情報を受信し、一時的に記憶している入力された認証用文字列１９２Ａ内のユーザＩＤ埋込位置１０２ｃから、送信された文字列の長さ分の文字列を抽出して、認証サーバ１０１に送る。この文字列は正しいユーザＩＤ１０２ａに相当するはずのものである。認証サーバ１０１は、問い合わせで得られた文字列が、検証コード１９３に対応するユーザＩＤ１０２ａに等しい場合に、そのユーザＩＤ１０２ａの認証を成功させる。
【００５３】
なお、以上に説明した動作フローにおいて、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの動作フロー上の矛盾が生じない限りにおいて、動作フローを自由に変更することができる。
【００５４】
以上に説明してきた各実施形態は、本発明を説明するための例示であり、本発明はこれらの実施形態に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
【符号の説明】
【００５５】
１００        ：ユーザ認証システム
１０１        ：認証サーバ
１０１ａ      ：ＣＰＵ
１０１ｂ      ：ＲＡＭ
１０１ｃ      ：記憶装置
１０１ｃ２    ：ユーザ認証アプリケーション
１０１ｄ      ：ユーザＩ／Ｆ
１０１ｅ      ：ネットワークＩ／Ｆ
１０２        ：パスワード記憶部
１０２ａ      ：ユーザＩＤ
１０２ｂ      ：ワンタイムパスワード導出ルール
１０２ｃ      ：ユーザＩＤ埋込位置
１０６        ：検証コード生成手段
１０７        ：認証用文字列受信手段
１０８        ：ユーザ認証手段
１１１        ：提示パターン決定情報発生手段
１１２        ：提示パターン決定情報送信手段
１５１        ：認証要求クライアント
１５１ａ      ：ＣＰＵ
１５１ｂ      ：ＲＡＭ
１５１ｃ      ：記憶装置
１５１ｃ２    ：ブラウザアプリケーション
１５１ｃ３    ：パターン要素生成モジュール
１５１ｄ      ：ユーザＩ／Ｆ
１５１ｅ      ：ネットワークＩ／Ｆ
１５５        ：パターン表示手段
１５６        ：認証用文字列入力手段
１５７        ：認証用文字列送信手段
１６１        ：提示パターン決定情報受信手段
１６２        ：パターン要素生成手段
１８３        ：提示パターン決定情報
１９０        ：パターン要素
１９１        ：提示パターン
１９１ｐ      ：所定パターン
１９２        ：ワンタイムパスワード
１９２Ａ      ：認証用文字列
１９３        ：検証コード
１９６        ：キーボード
１９７        ：ログオン認証画面
２００        ：ユーザ認証システム
２０１        ：認証サーバ
２０２        ：ワンタイムパスワード導出ルール記憶部
２０２ｂ      ：ワンタイムパスワード導出ルール
２０３        ：ユーザＩＤ受信手段
２０４        ：パターン発生手段
２０５        ：パターン送信手段
２０６        ：検証コード生成手段
２０７        ：ワンタイムパスワード受信手段
２０８        ：ユーザ認証手段
２５１        ：認証要求クライアント
２５２        ：ユーザＩＤ入力手段
２５３        ：ユーザＩＤ送信手段
２５４        ：パターン受信手段
２５５        ：パターン表示手段
２５６        ：ワンタイムパスワード入力手段
２５７        ：ワンタイムパスワード送信手段
２９０        ：パターン要素列
２９１        ：提示パターン
２９１ｐ      ：所定パターン
２９２        ：ワンタイムパスワード
２９６        ：キーボード
【要約】
【課題】ユーザＩＤ入力ステップを不要とし、ワンタイムパスワード入力の１ステップのみでユーザＩＤの識別と認証の両方を同時に行うシステムを提供する。
【解決手段】所定パターンに配列した複数のパターン要素を認証を受けるユーザに提示パターンとして提示したときの特定の位置のパターン要素に対して適用することによりワンタイムパスワードを生成するためのワンタイムパスワード導出ルールを前記ユーザのパスワードとし、ワンタイムパスワード内の所定の埋込位置にユーザＩＤを埋め込んだ認証用文字列に基づいてユーザの認証を行う。その際に、すべてのユーザＩＤに対して、提示している提示パターンに対する正しい認証用文字列を生成して検証コードとし、ユーザから入力された認証用文字列と等しい検証コードが存在する場合、その検証コードに対応するユーザＩＤのユーザ認証を成功させる。
【選択図】図２【図１】
0006721225.tif 000002
【図２】
0006721225.tif 000003
【図３】
0006721225.tif 000004
【図４】
0006721225.tif 000005
【図５】
0006721225.tif 000006
【図６】
0006721225.tif 000007
【図７】
0006721225.tif 000008
【図８】
0006721225.tif 000009
【図９】
0006721225.tif 000010