説明

記録デバイス、集積回路、アクセス制御方法、プログラム記録媒体

【課題】電子端末をブートさせることができる記録メディアの、データへのアクセスの利便性を高める。
【解決手段】電子端末30は、セキュア領域を備える記録メディア10が挿入されると記録メディア10から所定のプログラムを読み出す。このプログラムの処理の結果、記録メディア10は、電子端末30に挿入された時における電子端末30の起動状況を判定する。判定の結果、電子端末30の起動直後から記録メディア10が挿入された場合は、セキュア領域へのアクセスの制限を緩くする。記録メディア10の挿入時点が、電子端末30の起動完了に近づくほど、記録メディア10は、セキュア領域へのアクセス制限を厳しくする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記録デバイスにアクセスする機器の正当性を検証し、不正な機器からの記録デバイス内のデータ、特に、秘匿すべきデータへのアクセスを制限する技術に関する。
【背景技術】
【0002】
個人情報や企業秘密など、秘匿すべきデータを適切に保護するために、データの不正利用を防止する技術が従来より広く用いられている。
このような技術としては、例えば、シンクライアントシステムがある。シンクライアントシステムは、サーバの側でファイルやアプリケーションなどの資源を管理する。そして、ユーザ側の端末には、データの持ち出しを防ぐために、HDD(Hard Disk Drive)や光学書き込みドライブなどのデータを記録する機能を持たせないようにし、モニタやキーボードなどの最低限の機能のみを持たせておく。こうすることで、データの不正な流出を防ぐこととしている。
【0003】
しかし、シンクライアントシステムにおいては、データ保護のため、基本的にはこのシステムに対応した端末のみがサーバにアクセスできるので、対応端末が無ければデータにアクセスできない。例えば、出張先等に対応端末がないことが考えられる。そして、シンクライアントシステム用のクライアント端末は、専用のハードウェア構成やソフトウェア構成を必要とし、開発や導入にコストがかかるため、データへのアクセスを便利にするためにあらゆる場所にシンクライアント端末を配置しようとしても、現実的には難しい。
【0004】
また、この他にデータの保護を実現する技術として、機器の正当性を認証した上でのみデータのやりとりを許可することで不正アクセスを防止するものがある。近年では、セキュアなコンピュータプラットフォームを開発、普及させることを目的に設立されたTCG(Trusted Computing Group)が、TPM(Trusted Platform Module)と呼ばれるセキュリティコアモジュールを用いて機器認証する技術を公開している。例えば、TCGの技術を用いて、可搬型記録メディアから機器の起動と同時に機器認証を行い、サーバから取得した鍵で記録メディア内に格納された暗号化データを復号し機器上で扱う技術が米国特許出願公開第2006/0047944号(以下、特許文献1)に記載され公知となっている。
【0005】
特許文献1記載の技術を用いると、機器認証を行うことで機器の正当性を確認し、正当である機器との間でデータのやりとりを行うので、可搬型の記録メディアを保持していれば、機器が正当である限り、利用者がどこに居たとしても記録メディアのデータにアクセスできる。すなわち、利用者は、シンクライアントシステムのようにサーバにアクセスできないことによる不便さ、つまり、利用者がデータにアクセスできないことがあるという不便さとは無縁となる。
【特許文献1】米国特許出願公開第2006/0047944号
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかし、特許文献1記載の技術では、記録メディアのデータにアクセスするために、常に記録メディアから機器を起動し認証処理を行う必要がある。すなわち、機器が起動処理を終えて起動済みの状態において記録メディアを機器と接続しても記録メディアのデータにアクセスできない。そして、記録メディアに記録されているデータは、保護すべき要請が比較的大きいデータもあれば、情報が漏えいしたとしても損害がそれほど大きくなく、保護すべき要請が比較的小さいデータもある。なお、保護すべき要請が大きいか小さいかは様々な観点により定まる。主観的な観点により定まる場合もある。ここで、一例を挙げると、例えば、個人情報やクレジットカード番号などの情報は、プライバシー保護や金銭的価値の大きさという観点に立つと、多数の人にとって保護すべき要請が比較的大きいと言える。また、お気に入りのURL(Uniform Resource Locator)などは、個人の特定につながらなければ、漏えいしたとしても実害がそれほど大きくない、つまり保護すべき要請が比較的小さいと言える。
【0007】
そうすると、特許文献1記載の技術では、保護すべき要請が比較的小さいデータにアクセスしたい場合であっても、いちいち機器を再起動しOS(Operating System)の起動プロセスを待たなくてはならず、不便である。
そこで、本発明は、データの秘匿性を確保しつつ、利便性の高い記録デバイスを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本発明は、電子端末と接続が可能な記録デバイスであって、データを格納するセキュア領域と、前記記録デバイスが前記電子端末に接続した時に、前記電子端末の起動処理時に段階的に起動される前記電子端末の複数の構成要素の起動完了状況を判定する端末状態判定部と、前記判定された結果に応じて、前記セキュア領域のうち前記電子端末からのアクセスが可能な範囲を制限するアクセス制御部とを含むことを特徴とする記録デバイスである。
【発明の効果】
【0009】
上述の記録デバイスは、端末状態判定部を備えているので、記録デバイスが電子端末に接続した時に、電子端末の起動処理がどの程度進行しているかに応じて、セキュア領域に対して異なるレベルのアクセス制限を課すことができる。
異なるレベルのアクセス制限を課すことについて簡単に説明する。
例えば、端末状態判定部による判定の結果、既に電子端末の起動処理が完了している状態で記録デバイスが電子端末に接続したと判明したとする。この場合は、記録デバイスが電子端末の起動とともに認証を行ったわけではない。したがって、記録デバイスは、電子端末の正当性が不明であるとみなしてセキュア領域へのアクセスに厳しい制限を課す、つまりアクセス可能な範囲を狭める、とすることができる。
【0010】
一方、端末状態判定部による判定の結果、電子端末が起動処理を開始し始めた段階(あるいは、電子端末の電源オン時)から記録デバイスが接続したと判明したとする。この場合は、記録デバイス自身が、電子端末の起動とともに正当性の検証を行うので、比較的信頼性が高いものとして、セキュア領域の大部分にアクセスが可能である、とすることができる。
【0011】
このような構成を備えていると、保護すべき要請が比較的小さいデータについては緩いアクセス制限を課すことによって、電子端末の起動処理の進行度合にかかわらず電子端末が記録デバイスにアクセス可能とすることができる。つまり、特許文献1のようにいちいち電子端末を再起動させる必要がない。また、保護すべき要請が比較的大きく、不正に取得されるのが望ましくないデータについては、例えば起動処理の開始時から記録デバイスが接続されている場合にのみアクセス可能とすることができ、このようなデータの保護の水準を高くすることができる。すなわち、本発明は、保護すべきデータの安全性を犠牲にすることなく利便性の高い記録デバイスを実現している。
【0012】
ここで、前記電子端末は、前記複数の構成要素の起動に伴って、自端末の構成を示す構成情報を逐次更新し、前記端末状態判定部は、前記記録デバイスが前記電子端末に接続した時における前記構成情報を取得して、取得した構成情報に基づいて前記判定を行うこととしてもよい。
上述のように電子端末が構成情報を逐次更新するものである場合、記録デバイスの側に、電子端末の構成を調べるための特別な手段が不要となる。
【0013】
ここで、前記記録デバイスは、前記電子端末を制御するコードを含む端末制御プログラムを記録しており、前記端末制御プログラムは、前記記録デバイスが前記電子端末と接続した時に前記電子端末によって読み出されて実行され、前記端末制御プログラムには、前記構成情報を前記記録デバイスに出力させる出力ステップが含まれ、前記端末状態判定部は、前記端末制御プログラムが前記電子端末において実行され前記出力ステップによって出力された前記構成情報を受け付けて、受け付けた構成情報に基づいて前記判定を行うこととしてもよい。
【0014】
この構成によると、記録デバイスから送られるプログラムによって構成情報の記録デバイスへの出力を行うので、出所の不明なプログラムによって構成情報が電子端末から記録デバイスへと出力される場合に比べて前記端末状態判定部による判定の信頼性が高まる。
ここで、前記記録デバイスは、前記電子端末を制御するコードを含む端末制御プログラムを記録しており、前記端末制御プログラムは、固有の情報を含んでおり、前記記録デバイスが前記電子端末と接続した時に前記電子端末によって読み出されて実行され、前記構成情報は、前記複数の構成要素のそれぞれが起動する都度、更新され、前記端末制御プログラムには、前記電子端末に実行させる処理として、前記複数の構成要素のうち、未起動の構成要素を起動させる際に、前記未起動の構成要素の起動に伴う構成情報の更新を行う更新ステップが含まれ、前記更新ステップにおいて、前記端末制御プログラムは、前記更新にかかる構成情報を、前記未起動の構成要素と前記固有の情報に依存した情報にする処理を前記電子端末に行わせることにより前記更新を行うこととしてもよい。
【0015】
この構成によると、端末制御プログラムが固有の情報を用いて構成情報の更新を行うので、電子端末の起動が完了したときの構成情報のとる値が、記録デバイスが電子端末に接続したタイミングに応じて異なることとなる。したがって、電子端末の起動が完了したときの構成情報に基づいて、記録デバイスを電子端末に接続した時の前記複数の構成要素の起動完了状況を把握することができる。
【0016】
ここで、前記記録デバイスは、前記複数の構成要素が起動完了したならば構成情報がとるべき情報を比較情報として保持しており、前記比較情報には、前記更新ステップにおいて、前記複数の構成要素のいずれを対象として前記更新を行ったかに応じて定まる、構成情報がとるべき情報が複数含まれ、前記端末状態判定部は、取得した構成情報を、前記比較情報に含まれる複数の前記構成情報がとるべき情報と比較し、そのいずれと一致するかにより前記判定を行うこととしてもよい。
【0017】
この構成によると、いったん記録デバイスと電子端末との接続を切断したとしても、構成情報は、記録デバイスを電子端末に接続したタイミングに応じたものとなっているので、再度、記録デバイスを電子端末に接続したときに、初めて記録デバイスを電子端末に接続した時の前記複数の構成要素の起動完了状況を把握することができる。したがって、記録デバイスを電子端末に再接続した場合においても、初めて電子端末に接続した時と同等のアクセス制限を課すことができる。
【0018】
また、具体的には、前記電子端末は、起動時またはリセット時に構成情報を初期化し、前記複数の構成要素が段階的に起動されるのに伴って段階ごとに前記構成情報に情報を追加することで構成情報の更新を行うものであり、前記端末状態判定部は、前記段階ごとに追加されるべき各情報の有無により前記判定を行うこととしてもよい。
ここで、前記電子端末は、TCG(Trusted Computing Group)により仕様が定められたTPM(Trusted Platform Module)を含んでおり、前記TPMには、前記複数の構成要素の起動に伴って各構成要素のハッシュ値が送り込まれ、前記TPMは、PCRを複数備え、送り込まれたハッシュ値を用いてPCRを拡張する処理を行って各PCRに値を格納し、前記構成情報とは、拡張処理が行われて各PCRに格納されている値のことであり、前記端末状態判定部は、前記記録デバイスが前記電子端末に接続した時における前記電子端末の所定のPCRに、初期値以外の値が格納されているか否かに応じて前記判定を行うこととしてもよい。
【0019】
また、前記電子端末は、前記複数の構成要素が段階的に起動されるのに伴って、段階ごとに前記構成情報を更新するものであり、前記端末状態判定部は、前記段階のそれぞれにおいて構成情報がとるべき情報それぞれと、前記記録デバイスが前記電子端末に接続した時における前記構成情報とを比較し、いずれと一致するかにより前記判定を行うこととしてもよい。
【0020】
ここで、前記電子端末は、TCG(Trusted Computing Group)により仕様が定められたTPM(Trusted Platform Module)を含んでおり、前記TPMには、前記複数の構成要素の起動に伴って各構成要素のハッシュ値が送り込まれ、前記TPMは、PCRを備え、送り込まれたハッシュ値を用いてPCRを拡張する処理を行ってPCRに値を格納し、前記構成情報とは、拡張処理が行われてPCRに格納されている値のことであり、前記端末状態判定部は、前記段階のそれぞれにおいて前記PCRに格納されるべき値それぞれと、前記記録デバイスが前記電子端末に接続した時におけるPCRの値とを比較し、いずれと一致するかにより前記判定を行うこととしてもよい。
【0021】
また、前記セキュア領域は、前記端末状態判定部による判定が行われた場合にのみアクセス可能であり、前記電子端末は、前記記録デバイスの接続を検知する入出力インタフェースと、前記入出力インタフェースにより前記検知を行った際、(i)前記端末状態判定部による判定を含む第1のブート処理を実行させるか、(ii)前記端末状態判定部による判定を行わない第2のブート処理を実行させるかの選択をユーザから受け付ける受付手段とを備え、前記受付手段が前記第1のブート処理を実行させることを受け付けた場合、前記端末状態判定部による判定のための処理を実行し、前記受付手段が前記第2のブート処理を実行させることを受け付けた場合、前記端末状態判定部による判定のための処理を禁止することとしてもよい。
【0022】
これにより、セキュア領域以外の領域へのアクセスのみが必要となる場合は、端末状態判定部による判定のための処理を実行しないので、直ちに当該領域へのアクセスが可能となる。
また、本発明は、電子端末と接続が可能な記録デバイスであって、データを格納するセキュア領域と、前記記録デバイスが前記電子端末に接続した時に、前記電子端末の起動処理時に段階的に起動される前記電子端末の複数の構成要素の起動完了状況が、複数の起動状態のいずれに該当するかを示す起動状態情報を取得する取得手段と、取得した起動状態情報に示される起動状態に応じて、前記セキュア領域のうち前記電子端末からのアクセスが可能な範囲を制限するアクセス制御部とを含むことを特徴とする記録デバイスでもある。
【0023】
これにより、記録デバイスの構成が簡易なものであっても、セキュア領域に対するアクセス制限を課すことができる。
また、本発明は、電子端末と接続が可能であり、データを格納するセキュア領域を有する記録デバイスに用いられる集積回路であって、前記記録デバイスが前記電子端末に接続した時に、前記電子端末の起動処理時に段階的に起動される前記電子端末の複数の構成要素の起動完了状況を判定する端末状態判定部と、前記判定された結果に応じて、前記セキュア領域のうち前記電子端末からのアクセスが可能な範囲を制限するアクセス制御部とを含むことを特徴とする集積回路でもある。
【0024】
また、本発明は、電子端末と接続が可能であり、データを格納するセキュア領域を有する記録デバイスに対する電子端末からのアクセスを制限するアクセス制限方法であって、前記記録デバイスが前記電子端末に接続した時に、前記電子端末の起動処理時に段階的に起動される前記電子端末の複数の構成要素の起動完了状況を判定する端末状態判定ステップと、前記判定された結果に応じて、前記セキュア領域のうち前記電子端末からのアクセスが可能な範囲を制限するアクセス制御ステップとを含むことを特徴とするアクセス制限方法でもある。
【0025】
また、電子端末と接続が可能であり、データを格納するセキュア領域を有する記録デバイスに対する電子端末からのアクセスを制限する処理を前記記録デバイスに行わせるためのコンピュータ読み取り可能な制御プログラムを記録するプログラム記録媒体であって、前記制御プログラムは、前記記録デバイスが前記電子端末に接続した時に、前記電子端末の起動処理時に段階的に起動される前記電子端末の複数の構成要素の起動完了状況を判定する処理を前記記録デバイスに行わせる端末状態判定ステップと、前記判定された結果に応じて、前記セキュア領域のうち前記電子端末からのアクセスが可能な範囲を制限する処理を前記記録デバイスに行わせるアクセス制御ステップとを含むことを特徴とするプログラム記録媒体でもある。
【発明を実施するための最良の形態】
【0026】
<実施の形態>
以下、主に、本発明の記録デバイスについて、図面を用いて説明する。
1 概略
図1は、本発明の実施の形態におけるシステムの全体の構成を示している。
図1に示すように、サーバ1は、インターネット2を介して電子端末30a、電子端末30bと接続している。なお、電子端末30a、30bは、記録メディア10(記録デバイスと言うこともある)を用いたブート処理を実行することができ、本発明を実施するための機能を備えていれば、それぞれが同一の構成を備える必要はない。そこで、以降、電子端末30a、30bを区別せず、電子端末30として説明する。なお、電子端末30は、複数(図1では、電子端末30a、30bの2つ)存在することが必須ではなく、1つであってもよい。
【0027】
サーバ1は、電子端末30と通信を行い、Webサイトを通じた情報の閲覧、本やCDなどの商品の販売を行うオンラインストア、音楽データや映像データなどのコンテンツの配信などのサービスを提供する。
記録メディア10は、可搬な記録メディアで実現される。例えばSDカードである。
電子端末30は、駅や空港などの公衆の場所に設置されたPC(Personal Computer)端末や、外出先へ持ち出し可能な携帯端末などとして実現される。また、例えば、記録メディア10の保持者が日常的に利用する端末と同等の機能を有する端末、例えば会社内のオフィスに設置されたPC端末と同等の機能を有する携帯端末などとして実現される。詳しくは後述するが、電子端末30は、CPU(Central Processing Unit)、RAM(Random Access Memory)などを備えるコンピュータシステムである。電子端末30には、記録メディア10を挿入することができる。
【0028】
2 構成
次に、記録メディア10および電子端末30の構成を説明する。
2.1 記録メディア10の構成
まず、記録メディア10の構成を詳しく説明する。
図2は、記録メディア10の構成を示す機能ブロック図である。記録メディア10は、端末側制御部11と、端末状態判定部12と、起動手順記録部13と、アクセス設定記録部14と、実行部15と、端末判定部16と、端末側認証部17と、第1メディア側認証部18aと、第2メディア側認証部18bと、第3メディア側認証部18cと、アクセス制御部19と、メモリ領域20とを備える。
【0029】
2.1.1 端末側制御部11
順に説明すると、端末側制御部11は、図示するように、端末制御プログラム26を記憶している。
この端末制御プログラム26は、記録メディア10が電子端末30に挿入された時に、電子端末30に読み込まれて様々な処理を行う。端末制御プログラム26には、電子端末30のOS(Operating System)起動させるためのブートコードが含まれている。ここで、端末制御プログラム26による様々な処理とは、例えば、電子端末30の起動の制御や、電子端末30の認証処理などである。なお、端末制御プログラム26は、記録メディア10に固有の鍵を保持している。この鍵と一方向性関数を用いて、端末制御プログラム26自身や、電子端末30の第1基本ソフト45や第2基本ソフト46のハッシュ値などを算出する。ここで、端末制御プログラム26が用いる一方向性関数は、SHA-1やMD5などの一方向性関数に鍵値をからめるHMAC(Keyed-Hashing for Message Authentication)アルゴリズムであるとする。したがって、ハッシュ値の算出対象が同じであっても、端末制御プログラム26が保持している鍵が異なれば、端末制御プログラム26が算出するハッシュ値はそれぞれ異なるものとなる。端末制御プログラム26が電子端末30に読み込まれて行うこれらの処理については後の動作の説明で詳しく述べることとする。
【0030】
2.1.2 端末状態判定部12
端末状態判定部12は、電子端末30の起動完了に必要なソフトウェアがどの程度起動しているかに応じて段階的に分類された複数の状態のうち、電子端末30がいずれの状態であるかを判定する。
ここで、具体的には、端末状態判定部12は、本実施形態では、電子端末30が
(i)"起動時":後述する第2基本ソフト46も第1基本ソフト45も起動を開始していない状態
(ii)"起動途中":第2基本ソフト46が起動を開始しておらず、第1基本ソフト45が起動を開始してメモリにロードされている状態
(iii)"起動済み":第2基本ソフト46が起動を開始してメモリにロードされている状態
の3つのうちいずれの状態(起動状態)であるかを判定する。すなわち、本実施形態では、電子端末30の起動状態を、"起動時""起動途中""起動済み"の3つに分類している。
【0031】
なお、後述するが、本実施形態では、電子端末30は、第1基本ソフト45を起動した後に第2基本ソフト46を起動する。また、本実施形態では、第2基本ソフト46がメモリにロードされ実行されることで、電子端末30の起動が完了することとしている。起動が完了すると、電子端末30では、種々のアプリケーションソフトウェアが実行可能となる。
【0032】
なお、端末状態判定部12による起動状態の判定は記録メディア10の挿入時に行われることとなるが、この具体的な説明は電子端末30の動作とともに後述する。
2.1.3 起動手順記録部13
起動手順記録部13は、端末状態判定部12の判定結果を保持する。起動手順記録部13は、例えば、端末状態判定部12の判定を受けて、端末状態判定部12の判定結果を示す起動状態フラグ(起動状態情報)を記憶する。起動状態フラグは、例えば数値が格納され、起動状態フラグが"1"であれば、端末状態判定部12が"起動時"と判定したことを示すものとする。同様に、起動状態フラグが"2"であれば"起動途中"、起動状態フラグが"3"であれば"起動済み"と端末状態判定部12が判定したことを示すものとする。
【0033】
2.1.4 アクセス設定記録部14
アクセス設定記録部14は、メモリ領域20の第1セキュア領域21、第2セキュア領域22、第3セキュア領域23へのアクセスの可否を、記録メディア10の挿入時における電子端末30の起動状態それぞれと対応づけてアクセス設定テーブル51として記憶している。アクセス設定テーブル51の詳細は後述する。
【0034】
なお、本実施形態では、起動状態と対応づけられている第1セキュア領域21、第2セキュア領域22、第3セキュア領域23へのアクセスの可否をユーザがカスタマイズすることができることとしている。カスタマイズの方法は、後述する。
2.1.5 実行部15
実行部15は、例えばメモリ領域20へのアクセスの要求や電子端末30とのデータのやりとりなど、記録メディア10で実行されるさまざまな処理を実行する。
【0035】
2.1.6 端末判定部16
端末判定部16は、電子端末30が正当であるか否かの判定を行う。また、記録メディア10から電子端末30へ出力される端末制御プログラム26が正当であるか否かの判定を行うこともある。
端末判定部16は、図示するように複数の認証子を記憶している。本実施形態では、この認証子は、電子端末30の検証の際に、電子端末30が正当である場合に電子端末30から送られてくる認証子と同一の値であるとする。なお、端末認証プログラム26が第1基本ソフト45等のハッシュ値を算出し、この算出値を用いて電子端末30が認証子を生成した場合と同一の値の認証子も端末判定部16は記憶している。また、端末判定部16は、端末制御プログラム26が正当である場合の、端末制御プログラム26のハッシュ値も記憶している。
【0036】
端末判定部16は、電子端末30から送られてくる認証子の値と、端末判定部16が記憶している認証子の値とが一致すれば電子端末30が正当であると判定する。一致しなければ正当性はないと判定する。また、電子端末30から端末制御プログラム26のハッシュ値が送られてきた場合には、端末判定部16が記憶している、端末制御プログラム26が正当である場合のハッシュ値と比較して、一致すれば端末制御プログラム26が正当であると判定する。一致しなければ正当性はないと判定する。
【0037】
電子端末30が正当、もしくは電子端末30と端末制御プログラム26とがともに正当であると判定されれば、端末判定部16は、セキュア領域(第1セキュア領域21、第2セキュア領域22、第3セキュア領域23)に記憶されているデータの通信を電子端末30と行うために、端末側認証部17に複数記憶されている端末認証プログラム(図2では、第1端末認証プログラム27a、第2端末認証プログラム27b、第3端末認証プログラム27cの3つが図示されている)のうち、いずれを電子端末30に出力するかを、後述するプログラム送信テーブル52などを参照して指定する。このとき、指定にかかる端末認証プログラムに対応するメディア側認証部の指定も行う。図2では、第1メディア側認証部18a、第2メディア側認証部18b、第3メディア側認証部18cの3つが図示されており、これら3つのうちいずれかが指定される。
【0038】
なお、端末認証プログラム、メディア側認証部については後述する。また、第1メディア側認証部18a、第2メディア側認証部18b、第3メディア側認証部18cをひとまとめにしてメディア側認証部18と呼ぶこととする。
2.1.7 端末側認証部17
端末側認証部17は、電子端末30において実行される端末認証プログラムを複数記憶している。
【0039】
ここで、端末認証プログラムについて簡単に説明すると、端末認証プログラムは、記録メディア10と電子端末30とが安全にデータの交換を行うためのものである。端末判定部16により指定された端末認証プログラムは、端末判定部16が正当性を判定した後、正当であれば、実行部15により電子端末30に出力され、電子端末30において実行される。実行された端末認証プログラムは、端末判定部16により指定されたメディア側認証部(本実施形態では、第1メディア側認証部18a、第2メディア側認証部18b、第3メディア側認証部18cのうちいずれか)との間で認証処理を行ってセッション鍵を生成する処理や、生成したセッション鍵を用いて記録メディア10と電子端末30とが安全にデータを通信する処理などを行う。
【0040】
なお、本実施形態では、端末認証プログラムは、あらかじめ定められた複数のセキュリティ強度のレベルに応じて複数用意されているものとする。
2.1.8 メディア側認証部18
メディア側認証部18は、電子端末30において実行される端末認証プログラムとの間で認証処理を行って、上述のようにセッション鍵を生成する処理や、生成したセッション鍵を用いて記録メディア10と電子端末30とが安全にデータを通信する処理などを行う。認証処理は、例えば、チャレンジレスポンス型の認証方式によって実現される。
【0041】
なお、認証処理の方法は、上記チャレンジレスポンス型に限られない。例えば、2つの機器の間で認証処理を行って、データを暗号化する等の方法により安全にデータを通信する技術は従来より様々なものが知られており、これらの方法により認証処理を行うこととしてもよい。
2.1.9 アクセス制御部19
アクセス制御部19は、端末状態判定部12の判定結果に応じて、セキュア領域のうち、電子端末30からのアクセスが可能な範囲を制限する。
【0042】
具体的には、アクセス制御部19は、第1セキュア領域21、第2セキュア領域22、第3セキュア領域23それぞれについて、アクセス可能な端末認証プログラムを対応づけたアクセス制御テーブル53を記憶している。また、複数ある端末認証プログラムのうち、端末判定部16による判定後、電子端末30に出力されたものがいずれであるか、またはアクセス禁止の設定を記憶している。そして、アクセス制御部19は、これら記憶している情報を用いて、後述するような動作を行って電子端末30からのセキュア領域へのアクセスを制限する。
【0043】
2.1.10 メモリ領域20
メモリ領域20は、データを保存する領域である。メモリ領域20は、図示するように、セキュア領域(第1セキュア領域21、第2セキュア領域22、第3セキュア領域23)、プログラム保存領域24、通常領域25を含んでいる。
セキュア領域には、通常、秘匿すべきデータが記憶される(ただし、秘匿する必要がないデータを記憶していてもよい)。本実施形態では、セキュア領域のデータを安全に通信するために、セキュア領域のデータは、暗号化されて通信される。暗号化は、具体的には、端末判定部16により指定されたメディア側認証部と、指定されて電子端末30に出力された端末認証プログラムとが行う。
【0044】
また、セキュア領域のデータへのアクセスには制限が課せられる。本実施形態では、セキュア領域のうち、第1セキュア領域21には、最も強いアクセス制限を課してデータの保護を図ることとする。そして、第2セキュア領域22には、その次に強いアクセス制限を課す。第3セキュア領域23は、第1セキュア領域21、第2セキュア領域22と比較して弱いアクセス制限を課すこととする。例えば、データが不正に取得されたり漏えいした場合に損害が大きいデータを第1セキュア領域21に保存し、データが不正に取得等されたとしても、相対的に損害が小さいデータを第3セキュア領域23に保存する、等とすることが考えられる。例えば、金銭的な損害の発生の防止や個人情報の保護を重視する場合は、電子マネーなどの残高の情報やクレジットカード情報、記録メディア10の保持者の氏名や住所等を第1セキュア領域21や第2セキュア領域22に記憶させ、一方で、不正に取得されたとしても、金銭的な被害や個人の特定につながりにくいと考えられる情報、例えばお気に入りURLなどの情報を第3セキュア領域23に記憶させておくことが一例として考えられる。
【0045】
そして、本実施形態では、記録メディア10が電子端末30に挿入された時に、電子端末30の起動状態が端末状態判定部12によって"起動時"と判定される状態であれば第1セキュア領域21、第2セキュア領域22、第3セキュア領域23へのアクセスを許可することとする。"起動途中"と判定される状態であれば、第1セキュア領域21へのアクセスは許可せず、第2セキュア領域22、第3セキュア領域23へのアクセスを許可することとする。"起動済み"と判定される状態であれば、第1セキュア領域21、第2セキュア領域22へのアクセスを許可せず、第3セキュア領域23へのアクセスを許可することとする。つまり、記録メディア10の挿入時点が、電子端末30の起動開始時に近いほど、セキュア領域へのアクセス制限が緩くなる。
【0046】
このようにする理由は、以下の通りである。
まず、後述するように記録メディア10に記録されている端末制御プログラム26が、電子端末30の起動処理にかかる所定のソフトウェア(後述する第1基本ソフト45と第2基本ソフト46)の改ざん検出のための処理を行う。電子端末30は不正な端末である可能性があるため、電子端末30のソフトウェアが改ざん検出のための処理を行う場合と比べると、端末制御プログラム26が上記基本ソフトの改ざん検出のための処理を行う方が、改ざん検出の信頼性が高いと考えられる。
【0047】
そうすると、既に電子端末30において起動処理にかかる所定のソフトウェアの大部分が起動している、あるいは起動が完了している状態で記録メディア10を電子端末30に挿入する場合と比べて、記録メディア10を電子端末30に挿入した時点が、電子端末30の起動開始時に近い(つまり、所定のソフトウェアソフトがそれほど起動していない)ほど、端末制御プログラム26による処理の前に不正なソフトウェアが起動する余地が小さくなる。そのため、端末制御プログラム26が電子端末30の起動処理にかかる所定のソフトウェアに対する改ざんの有無を完全に確認できている可能性が高くなると考えられる。言い換えると、起動開始時から記録メディア10を用いて電子端末30を起動させた方が、電子端末30の正当性の検証の信頼性が高い、と考えられるからである。
【0048】
なお、セキュア領域は、第1セキュア領域21、第2セキュア領域22、第3セキュア領域23の3つからなるとしたが、特に数を限定するものではない。
また、上記のように正当性検証の信頼性が高い場合には、より信頼性が低い場合にアクセス許可される領域全てにアクセスできるようにするのではなく、各信頼性の高さそれぞれについて、独立したセキュア領域をアクセス許可する領域として割り当ててもよい。例えば、"起動時"と判定されれば第1セキュア領域21のみが、"起動途中"と判定されれば第2セキュア領域22のみが、"起動済み"と判定されれば第3セキュア領域23のみがアクセス許可されるとしてもよい。
【0049】
プログラム保存領域24は、プログラムを保存する目的で用意された領域である。この領域には、アクセス設定テーブル51の更新に用いるアクセス設定プログラムなどが記録されている。
通常領域25は、主に、安全に取り扱う必要のないデータを記録するための領域である。
【0050】
2.2 電子端末30の構成
次に、電子端末30の構成を詳しく説明する。
図3は、電子端末30の構成を示す機能ブロック図である。電子端末30は、記録メディア入出力インタフェース31と、端末起動部32と、記憶部33と、SM(Secure Module)34とからなる。また、記録メディア10から端末制御プログラム26を読み出してメモリにロードして実行することにより端末側制御部35が実現される。同様に、記録メディア10から端末認証プログラムを読み出してメモリにロードして実行することにより端末側認証部36が実現される。
【0051】
なお、本実施形態では、電子端末30は、Trusted Computing Group(TCG)と呼ばれる団体によって仕様が公開されたTPM(Trusted Platform Module)を備えており(本実施形態ではSM34がTPMの機能を有する)、TCGにより定められた"Integrity Measurement"や"Integrity Reporting"や"Integrity logging"と呼ばれる処理を行うことができるものとする。なお、TCGの詳細を知るには、TCGのWebホームページhttp://www.trustedcomputinggroup.orgを参照するとよい。
【0052】
2.2.1 記録メディア入出力インタフェース31
順に説明すると、記録メディア入出力インタフェース31は、電子端末30が記録メディア10と通信を行うためのインタフェースである。また、記録メディア10が挿入されたことを検知する機構を有する。
2.2.2 端末起動部32
端末起動部32は、電子端末30の起動を行う。具体的には、図示するように、BIOS43と、ブートローダ44とを記憶している。ブートローダ44は、OSの一部分である第1基本ソフト45を起動させるためのブートプログラムである。なお、TCGの仕様に準拠して、BIOS43には、ブートローダ44のハッシュ値を算出するためのCRTM(Core Root of Trust Measurement)が含まれているとする。また、ブートローダ44には第1基本ソフト45のハッシュ値を算出するために、そして、第1基本ソフト45には第2基本ソフト46のハッシュ値を算出するために、それぞれRTM(Root of Trust Measurement)が含まれていることとする。
【0053】
なお、本実施形態では、電子端末30においてBIOS43が起動すると、BIOS43は、第1基本ソフト45を起動させるためのブートプログラムを探索し、記録メディア10または電子端末30自身からブートプログラムを読み出す。そして、記録メディア10からのブートプログラムの読み出しを、電子端末30自身からの読み出しよりも優先する。すなわち、BIOS43がブートプログラムを探索した時に、
(i)記録メディア10の挿入が記録メディア入出力インタフェース31により検知されている場合:
BIOS43は、記録メディア10から端末制御プログラム26を読み出す。この端末制御プログラム26は、第1基本ソフト45を起動させるためのブートコードも含んでいる。この端末制御プログラム26により第1基本ソフト45が起動される。
【0054】
また、
(ii)記録メディア入出力インタフェース31が記録メディア10の挿入を検知していない場合:
BIOS43は、ブートローダ44の起動処理を行う。
なお、BIOS43とブートローダ44とは、本実施形態では、不正アクセスを防止する機構を有するセキュアな記憶領域に記憶されていることとするが、これに限らず他の記憶領域に記憶されていてもよい。
【0055】
2.2.3 記憶部33
記憶部33は、第1基本ソフト45と第2基本ソフト46とを記憶している。なお、第2基本ソフト46も、第1基本ソフト45と同様、OSの一部分である。なお、OSに含まれるプログラムを複数のグループに分けることとし、本実施形態では第1基本ソフト45と第2基本ソフト46の2つに大別したが、分け方は2つに限るものではなく3つ以上であってもよいし、また、複数に分けることに限るものでもない。
【0056】
2.2.4 SM34
SM34は、RSAなどの暗号回路、SHA-1やHMACなどの演算回路、データを保存する領域、乱数生成回路などを備えたセキュリティモジュールである。一般的には、上述のように、TCGによって仕様が公開されたTPMで実現される。TPMの詳細は、TCGのWebホームページhttp://www.trustedcomputinggroup.orgにおいて公開されている。SM34内の動作は、TCGで公開されたIntegrity Measurementと呼ばれる方式およびTPMの仕様において定められている。
【0057】
具体的には後述するが、SM34は、外部から受け取ったハッシュ値を用いて電子端末30の認証子を生成して保存する。ここでいう認証子とは、要するに電子端末30の構成の測定値(measured value)を示すものであり、TCGにより定められたPCR拡張処理(Extend)により得られる。
図3においては、SM34の備える構成の一部を図示している。
【0058】
I/O40は、SM34と外部との入出力インタフェースである。
PCR(Platform Configuration Register)41は、複数のレジスタ(PCR1、PCR2、PCR3、・・)を備える記憶領域である。
SHA-1演算器42は、ハッシュ演算を行う。なお、ハッシュ演算に用いるアルゴリズムはSHA-1とするが、他のアルゴリズムによりハッシュ演算を行うこととしてもよい。
【0059】
2.2.5 端末側制御部35
端末側制御部35は、上述のように端末制御プログラム26が電子端末30のメモリにロードされて実行されることで実現される。なお、ハッシュ演算のためのハッシュ演算部47を備える。ここで、ハッシュ演算に用いるアルゴリズムはHMACとするが、他のアルゴリズムによりハッシュ演算を行うこととしてもよい。そして、電子端末30の起動状態に応じた処理を行う。詳しくは動作の説明で述べる。
【0060】
2.2.6 端末側認証部36
端末側認証部36は、上述のように端末認証プログラムが電子端末30のメモリにロードされて実行されることで実現される。そして、記録メディア10との間で、データ通信のためのセッション鍵生成の処理などを行う。
3 データ
次に、各データについて説明する。
【0061】
3.1 アクセス設定テーブル51
図4は、アクセス設定テーブル51を示す図である。
アクセス設定テーブル51は、記録メディア10の挿入時における電子端末30の起動状態それぞれについて、アクセス可能なセキュア領域の範囲を示す。なお、同図に示すように、アクセス設定テーブル51では、起動状態それぞれと対応づけてセキュリティ強度を記憶する。セキュリティ強度とは、電子端末30が記録メディア10のセキュア領域のデータにアクセスする際に、どの程度のレベルの安全性を必要とするかを示すものである。例えば、セキュリティ強度"高"の場合は、より安全にデータをやりとりするために、改ざんが困難なプログラムや、暗号解読がより困難なアルゴリズムを用いることを示す。
【0062】
なお、本実施形態では、電子端末30の起動直後から記録メディア10が挿入されていた場合を、最もセキュリティ強度が高いとしている。このセキュリティ強度は、端末判定部16が電子端末30の正当性を判定した後、電子端末30に出力する端末認証プログラムを指定する際に用いられる。
3.2 プログラム送信設定テーブル52
図5は、プログラム送信設定テーブル52を示す図である。
【0063】
プログラム送信設定テーブル52は、セキュリティ強度と、端末判定部16が電子端末30へ出力する端末認証プログラムおよび当該端末認証プログラムに対応するメディア側認証部の組との対応を示す。
例えば、図示するように、セキュリティ強度が「高」であれば、第1端末認証プログラム27aが端末判定部16により指定される。このとき、第1端末認証プログラム27aに対応するメディア側認証部は、第1メディア側認証部18aとなる。したがって、第1端末認証プログラム27aが電子端末30に出力されると、第1端末認証プログラム27aが電子端末30のメモリにロードされ実行されることにより実現される端末側制御部35と第1メディア側認証部18aとがセッション鍵生成の処理などを行う。なお、本実施形態では、各端末認証プログラムおよび各メディア側認証部のうち、第1端末認証プログラム27aと第1メディア側認証部18aとの組が、最も安全にデータをやりとりできるものとする。また、第3端末認証プログラム27cと第3メディア側認証部18cとの組は、最も簡易な方法でデータをやりとりする、つまり高速でデータをやりとりできる反面、データの安全性については第1端末認証プログラム27aと第1メディア側認証部18aとの組、第2端末認証プログラム27bと第2メディア側認証部18bとの組より劣るものとする。
【0064】
セキュリティ強度の違いは、より具体的には、共有するセッション鍵の長さや、記録メディアと端末の間で通信するデータを暗号化する暗号化アルゴリズムの強度の違いなどから表すことができる。なお、本実施の形態ではセキュリティ強度「低」の場合も、記録メディアと電子端末との間でセッション鍵を用いて情報を暗号化してやりとりすることを想定しているが、情報を暗号化せず、特にセキュリティ面の対策を行わない場合をセキュリティ強度「低」としてもよい。
【0065】
また、セキュリティ強度に違いを設ける方法は、これに限るものではない。例えば、セッション鍵の生成に用いる情報の漏洩しやすさによって分類することも考えられる。この場合、セッション鍵の生成に耐タンパ化された領域や書き換えができないROM領域に記録されている情報が使われるのであれば強度が高く、通常のメモリ上の情報しか使わないのであれば強度が低い。また、暗号化以外の強度以外にも、やりとりする情報に電子署名を付加するか否かや、電子端末に送り込まれる端末認証プログラムがどの程度難読化されているかによって強度を分類してもよい。
【0066】
3.3 アクセス制御テーブル53
図6は、アクセス制御テーブル53を示す図である。
アクセス制御テーブル53は、セキュア領域のうち、電子端末30からアクセスされる対象と、アクセスが許可される端末認証プログラムとを対応づけている。
例えば、図示するように、電子端末30から第1セキュア領域21へのアクセスが許可されている端末認証プログラムは、第1端末認証プログラム27aのみである。同様に、第3セキュア領域23へのアクセスが許可されている端末認証プログラムは、第1端末認証プログラム27a、第2端末認証プログラム27b、第3端末認証プログラム27cである。すなわち、第3端末認証プログラム27cが電子端末30へと出力された場合、電子端末30は、第1セキュア領域21および第2セキュア領域22にはアクセスできず、第3セキュア領域23へのアクセスが許可される。つまり、本実施形態では、より秘匿すべき要請の強いデータほど、安全な方法でデータをやりとりするものとする。
【0067】
4 動作
次に、記録メディア10および電子端末30の動作について説明する。
4.1 電子端末30の動作の概略
まず、電子端末30の動作の概略を、図7に示す。
図示するように、電子端末30は、動作を開始すると、起動処理を行う(S1000)。この起動処理の詳細は、図8等を用いて詳しく説明する。
【0068】
起動処理が完了すると、電子端末30は、セキュア領域へのアクセスを制限しつつアプリケーションの実行などを行う(S2000)。アクセスを制限する際の処理は図18を用いて後述する。
4.2 記録メディア10が挿入されない場合の起動処理
以下、まずステップS1000の起動処理について詳しく説明する。
【0069】
図8および図9は、電子端末30が起動を開始してから起動を完了するまでの処理を示すフローチャートである。
まず電子端末30の起動時において記録メディア10が挿入されない場合の動作を説明する。なお、本実施形態においては、電子端末30は、上述のようにTCGにより定められた仕様に従った動作を行う。具体的には"Integrity Measurement"やPCRを拡張(Extend)する処理を行う。
【0070】
図8に示すように、電子端末30は、電源が投入されることにより(S1)、起動処理を開始する。なお、システムをリブートしたときも起動処理を開始する。このとき、SM34のPCR41の各PCRの値は、リセットされて初期値"0"となる。
起動処理を開始した電子端末30は、まずBIOS43のブートブロックに記述されているCRTM(Core Root of Trust Measurement)が実行され、CRTMがBIOS43のハッシュ値を算出する。なお、算出したBIOS43のハッシュ値をIn(BIOS)とする。
【0071】
CRTMは、算出したハッシュ値In(BIOS)をSM34に出力する(S5)。
SM34は、算出値を受け取り、 PCR1=SHA-1(In(BIOS)) という演算によりPCRを拡張する処理を行う。拡張処理が行われた値を、複数あるPCRのうち所定のPCRに記録する。本実施形態では、BIOS43とPCR1とが対応しているものとし、SM34は、BIOSのハッシュ値を拡張処理した値をPCR1に記録することとする(S7)。なお、各PCRと対応しているコンポーネントについて簡単に説明すると、本実施形態では、ブートローダ44とPCR2が対応し、第1基本ソフト45とPCR3が対応し、第2基本ソフト46とPCR4が対応していることとしている。なお、PCRを拡張する処理は、一般的に、 PCR(n+1)=SHA-1(PCR(n)+measured data)という演算により行われる。ここで、measured dataは、コンポーネントのハッシュ値を示し、PCR(n+1)は、そのハッシュ値が算出されたコンポーネントに対応するPCRを示す。また、PCR(n)は、PCR(n+1)よりも1つ前に計算されたPCR、すなわち、PCR(n+1)に対応するコンポーネントの直前に起動されたコンポーネントに対応するPCRを意味する。また、SHA-1(PCR(n)+measured data)は、PCR(n)とmeasured dataとを連結してSHA-1によりハッシュ演算を行うことを意味する。すなわち、"+"は連結を意味する。
【0072】
動作の説明に戻る。
BIOS43に対応するPCR(PCR1)に値が記録されると、BIOS43がメモリにロードされて実行される(S9)。
BIOS43は、実行されると、OSを起動させるためのブートローダを探索する。ここで、BIOS43は、記録メディア入出力インタフェース31によって記録メディア10の挿入が検知されている場合は、記録メディア10からブートを実行し(S11:YES)、検知されていない場合は、電子端末30のブートローダによりブートを実行する(S11:NO)。なお、記録メディア10が挿入された時の処理(S40)は、後で詳しく説明することとし、ここでは、まず、電子端末30のブートローダ44によりOSを起動する場合を説明する。
【0073】
この場合、BIOS43に含まれるRTM(Root of Trust Measurement)コードが実行されることにより、ブートローダ44のハッシュ値が算出される(S13)。なお、算出されたブートローダ44のハッシュ値をIn(BL)とする。RTMは、算出したハッシュ値In(BL)をSM34に出力する(S15)。SM34は、ハッシュ値を受け取り、 PCR2=SHA-1(PCR1+In(BL)) という演算によりPCRを拡張する処理を行う。拡張処理が行われた値を、ブートローダ44に対応するPCRであるPCR2に記録する(S17)。
【0074】
ブートローダ44に対応するPCR(PCR2)に値が記録されると、ブートローダ44がメモリにロードされて実行される(S19)。
図9に基づいて説明を続ける。
ブートローダ44が実行されると、ブートローダ44のRTMコードが実行されることにより、第1基本ソフト45のハッシュ値が算出される(S21)。算出された第1基本ソフト45のハッシュ値をIn(OS1)とすると、RTMは、算出したハッシュ値In(OS1)をSM34に出力する(S23)。
【0075】
SM34は、ハッシュ値を受け取り、 PCR3=SHA-1(PCR2+In(OS1)) という演算によりPCRを拡張する処理を行う。拡張処理が行われた値を、第1基本ソフト45に対応するPCRであるPCR3に記録する(S25)。
第1基本ソフト45に対応するPCRであるPCR3に値が記録されると、第1基本ソフト45がブートローダ44によりメモリにロードされて実行される(S27)。
【0076】
第1基本ソフト45が実行されると、第1基本ソフト45のRTMコードが実行されることにより、第2基本ソフト46のハッシュ値が算出される(S29)。
算出された第2基本ソフト46のハッシュ値をIn(OS2)とすると、RTMは、算出したハッシュ値In(OS2)をSM34に出力する(S31)。SM34は、ハッシュ値を受け取り、 PCR4=SHA-1(PCR3+In(OS2)) という演算によりPCRを拡張する処理を行う。拡張処理が行われた値を、第2基本ソフト46に対応するPCRであるPCR4に記録する(S33)。第2基本ソフト46に対応するPCRであるPCR4に値が記録されると、第2基本ソフト46がメモリにロードされて実行される(S35)。
【0077】
4.3 記録メディア10挿入時の電子端末30の動作
以上が電子端末30の、記録メディア10が挿入されなかった場合の動作の説明であるが、ブートローダ44が起動した後において記録メディア10が挿入された場合の動作を簡単に説明する。図10においてブートローダ起動済みの電子端末30の動作として示すように、電子端末30は、ブートローダ44が起動した後、記録メディア入出力インタフェース31により記録メディア10の挿入を検知すると(S37)、記録メディア10が挿入された時の処理(S40)を行う。
【0078】
4.4 記録メディア10挿入時の処理の詳細
続いて、図8や図10にて示したステップS40の処理の詳細を、図11等を用いて説明する。
図11および図12は、記録メディア10が電子端末30に挿入された時の、記録メディア10および電子端末30の動作を示す図である。なお、概略を述べると、主に、(i)記録メディア10が挿入された時における電子端末30の起動状態を判定する処理と、(ii)電子端末30の正当性を検証する処理とが記録メディア10により行われる。また、記録メディア10は、記録メディア10が電子端末30に挿入される時点に応じて異なる処理を行う。
【0079】
図11に示すように、記録メディア10が挿入されたことを電子端末30が検知すると、電子端末30は、記録メディア10から端末制御プログラム26を読み出す。読み出した端末制御プログラム26をメモリにロードすることにより端末側制御部35を実現する(S41)。
そして、電子端末30の端末側制御部35と記録メディア10とは、電子端末30の起動状態を判定する処理を行う(S43、S45)。ここで、ステップS43、S45の詳細は、図13〜15を用いて後述する。このステップS43、S45により、起動手順記録部13において、起動状態の判定結果が起動状態フラグとして記憶される。
【0080】
また、端末側制御部35(電子端末30において実行されている端末制御プログラム26)は、起動状態の判定結果に基づいて、第1基本ソフト45や第2基本ソフト46などのハッシュ値の算出方法を制御する(S47)。ここで、ステップS47の詳細は、図15〜図17を用いて後述する。
第2基本ソフト46が起動すると(上述のステップS35)、端末側制御部35は、第2基本ソフト46に対応するPCR(PCR4)の値を認証子として記録メディア10に出力する(S49)。なお、ステップS47の詳細な説明で後述するが、ステップS43において電子端末30の起動状態が"起動途中""起動済み"と判定された場合は、ステップS47において、電子端末30は、ステップS41でロードした端末制御プログラム26のハッシュ値を所定の記憶領域に記憶しておくこととしている。そして、上記のように"起動途中""起動済み"と判定された場合、ステップS49において、電子端末30は、上述の認証子に加えて、端末制御プログラム26のハッシュ値も記録メディア10に出力する。なお、このハッシュ値は、後述するステップS51における正当性の検証処理において、端末制御プログラム26の正当性の検証のために用いられる。なお、ステップS43およびS45において"起動済み"と判定された場合は、ステップS43およびS45において起動状態の判定のために送られたPCR4の値をそのまま認証子として用いることができるので、ステップS49においてはPCR4の値を送る必要は無い。
【0081】
図12に基づいて説明を続ける。
記録メディア10は、電子端末30から送られた認証子を受け取ると、端末判定部16によって電子端末30の正当性を判定する(S51)。なお、起動状態が"起動途中"または"起動済み"と判定される場合は、電子端末30から、端末制御プログラム26のハッシュ値も出力されるので、このハッシュ値を用いて、端末制御プログラム26が正当であるかの判定も行う。より具体的には、記録メディア10は、各端末制御プログラムのハッシュ値を予め記録しており、電子端末30から受け取ったハッシュ値が、記録しているハッシュ値と等しいものであるか否かを確認することで判定を行う。
【0082】
電子端末30が正当でないと判定されると(S53:NO)、電子端末30が不正な機器であるので、セキュア領域へのアクセスを禁止する設定をアクセス制御部19において記憶する(S55)。なお、端末制御プログラム26が正当でないと判定された場合も、同様にセキュア領域へのアクセスを禁止する設定をアクセス制御部19において記憶する(S55)。
【0083】
ステップS51において、(端末制御プログラム26の正当性が判定された場合は、端末制御プログラム26が正当と判定され、かつ、)電子端末30が正当であると判定されれば(S53:YES)、端末判定部16は、ステップS43において起動手順記録部13に記憶された起動状態フラグの数値を参照して、端末状態判定部12が"起動時""起動途中""起動済み"のいずれと判定したかの情報を取得する。端末状態判定部12の判定結果に対応するセキュリティ強度を、アクセス設定テーブル51を参照して取得する。例えば、判定結果が"起動時"であれば、セキュリティ強度は"高"である。取得したセキュリティ強度に対応する端末認証プログラムとメディア側認証部を、プログラム送信設定テーブル52を参照して指定する。例えば、セキュリティ強度が"高"であれば、端末判定部16は、第1端末認証プログラム27aと、第1メディア側認証部18aとを指定する。
【0084】
記録メディア10の実行部15は、端末判定部16によって指定された端末認証プログラム(例えば、ステップS43における端末状態判定部12の判定結果が"起動時"であれば第1端末認証プログラム27a)を電子端末30に出力する(S57)。
電子端末30は、記録メディア10から出力される端末認証プログラムを受信して端末側認証部36を実現する(S59)。端末側認証部36は、記録メディア10のメディア側認証部との間でセッション鍵を共有するなど、セキュア領域のデータを安全にやりとりするための所定の処理を行う(S61)。
【0085】
また、記録メディア10の実行部15は、いずれの端末認証プログラムを電子端末30に出力したかを、アクセス制御部19に記憶させる(S63)。
そして、実行部15は、端末判定部16により指定されたメディア側認証部を起動させて、電子端末30の端末側認証部36との間でステップS61で述べた所定の処理を行う(S65)。
【0086】
4.5 起動状態の判定処理
ここで、ステップS43、S45の処理の詳細、すなわち電子端末30の起動状態の判定処理について詳しく説明する。
図13は、電子端末30の動作、および、端末状態判定部12による電子端末30の起動状態の判定処理を示すフローチャートである。なお、図8〜9で示したように、電子端末30は、起動とともに各PCRに値を記録している。この点に着目し、本実施形態では、端末状態判定部12は、記録メディア10の挿入時において、BIOS43等と対応している所定のPCRに値が記録されているか否か、すなわち、PCRの値が初期値"0"でないか否かに基づいて、電子端末30の起動状態を判定している。なお、PCRの値が初期値"0"でないことを、「PCRに値がある」といい、PCRの値が初期値"0"であることを、「PCRに値がない」という。
【0087】
以下、具体的に説明すると、電子端末30の端末側制御部35は、電子端末30の起動処理時に起動される各プログラムと対応しているPCRのうち少なくとも1つの値を記録メディア10に出力する(S67)。ここで、どのPCRの値を電子端末30が記録メディア10に出力すべきかを簡単に説明する。図15は、起動処理時に起動される各プログラムと対応しているPCRを示す図である。端末状態判定部12は、PCR4に値があれば、第2基本ソフト46が起動していると判定できる。また、端末状態判定部12は、PCR4に値が無く、PCR3に値があれば、第2基本ソフト46が起動しておらず、第1基本ソフト45が起動していると判定できる。また、PCR3に値が無く、PCR2に値があれば、第1基本ソフト45が起動しておらず、ブートローダ44が起動していると判定できる。また、端末状態判定部12は、PCR2に値が無ければ、ブートローダ44が起動していないと判定できる。そこで、本実施形態では、各PCRのうち、ブートローダ44と対応しているPCR2と、第1基本ソフト45と対応しているPCR3と、第2基本ソフト46と対応しているPCR4とを電子端末30から記録メディア10に出力する。この3つを出力すれば、端末状態判定部12において、"起動時""起動途中""起動済み"の3つの状態の判定が可能となるからである。
【0088】
なお、本実施形態では、PCR2とPCR3とPCR4の3つを電子端末30から記録メディア10に出力することとしているが、これに限らず、いずれか1つのPCRの値を出力することとしてもよい。例えば、PCR4の値を出力すれば、記録メディア10は、"起動済み"の状態であるかそうでないかを判定することができる。つまり、このような2種の判定結果に基づいて、セキュア領域のアクセス制限をしてもよい。
【0089】
起動状態の判定処理の説明に戻る。
ステップS67により電子端末30から所定のPCRの値(本実施形態ではPCR2とPCR3とPCR4)が記録メディア10に出力されると、記録メディア10は、端末状態判定部12により、各PCRの値に応じて電子端末30の起動状態を判定する(S69)。
ここで、ステップS69の詳細を説明する。
【0090】
図14は、起動状態の判定処理の詳細を示すフローチャートである。
記録メディア10の端末状態判定部12は、ステップS67において電子端末30から出力されたPCR(PCR4とPCR3とPCR2)の値を取得する(S73)。
そして、PCR4に値があるか否か、つまりPCR4が"0"でないか否かを判断する(S75)。
【0091】
PCR4に値があると判断すると(S75:YES)、第2基本ソフト46が起動していることになるので、端末状態判定部12は、"起動済み"と判定し、起動手順記録部13の起動状態フラグを、"起動済み"を示すものにする(S79)。本実施形態では起動状態フラグに"3"をセットする。
ステップS75において、PCR4に値がないと判断すると(S75:NO)、端末状態判定部12は、PCR3に値があるか否かを判断する(S77)。
【0092】
PCR3に値があると判断すると(S77:YES)、第2基本ソフト46が起動しておらず第1基本ソフト45が起動していることになるので、端末状態判定部12は、"起動途中"と判定し、起動手順記録部13の起動状態フラグを、"起動途中"を示すものにする(S81)。本実施形態では起動状態フラグに"2"をセットする。
ステップS77において、PCR3に値がないと判断すると(S77:NO)、端末状態判定部12は、PCR2に値があるか否かを判断する(S78)。
ステップS78において、PCR2に値があると判断すると(S78:YES)、端末状態判定部12は、"起動途中"と判定し、起動手順記録部13の起動状態フラグを、"起動途中"を示すものにする(S81)。本実施形態では起動状態フラグに"2"をセットする。
【0093】
また、ステップS78において、PCR2に値がないと判断すると(S78:NO)、端末状態判定部12は、"起動時"と判定し、起動手順記録部13の起動状態フラグを、"起動時"を示すものにする(S83)。本実施形態では起動状態フラグに"1"をセットする。
ステップS43、S45の処理の詳細は以上である。
4.6 端末制御プログラム26の処理の詳細
次に、ステップS47の処理の詳細を説明する。
【0094】
図16および図17は、起動状態の判定処理を終えた後、電子端末30によって実行された端末制御プログラム26が、ハッシュ値の算出対象を制御する処理を示すフローチャートである。要するに、以降の処理では、端末制御プログラム26は、電子端末30の起動処理にかかる各プログラムのうち、未起動の部分のハッシュ値の算出を、電子端末30の各プログラムに代わって行う。例えば、起動時に記録メディア10が挿入されていれば(すなわち第1基本ソフト45が立ち上がっていない状態であれば)、端末制御プログラム26は、ブートローダ44に代わって第1基本ソフト45のハッシュ値を算出する。
【0095】
以下、説明すると、図16に示すように、電子端末30によって実行された端末制御プログラム26(ハッシュ演算部47を備える端末側制御部35)は、まず、自身のハッシュ値を算出する(S85)。このハッシュ値は、端末制御プログラム26自身の正当性の検証に使われる場合がある。なお、端末制御プログラム26は、上述のようにHMACアルゴリズムを用いてハッシュ値を算出する。
【0096】
端末制御プログラム26は、記録メディア10から、起動手順記録部13に記憶されている起動状態フラグを取得する(S87)。
ステップS87において端末制御プログラム26が取得した起動状態フラグが、
(i)"起動時"を示すものであれば(S89:起動時)、端末制御プログラム26は、ステップS85において算出した自身のハッシュ値をSM34に出力する(S91)。つまり、起動状態フラグが"起動時"ということは、電子端末30においてはBIOS43が起動していてブートローダ44が起動していないということである。そのため、端末制御プログラム26がブートローダ44に代わって第1基本ソフト45の起動を行うこととなる。そこで、ブートローダ44のハッシュ値に代えて、端末制御プログラム26のハッシュ値をSM34に送る。なお、SM34では、図15に示すように、端末制御プログラム26のハッシュ値を受け付けて、このハッシュ値をIn(BL)として、PCR2=SHA-1(PCR1+In(BL)) という演算によりPCRを拡張する処理を行う。拡張処理が行われた値を、ブートローダ44に対応するPCRであるPCR2に記録する(S93)。
【0097】
PCR2に値が記録されると、端末制御プログラム26は、第1基本ソフト45のハッシュ値を算出する(S95)。算出したハッシュ値を、SM34に出力する(S97)。算出したハッシュ値をIn(OS1)とすると、SM34は、ハッシュ値を受け取り、 PCR3=SHA-1(PCR2+In(OS1)) という演算によりPCRを拡張する処理を行う。拡張処理が行われた値を、第1基本ソフト45に対応するPCRであるPCR3に記録する(S99)。この処理は、第1基本ソフト45のハッシュ値の算出主体が異なる点以外は、ステップS25と同様である。
【0098】
その後、第1基本ソフトのロードおよび実行がなされる(S101)などの処理が行われるが、ステップS101はステップS27と同一の処理であり、以下同様に、ステップS103から図17のS105、S107、S109までの処理は、図9のステップS29、S31、S33、S35の処理と同一であるため説明を省略する。
また、ステップS87において端末制御プログラム26が取得した起動状態フラグが、(ii)"起動途中"を示すものであれば(S89:起動途中)、端末制御プログラム26は、ステップS85において算出した自身のハッシュ値をSM34の所定のPCRに記憶させる。なお、このハッシュ値は、上述のように、ステップS51の処理において、端末制御プログラム26自身が正当であるかの判定に用いられる。
【0099】
"起動途中"ということは第1基本ソフト45が起動していて第2基本ソフト46が起動していない。そこで、端末制御プログラム26は、第1基本ソフト45に代わって第2基本ソフト46のハッシュ値を算出する(S113)。以降、ステップS105、S107、S109の処理を行う。補足すると、この(ii)の場合、ステップS105において、算出した第2基本ソフト46のハッシュ値をSM34に出力する主体は、端末制御プログラム26である。
【0100】
また、ステップS87において端末制御プログラム26が取得した起動状態フラグが、(iii)"起動済み"を示すものであれば(S89:起動済み)、ステップS111と同様に、端末制御プログラム26は、自身のハッシュ値を所定のPCRに記憶させる(S115)。
なお、ステップS111やS115において、端末制御プログラム26のハッシュ値を所定のPCRに記憶させることとしているが、これは一例であり、記憶させる領域はPCRに限らず、他の領域、例えばPCR以外の電子端末30内のメモリに記憶することとしてもよい。
【0101】
なお、上述の処理において、端末制御プログラム26は、電子端末30の第1基本ソフト45等に代わってハッシュ値の算出を行うこととしているが、これは、記録メディア10の側にとっては、自メディアに記録されているプログラムの方がプログラムの出所が明らかである場合が多いため、電子端末30内のプログラムよりも信頼性が高いと考えられるからである。
【0102】
このようにして、記録メディア10は、電子端末30の起動処理とともに電子端末30の正当性の検証を行う。
4.7 アクセス制限にかかる処理
続いて、起動処理が完了した後の電子端末30の動作(S2000)を説明する。なお、メモリ領域に対してアクセス制限を実施する方法は様々なものがあるため、ここでは一例を説明することとする。
【0103】
図18は、アクセス制御部19によるアクセス制御処理を示すフローチャートである。なお、アクセス制御部19は、アクセス制御テーブル53を記憶している。また、ステップS55においてアクセスを禁止する設定を記憶しているか、ステップS63において、記録メディア10から電子端末30に出力された端末認証プログラムがいずれであるかを記憶している。
【0104】
図18に示すように、アクセス制御部19は、電子端末30からセキュア領域へのアクセス要求を検知すると(S117)、ステップS55によりアクセス禁止の設定が記憶されたか否かを判断する(S119)。
アクセス禁止であれば(S119:YES)、電子端末30からセキュア領域へのアクセスを拒否する(S127)。
【0105】
アクセス禁止でなければ(S119:NO)、アクセス制御部19は、アクセス制御テーブル53を参照し、電子端末30がアクセスを要求しているアクセス対象のセキュア領域と対応づけられている、アクセス許可対象の端末認証プログラムを確認する。そして、ステップS63において記憶した端末認証プログラムが、アクセス許可対象に含まれているか判断する(S121)。例えば、図面の例では、電子端末30からのアクセス対象となっているセキュア領域が第1セキュア領域21である場合、ステップS63において記憶した端末認証プログラムが、第1端末認証プログラム27aであるか判断する。
【0106】
判断の結果が肯定的であれば(S123:YES)、アクセス制御部19は、電子端末30によるアクセスを許可し、端末側認証部36およびメディア側認証部によって生成されたセッション鍵を用いて、セキュア領域内のデータを暗号化して電子端末30へ出力する(S125)。
また、ステップS121の判断の結果が否定的であれば(S123:NO)、電子端末30からのアクセスを拒否する(S127)。
【0107】
4.8 アクセス設定
ここで、アクセス設定記録部14の説明において、セキュア領域へのアクセスの可否をユーザがカスタマイズできることとしていると説明したが、そのカスタマイズによってアクセス設定テーブル51を更新する方法について説明する。
電子端末30のユーザは、記録メディア10を電子端末30に挿入し、プログラム保存領域24に記憶されたアクセス設定プログラムを電子端末30で実行する。ユーザは、アクセス設定プログラムを通じて、アクセス設定テーブル51を更新する。具体的には、アクセス設定テーブル51の、"メディア挿入時の起動状態"に対応づけられている"セキュリティ強度"および"アクセス可能なセキュア領域"を、ユーザは更新する。例えば、図4では、起動状態が"起動途中"であれば、第2セキュア領域22と第3セキュア領域23とにアクセス可能としているが、ユーザの設定変更により、"アクセス可能なセキュア領域"を第2セキュア領域22のみにする、などとすることができる。
【0108】
また、ユーザは、アクセス設定プログラムを通じて、"セキュリティ強度"を更新することもできる。例えば、起動状態が"起動時"であれば、電子端末30の正当性の検証の信頼性が高いとして、セキュリティ強度を"低"とし、簡易な認証方法で第1セキュア領域21のデータをやりとりすることが考えられるし、また、起動状態が"起動済み"であれば、電子端末30と記録メディア10との間で安全にデータをやりとりするために、セキュリティ強度を"高"とすることが考えられる。また、複数の起動状態について、同一のセキュリティ強度としてもよい。例えば、いかなる起動状態においてもセキュリティ強度を"高"としてもよい。
【0109】
なお、アクセス設定テーブル51の更新は、安全な環境で行うことが望ましいので、電子端末30の電源投入時から記録メディア10が挿入されていること、つまりステップS11においてYESと判定されることを、アクセス設定プログラムを実行するための要件としてもよい。また、より安全な環境で更新するために、アクセス設定プログラムの起動時にも、ステップS49等の処理により電子端末30の正当性を検証し、電子端末30が正当である場合にのみアクセス設定プログラムの実行を許可することとしてもよい。
【0110】
なお、上記実施の形態では、アクセス設定テーブル51はユーザによってカスタマイズすることが可能であるとしているが、工場出荷時等に固定的に設定されるとしてもよい。
(まとめ)
本発明によれば、従来のPC等に備わっている、外部機器からのブート機能や記録媒体挿入時の自動実行機能さえあれば、これら機能によって記録メディア10から端末制御プログラム26等を起動させることができ、起動状態の判定等を行うことができる。つまり、本発明は、特殊なクライアント装置を用意しなくとも実現することができる。
<変形例>
以下、本発明の変形例について述べる。
(1)電子端末30の正当性を検証する主体
(1−1)外部の装置による検証
上述の「4.4 記録メディア10挿入時の処理の詳細」において説明したように、上記実施形態では、記録メディア10が電子端末30に挿入されると、主に、(i)記録メディア10が挿入された時における電子端末30の起動状態を判定する処理と、(ii)電子端末30の正当性を検証する処理とが記録メディア10により行われる。ここで、(ii)電子端末30の正当性を検証する処理について変形例を述べる。
【0111】
上述の実施形態の説明では、図12においてステップS51として示したように、記録メディア10の端末判定部16が、電子端末30が正当であるか否かの判定を行うものとしている。これに限らず、電子端末30の正当性を検証する検証者は、記録メディア10以外のもの、例えばサーバ1であってもよい。この場合、電子端末30は、ステップS49において、SM34により生成された認証子を、記録メディア10に代えて、サーバ1にネットワーク等を介して出力する。そして、サーバ1が認証を行い(ステップS51に相当する処理)、正当性があるか否かを示す情報を、電子端末30を介して記録メディア10へ出力する。
【0112】
なお、(ii)電子端末30の正当性を検証する処理のみならず、(i)記録メディア10が挿入された時における電子端末30の起動状態を判定する処理もまた、サーバ1などの外部の装置によって行うこととしてもよい。要するに、サーバ1に、起動状態判定部12と起動手順記録部13が備わっており、サーバ1が電子端末30の起動状態を判定した後、判定結果がサーバ1から記録メディア10へと通知されるということである。具体的には、上記実施の形態の説明において図11のステップS43、S45や図13に示した処理に代えて、電子端末30や記録メディア10やサーバ1が、図19に示す処理を行う。
【0113】
図19は、電子端末30の起動状態を判定する処理を外部の装置によって行う場合のフローチャートである。図19の例では、外部の装置とは、サーバ1であることとしている。
図19に示される処理と図13に示される処理との相違点は、要するに、起動状態の判定のために電子端末30から出力される各PCRの値の出力先がサーバ1になり、サーバ1において起動状態の判定が行われ、その判定結果がサーバ1から電子端末30を介して記録メディア10へと通知される点である。
【0114】
以下、図11のステップS41の処理が行われた後の処理を、具体的に図19を用いて説明すると、ステップS41において実現された電子端末30の端末側制御部35は、電子端末30の起動処理時に起動される各プログラムと対応しているPCRのうち少なくとも1つの値を、ネットワーク2を介してサーバ1に出力する(S67−1)。なお、上記ステップS67との相違点は、PCRの値の出力先が、記録メディア10からサーバ1へと変わったことである。どのPCRの値を出力すべきかは、既にステップS67の説明で述べたのでここでは省略する。
【0115】
以降の処理の説明を続けると、サーバ1は、ステップS67−1により電子端末30から所定のPCRの値が出力されると、図14に示したのと同様の処理により、各PCRの値に応じて電子端末30の起動状態を判定する(S68)。なお、この判定処理の詳細は、図14に示した処理の「記録メディア10」を「サーバ1」に置き換えたものと同一であるので説明を省略する。
【0116】
ステップS68により、起動状態の判定結果がサーバ1において起動状態フラグとして保持されると、サーバ1は、判定結果、すなわち起動状態フラグを電子端末30へとネットワーク2を介して通知する(S70)。
電子端末30は、サーバ1から通知される起動状態フラグを受信して記録メディア10へ通知する(S71)。
【0117】
記録メディア10は、電子端末30から起動状態フラグを受信すると、受信した起動状態フラグを、記録メディア10の起動手順記録部13において保持する。
このようにして、(i)記録メディア10が挿入された時における電子端末30の起動状態を判定する処理を、サーバ1などの外部の装置によって実行することができる。
なお、上記のように、ネットワークを介して接続される外部の装置によって(i)電子端末30の起動状態を判定する処理や(ii)電子端末30の正当性を検証する処理などを行う場合、ネットワークが安全とは限らないので、起動状態の判定結果や電子端末30の正当性の検証結果などの情報が、外部の装置から記録メディア10へと通知される際に不正者により改ざん等される可能性がある。そのため、外部の装置から記録メディア10へと通知されるこれらの情報に、改ざんを検出するための処理を行うとよい。改ざんを検出するための処理は様々なものがある。例えば、これら通知される情報に、当該通知を行う外部の装置の秘密鍵で作成した電子署名を付し、記録メディア10が、当該外部の装置の公開鍵で検証する等するとよい。
【0118】
(1−2)電子端末30へと供給されるプログラムによる検証
また、例えば、正当な認証子に関する情報(具体的には、端末判定部16が保持している認証子のそれぞれ)を、端末制御プログラム26などの、記録メディア10から電子端末30へと供給するプログラムに含めておき、電子端末30にて実行されたこのプログラム(検証機能付きプログラム)が、端末判定部16によらず、電子端末30内で、自プログラムが保持している認証子に基づいてステップS51に相当する処理を行うとしてもよい。この場合、電子端末30内で認証子の改ざんが行われることを防ぐために、この検証機能付きプログラムを保護する必要があるが、記録メディア10の側に、電子端末30の正当性を検証するための構成を備える必要が無くなる。そのため、さまざまな記録メディアで本発明を適用することができるようになる。
(2)ブート方法の提示
上述の実施形態の動作に加えて、例えば、記録メディア10を電子端末30に挿入した時に、電子端末30が、複数の起動方法の選択肢をモニタ等に表示して、ユーザに起動方法を選択させるようにしてもよい。起動方法の選択肢とは、例えば、
(i)フルセキュアブート:再起動して電源投入時から記録メディア10が挿入されていた場合の処理を実行
(ii)セキュアブート:挿入時に判定された起動状態に応じた処理を実行
(iii)ノーマルブート:認証処理を行わない処理を実行
などがある。ここで、(i)のフルセキュアブートを実行すると、電子端末30の再起動が行われる。その後、図8のステップS11においてYESと判定され、起動状態フラグに"起動時"と設定されるので、この"起動時"に対応したセキュア領域にアクセスできることとなる。(ii)のセキュアブートを実行すると、起動状態に応じた範囲でセキュア領域にアクセスできることとなる。(iii)のノーマルブートを実行すると、電子端末30は、少なくとも、認証処理の実行を禁止する。これにより、ステップS49等の認証処理を行わず、したがってセキュア領域のデータをやりとりするためのセッション鍵の生成等の処理も行わないので、セキュア領域のデータにはアクセスできないこととなる。また、セキュア領域へのアクセスができないこととするので、起動状態を判定する必要もなくなるため、ステップS43やS45の処理も行わないこととしてもよい。また、端末制御プログラム26をロードする必要もないのであれば、ステップS41の処理を行う必要もない。
【0119】
このように起動方法の選択肢を提示しておくと、例えば、記録メディア10の通常領域25のデータにアクセスしたい場合は、ユーザは(iii)のノーマルブートを選択すればよい。こうすると、(i)フルセキュアブートや(ii)セキュアブートに比べて、認証処理を伴わない分、記録メディア10の通常領域25のデータに直ちにアクセスできるので、記録メディア10の利便性が高まる。
【0120】
また、同様に、電子端末30の電源投入直後に、ユーザに(i)フルセキュアブートを実行するか、(iii)ノーマルブートを実行するかの選択肢をモニタ等に表示してユーザに選択させることとしてもよい。これは、BIOSがブートローダを起動させる前に、選択肢を表示することで実現できる。(i)フルセキュアブートの場合は、上述のように認証処理を伴うので(iii)ノーマルブートに比べて電子端末30の起動に時間を要する場合が多いので、このように選択肢を提示することで、この場合も、記録メディア10の利便性が高まる。なお、この動作は、記録メディア10が電子端末30の電源投入前に挿入されているときのみ発生するとしてもよいし、記録メディア10が挿入されていない状態でも発生するとしてもよい。ただし、フルセキュアブートは記録メディア10が挿入された状態でなくては行えないので、記録メディア10が挿入されていない状態でフルセキュアブートが選択された場合は、記録メディア10の挿入をユーザに促す警告画面等を表示することが望ましい。
(3)端末認証プログラムとメディア側認証部との組の数
上記の説明では、端末認証プログラムとメディア側認証部との組は3つであるとしたが、これは、端末状態判定部12が"起動時""起動途中""起動済み"の3つの状態を判定することに対応し、各状態に応じてそれぞれ異なるセキュリティ強度の認証の方法を提供することを目的としたからである。
【0121】
したがって、端末認証プログラム等を複数設ける必要は無く、この他に、例えば、全てのセキュリティ強度に共通する方法で(つまり、セキュリティ強度という概念を無くして)データのやりとりをしてもよい。この場合は、記録メディア10によらず、端末側認証部36の動作が決定されるので、電子端末30の内部に、予め端末側認証部36を実装しておくことが容易となる。
(4)起動状態の分類
上述の説明では、特に、端末状態判定部12の説明において、起動状態とは"起動時""起動途中""起動済み"の3つであるとしたが、起動状態の分類は、上記3つに限られない。例えば、実際には記録メディア10は、電子端末30の電源投入時から挿入されているか、電子端末30がOSの起動を完了した後から挿入される場合が多い(つまりOSの起動中に挿入されることが比較的少ない)可能性を考慮して、"起動途中"の場合を判定しないこととしてもよい。この場合、"起動時""起動済み"の2つの状態を端末状態判定部12は判定することになる。
【0122】
また、OSの起動の段階をさらに複数に細かく分類して、端末状態判定部12はさらに多くの起動状態を判定することとしてもよい。なお、この場合において各状態に応じてそれぞれ異なるセキュリティ強度を提供するには、各状態に対応して、端末側認証プログラムおよびメディア側認証部の組を設けることとなる。
なお、"起動途中"となる場合の例としては、第1基本ソフト45をメモリにいったんロードして休眠状態にあるときに記録メディア10を挿入し、第2基本ソフト46のロードから起動を再開する場合などが考えられる。電子端末30の高速起動が必要である場合に、このような手法がとられる。
【0123】
また、他の起動状態の例としては、例えば、スタンバイ状態(メモリ上に中断前の情報を記録した上で省電力モードに移行し、後から復帰できるようにする処理)からの起動や、休止状態(ハードディスク等に中断前の情報を記録して電源を切り、後から復帰できるようにする処理)からの起動等の起動状態等が考えられる。
(5)セキュア領域
また、セキュア領域を第1セキュア領域21、第2セキュア領域22、第3セキュア領域23の3つの領域からなるとしたが、3つに限られず、1つでも良いし、さらに多くの領域に分けてもよい。
【0124】
また、第1セキュア領域21、第2セキュア領域22、第3セキュア領域23は、それぞれ別々のハードウェアとして実装してもよい。この場合は、第1セキュア領域等を別々のハードウェア的手法で保護することにより、例えば第1セキュア領域のデータの保護が破られても、他の領域を安全にすることができる。
また、第1セキュア領域21、第2セキュア領域22、第3セキュア領域23は、1つのハードウェアとして実現されたセキュア領域をアドレス範囲ごとに使い分けることで実現されるとしてもよい。この場合、各領域に割り当てるアドレス範囲を変更することで、各領域の大きさを柔軟に変更することができる。したがって、保護の必要なデータが多い場合にはセキュリティ強度"高"用の領域を広くしたり、"起動時"にアクセスできる領域を広くしたりすることができる。逆に保護の必要なデータが少ない場合にはセキュリティ強度"低"用の領域を広く設定したりすること等ができる。
【0125】
また、第3セキュア領域23など、セキュリティ強度が"低"の場合でもアクセス許可が与えられる領域については、端末認証プログラム等を用いた安全な通信を行わず、そのままデータをやりとりしてもよい。
また、上記実施形態では、セキュア領域へのアクセスを制限するためにアクセス制御部19を備えることとしていたが、これ以外に、メモリ領域に対してアクセス制限を実施する方法は、以下のものがある。例えば、セキュア領域に対するアクセス制限を行う機能をプログラムとして実装し、電子端末30の側でこのプログラムを実行することでアクセス制限を行うとしてもよい。つまり、アクセス制限を行う主体が、記録メディア10から電子端末30へと移る。この場合、このプログラムは、記録メディア10内のアクセス制御テーブル53等を参照しながらアクセス制限を行う。なお、この場合も、記録メディア10から一部の機能、つまりアクセス制御部19の機能を省けるようになる。
(6)認証子の算出主体
上記の実施形態では、SM34が、電子端末30から記録メディア10に送るための認証子を算出することとしていたが、認証子の算出主体は、他のものであってもよい。例えば、記録メディア10から電子端末30へと供給されるプログラムが、代わりに認証子を算出することとしてもよい。この場合、電子端末30の側に、認証子を算出するための特別な構成、例えばハードウェア構成が不要となるので、本発明を実施することが容易となる。
(7)正当性の検証の方法
上記の実施形態では、電子端末30がTCGにより定められた仕様に適合するものとし、PCRの拡張処理が行われた値を用いて電子端末30の正当性を検証することとしていたが、電子端末30の正当性の検証方法は、これに限らない。例えば、電子端末30の起動処理に伴って段階的に起動される複数の構成要素(例えばプログラム)のハッシュ値を、所定の認証子と比較することで電子端末30の正当性を検証してもよい。例えば、電子端末30のOS(第1基本ソフト45や第2基本ソフト46)のハッシュ値を算出して、このハッシュ値を、OSが正当である場合のハッシュ値と比較する等により正当性を検証することとしてもよい。
【0126】
また、上記の実施形態では、PCRの拡張処理を行って、ブートローダ44や第1基本ソフト45や第2基本ソフト46など、起動処理にかかるプログラムの全てを用いてSM34において認証子を生成するとしたが、これら全てを用いる必要はなく、一部を省いてもよい。
また、正当性を確認することができる方法であれば、認証子の比較以外の方法によって正当性を検証してもよい。
(8)起動状態の判定を行う主体
上記実施形態では、記録メディア10の端末状態判定部12が、電子端末30から出力される所定の情報(実施例では所定のPCRの値)に基づいて、電子端末30の起動状態を判定することとしていたが、起動状態を判定する主体は、記録メディア10の側に限られない。例えば、電子端末30や、外部の機器であってもよい。例えば、起動状態を判定する機能を、記録メディア10から電子端末30へと供給するプログラム(例えば端末制御プログラム26)に含めておき、電子端末30内で、電子端末30の起動状態を判定するステップS69等の処理を行うこととしてもよい。
(9)起動処理の内容
上記実施形態では、記録メディア10が電子端末30の起動開始直後から挿入されていた場合、端末制御プログラム26によって第1基本ソフト45が起動され、その後、電子端末30内の第1基本ソフト45や第2基本ソフト46に処理が引き継がれるが、起動されるOSは、電子端末30が保持している場合に限られない。
【0127】
例えば、記録メディア10の側に、電子端末30のOSの機能を発揮するプログラムを保持しておき、BIOS43によって電子端末30に読み出された端末制御プログラム26が、このOSの機能を発揮するプログラムを記録メディア10から電子端末30へと読み出して起動させることとしてもよい。例えば、端末制御プログラム26自身に、このOSの機能を発揮するコードを含めておいてもよい。
【0128】
こうすると、電子端末30は、記録メディア10が保持しているプログラムのみによって動作することになるので、電子端末30の第1基本ソフト45等に対する改ざんの有無にかかわらず、保護すべきデータがセキュア領域から奪われるのを防ぐことができる。
(10)記録デバイス
上記実施形態では、本発明の記録デバイスについて、特に、可搬型の記録メディアの例を取り上げて説明したが、例えばHDD(Hard Disk Drive)などの磁気ディスクやフラッシュメモリなどであってもよい。USB(Universal Serial Bus)等のデータ伝送規格に対応した外付けのHDDなどが広く流通している。また、記録デバイスは、電子端末30内に含まれる構成であってもよい。
【0129】
また、上記の説明では、記録デバイスは、電子端末30に挿入される記録メディア10の例で説明したが、必ずしも記録デバイスと電子端末30とが接触してデータの通信を行う方式である必要ではない。例えばCPUやコプロセッサなどを組み込んだ非接触型ICカード(non-contact type IC card)のように、無線信号によってデータのやりとりを行うタイプの記録デバイスであってもよい。
【0130】
また、上記の他に、記録デバイスは、LAN(Local Area Network)やインターネットなどのネットワークを介して電子端末30と接続し、電子端末30をネットワークブートさせることができるものであってもよい。
例えば、上記記録メディア10の構成をサーバ1が備えており、電子端末30がサーバ1と接続した時の電子端末30の起動状況に応じて、サーバ1のセキュア領域のうちアクセスできる範囲が変わることとするとよい。
【0131】
電子端末30がネットワークブートに対応していれば、容易に本発明を実現することができる。
ここで、この記録デバイスの具体的な動作について簡単に説明する。
図20は、ネットワークブートに対応した電子端末30の起動時の処理を示すフローチャートである。なお、図20は、図8に示した処理とほぼ同一である。この変形例において、電子端末30は、図8のステップS11に代えて、ステップS11−1の処理を行う。
【0132】
詳細を説明する。ステップS9によってBIOS43が電子端末30のメモリにロードされて実行されると、BIOS43は、ネットワークブートを実行するか判断する(S11−1)。具体的には、BIOS43は、ネットワークブートに対応したサーバを探索し、探索に成功すると、ネットワークブートを実行する(S11−1:YES)。また、ネットワークブートに対応したサーバを探索したが、電子端末30がネットワークに接続していない、あるいはネットワークに接続していてもネットワークブートに対応しているサーバを探索できなかった場合のように、探索に失敗した場合、BIOS43は、ネットワークブートを実行せず、電子端末30のブートローダによりブートを実行する(S11−1:NO)。
【0133】
なお、BIOS43は、ネットワークブートに対応したサーバの探索に成功した場合(S11−1:YES)は、サーバと接続し、図示するようにサーバとの接続時の処理(ステップS40−1)を行う。その他の処理については、図8と同一であるので、図8と同一の参照符号を付して説明を省略する。
次に、電子端末30のブートローダ44が起動済みの状態において、電子端末30がネットワークブートに対応したサーバを検知した場合の処理を図21を用いて説明する。なお、図21において、サーバ1は、ネットワークブートに対応しており、記録メディア10と同一の構成を備えているものとする。また、サーバ1は、ネットワーク2を介して電子端末30と接続している。ここで、ネットワーク2は、有線接続か無線接続かを問わないし、また、LANやMAN(Metropolitan Area Network)やWAN(Wide Area Network)など、その通信網の規模もどのようなものであってもよい。
【0134】
図21に示すように、電子端末30は、ネットワーク2に接続してサーバ1を検知すると(S37−1)、ネットワーク2を介してサーバ1と接続し、サーバとの接続時の処理を行う(S40−1)。
なお、ステップS40−1の処理は、以下に図22を用いて詳しく説明するが、上述の「4.4 記録メディア10挿入時の処理の詳細」の説明において、「記録メディア10」を「サーバ1」に置き換えたものとほぼ同一である。異なる点は、上記実施の形態の説明では、(i)記録メディア10が挿入された時における電子端末30の起動状態を判定する処理を行うとしたのに対し、この変形例では、電子端末30がサーバ1と接続した時における電子端末30の起動状態を判定する処理を行う点である。
【0135】
以下、ステップS40−1の処理を詳しく説明する。
図22と図23は、電子端末30がネットワークブートに対応したサーバに接続した際の処理を示すフローチャートである。
電子端末30は、サーバ1と接続すると、サーバ1に端末制御プログラム26の送信を要求する。この要求に応じてサーバ1から送信される端末制御プログラム26を受信し、受信した端末制御プログラム26をメモリにロードすることにより端末側制御部35を実現する(S41−1)。
【0136】
そして、電子端末30の端末側制御部35とサーバ1とは、電子端末30の起動状態を判定する処理を行う(S43−1、S45−1)。ここで、ステップS43−1、S45−1の処理を具体的に説明する。図24は、電子端末30の動作、および、サーバ1による電子端末30の起動状態の判定処理を示すフローチャートである。
以下、具体的に説明すると、電子端末30の端末側制御部35は、電子端末30の起動処理時に起動される各プログラムと対応しているPCRのうち少なくとも1つの値をサーバ1へネットワーク2を介して出力する(S67−1)。なお、図13のステップS67との相違点は、PCRの値の出力先が記録メディア10からサーバ1へと変わっている点である。
【0137】
ステップS67−1により電子端末30から所定のPCRの値がサーバ1へと出力されると、サーバ1は、図13のステップS69および図14に示したのと同様の処理を行うことにより、電子端末30の起動状態を判定する(S69)。このステップS43−1、S45−1により、サーバ1の起動手順記録部13において、起動状態の判定結果が起動状態フラグとして記憶される。
【0138】
図22に戻って説明を続ける。ステップS43−1、S45−1の処理が終わると、端末側制御部35は、図11のステップS47と同一の処理を行う。この処理は、既に図15〜17を用いて説明した処理の「記録メディア10」を「サーバ1」と読み替えたものと同一であるため、ここでは詳細な説明を省略する。
第2基本ソフト46が起動すると(ステップS35)、端末側制御部35は、第2基本ソフト46に対応するPCR(PCR4)の値を認証子としてサーバ1へネットワーク2を介して出力する(S49−1)。なお、ステップS49とステップS49−1との相違点は、認証子の出力先が記録メディア10からサーバ1へと変わっている点である。
【0139】
図23に基づいて説明を続ける。
サーバ1は、電子端末30から認証子を受け取ると、図12においてステップS51、S53、S55として説明したのと同様の処理を行う。なお、図12では、記録メディア10がステップS51、S53、S55の処理を行うが、この変形例ではサーバ1がこれらの処理を行う。
【0140】
上記ステップS51、S53の処理により電子端末30が正当であると判定されると、サーバ1の端末判定部16により端末認証プログラムが指定されるので、サーバ1の実行部15は、上記指定された端末認証プログラムを、ネットワーク2を介して電子端末30へと出力する(S57−1)。
以降の電子端末30およびサーバ1の処理は、図12においてステップS59、S61、S63、S65として示した動作の説明における「記録メディア10」を、「サーバ1」と読み替えたものと同一であるため説明を省略する。
【0141】
このようにして、ネットワークブートに対応した記録デバイスにおいて本発明を適用することができる。
(11)起動状態の判定方法
なお、上述の実施形態においては、端末制御プログラム26は、自プログラムが含んでいる鍵(記録メディア10に固有の鍵)を絡めたHMAC演算によりハッシュ値を算出する。そして、"起動時"や"起動途中"において記録メディア10が挿入された場合は、端末制御プログラム26によって第2基本ソフト46等のハッシュ値がHMAC演算により算出されることとしている。HMAC演算は使用した鍵および演算の対象に依存して結果が変化する演算である。そのため、同一の鍵(本変形例では記録メディア10に固有の鍵)を使ったHMAC演算が関与するPCRの値であっても、第1基本ソフトの認証にHMAC演算が使われた場合("起動時")と、第2基本ソフトの認証にHMAC演算が使われた場合("起動途中")とでは、最終的に得られるPCR4の値は全く異なる。また、"起動済み"の場合のPCR4の値は、端末制御プログラムによるHMAC演算自体が行われないので、この値も他の起動状態の場合に得られる値と異なる。したがって、記録メディア10を電子端末30へと挿入した時点によって、つまり"起動時""起動途中""起動済み"のそれぞれの状態でPCR4の値が異なることとなる。
【0142】
このことを、図面を用いて説明する。図25は、"起動時"の場合におけるPCR4の値を示している。また、図26は、"起動途中"の場合におけるPCR4の値を示している。また、図27は、"起動済み"の場合におけるPCR4の値を示している。なお、"起動時"において、上述の実施の形態のステップS93の説明では、端末制御プログラム26のハッシュ値をIn(BL)として、PCR2=SHA-1(PCR1+In(BL))という演算によりSM34がPCRを拡張する処理を行うと説明したが、図25では、HMAC演算によりハッシュ値が算出されたことを示すために、便宜上、HMAC演算により算出される端末制御プログラム26のハッシュ値をIn(BL_HMAC)としている。また、同様に、端末制御プログラム26がHMAC演算により算出する第1基本ソフト45のハッシュ値も、In(OS1_HMAC)としている。同様に、図26では、HMAC演算により算出される第2基本ソフト46のハッシュ値をIn(OS2_HMAC)としている。
【0143】
図25、図26、図27を比較すると、起動状態に応じてPCR4の値が異なることがわかる。例えば、"起動時"では、PCR3の値が"起動途中"や"起動済み"と異なるので、PCR3の値を用いて算出されるPCR4の値も"起動途中"や"起動済み"と異なることとなる。また、"起動途中"と"起動済み"とを比べると、PCR4の値が異なることもわかる。
そのため、ステップS69のように所定のPCRの値の有無によらずとも、ステップS51において、PCR4の値が、予め保持しているどの認証子と一致したかによって電子端末30の起動状態を判定することもできる。
【0144】
このPCR4の値は、その値が演算された後、記録メディア10が抜かれた場合でも変化せずに起動状態を反映した値のままである。そのため、いったん記録メディア10を挿入して記録メディア10の挿入時の処理を実行すれば、その後記録メディア10を抜いて再び挿した時においても、SM34内の、正当性の確認に用いられる所定のPCR(PCR4)の値と端末判定部16の認証子とを比較することで、初めて記録メディア10を挿入した時の電子端末30の起動状態を判定することができる。つまり、電子端末30は、記録メディア10を抜く前と同等のセキュリティで、記録メディア10の再挿入時においても記録メディア10のセキュア領域のデータにアクセスすることができる。
【0145】
このような処理は、例えば、図13のステップS69、すなわち図14で詳しく説明した処理に代えて、図28で示した処理を記録メディア10が行うことで実現できる。図28は、起動状態の判定処理の詳細を示すフローチャートである。なお、記録メディア10は、図25、図26、図27に示したような、各起動状態に対応したPCR4の値を、端末判定部16において予め認証子として保持している。そして、記録メディア10は、電子端末30からステップS73において取得したPCR4の値を、これら予め保持している認証子と比較する。
【0146】
図14に示した処理と図28に示した処理との相違点は、ステップS75においてPCR4に値があると判断された場合に(S75:YES)、PCR4の値を、端末状態判定部12が上記認証子と比較し(S80)、一致した認証子に応じて起動状態フラグに値をセットする(S82)点である。例えば、ステップS73において取得したPCR4の値が、図25に示すPCR4の値と一致する場合は、初めて記録メディア10を挿入した時に、電子端末30の起動状態が"起動時"と判定されたことを示すので、起動状態フラグを"起動時"を示すものにする。同様に、ステップS73において取得したPCR4の値が、図26に示すPCR4の値と一致するときは、ステップS82において起動状態フラグを"起動途中"を示すものにし、図27に示すPCR4の値と一致するときは、ステップS82において起動状態フラグを"起動済み"を示すものにする。
【0147】
なお、上記動作例の説明では、まずPCR4に値があるかないか、すなわちPCR4の値が"0"と一致するかを判断し(S75)、それからステップS80の処理を行うとしているが、まず"0"と一致するかを判断する必要は無く、PCR4の値を上記認証子および"0"(すなわち、値がない場合)と比較していき、PCR4の値が"0"と一致する場合に、ステップS77の処理に進むこととしてもよい。
【0148】
なお、ステップS80の処理は、実質的にステップS51、S53の処理を兼ねている。そこで、ステップS80においてPCR4の値が、端末判定部16において保持されている、起動状態を判定するための認証子と一致しない場合は、電子端末30が不正であるとみなして、ステップS55の処理を行うこととする。
なお、PCR4の値に基づいて、電子端末30の起動状態を判定していることとしているが、他のPCRの値に基づいて、起動状態を判定することとしてもよい。例えば、図25〜27を参照すると、PCR2やPCR3の値は、"起動時"とそれ以外の状態とで異なるので、PCR2やPCR3の値に基づいて、"起動時"か否かを判定することができる。すなわち、起動状態に応じて値が異なるPCRを用いれば、当該PCRが、図25〜27に示すような所定の値と一致するか否かによって起動状態を判定することができる。
【0149】
なお、HMAC演算に用いる鍵は、記録メディアに固有の鍵には限らず、各端末制御プログラムごとに異なる鍵であるとしてもよい。この場合も、同様の結果が得られる。
また、上記説明では、図15等を用いて、各コンポーネントとPCRとが一対一に対応しているものとして説明したが、必ずしも一対一に対応する必要はない。例えば、1つのPCRを用いてPCRの拡張処理を行うこととしてもよい。この場合も、起動状態の判定をすることができる。例えば、記録メディア10が電子端末30に挿入された時における、このPCRの値が、SHA-1(In(BIOS))と一致すれば、図25により、起動状態は"起動時"と判定できる。もし"起動途中"や"起動済み"の状態で記録メディア10が電子端末30に挿入されたのであれば、このPCRの値は、図26でPCR3として示した値か、図27でPCR4として示した値と一致するはずだからである。すなわち、各起動状態において当該1のPCRの値がとりうる値と、記録メディア10挿入時に電子端末30から出力される当該1のPCRの値とを比較すればよい。本実施形態の例で言うと、電子端末30は、ステップS67において、この1のPCRの値を記録メディア10に出力する。以降の、ステップS69の処理の詳細、すなわち記録メディア10による起動状態の判定処理の詳細を図29にフローチャートとして示す。起動状態判定部13は、電子端末30からこの1のPCRの値を受け取ると(S73−1)、当該PCRの値を、図25のPCR1の値や図26のPCR3の値や図27のPCR4の値と比較し、これらの値と一致するか判断する(S80−1)。一致した値に応じて、起動状態フラグに値をセットする(S82−1)。このようにして、1のPCRによって拡張処理が行われる場合も、起動状態を判定することができる。
【0150】
また、上記のように電子端末30がTCGの仕様に適合したものである場合、電子端末30は、SML(Stored Measurement Log)を生成するので、このSMLに基づいて、端末状態判定部12は、起動状態を判定することとしてもよい。
(12)その他
また、SM34から認証子が奪われる危険性を考慮して、記録メディア10が電子端末30から抜かれた場合は、電子端末30は、SM34内の認証子を消去することとしてもよい。
【0151】
なお、この場合、SM34の、起動状態の判定に用いられる所定のPCR(PCR4)には何らかの値を入れておく。こうすると、端末状態判定部12による判定において、電子端末30が"起動済み"と判定されることとなる。
すなわち、電子端末30は、記録メディア10を抜く前にアクセスできたセキュア領域にかかわらず、いったん記録メディア10が抜かれると、その後は、"起動済み"の状態においてアクセス可能な領域にアクセスできるのみである。または、いったん記録メディア10が抜かれたら、セキュア領域のうち所定の領域(例えば、通常領域)にのみアクセスが許可されるとしてもよい。
<補足>
以上のように本発明にかかる記録メディア、電子端末について実施の形態に基づいて説明したが、以下のように変形することもでき、本発明は上述の実施の形態で示した記録デバイス、電子端末に限られないことは勿論である。
(1)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAM又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。ここで、コンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。なお、各装置は、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどの全てを含むコンピュータシステムに限らず、これらの一部から構成されているコンピュータシステムであってもよい。
(2)上記の各装置を構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。
【0152】
なお、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【0153】
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(3)上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAM、などから構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
(4)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【0154】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD―ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
【0155】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
【0156】
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(5)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【0157】
本発明にかかる記録デバイスと電子端末を用いれば、例えば、日常的にデータを扱う場所(オフィスなど)における作業で用いられるデータは記録デバイスに記録しておく。そして、外出時には記録デバイスのみを持ち出し、外出先においては、アクセスしたいデータのセキュリティレベルに応じて、外出先の電器端末の機器認証を行い、秘匿すべきデータへのアクセスの制限を実現する。そのため、それほどセキュリティレベルを要求しないデータに高速にアクセスする場合には極めて有用である。
【図面の簡単な説明】
【0158】
【図1】本発明の実施の形態1におけるシステムの全体の構成を示す図。
【図2】本記録メディア10の構成を示す機能ブロック図。
【図3】電子端末30の構成を示す機能ブロック図。
【図4】アクセス設定テーブル51を示す図。
【図5】プログラム送信設定テーブル52を示す図。
【図6】アクセス制御テーブル53を示す図。
【図7】電子端末30の動作の概略を示す図。
【図8】電子端末30が起動を開始してから起動を完了するまでの処理を示すフローチャート。
【図9】電子端末30が起動を開始してから起動を完了するまでの処理を示すフローチャート。
【図10】ブートローダ起動済みの電子端末30の動作を示す図。
【図11】記録メディア10が電子端末30に挿入された時の、記録メディア10および電子端末30の動作を示す図。
【図12】記録メディア10が電子端末30に挿入された時の、記録メディア10および電子端末30の動作を示す図。
【図13】電子端末30の動作、および、端末状態判定部12による電子端末30の起動状態の判定処理を示すフローチャート。
【図14】起動状態の判定処理の詳細を示すフローチャート。
【図15】起動処理時に起動される各プログラムと対応しているPCRを示す図。
【図16】起動状態の判定処理を終えた後、電子端末30によって実行された端末制御プログラム26が、ハッシュ値の算出対象を制御する処理を示すフローチャート。
【図17】起動状態の判定処理を終えた後、電子端末30によって実行された端末制御プログラム26が、ハッシュ値の算出対象を制御する処理を示すフローチャート。
【図18】アクセス制御部19によるアクセス制御処理を示すフローチャート。
【図19】電子端末30の起動状態を判定する処理を外部の装置によって行う場合のフローチャート。
【図20】ネットワークブートに対応した電子端末30の起動時の処理を示すフローチャート。
【図21】電子端末30のブートローダ44が起動済みの状態において、電子端末30がネットワークブートに対応したサーバを検知した場合の処理を示すフローチャート。
【図22】電子端末30がネットワークブートに対応したサーバに接続した際の処理を示すフローチャート。
【図23】電子端末30がネットワークブートに対応したサーバに接続した際の処理を示すフローチャート。
【図24】電子端末30の動作、および、サーバ1による電子端末30の起動状態の判定処理を示すフローチャート。
【図25】"起動時"の場合におけるPCR4の値を示す図。
【図26】"起動途中"の場合におけるPCR4の値を示す図。
【図27】"起動済み"の場合におけるPCR4の値を示す図。
【図28】起動状態の判定処理の詳細を示すフローチャート。
【図29】起動状態の判定処理の詳細を示すフローチャート。
【符号の説明】
【0159】
1 サーバ
2 ネットワーク
10 記録メディア
11 端末制御部
12 端末状態判定部
13 起動手順記録部
14 アクセス設定記録部
15 実行部
16 端末判定部
17a、17b、17c 端末側認証部
18a、18b、18c メディア側認証部
19 アクセス制御部
20 メモリ領域
21 第1セキュア領域
22 第2セキュア領域
23 第3セキュア領域
34 プログラム保存領域
25 通常領域
30(30a、30b) 電子端末
31 記録メディア入出力インタフェース
32 端末起動部
33 記憶部
34 SM
35 端末側制御部
36 端末側認証部
41 PCR
42 SHA-1演算器
43 BIOS
44 ブートローダ
45 第1基本ソフト
46 第2基本ソフト

【特許請求の範囲】
【請求項1】
電子端末と接続が可能な記録デバイスであって、
データを格納するセキュア領域と、
前記記録デバイスが前記電子端末に接続した時に、前記電子端末の起動処理時に段階的に起動される前記電子端末の複数の構成要素の起動完了状況を判定する端末状態判定部と、
前記判定された結果に応じて、前記セキュア領域のうち前記電子端末からのアクセスが可能な範囲を制限するアクセス制御部とを含む
ことを特徴とする記録デバイス。
【請求項2】
請求項1に記載の記録デバイスであって、
前記電子端末は、前記複数の構成要素の起動に伴って、自端末の構成を示す構成情報を逐次更新し、
前記端末状態判定部は、前記記録デバイスが前記電子端末に接続した時における前記構成情報を取得して、取得した構成情報に基づいて前記判定を行う
ことを特徴とする記録デバイス。
【請求項3】
請求項2に記載の記録デバイスであって、
前記記録デバイスは、前記電子端末を制御するコードを含む端末制御プログラムを記録しており、
前記端末制御プログラムは、前記記録デバイスが前記電子端末と接続した時に前記電子端末によって読み出されて実行され、
前記端末制御プログラムには、前記構成情報を前記記録デバイスに出力させる出力ステップが含まれ、
前記端末状態判定部は、前記端末制御プログラムが前記電子端末において実行され前記出力ステップによって出力された前記構成情報を受け付けて、受け付けた構成情報に基づいて前記判定を行う
ことを特徴とする記録デバイス。
【請求項4】
請求項2に記載の記録デバイスであって、
前記記録デバイスは、前記電子端末を制御するコードを含む端末制御プログラムを記録しており、
前記端末制御プログラムは、固有の情報を含んでおり、前記記録デバイスが前記電子端末と接続した時に前記電子端末によって読み出されて実行され、
前記構成情報は、前記複数の構成要素のそれぞれが起動する都度、更新され、
前記端末制御プログラムには、前記電子端末に実行させる処理として、
前記複数の構成要素のうち、未起動の構成要素を起動させる際に、前記未起動の構成要素の起動に伴う構成情報の更新を行う更新ステップが含まれ、
前記更新ステップにおいて、前記端末制御プログラムは、前記更新にかかる構成情報を、前記未起動の構成要素と前記固有の情報に依存した情報にする処理を前記電子端末に行わせることにより前記更新を行う
ことを特徴とする記録デバイス。
【請求項5】
請求項4に記載の記録デバイスであって、
前記記録デバイスは、
前記複数の構成要素が起動完了したならば構成情報がとるべき情報を比較情報として保持しており、
前記比較情報には、前記更新ステップにおいて、前記複数の構成要素のいずれを対象として前記更新を行ったかに応じて定まる、構成情報がとるべき情報が複数含まれ、
前記端末状態判定部は、
取得した構成情報を、前記比較情報に含まれる複数の前記構成情報がとるべき情報と比較し、そのいずれと一致するかにより前記判定を行う
ことを特徴とする記録デバイス。
【請求項6】
請求項2に記載の記録デバイスであって、
前記電子端末は、起動時またはリセット時に構成情報を初期化し、前記複数の構成要素が段階的に起動されるのに伴って段階ごとに前記構成情報に情報を追加することで構成情報の更新を行うものであり、
前記端末状態判定部は、
前記段階ごとに追加されるべき各情報の有無により前記判定を行う
ことを特徴とする記録デバイス。
【請求項7】
請求項2に記載の記録デバイスであって、
前記電子端末は、前記複数の構成要素が段階的に起動されるのに伴って、段階ごとに前記構成情報を更新するものであり、
前記端末状態判定部は、
前記段階のそれぞれにおいて構成情報がとるべき情報それぞれと、前記記録デバイスが前記電子端末に接続した時における前記構成情報とを比較し、いずれと一致するかにより前記判定を行う
ことを特徴とする記録デバイス。
【請求項8】
請求項1に記載の記録デバイスであって、
前記セキュア領域は、前記端末状態判定部による判定が行われた場合にのみアクセス可能であり、
前記電子端末は、
前記記録デバイスの接続を検知する入出力インタフェースと、
前記入出力インタフェースにより前記検知を行った際、(i)前記端末状態判定部による判定を含む第1のブート処理を実行させるか、(ii)前記端末状態判定部による判定を行わない第2のブート処理を実行させるかの選択をユーザから受け付ける受付手段とを備え、
前記受付手段が前記第1のブート処理を実行させることを受け付けた場合、前記端末状態判定部による判定のための処理を実行し、
前記受付手段が前記第2のブート処理を実行させることを受け付けた場合、前記端末状態判定部による判定のための処理を禁止する
ことを特徴とする記録デバイス。
【請求項9】
請求項6に記載の記録デバイスであって、
前記電子端末は、TCG(Trusted Computing Group)により仕様が定められたTPM(Trusted Platform Module)を含んでおり、
前記TPMには、前記複数の構成要素の起動に伴って各構成要素のハッシュ値が送り込まれ、
前記TPMは、PCRを複数備え、送り込まれたハッシュ値を用いてPCRを拡張する処理を行って各PCRに値を格納し、
前記構成情報とは、拡張処理が行われて各PCRに格納されている値のことであり、
前記端末状態判定部は、前記記録デバイスが前記電子端末に接続した時における前記電子端末の所定のPCRに、初期値以外の値が格納されているか否かに応じて前記判定を行う
ことを特徴とする記録デバイス。
【請求項10】
請求項7に記載の記録デバイスであって、
前記電子端末は、TCG(Trusted Computing Group)により仕様が定められたTPM(Trusted Platform Module)を含んでおり、
前記TPMには、前記複数の構成要素の起動に伴って各構成要素のハッシュ値が送り込まれ、
前記TPMは、PCRを備え、送り込まれたハッシュ値を用いてPCRを拡張する処理を行ってPCRに値を格納し、
前記構成情報とは、拡張処理が行われてPCRに格納されている値のことであり、
前記端末状態判定部は、前記段階のそれぞれにおいて前記PCRに格納されるべき値それぞれと、前記記録デバイスが前記電子端末に接続した時におけるPCRの値とを比較し、いずれと一致するかにより前記判定を行う
ことを特徴とする記録デバイス。
【請求項11】
電子端末と接続が可能な記録デバイスであって、
データを格納するセキュア領域と、
前記記録デバイスが前記電子端末に接続した時に、前記電子端末の起動処理時に段階的に起動される前記電子端末の複数の構成要素の起動完了状況が、複数の起動状態のいずれに該当するかを示す起動状態情報を取得する取得手段と、
取得した起動状態情報に示される起動状態に応じて、前記セキュア領域のうち前記電子端末からのアクセスが可能な範囲を制限するアクセス制御部とを含む
ことを特徴とする記録デバイス。
【請求項12】
電子端末と接続が可能であり、データを格納するセキュア領域を有する記録デバイスに用いられる集積回路であって、
前記記録デバイスが前記電子端末に接続した時に、前記電子端末の起動処理時に段階的に起動される前記電子端末の複数の構成要素の起動完了状況を判定する端末状態判定部と、
前記判定された結果に応じて、前記セキュア領域のうち前記電子端末からのアクセスが可能な範囲を制限するアクセス制御部とを含む
ことを特徴とする集積回路。
【請求項13】
電子端末と接続が可能であり、データを格納するセキュア領域を有する記録デバイスに対する電子端末からのアクセスを制限するアクセス制限方法であって、
前記記録デバイスが前記電子端末に接続した時に、前記電子端末の起動処理時に段階的に起動される前記電子端末の複数の構成要素の起動完了状況を判定する端末状態判定ステップと、
前記判定された結果に応じて、前記セキュア領域のうち前記電子端末からのアクセスが可能な範囲を制限するアクセス制御ステップとを含む
ことを特徴とするアクセス制限方法。
【請求項14】
電子端末と接続が可能であり、データを格納するセキュア領域を有する記録デバイスに対する電子端末からのアクセスを制限する処理を前記記録デバイスに行わせるためのコンピュータ読み取り可能な制御プログラムを記録するプログラム記録媒体であって、
前記制御プログラムは、
前記記録デバイスが前記電子端末に接続した時に、前記電子端末の起動処理時に段階的に起動される前記電子端末の複数の構成要素の起動完了状況を判定する処理を前記記録デバイスに行わせる端末状態判定ステップと、
前記判定された結果に応じて、前記セキュア領域のうち前記電子端末からのアクセスが可能な範囲を制限する処理を前記記録デバイスに行わせるアクセス制御ステップとを含む
ことを特徴とするプログラム記録媒体。

【図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

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate


【公開番号】特開2008−165758(P2008−165758A)
【公開日】平成20年7月17日(2008.7.17)
【国際特許分類】
【出願番号】特願2007−310986(P2007−310986)
【出願日】平成19年11月30日(2007.11.30)
【出願人】(000005821)松下電器産業株式会社 (73,050)
【Fターム(参考)】