(57)【要約】【課題】  利用者のプライバシ保護とユーザ認証の安全性を両立すると共に、サーバの管理負担を軽減した生体認証システムを実現すること。【解決手段】  オンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザに生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインを記憶する生体認証支援サーバとで構成される生体認証システムであって、クライアント端末が生体認証支援サーバから生体情報入力装置操作プラグインを取得する手段と、オンラインサービスサーバがブラウザからのアクセスを受けて生体認証依頼スクリプトをブラウザに送信し、クライアント端末のブラウザ上で生体認証依頼スクリプトを実行させ、クライアント端末のユーザ認証を行う手段とを備える。【選択図】      図１
2009223638.tif 000002
【特許請求の範囲】
【請求項１】
オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムであって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別するWebアプリ識別子と、前記生体認証依頼スクリプトとを受信して記憶する手段と、
前記クライアント端末が、
前記生体認証支援サーバから、オンラインサービスサーバ及び生体認証支援サーバでユーザを一意に識別するユーザ識別情報と、前記生体情報入力装置操作プラグインと、前記生体認証スクリプトとを受信して、前記記憶部に記憶する手段と、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶する手段と、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスする手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて前記生体認証依頼スクリプトをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、クライアント端末の記憶部に記憶された前記生体認証スクリプトを実行する手段と、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記生体認証支援サーバに、前記ユーザ識別子をパラメータとしてコールバックアドレス情報の取得要求を送信してユーザ識別子を含むコールバックアドレス情報を取得し、ブラウザを取得したコールバックアドレス情報に接続させる手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、コールバックアドレス情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供する手段とを備えることを特徴とする生体認証システム。
【請求項２】
オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムであって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別するWebアプリ識別子と、オンラインサービス毎に異なるWebアプリ鍵と、前記生体認証依頼スクリプトとを受信して記憶する手段と、
前記クライアント端末が、
前記生体認証支援サーバから、オンラインサービスサーバ及び生体認証支援サーバでユーザを一意に識別するユーザ識別情報と、ユーザ毎に異なるユーザ鍵と、前記生体情報入力装置操作プラグインと、前記生体認証スクリプトとを受信して、前記記憶部に記憶する手段と、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶する手段と、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスする手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けてWebアプリアクセス時刻を生成し、Webアプリアクセス時刻と前記Webアプリ識別情報とを連結した文字列に前記Webアプリ鍵でMACを付加してMAC付Webアプリ情報を生成し、MAC付Webアプリ情報と前記生体認証依頼スクリプトとをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、MAC付Webアプリ情報を引数にクライアント端末の記憶部に記憶された前記生体認証スクリプトを実行する手段と、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記MAC付Webアプリ情報に前記ユーザ識別情報を連結した文字列に前記ユーザ鍵でMACを付加してMAC付クライアント情報を生成し、前記生体認証支援サーバに、MAC付クライアント情報をパラメータとしてコールバックアドレス情報の取得要求を送信する手段と、
前記生体認証支援サーバが、
コールバックアドレス情報の取得要求を受けて、パラメータとして取得したMAC付クライアント情報のMAC認証と、MAC付クライアント情報に含まれるMAC付Webアプリ情報のMAC認証を行い、どちらの認証にも成功した場合に、コールバック情報生成時刻を生成し、コールバック情報生成時刻とMAC付アプリ情報に含まれるWebアプリアクセス時刻との時間差が有効時間内であるかを検証し、有効時間内であった場合に、前記コールバックアドレス情報と前記ユーザ識別情報と前記コールバック情報生成時刻とを連結した文字列に前記Webアプリ鍵でMACを付加してMAC付コールバック情報を生成し、前記MAC付コールバック情報をクライアント端末へ送信する手段と、
前記クライアント端末が、
受信したMAC付コールバック情報をパラメータとして、ブラウザをMAC付コールバック情報に含まれるコールバックアドレス情報に接続させる手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、パラメータとして取得したMAC付コールバック情報のMAC認証を行い、MAC認証が成功した場合に、現在時刻を取得し、現在時刻とMAC付コールバック情報に含まれるコールバック情報生成時刻との時間差が有効時間内であるかを検証し、有効時間内であった場合に、MAC付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供する手段とを備えることを特徴とする生体認証システム。
【請求項３】
オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムであって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信する手段と、
前記生体認証支援サーバが、
オンラインサービスを一意に識別するWebアプリ識別子と、オンラインサービス毎に異なるWebアプリ鍵と、受信したオンラインサービスのアドレス情報のオリジン情報を記載したクロスアクセス許可リストを生成し、Webアプリ識別子とWebアプリ鍵と前記生体認証依頼スクリプトとをオンラインサービスサーバへ送信する手段と、
前記クライアント端末が、
前記生体認証支援サーバから、前記ユーザ識別情報と前記ユーザ鍵と前記生体情報入力装置操作プラグインと前記生体認証スクリプトと前記クロスアクセス許可リストとを受信して記憶する手段と、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶する手段と、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスする手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けてWebアプリアクセス時刻を生成し、
Webアプリアクセス時刻と前記Webアプリ識別情報とを連結した文字列に前記Webアプリ鍵でMACを付加してMAC付Webアプリ情報を生成し、MAC付Webアプリ情報と前記生体認証依頼スクリプトとをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、MAC付Webアプリ情報を引数にクライアント端末の記憶部に記憶された前記生体認証スクリプトを実行する手段と、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、生体認証支援サーバに、クロスアクセス許可リストの更新チェック要求を送信して生体認証支援サーバから最新のクロスアクセス許可リストを受信して記憶部に記憶し、生体認証スクリプトの呼び出し元のオリジン情報を取得して、呼び出し元オリジン情報が、記憶部に記憶されているクロスアクセス許可リストに含まれるかを検証し、含まれていた場合に、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記MAC付Webアプリ情報に前記ユーザ識別情報を連結した文字列に前記ユーザ鍵でMACを付加してMAC付クライアント情報を生成し、前記生体認証支援サーバに、MAC付クライアント情報をパラメータとしてコールバックアドレス情報の取得要求を送信する手段と、
前記生体認証支援サーバが、
コールバックアドレス情報の取得要求を受けて、パラメータとして取得したMAC付クライアント情報のMAC認証と、MAC付クライアント情報に含まれるMAC付Webアプリ情報のMAC認証を行い、どちらの認証にも成功した場合に、コールバック情報生成時刻を生成し、コールバック情報生成時刻とMAC付アプリ情報に含まれるWebアプリアクセス時刻との時間差が有効時間内であるかを検証し、有効時間内であった場合に、前記コールバックアドレス情報と前記ユーザ識別情報と前記コールバック情報生成時刻とを連結した文字列に前記Webアプリ鍵でMACを付加してMAC付コールバック情報を生成し、前記MAC付コールバック情報をクライアント端末へ送信する手段と、
前記クライアント端末が、
受信したMAC付コールバック情報をパラメータとして、ブラウザをMAC付コールバック情報に含まれるコールバックアドレス情報に接続させる手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、パラメータとして取得したMAC付コールバック情報のMAC認証を行い、MAC認証が成功した場合に、現在時刻を取得し、現在時刻とMAC付コールバック情報に含まれるコールバック情報生成時刻との時間差が有効時間内であるかを検証し、有効時間内であった場合に、MAC付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供する手段とを備えることを特徴とする生体認証システム。
【請求項４】
オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムにおける生体認証方法であって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別するWebアプリ識別子と、前記生体認証依頼スクリプトとを受信して記憶するステップと、
前記クライアント端末が、
前記生体認証支援サーバから、オンラインサービスサーバ及び生体認証支援サーバでユーザを一意に識別するユーザ識別情報と、前記生体情報入力装置操作プラグインと、前記生体認証スクリプトとを受信して、前記記憶部に記憶するステップと、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶するステップと、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスするステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて前記生体認証依頼スクリプトをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、クライアント端末の記憶部に記憶された前記生体認証スクリプトを実行するステップと、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記生体認証支援サーバに、前記ユーザ識別子をパラメータとしてコールバックアドレス情報の取得要求を送信してユーザ識別子を含むコールバックアドレス情報を取得し、ブラウザを取得したコールバックアドレス情報に接続させるステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、コールバックアドレス情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供するステップとを備えることを特徴とする生体認証方法。
【請求項５】
オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムにおける認証方法であって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別するWebアプリ識別子と、オンラインサービス毎に異なるWebアプリ鍵と、前記生体認証依頼スクリプトとを受信して記憶するステップと、
前記クライアント端末が、
前記生体認証支援サーバから、オンラインサービスサーバ及び生体認証支援サーバでユーザを一意に識別するユーザ識別情報と、ユーザ毎に異なるユーザ鍵と、前記生体情報入力装置操作プラグインと、前記生体認証スクリプトとを受信して、前記記憶部に記憶するステップと、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶するステップと、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスするステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けてWebアプリアクセス時刻を生成し、Webアプリアクセス時刻と前記Webアプリ識別情報とを連結した文字列に前記Webアプリ鍵でMACを付加してMAC付Webアプリ情報を生成し、MAC付Webアプリ情報と前記生体認証依頼スクリプトとをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、MAC付Webアプリ情報を引数にクライアント端末の記憶部に記憶された前記生体認証スクリプトを実行するステップと、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記MAC付Webアプリ情報に前記ユーザ識別情報を連結した文字列に前記ユーザ鍵でMACを付加してMAC付クライアント情報を生成し、前記生体認証支援サーバに、MAC付クライアント情報をパラメータとしてコールバックアドレス情報の取得要求を送信するステップと、
前記生体認証支援サーバが、
コールバックアドレス情報の取得要求を受けて、パラメータとして取得したMAC付クライアント情報のMAC認証と、MAC付クライアント情報に含まれるMAC付Webアプリ情報のMAC認証を行い、どちらの認証にも成功した場合に、コールバック情報生成時刻を生成し、コールバック情報生成時刻とMAC付アプリ情報に含まれるWebアプリアクセス時刻との時間差が有効時間内であるかを検証し、有効時間内であった場合に、前記コールバックアドレス情報と前記ユーザ識別情報と前記コールバック情報生成時刻とを連結した文字列に前記Webアプリ鍵でMACを付加してMAC付コールバック情報を生成し、前記MAC付コールバック情報をクライアント端末へ送信するステップと、
前記クライアント端末が、
受信したMAC付コールバック情報をパラメータとして、ブラウザをMAC付コールバック情報に含まれるコールバックアドレス情報に接続させるステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、パラメータとして取得したMAC付コールバック情報のMAC認証を行い、MAC認証が成功した場合に、現在時刻を取得し、現在時刻とMAC付コールバック情報に含まれるコールバック情報生成時刻との時間差が有効時間内であるかを検証し、有効時間内であった場合に、MAC付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供するステップとを備えることを特徴とする生体認証方法。
【請求項６】
オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムにおける認証方法であって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信するステップと、
前記生体認証支援サーバが、
オンラインサービスを一意に識別するWebアプリ識別子と、オンラインサービス毎に異なるWebアプリ鍵と、受信したオンラインサービスのアドレス情報のオリジン情報を記載したクロスアクセス許可リストを生成し、Webアプリ識別子とWebアプリ鍵と前記生体認証依頼スクリプトとをオンラインサービスサーバへ送信するステップと、
前記クライアント端末が、
前記生体認証支援サーバから、前記ユーザ識別情報と前記ユーザ鍵と前記生体情報入力装置操作プラグインと前記生体認証スクリプトと前記クロスアクセス許可リストとを受信して記憶するステップと、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶するステップと、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスするステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けてWebアプリアクセス時刻を生成し、Webアプリアクセス時刻と前記Webアプリ識別情報とを連結した文字列に前記Webアプリ鍵でMACを付加してMAC付Webアプリ情報を生成し、MAC付Webアプリ情報と前記生体認証依頼スクリプトとをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、MAC付Webアプリ情報を引数にクライアント端末の記憶部に記憶された前記生体認証スクリプトを実行するステップと、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、生体認証支援サーバに、クロスアクセス許可リストの更新チェック要求を送信して生体認証支援サーバから最新のクロスアクセス許可リストを受信して記憶部に記憶し、生体認証スクリプトの呼び出し元のオリジン情報を取得して、呼び出し元オリジン情報が、記憶部に記憶されているクロスアクセス許可リストに含まれるかを検証し、含まれていた場合に、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記MAC付Webアプリ情報に前記ユーザ識別情報を連結した文字列に前記ユーザ鍵でMACを付加してMAC付クライアント情報を生成し、前記生体認証支援サーバに、MAC付クライアント情報をパラメータとしてコールバックアドレス情報の取得要求を送信するステップと、
前記生体認証支援サーバが、
コールバックアドレス情報の取得要求を受けて、パラメータとして取得したMAC付クライアント情報のMAC認証と、MAC付クライアント情報に含まれるMAC付Webアプリ情報のMAC認証を行い、どちらの認証にも成功した場合に、コールバック情報生成時刻を生成し、コールバック情報生成時刻とMAC付アプリ情報に含まれるWebアプリアクセス時刻との時間差が有効時間内であるかを検証し、有効時間内であった場合に、前記コールバックアドレス情報と前記ユーザ識別情報と前記コールバック情報生成時刻とを連結した文字列に前記Webアプリ鍵でMACを付加してMAC付コールバック情報を生成し、前記MAC付コールバック情報をクライアント端末へ送信するステップと、
前記クライアント端末が、
受信したMAC付コールバック情報をパラメータとして、ブラウザをMAC付コールバック情報に含まれるコールバックアドレス情報に接続させるステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、パラメータとして取得したMAC付コールバック情報のMAC認証を行い、MAC認証が成功した場合に、現在時刻を取得し、現在時刻とMAC付コールバック情報に含まれるコールバック情報生成時刻との時間差が有効時間内であるかを検証し、有効時間内であった場合に、MAC付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供するステップとを備えることを特徴とする生体認証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Webアプリケーションにおけるユーザ認証において、個人の生体情報を用いて認証する生体認証システム及び方法に関する。
【背景技術】
【０００２】
オンラインショッピングやインターネットバンキング、SaaS（Software As a Service）といったオンラインサービスの普及に伴いWebアプリケーションでのユーザ認証の重要性が増してきている。
そこで近年では、従来のユーザIDとユーザパスワード（以降、ユーザPWと示す）による認証に代わり、安全性の高さから、指紋や顔、指静脈といった個人の生体情報を利用した、生体認証システムの導入が注目されるようになってきた。
生体認証システムでは、初期設定時に個人の生体情報を取得し、取得した生体情報から特徴量を抽出して登録する。この登録情報を生体情報テンプレートという。そして、認証時には、再度利用者に生体情報の入力を要求し、入力された生体情報の特徴量と、登録してある生体情報テンプレートとを照合して本人か否かを判定する。
クライアント端末とオンラインサービスサーバがネットワークを介して接続されたWebアプリケーションのシステム構成において、クライアント端末を操作するユーザを生体認証する場合、一般的には、サーバがユーザの生体情報テンプレートを保持する。
クライアント端末は、認証時にユーザの生体情報を取得し、特徴量を抽出してサーバへ送信する。その後、サーバは特徴量を生体情報テンプレートと比較し、本人か否かの判定を行う。
以上のように生体認証では、第三者が容易に真似することのできない、個人の身体的特徴を認証に利用するため、従来の認証と比較し、ユーザ認証の安全性を高めることができる。
【０００３】
しかし一方で、生体認証を導入する事業者には、生体情報テンプレートの厳重な管理が求められる。生体情報からは、例えば、顔データから性別や人種が分かるなど，個人のプライバシ情報が抽出される危険性がある。このため、生体認証を導入する事業者は、個人情報保護の観点からも生体情報テンプレートを厳密に管理する必要がある。
また、生体情報は一人の個人が持てる数に限りがあり、所有者であっても容易に変更することができない情報である。このため、仮にサーバから生体情報テンプレートが漏洩した場合は、漏洩したテンプレートはなりすましに利用される危険性があるため二度と認証に使用できなくなるなど、システムの安全性に大きな影響を与える。
【０００４】
従来、こうしたユーザのプライバシ保護や安全性の確保のために要するサーバの高い管理コストが、Webアプリケーションの認証に生体認証を導入する際の妨げになっていた
上記問題への対策として、特許文献１が提案されている。特許文献１に開示の従来技術は、初期設定時には生体情報の画像を錯乱するためのフィルタ、及び逆フィルタを作成し、生体情報の画像にこのフィルタを作用させて生体情報テンプレートを生成してサーバに記憶し、認証時には、ユーザから取得した生体情報から作成された照合画像に逆フィルタを作用させ、逆フィルタ作用後の照合画像と生体情報テンプレートの相互相関に基づいて本人か否かを判定するものである。
この従来技術によると、サーバにはフィルタによる変換後の生体情報テンプレートしか記憶されず、ユーザの元の生体情報は秘匿されるため、ユーザのプライバシを保護することができる。
また、仮に生体情報テンプレートがサーバから漏洩した場合であっても、初期設定時に作成するフィルタを変更することで、同じ生体情報から異なる生体情報テンプレートを生成することができるため、漏洩したテンプレートを無効にし、新たなテンプレートを登録し直すことでシステムの安全性を保つことができる。以上の効果により、生体認証を導入する事業者はサーバの管理コストを低減することができる。
【０００５】
ところで、近年、Webアプリケーションのクライアント側の実行環境であるブラウザについては、オフライン拡張プラグインが提案されている。オフライン拡張プラグインは、従来、ネットワークに接続可能な状態（オンライン状態）でしか使用できなかったWebアプリケーションを、ネットワーク接続が不可能な状態（オフライン状態）でも使用できるようにするために、ブラウザに機能を追加するソフトウェアである。
例えば、特許文献２には、ブラウザにローカルプロキシとアプリケーションファイル保存ＤＢを追加し、ローカルプロキシの自動巡回プログラムによりサーバのアプリケーション管理ＤＢに登録されているアプリケーションを自動ダウンロードし、アプリケーションファイル保存ＤＢに保存しておき、プロキシの設定をローカルプロキシに指定しておくことにより、ブラウザから、アプリケーションファイル保存ＤＢに保存されたアプリケーションを実行することで、オフライン状態でWebアプリケーションを利用可能にする技術が開示されている。
【０００６】
また、非特許文献１には、ブラウザにローカルサーバ機能と、ローカルデータベース機能（以降、ローカルDB機能と示す）と、並列プロセス実行機能を実現するためのJavaScript（登録商標） API（Application Program Interface）追加し、Webアプリケーションをオフライン状態で実行可能にする技術が開示されている。以下では、オフライン拡張プラグインの例として、非特許文献１に開示の技術について説明する。なお、本背景技術については非特許文献２にも説明されている。
【０００７】
ローカルサーバ機能は、ブラウザのキャッシュ機能の拡張であり、ブラウザがオフライン状態でもHTMLページを表示したり、JavaScriptを実行できるようにするための仕組みである。
非特許文献１に記載のオフライン拡張プラグインをインストールすると、クライアント端末の記憶部にはローカルサーバ用の記憶領域が作成される。オフライン拡張プラグインは、ブラウザが要求したHTMLページやJavaScriptなどのWebリソースがローカルサーバに記憶されている場合は、当該Webリソースをサーバからダウンロードしようとするブラウザの動作を横取りし、代わりにローカルサーバから当該Webリソースを読み込ませるように動作する。
なお、ローカルサーバに記憶するWebリソースの指定は、Webアプリケーション開発者が、ローカルサーバ機能が提供するAPIを利用したJavaScriptコードを記述し、これをブラウザにダウンロードさせて実行させることで行う。
【０００８】
ローカルDB機能は、ブラウザに、JavaScriptから操作可能なリレーショナルデータベースを追加し、オフライン状態でもWebアプリケーションのデータの更新をできるようにするための仕組みである。
非特許文献１に記載のオフライン拡張プラグインをインストールすると、クライアント端末の記憶部にはローカルDB用の記憶領域が作成される。Webアプリケーション開発者は、ローカルDB機能が提供するAPIを利用したJavaScriptコードを記述し、これをブラウザにダウンロードさせて実行させることで、ローカルDB内の情報を読み書きすることができる。
【０００９】
並列プロセス実行機能は、ブラウザに、JavaScriptをバックグラウンドで実行させる機能を追加する仕組みである。
Webアプリケーションの開発者は、並列プロセス実行機能が提供するAPIを利用したJavaScriptを記述し、これをブラウザにダウンロードさせて実行させることで、ブラウザにワーカと呼ばれる別プロセスを生成させ、ワーカに任意のJavaScriptを実行させることができる。ワーカは指定されたJavaScriptを実行し、実行完了後呼び出し元のJavaScriptに実行結果を返す。
また。並列プロセス実行機能は、JavaScriptからの別オリジンのWebリソースにアクセスする仕組み（以降、クロスオリジンアクセスと示す）を提供する。ここで、オリジンとは、Webリソースに割り当てられているURLの、プロトコル・ドメイン・ポート番号の組み合わせ情報である。例えば、”http://domainA.com:80/resource/sample.js”というURLで指定されるJavaScriptファイルのオリジンは、”http://domainA.com:80”である。
【００１０】
以下、図１２を参照してクロスオリジンアクセスについて説明する。
通常、ブラウザはシングルオリジンポリシーと呼ばれる（又は、同一生成元ポリシーと呼ばれる）セキュリティルールに従って設計されており、例えば、”http://domainA.com:80”のオリジンに所属するブラウザスクリプトAは、同じオリジンに所属するWebリソースAにアクセスすることはできるが、別オリジン”http://domainB.com:80”に所属するWebリソースBにはアクセスすることができない。
しかし、並列プロセス実行機能を利用すると、予め、WebリソースBと同じオリジンに所属し、かつWebリソースBにアクセスする関数が記述されたブラウザスクリプトBがローカルサーバに記憶されていれば、ブラウザスクリプトAでワーカを生成し、生成したワーカにブラウザスクリプトBを実行させることで、ブラウザスクリプトAは、ブラウザスクリプトBを介してWebリソースBにアクセスすることができる。
【００１１】
【特許文献１】特開2007-293807
【特許文献２】特開2001-51839
【非特許文献１】http://gears.google.com/
【非特許文献２】GoogleGearsスタートガイド 白石俊平 株式会社技術評論者
【発明の開示】
【発明が解決しようとする課題】
【００１２】
特許文献１に記載の生体認証システムにあっては以下の課題がある。
第一に、プライバシ保護のために、生体情報の管理を自身の手で行いたいというユーザのニーズに応えられず、全てのユーザに生体認証を利用してもらうことが難しいという点である。
特許文献１に記載の従来技術であっても、サーバからユーザの生体情報が漏洩するリスクが完全に無くなるわけではない。仮に生体情報の変換に利用するフィルタの生成方法に不備があり、生成されるフィルタのパターンに確率的な偏りがあったり、第三者がフィルタを推測する方法が明らかになった場合などには、例えユーザ側に落ち度がなかったとしても、サーバに記憶された生体情報テンプレートからユーザの生体情報が割り出され、ユーザのプライバシが侵害される可能性がある。よって、生体認証を導入する事業者は、こうしたサーバ側の管理の不備によるプライバシ侵害のリスクを許容できないユーザに、生体認証を利用してもらえない可能性がある。
【００１３】
第二に、サーバでの生体情報テンプレートの管理には、依然として高い管理コストがかかる点である。前述したように、特許文献１に記載の従来技術であっても、サーバからユーザの生体情報が漏洩するリスクが完全に無くなるわけではない。仮にサーバが攻撃された場合には、一度に大量のユーザの生体情報が漏洩し、システムの安全性が脅かされるとともに、生体認証を運営する事業者は社会的な信用を失う可能性がある。よって、こうした事態を避けるため、生体認証を運営する事業者は、依然として高いコストをかけてサーバを管理せざるを得ない。
【００１４】
以上の従来技術の課題を踏まえ、本発明の目的は、利用者のプライバシ保護とユーザ認証の安全性を両立すると共に、サーバの管理負担を軽減した生体認証システムを提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成するため、請求項１に記載の本発明は、オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムであって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別するWebアプリ識別子と、前記生体認証依頼スクリプトとを受信して記憶する手段と、
前記クライアント端末が、
前記生体認証支援サーバから、オンラインサービスサーバ及び生体認証支援サーバでユーザを一意に識別するユーザ識別情報と、前記生体情報入力装置操作プラグインと、前記生体認証スクリプトとを受信して、前記記憶部に記憶する手段と、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶する手段と、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスする手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて前記生体認証依頼スクリプトをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、クライアント端末の記憶部に記憶された前記生体認証スクリプトを実行する手段と、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記生体認証支援サーバに、前記ユーザ識別子をパラメータとしてコールバックアドレス情報の取得要求を送信してユーザ識別子を含むコールバックアドレス情報を取得し、ブラウザを取得したコールバックアドレス情報に接続させる手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、コールバックアドレス情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供する手段とを備えることを特徴とする。
【００１６】
また、請求項２に記載の本発明は、オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムであって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別するWebアプリ識別子と、オンラインサービス毎に異なるWebアプリ鍵と、前記生体認証依頼スクリプトとを受信して記憶する手段と、
前記クライアント端末が、
前記生体認証支援サーバから、オンラインサービスサーバ及び生体認証支援サーバでユーザを一意に識別するユーザ識別情報と、ユーザ毎に異なるユーザ鍵と、前記生体情報入力装置操作プラグインと、前記生体認証スクリプトとを受信して、前記記憶部に記憶する手段と、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶する手段と、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスする手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けてWebアプリアクセス時刻を生成し、Webアプリアクセス時刻と前記Webアプリ識別情報とを連結した文字列に前記Webアプリ鍵でMACを付加してMAC付Webアプリ情報を生成し、MAC付Webアプリ情報と前記生体認証依頼スクリプトとをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、MAC付Webアプリ情報を引数にクライアント端末の記憶部に記憶された前記生体認証スクリプトを実行する手段と、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記MAC付Webアプリ情報に前記ユーザ識別情報を連結した文字列に前記ユーザ鍵でMACを付加してMAC付クライアント情報を生成し、前記生体認証支援サーバに、MAC付クライアント情報をパラメータとしてコールバックアドレス情報の取得要求を送信する手段と、
前記生体認証支援サーバが、
コールバックアドレス情報の取得要求を受けて、パラメータとして取得したMAC付クライアント情報のMAC認証と、MAC付クライアント情報に含まれるMAC付Webアプリ情報のMAC認証を行い、どちらの認証にも成功した場合に、コールバック情報生成時刻を生成し、コールバック情報生成時刻とMAC付アプリ情報に含まれるWebアプリアクセス時刻との時間差が有効時間内であるかを検証し、有効時間内であった場合に、前記コールバックアドレス情報と前記ユーザ識別情報と前記コールバック情報生成時刻とを連結した文字列に前記Webアプリ鍵でMACを付加してMAC付コールバック情報を生成し、前記MAC付コールバック情報をクライアント端末へ送信する手段と、
前記クライアント端末が、
受信したMAC付コールバック情報をパラメータとして、ブラウザをMAC付コールバック情報に含まれるコールバックアドレス情報に接続させる手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、パラメータとして取得したMAC付コールバック情報のMAC認証を行い、MAC認証が成功した場合に、現在時刻を取得し、現在時刻とMAC付コールバック情報に含まれるコールバック情報生成時刻との時間差が有効時間内であるかを検証し、有効時間内であった場合に、MAC付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供する手段とを備えることを特徴とする。
【００１７】
また、請求項３に記載の本発明は、オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムであって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信する手段と、
前記生体認証支援サーバが、
オンラインサービスを一意に識別するWebアプリ識別子と、オンラインサービス毎に異なるWebアプリ鍵と、受信したオンラインサービスのアドレス情報のオリジン情報を記載したクロスアクセス許可リストを生成し、Webアプリ識別子とWebアプリ鍵と前記生体認証依頼スクリプトとをオンラインサービスサーバへ送信する手段と、
前記クライアント端末が、
前記生体認証支援サーバから、前記ユーザ識別情報と前記ユーザ鍵と前記生体情報入力装置操作プラグインと前記生体認証スクリプトと前記クロスアクセス許可リストとを受信して記憶する手段と、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶する手段と、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスする手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けてWebアプリアクセス時刻を生成し、Webアプリアクセス時刻と前記Webアプリ識別情報とを連結した文字列に前記Webアプリ鍵でMACを付加してMAC付Webアプリ情報を生成し、MAC付Webアプリ情報と前記生体認証依頼スクリプトとをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、MAC付Webアプリ情報を引数にクライアント端末の記憶部に記憶された前記生体認証スクリプトを実行する手段と、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、生体認証支援サーバに、クロスアクセス許可リストの更新チェック要求を送信して生体認証支援サーバから最新のクロスアクセス許可リストを受信して記憶部に記憶し、生体認証スクリプトの呼び出し元のオリジン情報を取得して、呼び出し元オリジン情報が、記憶部に記憶されているクロスアクセス許可リストに含まれるかを検証し、含まれていた場合に、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記MAC付Webアプリ情報に前記ユーザ識別情報を連結した文字列に前記ユーザ鍵でMACを付加してMAC付クライアント情報を生成し、前記生体認証支援サーバに、MAC付クライアント情報をパラメータとしてコールバックアドレス情報の取得要求を送信する手段と、
前記生体認証支援サーバが、
コールバックアドレス情報の取得要求を受けて、パラメータとして取得したMAC付クライアント情報のMAC認証と、MAC付クライアント情報に含まれるMAC付Webアプリ情報のMAC認証を行い、どちらの認証にも成功した場合に、コールバック情報生成時刻を生成し、コールバック情報生成時刻とMAC付アプリ情報に含まれるWebアプリアクセス時刻との時間差が有効時間内であるかを検証し、有効時間内であった場合に、前記コールバックアドレス情報と前記ユーザ識別情報と前記コールバック情報生成時刻とを連結した文字列に前記Webアプリ鍵でMACを付加してMAC付コールバック情報を生成し、前記MAC付コールバック情報をクライアント端末へ送信する手段と、
前記クライアント端末が、
受信したMAC付コールバック情報をパラメータとして、ブラウザをMAC付コールバック情報に含まれるコールバックアドレス情報に接続させる手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、パラメータとして取得したMAC付コールバック情報のMAC認証を行い、MAC認証が成功した場合に、現在時刻を取得し、現在時刻とMAC付コールバック情報に含まれるコールバック情報生成時刻との時間差が有効時間内であるかを検証し、有効時間内であった場合に、MAC付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供する手段とを備えることを特徴とする。
【００１８】
また、請求項４に記載の本発明は、オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムにおける認証方法であって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別するWebアプリ識別子と、前記生体認証依頼スクリプトとを受信して記憶するステップと、
前記クライアント端末が、
前記生体認証支援サーバから、オンラインサービスサーバ及び生体認証支援サーバでユーザを一意に識別するユーザ識別情報と、前記生体情報入力装置操作プラグインと、前記生体認証スクリプトとを受信して、前記記憶部に記憶するステップと、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶するステップと、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスするステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて前記生体認証依頼スクリプトをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、クライアント端末の記憶部に記憶された前記生体認証スクリプトを実行するステップと、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記生体認証支援サーバに、前記ユーザ識別子をパラメータとしてコールバックアドレス情報の取得要求を送信してユーザ識別子を含むコールバックアドレス情報を取得し、ブラウザを取得したコールバックアドレス情報に接続させるステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、コールバックアドレス情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供するステップとを備えることを特徴とする。
【００１９】
また、請求項５に記載の本発明は、オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムにおける認証方法であって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別するWebアプリ識別子と、オンラインサービス毎に異なるWebアプリ鍵と、前記生体認証依頼スクリプトとを受信して記憶するステップと、
前記クライアント端末が、
前記生体認証支援サーバから、オンラインサービスサーバ及び生体認証支援サーバでユーザを一意に識別するユーザ識別情報と、ユーザ毎に異なるユーザ鍵と、前記生体情報入力装置操作プラグインと、前記生体認証スクリプトとを受信して、前記記憶部に記憶するステップと、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶するステップと、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスするステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けてWebアプリアクセス時刻を生成し、Webアプリアクセス時刻と前記Webアプリ識別情報とを連結した文字列に前記Webアプリ鍵でMACを付加してMAC付Webアプリ情報を生成し、MAC付Webアプリ情報と前記生体認証依頼スクリプトとをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、MAC付Webアプリ情報を引数にクライアント端末の記憶部に記憶された前記生体認証スクリプトを実行するステップと、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記MAC付Webアプリ情報に前記ユーザ識別情報を連結した文字列に前記ユーザ鍵でMACを付加してMAC付クライアント情報を生成し、前記生体認証支援サーバに、MAC付クライアント情報をパラメータとしてコールバックアドレス情報の取得要求を送信するステップと、
前記生体認証支援サーバが、
コールバックアドレス情報の取得要求を受けて、パラメータとして取得したMAC付クライアント情報のMAC認証と、MAC付クライアント情報に含まれるMAC付Webアプリ情報のMAC認証を行い、どちらの認証にも成功した場合に、コールバック情報生成時刻を生成し、コールバック情報生成時刻とMAC付アプリ情報に含まれるWebアプリアクセス時刻との時間差が有効時間内であるかを検証し、有効時間内であった場合に、前記コールバックアドレス情報と前記ユーザ識別情報と前記コールバック情報生成時刻とを連結した文字列に前記Webアプリ鍵でMACを付加してMAC付コールバック情報を生成し、前記MAC付コールバック情報をクライアント端末へ送信するステップと、
前記クライアント端末が、
受信したMAC付コールバック情報をパラメータとして、ブラウザをMAC付コールバック情報に含まれるコールバックアドレス情報に接続させるステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、パラメータとして取得したMAC付コールバック情報のMAC認証を行い、MAC認証が成功した場合に、現在時刻を取得し、現在時刻とMAC付コールバック情報に含まれるコールバック情報生成時刻との時間差が有効時間内であるかを検証し、有効時間内であった場合に、MAC付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供するステップとを備えることを特徴とする。
【００２０】
また、請求項６に記載の本発明は、オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムにおける認証方法であって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信するステップと、
前記生体認証支援サーバが、
オンラインサービスを一意に識別するWebアプリ識別子と、オンラインサービス毎に異なるWebアプリ鍵と、受信したオンラインサービスのアドレス情報のオリジン情報を記載したクロスアクセス許可リストを生成し、Webアプリ識別子とWebアプリ鍵と前記生体認証依頼スクリプトとをオンラインサービスサーバへ送信するステップと、
前記クライアント端末が、
前記生体認証支援サーバから、前記ユーザ識別情報と前記ユーザ鍵と前記生体情報入力装置操作プラグインと前記生体認証スクリプトと前記クロスアクセス許可リストとを受信して記憶するステップと、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶するステップと、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスするステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けてWebアプリアクセス時刻を生成し、Webアプリアクセス時刻と前記Webアプリ識別情報とを連結した文字列に前記Webアプリ鍵でMACを付加してMAC付Webアプリ情報を生成し、MAC付Webアプリ情報と前記生体認証依頼スクリプトとをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、MAC付Webアプリ情報を引数にクライアント端末の記憶部に記憶された前記生体認証スクリプトを実行するステップと、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、生体認証支援サーバに、クロスアクセス許可リストの更新チェック要求を送信して生体認証支援サーバから最新のクロスアクセス許可リストを受信して記憶部に記憶し、生体認証スクリプトの呼び出し元のオリジン情報を取得して、呼び出し元オリジン情報が、記憶部に記憶されているクロスアクセス許可リストに含まれるかを検証し、含まれていた場合に、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記MAC付Webアプリ情報に前記ユーザ識別情報を連結した文字列に前記ユーザ鍵でMACを付加してMAC付クライアント情報を生成し、前記生体認証支援サーバに、MAC付クライアント情報をパラメータとしてコールバックアドレス情報の取得要求を送信するステップと、
前記生体認証支援サーバが、
コールバックアドレス情報の取得要求を受けて、パラメータとして取得したMAC付クライアント情報のMAC認証と、MAC付クライアント情報に含まれるMAC付Webアプリ情報のMAC認証を行い、どちらの認証にも成功した場合に、コールバック情報生成時刻を生成し、コールバック情報生成時刻とMAC付アプリ情報に含まれるWebアプリアクセス時刻との時間差が有効時間内であるかを検証し、有効時間内であった場合に、前記コールバックアドレス情報と前記ユーザ識別情報と前記コールバック情報生成時刻とを連結した文字列に前記Webアプリ鍵でMACを付加してMAC付コールバック情報を生成し、前記MAC付コールバック情報をクライアント端末へ送信するステップと、
前記クライアント端末が、
受信したMAC付コールバック情報をパラメータとして、ブラウザをMAC付コールバック情報に含まれるコールバックアドレス情報に接続させるステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、パラメータとして取得したMAC付コールバック情報のMAC認証を行い、MAC認証が成功した場合に、現在時刻を取得し、現在時刻とMAC付コールバック情報に含まれるコールバック情報生成時刻との時間差が有効時間内であるかを検証し、有効時間内であった場合に、MAC付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供するステップとを備えることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、オンラインサービスを利用するユーザは、プライバシ情報である生体情報の管理をオンラインサービスを提供する事業者に委ねることなく、自身で管理しながら、生体認証を利用できるようになる。
これにより、生体認証を導入する事業者は、より多くのユーザに生体認証利用してもらえることが期待できる。
また、オンラインサービスを提供する事業者は、サーバ側でユーザの生体情報テンプレートを管理する必要がなくなるため、サーバの管理コストを大幅に低減できるとともに、サーバが攻撃を受けて、一度に大量のユーザの生体情報が漏洩するリスクを回避することができる。
以上の効果により、利用者のプライバシ保護とユーザ認証の安全性を両立すると共に、サーバの管理負担を軽減した生体認証システムを実現することができる。
【発明を実施するための最良の形態】
【００２２】
以下に、本発明を実施する場合の一形態を図面を参照して具体的に説明する。
なお、本実施形態では、既にオフライン拡張プラグインがインストールされたブラウザを対象に、新たに生体情報入力装置操作プラグインを追加し、生体認証システムを実現する形態について説明する。
図１は、本発明に係る生体認証システムの実施の形態を示すシステム構成図である。
本発明の生体認証システムは、クライアント端末１０１と生体認証支援サーバ１０４とオンラインサービスサーバ１０５がインターネット等のネットワーク１０３で接続された構成をとる。さらに、クライアント端末１０１には生体情報入力装置１０２が接続される。
クライアント端末１０１は、Webアプリケーションのサービスを受けるユーザが操作する端末であり、少なくとも、オフライン拡張プラグイン１０７と生体情報入力装置操作プラグイン１０８がインストールされたブラウザ１０６、及び、生体認証スクリプト１１０を記憶する記憶部１０９を備える。
【００２３】
生体情報入力装置１０２は、クライアント端末に接続される、指紋、虹彩、静脈パターンなどの生体情報の入力装置である。
生体認証支援サーバ１０４は、認証に必要なプログラムやデータをクライアント端末１０１とオンラインサービスサーバ１０５に提供するサーバである。
生体認証支援サーバ１０４は、後述する本認証システムの初期設定処理で、少なくとも、クライアント端末１０１へ生体情報入力装置操作プラグイン１０８と生体認証スクリプト１１０を発行し、オンラインサービスサーバ１０５へ生体認証依頼スクリプト１１２を発行する。
オンラインサービスサーバ１０５は、ブラウザ１０６を介してユーザにオンラインサービスを提供するサーバであって、少なくとも、生体認証依頼スクリプト１１２を含むWebアプリプログラム１１１を備える。
次に図２〜４を使用して、クライアント端末１０１、生体認証支援サーバ１０４、オンラインサービスサーバ１０５の詳細な構成をそれぞれ説明する。
図２は、クライアント端末１０１の構成を示す機能ブロック図である。
クライアント端末１０１は、CPU２０１とメモリ２０２と記憶部２０４、及び図示しないキーボード等の入力装置やディスプレイ等の出力装置が、バス２０３で接続された構成をとる。
メモリ２０２には、ブラウザ２０５がロードされ実行される。ブラウザ２０５は、オフライン拡張プラグイン２０８や、生体情報入力装置操作プラグイン２０９を備え、オンラインサービスサーバから送信されたHTMLページ２０６を出力装置に表示する。記憶部２０４には、オフライン拡張プラグインの機能によりローカルサーバ２１４やローカルDB２１７が作成される。
HTMLページ２０６は、ブラウザからの要求に応じてオンラインサービスサーバ１０５上で実行されるWebアプリプログラム１１１が、実行結果としてブラウザに返す情報である。
生体認証依頼スクリプト２０７は、HTMLページ２０６から呼び出されるブラウザスクリプトである。ブラウザスクリプトとは、ブラウザ上で実行されるプログラムであって、例えばJavaScriptである。
【００２４】
生体認証依頼スクリプト２０７は、後述するオンラインサービスサーバ１０５の初期設定処理において、オンラインサービスサーバの管理者により、生体認証支援サーバ１０４からダウンロードされてWebアプリプログラム１１１に埋め込まれる。そして、生体認証が完了しない状態でWebアプリプログラムが実行された場合には、オンラインサービスサーバ１０５からブラウザへ、生体認証依頼スクリプト２０７を含むHTMLページ２０６が返される。
オフライン拡張プラグイン２０８は、ブラウザにローカルサーバ機能とローカルDB機能と並列プロセス実行機能を追加するプログラムである。
生体情報入力装置操作プラグイン２０９は、ブラウザに生体情報入力装置１０２を操作するためのブラウザスクリプトAPI（Application Program Interface）を提供するプログラムである。本実施例では、生体情報入力装置操作プラグインは、内蔵する生体情報登録プログラム２１２とコールバック情報取得プログラム２１３を、ブラウザスクリプトから呼び出し可能にするためのAPIを提供する。さらに、ユーザIDハッシュ２１０とユーザ鍵２１１を保持する。
【００２５】
ユーザIDハッシュ２１０は、生体認証支援サーバ１０４が生成してユーザに対して発行する情報であり、生体認証支援サーバ１０４とオンラインサービスサーバ１０５において、ユーザを一意に識別するための識別子である。
ユーザ鍵２１１は、後述するクライアント端末の初期設定処理において生体認証支援サーバ１０４が生成し、クライアント端末に対して発行する情報であり、クライアント端末と生体認証支援サーバにおけるMAC（Message Authentication Code）の付与と認証に使用する鍵情報である。
生体認証スクリプト２１５は、生体認証依頼スクリプト２０７から呼び出されるブラウザスクリプトである。生体認証スクリプト２１５は、後述するクライアント端末の初期設定処理により、生体認証支援サーバ１０４からダウンロードされてローカルサーバ２１４に記憶される。生体認証スクリプトは、生体情報入力装置操作プラグイン２０９が提供するAPIを利用したブラウザスクリプトであり、生体情報登録プログラム２１２やコールバック情報取得プログラム２１３を呼び出す。
クロスアクセス許可リスト２１６は、生体認証スクリプト２１５の実行を許可する呼び出し元オリジンのリストである。
【００２６】
図３は、生体認証支援サーバ１０４の構成を示す機能ブロック図である。
生体認証支援サーバ１０４は、CPU３０１とメモリ３０２と記憶部３０４、及び図示しないキーボード等の入力装置やディスプレイ等の出力装置が、バス３０３で接続される構成をとる。
記憶部３０４には、生体認証スクリプト３０５、生体認証依頼スクリプト３０６、コールバック情報提供Webサービス３０７、クロスアクセス許可リスト３０８、クライアントバージョン管理ファイル３０９、Webアプリ情報管理テーブル３１０、ユーザ情報管理テーブル３１１が記憶される。コールバック情報提供Webサービス３０７は適宜メモリ３０２にロードされて実行される。
なお、本図の生体認証スクリプト３０５と生体認証依頼スクリプト３０６とクロスアクセス許可リスト３０８は、図２の生体認証スクリプト２１５、生体認証依頼スクリプト２０７、クロスアクセス許可リスト２１６と同一のものである。
【００２７】
コールバック情報提供Webサービス３０７は、コールバック情報取得プログラム２１３から呼び出されるWebサービスプログラムである。
クライアントバージョン管理ファイル３０９は、生体認証支援サーバが記憶するクロスアクセス許可リスト３０８のバージョン番号を記憶したファイルである。これは、ローカルサーバ２１４のキャッシュの更新に利用されるファイルである。
Webアプリ情報管理テーブル３１０は、Webアプリ毎に異なる設定情報を記憶するテーブルである。
ユーザ情報管理テーブル３１１は、ユーザ毎に異なる設定情報を記憶するテーブルである。
【００２８】
図４は、オンラインサービスサーバ１０５の構成を示す機能ブロック図である。
オンラインサービスサーバ１０５は、CPU４０１とメモリ４０２と記憶部４０４、及び図示しないキーボード等の入力装置やディスプレイ等の出力装置が、バス４０３で接続される構成をとる。
記憶部４０４には、生体認証依頼スクリプト４０６を含むWebアプリプログラム４０５と、WebアプリID４０７と、Webアプリ鍵４０８が記憶される。
なお、本図の生体認証依頼スクリプト４０６は、図２の生体認証依頼スクリプト２０７、及び図３の生体認証依頼スクリプト３０６と同一のものである。
WebアプリID４０７は、後述するオンラインサービスサーバの初期設定処理において生体認証支援サーバ１０４が生成し、オンラインサービスサーバに対して発行する情報であり、生体認証支援サーバにおいて、Webアプリケーションを一意に識別するための識別子である。
Webアプリ鍵４０８は、後述するオンラインサービスサーバの初期設定処理において生体認証支援サーバ１０４が生成し、オンラインサービスサーバに対して発行する情報であり、オンラインサービスサーバと生体認証支援サーバにおけるMACの付与と認証に使用する鍵情報である。
【００２９】
次に、本認証システムで使用するテーブルの構成例を説明する。
図５は、Webアプリ情報管理テーブル３１０の構成例を示す図である。
図５において、WebアプリID５０１とWebアプリ鍵５０２は、図４にて説明したWebアプリID４０７、Webアプリ鍵４０８と同一のものである。
WebアプリURL５０３は、本生体認証システムにてユーザ認証を行うWebアプリケーションのURLである。例えば、WebアプリケーションのトップページのURLである。
コールバックURL５０４は、本生体認証システムでのユーザ認証の成功後に、ブラウザからのアクセスを受け付けるWebアプリケーションのURLである。
【００３０】
図６は、ユーザ情報管理テーブル３１１の構成例を示す図である。
図６において、ユーザ鍵６０３とユーザIDハッシュ６０４は、図２にて説明したユーザ鍵２１１とユーザIDハッシュ２１０と同一のものである。
ユーザPW６０２は、後述する本認証システムにおけるクライアント端末１０１の初期設定処理において、ユーザを認証するために使用するパスワードである。
以下、システムの動作について説明する。
ただし、本生体認証システムを利用するクライアント端末１０１のユーザは、予め生体認証支援サーバ１０４にユーザ登録を済ませてユーザIDとユーザPWの発行を受けており、ユーザ情報管理テーブル３１０には、登録済みのユーザのユーザID６０１とユーザPW６０２が記憶されているものとする。
また、オンラインサービスサーバ１０５を管理する管理者も、予め生体認証支援サーバ１０４に管理者登録を済ませて初期設定用の管理者IDと管理者PWの発行を受けており、生体認証支援サーバ１０４の図示しないテーブルには、登録済みの管理者の管理者IDと管理者PWが記憶されているものとする。
さらに、クライアント端末１０１には予めオフライン拡張プラグイン２０８がインストールされており、記憶部２０４にはローカルサーバとローカルDBが作成されているものとする。
【００３１】
まず、図７と図８を使用して、本生体認証システムにおける初期設定処理の流れについて説明する。
図７は、オンラインサービスサーバ１０５の初期設定処理を示すフローチャートである。
オンラインサービスサーバ１０５の初期設定処理は、オンラインサービスサーバ１０５の管理者が、生体認証支援サーバ１０４に、自身が管理するWebアプリケーションのWebアプリURL５０３とコールバックURL５０４を登録し、生体認証支援サーバ１０４からWebアプリID４０７とWebアプリ鍵４０８の発行を受ける処理である。
オンラインサービスサーバ１０５の管理者は、まず、生体認証支援サーバ１０４の管理者用ページにアクセスして管理者IDと管理者PWを使用してログインする。その後、本生体認証システムにて認証を行うWebアプリケーションの、WebアプリURLとコールバックURLを生体認証支援サーバ１０４に送信する（ステップ７０１）。
【００３２】
生体認証支援サーバ１０４は、WebアプリURLとコールバックURLを受信すると、WebアプリIDとWebアプリ鍵を生成する（ステップ７０２）。
ステップ７０２で生成したWebアプリIDとWebアプリ鍵、及び、ステップ７０１で取得したWebアプリURLとコールバックURLを、Webアプリ情報管理テーブル３１０に記憶する（ステップ７０３）。
生体認証支援サーバ１０４は、WebアプリURLのオリジンを、クロスアクセス許可リスト３０８に追加し、さらに、クライアントバージョン管理ファイル３０９のバージョン番号を更新する（ステップ７０４）。
記憶部３０４から生体認証依頼スクリプト３０６を取得し、その生体認証依頼スクリプト３０６と、ステップ７０２で生成したWebアプリIDとWebアプリ鍵とをオンラインサービスサーバ１０５へ送信する（ステップ７０５）。
【００３３】
オンラインサービスサーバ１０５は、WebアプリIDとWebアプリ鍵と生体認証依頼スクリプト３０６を受信すると、受信したWebアプリIDとWebアプリ鍵を記憶部４０４に記憶する。
また、オンラインサービスサーバ１０５の管理者は、認証が完了していないユーザがWebアプリプログラム４０５を実行した場合に、生体認証依頼スクリプトを含むHTMLページがブラウザに返信されるように、Webアプリプログラムに受信した生体認証依頼スクリプトを組み込む（ステップ７０６）。
以上が、オンラインサービスサーバ１０５の初期設定処理である。
【００３４】
図８は、クライアント端末１０１の初期設定処理を示すフローチャートである。
クライアント端末１０１の初期設定処理は、Webアプリケーションのサービスを受けるユーザが、生体認証支援サーバ１０４から、自身のユーザIDハッシュ２１０とユーザ鍵２１１が組み込まれた生体情報入力装置操作プラグイン２０９をダウンロードしてインストールし、生体情報テンプレート２１８を生成して、ローカルDB２１７に記憶させる処理である。
ユーザは、ブラウザから生体認証支援サーバ上のユーザ管理画面にアクセスし、ユーザIDとユーザPWを入力して送信する（ステップ８０１）。
生体認証支援サーバ１０４は、受信したユーザIDとユーザPWの組と、ユーザ情報管理テーブル３１０に記憶されているユーザID６０１とユーザPW６０２の組とを比較することでユーザを認証する。そして、認証に成功した場合は、ランダムなユーザ鍵６０３と、ユーザIDを引数にハッシュ関数を実行した結果であるユーザIDハッシュ６０４を生成し、生成したユーザ鍵とユーザIDハッシュを、受信したユーザIDとユーザPWの組に関連付けてユーザ情報管理テーブル３１０に記憶する（ステップ８０２）。
【００３５】
次に、生体認証支援サーバ１０４は、ユーザIDハッシュとユーザ鍵を組み込んだ生体情報入力装置操作プラグインを生成する。この処理は、例えば、プラグインのソースコードにユーザIDハッシュとユーザ鍵を記載してコンパイルし、生体情報入力装置操作プラグインのバイトコードを生成するといった方法で行う（ステップ８０３）。
記憶部３０４から、生体認証スクリプト３０５とクロスアクセス許可リスト３０８を取得し、生体認証スクリプト３０５とクロスアクセス許可リスト３０８とステップ８０３で生成した生体情報入力装置操作プラグインとを、クライアント端末１０１へ送信する（ステップ８０４）。
クライアント端末１０１は、生体認証スクリプト３０５とクロスアクセス許可リスト３０８と生体情報入力装置操作プラグインを受信すると、生体認証スクリプト３０５とクロスアクセス許可リスト３０８をローカルサーバ２１４に記憶する。そして、ユーザは、受信した生体認証入力装置操作プラグインをクライアント端末１０１へインストールする（ステップ８０５）。
【００３６】
生体認証入力装置操作プラグインは、インストール完了直後に生体情報登録プログラム２１２を実行する。生体情報登録プログラム２１２は、生体情報入力装置１０２を起動し、利用者に生体情報の入力を要求する。そして、入力された生体情報から特徴量を抽出し、さらに特徴量をユーザ鍵２１１で暗号化して生体情報テンプレートを生成し、ローカルDB２１７へ記憶する（ステップ８０６）。
以上が、クライアント端末の初期設定処理である。
【００３７】
次に、本生体認証システムにおけるユーザ認証処理の流れを説明する。
図９は、認証システム全体の処理を示すフローチャートである。なお、ステップ９０５〜ステップ９０７は生体認証依頼スクリプト２０７の動作である。
ユーザが、ブラウザ２０５を操作してWebアプリURLにアクセスし、Webアプリプログラム４０５を呼び出す（ステップ９０１）。
オンラインサービスサーバ１０５は、まず、ブラウザのクッキー等を利用してアクセスを受けたユーザが認証済みかどうかをチェックする。認証済みである場合は、クッキーがもつセッション情報でユーザを特定し、直ちにユーザにサービスを提供する。まだ認証されていない場合は、現在時刻を取得し（以降、ここで取得した時刻をWebアプリアクセス時刻と示す）、ステップ９０３へ進む（ステップ９０２）。
【００３８】
次に、記憶部４０４からWebアプリID４０７とWebアプリ鍵４０８を取得し、ステップ９０２で生成したWebアプリアクセス時刻と、WebアプリIDとを連結した文字列を生成する。この連結文字列に、さらにWebアプリ鍵でMACを付加し、MAC付Webアプリ情報を生成する（ステップ９０３）。
生体認証依頼スクリプトを組み込んだHTMLページと、ステップ９０３で生成したMAC付Webアプリ情報３０６とを、クライアント端末１０１へ送信する（ステップ９０４）。
ブラウザは、生体認証依頼スクリプト２０７が組み込まれたHTMLページ２０６とMAC付Webアプリ情報を受信すると、HTMLページをクライアント端末１０１の出力装置に表示する。出力と同時に、HTMLページ２０６は、MAC付Webアプリ情報を引数に生体認証依頼スクリプト２０７を実行する（ステップ９０５）。
【００３９】
生体認証依頼スクリプト２０７は、オフライン拡張プラグイン２０８の並列プロセス実行機能を利用して、クロスオリジンアクセスにより生体認証スクリプトを呼び出す。すなわち、生体認証依頼スクリプト２０７は、新規ワーカを生成し、MAC付Webアプリ情報を引数に、ローカルサーバ内の生体認証スクリプト２１５を実行する。ここで、後の図１０に詳細を説明する生体認証スクリプトは、生体認証支援サーバ１０４にアクセスし、生体認証支援サーバ１０４からMAC付コールバック情報を受信する。そして、生体認証依頼スクリプトは、生体認証スクリプトの戻り値としてMAC付コールバック情報を取得する（ステップ９０６）。
なお、MAC付コールバック情報は、後述する図１１の処理で生成される情報であって、コールバックURL５０４とユーザIDハッシュ６０４とコールバック情報生成時刻を連結した文字列に、Webアプリ鍵５０２によるMACが付加された文字列である。
生体認証依頼スクリプトが、ステップ９０６で取得したMAC付コールバック情報に含まれるコールバックURLへ、ブラウザをリダイレクトする。これにより、オンラインサービスサーバ１０５へ、MAC付コールバック情報が送信される（ステップ９０７）。
【００４０】
オンラインサービスサーバ１０５は、MAC付コールバック情報を受信すると、記憶部４０４からWebアプリ鍵４０８を取得し、Webアプリ鍵４０８を使用してMAC付コールバック情報のMAC認証を行う。MAC認証に成功した場合は、ステップ９０９へ進む。MAC認証に失敗した場合は、ブラウザへユーザ認証が失敗した旨を通知し、直ちに処理を中断して終了する（ステップ９０８）。
次に、現在時刻を取得し、現在時刻とMAC付コールバック情報に含まれるコールバック情報生成時刻との時間差を算出する。そして、算出した時間差が、予め設定されたコールバックURLの有効時間未満であるかをチェックする。有効時間未満である場合はステップ９１０へ進む。有効時間以上である場合は、ブラウザへユーザ認証が失敗した旨を通知し、直ちに処理を中断して終了する（ステップ９０９）。
MAC付コールバック情報に含まれるユーザIDハッシュの情報に基づき、ユーザを特定してWebアプリケーションのサービスを提供する。また、ブラウザに、ユーザ認証が成功済みであることを示す有効期限付きのクッキーを発行する（ステップ９１０）。
【００４１】
次にプログラムの詳細について図を用いて説明する。
まず、生体認証スクリプト２１５の動作の詳細を図１０を使用して説明する。
生体認証スクリプト２１５は、図９のステップ９０６で生体認証依頼スクリプト２０７からMAC付Webアプリ情報を引数に呼び出された後、まず、クロスアクセス許可リスト２１６の更新チェックを行う。その後、生体情報入力装置操作プラグイン２０９が内蔵するコールバック情報取得プログラム２１３を実行する。
まず、クライアントバージョン管理ファイルのURLを指定し、生体認証支援サーバ１０４に、バージョン番号の取得要求を送信する（ステップ１００１）。
生体認証支援サーバ１０４は、クライントバージョン管理ファイル３０９に記載された、クロスアクセス許可リスト３０８のバージョン番号をクライアント端末１０１へ送信する（ステップ１００２）。
【００４２】
クライアント端末１０１は、受信したバージョン番号と、ローカルサーバ２１４に記憶しているクロスアクセス許可リスト２１６のバージョン番号とを比較する。バージョン番号が一致していた場合は、直ちにステップ１００４へ進む。バージョン番号が異なっていた場合は、生体認証支援サーバ１０４にクロスアクセス許可リスト３０８の取得要求を送信し、最新のクロスアクセス許可リストをダウンロードしてローカルサーバに記憶する（ステップ１００３）。
この後、並列プロセス実行機能が提供するAPIを利用してワーカの生成元オリジンを取得し、取得したワーカの生成元オリジンが、ローカルサーバ内のクロスアクセス許可リスト２１６に含まれているかチェックする。
ワーカの生成元オリジンがクロスアクセス許可リスト２１６に含まれていた場合は、ステップ１００５へ進む。含まれていなかった場合は、ブラウザへ認証に失敗した旨を通知して終了する（ステップ１００４）。
【００４３】
なお、本実施の形態に従い生体認証スクリプトが実行された場合、ワーカの生成元オリジンは、生体認証依頼スクリプト２０７のオリジン、すなわち、ユーザが利用しようとしているWebアプリケーションのWebアプリURLのオリジンになる。WebアプリURLのオリジンは、オンラインサービスサーバが正しく初期設定された場合、ステップ７０４でクロスアクセス許可リストに追加されるため、ワーカの生成元オリジンはクロスアクセス許可リストに含まれていることになる。
次に、生体情報入力装置操作プラグインが提供するAPIを介して、MAC付Webアプリ情報を引数にコールバック情報取得プログラム２１３を実行する。そして、実行結果としてMAC付コールバック情報を取得する（ステップ１００５）。
次に、ステップ１００５で取得したMAC付コールバック情報を、呼び出し元の生体認証依頼スクリプトに返却し、実行を終了する（ステップ１００６）。
【００４４】
次に、コールバック情報取得プログラム２１３とコールバック情報提供Webサービス３０７の動作の詳細を図１１を使用して説明する。
コールバック情報取得プログラム２１３は、生体認証入力装置１０２を起動し、ユーザに生体情報の入力を要求する。そして、入力された生体情報から抽出した特徴量と、生体情報テンプレート２１８をユーザ鍵２１１で復号した結果とを比較してユーザ認証を行う。
ユーザ認証に成功した場合は、ステップ１１０２へ進む。認証に失敗した場合は、ブラウザへユーザ認証が失敗した旨を通知し、直ちに処理を中断して終了する（ステップ１１０１）。
引数で取得したMAC付Webアプリ情報に、ユーザIDハッシュ２１０を連結した文字列を生成する。この連結文字列に、さらにユーザ鍵２１１でMACを付加し、MAC付クライアント情報を生成する（ステップ１１０２）。
ステップ１１０２で生成したMAC付クライアント情報を引数に、生体認証支援サーバ上のコールバック情報提供Webサービス３０７を呼び出す（ステップ１１０３）。
コールバック情報提供Webサービスは、MAC付クライアント情報を受信すると、ユーザ鍵６０３を使用したMAC認証と、Webアプリ鍵５０２を使用したMAC認証を行う。どちらのMAC認証にも成功した場合は、ステップ１１０５へ進む。
いずれかのMAC認証に失敗した場合は、ブラウザへユーザ認証が失敗した旨を通知し、直ちに処理を中断して終了する（ステップ１１０４）。
【００４５】
以下に、本ステップにおけるMAC認証の処理の詳細を説明する。
まず、受信したMAC付クライアント情報に含まれるユーザIDハッシュを取得し、ユーザ情報管理テーブル３１１から、当該ユーザIDハッシュに関連付けられて記憶されているユーザ鍵６０３を取得する。そして、取得したユーザ鍵を使用してMAC付クライアント情報のMAC認証を行う。
次に、MAC付クライアント情報に含まれるMAC付Webアプリ情報のMAC認証を行う。MAC付Webアプリ情報に含まれるWebアプリIDを取得し、Webアプリ情報管理テーブル３１０から、当該WebアプリIDに関連付けられて記憶されているWebアプリ鍵５０２を取得する。そして、取得したWebアプリ鍵を使用してMAC付Webアプリ情報のMAC認証を行う。
現在時刻（以降、ここで取得した時刻を、コールバック情報生成時刻と示す）を取得し、コールバック情報生成時刻とMAC付Webアプリ情報に含まれるWebアプリアクセス時刻との時間差を算出する。そして、算出した時間差が、予め設定されたMAC付Webアプリ情報の有効時間未満であるかをチェックする。
有効時間未満である場合は、ステップ１１０６へ進む。有効時間以上である場合は、ブラウザへユーザ認証が失敗した旨を通知し、直ちに処理を中断して終了する（ステップ１１０５）。
【００４６】
この後、受信したMAC付クライアント情報に含まれるWebアプリIDを取得し、Webアプリ情報管理テーブル３１０から、WebアプリIDに関連付けて記憶されているWebアプリ鍵５０２とコールバックURL５０４とを取得する。そして、コールバックURLと、ステップ１１０４で取得したユーザIDハッシュ６０４と、ステップ１１０５で取得したコールバック情報生成時刻とを連結した文字列を生成し、この連結文字列に、さらにWebアプリ鍵でMACを付加してMAC付コールバック情報を生成する（ステップ１１０６）。
なお、ここでMAC付コールバック情報のフォーマットは、コールバックURLに対してURLパラメータとして、ユーザIDハッシュとコールバック情報生成時刻とMACを渡す形式（例えば、”https://service1.com/callback?usr=8c8cf9ad3b77f23bba308ab61193 &time=20070101136756&sign=732ab8fa38272a6b77f23bf23bba30b3” など）をとるものとする。
ステップ１１０６で生成されたMAC付コールバック情報を、クライアント端末へ送信する（ステップ１１０７）。
コールバック情報取得プログラム２１３は、受信したMAC付コールバック情報を戻り値として呼び出し元の生体認証スクリプト２０７に返却し、実行を終了する（ステップ１１０８）。
【００４７】
以上、本発明の生体認証システムの実施の形態について説明した。
なお、本発明の実施の形態において、ブラウザにはオフライン拡張プラグインと生体認証入力装置操作プラグインの２つをインストールするものとしたが、同様の機能を実現するものであればこれはひとつのプラグインであってもよい。
例えば、既存のオフライン拡張プラグインに生体情報入力装置を操作する機能を追加したプラグインを作成し、当該プラグインをユーザのクライアント端末に配布する形態であってもよい。
【００４８】
また、本発明の実施の形態において、生体情報テンプレート２１８はローカルDB２１７に記憶するものとしたが、これはクライアント端末の記憶部に記憶する形態としてもよい。この場合、生体情報入力装置操作プラグインにはクライアント端末の記憶部を操作する機能を持たせ、ステップ８０６及びステップ１１０１では、当該機能を用いて記憶部から生体情報テンプレートを読み書きするものとする。
【００４９】
また、本発明の実施の形態において、ユーザIDハッシュ２１０とユーザ鍵２１１は、ステップ８０３でサーバが生体情報入力装置操作プラグインに組み込むものとしたが、これは、クライアント端末の記憶部に記憶する形態としてもよい。この場合、生体情報入力装置操作プラグインにはクライアント端末の記憶部を操作する機能と、生体認証支援サーバが使用するものと同じハッシュ関数でユーザIDのハッシュ値を求める機能を持たせ、サーバはステップ８０３でユーザIDハッシュとユーザ鍵をプラグインに組み込む代わりに、ステップ８０４でユーザ鍵をクライアント端末に送信し、ステップ８０６において生体情報登録プログラムは、ユーザに生体情報と共にユーザIDと受信したユーザ鍵の入力を要求し、入力されたユーザ鍵と、入力されたユーザIDから計算したユーザIDハッシュとを、クライアント端末の記憶部に記憶するものとする。そして、ステップ１１０２では、生体情報入力装置操作プラグインが、クライアント端末の記憶部からユーザIDハッシュとユーザ鍵を読み込むものとする。
【図面の簡単な説明】
【００５０】
【図１】本発明に係る生体認証システムの実施の形態を示すシステム構成図である。
【図２】クライアント端末の内部構成を示す機能ブロック図である。
【図３】生体認証支援サーバの内部構成を示す機能ブロック図である。
【図４】オンラインサービスサーバの内部構成を示す機能ブロック図である。
【図５】Webアプリ情報管理テーブルのデータ構成例を示す図である。
【図６】ユーザ情報管理テーブルのデータ構成例を示す図である。
【図７】オンラインサービスサーバの初期設定処理を示すフローチャートである。
【図８】クライアント端末の初期設定処理を示すフローチャートである。
【図９】生体認証依頼スクリプトの動作を含む認証システム全体の処理を示すフローチャートである。
【図１０】生体認証スクリプトの処理を示すフローチャートである。
【図１１】コールバック情報取得プログラムとコールバック情報提供Webサービスの動作を示すフローチャートである。
【図１２】クロスオリジンアクセスの動作を示す概念図である
【符号の説明】
【００５１】
１０１  クライアント端末
１０２  生体情報入力装置
１０４  生体認証支援サーバ
１０５  オンラインサービスサーバ
２０５  ブラウザ
２０７  生体認証依頼スクリプト
２０８  オフライン拡張プラグイン
２０９  生体情報入力装置操作プラグイン
２１５  生体認証スクリプト
２１８  生体情報テンプレート
【図１】
2009223638.tif 000003
【図２】
2009223638.tif 000004
【図３】
2009223638.tif 000005
【図４】
2009223638.tif 000006
【図５】
2009223638.tif 000007
【図６】
2009223638.tif 000008
【図７】
2009223638.tif 000009
【図８】
2009223638.tif 000010
【図９】
2009223638.tif 000011
【図１０】
2009223638.tif 000012
【図１１】
2009223638.tif 000013
【図１２】
2009223638.tif 000014