(57)【要約】【課題】セキュリティを向上可能な半導体素子および生体認証方法、生体認証システム、携帯端末を提供する。【解決手段】半導体素子あるいは携帯端末は、生体認証処理を実行するために用いられる利用者の生体情報パターンと生体認証処理の失敗可能回数を表す残り試行回数とを格納し、生体認証処理の一部を外部装置で実行するために用いられる処理データを外部装置に送信し、外部装置と通信を開始してから処理データを外部装置に出力するまでの間に残り試行回数を所定の値減算する。【選択図】図1
2010092250.tif 000002
【特許請求の範囲】
【請求項１】
外部装置と通信して生体認証処理を行う半導体素子であって、
前記外部装置と通信を行う通信部と、
生体認証処理を実行するために用いられる利用者の生体情報パターンと、前記生体認証処理の失敗可能回数を表す残り試行回数と、を格納するメモリと、
生体認証処理を行う演算処理部と、を備え、
前記通信部は、前記生体認証処理の一部を前記外部装置で実行するために用いられる処理データを前記外部装置に送信し、
前記演算処理部は、前記通信部を用いて前記外部装置と通信を開始してから前記処理データを前記外部装置に出力するまでの間に、前記残り試行回数を所定の値減算することを特徴とする半導体素子。
【請求項２】
請求項１記載の半導体素子において、
前記残り試行回数が０ならば、前記処理データを前記外部装置に送信しないことを特徴とする半導体素子
【請求項３】
請求項１に記載の半導体素子は、前記外部装置が前記処理データを用いて処理を行った処理結果を前記通信部により受信し、
前記演算処理部において前記処理結果を用いて生体認証処理を行い、前記生体認証処理に成功した場合は、前記残り試行回数を所定の値だけ加算、あるいは初期値に変更することを特徴とする半導体素子。
【請求項４】
請求項３記載の半導体素子において、
前記メモリは、前記外部装置と通信を開始してから前記処理データを前記外部装置に送信するまでの間に、前記残り試行回数を減算しているか否かを示す第1のデータを格納し、
前記演算処理部は、前記処理結果を用いて生体認証処理を行い、前記生体認証処理に失敗した場合に、前記第1のデータが前記残り試行回数を減算していないことを示しているときは前記残り試行回数を所定の値だけ減算し、前記第1のデータが前記残り試行回数を減算していることを示しているときは前記残り試行回数を減算せずに前記第1のデータを前記残り試行回数を減算していないことを示すように変更することを特徴とする半導体素子。
【請求項５】
請求項４記載の半導体素子において、
前記演算処理部は、前記第1のデータが前記残り試行回数を減算していないことを示しており、かつ、前記残り試行回数が０ならば、前記生体認証処理を実行しないことを特徴とする半導体素子。
【請求項６】
請求項４記載の半導体素子において、
前記演算処理部は、前記残り試行回数が０であっても、前記第１のデータが前記残り試行回数を減算していることを示している場合は、前記生体認証処理を実行することを特徴とする半導体素子。
【請求項７】
請求項１に記載の半導体素子において、
前記処理データは、前記演算処理部において生体認証処理を行う前に前記外部装置で生体認証処理の一部を実行するために用いられる前処理データであり、
前記通信部は、前記前処理データを用いて補正された照合パターンを前記処理結果として前記外部装置から受信し、
前記演算処理部は、前記照合パターン及び前記生体情報パターンを用いて生体認証処理を実行することを特徴とする半導体素子。
【請求項８】
請求項１に記載の半導体素子において、
前記処理データは、前記通信部が前記外部装置から照合パターンを受信した後に、前記演算処理部において前記照合パターンおよび前記登録パターンを用いて生成した中間処理要求データであり、
前記通信部は、前記外部装置から前記処理結果として中間処理結果データを受信し、
前記演算処理部は、前記中間処理結果データを用いて生体認証処理を実行することを特徴とする半導体素子。
【請求項９】
請求項１記載の半導体素子において、
前記演算処理部は、前記登録パターンを前記メモリに登録する登録処理を行う機能を有し、
前記メモリは、前記半導体素子と前記外部装置との間の登録処理の実行を認証する認証処理の成否を示す第２のデータを格納し、
前記演算処理部は、前記第２のデータが前記認証処理が成功したことを示している場合は、前記残り試行回数を減算しないことを特徴とする半導体素子。
【請求項１０】
外部装置と通信可能な半導体素子において生体認証を行う生体認証方法であって、
生体認証処理を実行するために用いられる利用者の生体情報パターンと前記生体認証処理の失敗可能回数を表す残り試行回数とを格納し、
前記生体認証処理の一部を前記外部装置で実行するために用いられる処理データを前記外部装置に送信し、
前記外部装置と通信を開始してから前記処理データを前記外部装置に出力するまでの間に前記残り試行回数を所定の値減算し、
前記外部装置が前記処理データを用いて処理を行った処理結果を受信し、
受信した前記処理結果を用いて生体認証処理を行い、
前記生体認証処理に成功した場合は、前記残り試行回数を所定の値だけ加算、あるいは初期値に変更することを特徴とする生体認証方法。
【請求項１１】
半導体素子と外部装置との間で通信して生体認証処理を行う生体認証システムであって
前記半導体素子は、前記外部装置と通信を行う通信部と、生体認証処理を実行するために用いられる利用者の生体情報パターンと前記生体認証処理の失敗可能回数を表す残り試行回数とを格納するメモリと、生体認証処理を行う演算処理部とを備え、
前記通信部は、前記生体認証処理の一部を前記外部装置で実行するために用いられる処理データを前記外部装置に送信し、
前記外部装置は前記処理データを用いて処理を行い、処理結果を前記半導体素子に送信し、
前記通信部は前記処理結果を受信し、
前記演算処理部は、受信した前記処理結果を用いて生体認証処理を行い、前記生体認証処理に成功した場合は、前記残り試行回数を所定の値だけ加算、あるいは初期値に変更することを特徴とする生体認証システム。
【請求項１２】
外部装置と通信して生体認証処理を行う携帯端末であって、
前記外部装置と通信を行う通信部と、
生体認証処理を実行するために用いられる利用者の生体情報パターンと、前記生体認証処理の失敗可能回数を表す残り試行回数と、を格納するメモリと、
生体認証処理を行う演算処理部と、を備え、
前記通信部は、前記生体認証処理の一部を前記外部装置で実行するために用いられる処理データを前記外部装置に送信し、
前記演算処理部は、前記通信部を用いて前記外部装置と通信を開始してから前記処理データを前記外部装置に出力するまでの間に、前記残り試行回数を所定の値減算することを特徴とする携帯端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生体認証を行う技術に関する。
【背景技術】
【０００２】
特許文献１には、スマートカードにバイオメトリック・テンプレートを記憶し、このテンプレートを利用して情報や部屋などへのアクセスを制限する方法が開示されている。具体的には、セキュリティを強化しつつ、処理能力が限定されたカードを用いてバイオメトリック・チェックを可能にするために、カード内だけで認証に使用される個人部分と、外部プロセッサに送られて認証に使用される公開部分に分割して、バイオメトリック・テンプレートをスマートカードに記憶する。
【０００３】
【特許文献１】特表2004-506253号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
一般的に、生体情報を用いた認証は、暗証番号などによる認証に比べてセキュリティが高いが、模擬指紋や静脈を作成することにより不正アクセスを試みる者がいないとは限らない。このような場合に、認証トライ回数が制限されていないとすると、少しずつ模擬指紋や静脈を変更されて、不正アクセスを許してしまう可能性がある。トライ回数の制限については、ATM(自動現金預け入れ装置)での暗証番号の入力に用いられているが、カード内と外部装置で生体情報を用いた認証処理を分担する場合、外部装置自体が不正にデータ取得することを目的とした機器である場合もありえる。そのため、外部装置で認証が失敗された場合でも、カードにおいていかにトライ回数の制限を行うかについて工夫することが求められる。このような認証処理の制限回数について、特許文献１には一切記載されていない。
【０００５】
本発明の目的は、セキュリティを向上可能な半導体素子および生体認証方法、生体認証システム、携帯端末を提供することにある。
【課題を解決するための手段】
【０００６】
本発明にかかる生体認証方法は、生体認証処理を実行するために用いられる利用者の生体情報パターンと生体認証処理の失敗可能回数を表す残り試行回数とを格納し、生体認証処理の一部を外部装置で実行するために用いられる処理データを外部装置に送信し、外部装置と通信を開始してから処理データを外部装置に出力するまでの間に残り試行回数を所定の値減算する。
【発明の効果】
【０００７】
本発明によれば、セキュリティを向上可能な半導体素子および生体認証方法、生体認証システム、携帯端末を提供することができる。
【発明を実施するための最良の形態】
【０００８】
図１は、生体認証システムの一例を示す構成図である。ICカード100は、利用者の指紋パターンや静脈パターンなどの生体情報10に関するデータである生体情報データを格納し、生体認証を行う半導体素子（以下ICチップと称する）110を有している。また、本例ではICチップ110がICカード100に搭載されているが、これに限定するものではなく、携帯電話等の携帯端末に搭載されていても良い。生体認証装置200は利用者の生体情報10を取得し、ICチップ110と通信することで生体認証を行う。生体認証装置200は、例えば、入退場管理を行う装置や金融取引を行う窓口端末やATM(自動現金預け入れ装置)などである。しかし、これらに限定するものではなく、PCなどの他の装置に適用しても良い。なお、生体情報データは、指紋パターンや静脈パターンに限られず、掌紋パターンや声紋パターンなど、他の生体情報に関するデータであっても良い。
【０００９】
次に、ICチップ110の内部構成について説明する。通信部111は、例えば国際標準規格であるISO/IEC 7816で規定されている接触通信やISO/IEC14443で規定されている非接触通信により外部と通信を行う。プログラム格納メモリ112は、ICチップ110が保持するプログラムを永続的に格納する機能を有し、ROM(Read Only Memory)や EEPROM(Electrical Erasable Programmable Read Only Memory)等の不揮発性半導体メモリから構成される。不揮発性データ格納メモリ113は、データの書込みが可能であり、ICチップ110への電力供給が中断しても任意のデータを保持し続けるメモリであり、EEPROM等の不揮発性半導体メモリから構成される。揮発性データ格納メモリ114はRAM(Random Access Memory) 等の揮発性半導体メモリから構成され、データの書込みが可能であるが、一時的にデータを格納するものである。そのため、ICチップ110への電力供給が中断すると、揮発性データ格納メモリ114に書き込まれたデータは消去される。
【００１０】
演算処理部115はICチップ110全体の制御を司る。例えば、通信部111により制御コマンドを受信すると、演算処理部115は、プログラム格納メモリ112に格納しているプログラムに基づいて、受信した制御コマンドに応じた処理を行い、対応するレスポンスを通信部111経由で外部に送信する処理を実行する。
【００１１】
生体認証装置200の内部構成について説明する。ICチップ通信部201は、例えば国際標準規格であるISO/IEC 7816で規定されている接触通信やISO/IEC14443で規定されている非接触通信によりICチップ110等と通信する。メモリ202は生体認証装置200を制御するプログラムやデータを格納する機能を有し、ハードディスクや半導体メモリ等から構成される。生体センサ203は利用者の生体情報を読取る機能を有する。ユーザインタフェース部204は、利用者に対して画像や文字等の視覚情報あるいは音声情報を出力する出力機能と、利用者が必要な情報を入力することを可能にする入力機能を有する。出力機能は例えば液晶ディスプレイやスピーカにより構成され、入力機能は例えばキーボードやタッチパネルにより構成される。外部通信部205は、他の装置やホストサーバーと有線あるいは無線で通信を行う機能を有し、例えばLAN（Local Area Network）等の構内通信網、電話やインターネット等の公衆回線網、あるいは専用の回線網に接続する。演算処理部206は、生体認証装置200全体の制御を司り、メモリ202に格納しているプログラムおよびデータに基づいて生体認証処理を実施する。  次に、ICチップ110が保持するプログラムおよびデータの構成について説明する。
【００１２】
プログラム格納メモリ112は、生体認証プログラム121を格納している。生体認証プログラム121は、ICチップ110を用いた生体認証処理を実行するために使用するアプリケーションプログラムである。なお、図示していないが、プログラム格納メモリ112には、生体認証プログラム121以外に、例えばクレジット決済等の金融取引を行うプログラムなど、他のアプリケーションプログラムを格納していても良い。また、プログラム格納メモリ112には、実行するアプリケーションプログラムの選択および実行中のアプリケーションプログラムの管理を行うICチップ用オペレーティングシステムを格納することが望ましい。ICチップ用オペレーティングシステムとしては、例えばMULTOSやJava（登録商標） Cardを用いることが考えられる。  不揮発性データ格納メモリ113には、生体認証プログラム121に基づいて、認証鍵131、登録鍵132、生体認証閾値133、登録パターン134、前処理データ135、残り試行回数データ136などの不揮発性データが格納されている。認証鍵131は、ICチップ110と生体認証装置200との間で、機器認証および暗号通信を行うための鍵データである。登録鍵132は、ICチップ110に登録パターン134と前処理データ135を登録するために必要な機器認証処理を行うために用いる鍵データである。なお、認証鍵131と登録鍵132は共通鍵暗号方式の鍵データであっても、公開鍵暗号方式の鍵データであっても良い。生体認証閾値133はICチップ110の内部で生体認証の成否を判断する際に用いられる閾値である。
【００１３】
登録パターン134は、ICチップ110に登録されている利用者の生体情報データであり、登録後はICチップ110の外部に出力しないように演算処理部115により管理される。
【００１４】
前処理データ135は、生体認証装置200が生体認証の前処理を行うために用いられる読み出し可能なデータであり、登録パターン134と対にしてICチップ110に登録される。ここで、前処理とは、ICチップ110で生体認証処理を行う前に、生体認証装置200で照合パターンの位置補正処理など、生体認証処理の一部を行うものである。前処理データ135は、例えば登録パターン134の一部分のデータや、指紋のうずまきの中心座標値など、登録パターンの基準座標値に関するデータであり、生体認証装置200が生成する照合パターンの位置補正処理などに用いられる。
【００１５】
残り試行回数データ136は、ICチップ110で実行する生体認証処理の失敗をあと何回許すかを表すデータである。残り試行回数データ136として、例えば３回などの所定の値（初期値）を設定しておき、演算処理部115は、生体認証処理が失敗するたびに値を減算し、もし値が０となってしまった場合は、以降の生体認証処理を実行不可にする。
【００１６】
揮発性データ格納メモリ113には、認証フラグ141、登録フラグ142、減算フラグ143、および照合パターン144が格納されている。これらのデータは揮発性データであり、生体認証プログラム121に基づいて、演算処理部115により管理される。
【００１７】
認証フラグ141は認証鍵131を用いた機器認証の結果を表すフラグである。本例では、認証フラグ141が「ON」であれば、認証鍵131を用いた機器認証が成功したことを表し、「OFF」であれば認証鍵131を用いた機器認証が未実施あるいは失敗したことを表す。登録フラグ142は登録鍵132を用いた機器認証の結果を表すフラグである。本例では、登録フラグ142が「ON」であれば、登録鍵132を用いた機器認証が成功したことを表し、「OFF」であれば登録鍵132を用いた機器認証が未実施あるいは失敗したことを表す。減算フラグ143は、生体認証装置200に前処理データを送信する前に残り試行回数136を減算したかどうかを表すフラグである。本例では、減算フラグ143が「ON」であれば、残り試行回数136を減算していることを表し、「OFF」であれば残り試行回数136を減算していないことを表す。
【００１８】
なお、認証フラグ141、登録フラグ142、減算フラグ143の初期値はそれぞれ「OFF」とする。また、フラグは「ON」「OFF」に限らず、他のデータを用いて機器認証の結果や減算したかどうかを示すようにしても良い。
【００１９】
照合パターン144は、生体認証装置200により生成された生体情報データであり、ICチップ110で生体認証を実施する時に用いられる。照合パターン144はICチップ110で生体認証を行うために一時的に保持しておくデータであり、生体認証が終了すると削除することが望ましい。
【００２０】
次に、ICチップ110と生体認証装置200の間で行われる生体認証処理の一例を図２を用いて説明する。図２Ａは、生体認証装置200が前処理データ135を取得するまでの処理フロー例であり、図２Ｂは生体認証装置200が前処理データ135を取得した後の生体認証処理フロー例である。以下の処理は、不揮発性データ格納メモリ113およびメモリ202に格納されたプログラムに基づき、演算処理部115および演算処理部206によりそれぞれ実行される。
【００２１】
生体認証装置200は、ICチップ110が搭載されたICカード100が挿入されると、ICチップ110に生体認証プログラム121の起動要求を送信し、ICチップ110から生体認証プログラムの起動処理結果を取得する(ステップS1000)。なお、ICチップ110が携帯端末に搭載されている場合には、生体認証装置200が携帯端末から所定の信号を受信したり、携帯端末が生体認証装置200の所定の場所に設置されたりした場合に、生体認証装置200は起動要求を送信する。
【００２２】
ICチップ110は、生体認証装置200から生体認証プログラム起動要求を受信すると、生体認証プログラム121の起動処理を行った後、起動処理結果を生体認証装置200に送信する(ステップS1001)。なお、生体認証プログラム121の起動処理を行うとともに、必要に応じて初期化処理を行っても良い。
【００２３】
生体認証装置200は、起動処理結果を受信すると、機器認証処理を行うためにICチップ110に機器認証開始要求を送信し、ICチップ110から機器認証結果を取得する(ステップS1100)。ここで、生体認証装置200のメモリ202には認証鍵131と対になる鍵データを格納しておき（図示せず）、この鍵データを用いてICチップ110との機器認証処理を実行する。また、機器認証処理の中で、以降の通信で送受信するデータを暗号化するために一時的に用いる鍵データを共有するようにしてもよい。この鍵データは、認証鍵から生成したものでも良いし、ランダムなものであっても良い。また、ICチップ110と生体認証装置200の間で互いに鍵データを送信しても良いし、一方から送信するようにしても良い。なお、機器認証に用いる暗号アルゴリズム、および鍵データの共有アルゴリズムは限定せず、どのようなアルゴリズムを用いても良い。
【００２４】
ICチップ110は、生体認証装置200から機器認証開始要求を受信すると、 認証フラグ141を「OFF」にしてから、認証鍵131を用いた機器認証処理を実行する（ステップＳ1101）。機器認証が成功したかどうか判定し（ステップＳ1102）、機器認証が成功したと判定した場合は認証フラグ141を「ＯＮ」にし（ステップS1103）、結果を生体認証装置200に送信する。一方、機器認証が失敗したと判定した場合、エラー処理を行い、認証フラグを「ＯＦＦ」のままで、処理を終了する（ステップＳ1104）。
ここで、ステップS1104、S1207、S1508におけるエラー処理とは、例えば、エラーログをICチップ110に保存することや、エラーコードを生体認証装置200に送信することである。
【００２５】
生体認証装置200は、ICチップ110から機器認証成功を示す結果を受信すると、ICチップ110に前処理データ取得要求を送信し、ICチップ110から前処理データ135を取得する(ステップS1200)。ここで前処理データ135は、認証鍵131あるいは機器認証処理で生成した一時的な鍵データで暗号化されており、生体認証装置200は取得した前処理データ135の復号処理を行う。このように暗号化してICチップ110から送信することにより、通信路上を流れる前処理データ135を保護することができる。
【００２６】
ICチップ110は、生体認証装置200から前処理データ取得要求を受信すると、認証フラグ141の「ON」「OFF」を判定する（ステップS1201）。 認証フラグ141が「OFF」の場合、機器認証が未実施あるいは失敗しているので、エラー処理を行う（ステップS1207）。認証フラグ141が「ON」の場合、減算フラグ143の「ON」「OFF」を判定する（ステップS1202）。
【００２７】
減算フラグ143が「ON」の場合は既に残り試行回数136を減算しているのでステップS1206に進み、前処理データ135を認証鍵131あるいは認証鍵131から生成した一時的な鍵データで暗号化し、生体認証装置200に送信する。一方、減算フラグ143が「OFF」の場合は残り試行回数136を減算していないので、残り試行回数136の値を判定し（ステップS1203）、残り試行回数136が０ならば、生体認証処理の実行は不可であるとしてステップS1207に進み、エラー処理を行った後に処理を終了し、生体認証装置200に前処理データ135は送信しない。一方、残り試行回数136が０より大きければ、生体認証処理の実行は可能であるとしてステップS1204に進む。ステップS1204では、残り試行回数136を１減算した後、減算フラグ143を「ON」に設定し（ステップS1205）、前処理データ135を生体認証装置200に送信する（ステップS1206）。
【００２８】
このように、ICチップ110で生体認証処理を失敗したかどうかにかかわらず、生体認証装置200に前処理データ135を送信する際に残り試行回数136を減算することにより、不正に何回も前処理データ135が取得されてしまうことを防止し、セキュリティを向上することができる。
【００２９】
生体認証装置200は、前処理データ135を取得すると、生体センサ203を用いて利用者の生体情報を取得する(ステップS1300)。取得した利用者の生体情報と、ICチップ110から取得した前処理データ135を用いて生体認証の前処理を行い、照合パターン144を生成する(ステップS1400)。ステップS1400において、利用者の生体情報が正しく取得できなかった等の理由により、前処理を失敗した場合、生体認証装置200は照合パターン144の送信を行わずに、ステップS1600に進む。
【００３０】
生体認証装置200は、前処理に成功すると、ICチップ110に照合パターン144を送信する(ステップS1500)。ここで照合データ144は、認証鍵131あるいは機器認証処理で生成した一時的な鍵データで暗号化してICチップ110に送信する。これにより、通信路上を流れる照合データ144を保護する。
【００３１】
ICチップ110は生体認証装置200から照合パターン144を受信すると、認証フラグ141の状態を判定し（ステップS1501]）、認証フラグ141が「ON」であれば、機器認証に成功したと判断しステップS1502に進み、認証フラグ141が「OFF」であれば、機器認証が未実施あるいは失敗したと判断しステップS1508に進む。
【００３２】
ステップS1502において、減算フラグ143の状態を判定し、減算フラグ143が「ON」であれば、既に残り試行回数136を減算しているので、残り試行回数136のチェックを行わずにステップS1504に進む。一方、減算フラグ143が「OFF」であれば、残り試行回数136の判定を大行い（ステップS1503）、残り試行回数136が０ならば、生体認証処理の実行は不可と判断し、エラー処理を実行する（ステップS1508）。エラー処理の際に、ICチップ110の使用ができないようにする処理を行うことが望ましい。一方、残り試行回数136が０より大きければ、生体認証処理の実行は可能と判断し、ステップS1504に進む。
【００３３】
このように、ステップS1201におけるフラグの状態確認に追加して、ステップS1501において認証フラグの確認を行うことにより、例えばステップS1201等の処理を通ることなく、不正な装置から照合パターンが送信されてきた場合であっても、認証処理の実行を防止することができる。なお、ステップS1201の処理を行ってから、例えば、5分以内などの所定時間内であればステップS1501の処理を省略するように制御しても良い。
【００３４】
ステップS1504における生体認証処理の一例を図３を用いて説明する。まず、演算処理部115は、ICチップ110不揮発性データ格納メモリ113に予め保持されている登録パターン134と、生体認証装置200からから取得した照合パターン144を、所定のアルゴリズムを用いて比較し、不一致度を計算する(ステップS101)。次に演算処理部115は、ステップS101で生成した不一致度と生体認証閾値133を比較する(ステップS102)。不一致度が生体認証閾値133より小さければ生体認証は成功となり、そうでなければ生体認証は失敗となる。本例では、登録パターン134と照合パターン144の不一致度を計算しているが、一致度を計算しても良い。この場合、一致度が生体認証閾値133より大きければ生体認証は成功となり、一致度が生体認証閾値133以下であれば生体認証は失敗とする。
【００３５】
生体認証処理を実行し（ステップS1504）、認証に成功すると残り試行回数136を初期値に戻す（ステップS1505）。なお、初期値に戻さずに、残り試行回数136が初期値を越えない範囲で、所定の値だけ加算するようにしても良い。
【００３６】
一方、生体認証処理に失敗した場合、残り試行回数136の減算処理を行うために減算フラグ143をチェックする（ステップS1506）。もし減算フラグ143が「ON」なら、既に残り試行回数136を減算しているので、減算処理は行わずに、エラー処理を行う（ステップS1508）。減算フラグ143が「OFF」ならば、残り試行回数136を１減算し（ステップS1507）、エラー処理を行う（ステップS1508）。残り試行回数136が減算されて０になった場合には、ICチップ110の使用ができないようにする処理を行うことが望ましい。
【００３７】
ステップS1505あるいはステップ1508の処理の後、減算フラグ143を「OFF」に設定し（ステップS1509）、生体認証装置200に生体認証結果を返信する。ここで、ステップS1505を実行した場合は生体認証結果として「成功」を送信し、ステップS1508を実行した場合は生体認証結果として「失敗」を送信する。このように、認証に失敗した場合であっても減算フラグ143を「OFF」にすることにより、生体認証に成功しない限りは、再度前処理データ135を送信する度に残り試行回数136を減算していき、不正に何回も前処理データが取得されることを防止することができる。
【００３８】
生体認証装置200はICチップ110から生体認証結果を取得した後、ユーザインタフェース部204を介してユーザにより再度生体認証の実行が選択された場合（ステップS1600）、ステップS1300に戻る。
【００３９】
以上説明したように、機器認証に成功しなければ、前処理データ135の出力処理および生体認証処理を実行しないように制御することにより、セキュリティを向上することができる。また、ICチップ110は、前処理データ135を出力する場合に残り試行回数136を減算するため、生体認証装置200が前処理に失敗し、ICチップ110内部での生体認証処理が実行されなかった場合でも、残り試行回数136を減算することが可能になる。なお、ICチップ110からの前処理データ135の読み出しを実施した後に、ICチップ110内部での生体認証処理を繰り返し実行する場合でも、生体認証が失敗する度に、試行回数136を減算していくことが可能になる。
【００４０】
ここで、攻撃者がICチップ110に対して、不正な生体情報を用いた生体認証を繰り返し実行する場合を考える。この場合、ICチップ110が受信した照合パターンが不正なものであり、ステップS1500の生体認証処理で失敗したとしても、ICチップ110は残り試行回数136を減算する。このため、不正な生体情報を用いた攻撃を繰り返し実行すると、いずれは残り試行回数136が０となり、前処理データ135の出力とICチップ110を用いた生体認証処理を不可にすることが出来る。したがって、このような繰り返し攻撃を無制限に実行することを防止し、セキュリティを向上する事が可能になる。また、前述のように、生体認証に失敗したにもかかわらず、不正に何回も前処理データが取得されてしまうことを防止することができる。なお、図２の処理フローに追加して、ICチップ110が前処理データを送信してから所定時間以内に照合パターンを受信しない場合には、残り試行回数を減算するようにしても良い。
【００４１】
なお、本例では、ICチップ110は前処理データ取得要求を受信すると、残り試行回数136を減算しているが、ICチップ110から前処理データ135を出力する前であれば、他のタイミングで残り試行回数136を減算しても良い。例えば、相互認証処理が成功したら直ちに、残り試行回数136を減算しても良い。
【００４２】
また、図２の例では、生体認証装置200は前処理データを取得処理（ステップS1200）を実行してから、生体センサ203を用いて利用者の生体情報を取得する処理(ステップS1300)を実行しているが、ステップS1200とステップS1300を実行する順番を入れ替えても良い。
【００４３】
次に、図４を用いて、登録パターン134と前処理データ135をICチップ110に登録する生体情報登録処理について説明する。この処理は、生体認証処理の実行に先立って行われる。なお、図２の処理と同じものについては、同じ符号をつけ、説明を省略する。
【００４４】
ICチップ110への生体情報登録処理が、自由に実行できてしまうと、ICチップ110の利用者では無い第三者の生体情報を登録するといった、なりすましが行われる可能性がある。このため、本処理を行う生体認証装置200は、銀行の窓口などに設置され、ICチップ100に生体情報を登録する権限を有している担当者であるオペレータが直接あるいは遠隔で操作されることが望ましい。また、本例では、生体認証処理に用いられる生体認証装置200を用いて、生体情報登録処理を行っているが、これに限定するものではなく、別の装置を用いて登録処理を行うようにしても良い。
【００４５】
まず、オペレータが、身分証明証の提示など所定の手段で利用者が正当であることを確認した上で、登録パターン134等がメモリに格納されていないICカード100を生体認証装置200に挿入すると、生体認証プログラムの起動および機器認証処理が実行される（ステップS1000、S1001、S1100〜S1104）。なお、オペレータが生体認証装置200を遠隔で操作している場合、例えば生体認証装置200にカメラを搭載し、カメラで撮影した利用者の顔画像や身分証明書により、利用者が正当であるかどうかを判断する。
【００４６】
その後、生体認証装置200は、登録鍵132を用いた機器認証処理を行うためICチップ110に機器認証開始要求を送信し、ICチップ110から機器認証結果を取得する(ステップS2200)。ここで、生体認証装置200のメモリ202には登録鍵132と対になる鍵データを格納しておくことで、生体情報登録のための機器認証処理を実施できるようにしておく。なお、機器認証に用いる暗号アルゴリズムは限定せず、どのようなアルゴリズムを用いても良い。
【００４７】
ICチップ110は、生体認証装置200から登録鍵132を用いた機器認証開始要求を受信すると、登録フラグ142を「OFF」にし、登録鍵132を用いた機器認証処理を実行する（ステップS2202）。
機器認証が成功した場合は登録フラグ142を「ON」にし（ステップS2203）、失敗した場合はエラー処理を実行する（S2204）。
【００４８】
エラー処理を行った場合、登録フラグ142は「OFF」のままとなる。なお、ステップS2204、S2404、S2505におけるエラー処理とは、ステップS1104等のエラー処理と同様に、例えば、エラーログをICチップ110に保存することや、エラーコードを生体認証装置200に送信することである。しかし、これに限定するものではなく、他の処理を行っても良い。
【００４９】
生体認証装置200は、生体センサ203を用いて利用者の生体情報を取得し、前処理データ135および登録パターン134を生成する（ステップS2300）。生体認証装置200は、前処理データ135および登録パターン134を生成すると、ICチップ110に前処理データ135を送信し、ICチップ110から登録処理結果を取得する(ステップS2400)。
【００５０】
ICチップ110は、前処理データ135を受信すると、認証フラグ141および登録フラグ142の状態を判断し（ステップS2401、S2402）、いずれもが「ON」である場合は受信した前処理データ135を、認証鍵131あるいは機器認証処理で生成した一時的な鍵データを用いて復号化し、不揮発性データ格納メモリ113に保存する（ステップS2403）。一方、いずれかのフラグが「OFF」の場合にはエラー処理を行う（S2404）。
【００５１】
生体認証装置200は、登録処理結果を取得すると（ステップS2400）、ICチップ110に登録パターン134を送信し、ICチップ110から登録処理結果を取得する(ステップS2500)。
【００５２】
なお、ステップS2400において前処理データ135を送信する場合や、ステップS2500において登録パターン134を送信する場合、機器認証処理におけるデータの送受信と同様に、鍵データを用いて暗号化して送信する。なお、暗号化に使用される鍵データは、機器認証処理の際に用いられるものと同じであっても、異なっていても良い。ただし、更なるセキュリティ向上のためには、異なる鍵データを用いることが望ましい。
【００５３】
ICチップ110は、登録パターン134を受信すると、認証フラグ141および登録フラグ142の状態を判断し（ステップS2501、S2502）、いずれもが「ON」である場合は受信した登録パターン134を、認証鍵131あるいは機器認証処理で生成した一時的な鍵データを用いて復号化し、不揮発性データ格納メモリ113に保存する（ステップS2503）。その後、残り試行回数136の初期値を設定する（ステップS2504）。なお、初期値の設定は、登録パターンの保存の後に限らず、例えば前処理データの登録の前に行っても良い。また、予めICチップ110に初期値を設定しておくようにしても良い。一方、いずれかのフラグが「OFF」の場合には、エラー処理を行う（S2505）。
【００５４】
以上説明したように、認証鍵131を用いた機器認証と、登録鍵132を用いた機器認証の両方が成功しないと、ICチップ110に前処理データ135および登録パターン135を登録出来ないように制御することにより、不正に登録パターン等が登録されてしまうことを防止し、セキュリティを向上することができる。
【００５５】
次に、前処理データおよび登録パターンの登録処理が行われた後に実行される生体情報登録確認処理フローを図５を用いて説明する。図５において、図２と同じ処理については同じ符号を付し、説明を省略する。
【００５６】
本例は、銀行の窓口等に設置された生体認証装置200を用いてICチップ110に登録パターン等の生体情報データを登録した後に、データが正しくICチップ110に登録できたことを確認するため、利用者がその場でICチップ110を用いて生体認証を実施することを想定している。
【００５７】
ここで、利用者が生体認証に不慣れである場合、ICチップ110への生体情報登録処理が正しく行われていても、生体情報登録確認のための生体認証が失敗してしまう可能性がある。図２に示した生体認証処理では、生体認証を失敗した場合はなりすましが行われている可能性が高いため、残り試行回数136を減算していた。しかし、登録処理を行ったその場で生体認証処理を行う場合、たとえ認証に失敗したとしても、なりすましが行われている可能性は非常に低い。もし、この場合にICチップ110の残り試行回数136を減算してしまうと、生体情報登録確認の間に生体認証処理に繰り返し失敗することで、残り試行回数136が０になってしまう可能性がある。残り試行回数136が０になるとICチップ110を用いた生体認証処理が実行不可となるため、再登録を行わなければならない等、生体情報登録処理の利便性を低下させてしまう。そこで、通常の生体認証処理に失敗した場合は残り試行回数136を減算するのに対して、登録処理の確認では、生体情報登録確認のための生体認証が失敗した場合は、残り試行回数136の減算を行わないようにする。
【００５８】
具体的には、図５Aの例では、ステップS1201における認証フラグ141の状態確認の後に、登録フラグ142の状態確認処理（ステップS3002）が追加されている点が、図２Aの前処理データ取得処理と異なる点である。本例では、減算フラグ143の状態にかかわらず、登録フラグ142が「ON」となっている場合には、残り試行回数136を減算することなく、ICチップ110から生体認証装置200に前処理データを送信する。
【００５９】
なお、登録フラグは、図４において登録パターンがICチップ110に格納されてから、例えば20分間などの所定期間の間、「ON」になっており、所定期間が経過すると自動的に「OFF」にするように制御しても良い。あるいは、オペレーターがID等が記憶された認証端末を所持しており、その認証端末が生体認証装置200あるいはICチップ110の例えば２メートル以内などの所定範囲内から外に出たことを、生体認証装置200あるいはICチップ110が検出した場合に、自動的に「OFF」にするようにしても良い。
【００６０】
図５Bの例では、ステップS1504における生体認証処理が失敗した場合に、減算フラグ143の状態確認の前に、登録フラグ142の状態確認処理が追加されている点が、図２Bの処理と異なる点である。本例では、減算フラグ143の状態にかかわらず、登録フラグ142が「ON」となっている場合には、残り試行回数136を減算することなく、エラー処理を行う。
【００６１】
以上説明したように、生体認証に失敗した場合でも、登録鍵132を用いた機器認証が成功していれば、残り試行回数136の減算を行わない。したがって、生体情報登録確認で行う生体認証処理が繰り返し失敗しても、ICチップ110を用いた生体認証処理が実行不可にはならないため、登録処理の利便性を向上できる。
【００６２】
なお、図２の例と同様に、ステップS1200とステップS1300を実行する順番を入れ替えても良い。
【００６３】
次に、生体認証装置200において前処理を行う代わりに、中間処理を行う場合について、図６および図７を用いて説明する。図６および図７において、図１および図２と同じ構成あるいは処理については同じ符号をつけ、説明を省略する。
【００６４】
図６に記載のICチップの例では、図１の例と比較して、不揮発性データ格納メモリ113に前処理データ135を格納していない代わりに、ICチップ110の揮発性データ格納メモリ114に中間処理要求データ145と中間処理要求データ146を格納している点が異なる。ここで、中間処理要求データ145とは、ICチップ110が本来行う生体認証処理の一部を、中間処理として生体認証装置200に依頼するための要求データである。また中間処理結果データ146は、生体認証装置200で実施した中間処理の結果に関するデータである。
【００６５】
本例では、ICチップ110は前処理データ135を保持しておらず、生体認証装置200が生体認証処理を行う時に、前処理データ135を用いた前処理は実施しない。その代わりに、ICチップ110は生体認証を開始したら、生体認証処理の一部分を実行して中間処理要求データ145を生成する。そして、ICチップ110は生体認証装置200に中間処理要求データ145を送信する。生体認証装置200はICチップ110から受信した中間処理要求データ145に基づいて中間処理を実施する。そして、生体認証装置200は中間処理結果データ145をICチップ110に返信する。ICチップ110は生体認証装置200から中間処理結果を受信したら、受信した中間処理結果に基づいて、残りの生体認証処理を行う。これにより、ICチップ110で行う生体認証処理の一部分を、生体認証装置200で実施することが可能になり、ICチップ110の処理負荷を軽減することが可能になる。
【００６６】
本例では、生体認証処理が中間処理の前、中間処理の間、中間処理の後、いずれのタイミングで生体認証処理が失敗しても、残り試行回数136を減算する。  以下、本例の生体認証処理フローを、図７を用いて説明する。
【００６７】
ステップS1000、S1001、S1100、S1101により起動処理および機器認証処理を実行された後、生体認証装置200は、生体センサ203を用いて利用者の生体情報を取得し、取得した利用者の生体情報から、照合パターン144を生成し(ステップS1300)、ICチップ110に生成した照合パターン144を送信する(ステップS5300)。
【００６８】
ICチップ110は生体認証装置200から照合パターン144を受信すると、残り試行回数136を１減算した後（ステップS5301）、照合パターン144と登録パターン134を用いて生体認証処理の一部を実施して、中間処理要求データ145を生成する（ステップS5302）。その後、中間処理要求データ145を生体認証装置200に送信する。
【００６９】
生体認証装置200は、ICチップ110から中間処理要求データ145を受信すると（ステップS5300）、中間処理要求データ145に基づいて中間処理を行い、中間処理結果データ146を生成する(ステップS5400)。ここで、中間処理を失敗すると、ICチップ110に中間処理結果データ146を送信せずに、生体認証処理を終了する。
【００７０】
生体認証装置200は、中間処理結果データ146を生成したら、ICチップ110に中間処理結果データ146を送信して、残りの生体認証処理を実行させ、ICチップ110から生体認証結果を取得する(ステップS5500)。
【００７１】
ICチップ110は生体認証装置200から中間処理結果データ146を受信すると、中間処理結果データ146を用いて、残りの生体認証処理を行う（ステップS5501）。生体認証処理に成功したかどうか判定し（ステップS5502）、成功している場合は生体認証処理が成功したので、残り試行回数136を初期値に戻す（ステップS5503）。なお、残り試行回数136が初期値を越えない範囲で、所定の値だけ加算しても良い。
【００７２】
一方、 生体認証処理に失敗した場合は、所定のエラー処理を行う（ステップS5504）。エラー処理として、例えば、エラーログをICチップ110に保存することや、エラーコードを生体認証装置200に返信する。  なお、図７の例では図示していないが、図２の例と同様、ステップS5302における中間処理データの生成の前や、ステップS5501における生体認証処理の前に、ステップS1201やS1501のような認証フラグ141の状態確認を行い、機器認証に成功しなければ、エラー処理を行い、生体認証処理を実行しないように制御しても良い。
【００７３】
以上説明した生体認証処理フローにおいて、ICチップ110は、生体認証処理開始時に、残り試行回数136を減算しておく。このため、生体認証装置200が実施する生体認証の中間処理(ステップS5400)を失敗し、ICチップ110内部での生体認証処理が最後まで実行されなかった場合でも、残り試行回数136を減算する。これにより、不正な生体情報を用いた攻撃を繰り返し実行すると、いずれは残り試行回数136が０となり、このような繰り返し攻撃を無制限に実行することを防止し、セキュリティを向上する事が可能になる。
【００７４】
なお、以上の説明では、残り試行回数136から減算する数を１としていたが、これに限定するものではない。残り試行回数136が負数とならない範囲で所定の値だけ減算するようにしても良い。また、ステップ1202における減算数とステップS1506における減算数を変えたり、ステップＳ5301における減算数とステップＳ5503における減算数を変えたりするようにしても良い。例えば、ステップ1202における減算数をステップS1506における減算数よりも多くするように設定する。このようにすることにより、万が一、不正な装置により前処理データ135を取得されてしまった場合でも、その後の認証試行回数を少なくすることができるため、セキュリティを向上することができる。
【００７５】
以上説明したように、本例によれば、生体認証処理の一部をICチップの外部で実施する場合であっても、残り試行回数を適切に減少させ、不正な生体情報を用いた攻撃を繰り返し実施することを防止することができる。
【図面の簡単な説明】
【００７６】
【図１】生体認証システムの一例を示す構成図である。
【図２Ａ】ICチップと生体認証装置の間で行われる生体認証処理の一例を示すフロー図である。
【図２Ｂ】ICチップと生体認証装置の間で行われる生体認証処理の一例を示すフロー図である。
【図３】ICチップで実行される生体認証処理の一例を示すフロー図である。
【図４Ａ】登録パターンと前処理データをICチップに登録する生体情報登録処理の一例を示すフロー図である。
【図４Ｂ】登録パターンと前処理データをICチップに登録する生体情報登録処理の一例を示すフロー図である。
【図５Ａ】前処理データおよび登録パターンの登録処理が行われた後に実行する生体情報登録確認処理の一例を示すフロー図である。
【図５Ｂ】前処理データおよび登録パターンの登録処理が行われた後に実行する生体情報登録確認処理の一例を示すフロー図である。
【図６】生体認証システムの一例を示す構成図である。
【図７】ICチップと生体認証装置の間で行われる生体認証処理の一例を示すフロー図である。
【符号の説明】
【００７７】
10…生体情報、100…ICカード、200…生体認証装置、110…ICチップ、111…通信部、112…プログラム格納メモリ、113…不揮発性データ格納メモリ、114…揮発性データ格納メモリ、201…ICチップ通信部、202…メモリ、203…生体センサ、206…演算処理部、121…生体認証プログラム、131…認証鍵、132…登録鍵、133…生体認証閾値、134…登録パターン、135…前処理データ、136…残り試行回数、141…機器認証フラグ、142…登録フラグ、143…減算フラグ、144…照合パターン
【図１】
2010092250.tif 000003
【図２Ａ】
2010092250.tif 000004
【図２Ｂ】
2010092250.tif 000005
【図３】
2010092250.tif 000006
【図４Ａ】
2010092250.tif 000007
【図４Ｂ】
2010092250.tif 000008
【図５Ａ】
2010092250.tif 000009
【図５Ｂ】
2010092250.tif 000010
【図６】
2010092250.tif 000011
【図７】
2010092250.tif 000012