説明

生体認証装置および生体認証プログラム

【課題】 リバースエンジニアリングを抑制することができる生体認証装置および生体認証プログラムを提供する。
【解決手段】 生体認証装置は、ユーザの生体情報を取得する生体センサと、ユーザごとに、正規のパスワードが付加された正登録生体データと、偽のパスワードが付加されかつ前記正登録生体データと異なる偽登録生体データと、を含む登録ユーザデータを記憶するユーザデータ記憶部と、前記生体センサによって取得された生体情報に基づく照合生体データと前記登録ユーザデータとの照合を行う照合手段と、前記照合手段の照合が成功した登録生体データに付加されたパスワードをセキュリティ回路に送信する通信手段と、を備え、前記セキュリティ回路は、暗号鍵を保持し、前記正規のパスワードの入力によって前記暗号鍵を解放する回路であり、パスワードの入力の失敗回数に上限が設定されている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、生体認証装置および生体認証プログラムに関する。
【背景技術】
【0002】
指紋、静脈、虹彩等の生体情報(バイオメトリクス情報)を用いて個人認証を行う生体認証システムが開発されている。このシステムは、パスワードを用いたシステムと比較して、推測による不正入手、他人への譲渡、忘却等による利用不能等の問題が発生せず、優れた特徴を持っている。
【0003】
パスワードは、SHA−1等のハッシュ関数で変換することによって、暗号鍵に直接変換することができる。これに対して、生体情報を暗号鍵に直接変換することは難しい。したがって、生体情報は、スタンドアローンの認証において、リバースエンジニアリングに弱いという性質を有している。スタンドアローンの認証においては、登録生体情報および暗号鍵の両者をクライアントサーバに置くことになる。この場合、リバースエンジニアリングによって両者を詐取されるおそれがある。この問題を解決する方法として、特許文献1に開示された方法があげられる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−249349号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、生体情報は、環境変化、入力状態等に応じて変化する。そのため、全ての利用者の生体情報を、一意に決まった暗号鍵に変換することは困難である。
【0006】
本発明は上記課題に鑑みなされたものであり、リバースエンジニアリングを抑制することができる生体認証装置および生体認証プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、明細書開示の生体認証装置は、ユーザの生体情報を取得する生体センサと、ユーザごとに、正規のパスワードが付加された正登録生体データと、偽のパスワードが付加されかつ前記正登録生体データと異なる偽登録生体データと、を含む登録ユーザデータを記憶するユーザデータ記憶部と、前記生体センサによって取得された生体情報に基づく照合生体データと前記登録ユーザデータとの照合を行う照合手段と、前記照合手段の照合が成功した登録生体データに付加されたパスワードをセキュリティ回路に送信する通信手段と、を備え、前記セキュリティ回路は、暗号鍵を保持し、前記正規のパスワードの入力によって前記暗号鍵を解放する回路であり、パスワードの入力の失敗回数に上限が設定されているものである。
【0008】
上記課題を解決するために、明細書開示の生体認証プログラムは、ユーザの生体情報を取得する生体情報取得ステップと、前記生体情報取得ステップによって取得された生体情報に基づく照合生体データと登録ユーザデータとの照合を行う照合ステップと、前記照合ステップにおける照合が成功した登録生体データに付加されたパスワードをセキュリティ回路に送信する通信ステップと、をコンピュータに実行させ、前記登録ユーザデータは、ユーザごとに、正規のパスワードが付加された正登録生体データと、偽のパスワードが付加されかつ前記正登録生体データと異なる偽登録生体データと、を含み、前記セキュリティ回路は、暗号鍵を保持し、前記正規のパスワードの入力によって前記暗号鍵を解放する回路であり、パスワードの入力の失敗回数に上限が設定されているものである。
【発明の効果】
【0009】
明細書開示の生体認証装置および生体認証プログラムによれば、リバースエンジニアリングを抑制することができる。
【図面の簡単な説明】
【0010】
【図1】比較例1に係る端末装置の全体構成を説明するためのブロック図である。
【図2】比較例2に係る端末装置の全体構成を説明するためのブロック図である。
【図3】実施例1に係る端末装置の全体構成を説明するためのブロック図である。
【図4】指紋認証プログラムの実行によって実現される生体認証装置の機能ブロック図である。
【図5】ユーザ1人分の登録ユーザデータの作成手順について説明するためのフロー図である。
【図6】各ユーザの登録ユーザデータの例を説明するための図である。
【図7】CPUによる指紋認証プログラムの実行によって実現されるフローチャートの一例を説明するための図である。
【図8】実施例2に係る端末装置の全体構成を説明するためのブロック図である。
【図9】ユーザ1人分の手のひら静脈に関する登録ユーザデータの作成手順について説明するためのフロー図である。
【図10】実施例3に係る端末装置の全体構成を説明するためのブロック図である。
【図11】ユーザ1人分の、虹彩に関する登録ユーザデータの作成手順について説明するためのフロー図である。
【図12】実施例4に係る端末装置の全体構成を説明するためのブロック図である。
【発明を実施するための形態】
【0011】
(比較例1)
まず、比較例1に係る端末装置201について説明する。端末装置201は、パスワード認証によって起動する端末装置であり、携帯電話、ノートパソコン等である。図1は、端末装置201の全体構成を説明するためのハードウェア構成図である。図1を参照して、端末装置201は、CPU(中央演算処理装置)210、主記憶装置220、補助記憶装置230、キーボード240等を含む。補助記憶装置230には、ブートローダ231、OS(オペレーティングシステム)232、プログラム233、データ234等が記憶されている。
【0012】
CPU210は、ブートローダ231、OS232、プログラム233等を実行するための処理装置である。主記憶装置220は、CPU210が使用するOS232、プログラム233、データ234等をロードして一時的に記憶するメモリ等である。補助記憶装置230は、不揮発性記憶装置である。ブートローダ231は、端末装置の起動時に最初に実行されるプログラムであり、パスワード認証を行う。OS232は、パスワード認証が成功した場合に実行されるオペレーティングシステムである。プログラム233は、各種のアプリケーションを起動するためのプログラムである。データ234は、OS232、プログラム233等の処理の結果である。OS232、プログラム233およびデータ234は、暗号鍵で暗号化されている。キーボード240は、パスワード等を入力するための入力装置である。
【0013】
次に、端末装置201の動作手順について説明する。まず、端末装置201の電源がオンされると、補助記憶装置230からブートローダ231が主記憶装置220にロードされる。次に、CPU210は、ブートローダ231を実行する。それにより、端末装置201は、入力待ちの状態になる。次に、キーボード240を用いてユーザからパスワードが入力される。CPU210は、入力されたパスワードからSHA−256等を用いてハッシュを生成する。主記憶装置220は、生成されたハッシュを暗号鍵として記憶する。それにより、主記憶装置220に記憶された暗号鍵を用いて、補助記憶装置230のOS232の暗号が解かれる。その結果、OS232は主記憶装置220にロードされる。それにより、CPU210による実行は、主記憶装置220にロードされたOS232に移る。以降、OS232も、補助記憶装置230との入出力に、ハッシュ値を用いて暗号化を行う。
【0014】
以上のような暗号化を用いた入出力は、遺失や盗難の発生率が高い携帯電話、ノートパソコン等の端末装置にとって重要な機能である。しかしながら、パスワードとして推測されやすい文字列(例えば、123456)が設定されることが多いため、パスワード認証は信頼性に欠ける。
【0015】
(比較例2)
次に、比較例2に係る端末装置202について説明する。端末装置202は、指紋認証によって起動する。図2は、端末装置202の全体構成を説明するためのハードウェア構成図である。図2を参照して、端末装置202は、CPU(中央演算処理装置)210、主記憶装置220、補助記憶装置230、キーボード240、指紋センサ250等を含む。比較例1と異なり、補助記憶装置230には、ブートローダ231、OS(オペレーティングシステム)232、プログラム233、データ234、指紋認証プログラム235、登録指紋データ236等が記憶されている。登録指紋データ236は、あらかじめ登録されたユーザの指紋データである。
【0016】
次に、端末装置202の動作手順について説明する。まず、端末装置202の電源がオンされると、補助記憶装置230からブートローダ231が主記憶装置220にコピーされる。次に、CPU210は、ブートローダ231を実行する。ブートローダの実行により、指紋認証プログラム235は、主記憶装置220にロードされる。それにより、CPU210は、指紋認証プログラム235を実行する。指紋認証プログラム235の実行により、端末装置202は、指紋画像入力待ちの状態になる。
【0017】
次に、ユーザが指紋センサ250に指を押印することによって、指紋センサ250はユーザの指紋画像を取得する。CPU210は、取得された指紋画像から照合指紋データを生成する。CPU210は、照合指紋データと登録指紋データ236とを比較し、両者が一致した場合に暗号鍵を主記憶装置220に保存する。次に、主記憶装置220に保存された暗号鍵を用いて、補助記憶装置230のOS232の暗号が解かれる。それにより、OS232は主記憶装置220にロードされる。その結果、CPU210による実行は、主記憶装置220にロードされたOS232に移る。
【0018】
以上のように、指紋センサのような生体情報を取得するセンサを用いることによって、パスワード入力を行わなくても、確かな認証で端末装置の起動、ログイン等が可能になる。このように、比較例2では、脆弱なパスワードをユーザに使用される問題は解決される。しかしながら、生体情報を用いた認証は、完全ではなく、リバースエンジニアリングによる暗号鍵の詐取の問題を生じる。
【0019】
具体的には、登録指紋データ236および暗号鍵を安全に暗号化して補助記憶装置230に記憶することが困難である問題が生じる。登録指紋データ236および暗号鍵は、何らかの暗号鍵を用いて補助記憶装置230に記憶させることは可能である。しかしながら、指紋の照合を行うためには、登録指紋データ236を複合化する必要がある。そのためには、登録指紋データ236の複合化用の暗号鍵をブートローダ231中に含まれる必要がある。この複合化用の暗号鍵をリバースエンジニアリングされると、補助記憶装置230内のOS複合化用の暗号鍵を容易に詐取されてしまうのである。パスワードを用いた方式では、暗号鍵をパスワードから直接生成することができるため、補助記憶装置230にOS複合化用の鍵を記憶させる必要がない。
【0020】
この問題を解決するための方法の1つとして、別に認証サーバを用意し、認証用の暗号鍵およびOS復号化用の暗号鍵を認証サーバで保管する方法がある。この方法は、デスクトップコンピュータなどの、据え置いて使用して有線LANで通信するコンピュータでは有効である。しかしながら、ノートPCなど、携帯して使用する機器では、無線LANや携帯電話などの無線通信が必要になる。特に、OSへのログインを目的とする認証では、使用可能な場所の多い携帯電話が好適であるが、契約費用や通信費用が高くなる。したがって、全てのノートPCに携帯電話を設置することは費用的に困難である。
【0021】
また、照合生体データと登録生体データとの類似度を検出するのではなく、生体情報を暗号鍵に直接変換する方法もあげられる。また、類似の方法として、登録生体データと照合生体データとの近似した部分を抽出し、それを暗号鍵とする方法もあげられる。しかしながら、指紋を代表とする生体情報は、環境変化、入力状態等に応じて変化する。例えば、荒れた指から採取される不鮮明な指紋などは、再現性が低い。そのため、全ての利用者の生体情報を、一意に決まった暗号鍵に変換することは非常に困難である。
【0022】
また、一般的な生体認証では、誤照合を1万分の1程度に設定して照合する。これは、近似度を許容して揺らぎを排除して数値化すると、特徴情報の近似部分は16bit以下になるということである。16bitの情報では、暗号鍵として不十分である。しかしながら、指紋等の各種生体情報を取得するセンサは、すでに多くの端末装置で採用されている。指紋センサの性能が向上し、その他の問題が解決されていくうちに、リバースエンジニアリングの問題は、相対的に大きくなっている。以下の実施例においては、リバースエンジニアリングを抑制することができる生体認証装置および生体認証プログラムについて説明する。
【実施例1】
【0023】
図3は、実施例1に係る認証装置が組み込まれた端末装置101の全体構成を説明するためのハードウェア構成図である。端末装置101は、指紋認証によって起動する端末装置、指紋認証によってログイン可能となる端末装置等であり、携帯電話、ノートパソコン等である。図3を参照して、端末装置101は、CPU(中央演算処理装置)110、主記憶装置120、補助記憶装置130、TPM(トラステッドプラットフォームモジュール)140、キーボード150、指紋センサ160等を含む。CPU110、主記憶装置120、補助記憶装置130、TPM140、キーボード150、および指紋センサ160は、システムバス170によって互いに接続されている。補助記憶装置130には、ブートローダ131、指紋認証プログラム(生体認証プログラム)132、ユーザデータ群133、OS134、プログラム135、一般データ136等が記憶されている。
【0024】
CPU110は、ブートローダ131、指紋認証プログラム132、OS134、プログラム135等を実行するための処理装置である。主記憶装置120は、CPU110が使用するプログラム、データ等をロードして一時的に記憶するRAM(ランダムアクセスメモリ)等のメモリである。補助記憶装置130は、ROM(リードオンリメモリ)、HDD(ハードディスクドライブ)等の不揮発性メモリである。キーボード150は、ユーザID等を入力するための入力装置である。指紋センサ160は、押印された指の指紋画像を採取するセンサである。
【0025】
TPM140は、面実装のフラッシュロム(FLASH ROM)に似たパッケージであり、マザーボードに直接実装されている。TPM140の内部には、プロセッサ、メモリ、不揮発メモリ、時計、タイマ等の装置が組み込まれている。TPM140内部の不揮発メモリに格納された情報は、パスワード等でロックすることが可能である。この格納された情報を参照するには、パスワードの入力が必要である。また、TPM140は、分解での不正な読み込みに対しては、自己破壊を起こす。その結果、格納された情報は読み出せなくなる。すなわち、TPM140は、高い耐タンパ姓を有している。
【0026】
このTPM140にアクセスする手段として、例えばPHCS#11ライブラリを用いることができる。このPKCS#11を用いた、TPMアクセスの例を以下に説明する。
【0027】
まず、パスワード登録時には、
管理者が暗号鍵および正しいパスワードを用意する
(2)TPM140を初期化する
(3)C_Login関数でTPM140との通信を開始する(初期化状態なのでパスワード不要)
(4)C_SetPIN関数で正しいパスワードをTPM140に設定する
(5)C_SetAttributeValue関数で暗号鍵をTPM140に格納する
(6)C_Logout関数でTPM140との通信を完了する
以上の手順により、指紋登録時に正しい生体情報と一緒に正しいパスワードが登録される。
【0028】
パスワード照合時には、
(1)指紋認証で得た、正しいか正しくないか不明のパスワードを用意する
(2)C_Login関数に(1)のパスワードでTPM140と通信を開始する
(3)パスワードが間違っている場合は(5)へ移行する
(4)C_GetAttributeValue関数で暗号鍵を取得する
(5)C_Logout関数でTPM140との通信を完了する
以上の手順により、パスワードが正しければ暗号鍵を取得することができ、パスワードが間違っていれば暗号鍵を取得することができない。
【0029】
TPM140には、内蔵している不揮発メモリに、PINの失敗回数を記録する機能が装備されている。TPM140には、失敗回数に上限(例えば、10回〜20回)が設定されている。パスワード入力の失敗回数が上限を超えると、TPM140は、それ以上のパスワードの受け付けを拒否し、ロックアウトの状態になる。このロックアウトを解除するためには、管理者等が保有するマスターパスワードが必要となる。このように失敗回数に上限が設定されていることから、TPM140は、総当り攻撃を防ぐことができる。
【0030】
ブートローダ131は、端末装置201の起動時に最初に実行されるプログラムである。ブートローダ131は、端末装置201の起動時に指紋認証プログラム132を主記憶装置120にロードし、指紋認証においてTPM140から暗号鍵の取得に成功した場合にOS134を主記憶装置120にロードする。指紋認証プログラム132は、端末装置201の起動時またはログイン時にCPU110によって実行されるプログラムであり、指紋認証を実行する。ユーザデータ群133は、各ユーザの登録ユーザデータを含む。OS134は、指紋認証が成功した場合に実行されるオペレーティングシステムである。プログラム135は、各種のアプリケーションを起動するためのプログラム、その他の一般的な事務処理を行うプログラムである。一般データ142は、プログラム135の実行で生じるデータである。機密保持のため、OS134、プログラム135および一般データ136は、TPM140に格納された暗号鍵で暗号化されている。
【0031】
端末装置101の運用前に、TPM140の初期化、TPM140の暗号鍵の格納、および登録ユーザデータの作成が行われる。TPM140の初期化およびTPM140の暗号鍵の格納は、上述したPKCS#11の手順で行うことができる。この初期化時に、一例として、乱数で生成した256bitの値を暗号鍵とする。また、パスワードが設定された暗号鍵をTPM140に格納するため、パスワードも生成しておく。このパスワードは、一般的なアルファベット、数字等で構成する必要はなく、連想できない大きな値であればよい。本実施例においては、パスワードとして、256bitの値を用いる。
【0032】
図4は、CPU110による指紋認証プログラム132の実行によって、端末装置101に実現される生体認証装置100の機能ブロック図である。図4を参照して、生体認証装置100は、生体センサ10、照合手段20、登録データ作成手段30、ユーザデータ記憶部40、および通信手段50を含む。生体センサ10は図3の指紋センサ160に対応し、ユーザデータ記憶部40は図3のユーザデータ群133に対応する。
【0033】
次に、登録ユーザデータの作成手順について説明する。図5は、ユーザ1人分の登録ユーザデータの作成手順について説明するためのフロー図である。まず、生体センサ10は、ユーザの指紋画像を採取する(ステップS1)。採取された指紋画像は、主記憶装置120に格納される。次に、登録データ作成手段30は、格納された指紋画像を主記憶装置120内の別の場所にコピーする(ステップS2)。
【0034】
登録データ作成手段30は、主記憶装置120内でコピーされた指紋画像に対して、生体情報である指紋特徴点データ抽出処理を行い、正常な登録指紋データを生成する(ステップS3)。次に、登録データ作成手段30は、TPM140に設定する正規のパスワードを正常な登録指紋データに付加し、正登録データを生成する(ステップS4)。次に、登録データ作成手段30は、ステップS1の指紋画像を主記憶装置120内のさらに別の場所にコピーする。登録データ作成手段30は、コピーされた指紋画像に、ダミーの特徴データを付加する。具体的には、登録データ作成手段30は、コピーされた指紋画像に、隆線の太さ程度を一辺とする、黒の正方形および白の正方形を10個程度ずつ、ランダムの位置に描画する(ステップS5)。
【0035】
次に、登録データ作成手段30は、正方形を付加された指紋画像に対して、指紋特徴点データ抽出処理を行う。付加された正方形の影響で、元の指紋画像と一致しない偽の登録指紋データNo.1が生成される(ステップS6)。次に、登録データ作成手段30は、偽の登録指紋データに、乱数で生成した偽のパスワードを付加し、偽登録データNo.1が生成される(ステップS7)。ステップS5〜ステップS7が例えば9999回繰り返されることによって、偽登録データが9999個生成される(ステップS8〜ステップS10)。
【0036】
登録データ作成手段30は、1個の正登録データと9999個の偽登録データとをシャッフルする。このシャッフルされた登録データ群を1組の登録ユーザデータとし、この登録ユーザデータにユーザIDを付加する(ステップS11)。つまり、1つのIDで管理される登録ユーザデータの中には、正しいパスワードが付加された正登録データ1個と、偽のパスワードが付加された9999個の偽登録データが含まれている。登録ユーザデータは、ユーザデータ記憶部40に記憶される。
【0037】
図6は、各ユーザの登録ユーザデータの例を説明するための図である。図6を参照して、ユーザID1の「yamada」には、それぞれ付属パスワードが付加された登録指データが含まれている。この登録指データのうちどれが正登録指データであるか判別することはできない。
【0038】
以上の手順により、正登録指データが何番目の登録指データであるかわからなくなる。したがって、この登録ユーザデータをリバースエンジニアリングしても、どの登録指データが正登録指データであるかわからないため、正登録指データに付加されたパスワードを詐取することが困難になる。なお、総当り攻撃による詐取は、TPM140の機能によって回避される。以下、指紋認証について説明する。
【0039】
図7は、CPU110による指紋認証プログラム132の実行によって実現されるフローチャートの一例を説明するための図である。なお、指紋認証プログラム132は、全てのユーザの登録ユーザデータがユーザデータ記憶部40に記憶された状態で実行される。
【0040】
図7を参照して、照合手段20は、ユーザによってキーボード150に入力されたユーザIDを取得する(ステップS21)。次に、照合手段20は、生体センサ10が採取した指紋画像を取得する(ステップS22)。次に、照合手段20は、ステップS21で取得した指紋画像から照合指紋データを生成する(ステップS23)。照合指紋データとは、指紋画像の特徴点を抽出することによって得られるデータであり、登録指紋データとの照合処理において用いられる。次に、照合手段20は、ステップS21で取得したユーザIDと一致する登録ユーザデータを検索する(ステップS24)。
【0041】
次に、照合手段20は、各登録ユーザデータに、ユーザIDと一致する登録ユーザデータが有るか否かを判定する(ステップS25)。ステップS25において「No」と判定された場合、照合手段20は、照合が失敗したと判定する(ステップS29)。その後、フローチャートの実行が終了する。ステップS25において「Yes」と判定された場合、照合手段20は、ユーザIDが一致する登録ユーザデータに含まれる全ての登録指紋データを照合対象とするため、当該登録指紋データを読み込む(ステップS26)。それにより、1つの照合指紋データを複数の登録指紋データとの照合を行う、1対Nの照合が行われる。
【0042】
次に、照合手段20は、照合指紋データと全ての登録指紋データとの近似度を計算して、照合処理を行う(ステップS27)。照合手段20は、登録指紋データの中に、照合指紋データと近似する登録指紋データが有るか否かを判定する(ステップS28)。ステップS28において「No」と判定された場合、照合手段20は、照合が失敗したと判定する(ステップS29)。その後、フローチャートの実行が終了する。
【0043】
ステップS28において「Yes」と判定された場合、通信手段50は、照合指紋データと近似する登録指紋データに付加されたパスワードをTPM140に送信し、暗号鍵の取得を試みる(ステップS30)。照合手段20は、ステップS30の結果、暗号鍵の取得に成功したか否かを判定する(ステップS31)。ステップS31において「No」と判定された場合、通信手段50は、TPM140から連続失敗回数を取得する(ステップS32)。なお、初期状態では、連続失敗回数はゼロである。
【0044】
次に、照合手段20は、ステップS33で取得した失敗回数が所定値(例えば、5回)に到達したか否かを判定する(ステップS33)。ステップS33において「No」と判定された場合、照合手段20は、今回失敗した登録指紋データを1対N照合対象から外す(ステップS34)。その後、照合手段20は、ステップS27からの処理を繰り返す。この場合、指紋画像採取の際の指の歪み等による偶然の一致を回避することができる。
【0045】
ステップS31において「Yes」と判定された場合、照合手段20は、TPM140内の連続失敗回数のカウンタをリセットして、ゼロに設定しなおす(ステップS35)。次に、CPU110は、暗号化されたファイル(OS134、プログラム135等)の解凍を開始する(ステップS36)。それにより、端末装置101の起動が開始する、または、端末装置101へのログインが完了する。その後、フローチャートの実行が終了する。
【0046】
ステップS33において「Yes」と判定された場合、失敗回数が上限を超えているため、TPM140がロック状態に移行している。そこで、照合手段20は、照合が失敗したと判定する(ステップS29)。その後、フローチャートの実行が終了する。
【0047】
本実施例に係る生体認証装置100によれば、各ユーザの登録ユーザデータに偽の登録指紋データを含ませることにより、正しいパスワードを偽のパスワードの中に紛れ込ませることができる。また、偽の登録指紋データには偽の特徴点が付加されているため、正登録指紋データは、ユーザ本人の照合指紋データとしか一致しない。以上のことから、パスワードの詐取を抑制することができる。さらに、TPM140を用いて失敗回数に上限を設定することができるため、総当り攻撃によるパスワードの詐取を抑制することができる。したがって、リバースエンジニアリングを抑制することができる。
【0048】
なお、まれに、指の歪み等に起因して、偽の登録指紋データと照合指紋データとが一致してしまう場合もあり得る。しかしながら、この場合、誤照合した登録指紋データが照合対象から外されて照合が行われる。それにより、次回の照合では、照合指紋データと正登録指紋データとが高い確率で一致する。したがって、ユーザの不便を回避することができる。さらに、リバースエンジニアリングでは、登録指紋データを詐取することは可能であるが、どれが正しい登録指紋データか判別することは、困難である。特に、マニューシャ方式の認証を行っている場合は、リバースエンジニアリングで正しい登録指紋データを判別することは、非常に困難である。
【実施例2】
【0049】
図8は、実施例2に係る端末装置102の全体構成を説明するためのハードウェア構成図である。端末装置102が実施例1に係る端末装置101と異なる点は、指紋センサ160の代わりに手のひら静脈センサ160aが設けられ、指紋認証プログラム132の代わりに静脈認証プログラム132aが備わっている点である。手のひら静脈センサ160aは、ユーザの手のひらの静脈画像を採取することによって、手のひらの内部にある静脈の位置を読み取るセンサである。手のひら静脈センサ160aを用いれば、外界と接していない静脈が検出されるため、使い勝手に不自由するユーザが少ない。したがって、安定した認証を実現することができる。なお、本実施例においては、静脈認証プログラム132aの実行によって、図4と同様の生体認証装置が実現される。
【0050】
次に、手のひら静脈に関する登録ユーザデータの作成手順について説明する。図9は、ユーザ1人分の手のひら静脈に関する登録ユーザデータの作成手順について説明するためのフロー図である。まず、生体センサ10は、ユーザの手のひらの静脈画像を採取する(ステップS41)。登録データ作成手段30は、採取された静脈画像を主記憶装置120に格納する。次に、登録データ作成手段30は、格納された静脈画像を主記憶装置120内の別の場所にコピーする(ステップS42)。
【0051】
登録データ作成手段30は、主記憶装置120内でコピーされた静脈画像に対して、生体情報である静脈特徴抽出処理を行い、正常な登録静脈データを生成する(ステップS43)。なお、静脈認証として、指紋認証と同様に、特徴点方式、パターンマッチング方式等の多種の照合方式を採用することができる。本実施例においては、一例として、パターンマッチング照合方式について説明する。したがって、本実施例に係る生体情報は、撮影した静脈画像を二値化(白黒化)したものである。
【0052】
次に、登録データ作成手段30は、TPM140に設定する正規のパスワードを正常な登録静脈データに付加し、正登録静脈データを生成する(ステップS44)。次に、登録データ作成手段30は、ステップS41の静脈画像を主記憶装置120内のさらに別の場所にコピーする。登録データ作成手段30は、コピーされた静脈画像に、ダミーの特徴データを付加する。具体的には、登録データ作成手段30は、コピーされた静脈画像に、太さ1mm〜2mm程度かつ長さ3cm程度の白傷線および黒傷線を、5本程度ずつランダムな位置に配置する(ステップS45)。それにより、静脈の連結を改変することができる。
【0053】
次に、登録データ作成手段30は、白傷線および黒傷線を付加された静脈画像に対して、静脈特徴抽出処理を行う。加えた線の影響で、元の静脈画像と一致しない偽の登録静脈データNo.1が生成される(ステップS46)。次に、登録データ作成手段30は、偽の登録静脈データに、乱数で生成した偽のパスワードを付加し、偽登録データNo.1が生成される(ステップS47)。ステップS45〜ステップS47が例えば9999回繰り返されることによって、偽登録データが9999個生成される(ステップS48〜ステップS50)。
【0054】
登録データ作成手段30は、1個の正登録データと9999個の偽登録データとをシャッフルする。このシャッフルされた登録データ群を1組の登録ユーザデータとし、この登録ユーザデータにユーザIDを付加する(ステップS51)。つまり、1つのIDで管理される登録ユーザデータの中には、正しいパスワードが付加された正登録データ1個と、偽のパスワードが付加された9999個の偽登録データが含まれている。登録ユーザデータは、ユーザデータ記憶部40に記憶される。
【0055】
以上の手順により、正登録データが何番目の登録データであるかわからなくなる。したがって、この登録ユーザデータをリバースエンジニアリングしても、どの登録データが正登録データであるかわからないため、正登録データに付加されたパスワードを詐取することが困難になる。なお、総当り攻撃による詐取は、TPM140の機能によって回避される。手のひら静脈認証は、静脈認証プログラム132aに従って行われる。手のひら静脈認証は、図7で説明した手順と同様の手順により行うことができる。
【実施例3】
【0056】
図10は、実施例3に係る端末装置103の全体構成を説明するためのハードウェア構成図である。端末装置103が実施例1に係る端末装置101と異なる点は、指紋センサ160の代わりに虹彩センサ160bが設けられ、指紋認証プログラム132の代わりに虹彩認証プログラム132bが備わっている点である。虹彩センサ160bは、ユーザの目の虹彩画像を採取するセンサである。なお、本実施例においては、虹彩認証プログラム132bの実行によって、図4と同様の生体認証装置が実現される。
【0057】
次に、虹彩に関する登録ユーザデータの作成手順について説明する。図11は、ユーザ1人分の、虹彩に関する登録ユーザデータの作成手順について説明するためのフロー図である。まず、生体センサ10は、ユーザの目の虹彩画像を採取する(ステップS61)。登録データ作成手段30は、採取された虹彩画像を主記憶装置120に格納する。次に、登録データ作成手段30は、格納された虹彩画像を主記憶装置120内の別の場所にコピーする(ステップS62)。
【0058】
登録データ作成手段30は、主記憶装置120内でコピーされた虹彩画像に対して、生体情報である虹彩特徴抽出処理を行い、正常な登録虹彩データを生成する(ステップS63)。なお、虹彩認証として、指紋認証と同様に、特徴点方式、パターンマッチング方式等の多種の照合方式を採用することができる。本実施例において、一例として、パターンマッチング照合方式について説明する。したがって、本実施例に係る生体情報は、撮影した虹彩画像を二値化(白黒化)したものである。
【0059】
次に、登録データ作成手段30は、TPM140に設定する正規のパスワードを正常な登録虹彩データに付加し、正登録データを生成する(ステップS64)。次に、登録データ作成手段30は、ステップS61の虹彩画像を主記憶装置120内のさらに別の場所にコピーする。CPU110は、コピーされた虹彩画像に、ダミーの特徴データを付加する。具体的には、登録データ作成手段30は、コピーされた虹彩画像に、太さ1mm〜2mm程度かつ長さ3cm程度の白傷線および黒傷線を、5本程度ずつランダムな位置に配置する(ステップS65)。それにより、偽の虹彩を作成することができる。なお、黒傷線は、黒目と重複しないように配置することが好ましい。
【0060】
次に、登録データ作成手段30は、白傷線および黒傷線を付加された虹彩画像に対して、虹彩特徴抽出処理を行う。加えた線の影響で、元の虹彩画像と一致しない偽の登録虹彩データNo.1が生成される(ステップS66)。偽の登録虹彩データに、乱数で生成した偽のパスワードを付加し、偽登録データNo.1が生成される(ステップS67)。ステップS65〜ステップS67が例えば9999回繰り返されることによって、偽登録データが9999個生成される(ステップS68〜ステップS70)。
【0061】
登録データ作成手段30は、1個の正登録データと9999個の偽登録データとをシャッフルする。このシャッフルされた登録データ群を1組の登録ユーザデータとし、この登録ユーザデータにユーザIDを付加する(ステップS71)。つまり、1つのIDで管理される登録ユーザデータの中には、正しいパスワードが付加された正登録データ1個と、偽のパスワードが付加された9999個の偽登録データが含まれている。登録ユーザデータは、ユーザデータ記憶部40に記憶される。
【0062】
以上の手順により、正登録データが何番目の登録データであるかわからなくなる。したがって、この登録ユーザデータをリバースエンジニアリングしても、どの登録データが正登録データであるかわからないため、正登録データに付加されたパスワードを詐取することが困難になる。なお、総当り攻撃による詐取は、TPM140の機能によって回避される。虹彩認証は、虹彩認証プログラム132bに従って行われる。虹彩認証は、図7で説明した手順と同様の手順により行うことができる。なお、虹彩認証においては誤照合率が低くなるため、偽登録データを用意しても誤照合されなくなる。したがって、不正アクセス者が偶然にパスワードを発見しても、不正に情報を詐取される確立を小さくすることができる。
【実施例4】
【0063】
図12は、実施例4に係る端末装置104の全体構成を説明するためのハードウェア構成図である。図12を参照して、端末装置104が実施例1に係る端末装置101と異なる点は、TPM140の代わりに、ICカードリーダライタ140aが設けられている点である。ICカードリーダライタ140aは、ICカード140bの情報の読み書きをするための装置である。本実施例においては、ICカードリーダライタ140aが、図4の通信手段50に対応する。
【0064】
通常のICカードは、数百バイトから数千バイトの記憶容量を持ち、情報の読み書きに対してパスワードを設定することができる。パスワードの設定されたICカードは、情報の読み書きの前にパスワード認証を要求し、認証に成功するまで情報の読み書きを禁止する。このICカードも、パスワード入力の失敗回数を計測可能であり、失敗回数が上限を超えた場合にはロック状態となる。また、ICカードの制御ライブラリとして、TPMモジュールと同様のPKCS#11等を用いることができる。
【0065】
以上のことから、ICカードリーダライタ140aおよびICカード140bは、実施例1に係るTPM140と同等の機能を実現する。さらに、ICカード140bは端末装置104から取り外して保存・管理することができる。したがって、生体認証および物理トークンの2つの要素による認証を行うことができる。
【0066】
なお、上記各例では、セキュリティ回路としてTPMモジュールおよびICカードについて説明したが、それに限られない。正規のパスワード入力によって暗号鍵を解放しかつパスワードの入力失敗回数に上限が設定されたセキュリティ回路であれば、その他のものでも用いることができる。また、上記各例では、認証装置および認証プログラムが適用される対象として、携帯電話、ノートPC等の端末装置について説明したが、それに限られない。例えば、デスクトップパソコン等の非携帯装置に適用してもよい。また、端末装置と通信可能なサーバに登録ユーザデータが記憶されていてもよい。
【0067】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0068】
101〜104 端末装置
110 CPU
120 主記憶装置
130 補助記憶装置
131 ブートローダ
132 指紋認証プログラム
132a 静脈認証プログラム
132b 虹彩認証プログラム
133 ユーザデータ群
140 TPM
150 キーボード
160 指紋センサ
160a 手のひら静脈センサ
160b 虹彩センサ

【特許請求の範囲】
【請求項1】
ユーザの生体情報を取得する生体センサと、
ユーザごとに、正規のパスワードが付加された正登録生体データと、偽のパスワードが付加されかつ前記正登録生体データと異なる偽登録生体データと、を含む登録ユーザデータを記憶するユーザデータ記憶部と、
前記生体センサによって取得された生体情報に基づく照合生体データと前記登録ユーザデータとの照合を行う照合手段と、
前記照合手段の照合が成功した登録生体データに付加されたパスワードをセキュリティ回路に送信する通信手段と、を備え、
前記セキュリティ回路は、暗号鍵を保持し、前記正規のパスワードの入力によって前記暗号鍵を解放する回路であり、パスワードの入力の失敗回数に上限が設定されていることを特徴とする生体認証装置。
【請求項2】
前記照合手段は、照合が成功した際の登録生体データに付加されたパスワードが前記正規のパスワードと一致しなかった場合に、前記登録生体データを照合対象から外すことを特徴とする請求項1記載の生体認証装置。
【請求項3】
前記生体センサによって取得された生体情報から生体データを生成し、前記生体データにパスワードを付加し、登録生体データとして前記ユーザデータ記憶部に記憶させる登録生体データ作成手段をさらに備えることを特徴とする請求項1または2記載の生体認証装置。
【請求項4】
前記登録生体データ作成手段は、
前記生体センサによって取得された生体情報から生成した生体データに前記正規のパスワードを付加し、前記正登録生体データとして前記ユーザデータ記憶部に記憶させ、
前記生成した生体データにダミーの特徴データを付加し、偽のパスワードを付加し、前記偽登録生体データとして前記ユーザデータ記憶部に記憶させることを特徴とする請求項3記載の生体認証装置。
【請求項5】
前記登録生体データ作成手段は、前記生成した生体データに白および黒の図形をランダムに配置することによって、前記偽登録生体データを作成することを特徴とする請求項4記載の生体認証装置。
【請求項6】
前記セキュリティ回路は、ICカードであり、
前記送信手段は、前記ICカードの情報を読み書き可能なICカードリーダライタであることを特徴とする請求項1〜5のいずれかに記載の生体認証装置。
【請求項7】
ユーザの生体情報を取得する生体情報取得ステップと、
前記生体情報取得ステップによって取得された生体情報に基づく照合生体データと登録ユーザデータとの照合を行う照合ステップと、
前記照合ステップにおける照合が成功した登録生体データに付加されたパスワードをセキュリティ回路に送信する通信ステップと、をコンピュータに実行させ、
前記登録ユーザデータは、ユーザごとに、正規のパスワードが付加された正登録生体データと、偽のパスワードが付加されかつ前記正登録生体データと異なる偽登録生体データと、を含み、
前記セキュリティ回路は、暗号鍵を保持し、前記正規のパスワードの入力によって前記暗号鍵を解放する回路であり、パスワードの入力の失敗回数に上限が設定されていることを特徴とする生体認証プログラム。
【請求項8】
前記照合ステップにおいて、照合が成功した際の登録生体データに付加されたパスワードが前記正規のパスワードと一致しなかった場合に、前記登録生体データを照合対象から外すことを特徴とする請求項7記載の生体認証プログラム。
【請求項9】
前記生体情報取得ステップにおいて取得された生体情報から生体データを生成し、前記生体データにパスワードを付加し、登録生体データとして前記ユーザデータ記憶部に記憶させる登録生体データ作成ステップを、前記コンピュータにさらに実行させることを特徴とする請求項7または8記載の生体認証プログラム。
【請求項10】
前記登録生体データ作成ステップにおいて、
前記生体情報取得ステップにおいて取得された生体情報から生成した生体データに前記正規のパスワードを付加し、前記正登録生体データとして前記ユーザデータ記憶部に記憶させ、
前記生成した生体データにダミーの特徴データを付加し、偽のパスワードを付加し、前記偽登録生体データとして前記ユーザデータ記憶部に記憶させることを特徴とする請求項9記載の生体認証プログラム。
【請求項11】
前記登録生体データ作成ステップにおいて、前記生成した生体データに白および黒の図形をランダムに配置することによって、前記偽登録生体データを作成することを特徴とする請求項10記載の生体認証プログラム。
【請求項12】
前記セキュリティ回路は、ICカードであり、
前記送信ステップは、前記ICカードの情報を読み書き可能なICカードリーダライタであることを特徴とする請求項7〜11のいずれかに記載の生体認証プログラム。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2012−8951(P2012−8951A)
【公開日】平成24年1月12日(2012.1.12)
【国際特許分類】
【出願番号】特願2010−146599(P2010−146599)
【出願日】平成22年6月28日(2010.6.28)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】