(57)【要約】【課題】ソルト値がネットワーク上で中間攻撃者によって傍受される危険を回避できる認証の仕組みを提供する。【解決手段】クライアントＰＣ１８からの認証要求メッセージを受信すると、ユーザ認証サーバ１３は、ソルト値生成用スクリプト１４を応答する。ソルト値生成用スクリプト１４は、クライアントＰＣ１８のＣＰＵ１９に対して、ＯＳ及びブラウザの種別識別情報及びバージョン情報を所定アルゴリズムに従って変換することにより、ソルト値を算出させる。クライアントＰＣ１８から、当該ソルト値に基づいて生成されたワンタイムパスワードを格納した認証要求メッセージを受信すると、ユーザ認証サーバ１３は、当該認証要求メッセージのヘッダに含まれているユーザエージェント情報から、ＯＳ及びブラウザの種別識別情報及びバージョン情報を抽出し、これらに対してソルト値生成用スクリプト１４に従った処理を施すことにより、ソルト値を再現する。【選択図】図１
2014096101.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを通じてアクセスしてきた端末を操作している操作者が予め登録されたユーザであることを認証するユーザ認証装置であって、
端末の処理装置に対して当該端末から発信される電文のヘッダに書き込まれることになる当該端末の固有可変情報に対して所定アルゴリズムに従った変換を施させることによって、ユーザ認証に用いられる認証情報の所定関数に基づく生成に必要とされるソルト値を生成させるソルト値生成プログラムを格納した記憶装置と、
端末からの電文による要求に応じて、前記ソルト値生成プログラムを当該端末へ送信する応答手段と、
前記ソルト値生成プログラムに従って、前記端末からの電文のヘッダに書き込まれた当該端末の固有可変情報に対して前記所定アルゴリズムに従った変換を施すことによってソルト値を生成し、生成した前記ソルト値に基づいて前記所定関数を実行することにより認証情報を生成する認証情報生成手段と
を備えたことを特徴とするユーザ認証装置。
【請求項２】
前記端末から前記認証情報を格納した電文を受信すると、前記電文に格納された前記認証情報と前記認証情報生成手段が生成した前記認証情報とが一致する場合に、前記端末の操作者が予め認証対象者として登録されているユーザであると判定する判定手段を
更に備えたことを特徴とする請求項１記載のユーザ認証装置。
【請求項３】
前記記憶装置には、前記アルゴリズムが互いに異なる複数パターンの前記ソルト値生成プログラムが格納されているとともに、
前記応答手段が前記端末に送信したソルト値生成プログラムを識別するための情報を、前記端末を識別するための情報に対応付けて記録する、送信情報管理手段を更に備え、
前記ソルト値再現手段は、前記電文を送信した端末を識別するための情報を取得し、当該情報に対応付けて前記ソルト値生成プログラム管理手段によって記録されているソルト値生成プログラムを識別するための情報を読み出し、当該情報によって識別されるソルト値生成プログラムに従って、当該電文のヘッダに書き込まれた当該端末の固有可変情報に対して前記所定アルゴリズムに従った変換を施すことによってソルト値を生成する
ことを特徴とする請求項１記載のユーザ認証装置。
【請求項４】
前記端末を識別するための情報は、予め認証対象者として登録されているユーザの識別情報であり、
前記関数は、前記認証情報を生成する認証情報生成装置の固体識別情報，現在時刻及び入力された前記ソルト値に基づいて当該認証情報生成装置が前記認証情報を生成するために実行する関数と同じ関数であり、
前記送信情報管理手段は、さらに、前記端末に前記ソルト値生成プログラムを送信した時刻，前記端末を操作しているユーザに交付された前記認証情報生成装置の個体識別情報を、当該ユーザの識別情報に対応付けて記録し、
前記認証情報生成手段は、生成した前記ソルト値，並びに、前記電文を送信した端末を操作しているユーザの識別情報に対応付けて前記送信情報管理手段が記録している時刻及び前記認証情報生成装置の個体識別情報に対して、前記関数を実行することにより前記認証情報を生成する
ことを特徴とする請求項１乃至３の何れかに記載のユーザ認証装置。
【請求項５】
端末の処理装置に対して当該端末から発信される電文のヘッダに書き込まれることになる当該端末の固有可変情報に対して所定アルゴリズムに従った変換を施させることによって、ユーザ認証に用いられる認証情報の所定関数に基づく生成に必要とされるソルト値を生成させるソルト値生成プログラムを格納した記憶装置に接続され、ネットワークを通じてアクセスしてきた端末を操作している操作者が予め登録されたユーザであることを認証するコンピュータを、
端末からの電文による要求に応じて、前記ソルト値生成プログラムを当該端末へ送信する応答手段、及び、
前記ソルト値生成プログラムに従って、前記端末からの電文のヘッダに書き込まれた当該端末の固有可変情報に対して前記所定アルゴリズムに従った変換を施すことによってソルト値を生成し、生成した前記ソルト値に基づいて前記所定関数を実行することにより認証情報を生成する認証情報生成手段
として機能させるユーザ認証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザ認証装置及びプログラムに係り、特に、クライアント端末を操作している操作者が予め登録されているユーザか否かを認証するためのユーザ認証装置及びコンピュータを前記ユーザ認証装置として機能させるためのユーザ認証プログラムに、関する。
【背景技術】
【０００２】
予め登録したユーザに対してオンラインで所定のサービスを提供するウェブサイトでは、ネットワークを介してウェブサイトにアクセスしてきた端末の操作者にユーザＩＤ及びパスワードを入力させ、入力されたユーザＩＤとパスワードの組合わせがデータベースに登録されているか否かに基づいて、アクセスしてきた端末の操作者が予め登録されたユーザか否かを確認するユーザ認証方法が採用されることが、一般的である。
【０００３】
しかし、上記のユーザ認証方法は、ユーザが操作する端末の個性には依存しないので、仮にユーザＩＤとパスワードが他者へ漏洩してしまった場合に、ユーザが漏洩に気付く前に、ユーザＩＤとパスワードを知った者が正当なユーザになりすまして不正にアクセスすることが可能になってしまうという欠点がある。
【０００４】
これに関連して、非特許文献１には、認証サーバを運用する認証業者との間で契約を交わしたユーザに対し、内部クロックによって生成した時刻及び機器識別情報に対して所定のパスワード生成アルゴリズムに従った変換を施すことによってパスワード（ワンタイムパスワード）を生成するスタンドアローンなハードウェア（ハードウェアトークン）を交付するとともに、当該ユーザのＩＤ（ユーザＩＤ）に対応付けて上記機器識別情報を認証サーバに格納しておき、ハードウェアトークンが最新に生成したワンタイムパスワードとユーザＩＤが端末から認証サーバへ送信されると、認証サーバが、受信したユーザＩＤに対応付けて格納している機器識別情報及び現在時刻に対して上記パスワード生成アルゴリズムに従った変換を施すことによってワンタイムパスワードを再現し、当該ワンタイムパスワードと端末から受信したワンタイムパスワードが一致していると、当該端末の操作者が上記ユーザであることを認証し、ユーザが指定する他の業者等に対して証明を行う技術が、記載されている。
【０００５】
一方、ワンタイムパスワードの生成方式として、上述した方式（時刻同期方式）の他、チャレンジ・レスポンス方式が知られている。このチャレンジ・レスポンス方式とは、１回のログイン毎に、認証サーバから端末に対してチャレンジと呼ばれるワンタイムパスワード生成パラメータを送信し、端末は、受信したチャレンジを入力としてレスポンスと呼ばれるワンタイムパスワードを生成し、認証サーバへ送信し、認証サーバは、チャレンジに基づいてユーザが送信すべきレスポンスを算出し、端末から受信したレスポンスと照合して認証処理を行う技術である。
【０００６】
上述した非特許文献１に記載された時刻同期方式の認証方法によると、ワンタイムパスワード生成の基礎となるパラメータは二つだけ（機器識別情報及び現在時刻）であるので、セキュリティ強度（ハ―ドウェアトークンの偽造の困難性）が比較的低いという問題が、認識されるようになった。
【０００７】
そこで、非特許文献２には、時刻同期方式とチャレンジレスポンス方式とを組み合わせ、ワンタイムパスワード生成アルゴリズムとして機器識別情報及び現在時刻の他にソルト値（認証情報を生成する為のパラメータであり、従来、主に乱数が充てられていたもの）を要求するものを採用し、ハードウェアトークンにソルト値入力用のキーボードを追加し、認証サーバがユーザ毎にソルト値を生成して、ユーザからの要求に応じてソルト値を認証サーバから端末へ送信するとともに、当該ユーザのユーザＩＤ及び機器識別情報に対応付けて認証サーバに格納し、その後、端末からワンタイムパスワードが送信されてくると、格納しておいたソルト値及び機器識別情報並びに現在時刻に基づいてワンタイムパスワードを生成し、両ワンタイムパスワードが一致するか否かに基づいて認証処理を行う技術が、開示されている。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】“正しい認証方式の選び方ハンドブック”、［online］、平成24年8月、RSAセキュリティ株式会社、［平成24年10月26日検索］、インターネット〈URL：http://japan.rsa.com/japan/pdf/products/SID/AuthHandBook.pdf〉
【非特許文献２】“Tele-IDv.6.2 FIPS 140-2 Non-Proprietary Security Policy”、［online］、平成19年、Encotone Ltd.、［平成24年10月26日検索］、インターネット〈URL：http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp417.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献２に記載の技術によると、ソルト値は、ネットワークを通じて認証サーバから端末へ送信されるので、悪意のある第三者（中間攻撃者）によって傍受され易く、よって、総合的なセキュリティ強度（ハ―ドウェアトークンの偽造の困難性）は、特許文献１に記載の時刻同期方式からあまり向上していないという問題があった。
【００１０】
本発明は上記事実を考慮して成されたもので、その課題は、ソルト値を端末において生成可能とすることによってソルト値がネットワーク上で中間攻撃者によって傍受される危険を回避できるにも拘わらず、同一のソルト値を認証サーバ内で生成できるようにしたユーザ認証装置及びユーザ認証プログラムを得ることにある。
【課題を解決するための手段】
【００１１】
上記課題を解決するための手段としてのサーバは、ネットワークを通じてアクセスしてきた端末を操作している操作者が予め登録されたユーザであることを認証する際に、端末の処理装置に対して当該端末から発信される電文のヘッダに書き込まれることになる当該端末の固有可変情報に対して所定アルゴリズムに従った変換を施させることによって、ユーザ認証に用いられる認証情報の生成に必要とされるソルト値を生成させるソルト値生成プログラムを記憶装置に格納しておき、端末からの電文による要求に応じて、前記ソルト値生成プログラムを当該端末へ送信し、前記ソルト値生成プログラムに従って、前記端末からの電文のヘッダに書き込まれた当該端末の固有可変情報に対して前記所定アルゴリズムに従った変換を施すことによってソルト値を生成し、生成した前記ソルト値に基づいて前記所定関数を実行することにより認証情報を生成するものである。
【００１２】
ここにおいて、ソルト値生成プログラムとは、単独で、処理装置に対して上述したソルト値の生成を行わせるものであっても良いし、別のプログラム，例えばブラウザプログラムのアドインプログラムであっても良いし、ブラウザプログラムやヴァーチャルマシンプログラムに従って動作している処理装置に読み込まれて実行されるスクリプトやアプレットであっても良い。ソルト値生成プログラムは一つだけ用意されていても良いし、複数パターン用意されていても良い。その場合、一つのプログラムのテンプレートに、予め用意されていた複数パターンのパラメータの中から選択されたパラメータを埋め込んでプログラムを完成させて端末へ送信するようにしても良い。後者についても、本明細書では「複数パターンのソルト生成プログラム」と称する。このように複数パターンのソルト生成プログラムから選択した特定ソルト生成プログラムを端末へ送信する場合には、要求電文を送信してきた端末の識別情報に対応付けて、いずれのソルト生成プログラムを送信したかを事後的に識別できる情報を、記憶装置に記憶させておく必要がある。かかる端末の識別情報としては、例えば、固定ＩＰアドレスを用いることもできるが、端末を操作している操作者のユーザＩＤであっても良い。
端末の固有可変情報とは、本発明に基づいて認証が行われるような短時間の間には変更される蓋然性が低い情報である必要がある。この固有可変情報としては、例えば、電文がハイパーテキストトランスファープロトコルに従ったメッセージである場合には、当該プロトコルに従ったユーザエージェント情報，特に、端末にインストールされたオペレーティングシステム及びブラウザプログラムの種類情報及びバージョン情報を、用いることができる。この場合、ソルト値生成プログラムを要求する電文にも、その後認証情報を伝達するために送信されて来る電文にも、同じ固有可変情報が含まれることになる。従って、その場合には、サーバは、前者の電文に含まれる固有可変情報に基づいてソルト値を生成し更に認証情報も生成して記憶装置に記憶しておいても良いし、後者の電文に含まれる固有可変情報に基づいてソルト値を生成して更に認証情報を生成して、生成した認証情報を記憶装置に記憶することなく、直ちに、当該電文に含まれる認証情報と比較しても良い。
【発明の効果】
【００１３】
本発明によれば、ソルト値を端末において生成可能であり、端末において生成されたものと同一のソルト値が認証サーバ内でも生成されるので、ソルト値がネットワーク上で中間攻撃者によって傍受される危険を回避できる。従って、本発明を従来のワンタイムパスワード生成方法及び認証方法に適用すれば、かかる傍受の危険が低いソルト値を用いてワンタイムパスワードを生成することができるので、セキュリティの強度が強固になる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態に係るコンピュータ・システムの概略構成を示すブロック図
【図２】ユーザデータベースを構成する顧客マスターファイルのデータ構造を示す表
【図３】ユーザデータベースを構成する送信情報ファイルのデータ構造を示す表
【図４】ワンタイムパスワード入力画面を示す図
【図５】ハードウェアトークンの表面を示す図
【図６】ユーザ認証サーバプログラムに従って銀行システムのＣＰＵが実行する処理の内容を示すフローチャート
【図７】ユーザ認証サーバプログラムに従って銀行システムのＣＰＵが実行する処理の内容を示すフローチャート
【図８】スクリプトムを読み込んだブラウザプログラムに従ってクライアント端末のＣＰＵが実行する処理の内容を示すフローチャート
【図９】HTMLを読み込んだブラウザプログラムに従ってクライアント端末のＣＰＵが実行する処理の内容を示すフローチャート
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図１には本実施形態に係るオンライン取引システム１０が示されている。このオンライン取引システム１０は、特定金融機関に設置されたユーザ認証装置としての銀行システム１２を含んで構成されている。ただし、本発明は、銀行システムに限らず、あらゆるネットワークシステムにおいて、サーバにアクセスして一定サービスを要求してきたクライアント端末の操作者が、予め正規のユーザとして登録された者と一致するかどうかを認証する場合に、用いられる。かかるサービスには、他の事業者に対してクライアント端末の操作者が予め登録されているユーザであることを証明するサービスも、含まれている。
【００１６】
本実施形態について説明すると、上記特定金融機関は、当該特定金融機関に口座を開設しているユーザがオンラインで金融取引を行うことを可能とするサービスとして、オンライン金融取引用ウェブサイトを通じてユーザからのオンラインでの金融取引の実行指示を受け付けるオンライン金融取引受付サービスを、提供している。このオンライン金融取引受付サービスを利用した金融取引では、ユーザがクライアントＰＣ（Personal Computer）１８を介してオンライン金融取引用ウェブサイトのウェブページを閲覧し、該ウェブページ上で必要な情報を入力することで、ユーザが所望している金融取引の実行を指示するための情報（金融取引指示情報）がクライアントＰＣ１８から銀行システム１２へ送信される。そして、この金融取引指示情報が銀行システム１２からイントラネット２６に接続された勘定系システム２８等へ転送されることで、金融取引指示情報に基づいてユーザから指示された金融取引が勘定系システム２８等によって実行されるようになっている。
【００１７】
かかる銀行システム１２は、相互にバスＢを通じて接続されたＣＰＵ１２Ａ、メモリ１２Ｂ、ハードディスクドライブ（ＨＤＤ）１２Ｃ、及び、ネットワークインタフェース（Ｉ／Ｆ）部１２Ｄを、備えている。
【００１８】
ネットワークＩ／Ｆ部１２Ｄは、多数台のウェブサーバが通信回線を介して相互に接続されて成る公共のコンピュータ・ネットワーク（インターネット）１６に直接接続されており、更に特定金融機関内に設置されたイントラネット（ＬＡＮ）２６にも接続されている。イントラネット２６には勘定系システム２８が接続されている。
【００１９】
上記インターネット１６には、多数台のクライアントＰＣ１８が接続されているので、上記ネットワークＩ／Ｆ部１２Ｄは、インターネット１６を介して各クライアントＰＣ１８に接続可能となっている。
【００２０】
メモリ１２Ｂは、ＲＡＭ（ランダムアクセスメモリ）からなる主記憶装置であり、ＣＰＵ１２Ｂによる作業領域が展開される。
【００２１】
ＣＰＵ１２Ａは、メモリ１２Ｂ上に読み出されたプログラムを実行して、銀行システム１２を構成するハードウェア全体を制御するコンピュータであり、応答手段，ソルト値再現手段，送信情報管理手段の一部，認証情報生成手段及び判定手段に、相当する。
【００２２】
ＨＤＤ１２Ｃは、各種データ及びプログラムを格納したコンピュータ読取可能な記憶媒体を内蔵した記憶装置である。ＨＤＤ１２Ｃが格納しているプログラムには、ＣＰＵ１２Ａによってメモリ１２Ｂ上に読み出されて実行されるオペレーティングシステム（ＯＳ），ユーザ認証サーバプログラム１３，ワンタイムパスワード生成関数１７，及び、複数パターンのソルト値生成用スクリプト（JavaScript(登録商標)）１４が、含まれている。ただし、オペレーティングシステムは、一般に市販されているものであるので、その説明を省略する。また、ユーザ認証サーバプログラム１３の内容については、図６及び図７のフローチャートを参照して、後述する。各ソルト値生成用スクリプト１４は、複数のパラメータ（ＯＳ種類識別情報，ＯＳバージョン，ブラウザ種類識別情報，ブラウザバージョン）を所定のアルゴリズムに従って変換することによって一意の数列（ソルト値）を生成する関数を定義した一種のプログラム（ソルト値生成プログラム）である。ＨＤＤ１２Ｃは、上記アルゴリズムが相互に異なる複数パターンのソルト値生成用スクリプト１４が予め用意されている。これらソルト値生成用スクリプト１４は、時間帯に対応付けられていても良いし、時刻と後述するユーザＩＤとを入力値とする関数によって一意に特定されるように対応付けられていても良い。ワンタイムパスワード生成関数１７は、例えば、非特許文献２に記載された様なハードウェアトークン（認証情報生成装置）に実装されているプログラムであり、ソルト値，現在時刻及びハードウェアトークン番号（認証情報生成装置の固体識別情報）からなる３種類のパラメータを所定のアルゴリズムに従って変換することによって一意の数列（ワンタイムパスワード［ユーザ認証に用いられる認証情報に相当］）を生成する関数を定義したプログラムである。
【００２３】
ＨＤＤ１２Ｃが格納している各種データには、ユーザデータベース１５が、含まれている。ユーザデータベース１５は、当該特定金融機関と口座開設契約を締結している全てのユーザに関する情報を管理するデータベースである。このユーザデータベース１６は、複数のデータファイルから構成されているので、その一例を図２及び図３に示す。
【００２４】
図２は、認証対象者たる個々のユーザについての固定的な情報を予め登録するためのデータファイル（顧客マスターファイル）であり、個々のユーザ毎に、一意に付与されたユーザＩＤ（契約番号），当該ユーザに交付されたハードウェアトークンの固体識別情報（ハードウェアトークン番号）及びその有効期限，当該ユーザの氏名，生年月日及び住所，並びに、当該ユーザが任意に設定したパスワード（固定パスワード）が、登録される。
【００２５】
図３は、顧客マスターファイルに予め認証対象者として登録されているユーザが認証要求をする毎に、その認証要求を管理するための情報を一時的に記録するための送信情報管理手段としてのデータファイル（送信情報ファイル［送信情報管理手段の一部に相当］）であり、個々の認証要求毎にエントリが追加され、追加されたエントリには、その認証要求をしたユーザのユーザＩＤ，顧客マスターファイル（図２）において当該ユーザＩＤに対応付けて登録されているハードウェアトークン番号，その認証要求に応じて当該ユーザへ送信されたソルト値生成用スクリプト１４のパターン番号及びその送信を行った時刻，並びに、認証失敗をした回数を記録するためのカウンタ値（失敗カウンタ）が、記録される。
【００２６】
図１に戻り、端末としてのクライアントＰＣ１８は、バスＢを通じて相互にデータ交換可能に接続されたＣＰＵ１９、メモリ２０、キーボード２１、通信モジュール２２、ディスプレイ２３及びハードディスク（ＨＤＤ）２４を、有している。即ち、当該クライアントＰＣ１８は、一般的なハードウェア構成を有する汎用のコンピュータである。なお、クライアントＰＣ１８は、インターネット接続機能を備えているコンピュータであれば良いので、所謂タブレットコンピュータのハードウェア構成を有していても、所謂スマートフォンのハードウェア構成を有していても良い。
【００２７】
ＣＰＵ１９は、プログラムを読み込んで実行することによって当該クライアントＰＣ１８全体の制御を行う処理装置である。
【００２８】
通信モジュール２２は、当該クライアントＰＣ１８を使用するユーザが利用可能な各種ネットワークのプロトコルを終端し、かかるプロトコルに従ったデータ形式にて、かかるネットワークの基地局との間で通信を行う通信装置である。
【００２９】
ディスプレイ２３は、ＣＰＵ１９によって各種画像，画面，メッセージ等の可視情報が表示される表示装置である。
【００３０】
キーボード２１は、ユーザによって操作されることによってＣＰＵに文字列を入力する入力装置である。
【００３１】
ハードディスク２４は、各種プログラム及び各種データを格納した外部記憶装置である。ハードディスク２４が格納している各種プログラムには、クライアントＰＣ１８の基本動作を制御するための基本プログラムであるオペレーティングシステム（ＯＳ），ブラウザプログラムが、含まれている。ただし、これらオペレーシングシステム及びブラウザプログラムは、一般的に流通しているものであるので、その説明を省略する。
【００３２】
メモリ２０は、ＣＰＵ１９の作業領域が展開される主記憶装置である。このメモリ２０には、ネットワークを経由してダウンロードされたプログラムやデータも、一時的に記憶される。例えば、上述した銀行システム１２からインターネット１６を介して受信したソルト値生成用スクリプト１４やワンタイムパスワード生成関数１７も、当該メモリ２０上に一時記憶され、ＣＰＵ１９に読み出されて実行される。
【００３３】
ハードウェアトークン１は、上述したワンタイムパスワード生成関数１７を実行することに特化された専用電算機であり、例えば、非特許文献２に記載された従来公知のものが、用いられ得る。ここで、ハードウェアトークン１の構造を模式的に説明すると、図１に図示されるように、Ｂを通じて相互にデータ交換可能に接続されたＣＰＵ２、メモリ３、キーボード５、ディスプレイ６、及びクロック７から、構成されている。
【００３４】
メモリ３は、当該ハードウェアトークン１に対して予め一意且つ固定的に付与されたハードウェアトークン番号８及び銀行システム１２のハードディスク１２Ｃに格納されているものと全く同じワンタイムパスワード生成関数１７を格納した、ＲＯＭ（リードオンリーメモリー）である。
【００３５】
キーボード５は、図５の平面図に示すように、０〜９の数字や若干の記号を入力するための複数の文字ボタン５ａ及び入力ボタン５ｂから構成されている。
【００３６】
クロック７は、現在時刻を示す情報（時刻情報）を常時生成し、ＣＰＵ２に入力する。
【００３７】
ＣＰＵ２は、キーボード５によって入力された文字列（ソルト値）及びメモリ３から読み出したハードウェアトークン番号８に対して、メモリ３から読み出したワンタイムパスワード生成関数１７を実行することにより、ワンタイムパスワードを生成する。なお、このＣＰＵ２の代わりに、同機能を果たすロジック回路が用いられても良い。
【００３８】
ディスプレイ６は、図５に示されるように、ワンタイムパスワードの桁数分の文字列を表示することができる液晶パネルであり、ＣＰＵ２によって生成されたワンタイムパスワードを表示する。
【００３９】
以下、銀行システム１２内において、ユーザ認証サーバプログラム１３に従ってＣＰＵ１２Ａが実行する処理の内容を、クライアントＰＣ１８においてブラウザプログラムに従ってＣＰＵ１９が実行する処理の内容とともに、図６乃至図９のフローチャートを参照して説明する。なお、以下の節名においては、便宜上、ユーザ認証サーバプログラム１３に従って動作するＣＰＵ１２Ａを、「ユーザ認証サーバ１３」と称する。
【００４０】
図６の処理は、銀行システム１２が提供するサイトにアクセスしているクライアントＰＣ１８の操作者が、当該サイト上において重要取引を実行することを選択したことによって、当該クライアントＰＣ１８から送信されるリクエストメッセージを銀行システム１２が受信することにより、スタートする。
【００４１】
そして、スタート後最初のＳ００１では、ユーザ認証サーバ１３は、リクエストメッセージ送信元クライアントＰＣ１８の操作者がユーザデータベース１５に登録されたユーザであるとの想定の下に、そのユーザＩＤを取得する。具体的には、リクエストメッセージ中にユーザＩＤが含まれている場合（直前にクライアントＰＣ１８に送信されたＨＴＭＬデータに、ユーザＩＤ入力欄を表示させるとともに上記リクエストメッセージ中に当該ユーザＩＤ入力欄に書き込まれた文字列をユーザＩＤとして含ませる設定のタグが、含まれていた場合）には、当該リクエストメッセージ中からユーザＩＤを抽出する。また、当該クライアントＰＣ１８とのセッション中で当該クライアントＰＣ１８からユーザＩＤを受信していた場合には、一時記憶されていた当該ユーザＩＤを読み込む。それ以外の場合には、クライアントＰＣ１８に対して、ユーザＩＤ入力欄を表示させるとともに上記メッセージに当該ユーザＩＤ入力欄に書き込まれた文字列をユーザＩＤとして応答させる設定のタグを含むＨＴＭＬを送信し、これに応じてクライアントＰＣ１８が送信してくるユーザＩＤを取得すれば良い。
【００４２】
次のＳ００２では、ユーザ認証サーバ１３は、ユーザデータベース１５中の顧客マスターファイル（図２）から、Ｓ００１にて取得したユーザＩＤに対応付けられたハードウェアトークン番号を読み出す。
【００４３】
次のＳ００３では、ユーザ認証サーバ１３は、リクエストメッセージ送信元クライアントＰＣ１８へ送信すべきソルト値生成用スクリプト１４のバターン番号を決定する。この場合、上述したように、ソルト値生成用スクリプト１４が時間帯に対応付けられていている場合には、現在時刻を含む時間帯に対応付けられたソルト値生成用スクリプト１４のパターン番号を決定する。これに対して、ソルト値生成用スクリプト１４が時刻と後述するユーザＩＤとを入力値とする関数によって一意に特定されるように対応付けられている場合には、現在時刻及びＳ００１にて取得したユーザＩＤを当該関数に適用することにより、その関数の出力に対応付けられたソルト値生成用スクリプト１４のパターン番号を決定する。
【００４４】
次のＳ００４では、ユーザ認証サーバ１３は、Ｓ００１にて取得したユーザＩＤ，Ｓ００２にて読み出したハードウェアトークン番号，現在時刻，Ｓ００４にて決定したソルト値生成用スクリプト１４のパターン番号を、クライアント送信情報として、ユーザデータベース１５中の送信情報ファイルに記録する（送信情報管理手段に相当）。なお、ソルト値生成用スクリプト１４のパターン番号は、現在時刻又は／及びユーザＩＤに基づいていつでも再現できるので、送信情報ファイルに記録されなくても問題はない。従って、現在時刻又はパターン番号が、ソルト値生成プログラムを識別するための情報に相当し、ユーザＩＤが、端末を識別するための情報，操作者の識別情報，及び、予め認証対象者として登録されているユーザの識別情報に相当する。
【００４５】
次のＳ００５では、ユーザ認証サーバ１３は、図４に示すワンタイムパスワード入力画面をブラウザによって表示させるための電文（ＨＴＴＰレスポンスメッセージ）を、動的に生成して、リクエストメッセージ送信元クライアントＰＣ１８へ送信する。この電文中に含まれるＨＴＭＬデータには、Ｓ００３にて決定されたパターン番号に対応したソルト値生成用スクリプト１４が組み込まれているとともに、当該ソルト値生成用スクリプト１４の実行結果であるソルト値を表示するためのスクリプト欄３１，ユーザＩＤ入力欄３２，固定パスワード入力欄３３，ワンタイムパスワード入力欄３４及び送信ボタン３５を夫々ワンタイムパスワード入力画面中に表示させるとともに、各欄３２〜３４に文字列が入力された状態で送信ボタン３５が操作（クリック）されると、各欄３２〜３４に入力された文字列を夫々ユーザＩＤ，固定パスワード，ワンタイムパスワードとして銀行システム１２へ送信させる設定のタグが、組み込まれている。従って、Ｓ００５の処理を実行するユーザ認証サーバ１３（ＣＰＵ１２Ａ）が、応答手段に相当する。
【００４６】
次のＳ００６では、ユーザ認証サーバ１３は、上記電文に応じてリクエストメッセージ送信元クライアントＰＣ１８が電文（ユーザＩＤ，固定パスワード及びワンタイムパスワードを含むＨＴＴＰリクエストメッセージ）を送信して来るのを待つ。
【００４７】
ここで、Ｓ００５において送信された電文（ＨＴＴＰレスポンスメッセージ）を受信したクライアントＰＣ１８のＣＰＵ１９が、当該電文に含まれるＨＴＭＬデータ及びブラウザプログラムに従って実行する処理を、図８及び図９を参照して説明する。図８は、当該ＨＴＭＬデータに組み込まれたソルト値生成用スクリプト１４を読み込んだブラウザプログラムに従って実行される処理を示し、図９は、当該ＨＴＭＬデータにおけるそれ以外の部分を読み込んだブラウザプログラムに従って実行される処理を示す。これら二つの処理は、実質的に並行実行される。以下では、ブラウザプログラムに従って動作するＣＰＵ１９のことを「ＣＰＵ１９」と称する。
【００４８】
まず、ＣＰＵ１９は、図９のＳ２０１において、受信したＨＴＭＬデータを読み込んで、その記述に従って、図４に示すワンタイムパスワード入力画面をディスプレイ２３上に表示する。
【００４９】
これと並行して、ＣＰＵ１９は、図８のＳ１０１において、クライアントＰＣ１８のハードディスク２４にインストールされてＣＰＵ１９によって現に実行されているオペレーティングシステム（ＯＳ）の種類識別情報及びバージョン，ブラウザプログラムの種類識別情報及びバージョンを、ＯＳ提供関数を用いて取得する。これらオペレーティングシステム（ＯＳ）の種類識別情報及びバージョン，ブラウザプログラムの種類識別情報及びバージョンは、ブラウザプログラムに従ってＨＴＴＰリスエクスメッセージが当該クライアントＰＣ１８から何れかのウェブサーバへ送信される際に、ＨＴＴＰ（ハイパーテキストトランスファープロトコル）の規約に従って、当該ＨＴＴＰリクエストメッセージのヘッダ（ＨＴＴＰヘッダ）に書き込まれることになるユーザエージェント情報を構成するので、端末の固有可変情報に相当する。
【００５０】
次のＳ１０２では、ＣＰＵ１９は、Ｓ１０１にて取得したオペレーティングシステム（ＯＳ）の種類識別情報及びバージョン，ブラウザの種類識別情報及びバージョンを入力値として、ソルト値生成用スクリプト１４に記述されたアルゴリズムに従って変換を施すことによって、一つのソルト値を算出する。
【００５１】
次のＳ１０３では、ＣＰＵ１９は、Ｓ２０１にて表示されたワンタイムパスワード入力画面中のスクリプト領域３１中に、Ｓ１０２にて算出したソルト値を表示する。当該ソルト値を見たユーザは、当該ソルト値を、ハードウェアトークン１のキーボード５中の文字ボタン５ａを用いて入力した後に、入力ボタン５ｂを押下する。すると、当該ハードウェアトークン１のＪＣＰＵ２は、当該ソルト値，メモリ３から読み出したハードウェアトークン番号８及びクロック７から入力された現在時刻情報を入力値として、メモリ３から読み出したワンタイムパスワード生成関数を適用することにより、ワンタイムパスワードを算出して、ディスプレイ６上に表示する。
【００５２】
一方、ＣＰＵ１９は、Ｓ２０１の次のＳ２０２において、クライアントＰＣ１９を操作しているユーザが、ワンタイムパスワード入力画面中のユーザＩＤ入力欄３２に当該ユーザのユーザＩＤを入力し、固定パスワード欄３３に当該ユーザが記憶している当該ユーザの固定パスワードを入力するとともに、ワンタイムパスワード欄３２にハードウェアトークン１のディスプレイ６上に表示されたワンタイムパスワードを入力してから、送信ボタン３５を操作（クリック）するのを待つ。
【００５３】
そして、送信ボタン３５が操作されると、ＣＰＵ１９は、Ｓ２０３において、ワンタイムパスワード入力画面中のユーザＩＤ入力欄３２に入力された文字列，固定パスワード欄３３に入力された文字列，及び、ワンタイムパスワード欄３２に入力された文字列を、夫々、ユーザＩＤ，固定パスワード及びワンタイムパスワードとして格納した電文（ＨＴＴＰリクエストメッセージ）を、銀行システム１２へ送信する。この電文（ＨＴＴＰリクエストメッセージ）のヘッダ（ＨＴＴＰヘッダ）には、上述したように、メッセージ送信元端末のオペレーティングシステム（ＯＳ）の種類識別情報及びバージョン，ブラウザの種類識別情報及びバージョンを含むユーザエージェント情報が、不可避的に書き込まれている。Ｓ２０３を完了すると、ＣＰＵ１９は、Ｓ２０４において、銀行システム１２からの応答を待つ。
【００５４】
図６に戻り、クライアントＰＣ１８から送信された電文（ＨＴＴＰリクエストメッセージ）を受信すると、ユーザ認証サーバ１３は、処理をＳ００６からＳ００７へ進め、クライアントＰＣ１８から受信した電文（ＨＴＴＰリクエストメッセージ）のヘッダ（ＨＴＴＰヘッダ）に含まれるユーザエージェント情報中から、オペレーティングシステム（ＯＳ）の種類識別情報及びバージョン，ブラウザの種類識別情報及びバージョンを取得する。
【００５５】
次のＳ００８では、ユーザ認証サーバ１３は、Ｓ００６にて受信した電文（ＨＴＴＰリクエストメッセージ）中に含まれるユーザＩＤに対応付けられたパターン番号をユーザデータベース１５中の送信情報ファイルから読み出し、当該パターン番号に対応したソルト値生成用スクリプト１４をハードディスク１２Ｃから読み出す。
【００５６】
次のＳ００９では、ユーザ認証サーバ１３は、Ｓ００７にて取得したオペレーティングシステム（ＯＳ）の種類識別情報及びバージョン，ブラウザの種類識別情報及びバージョンを入力値として、Ｓ００８にて読み出したソルト値生成用スクリプト１４を適用することにより、ソルト値を算出する（ソルト値再現手段に相当）。このとき、当該ソルト値生成用スクリプト１４がクライアント端末１８へ送信されたものと一致していることと、当該オペレーティングシステム（ＯＳ）の種類識別情報及びバージョン，ブラウザの種類識別情報及びバージョンクライアント端末１８にインストールされているオペレーティングシステム及びブラウザプログラムのものと一致していることが保障されているので、当該ソルト値がクライアントＰＣ１８内で算出されたものと一致していることが、論理的帰結となる。
【００５７】
次のＳ０１０では、ユーザ認証サーバ１３は、Ｓ００６にて受信した電文（ＨＴＴＰリクエストメッセージ）中に含まれるユーザＩＤに対応付けられたハードウェアトークン番号，及び時刻を、ユーザデータベース１５中の送信情報ファイルから読み出す。
【００５８】
次のＳ０１１では、ユーザ認証サーバ１３は、Ｓ０１０にて読み出したハードウェアトークン番号及び時刻，並びに、Ｓ００９にて算出したソルト値を入力値として、ハードディスク１２Ｃから読み出したワンタイムパスワード生成関数１７を適用し、ワンタイムパスワードを生成する（認証情報生成手段に相当）。
【００５９】
次のＳ０１２では、ユーザ認証サーバ１３は、Ｓ００６にて受信した電文（ＨＴＴＰリクエストメッセージ）中に含まれるワンタイムパスワード及び固定パスワードの組み合わせが、同電文（ＨＴＴＰリクエストメッセージ）中に含まれるユーザＩＤに対応付けられてユーザデータベース１５の顧客情報ファイルに格納されている固定パスワード及びＳ０１１にて生成されたワンタイムパスワードの組み合わせと一致するか否かを判定する（判定手段に相当）。そして、両者が一致しなければ、処理をＳ０１６へ進め、両者が一致していれば、処理をＳ０１３へ進める。
Ｓ０１６では、ユーザ認証サーバ１３は、Ｓ００６にて受信した電文（ＨＴＴＰリクエストメッセージ）中に含まれるユーザＩＤを含む送信情報ファイル中のエントリの「失敗カウンタ」の値（初期値は０）を一つインクリメントする。次のＳ０１７では、ユーザ認証サーバ１３は、インクリメント後の「失敗カウンタ」の値が上限（例えば、３）に達したか否かをチェックする。そして、未だ「失敗カウンタ」の値が上限に達していなければ、ユーザ認証サーバ１３は、Ｓ０２０において、リトライ指示メッセージをリクエストメッセージ送信元のクライアントＰＣ１８へ応答した後に、処理を終了する。これに対して「失敗カウンタ」の値が上限に達していると、ユーザ認証サーバ１３は、Ｓ０１８において、警告メッセージ（失敗回数が上限に達したことにより、中間者攻撃が行われた疑いが生じたので、以後のネットワークを通じた取引を停止する旨の宣告。及び、ネットワークを通じた取引を再開したいのであれば、身分証明書，通帳，ハードウェアトークン等を支店窓口に持参して再開手続きをする様に促す通知）をリクエストメッセージ送信元のクライアントＰＣ１８へ応答した後に、Ｓ０１９においてＩＤ無効化処理を行った後に、処理を終了する。なお、ＩＤ無効化処理とは、Ｓ００６にて受信した電文（ＨＴＴＰリクエストメッセージ）中に含まれるユーザＩＤを用いて行うネットワーク経由の取引を停止するための処理であり、例えば、当該ユーザＩＤに対応付けられて顧客マスターファイルに登録されているハードウェアトークン番号を削除するとともに、当該ユーザＩＤを含むエントリを送信情報ファイルから削除する処理である。
【００６０】
Ｓ０１２にて一致している旨の判断がなされた場合に実行されるＳ０１３では、ユーザ認証サーバ１３は、認証成功の旨をリクエストメッセージ送信元のクライアントＰＣ１８へ応答する。次のＳ０１４では、ユーザ認証サーバ１３は、Ｓ００６にて受信した電文（ＨＴＴＰリクエストメッセージ）中に含まれるユーザＩＤを含むエントリを送信情報ファイルから削除する。次のＳ０１５では、ユーザ認証サーバ１３は、当該リクエストメッセージ送信元のクライアントＰＣ１８の操作者が、ユーザデータベース１５に登録されている正規のユーザであることを前提に、当該クライアントＰＣ１８からのリクエストに従って、重要な取引処理を実行する。
【００６１】
図９に戻り、クライアントＰＣ１８のＣＰＵ１９は、銀行システム１２からの応答（ＨＴＴＰレスポンスメッセージ）がリトライ指示であれば、Ｓ２０６において、ディスプレイ２３上にリトライ指示を表示した後に、処理を終了する。また、ＣＰＵ１９は、銀行システム１２からの応答が警告であれば、警告の内容をディスプレイ２３上に表示した後に、処理を終了する。これに対して、銀行システム１２からの応答が成功の旨であれば、Ｓ２０５において、処理を継続する。この場合、当該クライアントＰＣ１８の操作者は、銀行システム１２のユーザデータベース１５に登録されている正規のユーザであると認証されたので、銀行システム１２に対して、重要な取引処理のリクエストをすることが可能となる。
【００６２】
以上のように構成された本実施形態に係るオンライン取引システム１０よると、ソルト値は、銀行システム１２内においてユーザ認証サーバ１３が生成すると同時に、クライアントＰＣ１８内においても同アルゴリズム及び同入力値に基づいて生成されるので、ソルト値をネットワーク上に露出させる必要がない。従って、ソルト値が中間攻撃者によって傍受（漏洩）される危険がないので、セキュリティ強度が向上する。
【００６３】
しかも、当該ソルト値は、複数パターンの中から選択された特定のソルト値生成用スクリプト１４及びユーザエージェント情報から算出され、両者の流通方向は真逆（ソルト値生成用スクリプト１４は銀行システム１２からクライアントＰＣ１８へ送信される一方、ユーザエージェント情報はクライアントＰＣ１８から銀行システム１２へ送信される）であるので、仮に、両者からソルト値が生成されることを中間攻撃者が知っていた場合であっても、これらの両情報を共に傍受できる蓋然性は、限りなく低い。
【００６４】
また、最終的にクライアントＰＣが銀行システムへ送信（Ｓ２０３）しようとした電文（ＨＴＴＰリクエストメッセージ）中のユーザＩＤ，固定パスワード及びワンタイムパスワードが中間攻撃者に傍受（漏洩）された場合、当該中間攻撃者が自己使用の端末内においてこれら情報を含む電文（ＨＴＴＰリクエストメッセージ）を組み立てて、正規のユーザになりすまして銀行システムへ当該電文（ＨＴＴＰリクエストメッセージ）を送信するおそれがあるが、その場合、当該中間攻撃者が組み立てた電文（ＨＴＴＰリクエストメッセージ）のヘッダ（ＨＴＴＰヘッダ）には、当該中間攻撃者が使用する端末のユーザエージェント情報（オペレーティングシステム（ＯＳ）の種類識別情報及びバージョン，ブラウザの種類識別情報及びバージョン）が不可避的に含まれてしまうので、銀行システム１２のユーザ認証サーバ１３は、認証失敗応答（Ｓ０１５）をすることになる。よって、この場合であっても、高いセキュリティ強度を維持することができる。
【符号の説明】
【００６５】
１  ハードウェアトークン
１０ オンライン取引システム
１２ 銀行システム
１２Ａ  ＣＰＵ
１２Ｃ   ＨＤＤ
１３  ユーザ認証サーバプログラム
１４  ソルト値生成用スクリプト
１５  ユーザデータベース
１６ インターネット
１７  ワンタイムパスワード生成関数
１８   クライアントＰＣ
１９  ＣＰＵ
２０  メモリ
２１  キーボード
２２  通信モジュール
２３  ディスプレイ
２４  ハードディスク
【図１】
2014096101.tif 000003
【図２】
2014096101.tif 000004
【図３】
2014096101.tif 000005
【図４】
2014096101.tif 000006
【図５】
2014096101.tif 000007
【図６】
2014096101.tif 000008
【図７】
2014096101.tif 000009
【図８】
2014096101.tif 000010
【図９】
2014096101.tif 000011