以下、本発明の実施の形態について説明する。
図1は、本発明を適用した、記憶媒体のデータの入出力を制御する制御システムの構成例を示す図である。この制御システムは、認証ユニット101、認証ユニット102、または認証ユニット103を用いて、それらとは別体のストレージメディア111に内蔵される記憶部112への、リーダライタ121によるデータの入出力を制御するシステムである。
認証ユニット101は、ユーザの指紋パターンを検出する機構を有し、検出した指紋パターンをユーザ認証に利用する認証データとする指紋認証方式を採用した認証ユニットである。認証ユニット102は、例えばキーボード等を有し、入力されたパスワードをユーザ認証に利用する認証データとするパスワード認証方式を採用した認証ユニットである。認証ユニット103は、例えば、虹彩を採取するためのCCDカメラ等を有し、採取した虹彩をユーザ認証に利用する認証データとする虹彩認証方式を採用した認証ユニットである。
ストレージメディア111は、例えばフラッシュメモリ等により構成される記憶部112を内蔵し、各種情報を記憶する。リーダライタ121は、所定の状態においてこのストレージメディア111と通信を行うことができるようになされており、通信可能な状態において、記憶部112に記憶されているデータを読み出したり、記憶部112にデータを書き込んだりする。なお、ここでいうデータとは、記憶部112に記憶されている情報全般を示しており、ストレージメディア111や認証ユニット101等において実行されないプログラム等も含まれるものとする。
ストレージメディア111は、許可(アンロック)と禁止(ロック)の2つのモードを有しており、リーダライタ121は、ストレージメディア111が許可(アンロック)の状態にあるとき、記憶部112にアクセスすることができ、記憶部112よりデータを読み出したり、記憶部112にデータを書き込んだりすることができる。逆に、ストレージメディア111が禁止(ロック)の状態にあるときは、リーダライタ121は、記憶部112にアクセスすることはできず、記憶部112よりデータを読み出したり、記憶部112にデータを書き込んだりすることはできない。
認証ユニット101乃至認証ユニット103は、所定の状態においてこのストレージメディア111と通信を行うことができるようになされており、それぞれ認証技術により、リーダライタ121によるストレージメディア111の記憶部112へのアクセスを制限する。ストレージメディア111は、これらの認証ユニットによりユーザが認証された場合のみ、つまり、正当なユーザが承認する場合のみ、リーダライタ121による記憶部112へのアクセスを許可する。
詳細については後述するが、リーダライタ121からのアクセスが禁止されたストレージメディア111の記憶部112には、照合用の認証データが記憶(登録)されている。ストレージメディア111は、例えば認証ユニットに接続される等して認証ユニットと通信可能な状態にされると、認証ユニットからの要求に基づいて、記憶している認証データを認証ユニットに供給する。認証ユニットは、ユーザにより入力された認証データと、ストレージメディア111より取得した認証データとを比較してユーザ認証を行う。その認証結果はストレージメディア111に供給され、ユーザが正当であると認証された場合、リーダライタ121からの記憶部112へのアクセスが許可(アンロック)される。
従って、ストレージメディア111は、認証方式によらず、認証ユニット101乃至認証ユニット103のいずれも利用することができる。つまり、ストレージメディア111は、指紋認証やパスワード認証以外にも、例えば、眼球の黒目に現れる皺のパターンを識別して本人確認を行う認証方式である虹彩認証、手のひらや指先の静脈パターンにより本人確認を行う認証方式である静脈認証、顔の輪郭の形状により本人確認を行う認証方式である輪郭認証、声の特徴で本人確認を行う認証方式である声紋認証、DNA(Deoxyribonucleic acid)の塩基配列のパターンにより本人確認を行う認証方式であるDNA認証、利用の度に変化するパスワードを用いて本人確認を行う認証方式であるワンタイムパスワード認証、第3者による証明を利用して本人確認を行う認証方式である電子認証、またはデバイスにより本人確認を行う認証方式であるハードウェアキー等、どのような認証方式にも対応することができる。図1の認証ユニット101乃至認証ユニット103は、認証ユニットの例を示したものであり、ストレージメディア111は、これら以外の認証ユニットでも同様にユーザ認証を行うことができる。
各認証ユニットとストレージメディア111との間の通信方式は任意である。例えば、ストレージメディア111が、認証ユニットに設けられたストレージメディア用のスロットに通信可能に装着されるようにしてもよいし、有線のケーブルを介して通信可能に認証ユニットと接続されるようにしてもよい。そのような場合、ストレージメディア111は、例えば、PCIExpress(Peripheral Components Interconnect Express bus)、USB(Universal Serial Bus)、若しくはIEEE(Institute of Electrical and Electronic Engineers)1394のような有線のバス、またはLAN(Local Area Network)のようなネットワークを介して認証ユニットと通信を行う。また、例えば、ストレージメディア111および各認証ユニットが、IEEE802.11xや、RF(Radio Frequency)、ブルートゥース(Bluetooth)のような近距離無線通信機能、またはIrDA(Infrared Data Association)のような赤外線通信機能を有し、互いに通信可能な範囲内に位置する状態で、無線通信または赤外線通信を行うようにしてもよい。
同様に、ストレージメディア111とリーダライタ121との間の通信方式も任意である。例えば、ストレージメディア111が、リーダライタ121に設けられたストレージメディア用のスロットに通信可能に装着されるようにしてもよいし、有線のケーブルを介して通信可能にリーダライタ121と接続されるようにしてもよい。そのような場合、ストレージメディア111は、例えば、PCIExpress、USB、若しくはIEEE1394のような有線のバス、またはLANのようなネットワークを介してリーダライタ121と通信を行う。また、例えば、ストレージメディア111およびリーダライタ121が、IEEE802.11xや、RF、ブルートゥースのような近距離無線通信機能、またはIrDAのような赤外線通信機能を有し、互いに通信可能な範囲内に位置する状態で、無線通信または赤外線通信を行うようにしてもよい。
なお、認証ユニットとリーダライタ121は、一体として構成されてもよいが、ストレージメディア111はそれらと別体に構成される。認証ユニットとリーダライタ121が一体として構成される場合、認証ユニットとストレージメディア111を接続するバスと、リーダライタ121とストレージメディア111を接続するバスは、互いに同一(共通)であってもよいが、その通信は互いに独立している。また、図1に示される制御システムにおいて、認証ユニット101、ストレージメディア111、およびリーダライタ121の数はそれぞれ任意である。
次に、各デバイスの構成例について説明する。なお、以下においては、認証ユニット101についてのみ説明し、認証ユニット102および認証ユニット103についての説明は、必要な場合を除いて省略する。
図2は、図1の認証ユニット101の内部の構成例を示すブロック図である。
図2において、認証ユニット101は、認証データ受付部201、暗号化部202、認証方式ID提供部203、鍵保持部204、入出力制御部205、ストレージメディアインタフェース部206、ロック解除コマンド供給部221、復号部222、比較部223、および暗号化部224を有する。
認証データ受付部201は、ユーザの指紋パターンを検出してデータ化する。認証データをストレージメディア111に登録し、アクセスの制限を開始する場合、認証データ受付部201は、得られた指紋パターンのデータを認証データとして暗号化部202に供給する。また、記憶部112へのアクセスを許可(アンロック)する場合、認証データ受付部201は、得られた指紋パターンのデータを認証データとして比較部223に供給するとともに、ロック解除コマンド供給部221に、ユーザの指紋パターンを検出して認証データを生成した旨を通知する。
暗号化部202は、通信時、または、ストレージメディア111で保存する際に、認証データの漏洩の危険性を低下させるために、認証データ受付部201において受け付けられた認証データを独自の方式で暗号化し、暗号化認証データを生成する。
この暗号化の方式は任意であるが、一般的でない専用の暗号化方式を用いることにより、認証データ漏洩の危険性を更に低下させることができる。ただし、本発明を適用した制御システムにおいて適用される、同じ認証方式の認証ユニット間において暗号化方式(暗号鍵)を共通とすることにより、ストレージメディア111は、ユーザの認証データを登録した認証ユニット以外の認証ユニットでもユーザ認証を行うことができるようになり、利便性が向上する。
暗号化部202は、認証データを暗号化して得られた暗号化認証データを入出力制御部205に供給する。
認証方式ID提供部203は、この認証ユニットが採用する認証方式を識別する認証方式IDを提供する。つまり、認証方式ID提供部203は、指紋認証を示す認証方式IDを保持しており、必要に応じてその認証方式IDを入出力制御部205に供給する。
鍵保持部204は、他のデバイスに供給するための所定の電子鍵データである公開鍵211およびその公開鍵211に対応する秘密鍵231を保持しており、必要に応じて、その公開鍵211を入出力制御部205に供給する。
入出力制御部205は、認証ユニット101とストレージメディア111との間の情報の授受を制御する。入出力制御部205は、暗号化部202より暗号化認証データを供給されると、認証方式ID提供部203より認証方式IDを取得し、さらに鍵保持部204より公開鍵211を取得する。そして入出力制御部205は、その暗号化認証データ、認証方式ID、および公開鍵211を、ストレージメディアインタフェース部206を介してストレージメディア111に供給する。また、入出力制御部205は、ロック解除コマンド供給部221より供給されたロック解除コマンドを、ストレージメディアインタフェース部206を介してストレージメディア111に供給する。さらに、入出力制御部205は、ストレージメディアインタフェース部206を介して取得した、ストレージメディア111より供給された認証データおよび乱数を復号部222に供給する。また、入出力制御部205は、暗号化部224より供給された暗号化データを、ストレージメディアインタフェース部206を介してストレージメディア111に供給する。
ストレージメディアインタフェース部206は、ストレージメディア111用のインタフェースであり、所定の通信方式によりストレージメディア111と通信を行い、ストレージメディア111より供給されるデータを入出力制御部205に供給したり、入出力制御部205より供給されたデータをストレージメディア111に供給したりする。
ロック解除コマンド供給部221は、認証データ受付部201より、ユーザの指紋パターンを検出して認証データを生成した旨を通知されると、ロック解除コマンドを、入出力制御部205を介してストレージメディア111に供給する。
復号部222は、ストレージメディア111より供給された暗号化認証データおよび乱数を、入出力制御部205を介して取得すると、暗号化認証データを、暗号化部202の暗号化方式に対応する独自の復号方式により復号し、平文の認証データを得る。復号部222は、その認証データおよび乱数を比較部223に供給する。
比較部223は、認証データ受付部201より供給された認証データと、復号部222より供給された認証データとを比較し、それらが一致するか否かを判定し、その判定結果を認証結果として、乱数とともに暗号化部224に供給する。暗号化部224は、比較部223より供給された認証結果および乱数を、第3者に漏洩しないように安全にストレージメディア111に供給するために、鍵保持部204より供給された秘密鍵231を用いて暗号化し、得られた暗号化データを、入出力制御部205を介してストレージメディア111に供給する。
なお、認証ユニット102および認証ユニット103も、認証データ受付部201が受け付けるデータや、その受け付けたデータより生成する認証データが異なることと、認証方式ID提供部203が提供する認証方式IDの値が異なることを除けば、図2に示される認証ユニット101の構成と同様の構成を有する。すなわち、本発明を適用した認証ユニットはその認証方式によらず、図2に示される構成を有する。
次に、ストレージメディア111の構成例について説明する。図3は、ストレージメディア111の内部の構成例を示すブロック図である。ここでは、認証処理を行う認証ユニットとして認証ユニット101を例に説明する。以下の説明は、認証方式によらないので、認証ユニット101以外の認証ユニットにより認証を行う場合も基本的に同様である。
図3に示されるように、ストレージメディア111は、記憶部112の他に、リーダライタ121からの記憶部112へのアクセスを許可したり禁止したりする制御部301、および、リーダライタ121用のインタフェースであるデータバスインタフェース部302を有する。
制御部301は、認証ユニットインタフェース部311、入出力制御部312、ロック制御部313、エラー処理部314、乱数発生部315、復号部316、および一致判定部317を有する。
認証ユニットインタフェース部311は、認証ユニット101用のインタフェースであり、所定の通信方式により認証ユニット101と通信を行い、認証ユニット101より供給されるデータを入出力制御部312に供給したり、入出力制御部312より供給されたデータを認証ユニット101に供給したりする。
入出力制御部312は、認証ユニット101とストレージメディア111との間のデータの授受を制御する。入出力制御部312は、認証ユニットインタフェース部311を介して取得した、認証ユニット101より供給された暗号化認証データ、認証方式ID、および公開鍵211を、記憶部112に供給し、その秘匿エリア321にそれらのデータを保存させる。また、入出力制御部312は、暗号化認証データを記憶部112に保存させた旨をロック制御部313に通知する。
さらに、入出力制御部312は、認証ユニット101より供給されたロック解除コマンドを、認証ユニットインタフェース部311を介して取得すると、その旨をロック制御部313に通知し、リーダライタ121による記憶部112へのアクセスが禁止(ロック)されていることを確認し、乱数発生部315に乱数を発生させて取得し、さらに記憶部112より、供給した認証方式IDに対応する暗号化認証データを取得すると、その暗号化認証データと乱数を、認証ユニットインタフェース部311を介して認証ユニット101に供給する。また、入出力制御部312は、認証ユニットインタフェース部311を介して取得した、認証ユニット101より供給された暗号化データを復号部316に供給する。
ロック制御部313は、リーダライタ121からの記憶部112へのアクセスを禁止(ロック)したり、その禁止を解除(アンロック)したりする。例えば、ロック制御部313は、入出力制御部312より、ロックコマンドとともに、暗号化認証データ、認証方式ID、および公開鍵211の保存を通知されると、リーダライタ121からの記憶部112へのアクセスを禁止(ロック)する。また、ロック制御部313は、入出力制御部312よりロック解除コマンドの取得を通知されると、現在、リーダライタ121からの記憶部112へのアクセスが禁止(ロック)されているのであれば、その旨を入出力制御部312に通知する。例えば、暗号化認証データが登録されていなかったり、既にロックが解除(アンロック)されていたりして、リーダライタ121からの記憶部112へのアクセスが禁止されていない場合、エラー処理部314にその旨を通知し、エラー処理を実行させる。さらに、ロック制御部313は、一致判定部317の判定結果に基づいて、認証データが一致するのであれば、記憶部112の情報の入出力の禁止を解除(アンロック)する。
エラー処理部314は、ロック制御部313または一致判定部317のエラー判定に基づいてエラー処理を行う。乱数発生部315は、認証ユニット101との通信を識別するセッションIDとして利用される乱数を発生し、入出力制御部312および一致判定部317に供給する。復号部316は、認証ユニット101より供給された暗号化データを、入出力制御部312より供給されると、記憶部112より公開鍵211を取得し、その公開鍵211を用いて暗号化データを復号する。復号部316は、その復号結果である認証結果と乱数を一致判定部317に供給する。
一致判定部317は、復号部316より供給された乱数と、乱数発生部315より供給された乱数とを比較し、それらの値が一致するか否かを判定する。乱数の値が一致する場合、一致判定部317は、さらに、復号部316より供給された認証結果を参照し、認証データが一致したか否かを判定する。認証データが一致したと判定した場合、一致判定部317は、その旨をロック制御部313に通知する。また、乱数の値が一致しない場合、または、認証データが一致しなかったと判定した場合、一致判定部317は、エラー処理部314にその旨を通知し、エラー処理を実行させる。
データバスインタフェース部302は、リーダライタ121用のインタフェースであり、上述した制御部301によりリーダライタ121からの記憶部112へのアクセスが制限されるデータバスのインタフェースである。つまり、データバスインタフェース部302を介して授受されるデータは、記憶部112に記憶される、制御部301により入出力の可否が制限される通常のデータである。データバスインタフェース部302は、所定の通信方式によりリーダライタ121と通信を行い、リーダライタ121より供給されるデータを記憶部112に供給して記憶させたり、記憶部112より供給されたデータをリーダライタ121に供給したりする。なお、この通常のデータは、漏洩を抑制するために、所定の暗号化方式で暗号化されているようにしてもよい。
記憶部112には、通常のデータを記憶する領域の他に、ユーザ認証に用いられるデータが記憶される領域である秘匿エリア321が設けられている。この秘匿エリア321は、情報漏洩抑制のために、リーダライタ121からアクセスすることが出来ないようになされている。この秘匿エリア321には、認証ユニット101より供給される暗号化認証データ331、認証方式ID、および公開鍵211が記憶される。
次に、以上のようなシステムの各装置による処理の流れを説明する。最初に、図4のフローチャートを参照して、認証データ登録時の認証ユニット101およびストレージメディア111により実行されるロック処理の流れの例を説明する。必要に応じて図5乃至図8を参照して説明する。
例えば、リーダライタ121による記憶部112へのアクセスを制限する場合、最初に正当なユーザの認証データをストレージメディア111に登録する(記憶させる)必要がある。そのとき、認証ユニット101およびストレージメディア111は、図4に示されるように処理を行う。
最初に、認証ユニット101の認証データ受付部201は、ステップS1において、認証データを受け付ける。例えば、認証データが登録されていないストレージメディア111が認証ユニット101と通信可能な状態になされると、認証データ受付部201は、所定の方法でユーザに指紋パターンを入力させるように促し、例えば図5に示されるように、入力されたユーザの指紋パターンを検出してデータ化し、そのデータを認証データとする。
ステップS2において、暗号化部202は、例えば図6に示されるように、認証データ受付部201において受け付けられた認証データを独自方式で暗号化する。
認証ユニット101は、例えば図7に示されるように、公開鍵(Kp)211と秘密鍵(Ks)231、並びに認証方式ID332を保持している。入出力制御部205は、ステップS3において、例えば図8に示されるように、暗号化部202が認証データを暗号化して生成した暗号化認証データ331、認証方式ID提供部203より提供された、指紋認証方式を示す値の認証方式ID332、および鍵保持部204より取得した電子鍵データである公開鍵(Kp)211を、記憶部112のデータの入出力を禁止するように要求するロックコマンドとともに、ストレージメディアインタフェース部206を介してストレージメディア111に供給する。
ストレージメディア111の入出力制御部312は、ステップS21において、そのストレージメディア111より供給された暗号化認証データ331、認証方式ID332、および公開鍵(Kp)211を取得すると、記憶部112は、ステップS22において、その入出力制御部312が取得した暗号化認証データ331、認証方式ID332、および公開鍵(Kp)211を秘匿エリア321に保存する。ステップS23において、ロック制御部313は、リーダライタ121からの記憶部112へのアクセスを禁止(ロック)する。
以上のように、認証データが登録されると、リーダライタ121からの記憶部112へのアクセスが禁止(ロック)される。
次に、図9のフローチャートを参照して、記憶部112のロック解除時の認証ユニット101およびストレージメディア111により実行されるロック解除処理の流れの例を説明する。必要に応じて図10および図11を参照して説明する。
例えば、リーダライタ121による記憶部112へのアクセスを許可する場合、アクセスを行うユーザの認証が必要になる。そのとき、認証ユニット101およびストレージメディア111は、図9に示されるように処理を行う。
最初に、認証ユニット101の認証データ受付部201は、ステップS41において、認証データを受け付ける。例えば、認証データが登録されているストレージメディア111が認証ユニット101と通信可能な状態になされると、認証データ受付部201は、所定の方法でユーザに指紋パターンを入力させるように促し、例えば図10に示されるように、入力されたユーザの指紋パターンを検出してデータ化し、そのデータを認証データとする。
認証データが受け付けられると、ロック解除コマンド供給部221は、ステップS42において、ロック解除コマンドを、認証ユニット101の認証方式IDとともに、入出力制御部205を介してストレージメディア111に供給する。ストレージメディア111の入出力制御部312は、ステップS61において、そのロック解除コマンドを取得する。ステップS62において、乱数発生部315は、乱数Rmを発生する。入出力制御部312は、ステップS63において、認証ユニット101の認証方式IDに対応する暗号化認証データ331を秘匿エリア321より取得すると、例えば図11に示されるように、その暗号化認証データ331、および、ステップS62の処理により生成された乱数Rmを、ロック解除コマンドの供給元である認証ユニット101に供給する。
認証ユニット101の入出力制御部205は、ステップS44において、その暗号化認証データ331および乱数Rmを取得する。ステップS45において、復号部222は、ステップS44において取得された暗号化認証データ331を独自復号方式で復号する。ステップS46において、比較部223は、ステップS41において取得した認証データと、ステップS45において復号された認証データを比較する。
ステップS47において、暗号化部224は、第3者に情報が漏洩しないように、ステップS46における比較結果である認証結果と、ステップS44において取得した乱数Rmとを、秘密鍵(Ks)231を用いて暗号化する。ステップS48において、入出力制御部205は、ステップS47の処理において暗号化された暗号化データをストレージメディア111に供給する。ストレージメディア111の入出力制御部312は、ステップS64において、その暗号化データを取得する。
復号部316は、ステップS65において、ステップS64の処理において取得された暗号化データを、公開鍵(Kp)211を用いて復号する。一致判定部317は、ステップS66において、ステップS64の処理において取得された乱数Rmと、ステップS62において発生した乱数とが一致するか否かを確認する。また、ステップS67において、一致判定部317は、ステップS65において復号されて得られた平文の認証結果を参照し、正当なユーザであると認証されたか否かを判定する。
乱数Rmが一致し、認証結果が真である場合、ロック制御部313は、ステップS68において、リーダライタ121による記憶部112へのアクセスを許可する(ロックを解除する)。
なお、以上のようにして許可されたアクセスは、所定の条件が満たされた場合に、ロック制御部313によって再度禁止される(ロックされる)。例えばリーダライタ121とストレージメディア111が有線のデータバスで接続されている場合、そのデータバスが電気的に切断されると、ロック制御部313は、リーダライタ121による記憶部112へのアクセスを再度禁止にする(ロックする)。この場合、再度、データバスを接続してもリーダライタ121による記憶部112へのアクセスは禁止されたまま(ロックされた状態)であり、ロックを解除するためには、改めて図9のフローチャートのようなユーザ認証を行う必要がある。リーダライタ121とストレージメディア111が無線通信により通信を行う場合も同様であり、リーダライタ121とストレージメディア111の無線通信が切断されると、ロック制御部313は、リーダライタ121による記憶部112へのアクセスを再度禁止にする(ロックする)。なお、ロック制御部313がリーダライタ121による記憶部112へのアクセスを禁止にする条件は任意でありこれ以外でもよい。例えば、ロックが解除されてから所定の時間が経過すると、ロック制御部313がリーダライタ121による記憶部112へのアクセスを禁止にするようにしてもよい。
次に、以上のようなロック時、アンロック時のストレージメディア111の制御部301において実行される処理の具体的な流れについて説明する。
最初に、図12のフローチャートを参照して、制御部301が、認証データの登録時に行うロック処理の流れの例を説明する。
ステップS81において、入出力制御部312は、認証ユニット101よりコマンドを取得したか否かを判定し、コマンドが供給されるまで待機する。コマンドを取得したと判定されると、処理はステップS82に進む。ステップS82において、入出力制御部312は、取得したコマンドがロックコマンドであるか否かを判定する。ロックコマンドであると判定された場合、処理はステップS83に進む。ステップS83において、ロック制御部313は、記憶部112が既にロックされているか否かを判定する。リーダライタ121による記憶部112へのアクセスがまだ禁止されていないと判定された場合、処理はステップS84に進む。
ステップS84において、入出力制御部312は、さらに、暗号化認証データ331、認証方式ID332、および公開鍵211が供給されたか否かを判定し、供給されるまで待機する。暗号化認証データ331、認証方式ID332、および公開鍵211を取得したと判定された場合、処理はステップS85に進む。ステップS85において、入出力制御部312は、取得した暗号化認証データ331、認証方式ID332、および公開鍵211を記憶部112の秘匿エリア321に供給し、保存させる。ステップS86において、ロック制御部313は、リーダライタ121による記憶部112へのアクセスを禁止する(ロックする)。ステップS86の処理が終了すると、処理は、ステップS81に戻る。
また、ステップS82において、入出力制御部312が取得したコマンドがロックコマンドでないと判定された場合、処理は、ステップS87に進む。ステップS87において、入出力制御部312は、他のコマンド処理を実行させる。ステップS87の処理が終了すると、ロック処理が終了される。
また、ステップS83において、記憶部112が既にロックされていると判定された場合、処理はステップS88に進む。ステップS88において、エラー処理部314は、エラー処理を行う。ステップS88の処理が終了すると、ロック処理は終了される。
次に、図13のフローチャートを参照して、制御部301が、ロック解除を要求された時に行うアンロック処理の流れの例を説明する。
ステップS101において、入出力制御部312は、認証ユニット101よりコマンドを取得したか否かを判定し、取得したと判定するまで待機する。コマンドを取得したと判定された場合、処理はステップS102に進む。ステップS102において、入出力制御部312は、取得したコマンドがロック解除コマンドであるか否かを判定する。ロック解除コマンドであると判定された場合、処理はステップS103に進む。ステップS103において、ロック制御部313は、記憶部112がロックされているか否かを判定する。リーダライタ121による記憶部112へのアクセスが禁止されていると判定された場合、処理はステップS104に進む。
ステップS104において、乱数発生部315は乱数を発生する。ステップS105において、入出力制御部312は、ステップS104の処理により発生した乱数、および、ステップS101においてロック解除コマンドとともに取得した、認証ユニット101の認証方式IDに対応する暗号化認証データを認証ユニット101に供給する。ステップS106において、入出力制御部312は、認証ユニット101より供給される暗号化データを取得したか否かを判定し、取得したと判定するまで待機する。暗号化データを取得したと判定された場合、入出力制御部312は、処理をステップS107に進める。
ステップS107において、復号部316は、暗号化データを公開鍵で復号する。ステップS108において、一致判定部317は、認証ユニット101より供給された乱数がステップS104の処理により発生された乱数と一致したか否かを判定する。乱数が一致したと判定された場合、処理は、ステップS109に進む。ステップS109において、一致判定部317は、認証ユニット101より供給された認証結果が真であるか否かを判定する。認証結果が真であると判定された場合、処理はステップS110に進む。
ステップS110において、ロック制御部313は、リーダライタ121による記憶部112へのアクセスの禁止(ロック)を解除する。ステップS110の処理が終了すると処理はステップS101に戻る。
ステップS102において、取得したコマンドがロック解除コマンドではないと判定された場合、処理はステップS111に進む。ステップS111において、入出力制御部312は、他のコマンド処理を実行させる。ステップS111の処理が終了すると、アンロック処理が終了される。
また、ステップS103において、記憶部112がロックされていないと判定された場合、処理はステップS112に進む。また、ステップS108において、乱数が一致しないと判定された場合も、処理はステップS112に進む。さらに、ステップS109において、認証結果が偽であると判定された場合も、処理はステップS112に進む。ステップS112において、エラー処理部314は、エラー処理を行う。ステップS112の処理が終了すると、アンロック処理は終了される。
以上のように、認証方式IDを利用することにより、暗号化認証データを要求する認証ユニットに対して、ストレージメディア111が容易に適切な暗号化認証データを供給することができる。
なお、ストレージメディア111が1つの暗号化認証データを保持しない場合、どの認証ユニットに対しても唯一の暗号化認証データを供給すれば、認証ユニットが認証処理を行うことは可能であるが、不要なデータの授受が増大するので、認証処理の負荷が増大し、処理時間が長くなる恐れがある。また、場合によっては、未対応の暗号化認証データを処理することにより認証ユニットが故障してしまう恐れもある。
これに対して、認証方式IDを利用して、認証ユニットの認証方式に対応する場合のみ、ストレージメディア111が保持している暗号化認証データを認証ユニットに供給するようにすることにより、ストレージメディア111が複数種類の認証方式の認証ユニットに対応することができるだけでなく、不要なデータの授受を低減し、認証処理の負荷を軽減させることができる。これにより認証処理の高速化を実現することができる。また、認証ユニットの故障発生の可能性を低減させ、認証処理の安全性を向上させることができる。
また、ユーザを認証する認証ユニットと、データを記憶するストレージメディア111とを別体として構成するようにしたので、ストレージメディア111の小型化を容易に実現することができる。このような小型化により、ストレージメディア111の携帯がさらに容易になり、ストレージメディア111を適用可能な装置の種類も増加し、さらに、製造コストや消費電力を低減させることも出来る。このようにストレージメディア111の利便性が向上する。
また、認証ユニットとストレージメディア111を別体とすることにより、ストレージメディア111が第3者に取得された場合の、情報漏洩の危険性を低減させることができる。また、上述したように、ストレージメディア111が認証ユニットの認証方式によらず、認証結果のみに基づいてロックまたはロックの解除を行うことができるので、現時点において未確認の認証方式であっても容易に適用することができる。例えば、より安全でより利便性の高い認証方式が今後新たに開発された場合、その認証方式の認証ユニットを、上述したようにストレージメディア111とデータの授受を行うようにすることにより、ストレージメディア111の変更は不要になる。
また、ストレージメディア111は、ロック解除時に、乱数を発生して、その乱数を授受することにより通信相手となる認証ユニットの確認を行うので、なりすまし等による情報漏洩の危険性を低減させることができる。
以上のように、より安全性および利便性を向上させたストレージメディアを実現することができる。
なお、図3においては、記憶部112の秘匿エリア321に暗号化認証データ331、認証方式ID、および公開鍵(Kp)211が1つずつ記憶されている例の様子を示したが、秘匿エリア321に記憶される暗号化認証データ331、認証方式ID、および公開鍵(Kp)211の数はいずれも任意であり、複数であってもよい。図14に、複数の暗号化認証データ331および認証方式IDが秘匿エリアに格納される例を示す。
図14において、ストレージメディア511の記憶部512の秘匿エリア521には、複数の暗号化認証データ(暗号化認証データ331−1、暗号化認証データ331−2、・・・)と、複数の認証方式ID(認証方式ID332−1、認証方式ID332−2、・・・)と、1つの公開鍵211が格納されている。また、秘匿エリア521において、暗号化認証データと認証方式IDは、互いに関連付けられており、
このようにすることにより、ストレージメディア511は、登録されている暗号化認証データを、認証方式IDによって、登録時に使用された認証ユニットの認証方式毎に識別することができる。これにより、ストレージメディア511は、認証ユニットから暗号化認証データを要求されたときに、その認証ユニットの認証方式IDと関連付けられた暗号化認証データを供給することができる。つまり、認証ユニットに対して正当な形式の暗号化認証データを供給することができる。
なお、このように暗号化認証データを複数登録することができるようにすることにより、複数のユーザを正当なユーザとして登録することができる。つまり、秘匿エリア521に複数記憶されている暗号化認証データが互いに異なるユーザのものであってもよい。
なお、図14においては、公開鍵211が全認証ユニットにおいて共通である場合について説明したが、例えば認証方式毎に公開鍵211が異なるようにしてもよい。つまり、秘匿エリア521には、複数の公開鍵が保存されるようにしてもよい。なお、この場合、認証方式IDにその認証方式IDに対応する公開鍵211が暗号化認証データのように関連付けられるようにしてもよい。
図15を参照して、以上のようなシステムの具体的な構成例を説明する。
図15Aの例の場合、認証ユニット101とリーダライタ121は、パーソナルコンピュータ601の周辺機器である認証デバイス602として構成され、パーソナルコンピュータより制御可能に接続されている。
この場合、例えば、ストレージメディア111がリーダライタ121と、物理的に接続されたり近接されたりして通信可能な状態にされると、リーダライタ121は、そのストレージメディア111を検出し、パーソナルコンピュータ601で実行される制御ソフトウェアに通知する。制御ソフトウェアは、例えばディスプレイに案内文や画像を表示させてユーザに指紋パターンの入力を促すとともに、認証ユニット101を制御し、ユーザの指紋パターンを検出するように動作させる。認証ユニット101は、上述したようにストレージメディア111と通信を行い、ロックの解除、または認証データの登録に関する処理を行う。ロックが解除された場合、パーソナルコンピュータ601は、リーダライタ121を介してストレージメディア111にアクセスすることができる。
なお、認証ユニット101とリーダライタ121は、それぞれ、パーソナルコンピュータ601に内蔵されるようにしても良い。パーソナルコンピュータ601は、一般的な情報処理装置を示すものであり、認証デバイス602と上述したように通信可能であればどのような装置であってもよい。
この場合、ストレージメディア111は、認証ユニット101を有していないので、容易に小型化することができ、コストや消費電力を低減させることができるとともに、携帯性を向上させることができる。また、例えば、パーソナルコンピュータ601および認証デバイス602が、例えば、自動販売機や現金自動預入支払機(ATM(Automatic Teller Machine))のような各所に設置された設備である場合、ユーザは、このストレージメディア111を携帯するだけで、どの認証デバイス602も利用することができる。さらに、ストレージメディア111は認証方式によらず利用可能であるので、多様なシステムに応用することができるとともに、システムに新たな認証技術を導入することも容易になり、容易に安全性を向上させることができる。
また、図15Bに示されるように、リーダライタ121と認証ユニット101は、互いに別体として構成されるようにしてもよい。図15Bの例の場合、リーダライタ121は、パーソナルコンピュータ601に内蔵されている。認証ユニット101は、ストレージメディア111とは別体の携帯用デバイスとして構成される。ユーザは、ストレージメディア111と認証ユニット101の2つのデバイスを携帯し、使用時には、ストレージメディア111をリーダライタ121と通信可能な状態にする。そして、認証データ登録時やロック解除のときのみ、ユーザは、認証ユニット101をストレージメディア111と通信可能な状態にし、上述したような処理を実行させる。
なお、リーダライタ121を図15Aの認証デバイス602のように、パーソナルコンピュータ601とは別体の、パーソナルコンピュータ601に接続される周辺機器として構成されるようにしてもよい。また、ストレージメディア111がパーソナルコンピュータ601に内蔵されるようにしてもよい。
この場合、ユーザは、必要なときのみ認証ユニット101を使用し、必要でないときは、ストレージメディア111と認証ユニット101を通信不可能な状態にすることができるので、第3者への情報漏洩の危険性を抑制することができる。また、例えば、ストレージメディア111が特定の認証ユニット101に対してのみ通信可能とすることにより、正当なユーザが正当な認証ユニット101を用いないとストレージメディア111のロックを解除することができないようにすることができる。つまり、ユーザは、認証ユニット101をストレージメディア111のハードウェアキーのように使用することができる。
また、図15Cに示されるように、ストレージメディア111を、図3の制御部301とデータバスインタフェース部302を有する制御アダプタ611と、記憶部112を有するストレージメディア612の2つのデバイスとして構成されるようにしてもよい。
この場合、ストレージメディア612は、従来のロック機能を有さない記憶媒体と同等である。制御アダプタ611は、ストレージメディア612のインタフェースとして動作し、外部からのストレージメディア612へのアクセスを制限する。つまり、制御アダプタ611は、従来のロック機能を有さない記憶媒体に、上述したようなロックアンロック機能(アクセス制限機能)を付与するデバイスである。
制御アダプタ611とストレージメディア612が通信可能な状態にあるとき、ストレージメディア111と同等となる。つまり、図15Cの構成は図15Aの構成と同等である。
この場合、記憶部112が含まれない分、制御アダプタ611の方がストレージメディア111より製造コストを低減させることが出来る。また、従来のロック機能を有さない記憶媒体を利用することができるので、ユーザは、所有する資産を有効に活用することができる。
認証ユニット101とストレージメディア111を別体とすることにより、認証ユニット101とストレージメディア111は、通信可能であれば、互いの物理的距離は任意となるのでより多様なシステムに応用することができる。例えば、図15Dに示されるように、ネットワーク620を介して接続されるようにすることもできる。
図15Dの例の場合、例えばインターネットやLAN等に代表される任意のネットワーク620を介してパーソナルコンピュータ621およびパーソナルコンピュータ622が互いに通信可能に接続されている。パーソナルコンピュータ621およびパーソナルコンピュータ622は、一般的な情報処理装置を示しており、どのような装置であってもよい。
パーソナルコンピュータ621には、認証ユニット101が通信可能に接続され、パーソナルコンピュータ622には、リーダライタ121を介してストレージメディア111が通信可能に接続される。すなわち、認証ユニット101とストレージメディア111は、パーソナルコンピュータ621、ネットワーク620、パーソナルコンピュータ622およびリーダライタ121を介して接続される。
このような場合であっても、認証ユニット101は、ストレージメディア111と通信可能に接続されているので、図15Aの場合と同様の通信により、ストレージメディア111のロックやアンロックを行うことができる。例えば、ユーザは、自宅に設置されるパーソナルコンピュータ622のリーダライタ121とストレージメディア111を通信可能な状態にしておき、外出先のパーソナルコンピュータ621に接続されている認証ユニット101を用いて、外出先から自宅のストレージメディア111のロックを解除し、アクセスを許可することができる。このような場合、ユーザは、認証ユニット101およびストレージメディア111のいずれも携帯しなくても、任意の場所に設けられた、ストレージメディア111と通信可能に設置された認証ユニット101を用いてストレージメディア111にアクセスすることができる。
以上のように、認証ユニットと記憶媒体であるストレージメディアを別体とすることにより、安全性および利便性をより向上させることができるだけでなく、多用なシステムに適用することができる。
なお、以上においては、ユーザが認証ユニット101を用いてストレージメディア111に認証データを登録するように説明したが、これに限らず、認証データは、ストレージメディア111に製造時に記憶させるようにしてもよい。例えばストレージメディア内に暗号化認証データを記憶するROMを設けようにし、更新や消去を不可能とするようにしてもよい。この場合、ユーザや用途が限定されるが、データの改ざんを抑制することができ安全性をより向上させることができる。
また、ストレージメディア111へのアクセスの許可等の際に、複数の認証方式により、ユーザ認証を複数回行う必要があるようにしてもよい。この場合、ユーザは、複数の認証方式により、ユーザ認証を複数回行い、全ての認証方式において認証されない限りストレージメディア111のロックを解除することができない。このように複数の認証方式によりロックを多重化することにより、ストレージメディア111のデータの漏洩に対する安全性をより向上させることができる。
また、例えば、上述したようにストレージメディア111に所定のパスワードを記憶するROMを設け、ユーザが指紋パターン等の認証データをストレージメディア111に登録する際に、ROMに記憶されているパスワードを用いた認証を行う必要があるようにしてもよい。このようにすることにより、第3者が勝手に認証データを登録してしまうことを抑制することができ、ストレージメディア111のデータの漏洩に対する安全性をより向上させることができる。
なお、複数のユーザの認証データを登録することができるようにする場合、ストレージメディア111は、その認証データ毎に、記憶部112のアクセスを許可する領域や、実行権限を割り当てるようにしてもよい。すなわち、認証に用いられる認証データによって、記憶部112のアクセス可能な領域や実行可能な処理を区別または制限することができるようにしてもよい。
例えば、工場出荷時等からROMに記憶されている認証データには、無制限の管理者権限を付与し、その後登録される認証データには、更新可能なデータや領域が制限されるユーザ権限を付与するようにしてもよい。
また、例えば、認証データを新たに登録する際にそのユーザが以前登録した認証データでロックを解除してから登録を行うことにより、ストレージメディア111が、認証データをユーザ毎に管理することができるようにしてもよい。その場合、記憶部112のアクセス可能な領域や実行権限を、ユーザ毎に区別または制限することもできる。
なお、以上においては、認証データを暗号化するように説明したが、これに限らず、認証データが平文のまま、認証ユニット101とストレージメディア111との間で授受されるようにしてもよい。その場合、暗号化部202および復号部222、並びに、図4のステップS2の処理および図9のステップS45の処理を省略することができるので、認証ユニット101の回路規模の縮小や処理の負荷の低減を実現することができる。ただし、この場合、情報漏洩に対する安全性は低下する。
同様に、認証ユニット101が認証結果および乱数を秘密鍵231で暗号化し、ストレージメディア111がその暗号化データを公開鍵211で復号するように説明したが、認証結果や乱数が平文のまま授受されるようにしてもよい。その場合、鍵保持部204、暗号化部224、および復号部316、並びに、図9のステップS47の処理およびステップS65の処理等を省略することができるので、認証ユニット101やストレージメディア111の回路規模の縮小や処理の負荷の低減を実現することができる。ただし、この場合、情報漏洩に対する安全性は低下する。
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。この場合、例えば、図16に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
図16において、パーソナルコンピュータ700のCPU701は、ROM(Read Only Memory)702に記憶されているプログラム、または記憶部713からRAM(Random Access Memory)703にロードされたプログラムに従って各種の処理を実行する。RAM703にはまた、CPU701が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU701、ROM702、およびRAM703は、バス704を介して相互に接続されている。このバス704にはまた、入出力インタフェース710も接続されている。
入出力インタフェース710には、キーボード、マウスなどよりなる入力部711、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部712、ハードディスクなどより構成される記憶部713、モデムなどより構成される通信部714が接続されている。通信部714は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース710にはまた、必要に応じてドライブ715が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア721が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部713にインストールされる。
上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図16に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(登録商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア721により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM702や、記憶部713に含まれるハードディスクなどで構成される。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
なお、以上において、1つの装置として説明した構成を分割し、複数の装置として構成するようにしてもよい。逆に、以上において複数の装置として説明した構成をまとめて1つの装置として構成されるようにしてもよい。また、各装置の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置の構成の一部を他の装置の構成に含めるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
101乃至103 認証ユニット, 111 ストレージメディア, 112 記憶部, 121 リーダライタ, 201 認証データ受付部201, 202 暗号化部, 203 認証方式ID提供部, 204 鍵保持部部, 205 入出力制御部, 206 ストレージメディアインタフェース部, 211 公開鍵, 221 ロック解除コマンド供給部, 222 復号部, 223 比較部, 224 暗号化部, 231 秘密鍵, 301 制御部, 302 データバスインタフェース部, 311 認証ユニットインタフェース部, 312 入出力制御部, 313 ロック制御部, 314 エラー処理部, 315 乱数発生部, 316 復号部, 317 一致判定部, 321 秘匿エリア, 331 暗号化認証データ, 332 認証方式ID, 511 ストレージメディア, 512 記憶部, 521 秘匿エリア, 601 パーソナルコンピュータ, 602 認証デバイス, 611 制御アダプタ, 612 ストレージメディア, 620 ネットワーク, 621および622 パーソナルコンピュータ