(58)【調査した分野】(Int.Cl.,DB名)
前記端末から前記認証情報を格納した電文を受信すると、前記電文に格納された前記認証情報と前記認証情報生成手段が生成した前記認証情報とが一致する場合に、前記端末の操作者が予め認証対象者として登録されているユーザであると判定する判定手段を
更に備えたことを特徴とする請求項1記載のユーザ認証装置。
端末の処理装置に対して当該端末から発信される電文のヘッダに書き込まれることになる当該端末の固有可変情報に対して所定アルゴリズムに従った変換を施させることによって、ユーザ認証に用いられる認証情報の所定関数に基づく生成に必要とされるソルト値を生成させるソルト値生成プログラムを格納した記憶装置に接続され、ネットワークを通じてアクセスしてきた端末を操作している操作者が予め登録されたユーザであることを認証するコンピュータを、
端末からの電文による要求に応じて、前記ソルト値生成プログラムを当該端末へ送信する応答手段、及び、
前記ソルト値生成プログラムに従って、前記端末からの電文のヘッダに書き込まれた当該端末の固有可変情報に対して前記所定アルゴリズムに従った変換を施すことによってソルト値を生成し、生成した前記ソルト値に基づいて前記所定関数を実行することにより認証情報を生成する認証情報生成手段
として機能させるユーザ認証プログラム。
【背景技術】
【0002】
予め登録したユーザに対してオンラインで所定のサービスを提供するウェブサイトでは、ネットワークを介してウェブサイトにアクセスしてきた端末の操作者にユーザID及びパスワードを入力させ、入力されたユーザIDとパスワードの組合わせがデータベースに登録されているか否かに基づいて、アクセスしてきた端末の操作者が予め登録されたユーザか否かを確認するユーザ認証方法が採用されることが、一般的である。
【0003】
しかし、上記のユーザ認証方法は、ユーザが操作する端末の個性には依存しないので、仮にユーザIDとパスワードが他者へ漏洩してしまった場合に、ユーザが漏洩に気付く前に、ユーザIDとパスワードを知った者が正当なユーザになりすまして不正にアクセスすることが可能になってしまうという欠点がある。
【0004】
これに関連して、非特許文献1には、認証サーバを運用する認証業者との間で契約を交わしたユーザに対し、内部クロックによって生成した時刻及び機器識別情報に対して所定のパスワード生成アルゴリズムに従った変換を施すことによってパスワード(ワンタイムパスワード)を生成するスタンドアローンなハードウェア(ハードウェアトークン)を交付するとともに、当該ユーザのID(ユーザID)に対応付けて上記機器識別情報を認証サーバに格納しておき、ハードウェアトークンが最新に生成したワンタイムパスワードとユーザIDが端末から認証サーバへ送信されると、認証サーバが、受信したユーザIDに対応付けて格納している機器識別情報及び現在時刻に対して上記パスワード生成アルゴリズムに従った変換を施すことによってワンタイムパスワードを再現し、当該ワンタイムパスワードと端末から受信したワンタイムパスワードが一致していると、当該端末の操作者が上記ユーザであることを認証し、ユーザが指定する他の業者等に対して証明を行う技術が、記載されている。
【0005】
一方、ワンタイムパスワードの生成方式として、上述した方式(時刻同期方式)の他、チャレンジ・レスポンス方式が知られている。このチャレンジ・レスポンス方式とは、1回のログイン毎に、認証サーバから端末に対してチャレンジと呼ばれるワンタイムパスワード生成パラメータを送信し、端末は、受信したチャレンジを入力としてレスポンスと呼ばれるワンタイムパスワードを生成し、認証サーバへ送信し、認証サーバは、チャレンジに基づいてユーザが送信すべきレスポンスを算出し、端末から受信したレスポンスと照合して認証処理を行う技術である。
【0006】
上述した非特許文献1に記載された時刻同期方式の認証方法によると、ワンタイムパスワード生成の基礎となるパラメータは二つだけ(機器識別情報及び現在時刻)であるので、セキュリティ強度(ハ―ドウェアトークンの偽造の困難性)が比較的低いという問題が、認識されるようになった。
【0007】
そこで、非特許文献2には、時刻同期方式とチャレンジレスポンス方式とを組み合わせ、ワンタイムパスワード生成アルゴリズムとして機器識別情報及び現在時刻の他にソルト値(認証情報を生成する為のパラメータであり、従来、主に乱数が充てられていたもの)を要求するものを採用し、ハードウェアトークンにソルト値入力用のキーボードを追加し、認証サーバがユーザ毎にソルト値を生成して、ユーザからの要求に応じてソルト値を認証サーバから端末へ送信するとともに、当該ユーザのユーザID及び機器識別情報に対応付けて認証サーバに格納し、その後、端末からワンタイムパスワードが送信されてくると、格納しておいたソルト値及び機器識別情報並びに現在時刻に基づいてワンタイムパスワードを生成し、両ワンタイムパスワードが一致するか否かに基づいて認証処理を行う技術が、開示されている。
【発明を実施するための形態】
【0015】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。
図1には本実施形態に係るオンライン取引システム10が示されている。このオンライン取引システム10は、特定金融機関に設置されたユーザ認証装置としての銀行システム12を含んで構成されている。ただし、本発明は、銀行システムに限らず、あらゆるネットワークシステムにおいて、サーバにアクセスして一定サービスを要求してきたクライアント端末の操作者が、予め正規のユーザとして登録された者と一致するかどうかを認証する場合に、用いられる。かかるサービスには、他の事業者に対してクライアント端末の操作者が予め登録されているユーザであることを証明するサービスも、含まれている。
【0016】
本実施形態について説明すると、上記特定金融機関は、当該特定金融機関に口座を開設しているユーザがオンラインで金融取引を行うことを可能とするサービスとして、オンライン金融取引用ウェブサイトを通じてユーザからのオンラインでの金融取引の実行指示を受け付けるオンライン金融取引受付サービスを、提供している。このオンライン金融取引受付サービスを利用した金融取引では、ユーザがクライアントPC(Personal Computer)18を介してオンライン金融取引用ウェブサイトのウェブページを閲覧し、該ウェブページ上で必要な情報を入力することで、ユーザが所望している金融取引の実行を指示するための情報(金融取引指示情報)がクライアントPC18から銀行システム12へ送信される。そして、この金融取引指示情報が銀行システム12からイントラネット26に接続された勘定系システム28等へ転送されることで、金融取引指示情報に基づいてユーザから指示された金融取引が勘定系システム28等によって実行されるようになっている。
【0017】
かかる銀行システム12は、相互にバスBを通じて接続されたCPU12A、メモリ12B、ハードディスクドライブ(HDD)12C、及び、ネットワークインタフェース(I/F)部12Dを、備えている。
【0018】
ネットワークI/F部12Dは、多数台のウェブサーバが通信回線を介して相互に接続されて成る公共のコンピュータ・ネットワーク(インターネット)16に直接接続されており、更に特定金融機関内に設置されたイントラネット(LAN)26にも接続されている。イントラネット26には勘定系システム28が接続されている。
【0019】
上記インターネット16には、多数台のクライアントPC18が接続されているので、上記ネットワークI/F部12Dは、インターネット16を介して各クライアントPC18に接続可能となっている。
【0020】
メモリ12Bは、RAM(ランダムアクセスメモリ)からなる主記憶装置であり、CPU12Bによる作業領域が展開される。
【0021】
CPU12Aは、メモリ12B上に読み出されたプログラムを実行して、銀行システム12を構成するハードウェア全体を制御するコンピュータであり、応答手段,ソルト値再現手段,送信情報管理手段の一部,認証情報生成手段及び判定手段に、相当する。
【0022】
HDD12Cは、各種データ及びプログラムを格納したコンピュータ読取可能な記憶媒体を内蔵した記憶装置である。HDD12Cが格納しているプログラムには、CPU12Aによってメモリ12B上に読み出されて実行されるオペレーティングシステム(OS),ユーザ認証サーバプログラム13,ワンタイムパスワード生成関数17,及び、複数パターンのソルト値生成用スクリプト(JavaScript(登録商標))14が、含まれている。ただし、オペレーティングシステムは、一般に市販されているものであるので、その説明を省略する。また、ユーザ認証サーバプログラム13の内容については、
図6及び
図7のフローチャートを参照して、後述する。各ソルト値生成用スクリプト14は、複数のパラメータ(OS種類識別情報,OSバージョン,ブラウザ種類識別情報,ブラウザバージョン)を所定のアルゴリズムに従って変換することによって一意の数列(ソルト値)を生成する関数を定義した一種のプログラム(ソルト値生成プログラム)である。HDD12Cは、上記アルゴリズムが相互に異なる複数パターンのソルト値生成用スクリプト14が予め用意されている。これらソルト値生成用スクリプト14は、時間帯に対応付けられていても良いし、時刻と後述するユーザIDとを入力値とする関数によって一意に特定されるように対応付けられていても良い。ワンタイムパスワード生成関数17は、例えば、非特許文献2に記載された様なハードウェアトークン(認証情報生成装置)に実装されているプログラムであり、ソルト値,現在時刻及びハードウェアトークン番号(認証情報生成装置の固体識別情報)からなる3種類のパラメータを所定のアルゴリズムに従って変換することによって一意の数列(ワンタイムパスワード[ユーザ認証に用いられる認証情報に相当])を生成する関数を定義したプログラムである。
【0023】
HDD12Cが格納している各種データには、ユーザデータベース15が、含まれている。ユーザデータベース15は、当該特定金融機関と口座開設契約を締結している全てのユーザに関する情報を管理するデータベースである。このユーザデータベース16は、複数のデータファイルから構成されているので、その一例を
図2及び
図3に示す。
【0024】
図2は、認証対象者たる個々のユーザについての固定的な情報を予め登録するためのデータファイル(顧客マスターファイル)であり、個々のユーザ毎に、一意に付与されたユーザID(契約番号),当該ユーザに交付されたハードウェアトークンの固体識別情報(ハードウェアトークン番号)及びその有効期限,当該ユーザの氏名,生年月日及び住所,並びに、当該ユーザが任意に設定したパスワード(固定パスワード)が、登録される。
【0025】
図3は、顧客マスターファイルに予め認証対象者として登録されているユーザが認証要求をする毎に、その認証要求を管理するための情報を一時的に記録するための送信情報管理手段としてのデータファイル(送信情報ファイル[送信情報管理手段の一部に相当])であり、個々の認証要求毎にエントリが追加され、追加されたエントリには、その認証要求をしたユーザのユーザID,顧客マスターファイル(
図2)において当該ユーザIDに対応付けて登録されているハードウェアトークン番号,その認証要求に応じて当該ユーザへ送信されたソルト値生成用スクリプト14のパターン番号及びその送信を行った時刻,並びに、認証失敗をした回数を記録するためのカウンタ値(失敗カウンタ)が、記録される。
【0026】
図1に戻り、端末としてのクライアントPC18は、バスBを通じて相互にデータ交換可能に接続されたCPU19、メモリ20、キーボード21、通信モジュール22、ディスプレイ23及びハードディスク(HDD)24を、有している。即ち、当該クライアントPC18は、一般的なハードウェア構成を有する汎用のコンピュータである。なお、クライアントPC18は、インターネット接続機能を備えているコンピュータであれば良いので、所謂タブレットコンピュータのハードウェア構成を有していても、所謂スマートフォンのハードウェア構成を有していても良い。
【0027】
CPU19は、プログラムを読み込んで実行することによって当該クライアントPC18全体の制御を行う処理装置である。
【0028】
通信モジュール22は、当該クライアントPC18を使用するユーザが利用可能な各種ネットワークのプロトコルを終端し、かかるプロトコルに従ったデータ形式にて、かかるネットワークの基地局との間で通信を行う通信装置である。
【0029】
ディスプレイ23は、CPU19によって各種画像,画面,メッセージ等の可視情報が表示される表示装置である。
【0030】
キーボード21は、ユーザによって操作されることによってCPUに文字列を入力する入力装置である。
【0031】
ハードディスク24は、各種プログラム及び各種データを格納した外部記憶装置である。ハードディスク24が格納している各種プログラムには、クライアントPC18の基本動作を制御するための基本プログラムであるオペレーティングシステム(OS),ブラウザプログラムが、含まれている。ただし、これらオペレーシングシステム及びブラウザプログラムは、一般的に流通しているものであるので、その説明を省略する。
【0032】
メモリ20は、CPU19の作業領域が展開される主記憶装置である。このメモリ20には、ネットワークを経由してダウンロードされたプログラムやデータも、一時的に記憶される。例えば、上述した銀行システム12からインターネット16を介して受信したソルト値生成用スクリプト14やワンタイムパスワード生成関数17も、当該メモリ20上に一時記憶され、CPU19に読み出されて実行される。
【0033】
ハードウェアトークン1は、上述したワンタイムパスワード生成関数17を実行することに特化された専用電算機であり、例えば、非特許文献2に記載された従来公知のものが、用いられ得る。ここで、ハードウェアトークン1の構造を模式的に説明すると、
図1に図示されるように、Bを通じて相互にデータ交換可能に接続されたCPU2、メモリ3、キーボード5、ディスプレイ6、及びクロック7から、構成されている。
【0034】
メモリ3は、当該ハードウェアトークン1に対して予め一意且つ固定的に付与されたハードウェアトークン番号8及び銀行システム12のハードディスク12Cに格納されているものと全く同じワンタイムパスワード生成関数17を格納した、ROM(リードオンリーメモリー)である。
【0035】
キーボード5は、
図5の平面図に示すように、0〜9の数字や若干の記号を入力するための複数の文字ボタン5a及び入力ボタン5bから構成されている。
【0036】
クロック7は、現在時刻を示す情報(時刻情報)を常時生成し、CPU2に入力する。
【0037】
CPU2は、キーボード5によって入力された文字列(ソルト値)及びメモリ3から読み出したハードウェアトークン番号8に対して、メモリ3から読み出したワンタイムパスワード生成関数17を実行することにより、ワンタイムパスワードを生成する。なお、このCPU2の代わりに、同機能を果たすロジック回路が用いられても良い。
【0038】
ディスプレイ6は、
図5に示されるように、ワンタイムパスワードの桁数分の文字列を表示することができる液晶パネルであり、CPU2によって生成されたワンタイムパスワードを表示する。
【0039】
以下、銀行システム12内において、ユーザ認証サーバプログラム13に従ってCPU12Aが実行する処理の内容を、クライアントPC18においてブラウザプログラムに従ってCPU19が実行する処理の内容とともに、
図6乃至
図9のフローチャートを参照して説明する。なお、以下の節名においては、便宜上、ユーザ認証サーバプログラム13に従って動作するCPU12Aを、「ユーザ認証サーバ13」と称する。
【0040】
図6の処理は、銀行システム12が提供するサイトにアクセスしているクライアントPC18の操作者が、当該サイト上において重要取引を実行することを選択したことによって、当該クライアントPC18から送信されるリクエストメッセージを銀行システム12が受信することにより、スタートする。
【0041】
そして、スタート後最初のS001では、ユーザ認証サーバ13は、リクエストメッセージ送信元クライアントPC18の操作者がユーザデータベース15に登録されたユーザであるとの想定の下に、そのユーザIDを取得する。具体的には、リクエストメッセージ中にユーザIDが含まれている場合(直前にクライアントPC18に送信されたHTMLデータに、ユーザID入力欄を表示させるとともに上記リクエストメッセージ中に当該ユーザID入力欄に書き込まれた文字列をユーザIDとして含ませる設定のタグが、含まれていた場合)には、当該リクエストメッセージ中からユーザIDを抽出する。また、当該クライアントPC18とのセッション中で当該クライアントPC18からユーザIDを受信していた場合には、一時記憶されていた当該ユーザIDを読み込む。それ以外の場合には、クライアントPC18に対して、ユーザID入力欄を表示させるとともに上記メッセージに当該ユーザID入力欄に書き込まれた文字列をユーザIDとして応答させる設定のタグを含むHTMLを送信し、これに応じてクライアントPC18が送信してくるユーザIDを取得すれば良い。
【0042】
次のS002では、ユーザ認証サーバ13は、ユーザデータベース15中の顧客マスターファイル(
図2)から、S001にて取得したユーザIDに対応付けられたハードウェアトークン番号を読み出す。
【0043】
次のS003では、ユーザ認証サーバ13は、リクエストメッセージ送信元クライアントPC18へ送信すべきソルト値生成用スクリプト14のバターン番号を決定する。この場合、上述したように、ソルト値生成用スクリプト14が時間帯に対応付けられていている場合には、現在時刻を含む時間帯に対応付けられたソルト値生成用スクリプト14のパターン番号を決定する。これに対して、ソルト値生成用スクリプト14が時刻と後述するユーザIDとを入力値とする関数によって一意に特定されるように対応付けられている場合には、現在時刻及びS001にて取得したユーザIDを当該関数に適用することにより、その関数の出力に対応付けられたソルト値生成用スクリプト14のパターン番号を決定する。
【0044】
次のS004では、ユーザ認証サーバ13は、S001にて取得したユーザID,S002にて読み出したハードウェアトークン番号,現在時刻,S004にて決定したソルト値生成用スクリプト14のパターン番号を、クライアント送信情報として、ユーザデータベース15中の送信情報ファイルに記録する(送信情報管理手段に相当)。なお、ソルト値生成用スクリプト14のパターン番号は、現在時刻又は/及びユーザIDに基づいていつでも再現できるので、送信情報ファイルに記録されなくても問題はない。従って、現在時刻又はパターン番号が、ソルト値生成プログラムを識別するための情報に相当し、ユーザIDが、端末を識別するための情報,操作者の識別情報,及び、予め認証対象者として登録されているユーザの識別情報に相当する。
【0045】
次のS005では、ユーザ認証サーバ13は、
図4に示すワンタイムパスワード入力画面をブラウザによって表示させるための電文(HTTPレスポンスメッセージ)を、動的に生成して、リクエストメッセージ送信元クライアントPC18へ送信する。この電文中に含まれるHTMLデータには、S003にて決定されたパターン番号に対応したソルト値生成用スクリプト14が組み込まれているとともに、当該ソルト値生成用スクリプト14の実行結果であるソルト値を表示するためのスクリプト欄31,ユーザID入力欄32,固定パスワード入力欄33,ワンタイムパスワード入力欄34及び送信ボタン35を夫々ワンタイムパスワード入力画面中に表示させるとともに、各欄32〜34に文字列が入力された状態で送信ボタン35が操作(クリック)されると、各欄32〜34に入力された文字列を夫々ユーザID,固定パスワード,ワンタイムパスワードとして銀行システム12へ送信させる設定のタグが、組み込まれている。従って、S005の処理を実行するユーザ認証サーバ13(CPU12A)が、応答手段に相当する。
【0046】
次のS006では、ユーザ認証サーバ13は、上記電文に応じてリクエストメッセージ送信元クライアントPC18が電文(ユーザID,固定パスワード及びワンタイムパスワードを含むHTTPリクエストメッセージ)を送信して来るのを待つ。
【0047】
ここで、S005において送信された電文(HTTPレスポンスメッセージ)を受信したクライアントPC18のCPU19が、当該電文に含まれるHTMLデータ及びブラウザプログラムに従って実行する処理を、
図8及び
図9を参照して説明する。
図8は、当該HTMLデータに組み込まれたソルト値生成用スクリプト14を読み込んだブラウザプログラムに従って実行される処理を示し、
図9は、当該HTMLデータにおけるそれ以外の部分を読み込んだブラウザプログラムに従って実行される処理を示す。これら二つの処理は、実質的に並行実行される。以下では、ブラウザプログラムに従って動作するCPU19のことを「CPU19」と称する。
【0048】
まず、CPU19は、
図9のS201において、受信したHTMLデータを読み込んで、その記述に従って、
図4に示すワンタイムパスワード入力画面をディスプレイ23上に表示する。
【0049】
これと並行して、CPU19は、
図8のS101において、クライアントPC18のハードディスク24にインストールされてCPU19によって現に実行されているオペレーティングシステム(OS)の種類識別情報及びバージョン,ブラウザプログラムの種類識別情報及びバージョンを、OS提供関数を用いて取得する。これらオペレーティングシステム(OS)の種類識別情報及びバージョン,ブラウザプログラムの種類識別情報及びバージョンは、ブラウザプログラムに従ってHTTPリスエクスメッセージが当該クライアントPC18から何れかのウェブサーバへ送信される際に、HTTP(ハイパーテキストトランスファープロトコル)の規約に従って、当該HTTPリクエストメッセージのヘッダ(HTTPヘッダ)に書き込まれることになるユーザエージェント情報を構成するので、端末の固有可変情報に相当する。
【0050】
次のS102では、CPU19は、S101にて取得したオペレーティングシステム(OS)の種類識別情報及びバージョン,ブラウザの種類識別情報及びバージョンを入力値として、ソルト値生成用スクリプト14に記述されたアルゴリズムに従って変換を施すことによって、一つのソルト値を算出する。
【0051】
次のS103では、CPU19は、S201にて表示されたワンタイムパスワード入力画面中のスクリプト領域31中に、S102にて算出したソルト値を表示する。当該ソルト値を見たユーザは、当該ソルト値を、ハードウェアトークン1のキーボード5中の文字ボタン5aを用いて入力した後に、入力ボタン5bを押下する。すると、当該ハードウェアトークン1のJCPU2は、当該ソルト値,メモリ3から読み出したハードウェアトークン番号8及びクロック7から入力された現在時刻情報を入力値として、メモリ3から読み出したワンタイムパスワード生成関数を適用することにより、ワンタイムパスワードを算出して、ディスプレイ6上に表示する。
【0052】
一方、CPU19は、S201の次のS202において、クライアントPC19を操作しているユーザが、ワンタイムパスワード入力画面中のユーザID入力欄32に当該ユーザのユーザIDを入力し、固定パスワード欄33に当該ユーザが記憶している当該ユーザの固定パスワードを入力するとともに、ワンタイムパスワード欄32にハードウェアトークン1のディスプレイ6上に表示されたワンタイムパスワードを入力してから、送信ボタン35を操作(クリック)するのを待つ。
【0053】
そして、送信ボタン35が操作されると、CPU19は、S203において、ワンタイムパスワード入力画面中のユーザID入力欄32に入力された文字列,固定パスワード欄33に入力された文字列,及び、ワンタイムパスワード欄32に入力された文字列を、夫々、ユーザID,固定パスワード及びワンタイムパスワードとして格納した電文(HTTPリクエストメッセージ)を、銀行システム12へ送信する。この電文(HTTPリクエストメッセージ)のヘッダ(HTTPヘッダ)には、上述したように、メッセージ送信元端末のオペレーティングシステム(OS)の種類識別情報及びバージョン,ブラウザの種類識別情報及びバージョンを含むユーザエージェント情報が、不可避的に書き込まれている。S203を完了すると、CPU19は、S204において、銀行システム12からの応答を待つ。
【0054】
図6に戻り、クライアントPC18から送信された電文(HTTPリクエストメッセージ)を受信すると、ユーザ認証サーバ13は、処理をS006からS007へ進め、クライアントPC18から受信した電文(HTTPリクエストメッセージ)のヘッダ(HTTPヘッダ)に含まれるユーザエージェント情報中から、オペレーティングシステム(OS)の種類識別情報及びバージョン,ブラウザの種類識別情報及びバージョンを取得する。
【0055】
次のS008では、ユーザ認証サーバ13は、S006にて受信した電文(HTTPリクエストメッセージ)中に含まれるユーザIDに対応付けられたパターン番号をユーザデータベース15中の送信情報ファイルから読み出し、当該パターン番号に対応したソルト値生成用スクリプト14をハードディスク12Cから読み出す。
【0056】
次のS009では、ユーザ認証サーバ13は、S007にて取得したオペレーティングシステム(OS)の種類識別情報及びバージョン,ブラウザの種類識別情報及びバージョンを入力値として、S008にて読み出したソルト値生成用スクリプト14を適用することにより、ソルト値を算出する(ソルト値再現手段に相当)。このとき、当該ソルト値生成用スクリプト14がクライアント端末18へ送信されたものと一致していることと、当該オペレーティングシステム(OS)の種類識別情報及びバージョン,ブラウザの種類識別情報及びバージョンクライアント端末18にインストールされているオペレーティングシステム及びブラウザプログラムのものと一致していることが保障されているので、当該ソルト値がクライアントPC18内で算出されたものと一致していることが、論理的帰結となる。
【0057】
次のS010では、ユーザ認証サーバ13は、S006にて受信した電文(HTTPリクエストメッセージ)中に含まれるユーザIDに対応付けられたハードウェアトークン番号,及び時刻を、ユーザデータベース15中の送信情報ファイルから読み出す。
【0058】
次のS011では、ユーザ認証サーバ13は、S010にて読み出したハードウェアトークン番号及び時刻,並びに、S009にて算出したソルト値を入力値として、ハードディスク12Cから読み出したワンタイムパスワード生成関数17を適用し、ワンタイムパスワードを生成する(認証情報生成手段に相当)。
【0059】
次のS012では、ユーザ認証サーバ13は、S006にて受信した電文(HTTPリクエストメッセージ)中に含まれるワンタイムパスワード及び固定パスワードの組み合わせが、同電文(HTTPリクエストメッセージ)中に含まれるユーザIDに対応付けられてユーザデータベース15の顧客情報ファイルに格納されている固定パスワード及びS011にて生成されたワンタイムパスワードの組み合わせと一致するか否かを判定する(判定手段に相当)。そして、両者が一致しなければ、処理をS016へ進め、両者が一致していれば、処理をS013へ進める。
S016では、ユーザ認証サーバ13は、S006にて受信した電文(HTTPリクエストメッセージ)中に含まれるユーザIDを含む送信情報ファイル中のエントリの「失敗カウンタ」の値(初期値は0)を一つインクリメントする。次のS017では、ユーザ認証サーバ13は、インクリメント後の「失敗カウンタ」の値が上限(例えば、3)に達したか否かをチェックする。そして、未だ「失敗カウンタ」の値が上限に達していなければ、ユーザ認証サーバ13は、S020において、リトライ指示メッセージをリクエストメッセージ送信元のクライアントPC18へ応答した後に、処理を終了する。これに対して「失敗カウンタ」の値が上限に達していると、ユーザ認証サーバ13は、S018において、警告メッセージ(失敗回数が上限に達したことにより、中間者攻撃が行われた疑いが生じたので、以後のネットワークを通じた取引を停止する旨の宣告。及び、ネットワークを通じた取引を再開したいのであれば、身分証明書,通帳,ハードウェアトークン等を支店窓口に持参して再開手続きをする様に促す通知)をリクエストメッセージ送信元のクライアントPC18へ応答した後に、S019においてID無効化処理を行った後に、処理を終了する。なお、ID無効化処理とは、S006にて受信した電文(HTTPリクエストメッセージ)中に含まれるユーザIDを用いて行うネットワーク経由の取引を停止するための処理であり、例えば、当該ユーザIDに対応付けられて顧客マスターファイルに登録されているハードウェアトークン番号を削除するとともに、当該ユーザIDを含むエントリを送信情報ファイルから削除する処理である。
【0060】
S012にて一致している旨の判断がなされた場合に実行されるS013では、ユーザ認証サーバ13は、認証成功の旨をリクエストメッセージ送信元のクライアントPC18へ応答する。次のS014では、ユーザ認証サーバ13は、S006にて受信した電文(HTTPリクエストメッセージ)中に含まれるユーザIDを含むエントリを送信情報ファイルから削除する。次のS015では、ユーザ認証サーバ13は、当該リクエストメッセージ送信元のクライアントPC18の操作者が、ユーザデータベース15に登録されている正規のユーザであることを前提に、当該クライアントPC18からのリクエストに従って、重要な取引処理を実行する。
【0061】
図9に戻り、クライアントPC18のCPU19は、銀行システム12からの応答(HTTPレスポンスメッセージ)がリトライ指示であれば、S206において、ディスプレイ23上にリトライ指示を表示した後に、処理を終了する。また、CPU19は、銀行システム12からの応答が警告であれば、警告の内容をディスプレイ23上に表示した後に、処理を終了する。これに対して、銀行システム12からの応答が成功の旨であれば、S205において、処理を継続する。この場合、当該クライアントPC18の操作者は、銀行システム12のユーザデータベース15に登録されている正規のユーザであると認証されたので、銀行システム12に対して、重要な取引処理のリクエストをすることが可能となる。
【0062】
以上のように構成された本実施形態に係るオンライン取引システム10よると、ソルト値は、銀行システム12内においてユーザ認証サーバ13が生成すると同時に、クライアントPC18内においても同アルゴリズム及び同入力値に基づいて生成されるので、ソルト値をネットワーク上に露出させる必要がない。従って、ソルト値が中間攻撃者によって傍受(漏洩)される危険がないので、セキュリティ強度が向上する。
【0063】
しかも、当該ソルト値は、複数パターンの中から選択された特定のソルト値生成用スクリプト14及びユーザエージェント情報から算出され、両者の流通方向は真逆(ソルト値生成用スクリプト14は銀行システム12からクライアントPC18へ送信される一方、ユーザエージェント情報はクライアントPC18から銀行システム12へ送信される)であるので、仮に、両者からソルト値が生成されることを中間攻撃者が知っていた場合であっても、これらの両情報を共に傍受できる蓋然性は、限りなく低い。
【0064】
また、最終的にクライアントPCが銀行システムへ送信(S203)しようとした電文(HTTPリクエストメッセージ)中のユーザID,固定パスワード及びワンタイムパスワードが中間攻撃者に傍受(漏洩)された場合、当該中間攻撃者が自己使用の端末内においてこれら情報を含む電文(HTTPリクエストメッセージ)を組み立てて、正規のユーザになりすまして銀行システムへ当該電文(HTTPリクエストメッセージ)を送信するおそれがあるが、その場合、当該中間攻撃者が組み立てた電文(HTTPリクエストメッセージ)のヘッダ(HTTPヘッダ)には、当該中間攻撃者が使用する端末のユーザエージェント情報(オペレーティングシステム(OS)の種類識別情報及びバージョン,ブラウザの種類識別情報及びバージョン)が不可避的に含まれてしまうので、銀行システム12のユーザ認証サーバ13は、認証失敗応答(S015)をすることになる。よって、この場合であっても、高いセキュリティ強度を維持することができる。