(57)【要約】【課題】データの漏洩をより確実に防ぐことができるようにする。【解決手段】USBメモリ１の筐体表面には指紋センサ１１が設けられている。ユーザは、USBメモリ１をパーソナルコンピュータの外部の記憶媒体として用いるとき、USBメモリ１をパーソナルコンピュータに差し込んだ状態で１本の指の腹を指紋センサ１１にあて、指紋の照合をUSBメモリ１に行わせる必要がある。指紋による認証が、あらかじめ設定された回数を超えて連続して失敗した場合、USBメモリ１がロック状態となり、使用不可となるか、内部のフラッシュメモリに記憶されているデータが一括して消去される。本発明は、ユーザの認証機能を有するUSBメモリに適用することができる。【選択図】図１
2008210235.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリを内蔵し、情報処理装置に接続可能な電子機器において、
生体情報を読み取る読み取り手段と、
前記読み取り手段により読み取られた前記生体情報に基づいてユーザの認証を行う認証手段と、
前記認証手段による認証が失敗した回数を管理する管理手段と、
前記管理手段が管理する回数があらかじめ設定された閾値の回数を超えた場合、前記電子機器を使用不可の状態とするか、前記不揮発性メモリに記憶されているデータを消去する制御手段と
を備える電子機器。
【請求項２】
揮発性メモリをさらに内蔵し、
前記管理手段は、前記揮発性メモリに記憶される、前記認証手段による認証が失敗した回数を表す第１のカウント値を更新することによって前記認証手段による認証が失敗した回数を管理し、
前記制御手段は、前記第１のカウント値によって表される回数が前記閾値の回数を超えた場合、前記電子機器を使用不可の状態とするか、前記不揮発性メモリに記憶されているデータを消去する
請求項１に記載の電子機器。
【請求項３】
前記管理手段は、所定のタイミングで、前記第１のカウント値によって表される回数と同じ回数を表す第２のカウント値を前記不揮発性メモリに記憶させる
請求項２に記載の電子機器。
【請求項４】
前記電子機器の少なくとも一部の動作が、接続される前記情報処理装置から供給される電力を用いて行われる場合、
前記管理手段は、前記電子機器自身が前記情報処理装置に接続され、前記情報処理装置から電力が供給されることに応じて、前記不揮発性メモリに記憶されている前記第２のカウント値によって表される回数と同じ回数を表す前記第１のカウント値を前記揮発性メモリに記憶させる
請求項３に記載の電子機器。
【請求項５】
前記閾値の回数以下の回数を表す値をランダムに算出する算出手段をさらに備え、
前記管理手段は、前記算出手段により算出された値によって表される回数が、前記揮発性メモリに記憶されている前記第１のカウント値によって表される回数以下であるタイミングで、前記第１のカウント値によって表される回数と同じ回数を表す前記第２のカウント値を前記不揮発性メモリに記憶させる
請求項３に記載の電子機器。
【請求項６】
前記管理手段は、前記認証手段による認証が成功した場合、前記第１のカウント値と前記第２のカウント値をリセットする
請求項３に記載の電子機器。
【請求項７】
前記管理手段は、さらに、前記閾値の回数を表す値を前記不揮発性メモリに記憶させて管理する
請求項１に記載の電子機器。
【請求項８】
不揮発性メモリを内蔵し、情報処理装置に接続可能な電子機器の情報処理方法において、
生体情報を読み取り、
読み取った前記生体情報に基づいてユーザの認証を行い、
認証が失敗した回数を管理し、
管理する回数があらかじめ設定された閾値の回数を超えた場合、前記電子機器を使用不可の状態とするか、前記不揮発性メモリに記憶されているデータを消去する
ステップを含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器、および情報処理方法に関し、特に、データの漏洩をより確実に防ぐことができるようにした電子機器、および情報処理方法に関する。
【背景技術】
【０００２】
近年、フラッシュメモリの低価格化、大容量化が進んでいることなどから、PC(Personal Computer)によって作成したデータを記憶させておくための機器としてUSB(Universal Serial Bus)メモリが普及してきている。ユーザは、自分のPCに設けられるUSB端子にUSBメモリを差し込むことによって、USBメモリを外部の記憶媒体としてPCに認識させ、そこにデータを記憶させておくことができる。
【０００３】
USBメモリの中には、それ自体が指紋認証機能を有しているものもある。例えば、PCにUSBメモリを差し込んだ状態でUSBメモリの筐体表面に設けられるセンサにユーザが指を置いたとき、センサによって指紋の検出が行われ、検出された指紋と、あらかじめ登録されている指紋の照合がUSBメモリ内で行われる。認証が成功したとき、ユーザは、USBメモリに記憶されているデータをPCから読み出したりすることができるようになる。
【０００４】
これにより、データを読み出すためには認証を成功させることが必要になるから、USBメモリに記憶させておいたプライバシーデータが他人によって見られてしまうのを防ぐことができるようになされている。
【０００５】
特許文献１には、認証装置による認証が成功した場合に、外部記憶装置が上位の装置から認識されるようにした技術が開示されている。特許文献２には、外部の端末からUSB周辺機器に対するアクセスを制御するプログラム、プログラムの実行の可否を認証するプログラムなどをUSBキーに記憶させておき、それにより、USB周辺機器からの情報の漏洩を防止することができるようにした技術が開示されている。
【特許文献１】特開２００６−１５５２１７号公報
【特許文献２】特開２００６−１４６３５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
指紋による認証は、確率は低いとしても何万分の１、何十万分の１などの確率で他人の指でも成功してしまうものであることから、認証行為を無制限に試すことができるとすると、USBメモリの紛失や盗難が起きたときに他人によって内部のデータへのアクセスが行われ、内部のデータが漏洩してしまうおそれがある。
【０００７】
本発明はこのような状況に鑑みてなされたものであり、データの漏洩をより確実に防ぐことができるようにするものである。
【課題を解決するための手段】
【０００８】
本発明の一側面の電子機器は、不揮発性メモリを内蔵し、情報処理装置に接続可能な電子機器において、生体情報を読み取る読み取り手段と、前記読み取り手段により読み取られた前記生体情報に基づいてユーザの認証を行う認証手段と、前記認証手段による認証が失敗した回数を管理する管理手段と、前記管理手段が管理する回数があらかじめ設定された閾値の回数を超えた場合、前記電子機器を使用不可の状態とするか、前記不揮発性メモリに記憶されているデータを消去する制御手段とを備える。
【０００９】
揮発性メモリをさらに内蔵させることができる。この場合、前記管理手段には、前記揮発性メモリに記憶される、前記認証手段による認証が失敗した回数を表す第１のカウント値を更新することによって前記認証手段による認証が失敗した回数を管理させ、前記制御手段には、前記第１のカウント値によって表される回数が前記閾値の回数を超えた場合、前記電子機器を使用不可の状態とするか、前記不揮発性メモリに記憶されているデータを消去させることができる。
【００１０】
前記管理手段には、所定のタイミングで、前記第１のカウント値によって表される回数と同じ回数を表す第２のカウント値を前記不揮発性メモリに記憶させることができる。
【００１１】
前記電子機器の少なくとも一部の動作が、接続される前記情報処理装置から供給される電力を用いて行われる場合、前記管理手段には、前記電子機器自身が前記情報処理装置に接続され、前記情報処理装置から電力が供給されることに応じて、前記不揮発性メモリに記憶されている前記第２のカウント値によって表される回数と同じ回数を表す前記第１のカウント値を前記揮発性メモリに記憶させることができる。
【００１２】
前記閾値の回数以下の回数を表す値をランダムに算出する算出手段をさらに設けることができる。この場合、前記管理手段には、前記算出手段により算出された値によって表される回数が、前記揮発性メモリに記憶されている前記第１のカウント値によって表される回数以下であるタイミングで、前記第１のカウント値によって表される回数と同じ回数を表す前記第２のカウント値を前記不揮発性メモリに記憶させることができる。
【００１３】
前記管理手段には、前記認証手段による認証が成功した場合、前記第１のカウント値と前記第２のカウント値をリセットさせることができる。
【００１４】
前記管理手段には、さらに、前記閾値の回数を表す値を前記不揮発性メモリに記憶させて管理させることができる。
【００１５】
本発明の一側面の情報処理方法は、不揮発性メモリを内蔵し、情報処理装置に接続可能な電子機器の情報処理方法において、生体情報を読み取り、読み取った前記生体情報に基づいてユーザの認証を行い、認証が失敗した回数を管理し、管理する回数があらかじめ設定された閾値の回数を超えた場合、前記電子機器を使用不可の状態とするか、前記不揮発性メモリに記憶されているデータを消去するステップを含む。
【００１６】
本発明の一側面においては、生体情報が読み取られ、読み取られた生体情報に基づいてユーザの認証が行われる。また、認証が失敗した回数が管理され、管理される回数があらかじめ設定された閾値の回数を超えた場合、電子機器が使用不可の状態とされるか、不揮発性メモリに記憶されているデータが消去される。
【発明の効果】
【００１７】
本発明の一側面によれば、データの漏洩をより確実に防ぐことができる。
【発明を実施するための最良の形態】
【００１８】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外には対応しないものであることを意味するものでもない。
【００１９】
本発明の一側面の電子機器（例えば、図１の指紋照合機能付きUSBメモリ１）は、不揮発性メモリ（例えば、図２のフラッシュメモリ２２）を内蔵し、情報処理装置に接続可能な電子機器において、生体情報を読み取る読み取り手段（例えば、図２の指紋センサ１１）と、前記読み取り手段により読み取られた前記生体情報に基づいてユーザの認証を行う認証手段（例えば、図２の指紋照合エンジン３７）と、前記認証手段による認証が失敗した回数を管理する管理手段（例えば、図４のカウンタ管理部５１）と、前記管理手段が管理する回数があらかじめ設定された閾値の回数を超えた場合、前記電子機器を使用不可の状態とするか、前記不揮発性メモリに記憶されているデータを消去する制御手段（例えば、図４の制御部５３）とを備える。
【００２０】
この電子機器には、揮発性メモリ（例えば、図２のRAM３６Ａ）をさらに設けることができる。
【００２１】
また、前記閾値の回数以下の回数を表す値をランダムに算出する算出手段（例えば、図４の乱数生成部５２）をさらに設けることができる。
【００２２】
本発明の一側面の情報処理方法は、不揮発性メモリを内蔵し、情報処理装置に接続可能な電子機器の情報処理方法において、生体情報を読み取り、読み取った前記生体情報に基づいてユーザの認証を行い、認証が失敗した回数を管理し、管理する回数があらかじめ設定された閾値の回数を超えた場合、前記電子機器を使用不可の状態とするか、前記不揮発性メモリに記憶されているデータを消去するステップ（例えば、図８のステップＳ２１）を含む。
【００２３】
以下、本発明の実施の形態について図を参照して説明する。
【００２４】
図１は、本発明の一実施形態に係る指紋照合機能付きUSBメモリ１の外観の例を示す図である。
【００２５】
指紋照合機能付きUSBメモリ１（以下、単にUSBメモリ１という）は箱形の筐体からなり、筐体の側面に設けられるUSB端子１Ａが差し込まれることによって、USB端子が設けられるパーソナルコンピュータなどに接続される。
【００２６】
USBメモリ１にはフラッシュメモリが内蔵されており、ユーザは、USBメモリ１をパーソナルコンピュータに差し込み、USBメモリ１を外部の記憶媒体としてパーソナルコンピュータに認識させることによって、パーソナルコンピュータを用いて作成した各種のデータをUSBメモリ１に記憶させておくことができる。
【００２７】
USBメモリ１の筐体表面には指紋センサ１１が露出して設けられている。ユーザは、USBメモリ１をパーソナルコンピュータの外部の記憶媒体として用いるとき、USBメモリ１をパーソナルコンピュータに差し込んだ状態で１本の指の腹を指紋センサ１１にあて、指紋の照合を行わせる必要がある。指紋センサ１１により読み取られたユーザの指紋のデータは、ユーザによってあらかじめ登録され、USBメモリ１内に記憶されている指紋のデータとUSBメモリ１によって照合され、それらが一致したとき、ユーザは、USBメモリ１に対してパーソナルコンピュータからデータを記憶させたり、USBメモリ１に記憶されているデータをパーソナルコンピュータから読み出したりすることが可能となる。
【００２８】
USBメモリ１の筐体表面には指置き指示用LED(Light Emitting Diode)１２も設けられている。指置き指示用LED１２は、USBメモリ１がパーソナルコンピュータに差し込まれ、パーソナルコンピュータから電力が供給されたときに点滅を開始し、それにより、指紋センサ１１に指を置き、指紋による認証を行うことをユーザに促す。
【００２９】
このような外観を有するUSBメモリ１は、指紋による認証が、あらかじめ設定された回数を超えて連続して失敗した場合、USBメモリ１自身を使用不可の状態としたり、内部のフラッシュメモリに記憶されているデータを一括して消去したりする機能を有する。使用不可の状態には、USBメモリ１をパーソナルコンピュータに差し込んだとしても、指紋による認証を行うことすらできなくなる状態が含まれる。
【００３０】
従って、USBメモリ１を所有者から不正に入手した者や、所有者が紛失したUSBメモリ１を拾った者が自分の指紋を使って認証を繰り返し試すことによって、ついには認証成功としてUSBメモリ１に認識させ、内部のフラッシュメモリに記憶されているデータに不正にアクセスすることが可能になってしまうことを防ぐことができる。
【００３１】
指紋による認証においては、他人の指紋を使って認証を行ったとしても誤って認証成功と判断されることがあるから、無制限に認証を試すことができるものとするといつかはそのような状態になってしまうことになるが、指紋による認証が閾値の回数を超えて連続して失敗したタイミングで、それ以降、使用不可の状態とし、無制限に認証を試すことができなくしたりすることにより、データの漏洩をより確実に防ぐことが可能となる。
【００３２】
使用不可の状態としたり、フラッシュメモリに記憶されているデータを一括して消去したりするUSBメモリ１の一連の処理についてはフローチャートを参照して後述する。
【００３３】
図２は、USBメモリ１のハードウエア構成例を示すブロック図である。図１に示される構成と同じ構成には同じ符号を付してある。
【００３４】
図２に示されるように、USBメモリ１は、基本的に、コントローラLSI(Large Scale Integrated Circuit)２１に対して指紋センサ１１、指置き指示用LED１２、フラッシュメモリ２２、および水晶発振子２３が接続されることによって構成される。これらの構成のうちの少なくとも一部は、USBメモリ１が、外部の情報処理装置であるホストPC２のUSB端子に差し込まれているときに供給される電力を用いて動作する。
【００３５】
コントローラLSI２１は、USB I/F(Interface)３１、LEDコントローラ３２、CPU(Central Processing Unit)３３、暗号エンジン３４、EEPROM(Electrically Erasable and Programmable Read Only Memory)３５、プログラム用RAM/ROM(Random Access Memory/Read Only Memory)３６、指紋照合エンジン３７、PLL(Phase Lock Loop)３８、およびフラッシュメモリI/F３９がバス４０を介して接続されることによって構成される。
【００３６】
USB I/F３１は、ホストPC２とUSB規格に従って通信を行う。USB I/F３１は、ホストPC２から送信されてきたデータを受信し、受信したデータをバス４０に出力する。バス４０に出力されたデータは、暗号エンジン３４により暗号化された後、フラッシュメモリI/F３９に供給され、フラッシュメモリ２２に記憶される。
【００３７】
また、USB I/F３１は、フラッシュメモリ２２からフラッシュメモリI/F３９により読み出され、暗号エンジン３４により復号されたデータがバス４０を介して供給されたとき、それをホストPC２に送信する。
【００３８】
LEDコントローラ３２は、CPU３３による制御に従って指置き指示用LED１２を発光させる。
【００３９】
CPU３３は、プログラム用RAM/ROM３６内のROM３６Ｂに記憶されているプログラムをRAM３６Ａに展開して実行することによって、バス４０を介して接続される各部の動作を制御する。
【００４０】
例えば、CPU３３は、指紋による認証が失敗したことが指紋照合エンジン３７から通知される毎に、RAM３６Ａに記憶させているカウント値を１ずつインクリメントし、カウント値によって表される、指紋による認証が連続して失敗した回数（認証連続失敗回数）が閾値の回数を超えた場合、USBメモリ１の状態を、それ以降使用できなくするロック状態としたり、フラッシュメモリI/F３９を制御して、フラッシュメモリ２２に記憶されているデータを一括して消去させたりする。
【００４１】
また、CPU３３は、適宜、RAM３６Ａに記憶させているカウント値をフラッシュメモリ２２にコピーすることによって、認証が何回か連続して失敗した段階でUSBメモリ１をホストPC２から抜き取り、それまでの認証連続失敗回数をリセットさせるといった不正な行為が行われるのを防ぐことも行う。RAM３６Ａは揮発性のメモリであるから、USBメモリ１がホストPC２から抜き取られ、電力が供給されなくなったとき、RAM３６Ａに記憶されているカウント値などのデータは消去されてしまう。
【００４２】
仮に、カウント値がRAM３６Ａにだけ記憶されるとした場合、認証連続失敗回数が閾値の回数を超える前に一度抜き取り、カウント値をリセットさせてから再度差し込むことを繰り返すことにより認証を無制限に試すことができてしまうことになるが、このように、ホストPC２から抜き取られる前の所定のタイミングで、RAM３６Ａに記憶されているカウント値を不揮発性のメモリであるフラッシュメモリ２２にコピー、いわば退避させておき、再度差し込まれたときには、フラッシュメモリ２２に記憶されているカウント値によって表される回数から認証連続失敗回数を管理することにより、認証が無制限に行われるのを防ぐことが可能となる。
【００４３】
カウント値をフラッシュメモリ２２にだけ記憶させておき、そのカウント値を更新して認証連続失敗回数を管理するとした場合、カウント値がリセットされ、認証が無制限に行われるといった問題を解消することができるが、この場合、フラッシュメモリ２２の寿命が問題になる。
【００４４】
すなわち、NAND型フラッシュメモリなどよりなるフラッシュメモリ２２は、RAM３６Ａに較べて、データの書き換え回数に制限があるメモリであり、フラッシュメモリ２２に記憶されているカウント値を認証が失敗する毎に更新するとした場合、それにより残りの書き換え可能回数が少なくなってしまうことになるが、更新の対象となるカウント値はRAM３６Ａに記憶されているカウント値とし、それを、RAM３６Ａに記憶されているカウント値の更新頻度より少ない頻度でフラッシュメモリ２２にコピーすることによって、不正な行為が行われるのを防ぎつつ、フラッシュメモリ２２の寿命を延ばすことが可能となる。
【００４５】
CPU３３は、ホストPC２によるフラッシュメモリ２２に対するアクセスを制御し、指紋による認証が成功したことが指紋照合エンジン３７から通知されたとき、フラッシュメモリ２２に対するアクセスを許可することなども行う。
【００４６】
暗号エンジン３４は、ホストPC２から送信された書き込みの対象とするデータがバス４０を介して供給されたとき、そのデータをEEPROM３５に記憶されている暗号鍵を用いて暗号化し、暗号化して得られたデータをフラッシュメモリI/F３９に出力する。
【００４７】
また、暗号エンジン３４は、フラッシュメモリ２２に記憶されているデータがフラッシュメモリI/F３９により読み出され、読み出されたデータが供給されたとき、供給されたデータに施されている暗号をEEPROM３５に記憶されている暗号鍵を用いて復号し、復号して得られたデータをUSB I/F３１に出力して、ホストPC２に送信させる。
【００４８】
EEPROM３５は、RSA、AES(Advanced Encryption Standard)、DES(Data Encryption Standard)などの暗号鍵を記憶する。EEPROM３５に記憶されている暗号鍵は暗号エンジン３４により適宜読み出され、データの暗号化、または暗号化されているデータの復号に用いられる。EEPROM３５に記憶される暗号鍵は、例えば、ユーザにより指紋の登録が行われたとき、登録された指紋のデータの一部と、EEPROM３５にあらかじめ記憶されているデータとを用いて生成される。
【００４９】
プログラム用RAM/ROM３６はRAM３６ＡとROM３６Ｂからなり、CPU３３により実行されるプログラムの他、CPU３３が各種の処理を実行する上で必要な各種のデータを記憶する。上述したように、RAM３６Ａには、認証連続失敗回数を表すカウント値なども記憶される。
【００５０】
指紋照合エンジン３７は、指紋センサ１１に設定された複数の比較的狭い範囲において指紋が読み取られることによって出力されるRF信号の信号レベルの積算値が閾値を超えたとき、指紋センサ１１に指が置かれたと判断し、指紋の読み取りを開始する。
【００５１】
また、指紋照合エンジン３７は、指紋センサ１１からの出力に基づいて読み取った指紋を照合対象の指紋とし、フラッシュメモリ２２に記憶されている指紋テンプレートを用いて特徴の照合を行う。指紋照合エンジン３７は、照合対象の指紋の特徴と、指紋テンプレートにより表される特徴が一致する場合、指紋センサ１１に指を置いたユーザが正当なユーザであると判定し、指紋による認証が成功したことをCPU３３に通知する。
【００５２】
指紋テンプレートはEEPROM３５に記憶されている暗号鍵によって暗号化された状態でフラッシュメモリ２２に記憶されている。指紋の照合を行うとき、指紋照合エンジン３７に対しては、暗号鍵を用いて暗号エンジン３４により復号された指紋テンプレートが供給される。
【００５３】
PLL３８は、コントローラLSI２１内の各部が動作するのに必要なクロックを水晶発振子２３から供給されたクロックに基づいて生成し、生成したクロックを各部に供給する。
【００５４】
フラッシュメモリI/F３９は、フラッシュメモリ２２に対するデータの書き込み、またはフラッシュメモリ２２に記憶されているデータの読み出しを制御する。
【００５５】
例えば、フラッシュメモリI/F３９は、暗号エンジン３４により暗号化され、バス４０を介して供給されたデータをフラッシュメモリ２２に記憶させる。また、フラッシュメモリI/F３９は、暗号化された状態でフラッシュメモリ２２に記憶されているデータを読み出し、読み出したデータをバス４０を介して暗号エンジン３４に出力する。
【００５６】
フラッシュメモリ２２は、フラッシュメモリI/F３９による制御に従って各種のデータを記憶する。
【００５７】
水晶発振子２３は所定の周波数のクロックをPLL３８に出力する。
【００５８】
図３は、フラッシュメモリ２２に形成される領域の例を示す図である。
【００５９】
図３に示されるように、フラッシュメモリ２２の記憶領域全体は領域Ａ1と領域Ａ2に分けられる。
【００６０】
領域Ａ1には、EEPROM３５に記憶されている暗号鍵を用いて暗号化された指紋テンプレート、秘密鍵（個別鍵）が記憶される。この領域Ａ1は、指紋による認証が成功した後であっても、記憶されているデータに関する情報がUSBメモリ１からホストPC２に通知されず、ホストPC２からはアクセスすることができない領域とされる。
【００６１】
領域Ａ1に記憶されている秘密鍵は、これに対応する公開鍵を用いて他の装置において暗号化されたデータを復号するのに用いられる。また、秘密鍵は、ホストPC２を用いてユーザが作成したデータに付加する電子署名データを生成するのに用いられる。
【００６２】
このように、USBメモリ１にはPKI(Public Key Infrastructure)を実現するために用いられる鍵や、データの暗号化、復号に用いられる鍵などが記憶されており、USBメモリ１はハードウェアトークンとしての機能も有している。
【００６３】
一方、領域Ａ2には、EEPROM３５に記憶されている暗号鍵を用いて暗号化されたデータが記憶される。指紋による認証が成功した後、領域Ａ2はホストPC２からアクセス可能な領域となり、ホストPC２からデータを記憶させたり、そこに記憶されているデータをホストPC２が読み出したりすることが可能となる。
【００６４】
領域Ａ2にデータを記憶させるときのデータの暗号化、領域Ａ2に暗号化された状態で記憶されているデータを読み出すときのデータの復号は、ホストPC２から送信されてくるコマンドに応じてUSBメモリ１内で自動的に行われるから、データの読み書きに際して、ホストPC２が暗号処理を意識する必要はない。
【００６５】
図４は、USBメモリ１の機能構成例を示すブロック図である。図４に示す機能部のうちの少なくとも一部は、図２のCPU３３により所定のプログラムが実行されることによって実現される。
【００６６】
図４に示されるように、USBメモリ１においてはカウンタ管理部５１、乱数生成部５２、および制御部５３が実現される。指紋照合エンジン３７からの認証が成功したことの通知、失敗したことの通知はカウンタ管理部５１と制御部５３に入力される。
【００６７】
カウンタ管理部５１は、認証連続失敗回数をカウンタによって管理し、その回数を表すカウント値をRAM３６Ａ、またはフラッシュメモリ２２に記憶させる。RAM３６Ａとフラッシュメモリ２２に記憶されているカウント値は、認証が成功したことが指紋照合エンジン３７から通知されたときにリセットされる。
【００６８】
また、カウンタ管理部５１は、RAM３６Ａに記憶されているカウント値によって表される回数が、あらかじめ設定されている閾値の回数を超えた場合、制御部５３を制御し、USBメモリ１の状態をロック状態にさせたり、フラッシュメモリ２２の領域Ａ2に記憶されているデータを消去させたりする。閾値の回数を表す値は例えばフラッシュメモリ２２に記憶されている。カウンタ管理部５１は、乱数を乱数生成部５２に生成させることも行う。
【００６９】
図５は、RAM３６Ａとフラッシュメモリ２２に記憶され、カウンタ管理部５１により管理されるデータの例を示す図である。
【００７０】
図５に示されるように、RAM３６Ａには認証連続失敗回数を表す値である認証失敗カウント値が記憶され、フラッシュメモリ２２には、認証失敗カウント値と、USBメモリ１の状態をロック状態にさせたりするときのタイミングの判断に用いられる閾値の値としてのロックカウント値が記憶される。
【００７１】
ロックカウント値は、例えば、USBメモリ１の初期設定時にユーザにより指定された認証連続失敗回数の上限に応じて生成され、フラッシュメモリ２２に記憶される。認証失敗カウント値とロックカウント値が記憶されるフラッシュメモリ２２の領域は、図３の領域Ａ1であってもよいし、領域Ａ2であってもよい。
【００７２】
フラッシュメモリ２２に記憶されている認証失敗カウント値は、RAM３６Ａに記憶されている認証失敗カウント値が所定のタイミングでコピーされたものである。フラッシュメモリ２２へのコピーはRAM３６Ａに記憶されている認証失敗カウント値の更新頻度より少ない頻度で行われるから、タイミングによっては、RAM３６Ａに記憶されている認証失敗カウント値とフラッシュメモリ２２に記憶されている認証失敗カウント値が異なる回数を表す値になることがある。
【００７３】
以下、適宜、RAM３６Ａに記憶されている認証失敗カウント値を値AC-1、フラッシュメモリ２２に記憶されている認証失敗カウント値を値AC-2として説明する。また、フラッシュメモリ２２に記憶されているロックカウント値を値LCとして説明する。
【００７４】
図４の説明に戻り、乱数生成部５２は、カウンタ管理部５１による制御に従って乱数を生成し、生成した乱数をカウンタ管理部５１に出力する。乱数生成部５２により生成された乱数は、RAM３６Ａに記憶されている値AC-1を値AC-2としてフラッシュメモリ２２にコピーするタイミングを判断するのに用いられる。
【００７５】
制御部５３は、指紋照合エンジン３７からの通知に基づいてフラッシュメモリI/F３９を制御し、ホストPC２によるフラッシュメモリ２２へのアクセスを管理する。例えば、制御部５３は、認証が成功したことが指紋照合エンジン３７から通知されたとき、フラッシュメモリ２２へのアクセスを許可し、認証が失敗したことが指紋照合エンジン３７から通知されたとき、フラッシュメモリ２２へのアクセスを禁止する。
【００７６】
また、制御部５３は、認証連続失敗回数が閾値の回数を超えた、すなわち、値AC-1が値LCを超えたことがカウンタ管理部５１から通知されたとき、USBメモリ１をロック状態としてそれ以降使用不可の状態としたり、フラッシュメモリI/F３９を制御し、フラッシュメモリ２２に記憶されているデータを消去したりする。
【００７７】
次に、以上のような構成を有するUSBメモリ１の処理について説明する。
【００７８】
はじめに、図６のフローチャートを参照して、指紋を登録するUSBメモリ１の処理について説明する。
【００７９】
この処理は、USBメモリ１が接続されるホストPC２を操作するなどして、指紋の登録を行うことがユーザにより指示されたときに開始される。ユーザによる指示が行われたとき、指紋の登録を開始することを指示するコマンドがホストPC２からUSBメモリ１に送信される。
【００８０】
ステップＳ１において、指紋照合エンジン３７は、指紋センサ１１に指が置かれたか否かを判定し、指が置かれたと判定するまで待機する。
【００８１】
ステップＳ１において指が置かれたと判定した場合、ステップＳ２において、指紋照合エンジン３７は、指紋センサ１１から供給されたRF信号を指紋読み取りデータとして取り込む。
【００８２】
ステップＳ３において、指紋照合エンジン３７は、指紋センサ１１により読み取られた指紋の特徴を表すデータを指紋テンプレートとして取り出す。指紋照合エンジン３７により取り出された指紋テンプレートはバス４０を介して暗号エンジン３４に出力される。
【００８３】
ステップＳ４において、暗号エンジン３４は、EEPROM３５に記憶されている暗号鍵を用いて指紋テンプレートを暗号化し、暗号化した指紋テンプレートをフラッシュメモリI/F３９に出力してフラッシュメモリ２２の領域Ａ1（図３）に記憶させる。指紋テンプレートは、暗号鍵を用いて暗号化された後、フラッシュメモリ２２ではなくEEPROM３５に記憶されるようにしてもよい。
【００８４】
次に、図７および図８のフローチャートを参照して、ユーザの認証を行うUSBメモリ１の処理について説明する。
【００８５】
この処理は、ユーザがUSBメモリ１をホストPC２のUSB端子に差し込んだときに開始される。USBメモリ１をホストPC２のUSB端子に差し込んだとき、ホストPC２からUSBメモリ１に対して電力が供給され、USBメモリ１の状態が電源オンの状態になる。
【００８６】
ステップＳ１１において、カウンタ管理部５１は、フラッシュメモリ２２に記憶されている値AC-2を読み出し、値AC-1としてRAM３６Ａにコピーする。ここでは、値AC-1と値AC-2は同じ回数を表す値になる。
【００８７】
ステップＳ１２において、LEDコントローラ３２は、指置き指示用LED１２の点滅を開始させ、認証を行うことをユーザに促す。
【００８８】
ステップＳ１３において、指紋照合エンジン３７は、指紋センサ１１に指が置かれたか否かを判定し、指が置かれたと判定するまで待機する。
【００８９】
ステップＳ１３において指が置かれたと判定した場合、指紋照合エンジン３７は、ステップＳ１４において、指紋センサ１１から供給されたRF信号に基づいて指紋読み取りデータを取り込む。
【００９０】
ステップＳ１５において、指紋照合エンジン３７は、指紋読み取りデータによって表される指紋を照合対象の指紋とし、照合対象の指紋から抽出した特徴と、EEPROM３５に記憶されている暗号鍵によって復号され、暗号エンジン３４から供給された指紋テンプレートにより表される特徴との照合を行う。
【００９１】
ステップＳ１６において、指紋照合エンジン３７は、認証が成功したか否かを判定する。認証が成功したか否かの判定結果は指紋照合エンジン３７からカウンタ管理部５１と制御部５３に通知される。
【００９２】
認証が成功したとステップＳ１６において判定された場合、ステップＳ１７において、制御部５３は、フラッシュメモリ２２にアクセスすることをホストPC２に許可し、ホストPC２から供給されたデータの書き込み、ホストPC２から指定されたデータの読み出しを制御する。
【００９３】
ステップＳ１８において、カウンタ管理部５１は、RAM３６Ａに記憶されている値AC-1とフラッシュメモリ２２に記憶されている値AC-2をリセットし、処理を終了させる。
【００９４】
一方、照合対象の指紋から抽出した特徴と、指紋テンプレートにより表される特徴が一致しないことから、認証が失敗したとステップＳ１６において判定された場合、ステップＳ１９において、カウンタ管理部５１は、RAM３６Ａに記憶されている値AC-1を１だけインクリメントし、値AC-1によって表される認証連続失敗回数を増やす。
【００９５】
ステップＳ２０において、カウンタ管理部５１は、フラッシュメモリ２２に記憶されている値LCと、RAM３６Ａに記憶されている値AC-1を比較し、値AC-1が値LCを超えたか否かを判定する。
【００９６】
値AC-1が値LCを超えたとステップＳ２０において判定した場合、ステップＳ２１において、カウンタ管理部５１は、そのことを制御部５３に通知し、USBメモリ１の状態をロック状態にさせるか、フラッシュメモリ２２に記憶されているデータを消去させる。その後、処理は終了される。
【００９７】
一方、値AC-1が値LCを超えていないとステップＳ２０において判定した場合、ステップＳ２２において、カウンタ管理部５１は、フラッシュメモリ２２に記憶されている値AC-2が０であるか否かを判定する。
【００９８】
値AC-2が０であるとステップＳ２２において判定した場合、ステップＳ２３において、カウンタ管理部５１は、乱数生成部５２に乱数を生成させ、乱数生成部５２により生成された乱数に基づいて、値LC以下の値である値RCを算出する。所定の桁数の１０進数の数字を１６進数で表し、下１桁の値を値RCとするなどして算出されるから、値RCはランダムな値となる。
【００９９】
例えば、ホストPC２に前回差し込まれていたときに行われた認証が成功していたことから、値AC-2として０回を表す値がフラッシュメモリ２２に記憶されており、直前に検出された認証の失敗が１回目の失敗である場合、値AC-2が０であるとして判定され、乱数に基づいて値RCが算出される。
【０１００】
また、直前に検出された認証の失敗が複数回目の失敗であっても、乱数に基づいて算出された値RCを用いた判定により、RAM３６Ａに記憶されている値AC-1を値AC-2としてフラッシュメモリ２２にコピーすることが未だ行われていない場合、値AC-2が０であるとして判定され、乱数に基づいて値RCが算出される。
【０１０１】
ステップＳ２４において、カウンタ管理部５１は、値RCが、RAM３６Ａに記憶されている値AC-1以下の値であるか否かを判定する。
【０１０２】
値AC-1より小さい値か同じ値であり、値RCが値AC-1以下の値であるとステップＳ２４において判定した場合、ステップＳ２５において、カウンタ管理部５１は、連続認証失敗回数カウントアップモードとし、RAM３６Ａに記憶されている値AC-1を値AC-2としてフラッシュメモリ２２にコピーする。連続認証失敗回数カウントアップモードにおいては、フラッシュメモリ２２に記憶されている値AC-2も認証が失敗する毎に更新される。
【０１０３】
これにより、USBメモリ１がホストPC２から抜き取られ、揮発性のメモリであるRAM３６Ａに記憶されていた値AC-1がリセットされた場合であっても、フラッシュメモリ２２には、連続認証失敗回数が１回以上であることを表す値が残ることになる。その後、ステップＳ１３に戻り、それ以降の処理が繰り返される。
【０１０４】
また、値AC-1より大きい値であり、値RCが値AC-1以下の値ではないとステップＳ２４において判定された場合、ステップＳ２５の処理はスキップされ、ステップＳ１３以降の処理が繰り返される。この場合、RAM３６Ａに記憶されている値AC-1を値AC-2としてフラッシュメモリ２２にコピーすることは行われない。
【０１０５】
一方、ステップＳ２２において、フラッシュメモリ２２に記憶されている値AC-2が０ではないと判定した場合、すなわち、既に認証が失敗しており、値AC-1のコピーにより１以上の認証連続失敗回数を表す値AC-2がフラッシュメモリ２２に記憶されている場合、カウンタ管理部５１は、ステップＳ２３，Ｓ２４の処理をスキップし、ステップＳ２５において、RAM３６Ａに記憶されているいまの値AC-1を値AC-2としてフラッシュメモリ２２にコピーし、値AC-2を更新する。その後、ステップＳ１３に戻り、それ以降の処理が繰り返される。
【０１０６】
以上のように、値AC-1が閾値の回数を表す値LCを超えたタイミングでUSBメモリ１の状態がロック状態になったり、フラッシュメモリ２２に記憶されているデータが消去されたりすることにより、データの漏洩をより確実に防ぐことができる。
【０１０７】
また、フラッシュメモリ２２に記憶されている値AC-2が０である場合、認証が失敗したときであっても、最新の連続認証失敗回数を表す値としてRAM３６Ａに記憶されている値AC-1をフラッシュメモリ２２にすぐにコピーせずに、値RCが値AC-1以下の値であるときにはじめてコピーすることにより、フラッシュメモリ２２の書き換え回数を抑えることができ、フラッシュメモリ２２の寿命を延ばすことができる。
【０１０８】
さらに、フラッシュメモリ２２に記憶されている値AC-2が０である場合の値AC-1のコピーのタイミングが、乱数に基づいて算出された値RCに基づいて決定されるため、値AC-1のコピーのタイミングをUSBメモリ１を使っている者に知られないで済み、不正な行為が行われるのを防ぐことができる。
【０１０９】
例えば、RAM３６Ａに記憶されている値AC-1が５だけ増える毎に、すなわち、５回、１０回、１５回、・・・といったように連続して５回失敗する毎に値AC-1をフラッシュメモリ２２にコピーし、そのときの連続認証失敗回数をフラッシュメモリ２２に残すものとした場合、そのことをUSBメモリ１を使っている者が知っているときには、連続して４回失敗する毎にUSBメモリ１をホストPC２から抜き取り、値AC-1をリセットさせることによって、正しい認証連続失敗回数がフラッシュメモリ２２に残ることを防ぐといった不正な行為を行うことが可能となるが、コピーのタイミングがランダムに決定されることにより、そのような行為が行われるのを防ぐことができる。
【０１１０】
ここで、図７、図８の処理によってRAM３６Ａとフラッシュメモリ２２に記憶される認証失敗カウント値の更新の具体例について説明する。
【０１１１】
ここでは、連続して５回までの失敗を許可するとしてユーザが設定していたことから、値LCとして「５」がフラッシュメモリ２２に記憶されている場合について説明する。図９乃至図１２は１つ目の例を示し、図１３乃至図１５は２つ目の例を示す。
【０１１２】
図９は、ホストPC２に前回差し込まれたときに行われた認証が成功していたことから、値AC-2として「０」がフラッシュメモリ２２に記憶されているUSBメモリ１がホストPC２に差し込まれたときの例を示す図である。
【０１１３】
値AC-2として「０」が記憶されているUSBメモリ１がホストPC２に差し込まれ、USBメモリ１が電源オンの状態になったとき、図９に示されるように、値AC-2がコピーされ、RAM３６Ａには、値AC-1として「０」が記憶される（図７のステップＳ１１）。
【０１１４】
値AC-1として「０」が記憶された図９の状態で行われた認証が失敗した場合、図１０に示されるように、RAM３６Ａに記憶されている値AC-1が１だけインクリメントされ、値AC-1として「１」が記憶される（図８のステップＳ１９）。値AC-1は値LCを超えていないから、USBメモリ１はまだロック状態などにはならない。
【０１１５】
例えば、乱数に基づいて算出された、値LC以下の値である値RCが「２」、「３」、「４」、「５」のいずれかであった場合、値RCは値AC-1以下の値ではないと判定されるから（図８のステップＳ２４）、値AC-1をフラッシュメモリ２２にコピーすることは行われず、図１０に示されるように、値AC-2は「０」のままになる。
【０１１６】
値AC-1として「１」が記憶された図１０の状態で続けて行われた認証が再度失敗した場合、図１１に示されるように、RAM３６Ａに記憶されている値AC-1が１だけインクリメントされ、値AC-1として「２」が記憶される（図８のステップＳ１９）。値AC-1は値LCを超えていないから、USBメモリ１はまだロック状態などにはならない。
【０１１７】
例えば、乱数に基づいて算出された、値LC以下の値である値RCが「１」と「２」のいずれかであった場合、値RCは値AC-1以下の値であると判定されるから（図８のステップＳ２４）、連続認証失敗回数カウントアップモードとなり、図１１に示されるように、値AC-1は値AC-2としてフラッシュメモリ２２にコピーされ、値AC-2は「２」となる。これにより、この状態でUSBメモリ１がホストPC２から抜き取られた場合であっても、認証連続失敗回数は２回としてフラッシュメモリ２２に残ることになる。
【０１１８】
繰り返し行われた認証が失敗し、RAM３６Ａに記憶されている値AC-1が１ずつインクリメントされた結果、図１２に示されるように、値AC-1として「６」が記憶された場合、値AC-1は値LCを超えたと判定されるから（図８のステップＳ２０）、USBメモリ１の状態がロック状態とされるか、フラッシュメモリ２２に記憶されているデータが消去される（図８のステップＳ２１）。ロック状態は、例えば、専用のボタンが押されるなどの初期化の操作が行われることに応じて解除されるようにしてもよい。
【０１１９】
なお、連続認証失敗回数カウントアップモードにおいては、フラッシュメモリ２２に記憶されている値AC-2も認証が失敗する毎に更新されるから、図１２においては、値AC-2は「５」となっている。
【０１２０】
図１３は、ホストPC２に前回差し込まれたときに行われた認証が３回連続して失敗していたことから、値AC-2として「３」がフラッシュメモリ２２に記憶されているUSBメモリ１がホストPC２に差し込まれたときの例を示す図である。
【０１２１】
値AC-2として「３」が記憶されているUSBメモリ１がホストPC２に差し込まれ、USBメモリ１が電源オンの状態になったとき、図１３に示されるように、値AC-2がコピーされ、RAM３６Ａには、値AC-1として「３」が記憶される（図７のステップＳ１１）。
【０１２２】
値AC-1として「３」が記憶された図１３の状態で行われた認証が失敗した場合、認証連続失敗回数は４回となるから、図１４に示されるように、RAM３６Ａに記憶されている値AC-1が１だけインクリメントされ、値AC-1として「４」が記憶される（図８のステップＳ１９）。値AC-1は値LCを超えていないから、USBメモリ１はまだロック状態などにはならない。
【０１２３】
例えば、乱数に基づいて算出された、値LC以下の値である値RCが「１」、「２」、「３」、「４」のいずれかであった場合、値RCは値AC-1以下の値であると判定されるから（図８のステップＳ２４）、連続認証失敗回数カウントアップモードとなり、図１４に示されるように、値AC-1は値AC-2としてフラッシュメモリ２２にコピーされ、値AC-2は「４」となる。これにより、この状態でUSBメモリ１がホストPC２から抜き取られた場合であっても、認証連続失敗回数は４回としてフラッシュメモリ２２に残ることになる。
【０１２４】
繰り返し行われた認証が失敗し、RAM３６Ａに記憶されている値AC-1が１ずつインクリメントされた結果、図１５に示されるように、値AC-1として「６」が記憶された場合、値AC-1は値LCを超えたと判定されるから（図８のステップＳ２０）、USBメモリ１の状態がロック状態とされるか、フラッシュメモリ２２に記憶されているデータが消去される（図８のステップＳ２１）。
【０１２５】
以上のようにカウント値が管理されることにより、不正な行為が行われるのを防ぐとともに、フラッシュメモリ２２の寿命を延ばすことができる。
【０１２６】
以上においては、指紋センサ１１により読み取られた指紋によってユーザの認証が行われるものとしたが、必ずしも指紋によって行われる必要はなく、USBメモリ１内で本人認証を行うことができるものであれば他のバイオメトリクス認証が行われるようにしてもよい。例えば、虹彩や掌紋によってユーザの認証が行われるようにすることが可能である。
【０１２７】
また、USBメモリ１にタッチパネルが設けられている場合、その表面を指でなぞることによって入力されたパスワードによってユーザの認証が行われるようにしてもよい。
【０１２８】
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な機器に、プログラム記録媒体からインストールされる。
【０１２９】
機器が実行するプログラムは、例えば、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等）、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアに記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
【０１３０】
なお、機器が実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０１３１】
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１３２】
【図１】本発明の一実施形態に係る指紋照合機能付きUSBメモリの外観の例を示す図である。
【図２】指紋照合機能付きUSBメモリのハードウエア構成例を示すブロック図である。
【図３】フラッシュメモリに形成される領域の例を示す図である。
【図４】指紋照合機能付きUSBメモリの機能構成例を示すブロック図である。
【図５】RAMとフラッシュメモリに記憶されるデータの例を示す図である。
【図６】指紋照合機能付きUSBメモリの指紋登録処理について説明するフローチャートである。
【図７】指紋照合機能付きUSBメモリの認証処理について説明するフローチャートである。
【図８】指紋照合機能付きUSBメモリの認証処理について説明する、図７に続くフローチャートである。
【図９】カウント値の更新の具体例について示す図である。
【図１０】カウント値の更新の具体例について示す他の図である。
【図１１】カウント値の更新の具体例について示すさらに他の図である。
【図１２】カウント値の更新の具体例について示す図である。
【図１３】カウント値の更新の具体例について示す他の図である。
【図１４】カウント値の更新の具体例について示すさらに他の図である。
【図１５】カウント値の更新の具体例について示す図である。
【符号の説明】
【０１３３】
１  指紋照合機能付きUSBメモリ，  ２  ホストPC，  １１  指紋センサ，  １２  指置き指示用LED，  ２１  コントローラLSI，  ２２  フラッシュメモリ，  ２３  水晶発振子，  ３１  USB I/F，  ３２  LEDコントローラ，  ３３  CPU，  ３４  暗号エンジン，  ３５  EEPROM，  ３６  プログラム用RAM/ROM，  ３７  指紋照合エンジン，  ３８  PLL，  ３９  フラッシュメモリI/F，  ５１  カウンタ管理部，  ５２  乱数生成部，  ５３  制御部
【図１】
2008210235.tif 000003
【図２】
2008210235.tif 000004
【図３】
2008210235.tif 000005
【図４】
2008210235.tif 000006
【図５】
2008210235.tif 000007
【図６】
2008210235.tif 000008
【図７】
2008210235.tif 000009
【図８】
2008210235.tif 000010
【図９】
2008210235.tif 000011
【図１０】
2008210235.tif 000012
【図１１】
2008210235.tif 000013
【図１２】
2008210235.tif 000014
【図１３】
2008210235.tif 000015
【図１４】
2008210235.tif 000016
【図１５】
2008210235.tif 000017