JP4093494B2 - 秘密情報へのアクセスを制御するシステムおよびその方法 - Google Patents

秘密情報へのアクセスを制御するシステムおよびその方法 Download PDF

Info

Publication number
JP4093494B2
JP4093494B2 JP2005261334A JP2005261334A JP4093494B2 JP 4093494 B2 JP4093494 B2 JP 4093494B2 JP 2005261334 A JP2005261334 A JP 2005261334A JP 2005261334 A JP2005261334 A JP 2005261334A JP 4093494 B2 JP4093494 B2 JP 4093494B2
Authority
JP
Japan
Prior art keywords
information
expected value
value
certification
component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005261334A
Other languages
English (en)
Other versions
JP2007072909A (ja
Inventor
誠治 宗藤
めぐみ 中村
拓也 三品
佐知子 吉▲濱▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2005261334A priority Critical patent/JP4093494B2/ja
Publication of JP2007072909A publication Critical patent/JP2007072909A/ja
Application granted granted Critical
Publication of JP4093494B2 publication Critical patent/JP4093494B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、秘密情報へのアクセスを制御するシステムに関する。特に、本発明は、当該システムの改ざんによる秘密情報の漏洩を防ぐシステムに関する。
近年、情報通信には、データの暗号化や電子署名の技術が欠かせなくなってきている。暗号化や電子署名には、暗号鍵などの秘密情報が必要である。この秘密情報は、第三者に漏洩しないように管理されなければならない。このため、秘密情報は、その管理者のみがアクセスできる記憶装置中の記憶領域などに格納される場合が多い。しかしながら、秘密情報を利用する通信ソフトウェアが、悪意ある利用者によって改ざんされた場合には、その管理者の意に反して秘密情報が漏洩してしまう恐れがある。
この問題に対して、従来、ソフトウェア・コンポーネントの完全性を判断する技術が用いられている。例えば、この技術は、コンピュータウィルスの検査ソフトウェアに用いられている。しかしながら、この技術においては、この技術を実現するソフトウェア自体が完全であるかを判断することは困難である。即ち例えば、コンピュータウィルスの検査ソフトウェア自体がコンピュータウィルスに侵されている場合には、その検査ソフトウェアの完全性を判断することは困難である。
また、ソフトウェアの完全性をハードウェアによって判断する技術が提案されている(非特許文献1を参照。)。この技術においては、TPM(Trusted Platform Module)と呼ばれるLSIチップを情報処理装置に搭載させる。そして、TPMによる処理として、この情報処理装置で動作するソフトウェアの完全性を判断させる。秘密情報はTPM内に記録され、完全性が認証できたことを条件にその読出が許可される。これにより、ソフトウェアの完全性を適切に判断することができる。
TPMは、ソフトウェアの完全性を証明するための証明情報を格納するためのレジスタ(PCR:Platform Configuration Register)を有する。TPMにおいて、PCRに対するアクセスは物理的に制限される。即ち、悪意ある利用者が情報処理装置を分解しようとも、PCRの値を読み出すことはできない。また、TPMは、PCRに対して特定の操作のみを許可する。例えば、この操作はExtendと呼ばれ、具体的には以下の式で表される。
PCR(n) = Hash(PCR(n-1) + Digest)
ここで、PCR(n-1)は、Extend操作前のPCRの値である。また、Digestは、あるソフトウェア・コンポーネントのハッシュ値である。また、Hash()は、ハッシュ値を算出する関数である。PCR(n)は、Extend操作後のPCRの値である。具体的な処理手順として、TPMは、まず、PCRにゼロを代入する。そして、TPMは、ソフトウェア・コンポーネントが起動されると、そのソフトウェア・コンポーネントのハッシュ値を算出して変数Digestとし、そのハッシュ値によって上記のExtend操作を行う。TPMは、ソフトウェア・コンポーネントが起動される毎にこの処理を繰り返す。
この結果、PCRには、起動された複数のソフトウェア・コンポーネントの組み合わせと、その起動順序に応じて定まる値が格納される。この値は、一方向関数であるハッシュ関数によって算出されるものであるから、偽造が困難であり、また、偶然にこの値と同一の値が生成される確率もきわめて低い。
非特許文献2については後述する。
TCG Trusted Computing Group web page, https://www.trustedcomputinggroup.org/home R. Sailer, X. Zhang, T. Jaeger, and L. van Doorn. Design and Implementation of a TCG-based Integrity Measurement Architecture. In Thirteenth USENIX Security Symposium, pages 223-238, August 2004.
しかしながら、多数のソフトウェア・コンポーネントが複雑に構成されるシステムにおいては、そのシステムを起動させる毎にソフトウェア・コンポーネントの起動順序が変化する場合がある。この場合、そのシステムに搭載されたTPMは、そのシステムが起動される毎に異なる値を生成し、PCRに格納する。従って、このシステムにおいては、ソフトウェア・コンポーネントが完全であるときのPCRの値を予め静的に算出できない。このため、一部のソフトウェア・コンポーネントが起動していない状態では、秘密情報に対するアクセスを適切に制御することができなかった。
また、TPMは、Extend操作に用いるDigestをSML(Stored Measurement Log)と呼ばれるログに記録する。即ち、TPMは、ソフトウェア・コンポーネントが起動する毎に、そのハッシュ値に基づいてPCRの値を更新すると共に、そのハッシュ値をSMLに追記する。このSML中のハッシュ値を参照すれば、起動した各々のソフトウェア・コンポーネントの完全性を判断できると考えられる。しかしながら、現状の秘密情報の読出はPCRによって制御されており、SMLによって秘密情報を管理しようとすればTPMに大幅な改造が必要である。また、例えそのような改造が可能であったとしても、SMLのデータサイズはPCRに比べて大きく、TPMの製造コストや消費電力が大幅に増加してしまう。
なお、従来、一旦起動したソフトウェア・コンポーネントが再度起動した場合にはSMLを更新しないことによって、SMLのデータサイズを減少させる技術が提案されている(非特許文献2を参照。)。しかしながら、この技術をもってもなお、SMLのデータサイズはPCRに比べて大きく、秘密情報の読出を制御する応用は難しい。
そこで本発明は、上記の課題を解決することのできるシステム、方法、および、プログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
上記課題を解決するために、本発明においては、秘密情報へのアクセスを制御するシステムであって、当該システムに含まれる予め定められた複数のコンポーネントの各々について、当該コンポーネントが正当である場合に当該コンポーネントのハッシュ値が採るべき期待値を記録している期待値記録部と、複数のコンポーネントの完全性を証明する証明情報を格納するためのレジスタと、各々の期待値を更にハッシュ関数に入力することによって算出される値を証明情報として、複数のコンポーネントが起動する前に予めレジスタに格納する証明情報管理部と、何れかのコンポーネントが起動したことに応じ当該コンポーネントのハッシュ値を算出し、算出した当該ハッシュ値が、当該コンポーネントに対応付けて期待値記録部に記録された期待値と異なることを条件に、レジスタに格納されている証明情報を更新する証明情報更新部と、秘密情報に対応付けて、秘密情報に対するアクセスを許可する条件となる証明情報の期待値を記録している秘密情報記録部と、秘密情報に対するアクセス要求に応じ、秘密情報に対応付けて記録されている期待値と、レジスタに格納されている証明情報とを比較する比較部と、証明情報および証明情報の期待値が一致することを条件に秘密情報に対するアクセスを許可し、証明情報および証明情報の期待値が異なることを条件に秘密情報に対するアクセスを禁止するアクセス制御部とを備えるシステム、当該システムによってアクセスを制御する方法、および、プログラムを提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
本発明によれば、情報処理装置に記録された秘密情報に対するアクセスを、これまでよりも効率的に制御することができる。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、通信ネットワーク10の全体構成を示す。通信ネットワーク10は、電気通信回線によって相互に接続されたサーバシステム15、および、情報処理システム20を有する。情報処理システム20は、内蔵の記憶装置内に秘密情報を記録している。秘密情報とは、情報処理システム20の管理者以外の者に知られないように管理された情報をいう。秘密情報は、例えば、通信用の暗号の秘密鍵であってもよいし、情報処理システム20が正当な装置である旨を示す認証情報であってもよい。情報処理システム20は、この秘密鍵または認証情報を用いてサーバシステム15と通信する。サーバシステム15は、情報処理システム20から受けた認証情報を用いて情報処理システム20を認証し、または、情報処理システム20から受けた暗号鍵を用いて情報処理システム20との間の通信を暗号化する。
ここで、情報処理システム20で動作するソフトウェアが不正に改ざんされた場合には、情報処理システム20を管理する利用者の意に反してサーバシステム15が不正にアクセスされる恐れがある。この不正なアクセスによって、サーバシステム15内の情報の漏洩や改ざんなどの問題が引き起こされるおそれがある。本実施例における情報処理システム20は、情報処理システム20で動作するソフトウェアが正当であるか否かを、サーバシステム15などの外部の装置を用いることなく適切に判断することを目的とする。
図2は、情報処理システム20の機能構成を示す。情報処理システム20は、ホストコントローラ1082により相互に接続されるCPU1000、RAM1020、及びグラフィックコントローラ1075を有するCPU周辺部を備える。また、情報処理システム20は、入出力コントローラ1084によりホストコントローラ1082に接続される通信インターフェイス1030、ハードディスクドライブ1040、及びCD−ROMドライブ1060を有する入出力部を備える。また、情報処理システム20は、入出力コントローラ1084に接続されるBIOS1010、フレキシブルディスクドライブ1050、及び入出力チップ1070を有するレガシー入出力部を備える。
ホストコントローラ1082は、RAM1020と、高い転送レートでRAM1020をアクセスするCPU1000及びグラフィックコントローラ1075とを接続する。CPU1000は、BIOS1010及びRAM1020に格納されたプログラムに基づいて動作し、各部の制御を行う。例えば、RAM1020は、期待値記録部510として機能する。期待値記録部510は、情報処理システム20に含まれる予め定められた複数のソフトウェア・コンポーネント(以降、ソフトウェア・コンポーネントを単にコンポーネントと呼ぶ)の各々について、そのコンポーネントが正当である場合にそのコンポーネントのハッシュ値が採るべき期待値を記録している。
ここで、コンポーネントのハッシュ値とは、コンポーネントのプログラムコードを、所定のハッシュ関数に入力した結果得られる値をいう。また、コンポーネントが正当であるとは、情報処理システム20の管理者によってコンポーネントが正当であると判断された時点から、そのコンポーネントのプログラムコードが変更されていないことをいう。
グラフィックコントローラ1075は、CPU1000等がRAM1020内に設けたフレームバッファ上に生成する画像データを取得し、表示装置1080上に表示させる。入出力コントローラ1084は、ホストコントローラ1082と、比較的高速な入出力装置である通信インターフェイス1030、ハードディスクドライブ1040、及びCD−ROMドライブ1060を接続する。通信インターフェイス1030は、ネットワークを介して外部の装置、例えば、サーバシステム15と通信する。ハードディスクドライブ1040は、情報処理システム20が使用するプログラム及びデータを格納する。CD−ROMドライブ1060は、CD−ROM1095からプログラム又はデータを読み取り、RAM1020又はハードディスクドライブ1040に提供する。
また、入出力コントローラ1084には、BIOS1010と、セキュリティチップ1015と、フレキシブルディスクドライブ1050や入出力チップ1070等の比較的低速な入出力装置とが接続される。BIOS1010は、情報処理システム20の起動時にCPU1000が実行するブートプログラムや、情報処理システム20のハードウェアに依存するプログラム等を格納する。セキュリティチップ1015は、秘密情報を記録しており、情報処理システム20の完全性が証明されたことを条件にその秘密情報に対するアクセスを許可する。フレキシブルディスクドライブ1050は、フレキシブルディスク1090からプログラム又はデータを読み取り、入出力チップ1070を介してRAM1020またはハードディスクドライブ1040に提供する。入出力チップ1070は、フレキシブルディスク1090や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
情報処理システム20に提供されるプログラムは、フレキシブルディスク1090、CD−ROM1095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ1070及び/又は入出力コントローラ1084を介して、記録媒体から読み出され情報処理システム20にインストールされて実行される。プログラムが情報処理システム20等に働きかけて行わせる動作については、図5において後述する。
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク1090、CD−ROM1095の他に、DVDやPD等の光学記録媒体、MD等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを情報処理システム20に提供してもよい。
図3は、セキュリティチップ1015の機能構成を示す。セキュリティチップ1015は、レジスタ300−1〜Nと、秘密情報記録部310と、比較部320と、アクセス制御部330とを有する。レジスタ300−1〜Nの各々は、情報処理システム20に含まれる予め定められた複数のコンポーネントの完全性を証明する証明情報を格納するために設けられている。レジスタ300−1〜Nの各々は、格納している証明情報によって完全性を証明する対象のコンポーネントが異なることの他、略同一の機能を有するので、以降相違点を除き、レジスタ300−1〜Nを総称したレジスタ300について説明する。
ここで、複数のコンポーネントの完全性とは、それら複数のコンポーネントの各々が正当であることをいう。何れのコンポーネントも正当であれば、複数のコンポーネントの完全性は満たされている。一方、何れか少なくとも1つのコンポーネントが正当でなければ、複数のコンポーネントの完全性は満たされていない。
秘密情報記録部310は、秘密情報に対応付けて、その秘密情報に対するアクセスを許可する条件となる証明情報の期待値を記録している。この期待値は、後述の秘密情報更新部550によって更新されてもよい。比較部320は、秘密情報に対するアクセス要求を、後述の実行部500によって実行されているソフトウェアなどから受信する。そして、比較部320は、そのアクセス要求に応じ、秘密情報に対応付けて秘密情報記録部310に記録されている期待値と、レジスタ300に格納されている証明情報とを比較する。アクセス制御部330は、証明情報および証明情報の期待値が一致することを条件にその秘密情報に対するアクセスを許可し、証明情報および証明情報の期待値が異なることを条件にその秘密情報に対するアクセスを禁止する。具体的には、アクセス制御部330は、アクセスを許可する場合にはその秘密情報を秘密情報記録部310から読み出して実行部500に送信し、アクセスを禁止する場合にはその旨を秘密情報更新部550に通知する。
図4は、秘密情報記録部310のデータ構造の一例を示す。秘密情報記録部310は、複数の秘密情報の各々に対応付けて、その秘密情報に対するアクセスを許可する条件となる証明情報の期待値を記録している。秘密情報とは、例えば、暗号化されたデジタルコンテンツを復号化するための秘密鍵である。秘密情報記録部310は、互いに異なる複数の秘密鍵(秘密鍵A〜C)を記録してもよい。また、秘密情報記録部310は、証明情報の期待値を、その期待値と比較されるべきレジスタ300の識別情報に対応付けて記録してもよい。例えば、秘密情報記録部310は、秘密鍵Aに対応付けて、期待値「PCR1=0xF325AB12」を記録している。このPCR1は、レジスタ300−2を示す識別情報である。即ち、これは、秘密鍵Aに対してアクセスを許可するためには、レジスタ300−2が証明情報として「0xF325AB12」を格納していなければならない旨を示している。以降の説明において、レジスタ300−1の識別情報をPCR0とし、レジスタ300−2の識別情報をPCR1とし、レジスタ300−3の識別情報をPCR2とする。
図5は、CPU1000の機能構成を示す。CPU1000は、プログラムの働きかけにより、実行部500と、証明情報管理部520と、証明情報更新部530と、更新検出部540と、秘密情報更新部550として機能する。なお、証明情報管理部520、証明情報更新部530、更新検出部540、および、秘密情報更新部550の各機能は、オペレーティングシステム中のモジュールによって実現されてもよいし、BIOSプログラムによって実現されてもよいし、オペレーティングシステム上で動作するアプリケーション・プログラムによって実現されてもよい。
実行部500は、BIOS、オペレーティングシステム、および、アプリケーション・プログラムなどを動作させる。証明情報管理部520は、予め定められた複数のコンポーネントの各々のハッシュ値の期待値を期待値記録部510から取得する。そして、証明情報管理部520は、これらの期待値を更にハッシュ関数に入力することによって算出される値を証明情報として、それらの複数のコンポーネントが起動する前に予めレジスタ300に記録する。
証明情報更新部530は、それらの複数のコンポーネントのうち何れかのコンポーネントが起動したことに応じ、そのコンポーネントのハッシュ値を算出する。そして、証明情報更新部530は、算出したそのハッシュ値が、そのコンポーネントに対応付けて期待値記録部510に記録された期待値と異なることを条件に、レジスタ300に格納されている証明情報を更新する。更新検出部540は、それら複数のコンポーネントの何れかが更新されたことを検出する。例えば、更新検出部540は、実行部500の動作を監視してソフトウェアのアンインストールおよびインストールを検出することにより、コンポーネントのバージョンアップを検出してもよい。また、更新検出部540は、情報処理システム20の利用者から、コンポーネントを更新した旨の入力を受けてもよい。
コンポーネントの更新に応じ、証明情報管理部520は、それら複数のコンポーネントの各々のハッシュ値を算出し、算出した各々のハッシュ値に基づいて証明情報を生成してレジスタ300に格納する。秘密情報更新部550は、コンポーネントの更新に応じて生成された証明情報によって、秘密情報に対応付けて秘密情報記録部310に記録された証明情報の期待値を更新する。
図6は、期待値記録部510のデータ構造の一例を示す。期待値記録部510は、情報処理システム20に含まれる予め定められた複数のコンポーネントの各々について、そのコンポーネントが正当である場合にそのコンポーネントのハッシュ値が採るべき期待値を記録している。当該予め定められた複数のコンポーネントは、情報処理システム20を正常動作させるために必要なコンポーネントの集合であることが望ましい。例えば、期待値記録部510は、情報処理システム20に含まれるコンポーネントである「BIOS」に対応付けて、その「BIOS」のプログラムコードから生成されたハッシュ値を記録している。なお、「BIOS」および「ブートローダ」は、オペレーティングシステムの動作に必要なコンポーネントである。また、本図において期待値記録部510は、説明の都合上、コンポーネントの名称を記録しているが、これに代えて、期待値記録部510は、コンポーネントの識別情報を記録していてもよい。
また、期待値記録部510は、情報処理システム20に含まれるコンポーネントである「仮想マシン」に対応付けて、その「仮想マシン」のプログラムコードから生成されたハッシュ値「0x361FCDA3」を記録している。ここで、「仮想マシン」とは、例えば、Java(登録商標)言語の仮想マシンであり、Java(登録商標)プログラムをCPU1000で動作させるインタープリターやコンパイラとして機能する。なお、「仮想マシン」および「クラスローダ」は、オペレーティングシステム上で動作するミドルウェアを構成するコンポーネントである。
また、期待値記録部510は、情報処理システム20に含まれるコンポーネントである「ネイティブ・アプリケーション」に対応付けて、その「ネイティブ・アプリケーション」のハッシュ値「0x312F5431」を記録している。また、期待値記録部510は、そのネイティブ・アプリケーションの動作中にそのネイティブ・アプリケーションによって読み込まれ得る「ランタイム・ライブラリ」のハッシュ値の期待値を更に記録している。
また、好ましくは、期待値記録部510は、各々のコンポーネントに対応付けて、そのコンポーネントが正当である旨を証明する証明情報を格納するレジスタの識別情報を更に記録している。例えば、PCR1は、「仮想マシン」のハッシュ値および「クラスローダ」のハッシュ値を、更に別のハッシュ関数に入力した結果として得られる値を格納する。一方で、PCR2は、「ネイティブ・アプリケーション」のハッシュ値および「ランタイム・ライブラリ」のハッシュ値を、更に別のハッシュ関数に入力した結果として得られる値を格納する。
図7は、情報処理システム20が証明情報およびその期待値を管理する処理の処理フローを示す。情報処理システム20が起動されると(S700)、証明情報管理部520は、予め定められた複数のコンポーネントが起動したか否かに関わらず、それら複数のコンポーネントの各々のハッシュ値を算出して、ハッシュ値の期待値として期待値記録部510に記録する(S712)。そして、証明情報管理部520は、記録されたそれらのハッシュ値の各々に基づいて証明情報を生成してレジスタ300に格納する(S715)。
一例として、証明情報は、以下の式に示すExtend操作によって生成される。
Extend操作:PCR(n) = Hash(PCR(n-1) + Digest)
ここで、PCR(n-1)は、Extend操作前のPCRの値である。また、Digestは、あるコンポーネントのハッシュ値である。また、Hash()は、証明情報を生成するためのハッシュ関数である。証明情報管理部520は、まず、レジスタ300の値を0にリセットする。この値をPCR(0)とする。そして、証明情報管理部520は、予め定められた複数のコンポーネントのうち予め定められた順序によって選択される最初のコンポーネントのハッシュ値によりExtend操作を行う。これによって、PCR(1)は、この最初のコンポーネントのハッシュ値に基づく非ゼロの値となる。以降、当該予め定められた順序によって順次Extend操作が行われる。当該予め定められたコンポーネントの全てについてExtend操作が行われた後の値が証明情報となる。
なお、複数のレジスタを用いる場合については、各々のレジスタについて上記の処理を行うことにより、各々のレジスタに証明情報を格納させる。この処理の詳細は図8で述べる。
続いて、証明情報更新部530は、これら予め定められた複数のコンポーネントのうち何れかのコンポーネントが起動されたか否かを判断する(S720)。何れかのコンポーネントが起動されたことに応じ(S720:YES)、証明情報更新部530は、そのコンポーネントのハッシュ値を算出する(S730)。そして、証明情報更新部530は、算出したそのハッシュ値を、そのコンポーネントに対応付けて期待値記録部510に記録された期待値と比較する(S740)。
ハッシュ値とその期待値とが異なることを条件に(S750:YES)、証明情報更新部530は、レジスタ300に格納されている証明情報を、そのハッシュ値に基づいて更新する(S760)。具体的には、証明情報更新部530は、レジスタ300に対し、そのハッシュ値によってExtend操作を行う。即ち、そのハッシュ値をDigestとし、Extend操作前のレジスタ300の値をPCR(n-1)とし、Hash(PCR(n-1) + Digest)の計算を行い、計算結果をレジスタ300に格納する。
図8は、図7のS710における処理の詳細を示す。本図においては、単一のレジスタのみならず複数のレジスタを用いる場合について、それらのレジスタに証明情報を格納させる処理を説明する。情報処理システム20が起動すると、まず、実行部500は、BIOSプログラムを動作させる。続いて、実行部500は、ブートローダ、および、オペレーティングシステムをこの順に動作させる。
証明情報管理部520は、オペレーティングシステムが有する1つの機能として実現される。オペレーティングシステムが起動したことに応じ、証明情報管理部520は、オペレーティングシステムの動作に必要なコンポーネント(例えば、BIOS、ブートローダ、および、オペレーティングシステム自体)のハッシュ値を算出する。そして、証明情報管理部520は、算出したそれらのハッシュ値をハッシュ値の期待値として期待値記録部510に記録する。そして、証明情報管理部520は、記録した各々のハッシュ値に基づいて証明情報を生成して、第1のレジスタであるレジスタ300−1(PCR0)に格納する。
更に、証明情報管理部520は、ミドルウェアを構成するコンポーネント(例えば、仮想マシン、クラスローダ、および、アプリケーション・プログラムA)のハッシュ値を算出して期待値記録部510に記録する。そして、証明情報管理部520は、記録した各々のハッシュ値に基づいて証明情報を生成して、第2のレジスタであるレジスタ300−2(PCR1)に格納する。この処理は、ミドルウェアを構成するコンポーネントが起動する前に行われる。これにより、ミドルウェアが起動する前に、その完全性に基づいて秘密情報に対するアクセスを制御することができる。
また、オペレーティングシステムの動作に必要な何れかのコンポーネントが起動したことに応じ、証明情報更新部530は、そのコンポーネントのハッシュ値を算出する。そして、証明情報更新部530は、算出したそのハッシュ値が、そのコンポーネントに対応付けて情報処理システム20の起動時に記録された期待値と異なることを条件に、レジスタ300−1に格納されている証明情報を更新する。これにより、情報処理システム20の起動後にコンポーネントが改ざんされた場合であっても、秘密情報に対するアクセスを適切に禁止することができる。
同様に、ミドルウェアの動作に必要な何れかのコンポーネントが起動したことに応じ、証明情報更新部530は、そのコンポーネントのハッシュ値を算出する。そして、証明情報更新部530は、算出したそのハッシュ値が、そのコンポーネントに対応付けてオペレーティングシステムの起動時に記録された期待値と異なることを条件に、レジスタ300−2(PCR2)に格納されている証明情報を更新する。これにより、オペレーティングシステムの起動後にミドルウェアが改ざんされた場合であっても、秘密情報に対するアクセスを適切に禁止することができる。
また、証明情報更新部530は、ネイティブ・アプリケーションが起動されたことに応じ、ネイティブ・アプリケーションのハッシュ値、および、その動作中に読み込まれ得るランタイム・ライブラリのハッシュ値を算出する。そして、証明情報更新部530は、それらのハッシュ値を更にハッシュ関数に入力することによって算出される値を、そのランタイム・ライブラリが読み込まれたか否かに関わらずレジスタ300−2に格納する。これによって、ネイティブ・アプリケーション・プログラムが動作を開始する前に、予め、そのアプリケーション・プログラムが正当に動作するか否かを判断することができる。
なお、本図のネイティブ・アプリケーションとは、例えば、デジタルコンテンツを再生するアプリケーション・プログラムである。このアプリケーション・プログラムは、秘密情報記録部310に記録された秘密鍵を取得して、暗号化されたデジタルコンテンツをその秘密鍵によって復号化して再生する。このアプリケーション・プログラムが改ざんされてしまうと、電気通信回線を介して秘密鍵が第三者に漏洩したり、復号化されたデジタルコンテンツが漏洩したりする恐れがある。本実施例によれば、このような漏洩を防止するべく、このアプリケーション・プログラムが改ざんされたことを適切に検出して、秘密鍵に対するアクセスを効果的に禁止できる。
以上、本図の処理によれば、情報処理システム20は、ミドルウェアを構成するコンポーネントが起動されたか否かに関わらず、ミドルウェアを構成するコンポーネントの完全性を適切に判断することができる。同様に、ランタイム・ライブラリがアプリケーション・プログラムに読み込まれたか否かに関わらず、ランタイム・ライブラリの完全性を適切に判断することができる。また、オペレーティングシステムの動作に必要なコンポーネントについては、オペレーティングシステムの起動後にそのハッシュ値を算出することで、証明情報の管理機能をオペレーティングシステムに一元化して、情報処理システム20全体の設計を簡潔にすることができる。
これに代えて、オペレーティングシステムの動作に必要なコンポーネント(ブートローダ、BIOSなど)については、オペレーティングシステムの起動前にそのハッシュ値を算出してもよい。例えば、証明情報管理部520は、BIOSプログラムなどの機能として実現され、BIOSの起動に応じ、オペレーティングシステムなどが起動する前に、そのハッシュ値の期待値および証明情報の期待値を生成してもよい。このような構成によれば、オペレーティングシステムが起動する前にその完全性を判断することも可能となる。
図9は、情報処理システム20がハッシュ値の期待値、および、証明情報の期待値を更新する処理の処理フローを示す。更新検出部540は、予め定められた複数のコンポーネントの何れかが更新されたことを検出する(S900)。ここで、コンポーネントの更新とは、認証された管理者等の指示によって行われることが望ましい。
コンポーネントの更新に応じ(S910:YES)、証明情報管理部520は、それら複数のコンポーネントの各々のハッシュ値を算出し、算出した各々のハッシュ値に基づいて証明情報を生成してレジスタ300に格納する(S915)。また算出されたハッシュ値は、期待値記録部510に記録される(S920)。秘密情報更新部550は、コンポーネントの更新に応じて生成された証明情報によって、秘密情報に対応付けて秘密情報記録部310に記録された証明情報の期待値を更新する(S930)。
図10は、情報処理システム20が秘密情報に対するアクセスを制限する処理の処理フローを示す。比較部320は、アプリケーション・プログラムなどから、デジタルコンテンツを再生するために秘密鍵に対するアクセスを要求されたか否かを判断する(S1000)。秘密情報に対するアクセス要求に応じ(S1000:YES)、比較部320は、秘密情報に対応付けて秘密情報記録部310に記録されている期待値と、レジスタ300に格納されている証明情報とを比較する(S1010)。
アクセス制御部330は、証明情報および証明情報の期待値が一致することを条件に(S1010:YES)、その秘密情報に対するアクセスを許可する(S1030)。即ち例えば、アクセス制御部330は、秘密鍵に対するアクセスを許可することによってデジタルコンテンツを再生させる。一方で、アクセス制御部330は、証明情報および証明情報の期待値が異なることを条件に(S1020:NO)、その秘密情報に対するアクセスを禁止する(S1040)。即ち例えば、アクセス制御部330は、秘密情報に対するアクセスを禁止することによってデジタルコンテンツの再生を禁止する。
以上、本実施例に示す情報処理システム20は、ソフトウェア・コンポーネントが起動されたか否かに関わらず、そのソフトウェア・コンポーネントを含めたシステム全体の完全性を判断することができる。これにより、ソフトウェア・コンポーネントの起動前であっても秘密情報に対するアクセスを適切に制御することができる。また、複数のソフトウェア・コンポーネントが順不同で起動される場合であっても、秘密情報に対するアクセスを制御するセキュリティチップを効果的に利用して、秘密情報に対するアクセスを適切に制御することができる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
図1は、通信ネットワーク10の全体構成を示す。 図2は、情報処理システム20の機能構成を示す。 図3は、セキュリティチップ1015の機能構成を示す。 図4は、秘密情報記録部310のデータ構造の一例を示す。 図5は、CPU1000の機能構成を示す。 図6は、期待値記録部510のデータ構造の一例を示す。 図7は、情報処理システム20が証明情報およびその期待値を管理する処理の処理フローを示す。 図8は、図7のS710における処理の詳細を示す。 図9は、情報処理システム20がハッシュ値の期待値、および、証明情報の期待値を更新する処理の処理フローを示す。 図10は、情報処理システム20が秘密情報に対するアクセスを制限する処理の処理フローを示す。
符号の説明
10 通信ネットワーク
15 サーバシステム
20 情報処理システム
300 レジスタ
310 秘密情報記録部
320 比較部
330 アクセス制御部
500 実行部
510 期待値記録部
520 証明情報管理部
530 証明情報更新部
540 更新検出部
550 秘密情報更新部
1000 CPU
1015 セキュリティチップ

Claims (9)

  1. 秘密情報へのアクセスを制御するシステムであって、
    当該システムに含まれる予め定められた複数のコンポーネントの各々について、当該コンポーネントが正当である場合に当該コンポーネントのハッシュ値が採るべき期待値を記録している期待値記録部と、
    前記複数のコンポーネントの完全性を証明する証明情報を格納するためのレジスタと、
    各々の前記期待値を更にハッシュ関数に入力することによって算出される値を前記証明情報として、前記複数のコンポーネントが起動する前に予め前記レジスタに格納する証明情報管理部と、
    何れかの前記コンポーネントが起動したことに応じ当該コンポーネントのハッシュ値を算出し、算出した当該ハッシュ値が、当該コンポーネントに対応付けて前記期待値記録部に記録された期待値と異なることを条件に、前記レジスタに格納されている証明情報を更新する証明情報更新部と、
    前記秘密情報に対応付けて、前記秘密情報に対するアクセスを許可する条件となる前記証明情報の期待値を記録している秘密情報記録部と、
    前記秘密情報に対するアクセス要求に応じ、前記秘密情報に対応付けて記録されている期待値と、前記レジスタに格納されている証明情報とを比較する比較部と、
    証明情報および証明情報の期待値が一致することを条件に前記秘密情報に対するアクセスを許可し、証明情報および証明情報の期待値が異なることを条件に前記秘密情報に対するアクセスを禁止するアクセス制御部と
    を備えるシステム。
  2. 前記複数のコンポーネントの何れかが更新されたことを検出する検出部を更に備え、
    前記証明情報管理部は、コンポーネントの更新に応じ、前記複数のコンポーネントの各々のハッシュ値を算出し、算出した各々の当該ハッシュ値に基づいて証明情報を生成して前記レジスタに格納し、
    コンポーネントの更新に応じて生成された前記証明情報によって、前記秘密情報に対応付けて前記秘密情報記録部に記録された証明情報の期待値を更新する秘密情報更新部
    を更に備える請求項1に記載のシステム。
  3. 前記証明情報更新部は、コンポーネントが起動したことに応じて算出した前記ハッシュ値が、当該コンポーネントに対応付けて前記期待値記録部に記録された期待値と異なることを条件に、前記レジスタに格納されている前記証明情報を当該ハッシュ値に基づいて更新する
    請求項1に記載のシステム。
  4. 前記証明情報管理部は、当該システムが起動したことに応じ、前記複数のコンポーネントの各々が起動したか否かに関わらず、前記複数のコンポーネントの各々のハッシュ値を算出して前記期待値記録部に記録し、記録された各々の前記ハッシュ値に基づいて証明情報を生成して前記レジスタに格納する
    請求項1に記載のシステム。
  5. 互いに異なる証明情報を格納する複数の前記レジスタを備え、
    前記期待値記録部は、オペレーティングシステムの動作に必要なコンポーネントのハッシュ値の期待値、および、前記オペレーティングシステム上で動作するミドルウェアを構成するコンポーネントのハッシュ値の期待値を記録しており、
    前記証明情報管理部は、前記オペレーティングシステムの機能として実現され、
    前記オペレーティングシステムが起動したことに応じ、前記オペレーティングシステムの動作に必要なコンポーネントのハッシュ値を算出して前記期待値記録部に記録し、記録した各々の前記ハッシュ値に基づいて証明情報を生成して第1の前記レジスタに格納し、
    更に、前記ミドルウェアを構成するコンポーネントのハッシュ値を算出して前記期待値記録部に記録し、記録した各々の前記ハッシュ値に基づいて証明情報を生成して第2の前記レジスタに格納し、
    前記証明情報更新部は、
    オペレーティングシステムの動作に必要な何れかの前記コンポーネントが起動したことに応じ、当該コンポーネントのハッシュ値を算出し、算出した当該ハッシュ値が、当該コンポーネントに対応付けて前記期待値記録部に記録された期待値と異なることを条件に、前記第1のレジスタに格納されている証明情報を更新し、
    ミドルウェアの動作に必要な何れかの前記コンポーネントが起動したことに応じ、当該コンポーネントのハッシュ値を算出し、算出した当該ハッシュ値が、当該コンポーネントに対応付けて前記期待値記録部に記録された期待値と異なることを条件に、前記第2のレジスタに格納されている証明情報を更新する
    請求項4に記載のシステム。
  6. 前記期待値記録部は、アプリケーション・プログラムのハッシュ値の期待値と、当該アプリケーション・プログラムの動作中に当該アプリケーション・プログラムによって読み込まれ得るランタイムライブラリのハッシュ値の期待値とを記録しており、
    前記証明情報管理部は、アプリケーション・プログラムのハッシュ値、および、ランタイムライブラリのハッシュ値を更にハッシュ関数に入力することによって算出される値を、当該ランタイムライブラリが読み込まれたか否かに関わらず前記レジスタに格納する
    請求項1に記載のシステム。
  7. 前記秘密情報は、暗号化されたデジタルコンテンツを復号化するための秘密鍵であり、
    前記アプリケーション・プログラムは、前記デジタルコンテンツを再生するアプリケーション・プログラムであり、
    前記比較部は、前記アプリケーション・プログラムから、前記デジタルコンテンツを再生するために秘密鍵を要求されたことに応じ、前記秘密情報に対応付けて記録されている期待値と、前記レジスタに格納されている証明情報とを比較し、
    前記アクセス制御部は、証明情報および証明情報の期待値が一致することを条件に、前記秘密鍵に対するアクセスを許可することによって前記デジタルコンテンツを再生させ、証明情報および証明情報の期待値が異なることを条件に前記秘密情報に対するアクセスを禁止することによって前記デジタルコンテンツの再生を禁止する
    請求項6に記載のシステム。
  8. 秘密情報へのアクセスを制御するシステムによる、前記秘密情報へのアクセスの制御方法であって、
    前記システムは、
    当該システムに含まれる予め定められた複数のコンポーネントの各々について、当該コンポーネントが正当である場合に当該コンポーネントのハッシュ値が採るべき期待値を記録している期待値記録部と、
    前記複数のコンポーネントの完全性を証明する証明情報を格納するためのレジスタと、
    各々の前記期待値を更にハッシュ関数に入力することによって算出される値を前記証明情報として、前記複数のコンポーネントが起動する前に予め前記レジスタに格納する証明情報管理部と、
    前記秘密情報に対応付けて、前記秘密情報に対するアクセスを許可する条件となる前記証明情報の値を記録している秘密情報記録部と
    を有し、
    何れかの前記コンポーネントが起動したことに応じ当該コンポーネントのハッシュ値を算出し、算出した当該ハッシュ値が、当該コンポーネントに対応付けて前記期待値記録部に記録された期待値と異なることを条件に、前記レジスタに格納されている証明情報を更新する段階と、
    前記秘密情報に対応付けて、前記秘密情報に対するアクセスを許可する条件となる前記証明情報の期待値を記録している段階と、
    前記秘密情報に対するアクセス要求に応じ、前記秘密情報に対応付けて記録されている期待値と、前記レジスタに格納されている証明情報とを比較する段階と、
    証明情報および証明情報の期待値が一致することを条件に前記秘密情報に対するアクセスを許可し、証明情報および証明情報の期待値が異なることを条件に前記秘密情報に対するアクセスを禁止する段階と
    を備える制御方法。
  9. 秘密情報へのアクセスを制御するシステムとして、情報処理装置を機能させるプログラムであって、
    前記情報処理装置を、
    当該システムに含まれる予め定められた複数のコンポーネントの各々について、当該コンポーネントが正当である場合に当該コンポーネントのハッシュ値が採るべき期待値を記録している期待値記録部と、
    前記複数のコンポーネントの完全性を証明する証明情報を格納するためのレジスタと、
    各々の前記期待値を更にハッシュ関数に入力することによって算出される値を前記証明情報として、前記複数のコンポーネントが起動する前に予め前記レジスタに格納する証明情報管理部と、
    何れかの前記コンポーネントが起動したことに応じ当該コンポーネントのハッシュ値を算出し、算出した当該ハッシュ値が、当該コンポーネントに対応付けて前記期待値記録部に記録された期待値と異なることを条件に、前記レジスタに格納されている証明情報を更新する証明情報更新部と、
    前記秘密情報に対応付けて、前記秘密情報に対するアクセスを許可する条件となる前記証明情報の期待値を記録している秘密情報記録部と、
    前記秘密情報に対するアクセス要求に応じ、前記秘密情報に対応付けて記録されている期待値と、前記レジスタに格納されている証明情報とを比較する比較部と、
    証明情報および証明情報の期待値が一致することを条件に前記秘密情報に対するアクセスを許可し、証明情報および証明情報の期待値が異なることを条件に前記秘密情報に対するアクセスを禁止するアクセス制御部と
    して機能させるプログラム。
JP2005261334A 2005-09-08 2005-09-08 秘密情報へのアクセスを制御するシステムおよびその方法 Expired - Fee Related JP4093494B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005261334A JP4093494B2 (ja) 2005-09-08 2005-09-08 秘密情報へのアクセスを制御するシステムおよびその方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005261334A JP4093494B2 (ja) 2005-09-08 2005-09-08 秘密情報へのアクセスを制御するシステムおよびその方法

Publications (2)

Publication Number Publication Date
JP2007072909A JP2007072909A (ja) 2007-03-22
JP4093494B2 true JP4093494B2 (ja) 2008-06-04

Family

ID=37934278

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005261334A Expired - Fee Related JP4093494B2 (ja) 2005-09-08 2005-09-08 秘密情報へのアクセスを制御するシステムおよびその方法

Country Status (1)

Country Link
JP (1) JP4093494B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9703960B2 (en) 2014-03-07 2017-07-11 Samsung Electronics Co., Ltd. Electronic system having integrity verification device

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4822544B2 (ja) * 2006-04-26 2011-11-24 株式会社リコー 複数のモジュール構成情報を管理できる画像形成装置
JP5001123B2 (ja) * 2006-12-07 2012-08-15 パナソニック株式会社 記録デバイス、集積回路、アクセス制御方法、プログラム記録媒体
US20080243688A1 (en) * 2007-03-28 2008-10-02 Hart Peter E Method and Apparatus for Recording Transactions with a Portable Logging Device
JP5385148B2 (ja) * 2007-10-05 2014-01-08 パナソニック株式会社 セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路
JP5085287B2 (ja) * 2007-11-21 2012-11-28 株式会社リコー 情報処理装置、正当性検証方法および正当性検証プログラム
EP3010205A1 (en) 2008-01-18 2016-04-20 Interdigital Patent Holdings, Inc. Method and apparatus for performing validation of a machine to machine communication equipment
US8510544B2 (en) 2008-06-23 2013-08-13 Panasonic Corporation Starts up of modules of a second module group only when modules of a first group have been started up legitimately
EP2339499A4 (en) * 2008-08-22 2012-05-09 Ibm MEMORY DEVICE, INFORMATION PROCESSING DEVICE AND PROGRAM
WO2010041467A2 (en) * 2008-10-10 2010-04-15 Panasonic Corporation USING TRANSIENT PCRs TO REALISE TRUST IN APPLICATION SPACE OF A SECURE PROCESSING SYSTEM
JP5453461B2 (ja) 2009-03-05 2014-03-26 インターデイジタル パテント ホールディングス インコーポレイテッド H(e)NB完全性検証および妥当性確認のための方法および機器
US20110010543A1 (en) 2009-03-06 2011-01-13 Interdigital Patent Holdings, Inc. Platform validation and management of wireless devices
AU2011323225B2 (en) 2010-11-05 2015-05-28 Interdigital Patent Holdings, Inc. Device validation, distress indication, and remediation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9703960B2 (en) 2014-03-07 2017-07-11 Samsung Electronics Co., Ltd. Electronic system having integrity verification device
US10289849B2 (en) 2014-03-07 2019-05-14 Samsung Electronics Co., Ltd. Electronic system having integrity verification device

Also Published As

Publication number Publication date
JP2007072909A (ja) 2007-03-22

Similar Documents

Publication Publication Date Title
JP4093494B2 (ja) 秘密情報へのアクセスを制御するシステムおよびその方法
US10931451B2 (en) Securely recovering a computing device
US8213618B2 (en) Protecting content on client platforms
JP4971466B2 (ja) コンピューティング・デバイスの安全なブート
Garriss et al. Trustworthy and personalized computing on public kiosks
US8150039B2 (en) Single security model in booting a computing device
JP4982825B2 (ja) コンピュータおよび共有パスワードの管理方法
US8291480B2 (en) Trusting an unverified code image in a computing device
KR101190479B1 (ko) 티켓 인증 보안 설치 및 부트
JP5745061B2 (ja) 起動プロセスの際の対話型コンポーネントの使用の認証
JP4848458B2 (ja) 永続的セキュリティシステム及び永続的セキュリティ方法
US20050060568A1 (en) Controlling access to data
US20090259855A1 (en) Code Image Personalization For A Computing Device
US20080168545A1 (en) Method for Performing Domain Logons to a Secure Computer Network
US20080178257A1 (en) Method for integrity metrics management
JP2005527019A (ja) マルチトークンのシール及びシール解除
JP2010182196A (ja) 情報処理装置およびファイル検証システム
US8656190B2 (en) One time settable tamper resistant software repository
JP4724107B2 (ja) リムーバブル・デバイスを用いたユーザの認証方法およびコンピュータ
Safford et al. A trusted linux client (tlc)
JP2023136601A (ja) ソフトウェア管理装置、ソフトウェア管理方法、及びプログラム
CN113420340A (zh) 信息记录装置、计算机设备及信息记录方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080118

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20080130

TRDD Decision of grant or rejection written
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20080220

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080226

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20080228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080229

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110314

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110314

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees