Webアプリケーション向け生体認証システム及び方法
【課題】 利用者のプライバシ保護とユーザ認証の安全性を両立すると共に、サーバの管理負担を軽減した生体認証システムを実現すること。
【解決手段】 オンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザに生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインを記憶する生体認証支援サーバとで構成される生体認証システムであって、クライアント端末が生体認証支援サーバから生体情報入力装置操作プラグインを取得する手段と、オンラインサービスサーバがブラウザからのアクセスを受けて生体認証依頼スクリプトをブラウザに送信し、クライアント端末のブラウザ上で生体認証依頼スクリプトを実行させ、クライアント端末のユーザ認証を行う手段とを備える。
【解決手段】 オンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザに生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインを記憶する生体認証支援サーバとで構成される生体認証システムであって、クライアント端末が生体認証支援サーバから生体情報入力装置操作プラグインを取得する手段と、オンラインサービスサーバがブラウザからのアクセスを受けて生体認証依頼スクリプトをブラウザに送信し、クライアント端末のブラウザ上で生体認証依頼スクリプトを実行させ、クライアント端末のユーザ認証を行う手段とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、Webアプリケーションにおけるユーザ認証において、個人の生体情報を用いて認証する生体認証システム及び方法に関する。
【背景技術】
【0002】
オンラインショッピングやインターネットバンキング、SaaS(Software As a Service)といったオンラインサービスの普及に伴いWebアプリケーションでのユーザ認証の重要性が増してきている。
そこで近年では、従来のユーザIDとユーザパスワード(以降、ユーザPWと示す)による認証に代わり、安全性の高さから、指紋や顔、指静脈といった個人の生体情報を利用した、生体認証システムの導入が注目されるようになってきた。
生体認証システムでは、初期設定時に個人の生体情報を取得し、取得した生体情報から特徴量を抽出して登録する。この登録情報を生体情報テンプレートという。そして、認証時には、再度利用者に生体情報の入力を要求し、入力された生体情報の特徴量と、登録してある生体情報テンプレートとを照合して本人か否かを判定する。
クライアント端末とオンラインサービスサーバがネットワークを介して接続されたWebアプリケーションのシステム構成において、クライアント端末を操作するユーザを生体認証する場合、一般的には、サーバがユーザの生体情報テンプレートを保持する。
クライアント端末は、認証時にユーザの生体情報を取得し、特徴量を抽出してサーバへ送信する。その後、サーバは特徴量を生体情報テンプレートと比較し、本人か否かの判定を行う。
以上のように生体認証では、第三者が容易に真似することのできない、個人の身体的特徴を認証に利用するため、従来の認証と比較し、ユーザ認証の安全性を高めることができる。
【0003】
しかし一方で、生体認証を導入する事業者には、生体情報テンプレートの厳重な管理が求められる。生体情報からは、例えば、顔データから性別や人種が分かるなど,個人のプライバシ情報が抽出される危険性がある。このため、生体認証を導入する事業者は、個人情報保護の観点からも生体情報テンプレートを厳密に管理する必要がある。
また、生体情報は一人の個人が持てる数に限りがあり、所有者であっても容易に変更することができない情報である。このため、仮にサーバから生体情報テンプレートが漏洩した場合は、漏洩したテンプレートはなりすましに利用される危険性があるため二度と認証に使用できなくなるなど、システムの安全性に大きな影響を与える。
【0004】
従来、こうしたユーザのプライバシ保護や安全性の確保のために要するサーバの高い管理コストが、Webアプリケーションの認証に生体認証を導入する際の妨げになっていた
上記問題への対策として、特許文献1が提案されている。特許文献1に開示の従来技術は、初期設定時には生体情報の画像を錯乱するためのフィルタ、及び逆フィルタを作成し、生体情報の画像にこのフィルタを作用させて生体情報テンプレートを生成してサーバに記憶し、認証時には、ユーザから取得した生体情報から作成された照合画像に逆フィルタを作用させ、逆フィルタ作用後の照合画像と生体情報テンプレートの相互相関に基づいて本人か否かを判定するものである。
この従来技術によると、サーバにはフィルタによる変換後の生体情報テンプレートしか記憶されず、ユーザの元の生体情報は秘匿されるため、ユーザのプライバシを保護することができる。
また、仮に生体情報テンプレートがサーバから漏洩した場合であっても、初期設定時に作成するフィルタを変更することで、同じ生体情報から異なる生体情報テンプレートを生成することができるため、漏洩したテンプレートを無効にし、新たなテンプレートを登録し直すことでシステムの安全性を保つことができる。以上の効果により、生体認証を導入する事業者はサーバの管理コストを低減することができる。
【0005】
ところで、近年、Webアプリケーションのクライアント側の実行環境であるブラウザについては、オフライン拡張プラグインが提案されている。オフライン拡張プラグインは、従来、ネットワークに接続可能な状態(オンライン状態)でしか使用できなかったWebアプリケーションを、ネットワーク接続が不可能な状態(オフライン状態)でも使用できるようにするために、ブラウザに機能を追加するソフトウェアである。
例えば、特許文献2には、ブラウザにローカルプロキシとアプリケーションファイル保存DBを追加し、ローカルプロキシの自動巡回プログラムによりサーバのアプリケーション管理DBに登録されているアプリケーションを自動ダウンロードし、アプリケーションファイル保存DBに保存しておき、プロキシの設定をローカルプロキシに指定しておくことにより、ブラウザから、アプリケーションファイル保存DBに保存されたアプリケーションを実行することで、オフライン状態でWebアプリケーションを利用可能にする技術が開示されている。
【0006】
また、非特許文献1には、ブラウザにローカルサーバ機能と、ローカルデータベース機能(以降、ローカルDB機能と示す)と、並列プロセス実行機能を実現するためのJavaScript(登録商標) API(Application Program Interface)追加し、Webアプリケーションをオフライン状態で実行可能にする技術が開示されている。以下では、オフライン拡張プラグインの例として、非特許文献1に開示の技術について説明する。なお、本背景技術については非特許文献2にも説明されている。
【0007】
ローカルサーバ機能は、ブラウザのキャッシュ機能の拡張であり、ブラウザがオフライン状態でもHTMLページを表示したり、JavaScriptを実行できるようにするための仕組みである。
非特許文献1に記載のオフライン拡張プラグインをインストールすると、クライアント端末の記憶部にはローカルサーバ用の記憶領域が作成される。オフライン拡張プラグインは、ブラウザが要求したHTMLページやJavaScriptなどのWebリソースがローカルサーバに記憶されている場合は、当該Webリソースをサーバからダウンロードしようとするブラウザの動作を横取りし、代わりにローカルサーバから当該Webリソースを読み込ませるように動作する。
なお、ローカルサーバに記憶するWebリソースの指定は、Webアプリケーション開発者が、ローカルサーバ機能が提供するAPIを利用したJavaScriptコードを記述し、これをブラウザにダウンロードさせて実行させることで行う。
【0008】
ローカルDB機能は、ブラウザに、JavaScriptから操作可能なリレーショナルデータベースを追加し、オフライン状態でもWebアプリケーションのデータの更新をできるようにするための仕組みである。
非特許文献1に記載のオフライン拡張プラグインをインストールすると、クライアント端末の記憶部にはローカルDB用の記憶領域が作成される。Webアプリケーション開発者は、ローカルDB機能が提供するAPIを利用したJavaScriptコードを記述し、これをブラウザにダウンロードさせて実行させることで、ローカルDB内の情報を読み書きすることができる。
【0009】
並列プロセス実行機能は、ブラウザに、JavaScriptをバックグラウンドで実行させる機能を追加する仕組みである。
Webアプリケーションの開発者は、並列プロセス実行機能が提供するAPIを利用したJavaScriptを記述し、これをブラウザにダウンロードさせて実行させることで、ブラウザにワーカと呼ばれる別プロセスを生成させ、ワーカに任意のJavaScriptを実行させることができる。ワーカは指定されたJavaScriptを実行し、実行完了後呼び出し元のJavaScriptに実行結果を返す。
また。並列プロセス実行機能は、JavaScriptからの別オリジンのWebリソースにアクセスする仕組み(以降、クロスオリジンアクセスと示す)を提供する。ここで、オリジンとは、Webリソースに割り当てられているURLの、プロトコル・ドメイン・ポート番号の組み合わせ情報である。例えば、”http://domainA.com:80/resource/sample.js”というURLで指定されるJavaScriptファイルのオリジンは、”http://domainA.com:80”である。
【0010】
以下、図12を参照してクロスオリジンアクセスについて説明する。
通常、ブラウザはシングルオリジンポリシーと呼ばれる(又は、同一生成元ポリシーと呼ばれる)セキュリティルールに従って設計されており、例えば、”http://domainA.com:80”のオリジンに所属するブラウザスクリプトAは、同じオリジンに所属するWebリソースAにアクセスすることはできるが、別オリジン”http://domainB.com:80”に所属するWebリソースBにはアクセスすることができない。
しかし、並列プロセス実行機能を利用すると、予め、WebリソースBと同じオリジンに所属し、かつWebリソースBにアクセスする関数が記述されたブラウザスクリプトBがローカルサーバに記憶されていれば、ブラウザスクリプトAでワーカを生成し、生成したワーカにブラウザスクリプトBを実行させることで、ブラウザスクリプトAは、ブラウザスクリプトBを介してWebリソースBにアクセスすることができる。
【0011】
【特許文献1】特開2007-293807
【特許文献2】特開2001-51839
【非特許文献1】http://gears.google.com/
【非特許文献2】GoogleGearsスタートガイド 白石俊平 株式会社技術評論者
【発明の開示】
【発明が解決しようとする課題】
【0012】
特許文献1に記載の生体認証システムにあっては以下の課題がある。
第一に、プライバシ保護のために、生体情報の管理を自身の手で行いたいというユーザのニーズに応えられず、全てのユーザに生体認証を利用してもらうことが難しいという点である。
特許文献1に記載の従来技術であっても、サーバからユーザの生体情報が漏洩するリスクが完全に無くなるわけではない。仮に生体情報の変換に利用するフィルタの生成方法に不備があり、生成されるフィルタのパターンに確率的な偏りがあったり、第三者がフィルタを推測する方法が明らかになった場合などには、例えユーザ側に落ち度がなかったとしても、サーバに記憶された生体情報テンプレートからユーザの生体情報が割り出され、ユーザのプライバシが侵害される可能性がある。よって、生体認証を導入する事業者は、こうしたサーバ側の管理の不備によるプライバシ侵害のリスクを許容できないユーザに、生体認証を利用してもらえない可能性がある。
【0013】
第二に、サーバでの生体情報テンプレートの管理には、依然として高い管理コストがかかる点である。前述したように、特許文献1に記載の従来技術であっても、サーバからユーザの生体情報が漏洩するリスクが完全に無くなるわけではない。仮にサーバが攻撃された場合には、一度に大量のユーザの生体情報が漏洩し、システムの安全性が脅かされるとともに、生体認証を運営する事業者は社会的な信用を失う可能性がある。よって、こうした事態を避けるため、生体認証を運営する事業者は、依然として高いコストをかけてサーバを管理せざるを得ない。
【0014】
以上の従来技術の課題を踏まえ、本発明の目的は、利用者のプライバシ保護とユーザ認証の安全性を両立すると共に、サーバの管理負担を軽減した生体認証システムを提供することにある。
【課題を解決するための手段】
【0015】
上記目的を達成するため、請求項1に記載の本発明は、オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムであって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別するWebアプリ識別子と、前記生体認証依頼スクリプトとを受信して記憶する手段と、
前記クライアント端末が、
前記生体認証支援サーバから、オンラインサービスサーバ及び生体認証支援サーバでユーザを一意に識別するユーザ識別情報と、前記生体情報入力装置操作プラグインと、前記生体認証スクリプトとを受信して、前記記憶部に記憶する手段と、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶する手段と、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスする手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて前記生体認証依頼スクリプトをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、クライアント端末の記憶部に記憶された前記生体認証スクリプトを実行する手段と、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記生体認証支援サーバに、前記ユーザ識別子をパラメータとしてコールバックアドレス情報の取得要求を送信してユーザ識別子を含むコールバックアドレス情報を取得し、ブラウザを取得したコールバックアドレス情報に接続させる手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、コールバックアドレス情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供する手段とを備えることを特徴とする。
【0016】
また、請求項2に記載の本発明は、オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムであって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別する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付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供する手段とを備えることを特徴とする。
【0017】
また、請求項3に記載の本発明は、オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムであって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信する手段と、
前記生体認証支援サーバが、
オンラインサービスを一意に識別する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付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供する手段とを備えることを特徴とする。
【0018】
また、請求項4に記載の本発明は、オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムにおける認証方法であって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別するWebアプリ識別子と、前記生体認証依頼スクリプトとを受信して記憶するステップと、
前記クライアント端末が、
前記生体認証支援サーバから、オンラインサービスサーバ及び生体認証支援サーバでユーザを一意に識別するユーザ識別情報と、前記生体情報入力装置操作プラグインと、前記生体認証スクリプトとを受信して、前記記憶部に記憶するステップと、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶するステップと、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスするステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて前記生体認証依頼スクリプトをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、クライアント端末の記憶部に記憶された前記生体認証スクリプトを実行するステップと、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記生体認証支援サーバに、前記ユーザ識別子をパラメータとしてコールバックアドレス情報の取得要求を送信してユーザ識別子を含むコールバックアドレス情報を取得し、ブラウザを取得したコールバックアドレス情報に接続させるステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、コールバックアドレス情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供するステップとを備えることを特徴とする。
【0019】
また、請求項5に記載の本発明は、オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムにおける認証方法であって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別する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付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供するステップとを備えることを特徴とする。
【0020】
また、請求項6に記載の本発明は、オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムにおける認証方法であって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信するステップと、
前記生体認証支援サーバが、
オンラインサービスを一意に識別する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付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供するステップとを備えることを特徴とする。
【発明の効果】
【0021】
本発明によれば、オンラインサービスを利用するユーザは、プライバシ情報である生体情報の管理をオンラインサービスを提供する事業者に委ねることなく、自身で管理しながら、生体認証を利用できるようになる。
これにより、生体認証を導入する事業者は、より多くのユーザに生体認証利用してもらえることが期待できる。
また、オンラインサービスを提供する事業者は、サーバ側でユーザの生体情報テンプレートを管理する必要がなくなるため、サーバの管理コストを大幅に低減できるとともに、サーバが攻撃を受けて、一度に大量のユーザの生体情報が漏洩するリスクを回避することができる。
以上の効果により、利用者のプライバシ保護とユーザ認証の安全性を両立すると共に、サーバの管理負担を軽減した生体認証システムを実現することができる。
【発明を実施するための最良の形態】
【0022】
以下に、本発明を実施する場合の一形態を図面を参照して具体的に説明する。
なお、本実施形態では、既にオフライン拡張プラグインがインストールされたブラウザを対象に、新たに生体情報入力装置操作プラグインを追加し、生体認証システムを実現する形態について説明する。
図1は、本発明に係る生体認証システムの実施の形態を示すシステム構成図である。
本発明の生体認証システムは、クライアント端末101と生体認証支援サーバ104とオンラインサービスサーバ105がインターネット等のネットワーク103で接続された構成をとる。さらに、クライアント端末101には生体情報入力装置102が接続される。
クライアント端末101は、Webアプリケーションのサービスを受けるユーザが操作する端末であり、少なくとも、オフライン拡張プラグイン107と生体情報入力装置操作プラグイン108がインストールされたブラウザ106、及び、生体認証スクリプト110を記憶する記憶部109を備える。
【0023】
生体情報入力装置102は、クライアント端末に接続される、指紋、虹彩、静脈パターンなどの生体情報の入力装置である。
生体認証支援サーバ104は、認証に必要なプログラムやデータをクライアント端末101とオンラインサービスサーバ105に提供するサーバである。
生体認証支援サーバ104は、後述する本認証システムの初期設定処理で、少なくとも、クライアント端末101へ生体情報入力装置操作プラグイン108と生体認証スクリプト110を発行し、オンラインサービスサーバ105へ生体認証依頼スクリプト112を発行する。
オンラインサービスサーバ105は、ブラウザ106を介してユーザにオンラインサービスを提供するサーバであって、少なくとも、生体認証依頼スクリプト112を含むWebアプリプログラム111を備える。
次に図2〜4を使用して、クライアント端末101、生体認証支援サーバ104、オンラインサービスサーバ105の詳細な構成をそれぞれ説明する。
図2は、クライアント端末101の構成を示す機能ブロック図である。
クライアント端末101は、CPU201とメモリ202と記憶部204、及び図示しないキーボード等の入力装置やディスプレイ等の出力装置が、バス203で接続された構成をとる。
メモリ202には、ブラウザ205がロードされ実行される。ブラウザ205は、オフライン拡張プラグイン208や、生体情報入力装置操作プラグイン209を備え、オンラインサービスサーバから送信されたHTMLページ206を出力装置に表示する。記憶部204には、オフライン拡張プラグインの機能によりローカルサーバ214やローカルDB217が作成される。
HTMLページ206は、ブラウザからの要求に応じてオンラインサービスサーバ105上で実行されるWebアプリプログラム111が、実行結果としてブラウザに返す情報である。
生体認証依頼スクリプト207は、HTMLページ206から呼び出されるブラウザスクリプトである。ブラウザスクリプトとは、ブラウザ上で実行されるプログラムであって、例えばJavaScriptである。
【0024】
生体認証依頼スクリプト207は、後述するオンラインサービスサーバ105の初期設定処理において、オンラインサービスサーバの管理者により、生体認証支援サーバ104からダウンロードされてWebアプリプログラム111に埋め込まれる。そして、生体認証が完了しない状態でWebアプリプログラムが実行された場合には、オンラインサービスサーバ105からブラウザへ、生体認証依頼スクリプト207を含むHTMLページ206が返される。
オフライン拡張プラグイン208は、ブラウザにローカルサーバ機能とローカルDB機能と並列プロセス実行機能を追加するプログラムである。
生体情報入力装置操作プラグイン209は、ブラウザに生体情報入力装置102を操作するためのブラウザスクリプトAPI(Application Program Interface)を提供するプログラムである。本実施例では、生体情報入力装置操作プラグインは、内蔵する生体情報登録プログラム212とコールバック情報取得プログラム213を、ブラウザスクリプトから呼び出し可能にするためのAPIを提供する。さらに、ユーザIDハッシュ210とユーザ鍵211を保持する。
【0025】
ユーザIDハッシュ210は、生体認証支援サーバ104が生成してユーザに対して発行する情報であり、生体認証支援サーバ104とオンラインサービスサーバ105において、ユーザを一意に識別するための識別子である。
ユーザ鍵211は、後述するクライアント端末の初期設定処理において生体認証支援サーバ104が生成し、クライアント端末に対して発行する情報であり、クライアント端末と生体認証支援サーバにおけるMAC(Message Authentication Code)の付与と認証に使用する鍵情報である。
生体認証スクリプト215は、生体認証依頼スクリプト207から呼び出されるブラウザスクリプトである。生体認証スクリプト215は、後述するクライアント端末の初期設定処理により、生体認証支援サーバ104からダウンロードされてローカルサーバ214に記憶される。生体認証スクリプトは、生体情報入力装置操作プラグイン209が提供するAPIを利用したブラウザスクリプトであり、生体情報登録プログラム212やコールバック情報取得プログラム213を呼び出す。
クロスアクセス許可リスト216は、生体認証スクリプト215の実行を許可する呼び出し元オリジンのリストである。
【0026】
図3は、生体認証支援サーバ104の構成を示す機能ブロック図である。
生体認証支援サーバ104は、CPU301とメモリ302と記憶部304、及び図示しないキーボード等の入力装置やディスプレイ等の出力装置が、バス303で接続される構成をとる。
記憶部304には、生体認証スクリプト305、生体認証依頼スクリプト306、コールバック情報提供Webサービス307、クロスアクセス許可リスト308、クライアントバージョン管理ファイル309、Webアプリ情報管理テーブル310、ユーザ情報管理テーブル311が記憶される。コールバック情報提供Webサービス307は適宜メモリ302にロードされて実行される。
なお、本図の生体認証スクリプト305と生体認証依頼スクリプト306とクロスアクセス許可リスト308は、図2の生体認証スクリプト215、生体認証依頼スクリプト207、クロスアクセス許可リスト216と同一のものである。
【0027】
コールバック情報提供Webサービス307は、コールバック情報取得プログラム213から呼び出されるWebサービスプログラムである。
クライアントバージョン管理ファイル309は、生体認証支援サーバが記憶するクロスアクセス許可リスト308のバージョン番号を記憶したファイルである。これは、ローカルサーバ214のキャッシュの更新に利用されるファイルである。
Webアプリ情報管理テーブル310は、Webアプリ毎に異なる設定情報を記憶するテーブルである。
ユーザ情報管理テーブル311は、ユーザ毎に異なる設定情報を記憶するテーブルである。
【0028】
図4は、オンラインサービスサーバ105の構成を示す機能ブロック図である。
オンラインサービスサーバ105は、CPU401とメモリ402と記憶部404、及び図示しないキーボード等の入力装置やディスプレイ等の出力装置が、バス403で接続される構成をとる。
記憶部404には、生体認証依頼スクリプト406を含むWebアプリプログラム405と、WebアプリID407と、Webアプリ鍵408が記憶される。
なお、本図の生体認証依頼スクリプト406は、図2の生体認証依頼スクリプト207、及び図3の生体認証依頼スクリプト306と同一のものである。
WebアプリID407は、後述するオンラインサービスサーバの初期設定処理において生体認証支援サーバ104が生成し、オンラインサービスサーバに対して発行する情報であり、生体認証支援サーバにおいて、Webアプリケーションを一意に識別するための識別子である。
Webアプリ鍵408は、後述するオンラインサービスサーバの初期設定処理において生体認証支援サーバ104が生成し、オンラインサービスサーバに対して発行する情報であり、オンラインサービスサーバと生体認証支援サーバにおけるMACの付与と認証に使用する鍵情報である。
【0029】
次に、本認証システムで使用するテーブルの構成例を説明する。
図5は、Webアプリ情報管理テーブル310の構成例を示す図である。
図5において、WebアプリID501とWebアプリ鍵502は、図4にて説明したWebアプリID407、Webアプリ鍵408と同一のものである。
WebアプリURL503は、本生体認証システムにてユーザ認証を行うWebアプリケーションのURLである。例えば、WebアプリケーションのトップページのURLである。
コールバックURL504は、本生体認証システムでのユーザ認証の成功後に、ブラウザからのアクセスを受け付けるWebアプリケーションのURLである。
【0030】
図6は、ユーザ情報管理テーブル311の構成例を示す図である。
図6において、ユーザ鍵603とユーザIDハッシュ604は、図2にて説明したユーザ鍵211とユーザIDハッシュ210と同一のものである。
ユーザPW602は、後述する本認証システムにおけるクライアント端末101の初期設定処理において、ユーザを認証するために使用するパスワードである。
以下、システムの動作について説明する。
ただし、本生体認証システムを利用するクライアント端末101のユーザは、予め生体認証支援サーバ104にユーザ登録を済ませてユーザIDとユーザPWの発行を受けており、ユーザ情報管理テーブル310には、登録済みのユーザのユーザID601とユーザPW602が記憶されているものとする。
また、オンラインサービスサーバ105を管理する管理者も、予め生体認証支援サーバ104に管理者登録を済ませて初期設定用の管理者IDと管理者PWの発行を受けており、生体認証支援サーバ104の図示しないテーブルには、登録済みの管理者の管理者IDと管理者PWが記憶されているものとする。
さらに、クライアント端末101には予めオフライン拡張プラグイン208がインストールされており、記憶部204にはローカルサーバとローカルDBが作成されているものとする。
【0031】
まず、図7と図8を使用して、本生体認証システムにおける初期設定処理の流れについて説明する。
図7は、オンラインサービスサーバ105の初期設定処理を示すフローチャートである。
オンラインサービスサーバ105の初期設定処理は、オンラインサービスサーバ105の管理者が、生体認証支援サーバ104に、自身が管理するWebアプリケーションのWebアプリURL503とコールバックURL504を登録し、生体認証支援サーバ104からWebアプリID407とWebアプリ鍵408の発行を受ける処理である。
オンラインサービスサーバ105の管理者は、まず、生体認証支援サーバ104の管理者用ページにアクセスして管理者IDと管理者PWを使用してログインする。その後、本生体認証システムにて認証を行うWebアプリケーションの、WebアプリURLとコールバックURLを生体認証支援サーバ104に送信する(ステップ701)。
【0032】
生体認証支援サーバ104は、WebアプリURLとコールバックURLを受信すると、WebアプリIDとWebアプリ鍵を生成する(ステップ702)。
ステップ702で生成したWebアプリIDとWebアプリ鍵、及び、ステップ701で取得したWebアプリURLとコールバックURLを、Webアプリ情報管理テーブル310に記憶する(ステップ703)。
生体認証支援サーバ104は、WebアプリURLのオリジンを、クロスアクセス許可リスト308に追加し、さらに、クライアントバージョン管理ファイル309のバージョン番号を更新する(ステップ704)。
記憶部304から生体認証依頼スクリプト306を取得し、その生体認証依頼スクリプト306と、ステップ702で生成したWebアプリIDとWebアプリ鍵とをオンラインサービスサーバ105へ送信する(ステップ705)。
【0033】
オンラインサービスサーバ105は、WebアプリIDとWebアプリ鍵と生体認証依頼スクリプト306を受信すると、受信したWebアプリIDとWebアプリ鍵を記憶部404に記憶する。
また、オンラインサービスサーバ105の管理者は、認証が完了していないユーザがWebアプリプログラム405を実行した場合に、生体認証依頼スクリプトを含むHTMLページがブラウザに返信されるように、Webアプリプログラムに受信した生体認証依頼スクリプトを組み込む(ステップ706)。
以上が、オンラインサービスサーバ105の初期設定処理である。
【0034】
図8は、クライアント端末101の初期設定処理を示すフローチャートである。
クライアント端末101の初期設定処理は、Webアプリケーションのサービスを受けるユーザが、生体認証支援サーバ104から、自身のユーザIDハッシュ210とユーザ鍵211が組み込まれた生体情報入力装置操作プラグイン209をダウンロードしてインストールし、生体情報テンプレート218を生成して、ローカルDB217に記憶させる処理である。
ユーザは、ブラウザから生体認証支援サーバ上のユーザ管理画面にアクセスし、ユーザIDとユーザPWを入力して送信する(ステップ801)。
生体認証支援サーバ104は、受信したユーザIDとユーザPWの組と、ユーザ情報管理テーブル310に記憶されているユーザID601とユーザPW602の組とを比較することでユーザを認証する。そして、認証に成功した場合は、ランダムなユーザ鍵603と、ユーザIDを引数にハッシュ関数を実行した結果であるユーザIDハッシュ604を生成し、生成したユーザ鍵とユーザIDハッシュを、受信したユーザIDとユーザPWの組に関連付けてユーザ情報管理テーブル310に記憶する(ステップ802)。
【0035】
次に、生体認証支援サーバ104は、ユーザIDハッシュとユーザ鍵を組み込んだ生体情報入力装置操作プラグインを生成する。この処理は、例えば、プラグインのソースコードにユーザIDハッシュとユーザ鍵を記載してコンパイルし、生体情報入力装置操作プラグインのバイトコードを生成するといった方法で行う(ステップ803)。
記憶部304から、生体認証スクリプト305とクロスアクセス許可リスト308を取得し、生体認証スクリプト305とクロスアクセス許可リスト308とステップ803で生成した生体情報入力装置操作プラグインとを、クライアント端末101へ送信する(ステップ804)。
クライアント端末101は、生体認証スクリプト305とクロスアクセス許可リスト308と生体情報入力装置操作プラグインを受信すると、生体認証スクリプト305とクロスアクセス許可リスト308をローカルサーバ214に記憶する。そして、ユーザは、受信した生体認証入力装置操作プラグインをクライアント端末101へインストールする(ステップ805)。
【0036】
生体認証入力装置操作プラグインは、インストール完了直後に生体情報登録プログラム212を実行する。生体情報登録プログラム212は、生体情報入力装置102を起動し、利用者に生体情報の入力を要求する。そして、入力された生体情報から特徴量を抽出し、さらに特徴量をユーザ鍵211で暗号化して生体情報テンプレートを生成し、ローカルDB217へ記憶する(ステップ806)。
以上が、クライアント端末の初期設定処理である。
【0037】
次に、本生体認証システムにおけるユーザ認証処理の流れを説明する。
図9は、認証システム全体の処理を示すフローチャートである。なお、ステップ905〜ステップ907は生体認証依頼スクリプト207の動作である。
ユーザが、ブラウザ205を操作してWebアプリURLにアクセスし、Webアプリプログラム405を呼び出す(ステップ901)。
オンラインサービスサーバ105は、まず、ブラウザのクッキー等を利用してアクセスを受けたユーザが認証済みかどうかをチェックする。認証済みである場合は、クッキーがもつセッション情報でユーザを特定し、直ちにユーザにサービスを提供する。まだ認証されていない場合は、現在時刻を取得し(以降、ここで取得した時刻をWebアプリアクセス時刻と示す)、ステップ903へ進む(ステップ902)。
【0038】
次に、記憶部404からWebアプリID407とWebアプリ鍵408を取得し、ステップ902で生成したWebアプリアクセス時刻と、WebアプリIDとを連結した文字列を生成する。この連結文字列に、さらにWebアプリ鍵でMACを付加し、MAC付Webアプリ情報を生成する(ステップ903)。
生体認証依頼スクリプトを組み込んだHTMLページと、ステップ903で生成したMAC付Webアプリ情報306とを、クライアント端末101へ送信する(ステップ904)。
ブラウザは、生体認証依頼スクリプト207が組み込まれたHTMLページ206とMAC付Webアプリ情報を受信すると、HTMLページをクライアント端末101の出力装置に表示する。出力と同時に、HTMLページ206は、MAC付Webアプリ情報を引数に生体認証依頼スクリプト207を実行する(ステップ905)。
【0039】
生体認証依頼スクリプト207は、オフライン拡張プラグイン208の並列プロセス実行機能を利用して、クロスオリジンアクセスにより生体認証スクリプトを呼び出す。すなわち、生体認証依頼スクリプト207は、新規ワーカを生成し、MAC付Webアプリ情報を引数に、ローカルサーバ内の生体認証スクリプト215を実行する。ここで、後の図10に詳細を説明する生体認証スクリプトは、生体認証支援サーバ104にアクセスし、生体認証支援サーバ104からMAC付コールバック情報を受信する。そして、生体認証依頼スクリプトは、生体認証スクリプトの戻り値としてMAC付コールバック情報を取得する(ステップ906)。
なお、MAC付コールバック情報は、後述する図11の処理で生成される情報であって、コールバックURL504とユーザIDハッシュ604とコールバック情報生成時刻を連結した文字列に、Webアプリ鍵502によるMACが付加された文字列である。
生体認証依頼スクリプトが、ステップ906で取得したMAC付コールバック情報に含まれるコールバックURLへ、ブラウザをリダイレクトする。これにより、オンラインサービスサーバ105へ、MAC付コールバック情報が送信される(ステップ907)。
【0040】
オンラインサービスサーバ105は、MAC付コールバック情報を受信すると、記憶部404からWebアプリ鍵408を取得し、Webアプリ鍵408を使用してMAC付コールバック情報のMAC認証を行う。MAC認証に成功した場合は、ステップ909へ進む。MAC認証に失敗した場合は、ブラウザへユーザ認証が失敗した旨を通知し、直ちに処理を中断して終了する(ステップ908)。
次に、現在時刻を取得し、現在時刻とMAC付コールバック情報に含まれるコールバック情報生成時刻との時間差を算出する。そして、算出した時間差が、予め設定されたコールバックURLの有効時間未満であるかをチェックする。有効時間未満である場合はステップ910へ進む。有効時間以上である場合は、ブラウザへユーザ認証が失敗した旨を通知し、直ちに処理を中断して終了する(ステップ909)。
MAC付コールバック情報に含まれるユーザIDハッシュの情報に基づき、ユーザを特定してWebアプリケーションのサービスを提供する。また、ブラウザに、ユーザ認証が成功済みであることを示す有効期限付きのクッキーを発行する(ステップ910)。
【0041】
次にプログラムの詳細について図を用いて説明する。
まず、生体認証スクリプト215の動作の詳細を図10を使用して説明する。
生体認証スクリプト215は、図9のステップ906で生体認証依頼スクリプト207からMAC付Webアプリ情報を引数に呼び出された後、まず、クロスアクセス許可リスト216の更新チェックを行う。その後、生体情報入力装置操作プラグイン209が内蔵するコールバック情報取得プログラム213を実行する。
まず、クライアントバージョン管理ファイルのURLを指定し、生体認証支援サーバ104に、バージョン番号の取得要求を送信する(ステップ1001)。
生体認証支援サーバ104は、クライントバージョン管理ファイル309に記載された、クロスアクセス許可リスト308のバージョン番号をクライアント端末101へ送信する(ステップ1002)。
【0042】
クライアント端末101は、受信したバージョン番号と、ローカルサーバ214に記憶しているクロスアクセス許可リスト216のバージョン番号とを比較する。バージョン番号が一致していた場合は、直ちにステップ1004へ進む。バージョン番号が異なっていた場合は、生体認証支援サーバ104にクロスアクセス許可リスト308の取得要求を送信し、最新のクロスアクセス許可リストをダウンロードしてローカルサーバに記憶する(ステップ1003)。
この後、並列プロセス実行機能が提供するAPIを利用してワーカの生成元オリジンを取得し、取得したワーカの生成元オリジンが、ローカルサーバ内のクロスアクセス許可リスト216に含まれているかチェックする。
ワーカの生成元オリジンがクロスアクセス許可リスト216に含まれていた場合は、ステップ1005へ進む。含まれていなかった場合は、ブラウザへ認証に失敗した旨を通知して終了する(ステップ1004)。
【0043】
なお、本実施の形態に従い生体認証スクリプトが実行された場合、ワーカの生成元オリジンは、生体認証依頼スクリプト207のオリジン、すなわち、ユーザが利用しようとしているWebアプリケーションのWebアプリURLのオリジンになる。WebアプリURLのオリジンは、オンラインサービスサーバが正しく初期設定された場合、ステップ704でクロスアクセス許可リストに追加されるため、ワーカの生成元オリジンはクロスアクセス許可リストに含まれていることになる。
次に、生体情報入力装置操作プラグインが提供するAPIを介して、MAC付Webアプリ情報を引数にコールバック情報取得プログラム213を実行する。そして、実行結果としてMAC付コールバック情報を取得する(ステップ1005)。
次に、ステップ1005で取得したMAC付コールバック情報を、呼び出し元の生体認証依頼スクリプトに返却し、実行を終了する(ステップ1006)。
【0044】
次に、コールバック情報取得プログラム213とコールバック情報提供Webサービス307の動作の詳細を図11を使用して説明する。
コールバック情報取得プログラム213は、生体認証入力装置102を起動し、ユーザに生体情報の入力を要求する。そして、入力された生体情報から抽出した特徴量と、生体情報テンプレート218をユーザ鍵211で復号した結果とを比較してユーザ認証を行う。
ユーザ認証に成功した場合は、ステップ1102へ進む。認証に失敗した場合は、ブラウザへユーザ認証が失敗した旨を通知し、直ちに処理を中断して終了する(ステップ1101)。
引数で取得したMAC付Webアプリ情報に、ユーザIDハッシュ210を連結した文字列を生成する。この連結文字列に、さらにユーザ鍵211でMACを付加し、MAC付クライアント情報を生成する(ステップ1102)。
ステップ1102で生成したMAC付クライアント情報を引数に、生体認証支援サーバ上のコールバック情報提供Webサービス307を呼び出す(ステップ1103)。
コールバック情報提供Webサービスは、MAC付クライアント情報を受信すると、ユーザ鍵603を使用したMAC認証と、Webアプリ鍵502を使用したMAC認証を行う。どちらのMAC認証にも成功した場合は、ステップ1105へ進む。
いずれかのMAC認証に失敗した場合は、ブラウザへユーザ認証が失敗した旨を通知し、直ちに処理を中断して終了する(ステップ1104)。
【0045】
以下に、本ステップにおけるMAC認証の処理の詳細を説明する。
まず、受信したMAC付クライアント情報に含まれるユーザIDハッシュを取得し、ユーザ情報管理テーブル311から、当該ユーザIDハッシュに関連付けられて記憶されているユーザ鍵603を取得する。そして、取得したユーザ鍵を使用してMAC付クライアント情報のMAC認証を行う。
次に、MAC付クライアント情報に含まれるMAC付Webアプリ情報のMAC認証を行う。MAC付Webアプリ情報に含まれるWebアプリIDを取得し、Webアプリ情報管理テーブル310から、当該WebアプリIDに関連付けられて記憶されているWebアプリ鍵502を取得する。そして、取得したWebアプリ鍵を使用してMAC付Webアプリ情報のMAC認証を行う。
現在時刻(以降、ここで取得した時刻を、コールバック情報生成時刻と示す)を取得し、コールバック情報生成時刻とMAC付Webアプリ情報に含まれるWebアプリアクセス時刻との時間差を算出する。そして、算出した時間差が、予め設定されたMAC付Webアプリ情報の有効時間未満であるかをチェックする。
有効時間未満である場合は、ステップ1106へ進む。有効時間以上である場合は、ブラウザへユーザ認証が失敗した旨を通知し、直ちに処理を中断して終了する(ステップ1105)。
【0046】
この後、受信したMAC付クライアント情報に含まれるWebアプリIDを取得し、Webアプリ情報管理テーブル310から、WebアプリIDに関連付けて記憶されているWebアプリ鍵502とコールバックURL504とを取得する。そして、コールバックURLと、ステップ1104で取得したユーザIDハッシュ604と、ステップ1105で取得したコールバック情報生成時刻とを連結した文字列を生成し、この連結文字列に、さらにWebアプリ鍵でMACを付加してMAC付コールバック情報を生成する(ステップ1106)。
なお、ここでMAC付コールバック情報のフォーマットは、コールバックURLに対してURLパラメータとして、ユーザIDハッシュとコールバック情報生成時刻とMACを渡す形式(例えば、”https://service1.com/callback?usr=8c8cf9ad3b77f23bba308ab61193 &time=20070101136756&sign=732ab8fa38272a6b77f23bf23bba30b3” など)をとるものとする。
ステップ1106で生成されたMAC付コールバック情報を、クライアント端末へ送信する(ステップ1107)。
コールバック情報取得プログラム213は、受信したMAC付コールバック情報を戻り値として呼び出し元の生体認証スクリプト207に返却し、実行を終了する(ステップ1108)。
【0047】
以上、本発明の生体認証システムの実施の形態について説明した。
なお、本発明の実施の形態において、ブラウザにはオフライン拡張プラグインと生体認証入力装置操作プラグインの2つをインストールするものとしたが、同様の機能を実現するものであればこれはひとつのプラグインであってもよい。
例えば、既存のオフライン拡張プラグインに生体情報入力装置を操作する機能を追加したプラグインを作成し、当該プラグインをユーザのクライアント端末に配布する形態であってもよい。
【0048】
また、本発明の実施の形態において、生体情報テンプレート218はローカルDB217に記憶するものとしたが、これはクライアント端末の記憶部に記憶する形態としてもよい。この場合、生体情報入力装置操作プラグインにはクライアント端末の記憶部を操作する機能を持たせ、ステップ806及びステップ1101では、当該機能を用いて記憶部から生体情報テンプレートを読み書きするものとする。
【0049】
また、本発明の実施の形態において、ユーザIDハッシュ210とユーザ鍵211は、ステップ803でサーバが生体情報入力装置操作プラグインに組み込むものとしたが、これは、クライアント端末の記憶部に記憶する形態としてもよい。この場合、生体情報入力装置操作プラグインにはクライアント端末の記憶部を操作する機能と、生体認証支援サーバが使用するものと同じハッシュ関数でユーザIDのハッシュ値を求める機能を持たせ、サーバはステップ803でユーザIDハッシュとユーザ鍵をプラグインに組み込む代わりに、ステップ804でユーザ鍵をクライアント端末に送信し、ステップ806において生体情報登録プログラムは、ユーザに生体情報と共にユーザIDと受信したユーザ鍵の入力を要求し、入力されたユーザ鍵と、入力されたユーザIDから計算したユーザIDハッシュとを、クライアント端末の記憶部に記憶するものとする。そして、ステップ1102では、生体情報入力装置操作プラグインが、クライアント端末の記憶部からユーザIDハッシュとユーザ鍵を読み込むものとする。
【図面の簡単な説明】
【0050】
【図1】本発明に係る生体認証システムの実施の形態を示すシステム構成図である。
【図2】クライアント端末の内部構成を示す機能ブロック図である。
【図3】生体認証支援サーバの内部構成を示す機能ブロック図である。
【図4】オンラインサービスサーバの内部構成を示す機能ブロック図である。
【図5】Webアプリ情報管理テーブルのデータ構成例を示す図である。
【図6】ユーザ情報管理テーブルのデータ構成例を示す図である。
【図7】オンラインサービスサーバの初期設定処理を示すフローチャートである。
【図8】クライアント端末の初期設定処理を示すフローチャートである。
【図9】生体認証依頼スクリプトの動作を含む認証システム全体の処理を示すフローチャートである。
【図10】生体認証スクリプトの処理を示すフローチャートである。
【図11】コールバック情報取得プログラムとコールバック情報提供Webサービスの動作を示すフローチャートである。
【図12】クロスオリジンアクセスの動作を示す概念図である
【符号の説明】
【0051】
101 クライアント端末
102 生体情報入力装置
104 生体認証支援サーバ
105 オンラインサービスサーバ
205 ブラウザ
207 生体認証依頼スクリプト
208 オフライン拡張プラグイン
209 生体情報入力装置操作プラグイン
215 生体認証スクリプト
218 生体情報テンプレート
【技術分野】
【0001】
本発明は、Webアプリケーションにおけるユーザ認証において、個人の生体情報を用いて認証する生体認証システム及び方法に関する。
【背景技術】
【0002】
オンラインショッピングやインターネットバンキング、SaaS(Software As a Service)といったオンラインサービスの普及に伴いWebアプリケーションでのユーザ認証の重要性が増してきている。
そこで近年では、従来のユーザIDとユーザパスワード(以降、ユーザPWと示す)による認証に代わり、安全性の高さから、指紋や顔、指静脈といった個人の生体情報を利用した、生体認証システムの導入が注目されるようになってきた。
生体認証システムでは、初期設定時に個人の生体情報を取得し、取得した生体情報から特徴量を抽出して登録する。この登録情報を生体情報テンプレートという。そして、認証時には、再度利用者に生体情報の入力を要求し、入力された生体情報の特徴量と、登録してある生体情報テンプレートとを照合して本人か否かを判定する。
クライアント端末とオンラインサービスサーバがネットワークを介して接続されたWebアプリケーションのシステム構成において、クライアント端末を操作するユーザを生体認証する場合、一般的には、サーバがユーザの生体情報テンプレートを保持する。
クライアント端末は、認証時にユーザの生体情報を取得し、特徴量を抽出してサーバへ送信する。その後、サーバは特徴量を生体情報テンプレートと比較し、本人か否かの判定を行う。
以上のように生体認証では、第三者が容易に真似することのできない、個人の身体的特徴を認証に利用するため、従来の認証と比較し、ユーザ認証の安全性を高めることができる。
【0003】
しかし一方で、生体認証を導入する事業者には、生体情報テンプレートの厳重な管理が求められる。生体情報からは、例えば、顔データから性別や人種が分かるなど,個人のプライバシ情報が抽出される危険性がある。このため、生体認証を導入する事業者は、個人情報保護の観点からも生体情報テンプレートを厳密に管理する必要がある。
また、生体情報は一人の個人が持てる数に限りがあり、所有者であっても容易に変更することができない情報である。このため、仮にサーバから生体情報テンプレートが漏洩した場合は、漏洩したテンプレートはなりすましに利用される危険性があるため二度と認証に使用できなくなるなど、システムの安全性に大きな影響を与える。
【0004】
従来、こうしたユーザのプライバシ保護や安全性の確保のために要するサーバの高い管理コストが、Webアプリケーションの認証に生体認証を導入する際の妨げになっていた
上記問題への対策として、特許文献1が提案されている。特許文献1に開示の従来技術は、初期設定時には生体情報の画像を錯乱するためのフィルタ、及び逆フィルタを作成し、生体情報の画像にこのフィルタを作用させて生体情報テンプレートを生成してサーバに記憶し、認証時には、ユーザから取得した生体情報から作成された照合画像に逆フィルタを作用させ、逆フィルタ作用後の照合画像と生体情報テンプレートの相互相関に基づいて本人か否かを判定するものである。
この従来技術によると、サーバにはフィルタによる変換後の生体情報テンプレートしか記憶されず、ユーザの元の生体情報は秘匿されるため、ユーザのプライバシを保護することができる。
また、仮に生体情報テンプレートがサーバから漏洩した場合であっても、初期設定時に作成するフィルタを変更することで、同じ生体情報から異なる生体情報テンプレートを生成することができるため、漏洩したテンプレートを無効にし、新たなテンプレートを登録し直すことでシステムの安全性を保つことができる。以上の効果により、生体認証を導入する事業者はサーバの管理コストを低減することができる。
【0005】
ところで、近年、Webアプリケーションのクライアント側の実行環境であるブラウザについては、オフライン拡張プラグインが提案されている。オフライン拡張プラグインは、従来、ネットワークに接続可能な状態(オンライン状態)でしか使用できなかったWebアプリケーションを、ネットワーク接続が不可能な状態(オフライン状態)でも使用できるようにするために、ブラウザに機能を追加するソフトウェアである。
例えば、特許文献2には、ブラウザにローカルプロキシとアプリケーションファイル保存DBを追加し、ローカルプロキシの自動巡回プログラムによりサーバのアプリケーション管理DBに登録されているアプリケーションを自動ダウンロードし、アプリケーションファイル保存DBに保存しておき、プロキシの設定をローカルプロキシに指定しておくことにより、ブラウザから、アプリケーションファイル保存DBに保存されたアプリケーションを実行することで、オフライン状態でWebアプリケーションを利用可能にする技術が開示されている。
【0006】
また、非特許文献1には、ブラウザにローカルサーバ機能と、ローカルデータベース機能(以降、ローカルDB機能と示す)と、並列プロセス実行機能を実現するためのJavaScript(登録商標) API(Application Program Interface)追加し、Webアプリケーションをオフライン状態で実行可能にする技術が開示されている。以下では、オフライン拡張プラグインの例として、非特許文献1に開示の技術について説明する。なお、本背景技術については非特許文献2にも説明されている。
【0007】
ローカルサーバ機能は、ブラウザのキャッシュ機能の拡張であり、ブラウザがオフライン状態でもHTMLページを表示したり、JavaScriptを実行できるようにするための仕組みである。
非特許文献1に記載のオフライン拡張プラグインをインストールすると、クライアント端末の記憶部にはローカルサーバ用の記憶領域が作成される。オフライン拡張プラグインは、ブラウザが要求したHTMLページやJavaScriptなどのWebリソースがローカルサーバに記憶されている場合は、当該Webリソースをサーバからダウンロードしようとするブラウザの動作を横取りし、代わりにローカルサーバから当該Webリソースを読み込ませるように動作する。
なお、ローカルサーバに記憶するWebリソースの指定は、Webアプリケーション開発者が、ローカルサーバ機能が提供するAPIを利用したJavaScriptコードを記述し、これをブラウザにダウンロードさせて実行させることで行う。
【0008】
ローカルDB機能は、ブラウザに、JavaScriptから操作可能なリレーショナルデータベースを追加し、オフライン状態でもWebアプリケーションのデータの更新をできるようにするための仕組みである。
非特許文献1に記載のオフライン拡張プラグインをインストールすると、クライアント端末の記憶部にはローカルDB用の記憶領域が作成される。Webアプリケーション開発者は、ローカルDB機能が提供するAPIを利用したJavaScriptコードを記述し、これをブラウザにダウンロードさせて実行させることで、ローカルDB内の情報を読み書きすることができる。
【0009】
並列プロセス実行機能は、ブラウザに、JavaScriptをバックグラウンドで実行させる機能を追加する仕組みである。
Webアプリケーションの開発者は、並列プロセス実行機能が提供するAPIを利用したJavaScriptを記述し、これをブラウザにダウンロードさせて実行させることで、ブラウザにワーカと呼ばれる別プロセスを生成させ、ワーカに任意のJavaScriptを実行させることができる。ワーカは指定されたJavaScriptを実行し、実行完了後呼び出し元のJavaScriptに実行結果を返す。
また。並列プロセス実行機能は、JavaScriptからの別オリジンのWebリソースにアクセスする仕組み(以降、クロスオリジンアクセスと示す)を提供する。ここで、オリジンとは、Webリソースに割り当てられているURLの、プロトコル・ドメイン・ポート番号の組み合わせ情報である。例えば、”http://domainA.com:80/resource/sample.js”というURLで指定されるJavaScriptファイルのオリジンは、”http://domainA.com:80”である。
【0010】
以下、図12を参照してクロスオリジンアクセスについて説明する。
通常、ブラウザはシングルオリジンポリシーと呼ばれる(又は、同一生成元ポリシーと呼ばれる)セキュリティルールに従って設計されており、例えば、”http://domainA.com:80”のオリジンに所属するブラウザスクリプトAは、同じオリジンに所属するWebリソースAにアクセスすることはできるが、別オリジン”http://domainB.com:80”に所属するWebリソースBにはアクセスすることができない。
しかし、並列プロセス実行機能を利用すると、予め、WebリソースBと同じオリジンに所属し、かつWebリソースBにアクセスする関数が記述されたブラウザスクリプトBがローカルサーバに記憶されていれば、ブラウザスクリプトAでワーカを生成し、生成したワーカにブラウザスクリプトBを実行させることで、ブラウザスクリプトAは、ブラウザスクリプトBを介してWebリソースBにアクセスすることができる。
【0011】
【特許文献1】特開2007-293807
【特許文献2】特開2001-51839
【非特許文献1】http://gears.google.com/
【非特許文献2】GoogleGearsスタートガイド 白石俊平 株式会社技術評論者
【発明の開示】
【発明が解決しようとする課題】
【0012】
特許文献1に記載の生体認証システムにあっては以下の課題がある。
第一に、プライバシ保護のために、生体情報の管理を自身の手で行いたいというユーザのニーズに応えられず、全てのユーザに生体認証を利用してもらうことが難しいという点である。
特許文献1に記載の従来技術であっても、サーバからユーザの生体情報が漏洩するリスクが完全に無くなるわけではない。仮に生体情報の変換に利用するフィルタの生成方法に不備があり、生成されるフィルタのパターンに確率的な偏りがあったり、第三者がフィルタを推測する方法が明らかになった場合などには、例えユーザ側に落ち度がなかったとしても、サーバに記憶された生体情報テンプレートからユーザの生体情報が割り出され、ユーザのプライバシが侵害される可能性がある。よって、生体認証を導入する事業者は、こうしたサーバ側の管理の不備によるプライバシ侵害のリスクを許容できないユーザに、生体認証を利用してもらえない可能性がある。
【0013】
第二に、サーバでの生体情報テンプレートの管理には、依然として高い管理コストがかかる点である。前述したように、特許文献1に記載の従来技術であっても、サーバからユーザの生体情報が漏洩するリスクが完全に無くなるわけではない。仮にサーバが攻撃された場合には、一度に大量のユーザの生体情報が漏洩し、システムの安全性が脅かされるとともに、生体認証を運営する事業者は社会的な信用を失う可能性がある。よって、こうした事態を避けるため、生体認証を運営する事業者は、依然として高いコストをかけてサーバを管理せざるを得ない。
【0014】
以上の従来技術の課題を踏まえ、本発明の目的は、利用者のプライバシ保護とユーザ認証の安全性を両立すると共に、サーバの管理負担を軽減した生体認証システムを提供することにある。
【課題を解決するための手段】
【0015】
上記目的を達成するため、請求項1に記載の本発明は、オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムであって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別するWebアプリ識別子と、前記生体認証依頼スクリプトとを受信して記憶する手段と、
前記クライアント端末が、
前記生体認証支援サーバから、オンラインサービスサーバ及び生体認証支援サーバでユーザを一意に識別するユーザ識別情報と、前記生体情報入力装置操作プラグインと、前記生体認証スクリプトとを受信して、前記記憶部に記憶する手段と、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶する手段と、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスする手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて前記生体認証依頼スクリプトをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、クライアント端末の記憶部に記憶された前記生体認証スクリプトを実行する手段と、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記生体認証支援サーバに、前記ユーザ識別子をパラメータとしてコールバックアドレス情報の取得要求を送信してユーザ識別子を含むコールバックアドレス情報を取得し、ブラウザを取得したコールバックアドレス情報に接続させる手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、コールバックアドレス情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供する手段とを備えることを特徴とする。
【0016】
また、請求項2に記載の本発明は、オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムであって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別する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付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供する手段とを備えることを特徴とする。
【0017】
また、請求項3に記載の本発明は、オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムであって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信する手段と、
前記生体認証支援サーバが、
オンラインサービスを一意に識別する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付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供する手段とを備えることを特徴とする。
【0018】
また、請求項4に記載の本発明は、オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムにおける認証方法であって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別するWebアプリ識別子と、前記生体認証依頼スクリプトとを受信して記憶するステップと、
前記クライアント端末が、
前記生体認証支援サーバから、オンラインサービスサーバ及び生体認証支援サーバでユーザを一意に識別するユーザ識別情報と、前記生体情報入力装置操作プラグインと、前記生体認証スクリプトとを受信して、前記記憶部に記憶するステップと、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶するステップと、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスするステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて前記生体認証依頼スクリプトをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、クライアント端末の記憶部に記憶された前記生体認証スクリプトを実行するステップと、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記生体認証支援サーバに、前記ユーザ識別子をパラメータとしてコールバックアドレス情報の取得要求を送信してユーザ識別子を含むコールバックアドレス情報を取得し、ブラウザを取得したコールバックアドレス情報に接続させるステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、コールバックアドレス情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供するステップとを備えることを特徴とする。
【0019】
また、請求項5に記載の本発明は、オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムにおける認証方法であって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別する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付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供するステップとを備えることを特徴とする。
【0020】
また、請求項6に記載の本発明は、オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムにおける認証方法であって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信するステップと、
前記生体認証支援サーバが、
オンラインサービスを一意に識別する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付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供するステップとを備えることを特徴とする。
【発明の効果】
【0021】
本発明によれば、オンラインサービスを利用するユーザは、プライバシ情報である生体情報の管理をオンラインサービスを提供する事業者に委ねることなく、自身で管理しながら、生体認証を利用できるようになる。
これにより、生体認証を導入する事業者は、より多くのユーザに生体認証利用してもらえることが期待できる。
また、オンラインサービスを提供する事業者は、サーバ側でユーザの生体情報テンプレートを管理する必要がなくなるため、サーバの管理コストを大幅に低減できるとともに、サーバが攻撃を受けて、一度に大量のユーザの生体情報が漏洩するリスクを回避することができる。
以上の効果により、利用者のプライバシ保護とユーザ認証の安全性を両立すると共に、サーバの管理負担を軽減した生体認証システムを実現することができる。
【発明を実施するための最良の形態】
【0022】
以下に、本発明を実施する場合の一形態を図面を参照して具体的に説明する。
なお、本実施形態では、既にオフライン拡張プラグインがインストールされたブラウザを対象に、新たに生体情報入力装置操作プラグインを追加し、生体認証システムを実現する形態について説明する。
図1は、本発明に係る生体認証システムの実施の形態を示すシステム構成図である。
本発明の生体認証システムは、クライアント端末101と生体認証支援サーバ104とオンラインサービスサーバ105がインターネット等のネットワーク103で接続された構成をとる。さらに、クライアント端末101には生体情報入力装置102が接続される。
クライアント端末101は、Webアプリケーションのサービスを受けるユーザが操作する端末であり、少なくとも、オフライン拡張プラグイン107と生体情報入力装置操作プラグイン108がインストールされたブラウザ106、及び、生体認証スクリプト110を記憶する記憶部109を備える。
【0023】
生体情報入力装置102は、クライアント端末に接続される、指紋、虹彩、静脈パターンなどの生体情報の入力装置である。
生体認証支援サーバ104は、認証に必要なプログラムやデータをクライアント端末101とオンラインサービスサーバ105に提供するサーバである。
生体認証支援サーバ104は、後述する本認証システムの初期設定処理で、少なくとも、クライアント端末101へ生体情報入力装置操作プラグイン108と生体認証スクリプト110を発行し、オンラインサービスサーバ105へ生体認証依頼スクリプト112を発行する。
オンラインサービスサーバ105は、ブラウザ106を介してユーザにオンラインサービスを提供するサーバであって、少なくとも、生体認証依頼スクリプト112を含むWebアプリプログラム111を備える。
次に図2〜4を使用して、クライアント端末101、生体認証支援サーバ104、オンラインサービスサーバ105の詳細な構成をそれぞれ説明する。
図2は、クライアント端末101の構成を示す機能ブロック図である。
クライアント端末101は、CPU201とメモリ202と記憶部204、及び図示しないキーボード等の入力装置やディスプレイ等の出力装置が、バス203で接続された構成をとる。
メモリ202には、ブラウザ205がロードされ実行される。ブラウザ205は、オフライン拡張プラグイン208や、生体情報入力装置操作プラグイン209を備え、オンラインサービスサーバから送信されたHTMLページ206を出力装置に表示する。記憶部204には、オフライン拡張プラグインの機能によりローカルサーバ214やローカルDB217が作成される。
HTMLページ206は、ブラウザからの要求に応じてオンラインサービスサーバ105上で実行されるWebアプリプログラム111が、実行結果としてブラウザに返す情報である。
生体認証依頼スクリプト207は、HTMLページ206から呼び出されるブラウザスクリプトである。ブラウザスクリプトとは、ブラウザ上で実行されるプログラムであって、例えばJavaScriptである。
【0024】
生体認証依頼スクリプト207は、後述するオンラインサービスサーバ105の初期設定処理において、オンラインサービスサーバの管理者により、生体認証支援サーバ104からダウンロードされてWebアプリプログラム111に埋め込まれる。そして、生体認証が完了しない状態でWebアプリプログラムが実行された場合には、オンラインサービスサーバ105からブラウザへ、生体認証依頼スクリプト207を含むHTMLページ206が返される。
オフライン拡張プラグイン208は、ブラウザにローカルサーバ機能とローカルDB機能と並列プロセス実行機能を追加するプログラムである。
生体情報入力装置操作プラグイン209は、ブラウザに生体情報入力装置102を操作するためのブラウザスクリプトAPI(Application Program Interface)を提供するプログラムである。本実施例では、生体情報入力装置操作プラグインは、内蔵する生体情報登録プログラム212とコールバック情報取得プログラム213を、ブラウザスクリプトから呼び出し可能にするためのAPIを提供する。さらに、ユーザIDハッシュ210とユーザ鍵211を保持する。
【0025】
ユーザIDハッシュ210は、生体認証支援サーバ104が生成してユーザに対して発行する情報であり、生体認証支援サーバ104とオンラインサービスサーバ105において、ユーザを一意に識別するための識別子である。
ユーザ鍵211は、後述するクライアント端末の初期設定処理において生体認証支援サーバ104が生成し、クライアント端末に対して発行する情報であり、クライアント端末と生体認証支援サーバにおけるMAC(Message Authentication Code)の付与と認証に使用する鍵情報である。
生体認証スクリプト215は、生体認証依頼スクリプト207から呼び出されるブラウザスクリプトである。生体認証スクリプト215は、後述するクライアント端末の初期設定処理により、生体認証支援サーバ104からダウンロードされてローカルサーバ214に記憶される。生体認証スクリプトは、生体情報入力装置操作プラグイン209が提供するAPIを利用したブラウザスクリプトであり、生体情報登録プログラム212やコールバック情報取得プログラム213を呼び出す。
クロスアクセス許可リスト216は、生体認証スクリプト215の実行を許可する呼び出し元オリジンのリストである。
【0026】
図3は、生体認証支援サーバ104の構成を示す機能ブロック図である。
生体認証支援サーバ104は、CPU301とメモリ302と記憶部304、及び図示しないキーボード等の入力装置やディスプレイ等の出力装置が、バス303で接続される構成をとる。
記憶部304には、生体認証スクリプト305、生体認証依頼スクリプト306、コールバック情報提供Webサービス307、クロスアクセス許可リスト308、クライアントバージョン管理ファイル309、Webアプリ情報管理テーブル310、ユーザ情報管理テーブル311が記憶される。コールバック情報提供Webサービス307は適宜メモリ302にロードされて実行される。
なお、本図の生体認証スクリプト305と生体認証依頼スクリプト306とクロスアクセス許可リスト308は、図2の生体認証スクリプト215、生体認証依頼スクリプト207、クロスアクセス許可リスト216と同一のものである。
【0027】
コールバック情報提供Webサービス307は、コールバック情報取得プログラム213から呼び出されるWebサービスプログラムである。
クライアントバージョン管理ファイル309は、生体認証支援サーバが記憶するクロスアクセス許可リスト308のバージョン番号を記憶したファイルである。これは、ローカルサーバ214のキャッシュの更新に利用されるファイルである。
Webアプリ情報管理テーブル310は、Webアプリ毎に異なる設定情報を記憶するテーブルである。
ユーザ情報管理テーブル311は、ユーザ毎に異なる設定情報を記憶するテーブルである。
【0028】
図4は、オンラインサービスサーバ105の構成を示す機能ブロック図である。
オンラインサービスサーバ105は、CPU401とメモリ402と記憶部404、及び図示しないキーボード等の入力装置やディスプレイ等の出力装置が、バス403で接続される構成をとる。
記憶部404には、生体認証依頼スクリプト406を含むWebアプリプログラム405と、WebアプリID407と、Webアプリ鍵408が記憶される。
なお、本図の生体認証依頼スクリプト406は、図2の生体認証依頼スクリプト207、及び図3の生体認証依頼スクリプト306と同一のものである。
WebアプリID407は、後述するオンラインサービスサーバの初期設定処理において生体認証支援サーバ104が生成し、オンラインサービスサーバに対して発行する情報であり、生体認証支援サーバにおいて、Webアプリケーションを一意に識別するための識別子である。
Webアプリ鍵408は、後述するオンラインサービスサーバの初期設定処理において生体認証支援サーバ104が生成し、オンラインサービスサーバに対して発行する情報であり、オンラインサービスサーバと生体認証支援サーバにおけるMACの付与と認証に使用する鍵情報である。
【0029】
次に、本認証システムで使用するテーブルの構成例を説明する。
図5は、Webアプリ情報管理テーブル310の構成例を示す図である。
図5において、WebアプリID501とWebアプリ鍵502は、図4にて説明したWebアプリID407、Webアプリ鍵408と同一のものである。
WebアプリURL503は、本生体認証システムにてユーザ認証を行うWebアプリケーションのURLである。例えば、WebアプリケーションのトップページのURLである。
コールバックURL504は、本生体認証システムでのユーザ認証の成功後に、ブラウザからのアクセスを受け付けるWebアプリケーションのURLである。
【0030】
図6は、ユーザ情報管理テーブル311の構成例を示す図である。
図6において、ユーザ鍵603とユーザIDハッシュ604は、図2にて説明したユーザ鍵211とユーザIDハッシュ210と同一のものである。
ユーザPW602は、後述する本認証システムにおけるクライアント端末101の初期設定処理において、ユーザを認証するために使用するパスワードである。
以下、システムの動作について説明する。
ただし、本生体認証システムを利用するクライアント端末101のユーザは、予め生体認証支援サーバ104にユーザ登録を済ませてユーザIDとユーザPWの発行を受けており、ユーザ情報管理テーブル310には、登録済みのユーザのユーザID601とユーザPW602が記憶されているものとする。
また、オンラインサービスサーバ105を管理する管理者も、予め生体認証支援サーバ104に管理者登録を済ませて初期設定用の管理者IDと管理者PWの発行を受けており、生体認証支援サーバ104の図示しないテーブルには、登録済みの管理者の管理者IDと管理者PWが記憶されているものとする。
さらに、クライアント端末101には予めオフライン拡張プラグイン208がインストールされており、記憶部204にはローカルサーバとローカルDBが作成されているものとする。
【0031】
まず、図7と図8を使用して、本生体認証システムにおける初期設定処理の流れについて説明する。
図7は、オンラインサービスサーバ105の初期設定処理を示すフローチャートである。
オンラインサービスサーバ105の初期設定処理は、オンラインサービスサーバ105の管理者が、生体認証支援サーバ104に、自身が管理するWebアプリケーションのWebアプリURL503とコールバックURL504を登録し、生体認証支援サーバ104からWebアプリID407とWebアプリ鍵408の発行を受ける処理である。
オンラインサービスサーバ105の管理者は、まず、生体認証支援サーバ104の管理者用ページにアクセスして管理者IDと管理者PWを使用してログインする。その後、本生体認証システムにて認証を行うWebアプリケーションの、WebアプリURLとコールバックURLを生体認証支援サーバ104に送信する(ステップ701)。
【0032】
生体認証支援サーバ104は、WebアプリURLとコールバックURLを受信すると、WebアプリIDとWebアプリ鍵を生成する(ステップ702)。
ステップ702で生成したWebアプリIDとWebアプリ鍵、及び、ステップ701で取得したWebアプリURLとコールバックURLを、Webアプリ情報管理テーブル310に記憶する(ステップ703)。
生体認証支援サーバ104は、WebアプリURLのオリジンを、クロスアクセス許可リスト308に追加し、さらに、クライアントバージョン管理ファイル309のバージョン番号を更新する(ステップ704)。
記憶部304から生体認証依頼スクリプト306を取得し、その生体認証依頼スクリプト306と、ステップ702で生成したWebアプリIDとWebアプリ鍵とをオンラインサービスサーバ105へ送信する(ステップ705)。
【0033】
オンラインサービスサーバ105は、WebアプリIDとWebアプリ鍵と生体認証依頼スクリプト306を受信すると、受信したWebアプリIDとWebアプリ鍵を記憶部404に記憶する。
また、オンラインサービスサーバ105の管理者は、認証が完了していないユーザがWebアプリプログラム405を実行した場合に、生体認証依頼スクリプトを含むHTMLページがブラウザに返信されるように、Webアプリプログラムに受信した生体認証依頼スクリプトを組み込む(ステップ706)。
以上が、オンラインサービスサーバ105の初期設定処理である。
【0034】
図8は、クライアント端末101の初期設定処理を示すフローチャートである。
クライアント端末101の初期設定処理は、Webアプリケーションのサービスを受けるユーザが、生体認証支援サーバ104から、自身のユーザIDハッシュ210とユーザ鍵211が組み込まれた生体情報入力装置操作プラグイン209をダウンロードしてインストールし、生体情報テンプレート218を生成して、ローカルDB217に記憶させる処理である。
ユーザは、ブラウザから生体認証支援サーバ上のユーザ管理画面にアクセスし、ユーザIDとユーザPWを入力して送信する(ステップ801)。
生体認証支援サーバ104は、受信したユーザIDとユーザPWの組と、ユーザ情報管理テーブル310に記憶されているユーザID601とユーザPW602の組とを比較することでユーザを認証する。そして、認証に成功した場合は、ランダムなユーザ鍵603と、ユーザIDを引数にハッシュ関数を実行した結果であるユーザIDハッシュ604を生成し、生成したユーザ鍵とユーザIDハッシュを、受信したユーザIDとユーザPWの組に関連付けてユーザ情報管理テーブル310に記憶する(ステップ802)。
【0035】
次に、生体認証支援サーバ104は、ユーザIDハッシュとユーザ鍵を組み込んだ生体情報入力装置操作プラグインを生成する。この処理は、例えば、プラグインのソースコードにユーザIDハッシュとユーザ鍵を記載してコンパイルし、生体情報入力装置操作プラグインのバイトコードを生成するといった方法で行う(ステップ803)。
記憶部304から、生体認証スクリプト305とクロスアクセス許可リスト308を取得し、生体認証スクリプト305とクロスアクセス許可リスト308とステップ803で生成した生体情報入力装置操作プラグインとを、クライアント端末101へ送信する(ステップ804)。
クライアント端末101は、生体認証スクリプト305とクロスアクセス許可リスト308と生体情報入力装置操作プラグインを受信すると、生体認証スクリプト305とクロスアクセス許可リスト308をローカルサーバ214に記憶する。そして、ユーザは、受信した生体認証入力装置操作プラグインをクライアント端末101へインストールする(ステップ805)。
【0036】
生体認証入力装置操作プラグインは、インストール完了直後に生体情報登録プログラム212を実行する。生体情報登録プログラム212は、生体情報入力装置102を起動し、利用者に生体情報の入力を要求する。そして、入力された生体情報から特徴量を抽出し、さらに特徴量をユーザ鍵211で暗号化して生体情報テンプレートを生成し、ローカルDB217へ記憶する(ステップ806)。
以上が、クライアント端末の初期設定処理である。
【0037】
次に、本生体認証システムにおけるユーザ認証処理の流れを説明する。
図9は、認証システム全体の処理を示すフローチャートである。なお、ステップ905〜ステップ907は生体認証依頼スクリプト207の動作である。
ユーザが、ブラウザ205を操作してWebアプリURLにアクセスし、Webアプリプログラム405を呼び出す(ステップ901)。
オンラインサービスサーバ105は、まず、ブラウザのクッキー等を利用してアクセスを受けたユーザが認証済みかどうかをチェックする。認証済みである場合は、クッキーがもつセッション情報でユーザを特定し、直ちにユーザにサービスを提供する。まだ認証されていない場合は、現在時刻を取得し(以降、ここで取得した時刻をWebアプリアクセス時刻と示す)、ステップ903へ進む(ステップ902)。
【0038】
次に、記憶部404からWebアプリID407とWebアプリ鍵408を取得し、ステップ902で生成したWebアプリアクセス時刻と、WebアプリIDとを連結した文字列を生成する。この連結文字列に、さらにWebアプリ鍵でMACを付加し、MAC付Webアプリ情報を生成する(ステップ903)。
生体認証依頼スクリプトを組み込んだHTMLページと、ステップ903で生成したMAC付Webアプリ情報306とを、クライアント端末101へ送信する(ステップ904)。
ブラウザは、生体認証依頼スクリプト207が組み込まれたHTMLページ206とMAC付Webアプリ情報を受信すると、HTMLページをクライアント端末101の出力装置に表示する。出力と同時に、HTMLページ206は、MAC付Webアプリ情報を引数に生体認証依頼スクリプト207を実行する(ステップ905)。
【0039】
生体認証依頼スクリプト207は、オフライン拡張プラグイン208の並列プロセス実行機能を利用して、クロスオリジンアクセスにより生体認証スクリプトを呼び出す。すなわち、生体認証依頼スクリプト207は、新規ワーカを生成し、MAC付Webアプリ情報を引数に、ローカルサーバ内の生体認証スクリプト215を実行する。ここで、後の図10に詳細を説明する生体認証スクリプトは、生体認証支援サーバ104にアクセスし、生体認証支援サーバ104からMAC付コールバック情報を受信する。そして、生体認証依頼スクリプトは、生体認証スクリプトの戻り値としてMAC付コールバック情報を取得する(ステップ906)。
なお、MAC付コールバック情報は、後述する図11の処理で生成される情報であって、コールバックURL504とユーザIDハッシュ604とコールバック情報生成時刻を連結した文字列に、Webアプリ鍵502によるMACが付加された文字列である。
生体認証依頼スクリプトが、ステップ906で取得したMAC付コールバック情報に含まれるコールバックURLへ、ブラウザをリダイレクトする。これにより、オンラインサービスサーバ105へ、MAC付コールバック情報が送信される(ステップ907)。
【0040】
オンラインサービスサーバ105は、MAC付コールバック情報を受信すると、記憶部404からWebアプリ鍵408を取得し、Webアプリ鍵408を使用してMAC付コールバック情報のMAC認証を行う。MAC認証に成功した場合は、ステップ909へ進む。MAC認証に失敗した場合は、ブラウザへユーザ認証が失敗した旨を通知し、直ちに処理を中断して終了する(ステップ908)。
次に、現在時刻を取得し、現在時刻とMAC付コールバック情報に含まれるコールバック情報生成時刻との時間差を算出する。そして、算出した時間差が、予め設定されたコールバックURLの有効時間未満であるかをチェックする。有効時間未満である場合はステップ910へ進む。有効時間以上である場合は、ブラウザへユーザ認証が失敗した旨を通知し、直ちに処理を中断して終了する(ステップ909)。
MAC付コールバック情報に含まれるユーザIDハッシュの情報に基づき、ユーザを特定してWebアプリケーションのサービスを提供する。また、ブラウザに、ユーザ認証が成功済みであることを示す有効期限付きのクッキーを発行する(ステップ910)。
【0041】
次にプログラムの詳細について図を用いて説明する。
まず、生体認証スクリプト215の動作の詳細を図10を使用して説明する。
生体認証スクリプト215は、図9のステップ906で生体認証依頼スクリプト207からMAC付Webアプリ情報を引数に呼び出された後、まず、クロスアクセス許可リスト216の更新チェックを行う。その後、生体情報入力装置操作プラグイン209が内蔵するコールバック情報取得プログラム213を実行する。
まず、クライアントバージョン管理ファイルのURLを指定し、生体認証支援サーバ104に、バージョン番号の取得要求を送信する(ステップ1001)。
生体認証支援サーバ104は、クライントバージョン管理ファイル309に記載された、クロスアクセス許可リスト308のバージョン番号をクライアント端末101へ送信する(ステップ1002)。
【0042】
クライアント端末101は、受信したバージョン番号と、ローカルサーバ214に記憶しているクロスアクセス許可リスト216のバージョン番号とを比較する。バージョン番号が一致していた場合は、直ちにステップ1004へ進む。バージョン番号が異なっていた場合は、生体認証支援サーバ104にクロスアクセス許可リスト308の取得要求を送信し、最新のクロスアクセス許可リストをダウンロードしてローカルサーバに記憶する(ステップ1003)。
この後、並列プロセス実行機能が提供するAPIを利用してワーカの生成元オリジンを取得し、取得したワーカの生成元オリジンが、ローカルサーバ内のクロスアクセス許可リスト216に含まれているかチェックする。
ワーカの生成元オリジンがクロスアクセス許可リスト216に含まれていた場合は、ステップ1005へ進む。含まれていなかった場合は、ブラウザへ認証に失敗した旨を通知して終了する(ステップ1004)。
【0043】
なお、本実施の形態に従い生体認証スクリプトが実行された場合、ワーカの生成元オリジンは、生体認証依頼スクリプト207のオリジン、すなわち、ユーザが利用しようとしているWebアプリケーションのWebアプリURLのオリジンになる。WebアプリURLのオリジンは、オンラインサービスサーバが正しく初期設定された場合、ステップ704でクロスアクセス許可リストに追加されるため、ワーカの生成元オリジンはクロスアクセス許可リストに含まれていることになる。
次に、生体情報入力装置操作プラグインが提供するAPIを介して、MAC付Webアプリ情報を引数にコールバック情報取得プログラム213を実行する。そして、実行結果としてMAC付コールバック情報を取得する(ステップ1005)。
次に、ステップ1005で取得したMAC付コールバック情報を、呼び出し元の生体認証依頼スクリプトに返却し、実行を終了する(ステップ1006)。
【0044】
次に、コールバック情報取得プログラム213とコールバック情報提供Webサービス307の動作の詳細を図11を使用して説明する。
コールバック情報取得プログラム213は、生体認証入力装置102を起動し、ユーザに生体情報の入力を要求する。そして、入力された生体情報から抽出した特徴量と、生体情報テンプレート218をユーザ鍵211で復号した結果とを比較してユーザ認証を行う。
ユーザ認証に成功した場合は、ステップ1102へ進む。認証に失敗した場合は、ブラウザへユーザ認証が失敗した旨を通知し、直ちに処理を中断して終了する(ステップ1101)。
引数で取得したMAC付Webアプリ情報に、ユーザIDハッシュ210を連結した文字列を生成する。この連結文字列に、さらにユーザ鍵211でMACを付加し、MAC付クライアント情報を生成する(ステップ1102)。
ステップ1102で生成したMAC付クライアント情報を引数に、生体認証支援サーバ上のコールバック情報提供Webサービス307を呼び出す(ステップ1103)。
コールバック情報提供Webサービスは、MAC付クライアント情報を受信すると、ユーザ鍵603を使用したMAC認証と、Webアプリ鍵502を使用したMAC認証を行う。どちらのMAC認証にも成功した場合は、ステップ1105へ進む。
いずれかのMAC認証に失敗した場合は、ブラウザへユーザ認証が失敗した旨を通知し、直ちに処理を中断して終了する(ステップ1104)。
【0045】
以下に、本ステップにおけるMAC認証の処理の詳細を説明する。
まず、受信したMAC付クライアント情報に含まれるユーザIDハッシュを取得し、ユーザ情報管理テーブル311から、当該ユーザIDハッシュに関連付けられて記憶されているユーザ鍵603を取得する。そして、取得したユーザ鍵を使用してMAC付クライアント情報のMAC認証を行う。
次に、MAC付クライアント情報に含まれるMAC付Webアプリ情報のMAC認証を行う。MAC付Webアプリ情報に含まれるWebアプリIDを取得し、Webアプリ情報管理テーブル310から、当該WebアプリIDに関連付けられて記憶されているWebアプリ鍵502を取得する。そして、取得したWebアプリ鍵を使用してMAC付Webアプリ情報のMAC認証を行う。
現在時刻(以降、ここで取得した時刻を、コールバック情報生成時刻と示す)を取得し、コールバック情報生成時刻とMAC付Webアプリ情報に含まれるWebアプリアクセス時刻との時間差を算出する。そして、算出した時間差が、予め設定されたMAC付Webアプリ情報の有効時間未満であるかをチェックする。
有効時間未満である場合は、ステップ1106へ進む。有効時間以上である場合は、ブラウザへユーザ認証が失敗した旨を通知し、直ちに処理を中断して終了する(ステップ1105)。
【0046】
この後、受信したMAC付クライアント情報に含まれるWebアプリIDを取得し、Webアプリ情報管理テーブル310から、WebアプリIDに関連付けて記憶されているWebアプリ鍵502とコールバックURL504とを取得する。そして、コールバックURLと、ステップ1104で取得したユーザIDハッシュ604と、ステップ1105で取得したコールバック情報生成時刻とを連結した文字列を生成し、この連結文字列に、さらにWebアプリ鍵でMACを付加してMAC付コールバック情報を生成する(ステップ1106)。
なお、ここでMAC付コールバック情報のフォーマットは、コールバックURLに対してURLパラメータとして、ユーザIDハッシュとコールバック情報生成時刻とMACを渡す形式(例えば、”https://service1.com/callback?usr=8c8cf9ad3b77f23bba308ab61193 &time=20070101136756&sign=732ab8fa38272a6b77f23bf23bba30b3” など)をとるものとする。
ステップ1106で生成されたMAC付コールバック情報を、クライアント端末へ送信する(ステップ1107)。
コールバック情報取得プログラム213は、受信したMAC付コールバック情報を戻り値として呼び出し元の生体認証スクリプト207に返却し、実行を終了する(ステップ1108)。
【0047】
以上、本発明の生体認証システムの実施の形態について説明した。
なお、本発明の実施の形態において、ブラウザにはオフライン拡張プラグインと生体認証入力装置操作プラグインの2つをインストールするものとしたが、同様の機能を実現するものであればこれはひとつのプラグインであってもよい。
例えば、既存のオフライン拡張プラグインに生体情報入力装置を操作する機能を追加したプラグインを作成し、当該プラグインをユーザのクライアント端末に配布する形態であってもよい。
【0048】
また、本発明の実施の形態において、生体情報テンプレート218はローカルDB217に記憶するものとしたが、これはクライアント端末の記憶部に記憶する形態としてもよい。この場合、生体情報入力装置操作プラグインにはクライアント端末の記憶部を操作する機能を持たせ、ステップ806及びステップ1101では、当該機能を用いて記憶部から生体情報テンプレートを読み書きするものとする。
【0049】
また、本発明の実施の形態において、ユーザIDハッシュ210とユーザ鍵211は、ステップ803でサーバが生体情報入力装置操作プラグインに組み込むものとしたが、これは、クライアント端末の記憶部に記憶する形態としてもよい。この場合、生体情報入力装置操作プラグインにはクライアント端末の記憶部を操作する機能と、生体認証支援サーバが使用するものと同じハッシュ関数でユーザIDのハッシュ値を求める機能を持たせ、サーバはステップ803でユーザIDハッシュとユーザ鍵をプラグインに組み込む代わりに、ステップ804でユーザ鍵をクライアント端末に送信し、ステップ806において生体情報登録プログラムは、ユーザに生体情報と共にユーザIDと受信したユーザ鍵の入力を要求し、入力されたユーザ鍵と、入力されたユーザIDから計算したユーザIDハッシュとを、クライアント端末の記憶部に記憶するものとする。そして、ステップ1102では、生体情報入力装置操作プラグインが、クライアント端末の記憶部からユーザIDハッシュとユーザ鍵を読み込むものとする。
【図面の簡単な説明】
【0050】
【図1】本発明に係る生体認証システムの実施の形態を示すシステム構成図である。
【図2】クライアント端末の内部構成を示す機能ブロック図である。
【図3】生体認証支援サーバの内部構成を示す機能ブロック図である。
【図4】オンラインサービスサーバの内部構成を示す機能ブロック図である。
【図5】Webアプリ情報管理テーブルのデータ構成例を示す図である。
【図6】ユーザ情報管理テーブルのデータ構成例を示す図である。
【図7】オンラインサービスサーバの初期設定処理を示すフローチャートである。
【図8】クライアント端末の初期設定処理を示すフローチャートである。
【図9】生体認証依頼スクリプトの動作を含む認証システム全体の処理を示すフローチャートである。
【図10】生体認証スクリプトの処理を示すフローチャートである。
【図11】コールバック情報取得プログラムとコールバック情報提供Webサービスの動作を示すフローチャートである。
【図12】クロスオリジンアクセスの動作を示す概念図である
【符号の説明】
【0051】
101 クライアント端末
102 生体情報入力装置
104 生体認証支援サーバ
105 オンラインサービスサーバ
205 ブラウザ
207 生体認証依頼スクリプト
208 オフライン拡張プラグイン
209 生体情報入力装置操作プラグイン
215 生体認証スクリプト
218 生体情報テンプレート
【特許請求の範囲】
【請求項1】
オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムであって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別するWebアプリ識別子と、前記生体認証依頼スクリプトとを受信して記憶する手段と、
前記クライアント端末が、
前記生体認証支援サーバから、オンラインサービスサーバ及び生体認証支援サーバでユーザを一意に識別するユーザ識別情報と、前記生体情報入力装置操作プラグインと、前記生体認証スクリプトとを受信して、前記記憶部に記憶する手段と、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶する手段と、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスする手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて前記生体認証依頼スクリプトをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、クライアント端末の記憶部に記憶された前記生体認証スクリプトを実行する手段と、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記生体認証支援サーバに、前記ユーザ識別子をパラメータとしてコールバックアドレス情報の取得要求を送信してユーザ識別子を含むコールバックアドレス情報を取得し、ブラウザを取得したコールバックアドレス情報に接続させる手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、コールバックアドレス情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供する手段とを備えることを特徴とする生体認証システム。
【請求項2】
オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムであって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別する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付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供する手段とを備えることを特徴とする生体認証システム。
【請求項3】
オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムであって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信する手段と、
前記生体認証支援サーバが、
オンラインサービスを一意に識別する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付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供する手段とを備えることを特徴とする生体認証システム。
【請求項4】
オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムにおける生体認証方法であって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別するWebアプリ識別子と、前記生体認証依頼スクリプトとを受信して記憶するステップと、
前記クライアント端末が、
前記生体認証支援サーバから、オンラインサービスサーバ及び生体認証支援サーバでユーザを一意に識別するユーザ識別情報と、前記生体情報入力装置操作プラグインと、前記生体認証スクリプトとを受信して、前記記憶部に記憶するステップと、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶するステップと、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスするステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて前記生体認証依頼スクリプトをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、クライアント端末の記憶部に記憶された前記生体認証スクリプトを実行するステップと、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記生体認証支援サーバに、前記ユーザ識別子をパラメータとしてコールバックアドレス情報の取得要求を送信してユーザ識別子を含むコールバックアドレス情報を取得し、ブラウザを取得したコールバックアドレス情報に接続させるステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、コールバックアドレス情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供するステップとを備えることを特徴とする生体認証方法。
【請求項5】
オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムにおける認証方法であって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別する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付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供するステップとを備えることを特徴とする生体認証方法。
【請求項6】
オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムにおける認証方法であって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信するステップと、
前記生体認証支援サーバが、
オンラインサービスを一意に識別する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付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供するステップとを備えることを特徴とする生体認証方法。
【請求項1】
オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムであって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別するWebアプリ識別子と、前記生体認証依頼スクリプトとを受信して記憶する手段と、
前記クライアント端末が、
前記生体認証支援サーバから、オンラインサービスサーバ及び生体認証支援サーバでユーザを一意に識別するユーザ識別情報と、前記生体情報入力装置操作プラグインと、前記生体認証スクリプトとを受信して、前記記憶部に記憶する手段と、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶する手段と、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスする手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて前記生体認証依頼スクリプトをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、クライアント端末の記憶部に記憶された前記生体認証スクリプトを実行する手段と、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記生体認証支援サーバに、前記ユーザ識別子をパラメータとしてコールバックアドレス情報の取得要求を送信してユーザ識別子を含むコールバックアドレス情報を取得し、ブラウザを取得したコールバックアドレス情報に接続させる手段と、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、コールバックアドレス情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供する手段とを備えることを特徴とする生体認証システム。
【請求項2】
オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムであって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別する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付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供する手段とを備えることを特徴とする生体認証システム。
【請求項3】
オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムであって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信する手段と、
前記生体認証支援サーバが、
オンラインサービスを一意に識別する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付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供する手段とを備えることを特徴とする生体認証システム。
【請求項4】
オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムにおける生体認証方法であって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別するWebアプリ識別子と、前記生体認証依頼スクリプトとを受信して記憶するステップと、
前記クライアント端末が、
前記生体認証支援サーバから、オンラインサービスサーバ及び生体認証支援サーバでユーザを一意に識別するユーザ識別情報と、前記生体情報入力装置操作プラグインと、前記生体認証スクリプトとを受信して、前記記憶部に記憶するステップと、
前記クライアント端末が、
前記生体情報入力装置を起動してユーザの生体情報テンプレートを生成し、生成した生体情報テンプレートを記憶部に記憶するステップと、
前記クライアント端末が、
ブラウザを介して前記オンラインサービスサーバが提供するオンラインサービスのアドレス情報にアクセスするステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて前記生体認証依頼スクリプトをブラウザに送信し、ブラウザ上で前記生体認証依頼スクリプトを実行させて、クライアント端末の記憶部に記憶された前記生体認証スクリプトを実行するステップと、
前記クライアント端末が、
前記生体認証スクリプトの実行を受け、前記生体情報入力装置を動作させてユーザの生体情報を取得し、取得した生体情報と記憶部に記憶された生体情報テンプレートとを比較することでユーザを認証し、認証が成功した場合に、前記生体認証支援サーバに、前記ユーザ識別子をパラメータとしてコールバックアドレス情報の取得要求を送信してユーザ識別子を含むコールバックアドレス情報を取得し、ブラウザを取得したコールバックアドレス情報に接続させるステップと、
前記オンラインサービスサーバが、
ブラウザからのアクセスを受けて、コールバックアドレス情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供するステップとを備えることを特徴とする生体認証方法。
【請求項5】
オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムにおける認証方法であって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信し、前記生体認証支援サーバから、オンラインサービスを一意に識別する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付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供するステップとを備えることを特徴とする生体認証方法。
【請求項6】
オンラインサービスを提供するオンラインサービスサーバと、生体情報入力装置と記憶部とブラウザスクリプトを介して前記記憶部を操作する機能をもつブラウザとを備えるクライアント端末と、前記ブラウザにブラウザスクリプトを介して生体情報入力装置を操作する機能を追加する生体情報入力装置操作プラグインと、前記生体情報入力装置操作プラグインが提供する機能を利用してクライアント端末に生体認証を実行させるための手順を記載した生体認証スクリプトと、前記生体認証スクリプトを呼び出す生体認証依頼スクリプトとを記憶する生体認証支援サーバとで構成される生体認証システムにおける認証方法であって、
前記オンラインサービスサーバが、
前記生体認証支援サーバへ、自身が提供するオンラインサービスのアドレス情報と、生体認証の成功後に前記ブラウザからのサービス要求を受け付けるコールバックアドレス情報とを送信するステップと、
前記生体認証支援サーバが、
オンラインサービスを一意に識別する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付コールバック情報に含まれるユーザ識別子に基づきユーザを特定して、オンラインサービスを提供するステップとを備えることを特徴とする生体認証方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2009−223638(P2009−223638A)
【公開日】平成21年10月1日(2009.10.1)
【国際特許分類】
【出願番号】特願2008−67757(P2008−67757)
【出願日】平成20年3月17日(2008.3.17)
【出願人】(000233055)日立ソフトウエアエンジニアリング株式会社 (1,610)
【Fターム(参考)】
【公開日】平成21年10月1日(2009.10.1)
【国際特許分類】
【出願日】平成20年3月17日(2008.3.17)
【出願人】(000233055)日立ソフトウエアエンジニアリング株式会社 (1,610)
【Fターム(参考)】
[ Back to top ]