明 細 書
証明装置、検証装置、検証システム、コンピュータプログラム及び集積回 路
技術分野
[0001] 本発明は、コンピュータプログラムによって動作する情報処理機器において、自身 の正当性を証明し、相手の正当性を検証する技術に関する。
背景技術
[0002] デジタルコンテンツの普及により、コンテンツの不正コピーが社会問題となっている 。コンテンツの処理機能をソフトウェアで実現する場合、不正コピーを試みる悪意のあ るユーザ力もプログラムを保護する必要がある。コンテンツの処理機能を実現するプ ログラムが悪意のあるユーザ力 改竄や盗聴された場合、コンテンツが平文状態で抜 き取られたり、プログラム力もコンテンツを暗号ィ匕している鍵を不正取得されコンテン ッが復号ィ匕される危険性がある。デジタルコンテンツは、インターネットによる再配布 が容易なため、平文状態のコンテンツが不正に配布されると権利者の利益が大きく 損なわれる。このような事態を防止するため、コンテンツの処理プログラムへの攻撃を 防止することは重要である。
[0003] し力しながら、処理プログラムのリリース時には、セキュリティホールがない完全なプ ログラムの提供を保証することは難しいため、悪意のあるユーザがこれらのセキユリテ ィホールを突 、てコンテンツ処理用のプログラムを改竄し、デジタルコンテンツを不正 にコピーすることなどが予想される。このような事実が判明した場合には、そのプログ ラムをセキュリティホールへの対策を施した新しいプログラムに更新する必要があるが 、そのような技術として以下のようなものがある。
[0004] 例えば、特許文献 1では、更新プログラムを供給するサーバと、端末のアップデート モジュールとが相互認証を行い、お互い正しいと認識しあった場合に、更新プロダラ ムを渡し、端末内のプログラムをその更新プログラムでアップデートする技術が開示さ れている。また、特許文献 2では、更新プログラムを格納するカードと端末のアップデ 一トモジュールとが相互認証を行った上で、カードに格納されて 、る更新プログラム
を端末が取得し、端末自身が端末のプログラムをアップデートする技術が開示されて いる。
特許文献 1 :特開平 10— 198571号公報
特許文献 2:特開 2003 - 330745号公報
発明の開示
発明が解決しょうとする課題
[0005] 従来技術によるプログラムのアップデートは、更新プログラムを供給するカードゃサ ーバと、端末のアップデートモジュールとが相互認証を行い、お互い正しいと認識し あった後、更新プログラムを渡す構成となっている。この仕組みは端末側のアップデ 一トモジュールの信頼性に依存した方法である。
しかし、従来技術では、端末カ 、ッキングされている場合、アップデートモジュール の信頼性が損なわれて 、る可能性があるので、確実なプログラムのアップデートを保 証することは困難である。例えば、アップデートモジュールもソフトウェアで構成されて いる場合、アップデートモジュール自身もハッキングされている可能性がある。この場 合、アップデートモジュール自体が改竄されていると、本来のアップデート処理自体 を回避したり、アップデートが必要である力否かの判断を誤らせることができるので、 ソフトウェアのアップデートを強制することができなくなる。
[0006] アップデートモジュール自身のハッキングを防止するためには、プログラム更新シス テムに対して更新対象のプログラムより強固な耐タンパシールドが必要となる。従来 技術では耐タンパイ匕の例として、プログラム更新システムをノヽードウエアによりすベて 構成する方法が開示されて 、るが、プログラム更新システムはインターネットとの通信 等も含むので大規模なシステムとなることが多ぐ全体をノヽードウエアとすることは事 実上困難である。
[0007] そこで本発明は、上記の問題点に鑑みなされたものであって、正当なコンピュータ プログラムを有することを示しつつ自身の正当性を証明することができ、また前記証 明に対して検証することができる検証システム、証明装置、検証装置、証明方法、検 証方法、コンピュータプログラム及び集積回路を提供することを目的とする。
課題を解決するための手段
[0008] 上記目的を達成するために、本発明は、証明装置及び検証装置から構成される検 証システムであって、前記証明装置は、当該証明装置を動作対象とし、階層的な関 係を有する複数個の動作プログラムを格納して!/、る格納手段と、前記動作プログラム のそれぞれがロードされるときに、ロードされる前記動作プログラムそれぞれの特徴を 示す特徴量を測定する測定手段と、耐タンパ化され、前記複数個の動作プログラム のうちの 1つの動作プログラムがロードされているときに、当該 1つの動作プログラムに ついて取得した特徴量、及び当該 1つの動作プログラムを動作させるために必要で ありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した 証明情報を生成する証明手段と、生成した前記証明情報を出力する出力手段とを備 え、前記検証装置は、前記証明情報を取得する取得手段と、前記証明装置におい て、前記 1つの動作プログラム、及び当該 1つの動作プログラムを動作させるために 必要である他の動作プログラムのそれぞれにつ ヽて改竄がな ヽ場合に得られる特徴 量を反映した検証情報を予め記録して!/、る記録手段と、取得した前記証明情報及び 前記検証情報を用いて、前記証明装置の正当性を判断する判断手段とを備える。 発明の効果
[0009] この構成によると、証明装置は、耐タンパ化された証明手段により、少なくとも動作 プログラムの特徴を示す特徴量を反映した証明情報を生成するので、生成された証 明情報は、信頼できるものであり、また、検証装置は、取得した証明情報を用いて、 証明装置の正当性を判断するので、確実に正当性の検証を行うことができるという優 れた効果を奏する。
[0010] ここで、前記検証システムは、 Trusted Computing Group(TCG)により仕様化されて いる構成証明技術を用い、前記証明手段は、 TCGにより仕様ィ匕されている Trusted P latform Moduleを構成し、前記判断手段は、 TCGにより仕様ィ匕されている検証プロセ スにより、前記証明装置の正当性を判断するとしてもよい。
この構成によると、証明手段は、 TCGにより仕様化されている Trusted Platform Mod uleにより構成されるので、生成された証明情報は、信頼できるものであり、また、 TCG により仕様ィ匕されている検証プロセスにより、証明装置の正当性を判断するので、確 実に正当性の検証を行うことができる。
[0011] ここで、前記証明手段は、前記特徴量を記憶するための複数のプラットフォーム構 成レジスタを有し、前記検証装置から、複数のプラットフォーム構成レジスタのうちの 1 個のレジスタの指定を受け取り、受け取った指定により示されるレジスタに記憶されて いる前記特徴量に基づいて、前記証明情報を生成する。また、前記取得手段は、当 該検証装置の指定に係るプラットフォーム構成レジスタに記憶されている特徴量に基 づいて、生成された前記証明情報を取得し、前記判断手段は、前記プラットフォーム 構成レジスタに記憶されるべき特徴量と、取得した前記証明情報を用いて、前記証 明装置の正当性を判断してもよい。
[0012] これらの構成によると、証明装置は、特徴量を記憶するための複数のプラットフォー ム構成レジスタを有し、検証装置の指定により示されるレジスタに記憶されている特 徴量に基づいて、前記証明情報を生成し、検証装置は、指定に係るプラットフォーム 構成レジスタに記憶されるべき特徴量と、取得した前記証明情報を用いて、証明装 置の正当性を判断することにより、 PCRを限定し、証明装置と検証装置との間の通信 路で伝送されるデータのサイズを削減し、証明装置と検証装置との間のネットワーク の負荷を抑えることができる。また、 PCRが限定されるので、証明装置における証明 情報の生成の負荷を小さくすることができる。
[0013] ここで、前記証明装置は、さらに、少なくとも前記検証装置を動作対象とする動作プ ログラムの特徴を示す特徴量に基づ 1、て、生成された前記検証装置の正当性を証 明する証明情報を取得する取得手段と、取得した前記証明情報を用いて、前記検証 装置の正当性を判断する判断手段とを含むとしてもよい。また、前記検証装置は、さ らに、当該検証装置を動作対象とし、階層的な関係を有する複数個の動作プロダラ ムを格納している格納手段と、前記動作プログラムのそれぞれがロードされるときに、 ロードされる前記動作プログラムそれぞれの特徴を示す特徴量を測定する測定手段 と、耐タンパイ匕され、前記複数個の動作プログラムのうちの 1つの動作プログラムが口 ードされているときに、当該 1つの動作プログラムについて取得した特徴量、及び当 該 1つの動作プログラムを動作させるために必要でありロード済である他の動作プロ グラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明手段と 、生成した前記証明情報を出力する出力手段とを含むとしてもよい。
[0014] これらの構成〖こよると、検証装置と証明装置との間で相互の認証を行うので、より高 V、セキュリティ環境を提供することが可能となる。
ここで、前記格納手段は、さらに、当該証明装置を動作対象とし、複数のコンビユー タ命令を含む第 2動作プログラムを格納しており、前記証明装置は、さらに、耐タンパ 化された第 2証明手段を含み、第 2証明手段は、前記証明手段に対して、自身の正 当性を証明し、前記証明手段は、前記第 2証明手段の正当性を検証し、前記測定手 段は、さらに、前記第 2動作プログラムがロードされるときに前記第 2動作プログラムの 特徴を示す第 2特徴量を測定し、前記第 2証明手段は、前記証明手段により、第 2証 明手段の正当性が確認された場合に、少なくとも前記第 2特徴量に基づいて、当該 証明装置の正当性を証明する第 2証明情報を生成し、前記出力手段は、さらに、第 2 証明情報を出力する。また、前記取得手段は、さらに、少なくとも前記証明装置を動 作対象とする第 2動作プログラムの特徴を示す特徴量に基づ ヽて、生成された前記 証明装置の正当性を証明する第 2証明情報を取得し、前記判断手段は、さらに、取 得した前記第 2証明情報を用いて、前記証明装置の正当性を判断してもよい。
[0015] これらの構成によると、証明装置が、 2個の動作プログラムに対応する 2個の TPM を備え、検証装置が、各 TPMに対してそれぞれ、検証することにカ卩えて、第 1の TP Mが第 2の TPMの正当性を検証するので、複数の動作プログラムが連携して動作す る証明装置について、より高いセキュリティ環境を提供することが可能となる。
ここで、前記検証装置は、当該検証装置の正当性を示す第 2証明情報を記憶して いるカードであり、前記証明手段は、さらに、前記検証装置による前記証明装置の正 当性の確認が成功した場合に、前記検証装置から前記第 2証明情報を取得し、取得 した前記第 2証明情報を用いて、前記検証装置の正当性を判断する。また、前記検 証装置は、カードであり、さらに、当該検証装置の正当性を示す第 2証明情報を記憶 している証明情報格納手段と、前記判断手段による前記証明装置の正当性の確認 が成功した場合に、前記第 2証明情報を出力する出力手段を含むとしてもよい。
[0016] これらの構成によると、検証装置は、カードであり、証明装置の正当性の確認が成 功した場合に、自身の正当性を示す第 2証明情報を出力し、証明装置は、取得した 第 2証明情報を用いて、検証装置の正当性を判断するので、証明装置と、カードであ
る検証装置との間の相互の認証が可能となる。
ここで、前記証明装置は、前記検証装置により、自身の正当性が確認された場合に
、さらに、第 2検証装置に対して自身の正当性を証明し、前記格納手段は、さらに、 当該証明装置を動作対象とし、階層的な関係を有する複数個の第 2動作プログラム を格納しており、前記測定手段は、さらに、前記第 2動作プログラムのそれぞれが口 ードされるときに、ロードされる前記第 2プログラムそれぞれの特徴を示す第 2特徴量 を測定し、前記証明装置は、さらに、耐タンパ化され、前記複数個の第 2動作プログ ラムのうちの 1つの第 2動作プログラムがロードされているときに、当該 1つの第 2動作 プログラムにつ 、て取得した特徴量、及び当該 1つの第 2動作プログラムを動作させ るために必要でありロード済である他の第 2動作プログラムそれぞれについて取得し た特徴量を反映した第 2証明情報を生成する第 2証明手段を含み、前記出力手段は 、さらに、生成した前記第 2証明情報を第 2検証装置へ出力してもよい。
この構成によると、証明装置が、 2個の動作プログラムに対応する 2個の TPMを備 え、第 1の検証装置が、第 1の TPMに対して検証し、成功した場合に、さらに、第 2の 検証装置が第 2の TPMに対して検証するので、複数の動作プログラムが連携して動 作する証明装置について、より高いセキュリティ環境を提供することが可能となる。 ここで、前記証明装置は、さらに、前記検証装置に対して、秘密情報を要求する要 求手段と、前記検証装置における当該証明装置の正当性の確認結果に応じて、秘 密情報及び前記動作プログラムの更新のための更新プログラムのいずれか一方を受 信する受信手段と、更新プログラムを受信した場合に、受信した更新プログラムに従 つて、前記格納手段に格納されて!、る前記動作プログラムを更新する更新手段とを 含む。また、前記検証装置は、さらに、秘密情報を安全に保持する情報保持手段と、 前記証明装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムの更 新のための更新プログラムを格納して 、るプログラム格納手段と、前記証明装置の正 当性が確認された場合に、前記情報保持手段に保持されて ヽる前記秘密情報を前 記証明装置へ出力し、正当でないと確認された場合、前記プログラム格納手段に格 納されている前記更新プログラムを前記証明装置へ出力する出力手段とを含むとし てもよい。
[0018] これらの構成によると、証明装置が、受信した更新プログラムにより動作プログラム を更新しなければ、証明装置が所望する秘密情報の取得ができないので、証明装置 に対して、動作プログラムの更新を強制することができる。
ここで、前記秘密情報は、当該証明装置を識別する装置識別子に基づいて、当該 証明装置に割り当てられるデバイス鍵を暗号ィ匕して生成した暗号ィ匕デバイス鍵であり 、前記受信手段は、前記検証装置により当該証明装置の正当性が確認された場合 に、前記暗号化デバイス鍵を受信し、前記証明装置は、さらに、受信した前記暗号化 デバイス鍵を、当該証明装置を識別する装置識別子に基づいて、復号して、デバイ ス鍵を生成する復号手段を含む。また、前記情報保持手段は、前記秘密情報として 、前記証明装置を識別する装置識別子に基づいて、当該証明装置に割り当てられる デバイス鍵を暗号ィ匕して生成した暗号ィ匕デバイス鍵を保持しており、前記出力手段 は、前記証明装置の正当性が確認された場合に、前記暗号ィ匕デバイス鍵を出力して ちょい。
[0019] これらの構成によると、検証装置から証明装置へ伝送する情報を、証明装置に固 有の装置識別子により暗号ィ匕しておくことにより、証明装置になりすました不正な装 置が、当該情報を不正に取得することを防止することができる。
ここで、前記証明手段は、測定手段により得られた前記特徴量及び当該証明装置 を識別する装置識別子に基づいて、前記証明情報を生成する。また、前記取得手段 は、前記特徴量、及び前記証明装置を識別する装置識別子に基づいて生成された 前記証明情報を取得し、前記検証装置は、さらに、正規の動作プログラムの特徴を 示す正規特徴量及び前記証明装置を識別する装置識別子に基づ ヽて、生成された 検証情報を取得する検証情報取得手段を含み、前記判断手段は、前記証明情報と 前記検証情報とを用いて、前記証明装置の正当性を判断してもよい。
[0020] これらの構成〖こよると、証明情報は、測定手段により得られた特徴量及び証明装置 を識別する装置識別子に基づいて生成され、検証情報は、正規の動作プログラムの 特徴を示す正規特徴量及び証明装置を識別する装置識別子に基づいて生成され、 前記証明情報と前記検証情報とを用いて、証明装置の正当性が判断されるので、不 正な装置が証明装置になりすますことを防止することができる。
[0021] ここで、前記証明手段は、測定手段により得られた前記特徴量及び当該証明装置 を識別する装置識別子に基づいて、前記証明情報を生成する。また、前記取得手段 は、前記特徴量及び前記証明装置を識別する装置識別子に基づいて、生成された 前記証明情報を取得し、前記検証装置は、さらに、正規の動作プログラムの特徴を 示す正規特徴量を取得する正規特徴量取得手段と、取得した前記正規特徴量及び 前記証明装置を識別する装置識別子に基づいて、前記証明装置の正当性を検証す る検証情報を生成する検証情報生成手段とを含み、前記判断手段は、前記証明情 報と前記検証情報とを用いて、前記証明装置の正当性を判断してもよい。
[0022] これらの構成〖こよると、証明情報は、測定手段により得られた特徴量及び証明装置 を識別する装置識別子に基づいて生成され、検証情報は、正規の動作プログラムの 特徴を示す正規特徴量及び証明装置を識別する装置識別子に基づいて生成され、 前記証明情報と前記検証情報とを用いて、証明装置の正当性が判断されるので、不 正な装置が証明装置になりすますことを防止することができる。
[0023] ここで、前記検証装置は、さらに、前記証明装置を識別する装置識別子を取得する 識別子取得手段と、前記証明装置に割り当てられるデバイス鍵を、取得した前記装 置識別子に基づいて暗号化して暗号化デバイス鍵を生成する暗号化手段と、生成し た暗号化デバイス鍵を前記情報保持手段に格納するするデバイス鍵格納手段とを 含むとしてもよい。
この構成によると、証明装置を識別する装置識別子に基づいて、前記証明装置に 割り当てられるデバイス鍵を暗号ィ匕して暗号ィ匕デバイス鍵を生成し、生成した暗号化 デバイス鍵を証明装置へ出力するので、証明装置になりすました不正な装置が、暗 号化デバイス鍵を不正に取得したと仮定しても、正 ヽ装置識別子を知らな ヽ不正 な装置は、暗号ィ匕デバイス鍵を正しく復号することができず、デバイス鍵の不正な使 用を防止することができる。
[0024] ここで、前記秘密情報は、デバイス鍵を暗号ィ匕して生成した暗号ィ匕デバイス鍵であ り、前記証明装置は、さらに、暗号化手段を含み、前記受信手段は、前記検証装置 により前記暗号ィ匕手段の正当性が確認された場合に、前記暗号ィ匕デバイス鍵を受信 し、前記暗号化手段は、当該証明装置を識別する装置識別子に基づいて、受信した
暗号化デバイス鍵を暗号化して二重暗号化デバイス鍵を生成し、前記証明装置は、 さらに、生成した二重暗号ィ匕デバイス鍵を保持するデバイス鍵保持手段を含む。また 、前記証明装置は、暗号化デバイス鍵を暗号化する暗号化手段を含み、前記情報 保持手段は、前記秘密情報として、暗号化デバイス鍵を保持しており、前記判断手 段は、前記証明装置の正当性として、前記証明装置が有する前記暗号化手段の正 当性を判断し、前記出力手段は、前記暗号化手段の正当性が確認された場合に、 暗号ィ匕デバイス鍵を前記証明装置へ出力してもよい。
[0025] これらの構成によると、証明装置が有する暗号ィ匕手段の正当性が確認された場合 に、暗号ィヒデバイス鍵が検証装置力 証明装置へ伝送され、証明装置が有する前 記暗号化手段により、証明装置を識別する装置識別子に基づいて暗号化デバイス 鍵が暗号ィ匕されて二重暗号ィ匕デバイス鍵が生成され、生成された二重暗号化デバイ ス鍵が保持されるので、証明装置の認証がより確実に行えるとともに、二重暗号化に より、デバイス鍵の漏洩の防止をより強化することができる。
[0026] ここで、前記暗号化手段は、暗号ィ匕アルゴリズムを構成する複数のコンピュータ命 令を含む暗号化プログラムを記憶して!/、る記憶部と、前記暗号化プログラムに従って 動作するマイクロプロセッサとから構成され、前記受信手段は、前記検証装置により 前記暗号ィ匕手段の正当性が確認されな力つた場合に、前記更新プログラムとして、 暗号ィ匕アルゴリズムを構成する複数のコンピュータ命令を含む正規の暗号ィ匕プロダラ ムを受信し、受信した正規の暗号ィ匕プログラムを、前記記憶部に記憶されている暗号 化プログラムに上書きし、前記暗号化手段は、正規の暗号化プログラムに従って、前 記マイクロプロセッサが動作することにより、暗号ィ匕アルゴリズムの機能を達成する。 また、前記証明装置が有する前記暗号化手段は、暗号ィ匕アルゴリズムを構成する複 数のコンピュータ命令を含む暗号ィ匕プログラムを記憶して 、る記憶部と、前記暗号化 プログラムに従って動作するマイクロプロセッサとから構成され、前記プログラム格納 手段は、前記更新プログラムとして、前記暗号ィ匕アルゴリズムを構成する複数のコン ピュータ命令を含む正規の暗号化プログラムを記憶しており、前記出力手段は、前記 暗号ィ匕手段が正当でないと確認された場合に、正規の前記暗号ィ匕プログラムを前記 証明装置へ出力してもよい。
[0027] これらの構成によると、証明装置が、受信した正規の暗号ィ匕プログラムにより、元の 暗号ィ匕プログラムを更新しなければ、証明装置が所望するデバイス鍵の取得ができ ないので、証明装置に対して、正規の暗号ィ匕プログラムへの更新を強制することがで きる。
ここで、前記受信手段は、さらに、個別暗号化を行う前記暗号化プログラムが消去さ れたことが確認された場合、前記検証装置から、受信した暗号ィ匕デバイス鍵の復号 に必須となる鍵を受け取る。また、前記出力手段は、さらに、個別暗号化を行う前記 暗号ィヒプログラムが消去されたことが前記判断手段により確認された場合、前記暗号 化デバイス鍵の復号に必須となる鍵を出力してもよい。
[0028] これらの構成によると、証明装置が、受信した暗号ィ匕プログラムを消去しなければ、 デバイス鍵の復号に必須となる鍵の取得ができないので、証明装置に対して、暗号 化プログラムの消去を強制することができる。
図面の簡単な説明
[0029] [図 1]本発明の実施の形態 1におけるコンテンツ配布システムの構成を示すブロック 図
[図 2]本発明の実施の形態 1における端末 Aのハードウェア構成を示すブロック図 [図 3]本発明の実施の形態 1における権利購入制御プログラムの動作を示すフロー チャート
[図 4]本発明の実施の形態 1における再生制御プログラムの動作を示すフローチヤ一 卜
[図 5]本発明の実施の形態 1における PCR拡張コマンド処理の動作を示すフローチ ヤート
[図 6]本発明の実施の形態 1における端末起動時の動作を示すフローチャート
[図 7]本発明の実施の形態 1における端末 Nのハードウェア構成を示すブロック図 [図 8]本発明の実施の形態 1におけるカードのハードウェア構成を示すブロック図 [図 9]本発明の実施の形態 1における権利購入プログラムの動作を示すフローチヤ一 卜
[図 10]本発明の実施の形態 1における権利確認'鍵生成プログラムの動作を示すフ
口1 ~~チヤ1 ~~卜
[図 11]本発明の実施の形態 1におけるコンテンツ配布システム全体の動作を示すフ 口1 ~~チヤ1 ~~卜
圆 12]本発明の実施の形態 1におけるサーバの構成を示すブロック図
[図 13]本発明の実施の形態 1におけるサーバ上に存在する CRLデータベースのデ ータ構造を示す図
[図 14]本発明の実施の形態 1におけるカード上に存在する CRLデータベースのデー タ構造を示す図
[図 15]本発明の実施の形態 1におけるコンテンツ配布システム全体の動作を示すフ 口1 ~~テャ1 ~~卜
[図 16]第 1の変形例におけるデバイス鍵配布システム 2000の構成を示すブロック図 である。
圆 17]個別暗号化秘密情報の生成の流れを示す図である。
[図 18]デバイス鍵配布システム 2000の動作を示す流れ図である。
[図 19]管理テーブル T2000のデータ構造の一例を示す図である。
[図 20]第 2の変形例におけるデバイス鍵配布システム 2000aの構成を示すブロック 図である。
[図 21]第 3の変形例におけるデバイス鍵配布システム 2000bの構成を示すブロック 図である。
[図 22]デバイス鍵配布システム 2000bの動作を示す流れ図である。
[図 23]第 4の変形例におけるデバイス鍵配布システム 2100の構成を示すブロック図 である。
[図 24]秘密情報の生成の流れを示す図である。
[図 25]秘密情報管理テーブル T2100のデータ構造の一例を示す図である。
[図 26]デバイス鍵配布システム 2100の動作を示す流れ図である。図 27へ続く。
[図 27]デバイス鍵配布システム 2100の動作を示す流れ図である。図 26から続く。
[図 28]その他の実施の形態 1における構成を示す構成図である。
圆 29]端末装置 3001のハードウ ア構成を示す構成図である。
[図 30]PCR (Platform Configulation Register) 3146の内部構成を示した図で ある。
[図 31]TPMプログラム格納部 3156に記憶されているプログラムの一例を示す。 圆 32]端末装置 3001及び CAサーバ装置 3002の機能的構成を示した機能ブロック 図である。
[図 33]証明書記憶部 3114に記憶されている情報の一例を示す。
[図 34]鍵記憶部 3120に記憶されている情報の一例を示す。
[図 35]Attestation処理における、端末装置 3001 (証明装置)及び CAサーバ装置 3002 (検証装置)の動作を示すフローチャートである。
[図 36]Attestation処理における、端末装置 3001 (証明装置)及び CAサーバ装置 3002 (検証装置)の動作を示すフローチャートである。
[図 37]Attestation処理における、端末装置 3001 (証明装置)及び CAサーバ装置 3002 (検証装置)の動作を示すフローチャートである。
[図 38]AIKクレデンシャル取得処理における端末装置 3001及び CAサーバ装置 30 02の動作を示すフローチャートである。
[図 39]AIKクレデンシャル取得処理における端末装置 3001及び CAサーバ装置 30 02の動作を示すフローチャートである。
[図 40]その他の実施の形態 2における構成を示す構成図である。
[図 41]コンテンツ提供サーバ 3202の機能的構成を示すブロック図である。
[図 42]メモリカード 3204の機能的構成を示すブロック図である。
圆 43]端末装置 # 1 (3201)及びメモリカード # 2 (3204)による相互認証の動作及 びデータフロー、検証データの更新処理におけるデータフローを示す。
[図 44]その他の実施の形態 3における端末装置 3301及びメモリカード 3302の機能 的構成及びメモリカード 3302による端末装置 3301の検証動作を示す図である。
[図 45]その他の実施の形態 4における端末装置 3371及びメモリカード 3372の構成 及び動作を示す図である。
[図 46]その他の実施の形態 4の変形例における端末装置 3392、メモリカード 3372 及びコンテンツカード 3392の構成及び動作を示す図である。
[図 47]その他の実施の形態 4の変形例における端末装置 3416及び SIMカード 341 1の構成と動作を示す図である。
圆 48]その他の実施の形態 5に係る端末装置 3431の機能的構成を示すブロック図 である。
圆 49]その他の実施の形態 5の変形例に係る端末装置 3500の機能的構成を示す ブロック図である。
圆 50]その他の実施の形態 5の変形例に係る端末装置 3600の機能的構成を示す ブロック図である。 符号の説明
2000、 2000aゝ 2000bゝ 2100 デバイス鍵配布システム
2001、 2001aゝ 2001bゝ 2101 端末
2002、 2002a, 2002bゝ 2102 カード
2003、 2003a, 2003bゝ 2103 ネットワーク接続端末
2004、 2004aゝ 2004bゝ 2104 サーバ
2010、 2010aゝ 2010bゝ 2110 ID格納部
2011、 2011aゝ 2011b プログラム格納部
2012、 2012aゝ 2012bゝ 2113 端末測定部
2013、 2013aゝ 2013b プログラム更新部
2014、 2014aゝ 2014b 秘密情報復号部
2020、 2020a, 2020bゝ 2120 秘密情報提供部
2021、 2021aゝ 2021bゝ 2121 端末 ID格納部
2022、 2022a, 2022bゝ 2122 正当性確認情報格納部
2023、 2023a, 2023b 更新プログラム格納部
2024、 2024aゝ 2024bゝ 2125 秘密情報取得部
2025、 2025a, 2025bゝ 2126 正当性確認情報取得部
2026、 2026a, 2026b 更新プログラム取得部
2027、 2027aゝ 2027bゝ 2129 正当性確認部
2028、 2028a, 2028b プログラム出力部
2029、 2029a, 2029b, 2132 秘密情報蓄積部
2030、 2030a, 2030b, 2133 スィッチ
2040b 確認情報個別化部
2041b デバイス鍵個別化部
2042b カード ID格納部
2043b 端末共通鍵格納部
2111 第 1のプログラム格納部
2112 第 2のプログラム格納部
2114 第 1のプログラム更新部
2115 第 2のプログラム更新部
2116 デバイス鍵個別化部
2117 個別化デバイス鍵蓄積部
2118 デバイス鍵復号部
2123 第 1の更新プログラム格納部
2124 第 2の更新プログラム格納部
2127 第 1の更新プログラム取得部
2128 第 2の更新プログラム取得部
2130 第 1のプログラム出力部
2131 第 2のプログラム出力部
2140 確認情報個別化部
3000 検証システム
3001 端末装置
3002 CAサーバ装置
3003 TPMサーバ装置
3004 端末サーバ装置
3005 インターネット
3102 制御部
3103 送受信部
3104 測定値通知部
3106 プログラム記憶部
3107 RTM
3108 メモリ
3111 PCR値記憶部
3112 ログ取得部
3113 PCR値算出部
3114 証明書記憶部
3116 ログ記憶部
3117 TPM
3118 TPM制御部
3119 検証部
3120 ¾ίι!し fe p[5
発明を実施するための最良の形態
[0031] 以下、本発明の実施の形態について、図面を参照しながら説明する。
図 1は、コンテンツ配布システム 0100の構成を示している。コンテンツ配布システム ΟΙΟΟίま、サーノ 0101、端末 Α0102、端末 B0103〜端末 Μ0104、端末 Ν0105〜 端末 Ζ0106、カード 0107から構成されており、サーバ 0101は、端末 Α0102、端末 Β0103、および端末 M0104とインターネット 0108を介して接続されている。端末 Ν 0105、端末 Z0106はサーバ 0101と直接通信する手段を持っていない。端末 A010
2、端末 B0103〜端末 Μ0104、および端末 N0105〜端末 Z0106は、後述するよう にカードインターフェースを備えており、カード 0107を介してデータのやり取りが可能 となっている。
[0032] なお、図 1ではサーバ 0101と接続されている端末として、端末 Α0102、端末 B010
3、端末 M0104しか図示していないが、端末 A0102等と同一の構成を持つ 1台以 上の端末力 さらに、コンテンツ配布システム 0100に存在してもよい。また図 1に示し た台数よりも少ない台数だけ存在していてもよい。以後、端末 Β0103、端末 M0104 は端末 A0102と同様の構成であるため、必要な場合を除いて端末 A0102以外の端
末についての説明は省略する。また、図 1では、サーバ 0101と接続されていない端 末として、端末 N0105、端末 Z0106しか図示していないが、端末 N105または端末 Z0106と同一の構成を含む 1台以上の端末力 さらに、コンテンツ配布システム 010 0に存在してもよい。また、図 1に示した台数よりも少ない台数だけ存在していてもよ い。以後、端末 Z0106は端末 N0105と同様の構成であるため、必要な場合を除い て端末 N0105以外の端末についての説明は省略する。
[0033] 端末 A0102は、インターネット 0108を介してサーバ 0101と通信し、音楽や映画な どのコンテンツをダウンロードする機會 とダウンロードしたコンテンツを再生する機會 を有している。ここで、コンテンツは著作権保護されており暗号化された形で端末 AO 102にダウンロードされる。
カード 0107は、端末 A0102、およびインターネット 0108を介してサーバ 0101と通 信し、コンテンツを暗号化した鍵を取得し、端末 A0102の依頼に基づいてコンテンツ を暗号化した鍵を端末 AO 102に渡す。ここで、カード 0107はコンテンツを暗号化し た鍵を渡す際に、端末 A0102が正当な端末かどうかを確かめて、正当な端末でなけ れば鍵を出力しないよう構成されている。具体的には、公知の相互認証等により、相 手の正当性を確認した上で鍵を渡して 、る。
[0034] 図 2は、端末 A0102の構成を示している。なお、端末 B0103、端末 M0104も同様 の構成をして ヽる。端末 Α0102ίま、プロセッサ 0201、 RAM0202,ブートコード 020 3、カードインターフェース 0204、通信部 0205、コンテンツ格納部 0206、セキュアモ ジユーノレ 0207、プログラム格糸内咅 0208で構成されており、ノ ス 0213でネ目互【こ接続 されている。プログラム格納部 0208には、オペレーティングシステム 0209、権利購 入制御プログラム 0210、再生制御プログラム 0211、プログラム証明書 0212が格納 されている。
[0035] プロセッサ 0201は、ブートコード 0203、および RAM0202にロードされているプロ グラムを実行し、端末 A0102の各種処理を行う。
RAM0202は、プロセッサ 0201で実行するプログラムがロードされる。ロードされる プログラムはプログラム格納部 0208に格納されている。
ブートコード 0203は、端末 A0102がリセットされた後、プロセッサ 0201が初めに実
行するコード (ブートコード)が格納されている。ブートコード 0203は、プログラム格納 部 0208に格納されているオペレーティングシステム 0209を RAM0202へ展開する
[0036] カードインターフェース 0204は、カード 0107と端末 A0102を接続するインターフ エースである。プロセッサ 0201で動作するプログラムは、カードインターフェース 020 4と通信することで、カード 0107と通信することができる。端末 A0102で動作するプ ログラムはカード 0107と通信する時には常にカードインターフェース 0204を使用す る。以下、端末 A0102で動作するプログラムとカード 0107の通信について記述する 場合はカードインターフェース 0204の記述は省略する。
[0037] 通信部 0205は、インターネット 0108と端末 A0102を接続するインターフェースで ある。プロセッサ 0201で動作するプログラムは、通信部 0205と通信することで、イン ターネット 0108を介してサーバ 0101と通信することができる。
コンテンツ格納部 0206は、端末 A0102がサーバ 0101からダウンロードしたコンテ ンッを格納しておく場所である。
[0038] セキュアモジュール 0207は、 TCG (Trusted Computing Group)で規格化さ れている TPM (Trusted Platform Module)と同様の機能を有するデバイスであ る。 TPMの詳細な仕様については、 TCGのホームページ <URL :http : ZZwww . trastedcomputmggroup . org>" 2r開されている。
[0039] セキュアモジュール 0207は、 PCR (Platform Configuration Register)と呼ば れるレジスタを含んでおり、そのレジスタには端末 A0102のソフトウェア構成に依存 する値が格納される。セキュアモジュール 0207は、 PCRを更新するコマンドを提供し ており、そのコマンドが実行されると現在の PCRの値とそのコマンドの引数を結合し、 その結合した値に対して一方向性関数を施した結果で PCRが更新される。以下、こ のコマンドを PCR拡張コマンドと呼ぶ。
[0040] セキュアモジュール 0207は、セキュアモジュール 0207内に外部に取り出されない 形で保持されて 、る秘密鍵を用いて、 PCRの値に対し署名を施すサービスを提供す ることができる。このサービスは Attestationと呼ばれる。例えば、端末 A0102内で 動作するプログラムがセキュアモジュール 0207の Attestationサービスに関連する
コマンドを用い、署名された現在の PCR値を取得してサーバ 0101に送信する。この 場合、サーバ 0101は、認証局力も得たセキュアモジュール 0207の公開鍵を用いて 署名検証することによって、送信された値がセキュアモジュール 0207で生成された P CRの値であることを確かめることができる。なお、セキュアモジュール 0207には耐タ ンパ処理が施されており、セキュアモジュール 0207内で実行される PCR拡張コマン ド処理、および Attestationサービスに関連するコマンド処理を不正に変更すること はできな!、ようになって!/、る。
[0041] プログラム格納部 0208は、端末 A0102で動作するプログラムを格納する場所であ り、オペレーティングシステム 0209、権利購入制御プログラム 0210、再生制御プロ グラム 0211、プログラム証明書 0212を格納して!/、る。
オペレーティングシステム 0209は、一般的な端末 A0102の基盤ソフトウェアであり 、オペレーティングシステム 0209上で動作するアプリケーションにサービスを提供す る。オペレーティングシステム 0209は、プログラム格納部 0208内に格納されている アプリケーションを RAM0202にロードする。
[0042] 続いて、各プログラムが行う処理について説明する。
図 3は権利購入制御プログラム 0210の動作フローを示して 、る。権利購入制御プ ログラム 0210はオペレーティングシステム 0209上で動作するアプリケーションである 。権利購入制御プログラム 0210は、端末 A0102において、サーバ 0101から提供さ れるコンテンツの権利の取得をカード 0107に依頼する処理とそのコンテンツのダウ ンロードを行う。以下、この処理の詳細を説明する。
[0043] 権利購入制御プログラム 0210は、オペレーティングシステム 0209にローデイング され制御権を取得すると、まず、サーバ 0101に問い合わせて購入可能なコンテンツ のリストを取得する。そのリストにはコンテンツを識別できる情報、例えば、コンテンツ の IDやコンテンツのタイトル、コンテンツの概要等が含まれている。次に、そのリストを 端末 A0102のユーザに提示し、購入するコンテンツを選択させ、選択したコンテンツ の IDおよびそのコンテンツを購入する端末を識別する端末 ID (端末 A0102の端末 I D)を含むコンテンツ購入要求をカード IZF0204を介して、カード 0107に送信する( ステップ S0301)。
[0044] 次に、権利購入制御プログラム 0210は、カード 0107に購入依頼したコンテンツの I Dをサーバ 0101に送信し、該当するコンテンツをサーバ 0101からダウンロードし、コ ンテンッ格納部 0206に格納する。ここで、ダウンロードするコンテンツは暗号ィ匕され ているので、コンテンツ格納部カゝら不正にコピーできたとしても著作権は保護される ( ステップ S0302)。
[0045] なお、端末 A0102は、端末 N0105等のインターネット 0108に接続されていない 他の端末のためにコンテンツを購入する場合がある。この場合、コンテンツ購入要求 に含ませる端末 IDは、端末 N0105等の端末 IDとなる。さら〖こ、コンテンツを端末 NO 105等に渡すため、ステップ S0302の後にコンテンツをカード 0107に移動するステ ップが追加で実行される。
[0046] 図 4は再生制御プログラム 0211の動作フローを示している。再生制御プログラム 0 211はオペレーティングシステム 0209上で動作するアプリケーションである。再生制 御プログラム 0211は、再生するコンテンツを暗号化している鍵をカード 0107から取 得し、その鍵でコンテンツを復号ィ匕してコンテンツを再生する。また、カードから端末 A0102内のプログラムの更新を依頼された場合は、プログラム格納部 0208に格納 されているプログラムを更新する。以下、再生制御プログラム 0211の処理の詳細を 述べ。。
[0047] 再生制御プログラム 0211は、オペレーティングシステム 0209にローデイングされ 制御権を取得すると、コンテンツ格納部 0206に格納されているコンテンツのリストを 取得し、カード 0107に問い合わせて再生可能なコンテンツのリストを作成する。カー ド 0107は、カード 0107に格納されているコンテンツを暗号化している鍵とその鍵に 対応するコンテンツ IDを格納しており、再生制御プログラム 0211は、カード 0107に 格納されて ヽるコンテンツを暗号化して!/ヽる鍵に対応するコンテンツ IDのリストを取得 して、コンテンツ格納部 0206に格納されているコンテンツ IDのリストと比較して再生 可能なコンテンツのリストを作成する。このリストは例えばカードに鍵が格納されている コンテンツのリストとなる(ステップ S0401)。
[0048] なお、再生制御プログラム 0211は、カード 0107に格納されているコンテンツ IDの リストもカード 0107から取得し、再生可能なコンテンツのリストに追加することができる
。この追加リストは、端末 A0102内に格納されているコンテンツに対する再生可能な コンテンツのリストの作成手順と同様の手順で作成される。この追加リストも含めたリス トは、カードを含む端末上に存在する鍵に対応したコンテンツのリストとなり、(コンテ ンッ格納部 0206に格納されている力否かは問わず)その端末で再生できるコンテン ッの一覧を示すリストとなる。
[0049] 再生制御プログラム 0211は、ステップ S0401で生成した再生可能なコンテンツのリ ストを端末 A0102のユーザに提示し、再生したいコンテンツを選択させ、そのコンテ ンッの IDを取得する。再生制御プログラム 0211は、コンテンツ IDを含む鍵出力依頼 情報をカード 0107に送信し、対応するコンテンツを暗号ィ匕している鍵の出力を依頼 する (ステップ S0402)。鍵出力依頼情報は、コンテンツ ID、端末 ID、プログラム証明 書、署名された現在の PCR値を含む。ここで、署名された現在の PCR値は、再生制 御プログラム 0211がセキュアモジュールに対して Attestationサービスに関連する コマンドを用いて取得したものであり、その PCRの値は現在、端末で動作しているソ フトウエアに依存する値となっている。
[0050] 次に、再生制御プログラム 0211は、カード 0107に依頼した鍵が出力されたかどう かをカード 0107に問い合わせる。 (ステップ S0403)もし、鍵が出力されているので あれば (ステップ S0403で YES)、その鍵を用いてコンテンツ復号処理 (ステップ S04 04)を行う。もし、鍵が出力されていないのであれば (ステップ S0403で NO)、カード 0107からプログラムの更新依頼があるかどうかを確かめる処理 (ステップ S0406)を 行う。ここで、プログラムの更新依頼は、コンテンツの処理プログラムにセキュリティホ ール等が発見されているとカード 0107が判断した場合に、鍵を渡す前に、そのプロ グラムをアップデートすることを要求する依頼である。
[0051] 再生制御プログラム 0211は、鍵が出力されているのであれば (ステップ S0403で Y ES)、カード 0107から鍵を取得し、再生すべきコンテンツをコンテンツ格納部 0206 、もしくはカード 0107から取得して、コンテンツを復号化する(ステップ S0404)。 再生制御プログラム 0211は、コンテンツが復号化されるとそのコンテンツを再生す る。(ステップ S0405)再生制御プログラム 0211は、復号ィ匕されたコンテンツの種別 に応じた再生を行う。以降の再生の手順は一般的な再生方法であるので、説明は省
略する。
[0052] 再生制御プログラム 0211は、鍵が出力されていないのであれば (ステップ S0403 で NO)、カード 0107にプログラムの更新依頼があるかどうかを問い合わせる。もし、 プログラムの更新依頼があれば (ステップ S0406で YES)、カードから更新プログラム と後述する正規 PCR値を取得し、プログラム格納部 0208のプログラムと後述するプ ログラム証明書 0212を更新する (ステップ S0407)。ここで、更新対象のプログラムと そのプログラムの正規 PCR値は、後述するようにサーバ 0101から取得され、カード に格納される。なお、この正規 PCR値には後述するように端末メーカのみ知る秘密鍵 を用いて作られた署名が付されており、この署名がプログラム証明書 0212となる。そ の後、再生制御プログラム 0211は、端末 A0102を再起動するためにシステムリセッ ト依頼をオペレーティングシステム 0209に送信する(ステップ S0408)。
[0053] もし、プログラムの更新依頼がなければ (ステップ S0406で NO)、再生制御プログ ラム 0211は、処理を終了する。
以上が再生制御プログラム 0211が行う処理の説明である。以下、プログラム格納 部 0208が格納して 、る情報の説明に戻る。
プログラム証明書 0212は、セキュアモジュール 0207の PCRの値に対して端末 AO 102を製造したメーカのみ知る秘密鍵で署名したデータである。署名する PCRの値 は、端末 A0102が起動し、オペレーティングシステム 0209や各種アプリケーション 力 ーデイングされた後の PCRの値である。この時、メーカはオペレーティングシステ ム 0209や各種アプリケーションが各種著作権保護規格の実装要件を満たしている 力どうかを確認した後、署名する。ここで、署名に用いる秘密鍵は端末 A0102には 搭載されて 、な 、ため、プログラム証明書 0212は端末 A0102では生成できな 、。 プログラム証明書 0212は、例えばメーカの工場で生成される。
[0054] PCRの値は、端末 A0102のソフトウェア構成に依存させるために、端末 A0102上 でローデイングされるプログラムのハッシュ値を引数として PCR拡張コマンドを実行す ることで更新される。プログラムのロード時に必ずロード対象のプログラムのハッシュ 値を計算し、 PCR拡張コマンドを用いて、そのハッシュ値で PCRを更新していけば、 PCR値を端末 A0102のソフトウェア構成に常に依存させることができる。
[0055] 図 5は、セキュアモジュール 0207内の PCRを更新し、 PCRに端末 A0102のソフト ウェア構成に依存する値を格納する処理のフローを示している。この処理は、ォペレ 一ティングシステム 0209をローデイングするブートコード 0203、および各種アプリケ ーシヨンプログラムをローデイングするオペレーティングシステム 0209の動作に共通 して含まれる。これは、ブートコード 0203はオペレーティングシステム 0209を読み込 むことで端末 A0102内のソフトウェア構成を変更し、オペレーティングシステム 0209 はアプリケーションプログラムを読み込むことで端末 A0102内のソフトウェア構成を変 更するからである。
[0056] 以下の説明では、別のプログラムを呼び出す側(前者におけるブートコード 0203と 、後者におけるオペレーティングシステム 0209)を「ロードするプログラム」と、呼び出 される側のプログラム(前者におけるオペレーティングシステム 0209、後者における アプリケーションプログラム)を「ロード対象プログラム」と呼ぶ。
ロードするプログラムは、まず、ロード対象プログラムのハッシュ値をノヽッシュ関数ァ ルゴリズムで計算する(ステップ S0501)。次に、このハッシュ値を引数として、 PCR 拡張コマンドを実行し、セキュアモジュール 0207内の PCRの値を更新する(ステップ S0502)。ロードするプログラムは、 PCR更新処理 (ステップ S0502)終了後、ロード 対象プログラムを RAM0202に展開する(ステップ S0503)。最後に、ロードするプロ グラムは RAM0202にロードしたプログラムに分岐する(ステップ S0504)。
[0057] 端末 A0102は、電源投入後、もしくはリセット解除後、すなわち端末起動時、オペ レーティングシステム 0209や各種アプリケーションを RAM0202にロードしていく。 端末 A0102は、プログラムをロードする時、図 5で説明したように PCRの更新を行う。 図 6は、端末 A0102の起動時の動作を表すフローチャートである。
[0058] 電源投入後、もしくはリセット解除後、プロセッサ 0201は、ブートコード 0203を実行 する(ステップ S0601)。ブートコード 0203は、端末 A0102のハードウェアの初期設 定を行った後、ブートコード 0203自身のハッシュ値を計算し、このハッシュ値を PCR 拡張コマンドの引数として、セキュアモジュール 0207の PCRを更新する。ここで、セ キュアモジュール 0207の PCRは、電源投入、もしくはリセット解除後には初期化され ているものとする。
[0059] 次にブートコード 0203は、オペレーティングシステム 0209を RAM0202にローデ イングする。ブートコード 0203は、オペレーティングシステム 0209をローデイングする 際、図 5に示す手順で、オペレーティングシステム 0209のハッシュ値を計算し、セキ ユアモジュール 0207の PCRを更新する。その後、プロセッサ 0201は、オペレーティ ングシステム 0209を実行し、オペレーティングシステム 0209の初期化を行う。
[0060] オペレーティングシステム 0209は、その後、各種アプリケーションのローデイングを 行う(ステップ S0603)。各種アプリケーションがローデイングされる際、図 5に示す手 順で、各種アプリケーションのハッシュ値を計算し、セキュアモジュール 0207の PCR を更新する。
その後、端末 A0102は、ユーザからの入力を待ち、その入力に応じたアプリケーシ ヨンプログラムの処理を実行する(S0604)。
[0061] このように、端末 A0102は、電源投入後、もしくはリセット後、ブートコード 0203を 含む端末 A0102で動作するプログラムのハッシュ値で PCR拡張コマンドを用い、セ キュアモジュール 0207の PCRを更新していく。その結果、セキュアモジュール 0207 の PCRは、端末 A0102で動作して!/、るプログラムに依存した値となる。
以上で端末 A0102の構成の説明を終わる。続いて、端末 N0105の構成の説明に 移る。
[0062] 図 7は、端末 N0105の構成を示している。なお、端末 Z0106も同様の構成をして ヽる。端末 Ν0105ίま、プロセッサ 0701、 RAM0702,ブートコード 0703、カードイン ターフェース 0704、コンテンツ格納部 0706、セキュアモジュール 0707、プログラム 格納部 0708で構成されており、これらの要素はバス 0713で相互に接続されている 。プログラム格納部 0708には、オペレーティングシステム 0709、再生制御プログラム 0711、プログラム証明書 0712が格納されて!、る。
[0063] 端末 N0105のこれらの構成要素は、図 2に示す端末 A0102の構成要素と同一の 機能を有するため説明は省略する。ただし、端末 N0105には、端末 A0102の通信 部 0205、権利購入制御プログラム 0210に相当する構成要素は存在しない。
以上で端末 N0105の構成の説明を終わる。続いて、サーバ 0101の構成の説明を 行う。
[0064] 図 12は、サーバ 0101の構成を示している。サーバ 0101は、通信部 1201、 CRL データベース 1202、 CRL管理部 1203、権利管理部 1204で構成されている。 CRL データベース 1202は CRL管理部 1203と接続されている。また、 CRL管理部 1203 、権利管理部 1204は、通信部 1201と接続されている。
通信部 1201は、インターネット 0108と接続されており、端末 A0102〜端末 M010 4と通信を行う。 CRL管理部 1203、および権利管理部 1204は、この通信部 1201を 介して端末 A0102〜端末 M0104、および端末 A0102等に接続されたカード 0107 と通信する。
[0065] CRLデータベース 1202は、リボーク(無効ィ匕)されている端末の端末 ID、その端末 のリボークされた原因を取り除いた後の更新プログラム、およびその更新プログラムが 端末上で実行された時の PCR値が格納されている。なお、端末のリボークは、一般 的には、悪意の利用者の端末が特定できている場合にその端末を無効化することな ど、プログラムの更新によって回復できない欠陥を持った端末の無効化も示すが、本 実施の形態では、プログラムの更新によって回復できる欠陥を持った端末をリボーク 対象として説明する。具体的には、本実施の形態では、セキュリティホールを持った 古いソフトウェアを使用し続けている端末など力 リボーク対象として CRLデータべ一 スに記録される。
[0066] 図 13は、 CRLデータベース 1202の構成を示した図である。 CRLデータベース 12 02は、 CRLエントリ Τ1301、 Τ1302、 Τ1303 · · ·力ら構成され、各 CRLエントリには 、端末 ID、更新プログラム、および正規 PCR値のエリアが存在する。 CRLデータべ ース 1202は、リボークされている端末の情報により構成される。
[0067] 端末 IDエリアには、リボークされている端末の IDが格納される。更新プログラムエリ ァには、リボークされた端末の更新プログラムが格納される。リボークされた原因がソ フトウエアにある場合、この更新プログラムを用いて端末をアップデートすれば、端末 は動作し続けることができる。このようなケースの具体例としては、ソフトウェアがハツキ ングされたことが判明した場合や、ソフトウェアにセキュリティホールが発見された場 合などである。正規 PCR値エリアには、端末が更新プログラムエリアに格納されてい る更新プログラムでアップデートされ、正常に動作して 、る時の PCR値に端末メーカ
のみ知る秘密鍵で作られた署名が付した情報が格納される。
[0068] この正規 PCR値を用い、端末側でプログラムが正しくアップデートされて 、る力どう かを確かめることができる。
CRL管理部 1203は、通信部 1201および端末 A0102を介してカード 0107と相互 認証を行 、正規のカードであることを確かめ、 CRL情報を通信部 1201を介して提供 する。より具体的には、 CRL管理部 1203は、カード 0107から送られてくる端末 IDが CRLデータベース 1202に存在するかどうか確かめ、存在していれば該当するェント リの更新プログラムおよび正規 PCR値をカード 0107に提供する。
[0069] 権利管理部 1204は、コンテンツの権利情報を管理し、端末の要求に応じて課金処 理を行い、コンテンツの権利情報を提供する。権利管理部 1204は、カード 0107と相 互認証を行い、正当なカード 0107であることを確かめた後に課金処理および権利情 報の提供を行う。権利管理部 1204は、通信部 1201を介してインターネット 0108と 接続される。
[0070] 以上でサーバ 0101の構成の説明を終わる。続いて、カード 0107の構成の説明に 移る。
図 8は、カード 0107の構成を示している。カード 0107は、プロセッサ 0801、 RAM 0802、ブートコード 0803、端末 IZF0804、 CRLデータベース 0805、コンテンツ格 納部 0807、プログラム格納部 0808で構成されており、これらの構成要素はバス 081 3で相互に結合されている。また、カード 0107は、耐タンパ性を有しており、カード内 のプログラムやデータを容易に暴露されることは無 、ようになって 、る。
[0071] プロセッサ 0801は、ブートコード 0803、および RAM0802にロードされているプロ グラムを実行し、カード 0107の各種処理を行う。
RAM0802は、プロセッサ 0801で実行するプログラムがロードされる。ロードされる プログラムはプログラム格納部 0808に格納されている。
ブートコード 0803は、カード 0107がリセットされた後、プロセッサ 0801が初めに実 行するコード(ブートコード)が格納されている。ブートコード 0803は、プログラム格納 部 0808に格納されているオペレーティングシステム 0809を RAM0802へ展開する 。なお、カード 0107は、端末に挿入され電力が供給された時点でリセットされる。
[0072] 端末 I/F0804は、カード 0107と端末を接続するインターフェースである。プロセッ サ 0801で動作するプログラムは、端末 IZF0804と通信することで、端末と通信する ことができる。カード 0107で動作するプログラムは端末 IZF0804と通信する時には 常に端末 IZF0804を使用する。以下、カード 0107で動作するプログラムと端末との 通信について記述する場合は端末 IZF0804の記述は省略する。
[0073] 図 14は、 CRLデータベース 0805の構成を示した図である。 CRLデータベース 08 05は、 CRLエントリ Τ1401、 Τ1402、 Τ1403 · · 'から構成され、各 CRLエントリには 、端末 、更新プログラム、および正規 PCR値のエリアが存在する。
端末 IDエリアには、カード 0107が取得した端末の IDが格納される。なお、端末 ID のエリアに書かれている「ID— A」「ID— B」「ID— N」はそれぞれ、端末 A102、端末 B103、端末 N105の端末 IDである。更新プログラムエリアには、該当する端末 IDを 持つ端末がリボークされている場合、その端末の更新プログラムが格納される。正規 PCR値エリアには、端末が更新プログラムエリアに格納されている更新プログラムで アップデートされ、正常に動作している時の PCR値が格納される。ここで正規 PCR値 には、前述したように端末メーカのみ知る秘密鍵を用いて作られた署名が付されて!ヽ る。なお、 T1403では、更新プログラムが NULLに、正規の PCR値が現状の PCR値 となっている。このエントリはカード 0107が鍵出力依頼情報を受け取った後の状態で ありかつ更新プログラムを取得していない状態である。例えば、カード 0107が初めて 端末 N0105に挿入されて、鍵出力依頼情報を受け取った直後の状態である。
[0074] コンテンツ格納部 0807には、暗号化されたコンテンツとコンテンツの権利が格納さ れる。このコンテンツは端末 A0102のようなサーバ 0101に接続可能な端末でダウン ロードされ、コンテンツ格納部 0807に格納される。コンテンツ格納部 0807は、端末 N0105のようなインターネット 0108を経由してサーバ 0101にアクセスできない端末 にコンテンツを供給するために用いられる。また、コンテンツの権利は、後述する権利 購入プログラム 0810によってサーバ 0101から取得されてコンテンツ格納部 0807に 格納される。
[0075] コンテンツ格納部 0807に格納されるコンテンツの権利は、カード 0107の外部から 直接アクセスすることはできず、後述する権利確認'鍵生成プログラム 0811しかァク
セスできないような実装となっている。具体的には、権利確認 '鍵生成プログラム 081 1でしか復号できな!/、ように暗号ィ匕したりすることで、このような実装を行うことができる
[0076] プログラム格納部 0808は、オペレーティングシステム 0809、権利購入プログラム 0 810、権利確認 ·鍵生成プログラム 0811を格納して!/、る。
オペレーティングシステム 0809は、一般的なカード 0107の基盤ソフトウェアであり 、オペレーティングシステム 0809上で動作するアプリケーションにサービスを提供す る。オペレーティングシステム 0809は、プログラム格納部 0808内に格納されている アプリケーションを RAM0202にロードする。
[0077] 権利購入プログラム 0810は、端末の権利購入制御プログラム 0210から受け取つ たコンテンツ購入要求に基づき、サーバ 0101と端末の通信機能を用いて通信して 権利の購入およびカード 0107の CRLデータベース 0805の更新を行う。なお、コン テンッ購入要求には、端末 A0102の説明で述べたように、購入対象のコンテンツ ID およびそのコンテンツを購入する端末を識別する端末 IDが含まれている。
[0078] 図 9は、権利購入プログラム 0810の動作を示すフローチャートである。権利購入プ ログラム 0810は、コンテンッ購入要求に含まれる端末 IDを取得して CRLデータべ一 ス 0805に格納する(ステップ S0901)。権利購入プログラム 0810は、 CRLデータべ ース 0805を操作し、 CRLエントリを作成して端末 IDエリアに取得した端末 IDを格納 する。権利購入プログラム 0810は、既に取得した端末 IDを端末 IDエリアに持つ CR Lエントリが存在する場合には CRLエントリの作成は行わない。
[0079] 権利購入プログラム 0810は、サーバ 0101と相互認証を行い、コンテンツの購入処 理およびコンテンツの権利の取得を行う(ステップ S0902)。取得したコンテンツの権 利は、コンテンツ格納部 0807に安全に保存される。コンテンツの権利には、コンテン ッの利用期限、利用回数などのコンテンツ利用条件、およびコンテンツを暗号ィ匕して V、る鍵が格納されて 、る。コンテンツの権利は暗号ィ匕された形でコンテンツ格納部 0 807〖こ保持される。
[0080] 次に、権利購入プログラム 0810は、サーバ 0101に問い合わせ、 CRLデータべ一 ス 0805の更新を行う(ステップ S0903)。ここで、権利購入プログラム 0810は、 CRL
データベース 0805の CRLエントリに格納されて 、るすべての端末 IDをサーバ 0101 に送信する。サーバ 0101の CRL管理部 1203は、受け取った端末 IDが CRLデータ ベース 1202に格納されているかどうかを確かめ、該当する端末 IDが存在する場合、 その端末 IDが格納されて 、る CRLエントリ内の更新プログラムと正規 PCR値を権利 購入プログラム 0810に送信する。権利購入プログラム 0810は、受け取った更新プロ グラムと正規 PCR値を CRLデータベース 0805の該当する端末 IDを含む CRLェント リに格納する。
[0081] 図 10は、権利確認.鍵生成プログラム 0811の動作を示すフローチャートである。
権利確認'鍵生成プログラム 0811は、端末がリボークされていないかどうか確認し 、されていなければ、コンテンツ利用条件をチェックして再生可能な状態であればコ ンテンッの暗号鍵を端末に出力する。また、リボークされている場合、更新プログラム を端末に出力する。
[0082] 権利確認 '鍵生成プログラム 0811は、鍵出力依頼情報に含まれる端末 IDを取得し て CRLデータベース 0805に格納する(ステップ S1001)。権利確認'鍵生成プログ ラム 0811は、 CRLデータベース 0805を操作し、 CRLエントリを作成して端末 IDエリ ァに取得した端末 IDを格納する。権利確認 '鍵生成プログラム 0811は、既に取得し た端末 IDを端末 IDエリアに持つ CRLエントリが存在する場合には CRLエントリの作 成は行わない。権利購入プログラム 0810にも同様の処理を行う機能がある力 この ステップは端末 NO 105のようなインターネット 0108に接続されない端末で端末 IDを 取得するために実行される。端末 N0105のような端末は、権利購入プログラム 0810 を実行することはないからである。なお、これらの端末については、端末 A0102等の インターネット 0108に接続された機器がカード 0107を用 ヽて事前に購入したコンテ ンッを再生することを想定して 、る。
[0083] 権利確認'鍵生成プログラム 0811は、鍵出力依頼情報に含まれる Attestationサ 一ビスにより署名された PCR値の署名検証を行う(ステップ S1002)。署名検証の結 果、 PCR値が正規のものでないと判断された場合 (ステップ S 1002で NO)、権利確 認 ·鍵生成プログラム 0811は処理を終了する。
署名検証の結果、 PCRの値が正規のものであると確認された場合 (ステップ S 100
2で OK)、権利確認'鍵生成プログラム 0811は、端末の正当性確認を PCR値を用 いて行う(ステップ S1003)。権利確認'鍵生成プログラム 0811は、 CRLデータべ一 ス 0805を参照し、鍵出力依頼情報に含まれる端末 IDと一致する CRLエントリ内の正 規 PCR値と、端末より取得した PCR値を比較する。比較結果が OKの場合 (ステップ S 1003で OK)、権利確認処理に移る。比較結果が NGの場合 (ステップ S 1003で N G)、プログラム更新処理に移る。ここで、比較結果が OKとは PCR値と正規 PCR値と がー致することを意味し、比較結果が NGとは PCR値と正規 PCR値とがー致しな 、こ とを意味する。
[0084] なお、鍵出力依頼情報に含まれる端末 IDと一致する CRLエントリ内の正規 PCR値 が存在しない場合、権利確認'鍵生成プログラム 0811は、鍵出力依頼情報に含まれ るプログラム証明書に含まれる PCR値を、その PCR値が端末メーカにより生成された ものであるかどうかを端末メーカの公開鍵で確認した後、正規 PCR値の替わりに用い て端末の正当性を確認する。比較結果が OKの場合 (ステップ S 1003で OK)、権利 確認処理に移る。比較結果が NGの場合 (ステップ S 1003で NG)、プログラム更新 処理に移る。
[0085] ここで、権利確認 ·鍵生成プログラム 0811は、正規 PCR値をサーバから取得して!/ヽ ない場合に限って、鍵出力依頼情報に含まれるプログラム証明書中の PCR値を CR Lエントリに格納し、その後の端末の正当性確認に用いる。このプログラム証明書はメ 一力が出荷時に機器のソフトウエア構成を表す PCR値を含む状態で署名して ヽるも のであるため、実質的にはカード 0107は端末が出荷時のソフトウェア構成であるか どうかの検証しかできないこととなる。し力しながら、後述するが、本実施の形態では、 権利を購入する処理の中で CRLエントリに格納されて ヽる端末 IDすべてにっ 、て更 新プログラムが存在するかどうかの確認が行われ、更新プログラムが存在して 、る場 合は更新プログラムおよびその更新プログラムに対応した正規 PCRがカード 0107の CRLエントリに格納される。そのため、一度端末 IDが CRLエントリに格納され、権利 購入処理が発生すると正規 PCR値を用いた端末の正当性検証が完全に機能するこ ととなる。端末の利用者はコンテンツ配信サービスを受け続けるためには権利購入処 理の実行が不可欠となるため、正規 PCR値の取得操作を避けることは困難である。
[0086] 端末が正当であると判断された場合 (ステップ S1003で OK)、権利確認'鍵生成プ ログラム 0811は、鍵出力依頼 '青報に含まれるコンテンツ IDに該当するコンテンツの 権利情報をコンテンツ格納部 0807から取得し、利用条件をチヱックする (ステップ S1 004)。利用条件のチェックが NGの場合 (ステップ S1004で NG)、権利確認'鍵生 成プログラム 0811は処理を終了する。
[0087] 利用条件のチェックが OKの場合 (ステップ S 1004で OK)、権利確認'鍵生成プロ グラム 0811は、コンテンッの権利情報に含まれるコンテンッ暗号鍵を端末に出力し、 権利確認 ·鍵生成プログラムの処理を終了する (ステップ S 1005)。
端末の正当性確認ステップで端末が正当でな 、と判断された場合 (ステップ S100 3で NG)、権利確認 '鍵生成プログラム 0811は、 CRLデータベース 0805を参照し、 鍵出力要求に含まれる端末 IDに該当する CRLエントリの更新プログラムエリアに更 新プログラムが存在するかどうかを確かめる(ステップ S 1006)。更新プログラムが存 在しない場合 (ステップ S 1006で NG)、権利確認 '鍵生成プログラム 0811は、処理 を終了する。
[0088] 更新プログラムが存在する場合 (ステップ S 1006で OK)、更新プログラムと正規 PC Rの値の出力処理を行う(ステップ S 1007)。ここで、更新プログラムおよび正規 PCR 値は、 CRLデータベース 0805内に格納されている鍵出力依頼情報に含まれる端末 IDに該当する CRLエントリのものである。
次に、コンテンツ配布システム 0100の動作を説明する。
[0089] まず、インターネット 0108を介してサーバ 0101に接続されて 、る端末 (端末 A010 2〜端末 M0104)についての動作を説明する。以下、端末 AO 102を例として説明す る力 端末 B0103〜端末 M0104も同様の構成を備えているため、以下で説明する ものと同様の動作を行う。
図 11は、端末 A0102においてカード 0107を用いてサーバ 0101から権利を購入 し、サーバ 0101から取得したコンテンッを端末 AO 102で再生する場合のコンテンツ 配布システム 0100の動作を示すフローチャートである。ここで、端末 A0102はリボー クされており、サーバ 0101の CRLデータベース 1202には、端末 A0102の端末 ID を含む CRLエントリが存在していると仮定する。また、更新プログラムとそれに対応す
る正規 PCR値も CRLデータベース 1202の該当する CRLエントリ内に格納されてい るとする。以下、図 11に示すフローチャートに従ってコンテンツ配布システム 0100の 動作ついて説明する。
[0090] 端末 A0102は、図 6で説明した端末起動フローに基づき端末の起動処理を行う(ス テツプ S1101)。その結果、端末 0102のセキュアモジュール 0207内の PCRが端末 0102で動作しているプログラムに依存する値となる。カード 0107は、ブートコード 08 03を用いてオペレーティングシステム 0809を RAM0802にローデイングし、その後 、オペレーティングシステム 0809が各種アプリケーションを起動することでカード 010 7を利用可能な状態にする。
[0091] 次〖こ端末 A0102は、図 3に示すように権利購入制御プログラム 0210を用い、権利 の購入処理をカード 0107を用いて行う(ステップ S1102)。カード 0107は、図 9に示 すように権利購入プログラムを動作させ権利購入処理を行う。
ここで、端末 A0102はリボークされているので、権利購入プログラム 0810は、サー ノ 0101から該当する更新プログラムと正規 PCR値を CRLデータベース 0805に格 納する(ステップ S 1103)。
[0092] 次に端末 A0102は、図 4に示すように再生制御プログラム 0211を動作させコンテ ンッの再生を行う。再生制御プログラム 0211がカード 0107に対し鍵の出力を依頼 すると図 10に示すように権利確認 '鍵生成プログラム 0811が動作する。ここで、権利 確認'鍵生成プログラム 0811は、端末の正当性確認 (S1003)を行う。ここで、端末 A0102はリボークされているので、端末の正当性確認は NGとなる(S1003で NG)。 そのため、カード 0107は、 CRLデータベース 0805内に端末 A0102の端末 IDを含 む CRLエントリがあり、また更新プログラムおよび正規 PCR値が存在するため、更新 プログラムおよび正規 PCR値を端末 A0102に出力する。再生制御プログラム 0211 は、受け取った更新プログラムおよび正規 PCR値をそれぞれプログラム格納部 0208 に格納し、端末 A0102を再起動する(ステップ S1104)。その後、端末 A0102は、ス テツプ S1101と同様に起動する。
[0093] 次に端末 A0102は、再生制御プログラム 0211を動作させ、再度、カード 0107の 権利確認 ·鍵生成プログラム 0811に鍵出力処理を依頼する。権利確認 ·鍵生成プロ
グラム 0811のステップ S1003で端末の正当性の確認が行われる(ステップ S1105) 。もし、正しくプログラムが更新されているならば (ステップ S1105の OK)、端末 A01 02のセキュアモジュール 0207から取得した PCR値とカード 0107の CRLデータべ ース 0805に格納されている PCR値が一致することから、端末 A0102が正当である ことが確認され、鍵が出力される。
[0094] 一方、プログラムの更新処理を行う端末 A0102の再生制御プログラム 0211が悪意 のあるものから改竄され、プログラムの更新が行われなかった場合 (ステップ S 1105 の NG)、端末 A0102のセキュアモジュール 0207から取得した PCR値とカード 0107 の CRLデータベース 0805に格納されている PCR値は一致することなぐ端末 A010 2は正当でないと判断され、端末 A0102の処理は終了する。
[0095] プログラムの更新が正しく行われた場合 (ステップ S1105で OK)、カード 0107から コンテンツの暗号鍵が出力される(ステップ S1106)。
鍵が出力されると、再生制御プログラム 0211は、コンテンツ格納部 0206から暗号 ィ匕されたコンテンツを取り出し、鍵を用いて復号ィ匕した後に再生する (ステップ S110 7)。
[0096] このように、 PCR値を用いてプログラムが正しく更新されたことを確認しないとコンテ ンッ暗号鍵を出力しない構成とすることで、もし、正しくアップデートされていないなら ば、端末の正当性チェックが NGとなり、コンテンツを暗号ィ匕した鍵は端末に出力され ないので、コンテンツを正しく再生するためには、プログラムをアップデートすることが 必要となる。また、アップデートしたプログラムが改竄された場合であっても端末の正 当性チェックが NGとなり、コンテンツが再生できなくなるため、コンテンツの著作権を 適切に保護することができる。
[0097] さらに、本発明では、従来技術のようにプログラムアップデート手段全体を耐タンパ 実装することなぐプログラムのアップデートを強制することができる。つまり、上述の 処理を実現するためには、カード 0107とセキュアモジュール 0207のみを耐タンパ実 装していればよくなるため、耐タンパ実装すべき箇所を大きく削減することができる。 また、コンテンツを再生する権利を要求する際に、必ずカード 0107が端末の正当 性を確認し、 NGの場合に端末のプログラムをアップデートするので、コンテンツを再
生しょうとする限り、必ずアップデートが行われることとなる。これにより、リボークされ た端末のソフトウェアのアップデートを確実に行うことができる。なお、本実施の形態 では、コンテンツの再生時に上記の処理を行った力 これを記録時等に変更すること で、他のタイミングでもソフトウェアのアップデートを強制することができることは言うま でもない。
[0098] 続!、て、インターネット 0108と接続できな!/、端末(端末 N0105〜Z0106)につ!/、て の動作の説明を行う。以下では端末 N0105を例として説明するが、端末 Z0106も同 様の構成を備えているため、以下で説明するものと同様の動作を行う。
図 15は、インターネット 0108を介してサーバ 0101に接続することができない端末 N0105のプログラムを更新する場合のコンテンツ配布システム 0100の動作を示す フローチャートである。ここで、端末 N0105はリボークされており、サーバ 0101の CR Lデータベース 1202には、端末 N0105の端末 IDを含む CRLエントリが存在してい ると仮定する。また、更新プログラムとそれに対応する正規 PCR値も CRLデータべ一 ス 1202の該当する CRLエントリ内に格納されているとする。ここで、端末 N0105は、 インターネット 0108を介してサーバ 0101に接続することができないため、権利の購 入は端末 A0102を用いて行い、コンテンツとその権利はカード 0107を用いることで 端末 N0105で利用可能となる。以下、図 15に示すフローチャートに従ってコンテン ッ配布システム 0100の動作について説明する。
[0099] 端末 A0102は、端末起動処理、および権利購入処理をそれぞれ図 11のステップ S1101、およびステップ SI 102で説明したように行う。ここで、端末 N0105でもダウ ンロードしたコンテンツを再生できるようにするため、端末 A0102はカード 0107のコ ンテンッ格納部 0807にダウンロードしたコンテンツを格納する。
端末 N0105は、図 6で説明した端末起動フローに基づき端末の起動処理を行う( ステップ S1503)。その結果、端末 0105のセキュアモジュール 0707内の PCRが端 末 N0105で動作しているプログラムに依存する値となる。
[0100] 次に、端末 A0102で購入したコンテンツを端末 N0105で再生するためにカード 0 107を端末 A0102から端末 N0105に移動させる。端末 N0105は、再生制御プログ ラム 0711を動作させ、カード 0107に対し、コンテンツ鍵出力依頼を行う。カード 010
7は、図 10に示すような動作を行う権利確認'鍵生成プログラム 0811を動作させる。 ここで、権利確認'鍵生成プログラムは、ステップ S1001で端末 N0105の端末 IDを CRLデータベースに追加し、端末 N0105の端末 IDを含む CRLエントリを作成する( ステップ S 1504)。
[0101] 権利確認 '鍵生成プログラム 0811はその後、ステップ S1003で端末 N0105の正 当性確認を行う(ステップ S1505)。ここで、権利確認'鍵生成プログラム 0811は、 C RLデータベース 0805を参照し、端末 N0105の端末 IDを含む CRLエントリを発見 するが、正規 PCR値が存在しないため、端末 N0105のプログラム証明書 0712に格 納されている PCR値を用いて端末の正当性を確認する。端末 N0105のセキュアモ ジュール 0707の PCR値とプログラム証明書 0712の PCR値が一致しなければ (ステ ップ S1505で NG)、端末は正当で無いと判断し、権利確認 '鍵生成プログラムは処 理を終了する。
[0102] 端末の正当性が確認された場合 (ステップ S 1505で OK)、権利確認'鍵生成プロ グラム 0811は、権利確認処理 S 1004を行った後、コンテンツ格納部 0807に格納さ れて 、るコンテンツの権利内のコンテンッ暗号化鍵を復号化し、端末 NO 105に出力 する(ステップ S 1506)。
端末 N0105の再生制御プログラム 0711は、カード 0107から受け取ったコンテン ッ喑号鍵を用いて、カード 0107のコンテンツ格納部 0807に格納されているコンテン ッを復号化した後、再生する(ステップ S 1507)。なお、カード 0107のコンテンツ格納 部 0807から端末 N0105のコンテンツ格納部 0706にコンテンツを転送した後にコン テンッの再生を行っても良い。
[0103] 次に、カード 0107を用いて新たにコンテンツの権利を購入するために、カード 010 7は端末 A0102に挿入される。以下、端末 A0102においてコンテンツの権利を購入 するフローについて説明する。
端末 A0102は、図 3に示すように権利購入制御プログラム 0210を用い、権利の購 入処理をカード 0107を用いて行う(ステップ S1508)。カード 0107は、図 9に示すよ うに権利購入プログラムを動作させ権利購入処理を行う。権利購入の際にダウンロー ドされたコンテンツは、カード 0107のコンテンツ格納部 0807に格納される。
[0104] ここで、端末 N0105はリボークされているので、権利購入プログラム 0810は、サー ノ 0101から該当する更新プログラムと正規 PCR値を CRLデータベース 0805に格 納する(ステップ S1509)。カード 0107の CRLデータベース 0805には、端末 N010 5の端末 IDを含む CRLエントリが存在しているので、権利購入プログラム 0810の CR L更新処理 (ステップ S0903)において、端末 N1005の端末 IDでサーバ 0101の CR Lデータベース 1202が検索される。検索の結果、端末 NO 105の端末 IDを含む CR Lエントリが CRLデータベース 1202に存在するので、権利購入プログラム 0810は、 その CRLエントリ力も端末 N0105の更新プログラムと正規 PCR値をカード 0107の C RLデータベース 0805に存在する端末 N0105の端末 IDを含む CRLエントリに格納 する。
[0105] 次に、カード 0107は、端末 N0105でコンテンツを再生するために端末 N0105に 挿入される。以下、端末 N0105におけるコンテンツ再生動作について説明する。 端末 N0105は、図 11のステップ S1104において端末 A0102が行ったように端末 NO 105のプログラムを更新する(ステップ S 1510)。
端末 N0105は、図 11のステップ S1105にお!/、て端末 A0102が行ったようにカー ド 0107に対し鍵出力依頼を行うことで、カード 0107によって正当性の確認を行われ る(ステップ S1511)。正当性が確認された場合 (ステップ S1511で OK)、カード 010 7からコンテンツの暗号化鍵がカード 0107から端末 N0105に出力される。
[0106] 一方、プログラムの更新処理を行う端末 N0105の再生制御プログラム 0711が悪意 のあるものから改竄され、プログラムの更新が行われな力つた場合 (ステップ S 1511 の NG)、端末 N0105のセキュアモジュール 0707から取得した PCR値とカード 0107 の CRLデータベース 0805に格納されている PCR値は一致することなぐ端末 N010 5は正当でないと判断され、端末 N0105の処理は終了する。
[0107] プログラムの更新が正しく行われた場合 (ステップ S1511で OK)、カード 0107から コンテンッの喑号鍵が出力される(ステップ S 1512)。
端末 N0105の再生制御プログラム 0711は、カード 0107から受け取ったコンテン ッ喑号鍵を用いて、カード 0107のコンテンツ格納部 0807に格納されているコンテン ッを復号化した後、再生する(ステップ S1513)。なお、カード 0107のコンテンツ格納
部 0807から端末 N0105のコンテンツ格納部 0706にコンテンツを転送した後にコン テンッの再生を行っても良い。
[0108] これにより、インターネット 0108経由でサーバ 0101に接続できない端末 N0105の ような端末であっても、端末のリボークおよびプログラムの更新が可能となる。
また、一度カード 0107が使用された端末に対応するリボケーシヨンリストのみカード 0107に取得するため、カード 0107の少ないリソースでもリボケーシヨンリストが取り扱 える。
[0109] また、端末がネットワーク接続されている場合の動作説明で述べたものと同様の効 果が得られることは言うまでもな 、。
(変形例)
なお、本発明を上記実施の形態に基づいて説明してきた力 本発明は、上記の実 施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる
[0110] (1) 上述した実施の形態では、更新対象はソフトウェアであった力 ハードウェア の構成情報を更新するシステムに適用してもよい。このようなハードウェアの具体的な 例としてはリコンフィギュアラブルプロセッサなどが考えられる。
(2) 上述した実施の形態では、カード、端末、サーバのいずれを制御するプロダラ ムもオペレーティングシステムの上で動作して 、たが、これに限られるものではな!/、。 アプリケーションプログラム等が直接プロセッサで処理できる言語で書かれている場 合には、必ずしもオペレーティングシステムはなくてもよい。
[0111] (3) PCRはハッシュ値であるとした力 これに限られるものではない。改竄検出に 用いることのできる値であれば、どのようなものであってもよい。例えば、プログラムの 一部を暗号ィ匕した値であったり、プログラムのチェックサム等であってもよ 、。
(4) 上述した実施の形態では、カード 0107は、鍵の要求があった場合に端末がリ ボークされている力否かを確認するとした力 これに限られるものではない。鍵情報以 外にも、不正な端末に渡すと不利益のある情報であれば、他の情報であってもよい。 さらに、端末が行う処理もコンテンツの再生に限るものではない。例えば、端末は、個 人情報を取り扱うデータベースの処理を行うとしてもよい。この場合、端末がリボーク
されて ヽる力否かを確認するタイミングは、個人情報の要求が端末からあった場合な どになる。
[0112] (5) 上述した実施の形態では、カード 0107が端末がリボークされている力否かを 確認するとした力 これに限られるものではない。例えば、サーバが、権利情報を提 供する際に、端末がリボークされているか否かを確認しても良い。この場合、端末は、 権利情報の要求と共に PCRを送信する。また、サーバは、正規 PCRを記憶しており 、端末力 送られてきた PCRと正規 PCRとが不一致の場合 (すなわち、 NGの場合) に端末のプログラムをアップデートさせる。なお、詳細な処理については、端末とカー ドとの間でのアップデートの処理と同様であるので省略する。
[0113] (6) 上述した実施の形態では、プログラムがアップデートされた後、端末は再起動 されるとした力 これに限られるものではない。再起動を必要としない小さなアップデ ートであれば、そのまま処理を続行してもよい。すなわち、アップデートが完了した後 、再起動を行わずに、鍵情報が端末に出力され、コンテンツの復号及び再生処理が 行われるとしてもよ 、。
[0114] (7)上記の各装置は、具体的には、マイクロプロセッサ、 ROM, RAM,ハードディ スクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュー タシステムである。前記 RAMまたはハードディスクユニットには、コンピュータプロダラ ムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムにしたが つて動作することにより、各装置は、その機能を達成する。ここでコンピュータプロダラ ムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが 複数個組み合わされて構成されたものである。
[0115] (8)上記の各装置を構成する構成要素の一部または全部は、 1個のシステム LSI ( Large Scale Integration:大規模集積回路)から構成されているとしてもよい。シ ステム LSIは、複数の構成部を 1個のチップ上に集積して製造された超多機能 LSIで あり、具体的には、マイクロプロセッサ、 ROM、 RAMなどを含んで構成されるコンビ ユータシステムである。前記 RAMには、コンピュータプログラムが記憶されている。前 記マイクロプロセッサ力 S、前記コンピュータプログラムにしたがって動作することにより
、システム LSIは、その機能を達成する。
[0116] また、上記の各装置を構成する構成要素の各部は、個別に 1チップィ匕されていても 良!、し、一部又は全てを含むように 1チップィ匕されてもょ 、。
また、ここでは、システム LSIとした力 集積度の違いにより、 IC、 LSI,スーパー LS I、ウルトラ LSIと呼称されることもある。また、集積回路化の手法は LSIに限るもので はなぐ専用回路又は汎用プロセッサで実現してもよい。 LSI製造後に、プログラムす ることが可能な FPGA (Field Programmable Gate Array)や、 LSI内部の回路 セルの接続や設定を再構成可能なリコンフィギユラブル'プロセッサーを利用しても良 い。
[0117] さらには、半導体技術の進歩又は派生する別技術により LSIに置き換わる集積回 路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積ィ匕を行って もよい。バイオ技術の適応等が可能性としてありえる。
(9)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能 な ICカードまたは単体のモジュール力も構成されて 、るとしてもよ 、。前記 ICカード または前記モジュールは、マイクロプロセッサ、 ROM, RAMなどから構成されるコン ピュータシステムである。前記 ICカードまたは前記モジュールは、上記の超多機能 L SIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動 作することにより、前記 ICカードまたは前記モジュールは、その機能を達成する。この ICカードまたはこのモジュールは、耐タンパ性を有するとしてもよ!/、。
[0118] (10)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンビュ ータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプ ログラム力もなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンビユー タ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、 CD— R OM、 MO、 DVD, DVD-ROM, DVD -RAM, BD (Blu— ray Disc)、半導体 メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前 記デジタル信号であるとしてもよ 、。
[0119] また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信 回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放
送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、 前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは 、前記コンピュータプログラムにしたがって動作するとしてもよい。
[0120] また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送する ことにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経 由して移送すること〖こより、独立した他のコンピュータシステムにより実施するとしても よい。
(11)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。 (まとめ)
(1)本発明は、端末と端末から分離可能なカードによって構成される情報処理装置 であって、端末は、端末で動作しているプログラムの特徴を測定し、保存する端末測 定手段と、端末で動作するプログラムを格納するプログラム格納手段と、プログラム格 納手段に格納されて 、るプログラムを更新するプログラム更新手段力 構成され、力 ードは、端末の更新プログラムを格納する更新プログラム格納手段と、端末測定手段 力 得た情報を用い端末の正当性を確認する正当性確認手段と、正当性確認手段 により端末が正当であると判断された場合のみ、カード内に保持されている秘密情報 を端末に提供する秘密情報提供手段と、正当性確認手段により端末が正当でないと 判断された場合のみ、更新プログラム格納手段に格納された更新プログラムをプログ ラム更新手段に出力するプログラム出力手段力も構成されることを特徴とする。
[0121] また、本発明のデータ処理装置において、カードはさらに、一度接続された端末の 端末 IDを格納する端末 ID格納手段と、接続されて!ヽる端末がネットワークに接続で きる場合、端末 ID格納手段に格納されて 、る端末 IDに関連付けられて 、る更新プロ グラムをサーバから取得し、更新プログラム格納手段に格納する更新プログラム取得 手段と、更新プログラム取得手段で取得した更新プログラムに関連付けられて 、る端 末の正当性確認情報を格納する正当性確認情報格納手段と、接続されて!、る端末 がネットワークに接続できる場合、更新プログラム取得手段で取得した更新プロダラ ムに関連付けられている正当性確認情報をサーノ から取得し、正当性確認情報格
納手段に格納する正当性確認情報取得手段を具備し、正当性確認手段が正当性 確認情報格納手段より取得した正当性確認情報を用いて、端末の正当性を確認す ることを特徴とする。
[0122] アップデートモジュール自体の信頼性に依存しな!、、プログラムのアップデート方 法を提供することが可能となる。
さらに、リボークされた端末を動作不能にすることなぐ不正な端末をプログラムのァ ップデートにより正当な端末にすることができるので、コンテンツの再生を継続できる
。リボークして動作不能にすることによるユーザへの被害を防止しつつ、コンテンツ配 布システムの健全性を保つことが可能となる。
[0123] また、カード内部の機構によってプログラムをアップデートしているので、インターネ ットに接続できない端末でもプログラムのアップデートが可能となる。
(2)また、本発明に係る情報記録装置は、プログラムによって動作する情報処理装 置とともに用いられ、情報処理装置により利用される情報を記録している情報記録装 置であって、情報処理装置から情報へのアクセス要求を受け付ける受付手段と、情 報処理装置を動作させる更新プログラムを格納する更新プログラム格納手段と、ァク セス要求が受け付けられた場合に、アクセス要求を行った情報処理装置を動作させ ているプログラムの特徴情報を取得する取得手段と、特徴情報に基づいて、情報処 理装置を動作させて 、るプログラムの正当性を確認する正当性確認手段と、プロダラ ムが正当でないと確認された場合に、情報処理装置に対して更新プログラムを出力 する出力手段とを備えることを特徴とする。
[0124] この構成によれば、情報記録装置に対して情報を要求している情報処理装置を動 作させて!/ヽるプログラムが正当なものでな ヽと確認された場合、そのプログラムが更 新プログラムにアップデートされる。したがって、情報を利用しょうとする装置に対して 、プログラムのアップデートを強制することができる。
(3)本発明に係る情報記録装置は、出力手段は、さらに、プログラムが正当であると 確認された場合にのみ、情報を情報処理装置に出力することを特徴とする。
[0125] この構成によれば、情報処理装置は、プログラムが正当であると判定されない限り、 要求している情報を得ることができない。このことから、アクセス要求を出している情報
を得るためには、情報処理装置はプログラムのアップデートを行わざるを得なくなるの で、プログラムのアップデートを強制することができる。
(4)本発明に係る情報記録装置は、さらに、情報処理装置を動作させる正当なプロ グラムの特徴情報である正規特徴情報を格納する正規特徴情報格納手段を備え、 正当性確認手段は、情報処理装置力 受信した特徴情報と正規特徴情報とを比較 することにより、プログラムが正当であるか否かを確認することを特徴とする。
[0126] この構成によれば、情報記録装置は、情報処理装置のプログラムが正当であるか 否かを特徴情報に基づ 、て確認することができる。
(5)本発明に係る情報記録装置は、受信手段は、さらに、アクセス要求と共に情報 処理装置の識別情報を取得し、更新プログラム格納手段は、過去にアクセス要求を 行った 1以上の情報処理装置の識別情報と、情報処理装置のそれぞれに向けた更 新プログラムとを対応付けて格納し、出力手段は、アクセス要求とともに受信した識別 情報に対応する情報処理装置向けの更新プログラムを出力することを特徴とする。
[0127] この構成によれば、情報記録装置が複数の情報処理装置で共有される場合でも、 各情報処理装置に対して適切な更新プログラムを出力することができる。
(6)本発明に係る情報記録装置は、更新プログラム格納手段は、さらに、新たな情 報処理装置からのアクセス要求が受け付けられると、新たな情報処理装置の識別情 報を格納内容に追加することを特徴とする。
[0128] この構成によれば、情報記録装置は、過去にアクセス要求を受け付けた情報処理 装置の全てについて、更新プログラムの管理を行うことができる。
(7)本発明に係る情報記録装置は、さらに、更新プログラムを提供するサーバに対 して、更新プログラム格納手段が格納して 、る情報処理装置の識別情報を送信する 送信手段と、サーバから送信した識別情報に対応する情報処理装置用の更新プロ グラムを取得する取得手段とを備え、更新プログラム格納手段は、取得した更新プロ グラムを識別情報と対応付けて記録することを特徴とする。
[0129] この構成によれば、情報記録装置は、 自身が管理している情報処理装置について 、更新プログラムのバージョンアップがあった場合、バージョンアップ後の更新プログ ラムを取得して記録することができる。
(8)本発明に係る情報記録装置は、可搬型の記録媒体であることを特徴とする。 この構成によれば、可搬型の記録媒体内部の機構によって、情報処理装置内のプ ログラムをアップデートして 、るので、インターネットに接続できな 、情報処理装置に 対してもプログラムのアップデートを強制することができる。
[0130] (9)また、本発明に係る情報処理装置は、プログラムによって動作し、プログラムの 特徴情報によりプログラムの正当性を確認する情報記録装置と共に用いられる情報 処理装置であって、プログラムの特徴情報を算出する特徴情報算出手段と、情報記 録装置が記録する情報へのアクセス要求を行う際に、算出した特徴情報を情報記録 装置へ送信する送信手段と、情報記録装置による確認に応じて、情報もしくは情報 処理装置用の更新プログラムを受信する受信手段と更新プログラムを受信した場合 、受信した更新プログラムによりプログラムを更新する更新手段とを備えることを特徴 とする。
[0131] この構成によれば、情報処理装置は、情報記録媒体に情報の要求を行う際に、自 身を動作させて 、るプログラムが不正なものであれば、アップデートすることができる
(10)本発明に係る情報記録装置は、特徴情報算出手段は、耐タンパ化により保護 されていることを特徴とする。
この構成によれば、不正解析者による特徴情報の改ざんを防止できるので、情報 処理装置を動作させて 、るプログラムが不正なものである場合に、より確実に更新プ ログラムへのアップデートを行わせることができる。また、特徴情報算出手段さえ保護 していれば、上述した不正を防止できるので、装置全体を耐タンパ化する場合に比 ベて、低コストでプログラムのアップデートを強制することができる。
[0132] (11)また、本発明を、上述した特徴を持つ情報記録装置および情報処理装置から 構成されるシステム、プログラムアップデート方法、プログラム、および集積回路として 実現した場合もそれぞれ同様の効果を発揮することができる。
(その他の変形例)
(A— 1)第 1の変形例
上記実施の形態では、カードによる正当性の確認(図 10のステップ S1003)が OK
である場合に、カードは、コンテンツを復号する鍵を出力した力 これに限定されない
[0133] 正当性の確認が OKである場合に、カードは、端末固有のデバイス鍵を更新するた めに新 U、デバイス鍵を出力してもよ!/、。
ここで、本変形例では、情報の暗号化方法として、秘密暗号方式を用いる。また、 デバイス鍵とは各端末に固有の鍵であり、ここではコンテンツを暗号ィ匕及び復号する ための鍵 (以下、コンテンツ鍵という。)を暗号化及び復号するために用いる。
[0134] 以下、この場合のシステムの構成及び、各装置の構成について説明する。
デバイス鍵配布システム 2000は、図 16にて示すように、端末 (証明装置) 2001、 カード (検証装置) 2002、ネットワーク接続端末 2003及びサーバ 2004から構成され ている。
端末 2001は、ネットワークとは非接続の端末であり、上記実施の形態にて示す端 末 N0105、 · · ·、端末 Z0106に相当する。端末 2001は、デバイス鍵と、暗号化され たコンテンツ鍵を復号するためのプログラム(以下、コンテンツ鍵復号プログラム)とを 有している。
[0135] カード 2002は、端末に装着されると、当該端末を識別するための端末 IDを取得し 、記憶する。ここでは、カード 2002は、端末 2001を識別するための端末 IDを予め記 憶している。つまり、カード 2002は、過去に一度、端末 2001に装着されたものとする 。カード 2002は、上記実施の形態にて示す CRL更新時にて、予め記憶している端 末 IDをネットワーク接続端末 2003へ出力する。
[0136] ネットワーク接続端末 2003は、端末 IDをサーバ 2004へネットワークを介して送信 する。ネットワーク接続端末 2003は、サーバ 2004から、コンテンツ鍵復号プログラム に対する更新プログラム、正当性確認情報 (上記実施の形態における正規の PCR値 )、及び送信した端末 IDにより個別暗号化された正規のデバイス鍵 (以下、秘密情報 若しくは個別暗号化秘密情報という。)を受け取り、受け取った各情報をカード 2002 へ出力する。
[0137] サーバ 2004は、端末 IDをネットワーク接続端末 2003から受け取ると、更新プログ ラム、正当性確認情報、及び受信した端末 IDに基づく秘密情報を送信する。
ここで、正規のデバイス鍵の個別暗号ィ匕につ 、て説明する。
サーバ 2004は、図 17にて示すように、端末 IDと端末共通鍵とから変換された値( 以下、暗号用変換値)を算出する (ステップ S2000)。端末 IDは各端末に固有の識 別情報であり、端末共通鍵は端末に共通の鍵である。ここで、暗号用変換値の算出 方法は、例えば、端末 IDに端末共通鍵を連結させて、その結果に一方向性関数を 施すことで得られる。また、別の算出方法として、端末共通鍵を暗号化鍵として端末 I Dを秘密鍵暗号ィ匕方式にて暗号ィ匕してもよい。いずれの場合でも、暗号用変換値は 、端末 IDに依存する値となる。
[0138] サーバ 2004は、算出した暗号用変換値を暗号化鍵として、秘密情報 (デバイス鍵) を秘密鍵暗号化方式にて暗号化して個別暗号化秘密情報を生成する (ステップ S20 05)。
(A— 1 1)端末 2001
端末 2001は、図 16にて示すように、 ID格納部 2010、プログラム格納部 2011、端 末測定部 2012、プログラム更新部 2013、及び秘密情報復号部 2014から構成され ている。
[0139] なお、端末 2001の構成要素の一部または全部は、 1個のシステム LSI (Large Sc ale Integration:大規模集積回路)から構成されているものとし、システム LSIには 端末 2001と同種の端末と共通の鍵 (上記の端末共通鍵)が記憶されている。ここで、 端末共通鍵は、耐タンパ性により秘匿性を有して 、る。
(A— 1— 1— 1) ID格納部 2010、プログラム格納部 2011
ID格納部 2010は、当該端末の端末 ID2015を予め記憶している。
[0140] ここで、 ID格納部 2010は、耐タンパ性を有しており、端末 ID2015の改竄はできな い。
プログラム格納部 2011は、上記実施の形態におけるプログラム格納部 0708に相 当する。プログラム格納部 2011は、上記実施の形態におけるプログラム格納部 070 8が記憶して 、る各プログラムに加えて、個別暗号ィ匕された正規のデバイス鍵を復号 するためのプログラム(以下、秘密情報復号プログラム)、及びコンテンツ鍵復号プロ グラムを予め記憶している。
[0141] (A— 1— 1— 2)端末測定部 2012
端末測定部 2012は、上記実施の形態におけるセキュアモジュール 0707、および ブートコード 0703、オペレーティングシステム 0709、再生制御プログラム 0711のセ キュアモジュール 0707制御部分に相当する。
端末測定部 2012は、コンテンツ鍵復号プログラムの PCR値を測定 (算出)し、測定 した PCR値をカード 2002へ出力する。
[0142] なお、測定のタイミングは、上記実施の形態と同様に、コンテンツ鍵復号プログラム のロード時であり、出力のタイミングは、コンテンツの再生時である。
測定方法については、上記実施の形態と同様であるので、ここでの説明は省略す る。
(A- 1 - 1 - 3)プログラム更新部 2013
プログラム更新部 2013は、上記実施の形態における図 4にて示すステップ S0407 及び S0408に相当する処理を行う。
[0143] プログラム更新部 2013は、カード 2002からコンテンツ鍵復号プログラムに対する 更新プログラムを受け取ると、受け取った更新プログラムを用いてコンテンツ鍵復号 プログラムを更新する。
プログラム更新部 2013は、コンテンツ鍵復号プログラムの更新後、ステップ S0408 と同様に、システムのリセットを端末 2001のオペレーティングシステムに依頼する。
[0144] (A- 1 - 1 -4)秘密情報復号部 2014
秘密情報復号部 2014は、プログラム格納部 2011にて格納されて 、る秘密情報復 号プログラムが起動され、実行されることで実現される。
秘密情報復号部 2014は、カード 2002から当該端末に対応する個別暗号ィ匕秘密 情報を取得する。
[0145] 秘密情報復号部 2014は、 ID格納部 2010から端末 IDを、システム LSIから端末共 通鍵を、それぞれ取得する。
秘密情報復号部 2014は、取得した端末 IDと端末共通鍵とを用いて、サーバ 2004 による暗号用変換値の算出方法と同様の方法にて、復号用変換値を算出する。 秘密情報復号部 2014は、算出した復号用変換値を用いて、個別暗号化秘密情報
を復号し、デバイス鍵を生成する。秘密情報復号部 2014は、現在記憶しているデバ イス鍵から、生成したデバイス鍵へと更新する。
[0146] なお、端末 2001は、更新対象のデバイス鍵が含まれる個別暗号ィ匕秘密情報を力 一ドカも受け取った後に格納しておき、新しいデバイス鍵が必要となった時点で前述 した方法を用いて復号ィ匕してもょ ヽ。
(A— 1— 2)カード 2002
カード 2002は、図 16にて示すように、秘密情報提供部 2020、端末 ID格納部 202 1、正当性確認情報格納部 2022、更新プログラム格納部 2023、秘密情報取得部 2 024、正当性確認情報取得部 2025、更新プログラム取得部 2026、正当性確認部 2 027、及びプログラム出力部 2028から構成されている。
[0147] (A—1— 2—1)秘密情報提供部 2020
秘密情報提供部 2020は、図 16にて示すように、秘密情報蓄積部 2029及びスイツ チ 2030を有している。
秘密情報蓄積部 2029は、上記実施の形態にて示すコンテンツ格納部 0807に相 当している。秘密情報蓄積部 2029は、ネットワーク接続端末 2003を介してサーバ 2 004から受け取った個別暗号化秘密情報を蓄積している。ここでは、秘密情報蓄積 部 2029は、端末 2001の端末 IDを用いて暗号ィ匕された秘密情報を蓄積しているも のとする。
[0148] スィッチ 2030は、上記実施の形態にて示す図 10のステップ S1005におけるコンテ ンッの鍵を出力する動作に相当し、正当性確認部 2027の制御により動作する。端末 が正当であると判断される場合には、スィッチ 2030は、端末が個別暗号化秘密情報 を取得できるように、端末と秘密情報蓄積部 2029とを接続する。端末が正当でない と判断される場合には、スィッチ 2030は、端末と秘密情報蓄積部 2029とを接続しな い。
[0149] 秘密情報提供部 2020は、端末 2001と秘密情報蓄積部 2029とが接続されると、 端末 2001に対応する個別暗号ィ匕秘密情報を出力するとともに、端末 2001のォペレ 一ティングシステムに対して秘密情報復号プログラムの起動を要求する。
ここで、スィッチ 2030による接続 '非接続の動作は、正当性確認部 2027にて制御
される。なお、スィッチ 2030は、正当性確認部 2027の確認結果に基づいて、秘密 情報提供部 2020にて制御してもよ 、。
[0150] (A— 1 2— 2)端末 ID格納部 2021
端末 ID格納部 2021は、上記実施の形態にて示す CRLデータベース 0805の端末
IDの格納部位に相当する。
端末 ID格納部 2021は、過去に装着された端末が有する端末 IDを記憶している。 ここでは、端末 2001の端末 IDを記憶している。
[0151] また、カード 2002がネットワーク接続端末 2003に装着されている場合には、ネット ワーク接続端末 2003は、端末 ID格納部 2021にて格納されて 、る端末 IDを取得す る。
(A- 1 2— 3)正当性確認情報格納部 2022
正当性確認情報格納部 2022は、上記実施の形態における CRLデータベース 08 05の正当な PCR値の格納部位に相当する。
[0152] 正当性確認情報格納部 2022は、ネットワーク接続端末 2003を介してサーバ 200 4から受け取った正当性確認情報を、端末 ID格納部 2021にて記憶されて ヽる端末 I Dと対応付けて蓄積している。ここでは、正当性確認情報格納部 2022は、コンテンツ 鍵復号プログラムに対する正当性確認情報 (PCR値)を、端末 2001の端末 ID2015 と対応付けて記憶して 、るものとする。
[0153] (A— 1 - 2-4)更新プログラム格納部 2023
更新プログラム格納部 2023は、上記実施の形態における CRLデータベース 0805 の更新プログラムの格納部位に相当する。
更新プログラム格納部 2023は、ネットワーク接続端末 2003を介してサーバ 2004 力も受け取った更新プログラムを、端末 ID格納部 2021にて記憶されて 、る端末 IDと 対応付けて蓄積している。ここでは、更新プログラム格納部 2023は、コンテンツ鍵復 号プログラムに対する更新プログラムを、端末 2001の端末 ID2015と対応付けて記 憶しているものとする。
[0154] なお、上記にて示す CRLデータベース 0805は、本変形例にて示す端末 ID格納 部 2021、正当性確認情報格納部 2022及び更新プログラム格納部 2023から構成さ
れていることが分かる。
(A- 1 - 2- 5)秘密情報取得部 2024
秘密情報取得部 2024は、上記実施の形態にて示す図 9における権利購入処理に 相当する処理を行う。
[0155] 秘密情報取得部 2024は、ネットワーク接続端末 2003を介してサーバ 2004から個 別暗号化秘密情報を受け取ると、受け取った個別暗号化秘密情報を秘密情報蓄積 部 2029へ格納する。
ここで、秘密情報取得部 2024による個別暗号化秘密情報の受け取り、及び格納の タイミングは、例えば、コンテンツの購入時である。
[0156] (A- 1— 2— 6)正当性確認情報取得部 2025
正当性確認情報取得部 2025は、上記実施の形態にて示す図 9における CRL更 新処理、特に CRLデータベースの正規の PCR値の更新に相当する処理を行う。 正当性確認情報取得部 2025は、ネットワーク接続端末 2003を介してサーバ 200 4から正当性確認情報を受け取ると、受け取った正当性確認情報を正当性確認情報 格納部 2022へ格納する。
[0157] (A— 1 - 2- 7)更新プログラム取得部 2026
更新プログラム取得部 2026は、上記実施の形態にて示す図 9における CRL更新 処理、特に CRLデータベースの更新プログラムの更新に相当する処理を行う。 更新プログラム取得部 2026は、ネットワーク接続端末 2003を介してサーバ 2004 力 更新プログラムを受け取ると、受け取った更新プログラムを更新プログラム格納部 2023へ格納する。
[0158] (A— 1 2— 8)正当性確認部 2027
正当性確認部 2027は、上記実施の形態にて示す図 10における S 1003の処理に 相当する処理を行う。
正当性確認部 2027は、端末 2001からコンテンツ鍵復号プログラムの PCR値を受 け取ると、端末 2001と対応付けられたコンテンッ鍵復号プログラムの正当性確認情 報を、正当性確認情報格納部 2022から取得する。
[0159] 正当性確認部 2027は、受け取った PCR値と正当性確認情報とがー致するカゝ否か
を判断する。
一致すると判断する場合には、正当性確認部 2027は、上述したように、端末と秘 密情報蓄積部 2029とを接続するようにスィッチ 2030を閉じる。
一致しないと判断する場合には、正当性確認部 2027は、一致しない旨を示す NG 情報をプログラム出力部 2028へ出力する。
[0160] なお、本変形例では、正当性確認部 2027はステップ S1003のみに相当するとした 力 これに限定されない。
正当性確認部 2027はステップ S1002及び S1003に相当するとしてもよい。この場 合、正当性確認部 2027は、上記実施の形態と同様に、 PCR値の署名検証を行い、 署名検証が OKである場合に、端末 2001から受け取った PCR値と、正当性確認情 報とを比較する。
[0161] (A— 1 2— 9)プログラム出力部 2028
プログラム出力部 2028は、正当性確認部 2027から NG情報を受け取ると、端末 2 001に対するコンテンツ鍵復号プログラムの更新プログラムを更新プログラム格納部 2023力も取得する。
プログラム出力部 2028は、取得した更新プログラムを端末 2001のプログラム更新 部 2013へ出力する。
[0162] (A— 1— 3)ネットワーク接続端末 2003
ネットワーク接続端末 2003は、自身に装着されたカード 2002の端末 ID格納部 20 21から端末 2001の端末 IDを取得すると、取得した端末 IDを、ネットワークを介して サーバ 2004へ出力する。
その後、ネットワーク接続端末 2003は、サーバ 2004からネットワークを介して、出 力した端末 IDと対応付けられた更新プログラム、正当性確認情報、及び個別暗号ィ匕 秘密情報を受け取り、受け取った各情報をカード 2002へ格納する。
[0163] (A— 1 4)サーバ 2004
サーバ 2004は、上記実施の形態と同様に、 CRLデータベースを有しており、端末 毎に配布すべき更新プログラム及び正規の PCR値 (正当性確認情報)を管理して!/ヽ る。なお、更新プログラム及び正当性確認情報は、端末の機種毎に異なるとする。す
なわち、更新プログラム及び正当性確認情報は、同一の端末機種同士であれば共 通であり、異なる端末の機種同士では異なるものとする。
[0164] また、サーバ 2004は、端末共通鍵を予め記憶し、管理して!/、る。
サーバ 2004は、複数の秘密情報 (デバイス鍵)を予め生成しており、生成した秘密 情報を記憶'管理している。サーバ 2004は、端末に一度配布した秘密情報を再度 配布しないように管理している。なお、サーバ 2004が管理している複数の秘密情報 それぞれは、互いに異なる。さらに、サーバ 2004は、管理している全ての秘密情報 を配布した場合、これまでに管理して!/、た複数の秘密情報それぞれとは異なる複数 の秘密情報を生成する。上述したように、再度生成された複数の秘密情報それぞれ 【こつ ヽてち、互 ヽ【こ異なる。
[0165] サーバ 2004は、ネットワーク接続端末 2003からネットワークを介して、端末 IDを受 け取ると、受け取った端末 IDから機種を特定し、特定した機種に対応する機種共通 情報 (更新プログラム、正当性確認情報、及び端末共通鍵)を取得する。
サーバ 2004は、取得した端末共通鍵と、受け取った端末 IDとを用いて、暗号用変 換値を生成する。
[0166] サーバ 2004は、予め記憶している複数の秘密情報 (デバイス鍵)のうち 1つの秘密 情報 (デバイス鍵)を取得し、暗号用変換値を暗号鍵として、取得した秘密情報を暗 号化して個別暗号化秘密情報を生成する。
サーバ 2004は、端末個別データー式 (生成した個別暗号化秘密情報と、取得した 更新プログラム及び正当性確認情報)を、ネットワークを介してネットワーク接続端末 2003へ出力する。
[0167] (A- 1 - 5)デバイス鍵配布システム 2000の動作
デバイス鍵配布システム 2000の動作について、図 18にて示す流れ図を用いて説 明する。
カード 2002は、端末 2001に装着されると、端末 2001の端末 IDを取得し、取得し た端末 IDを端末 ID格納部 2021に格納する(ステップ S 2010)。
[0168] カード 2002は、ネットワーク接続端末 2003に装着され、且つデバイス鍵をサーバ 2004から取得する時において、端末 ID格納部 2021に格納された端末 2001の端
末 IDを、ネットワーク接続端末 2003を介してサーバ 2004へ送信する (ステップ S20 15)。
サーバ 2004は、カード 2002からネットワーク接続端末 2003を介して端末 2001の 端末 IDを受信すると、受信した端末 IDから機種を特定し、特定した機種に対応する 機種共通情報 (更新プログラム、正当性確認情報、及び端末共通鍵)を取得する (ス テツプ S2020)。
[0169] サーバ 2004は、秘密情報 (デバイス鍵)に個別暗号化処理を施して個別暗号化秘 密情報を生成する (ステップ S2025)。具体的には、サーバ 2004は、取得した端末 共通鍵と、受け取った端末 IDとを用いて、暗号用変換値を生成する。サーバ 2004 は、秘密情報 (デバイス鍵)を生成し、暗号用変換値を暗号鍵として、秘密情報を暗 号化して個別暗号化秘密情報を生成する。
[0170] サーバ 2004は、端末個別データー式 (生成した個別暗号化秘密情報と、取得した 更新プログラム及び正当性確認情報)を、ネットワークを介してネットワーク接続端末 2003へ出力する(ステップ S 2030)。
カード 2002は、サーバ 2004からネットワーク接続端末 2003を介して、端末個別 データー式を受信すると、各情報 (データ)を格納する (ステップ S2035)、具体的に は、カード 2002の秘密情報取得部 2024は、個別暗号化秘密情報を受信し、受信し た個別暗号化秘密情報を秘密情報蓄積部 2029へ格納する。正当性確認情報取得 部 2025は、正当性確認情報を受信すると、受信した正当性確認情報を正当性確認 情報格納部 2022へ格納する。更新プログラム取得部 2026は、更新プログラムを受 信すると、受信した更新プログラムを更新プログラム格納部 2023へ格納する。
[0171] カード 2002は、更新プログラムを端末 2001へ出力する(ステップ S2040)。
端末 2001は、更新プログラムをインストールする(ステップ S2045)。
カード 2002の正当性確認部 2027は、端末 2001から秘密情報 (デバイス鍵)出力 要求を受け取ると、端末 2001の正当性を判断する (ステップ S2050)。秘密情報出 力要求は、上記実施の形態における図 4にて示すステップ S0402に相当し、コンテ ンッ鍵復号プログラムの PCR値を含む。ここでは、カード 2002の正当性確認部 202 7は、サーバ 2004から受け取った最新の更新プログラムに対する正当性確認情報と
、端末 2001から受け取った秘密情報出力要求に含まれる PCR値との比較を行う。
[0172] 正当でないと判断する場合 (ステップ S2050における「NG」)、カード 2002は、更 新プログラムを端末 2001へ出力する (ステップ S 2055)。具体的には、正当性確認 部 2027は、 NG情報をプログラム出力部 2028へ出力する。プログラム出力部 2028 は、正当性確認部 2027から NG情報を受け取ると、端末 2001に対するコンテンツ鍵 復号プログラムの更新プログラムを更新プログラム格納部 2023から取得し、取得した 更新プログラムを端末 2001のプログラム更新部 2013へ出力する。なお、ここではコ ンテンッ鍵復号プログラムのみを更新対象としている力 端末 2001に搭載されるプロ グラム全体を更新対象としてもよい。以下でも、コンテンツ復号プログラムを更新対象 として説明をするが、プログラム全体を更新対象としてもょ ヽ。
[0173] 正当であると判断する場合 (ステップ S2050における「OK」)、カード 2002は個別 暗号化秘密情報を端末 2001へ出力する (ステップ S2060)。具体的には、正当性確 認部 2027の制御により秘密情報蓄積部 2029によって更新プログラムが正しくインス トールされたと確認され、秘密情報を出力可能である旨が通知されると、秘密情報提 供部 2020は端末 2001に対応する個別暗号ィ匕秘密情報を出力する。
[0174] 端末 2001のプログラム更新部 2013は、カード 2002から更新プログラムを受け取 ると、受け取った更新プログラムのインストールを行う(ステップ S2065)。具体的には 、プログラム更新部 2013は、カード 2002からコンテンツ鍵復号プログラムに対する 更新プログラムを受け取ると、受け取った更新プログラムを用いてコンテンツ鍵復号 プログラムを更新する。プログラム更新部 2013は、コンテンツ鍵復号プログラムの更 新後、ステップ S0408と同様に、システムのリセットを端末 2001のオペレーティング システムに依頼する。
[0175] 端末 2001の秘密情報復号部 2014は、個別暗号化秘密情報を、カード 2002から 受け取ると、個別暗号化秘密情報のインストールを行う(ステップ S2070)。具体的に は、秘密情報復号部 2014は、カード 2002から当該端末に対応する個別暗号ィ匕秘 密情報を取得する。秘密情報復号部 2014は、 ID格納部 2010から端末 IDを、シス テム LSIから端末共通鍵を、それぞれ取得する。秘密情報復号部 2014は、取得した 端末 IDと端末共通鍵とを用いて、サーバ 2004による暗号用変換値の算出方法と同
様の方法にて、復号用変換値を算出する。秘密情報復号部 2014は、算出した復号 用変換値を用いて、個別暗号化秘密情報を復号してデバイス鍵を生成し、現在記憶 して 、るデバイス鍵から、生成したデバイス鍵へと更新する。
[0176] 以降、例えば、端末 2001が図 4にて示すステップ S0403以降の動作を行い、カー ド 2002が図 10にて示す権利確認'鍵生成プログラムを実行する。
以下、各ステップが実行されるタイミングの一例を示す。
ステップ S2010の動作は、カード 2002が端末 2001に装着された場合に実行され る。
[0177] ステップ S2015力らステップ S2035までの動作は、カード 2002がネットワーク接続 端末 2003に装着された場合に実行される。
ステップ S2040力ら S2045までの動作は、サービスマンにより端末 2001のプログ ラムのアップデートを行う場合に実行される。
ステップ S2050以降の動作は、端末 2001の利用者によりコンテンツの再生の要求 があった場合に実行される。
[0178] (A— 1 6)その他の変形例
なお、本発明を上記第 1の変形例に基づいて説明してきたが、本発明は、上記第 1 の変形例に限定されないのは、もちろんである。以下のような場合も本発明に含まれ る。
(1)上記第 1の変形例において、サーバ 2004が管理している複数の秘密情報は、 平文 (暗号化前の状態)で管理するとしたが、これに限定されな!、。
[0179] サーバ 2004は、管理する複数の秘密情報それぞれを、予め個別暗号化された状 態で管理してもよい。
この場合、サーバ 2004は、複数の秘密情報それぞれを、異なる端末 IDを用いて、 上記第 1の変形例と同様の暗号化方法によって暗号化する。サーバ 2004は、生成 した複数の個別暗号ィ匕秘密情報を管理する場合には、暗号ィ匕に用いた端末 IDと対 応付けて管理する。サーバ 2004は、ネットワーク接続端末力も端末 IDを受け取ると、 受け取った端末 IDに対応する個別暗号ィ匕秘密情報を取得する。
[0180] (2)上記第 1の変形例において、サーバ 2004は、複数の秘密情報を予め記憶'管
理しているとした力 これに限定されない。
サーバ 2004は、ネットワーク接続端末力も端末 IDを受け取る度に、秘密情報を生 成してちょい。
(3)上記第 1の変形例において、デバイス鍵配布システム 2000は、図 18にて示す ステップ S2040力ら S2045により、サービスマンによる端末 2001の ンテンッ鍵復 号プログラムのアップデートを行うとした力 これに限定されな 、。
[0181] デバイス鍵配布システム 2000の動作において、ステップ S2040力ら S2045を行わ なくてもよい。
(4)上記第 1の変形例において、秘密情報の暗号化及び復号時には、端末 IDと端 末共通鍵とから生成された変換値 (暗号用変換値、復号用変換値)を用いたが、これ に限定されない。
[0182] 秘密情報の暗号化及び復号時には、端末 IDのみを鍵として用いてもよい。
(5)上記第 1の実施の形態において、変換値は、端末 IDと端末共通鍵とから生成さ れたが、これに限定されない。
変換値は、端末 IDに一意に紐づ 、て 、る値であってもよ 、。
(6)上記実施の形態において、カード 2002は、端末 2001の端末 ID2015そのも のを格納するとした力 これに限定されない。
[0183] (6— 1)カード 2002は、端末 ID (以下、第 1の端末 ID)に一方向性関数 (例えば、 S HA— 1)を施して得られる値 (以下、第 2の端末 IDという。)を格納してもよい。
この場合、第 1の端末 ID (端末 ID2015)から第 2の端末 IDへの変換は、カード 200 2にて行ってもよ!、し、端末 2001にて行ってもよ!、。
[0184] また、この場合、サーバ 2004は、図 19にて示す管理テーブル T2000を有している 管理テーブル T2000は、変換前端末 IDと変換後端末 IDとからなる組を 1個以上記 憶するための領域を有している。変換前端末 IDは、端末に対する端末 ID、つまり第 1の端末 IDを示し、変換後端末 IDは、端末 IDに一方向性関数 (例えば、 SHA— 1) を施して得られる第 2の端末 IDを示す。
[0185] カード 2002は、ネットワーク接続端末 2003を介してサーバ 2004へ第 2の端末 ID
を送信する。
サーバ 2004は、カード 2002からネットワーク接続端末 2003を介して、第 2の端末 I Dを受信すると、受信した第 2の端末 IDに対応する第 1の端末 IDを管理テーブル T2 000から取得する。サーバ 2004は、取得した第 1の端末 IDを用いて個別暗号ィ匕秘 密情報を生成する。
[0186] 例えば、サーノ 2004は、第 2の端末 ID「IDA—1」をカード 2002から受信すると、 第 2の端末 ID「IDA— 1」に対応する第 1の端末 ID「IDA」(つまり、端末 ID2015と同 一の ID)を取得し、取得した第 1の端末 ID「IDA」(端末 ID2015)を用いて個別暗号 化秘密情報を生成する。
(6 - 2)第 2の端末 IDを用いて個別暗号ィ匕秘密鍵を生成してもよ 、。
[0187] この場合、カード 2002は、上記と同様に、ネットワーク接続端末 2003を介してサー バ 2004へる第 2の端末 IDを送信する。
サーバ 2004は、カード 2002からネットワーク接続端末 2003を介して、第 2の端末 I Dを受信すると、受信した第 2の端末 IDを用いて個別暗号ィ匕秘密情報を生成する。
[0188] 端末 2001では、第 2の端末 IDを生成し、生成した第 2の端末 IDを用いて、個別暗 号化秘密鍵を復号する。
(7)上記第 1の変形例において、端末 2001は、非ネットワーク接続の端末であると したが、これに限定されない。
端末 2001は、ネットワーク接続可能な端末であるとしてもよい。つまり、端末 2001 は、上記第 1の変形例にて示すネットワーク接続端末 2003が行う動作をも兼ね備え ることで実現できる。
[0189] (8)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよ!/ヽ。
(A— 1 7)まとめ
通常、更新対象のプログラムは、機種ごとに共通である。したがって、上記実施の形 態の仕組みをデバイス鍵配布にそのまま適用すると、正当性確認手段による確認の みでは、クローン端末に対してもデバイス鍵を配布してしまい、クローン端末は配布さ れたデバイス鍵を使用することができる。ここで、クローン端末とは、正規の端末とは、 端末 IDのみが異なり、他の構成要素等は同一である不正な端末である。
[0190] し力しながら、上記第 1の変形例によると、送り込むデータ (ここでは、デバイス鍵)を 、端末 IDを用いて個別暗号ィ匕するので、カードがクローン端末に対して正当であると 判断し、デバイス鍵を配布しても、クローン端末では暗号ィ匕されたデバイス鍵を復号 することはできない。
また、プログラムの更新が確認された後でのみデバイス鍵を送り込むので、送り込ん だデバイス鍵が不正またはセキュリティホールのあるプログラムによって利用されるこ とがなぐデバイス鍵を安全に更新することができる。
[0191] (B— 1)第 2の変形例
ここでは、正当性確認の変形例について、上記第 1の変形例と異なる点を中心に説 明する。
以下、この場合のシステムの構成及び、各装置の構成について説明する。 デバイス鍵配布システム 2000aは、図 20にて示すように、端末 (証明装置) 2001a
、カード (検証装置) 2002a、ネットワーク接続端末 2003a及びサーバ 2004aから構 成されている。
[0192] 端末 2001aは、ネットワークとは非接続の端末であり、上記実施の形態にて示す端 末 2001と同様に、デバイス鍵と、暗号ィ匕されたコンテンツ鍵を復号するためのプログ ラム(以下、コンテンツ鍵復号プログラム)とを有している。
カード 2002aは、端末に装着されると、当該端末を識別するための端末 IDを取得 し、記憶する。カード 2002aは、第 1の変形例にて示すカード 2002と同様に、端末 2 00 laの端末 IDを予め記憶している。カード 2002aは、 CRL更新時にて、予め記憶 している端末 IDをネットワーク接続端末 2003aへ出力する。
[0193] ネットワーク接続端末 2003aは、端末 IDをサーバ 2004aへネットワークを介して送 信する。ネットワーク接続端末 2003aは、サーバ 2004aから、復号プログラムに対す る更新プログラム、正当性確認情報、及び送信した端末 IDにより個別暗号化された 個別暗号ィ匕秘密情報を受け取り、受け取った各情報をカード 2002aへ出力する。
[0194] サーバ 2004aは、端末 IDをネットワーク接続端末 2003aから受け取ると、更新プロ グラム、正当性確認情報、及び受信した端末 IDに基づく秘密情報を送信する。 ここで、正規のデバイス鍵の個別暗号ィ匕は、上記第 1の変形例と同様であるので、
ここでの説明は省略する。
(B— 1— 1)端末 2001a
端末 2001aは、図 20にて示すように、 ID格納部 2010a、プログラム格納部 201 la 、端末測定部 2012a、プログラム更新部 2013a、及び秘密情報復号部 2014aから 構成されている。
[0195] なお、端末 2001aは、第 1の変形例にて示す端末 2001と同様に、端末共通鍵を記 憶している。ここで、端末共通鍵は、耐タンパ性により秘匿性を有している。
(B- 1 - 1 - 1) ID格納部 2010a、プログラム格納部 201 la
ID格納部 2010aは、当該端末の端末 ID2015aを予め記憶している。
ここで、 ID格納部 2010aは、耐タンパ性を有しており、端末 ID2015aの改竄はでき ない。
[0196] プログラム格納部 201 laは、上記第 1の変形例と同様であるので、ここでの説明は 省略する。
(B— 1 1 2)端末測定部 2012a
端末測定部 2012aは、上記実施の形態におけるセキュアモジュール 0707、および ブートコード 0703、オペレーティングシステム 0709、再生制御プログラム 0711のセ キュアモジュール 0707制御部分に相当する。
[0197] 端末測定部 2012aは、先ず、上記実施の形態と同様に、コンテンツ鍵復号プロダラ ムの PCR値を測定 (算出)する。次に、端末測定部 2012aは、 ID格納部 2010aに格 納されている端末 ID2015aと、算出した PCR値とに対して、 PCR値拡張コマンドを 施して、コンテンツ鍵復号プログラムの PCR値に端末 ID2015aを反映した PCR値 ( 以下、 ID付 PCR値という。)を生成する。なお、ここではコンテンツ鍵復号プログラム の PCR値を測定した後に端末 IDを反映している力 端末 IDを反映した後にコンテン ッ鍵復号プログラムを反映してもよ 、。
[0198] 端末測定部 2012aは、生成した ID付 PCR値をカード 2002aへ出力する。
なお、 PCR値拡張コマンドについては、上記実施の形態にて説明しているので、こ こでの説明は省略する。
また、測定のタイミング、及び出力のタイミングのそれぞれは、上記第 1の変形例と
同様である。
[0199] (B- 1 - 1 - 3)プログラム更新部 2013a
プログラム更新部 2013aは、上記第 1の変形例にて示すプログラム更新部 2013と 同様であるので、ここでの説明は省略する。
(B— 1 1 4)秘密情報復号部 2014a
秘密情報復号部 2014aは、上記第 1の変形例にて示す秘密情報復号部 2014と同 様であるので、ここでの説明は省略する。
[0200] (B— 1— 2)カード 2002a
カード 2002aは、図 20にて示すように、秘密情報提供部 2020a、端末 ID格納部 2 021a,正当性確認情報格納部 2022a、更新プログラム格納部 2023a、秘密情報取 得部 2024a、正当性確認情報取得部 2025a、更新プログラム取得部 2026a、及び 正当性確認部 2027aから構成されている。
[0201] (B— 1 2— 1)秘密情報提供部 2020a
秘密情報提供部 2020aは、図 20にて示すように、秘密情報蓄積部 2029a及びス イッチ 2030aを有して!/、る。
秘密情報蓄積部 2029a及びスィッチ 2030aのそれぞれは、上記第 1の変形例にて 示す秘密情報蓄積部 2029及びスィッチ 2030のそれぞれと同様であるので、ここで の説明は省略する。
[0202] (B— 1— 2— 2)端末 ID格納部 2021a
端末 ID格納部 2021aは、上記第 1の変形例にて示す端末 ID格納部 2021と同様 であるので、ここでの説明は省略する。
(B— 1— 2— 3)正当性確認情報格納部 2022a
正当性確認情報格納部 2022aは、上記実施の形態における CRLデータベース 08 05の正当な PCR値の格納部位に相当する。
[0203] 正当性確認情報格納部 2022aは、ネットワーク接続端末 2003aを介してサーバ 20 04aから受け取った正当性確認情報 (正規の ID付 PCR値)を、端末 ID格納部 2021 aにて記憶されている端末 IDと対応付けて蓄積している。ここでは、正当性確認情報 格納部 2022aは、コンテンッ鍵復号プログラム及び端末 ID2015aに対する正当性
確認情報(正規の ID付 PCR値)を、端末 2001aの端末 ID2015aと対応付けて記憶 しているちのとする。
[0204] (B- 1 - 2-4)更新プログラム格納部 2023a
更新プログラム格納部 2023aは、上記実施の形態における CRLデータベース 080 5の更新プログラムの格納部位に相当する。
更新プログラム格納部 2023aは、上記第 1の変形例にて示す更新プログラム格納 部 2023と同様であるので、ここでの説明は省略する。
[0205] なお、上記にて示す CRLデータベース 0805は、本変形例にて示す端末 ID格納 部 2021a、正当性確認情報格納部 2022a及び更新プログラム格納部 2023aから構 成されていることが分かる。
(B- 1 - 2- 5)秘密情報取得部 2024a
秘密情報取得部 2024aは、上記第 1の変形例にて示す秘密情報取得部 2024と同 様であるので、ここでの説明は省略する。
[0206] (B- 1 2— 6)正当性確認情報取得部 2025a
正当性確認情報取得部 2025aは、上記実施の形態にて示す図 9における CRL更 新処理、特に CRLデータベースの正規の PCR値の更新に相当する処理を行う。 正当性確認情報取得部 2025aは、ネットワーク接続端末 2003aを介してサーバ 20 04aから正当性確認情報 (正規の ID付 PCR値)を受け取ると、受け取った正当性確 認情報を正当性確認情報格納部 2022aへ格納する。
[0207] (B- 1 - 2- 7)更新プログラム取得部 2026a
更新プログラム取得部 2026aは、上記第 1の変形例にて示す更新プログラム取得 部 2026と同様であるので、ここでの説明は省略する。
(B- 1— 2— 8)正当性確認部 2027a
正当性確認部 2027aは、上記実施の形態にて示す図 10における S1003の処理 に相当する処理を行う。
[0208] 正当性確認部 2027aは、端末 2001aからコンテンツ鍵復号プログラムと端末 ID20 15aに対する ID付 PCR値を受け取ると、端末 2001aと対応付けられたコンテンツ鍵 復号プログラムと端末 ID2015aに対する正当性確認情報 (正規の ID付 PCR値)を、
正当性確認情報格納部 2022aから取得する。
正当性確認部 2027aは、受け取った ID付 PCR値と正当性確認情報とがー致する か否かを判断する。
[0209] 以下、判断結果に応じた動作は、第 1の変形例にて示す正当性確認部 2027の判 断結果に応じた動作と同様であるので、ここでの説明は省略する。
なお、正当性確認部 2027aをステップ S1002及び S1003に相当するとしてもよい ことも第 1の変形例と同様である。
(B— 1— 2— 9)プログラム出力部 2028a
プログラム出力部 2028aは、上記第 1の変形例にて示すプログラム出力部 2028と 同様であるので、ここでの説明は省略する。
[0210] (B— 1— 3)ネットワーク接続端末 2003a
ネットワーク接続端末 2003aは、自身に装着されたカード 2002aの端末 ID格納部 2021aから端末 2001aの端末 IDを取得すると、取得した端末 IDを、ネットワークを介 してサーバ 2004aへ出力する。
その後、ネットワーク接続端末 2003aは、サーバ 2004aからネットワークを介して、 出力した端末 IDと対応付けられた更新プログラム、正当性確認情報 (ID付 PCR値) 、及び個別暗号化秘密情報を受け取り、受け取った各情報をカード 2002aへ格納す る。
[0211] (B— 1—4)サーノ 2004a
サーバ 2004aは、上記実施の形態と同様に、 CRLデータベースを有しており、端 末毎に配布すべき更新プログラム及び正規の PCR値 (正当性確認情報)を管理して いる。なお、更新プログラム及び正当性確認情報は、第 1の変形例と同様に端末の 機種毎に異なるとする。
[0212] また、サーバ 2004aは、端末共通鍵を予め記憶し、管理して!/、る。
サーバ 2004aは、複数の秘密情報 (デバイス鍵)を予め生成しており、生成した秘 密情報を記憶'管理している。サーバ 2004aは、端末に一度配布した秘密情報を再 度配布しないように管理している。なお、サーバ 2004aが管理している複数の秘密情 報それぞれは、互いに異なる。さらに、サーバ 2004aは、管理している全ての秘密情
報を配布した場合、これまでに管理して!/、た複数の秘密情報それぞれとは異なる複 数の秘密情報を生成する。上述したように、再度生成された複数の秘密情報それぞ れについても、互いに異なる。
[0213] サーノ 2004aは、ネットワーク接続端末 2003aからネットワークを介して、端末 IDを 受け取ると、受け取った端末 IDから機種を特定し、特定した機種に対応するコンテン ッ鍵復号プログラムに対する更新プログラム、その PCR値、及び端末共通鍵を取得 する。
サーバ 2004aは、ネットワーク接続端末 2003aから受け取った端末 IDと、取得した PCR値とに対して、 PCR値拡張コマンドを施して、コンテンツ鍵復号プログラムの PC R値に端末 IDが反映された正当性確認情報 (正規の ID付 PCR値)を生成する。
[0214] サーバ 2004aは、上記第 1の変形例にて示すサーバ 2004と同様の方法により、個 別暗号化秘密情報を生成する。
サーバ 2004aは、端末個別データー式 (生成した個別暗号化秘密情報と、取得し た更新プログラム及び正当性確認情報 (正規の ID付 PCR値) )を、ネットワークを介し てネットワーク接続端末 2003aへ出力する。
[0215] (B- 1 - 5)デバイス鍵配布システム 2000aの動作
デバイス鍵配布システム 2000aの動作は、図 18にて示すデバイス鍵配布システム 2000の動作と比べて、正当性確認情報のデータの内容のみが異なり、システムの動 作については、同一の流れで実現できるので、ここでの説明は省略する。
(B— 1 6)その他の変形例
なお、本発明を上記第 2の変形例に基づいて説明してきたが、本発明は、上記第 2 の変形例に限定されないのは、もちろんである。以下のような場合も本発明に含まれ る。
[0216] (1)上記第 2の変形例にぉ 、て、 ID付 PCR値は、コンテンツ鍵復号プログラムの P CR値と、端末 ID2015aとに対して、 PCR値拡張コマンドを施すことで生成されたが 、これに限定されない。
ID付 PCR値は、コンテンツ鍵復号プログラムの PCR値に、端末 ID2015aに一方 向性関数を施して得られたハッシュ値を加算することで、生成されてもよ!、。
[0217] (2)上記第 2の変形例において、端末 2001aは、非ネットワーク接続の端末である としたが、これに限定されない。
端末 2001aは、ネットワーク接続可能な端末であるとしてもよい。つまり、端末 2001 aは、上記第 2の変形例にて示すネットワーク接続端末 2003aが行う動作をも兼ね備 免ることで実現できる。
[0218] (3)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよ!/ヽ。
(B— 1 7)まとめ
上記第 2の変形例では、プログラムの PCR値と端末 IDとを用いて、 ID付 PCR値を 算出し、算出した PCR値を用いて端末の正当性を確認するので、他の端末 IDを詐 取した不正な端末は、デバイス鍵を入手することができな!/、。
[0219] これにより、クローン端末の生成を防止することができる。
また、第 1の変形例と同様、プログラムの更新が確認された後でのみデバイス鍵を 送り込むので、デバイス鍵を安全に更新することができる。
(C 1)第 3の変形例
上記第 2の実施の形態では、端末 IDを反映した PCR値をサーバで生成したが、こ れに限定されない。
[0220] 端末 IDを反映した PCR値は、カードで生成してもよい。
以下、この場合のこの場合のシステムの構成及び、各装置の構成について、上記 第 1及び第 2の変形例と異なる点を中心に説明する。
デバイス鍵配布システム 2000bは、図 21にて示すように、端末 (証明装置) 2001b 、カード (検証装置) 2002b、ネットワーク接続端末 2003b及びサーバ 2004bから構 成されている。
[0221] 端末 2001bは、ネットワークとは非接続の端末であり、上記実施の形態にて示す端 末 2001と同様に、デバイス鍵と、暗号ィ匕されたコンテンツ鍵を復号するためのプログ ラム(以下、コンテンツ鍵復号プログラム)とを有している。
端末 2001bは、カード 2002bから端末 2001bの端末 IDに関連づけられた値で暗 号化されたデバイス鍵 (以下、個別暗号ィ匕デバイス鍵)を受け取り、受け取った個別 暗号化デバイス鍵を復号することにより、当該端末に対応するデバイス鍵を取得する
[0222] カード 2002bは、端末に装着されると、当該端末を識別するための端末 IDを取得 し、記憶する。カード 2002bは、第 2の変形例にて示すカード 2002aと同様に、端末 2001bの端末 IDを予め記憶している。カード 2002bは、 CRL更新時にて、予め記 憶している端末 IDをネットワーク接続端末 2003bへ出力する。
ネットワーク接続端末 2003bは、端末 IDをサーバ 2004bへネットワークを介して送 信する。ネットワーク接続端末 2003bは、サーバ 2004bから、復号プログラムに対す る更新プログラム、正当性確認情報、及び送信した端末 IDにより個別暗号化された 個別暗号ィ匕秘密情報を受け取り、受け取った各情報をカード 2002bへ出力する。
[0223] サーバ 2004bは、端末 IDをネットワーク接続端末 2003b力も受け取ると、更新プロ グラム、正当性確認情報、及び受信した端末 IDに基づく秘密情報を送信する。 ここで、正規のデバイス鍵の個別暗号ィ匕は、上記第 1の変形例と同様であるので、 ここでの説明は省略する。つまり、正規のデバイス鍵は、端末 IDと端末共通鍵とから 変換された変換値を秘密鍵として、暗号化される。
[0224] (C 1 1)端末 2001b
端末 2001bは、図 21にて示すように、 ID格納部 2010b、プログラム格納部 201 lb 、端末測定部 2012b、プログラム更新部 2013b、及び秘密情報復号部 2014bから 構成されている。
なお、端末 2001bは、第 1の変形例にて示す端末 2001と同様に、端末共通鍵を 記憶している。ここで、端末共通鍵は、耐タンパ性により秘匿性を有している。
[0225] (C— 1— 1— 1) ID格納部 2010b、プログラム格納部 201 lb
ID格納部 2010bは、当該端末の端末 ID2015bを予め記憶して 、る。 ここで、 ID格納部 2010bは、耐タンパ性を有しており、端末 ID2015bの改竄はで きない。
プログラム格納部 201 lbは、上記第 1の変形例と同様であるので、ここでの説明は 省略する。
[0226] (C 1 1 2)端末測定部 2012b
端末測定部 2012bは、上記実施の形態におけるセキュアモジュール 0707、およ
びブートコード 0703、オペレーティングシステム 0709、再生制御プログラム 0711の セキュアモジュール 0707制御部分に相当する。
端末測定部 2012bは、上記第 2の変形例と同様の動作にて ID付 PCR値を生成す る。なお、詳細な動作については、上記第 2の変形例にて示しているので、ここでの 説明は省略する。
[0227] (C 1 1 3)プログラム更新部 2013b
プログラム更新部 2013bは、上記第 1の変形例にて示すプログラム更新部 2013と 同様であるので、ここでの説明は省略する。
(C 1 1 4)秘密情報復号部 2014b
秘密情報復号部 2014bは、プログラム格納部 201 lbにて格納されて ヽる秘密情報 復号プログラムが起動され、実行されることで実現される。
[0228] 秘密情報復号部 2014bは、カード 2002bから個別暗号ィ匕デバイス鍵を取得する。
秘密情報復号部 2014bは、 ID格納部 2010bから端末 IDを、システム LSIから端末 共通鍵を、それぞれ取得する。
秘密情報復号部 2014bは、取得した端末 ID及び端末共通鍵を用いて、個別暗号 化デバイス鍵を復号し、デバイス鍵を生成する。秘密情報復号部 2014bは、現在記 憶して!/ヽるデバイス鍵から、生成したデバイス鍵へと更新する。
[0229] (C— 1— 2)カード 2002b
カード 2002bは、図 21にて示すように、秘密情報提供部 2020b、端末 ID格納部 2 021b、正当性確認情報格納部 2022b、更新プログラム格納部 2023b、秘密情報取 得部 2024b、正当性確認情報取得部 2025b、更新プログラム取得部 2026b、正当 性確認部 2027b、確認情報個別化部 2040b、デバイス鍵個別化部 2041b、カード I D格納部 2042b、及び端末共通鍵格納部 2043bから構成されて ヽる。
[0230] (C 1 2— 1)カード ID格納部 2042b
カード ID格納部 2042bは、カード 2002bに固有のカード IDを格納している。
ここで、カード ID格納部 2042bは、耐タンパ性を有しており、カード IDの改竄はで きない。
[0231] (C- 1 - 2- 2)秘密情報提供部 2020b
秘密情報提供部 2020bは、図 21にて示すように、秘密情報蓄積部 2029b及びス イッチ 2030bを有して!/、る。
秘密情報蓄積部 2029bは、カード ID格納部 2042bにて格納されているカード ID にて暗号化された複数のデバイス鍵 (以下、秘密情報、若しくは配布用暗号ィ匕デバ イス鍵という。)を格納している。
[0232] スィッチ 2030bは、上記第 1の変形例にて示すスィッチ 2030と同様であるので、こ こでの説明は省略する。
秘密情報提供部 2020bは、過去に、端末へ出力した秘密情報を、再度出力しない ように管理している。
例えば、複数の秘密情報それぞれに、フラグを対応付ける。具体的には、秘密情報 提供部 2020bは、未出力の秘密情報には値「0」を、出力済の秘密情報には値「1」 を、それぞれ対応付ける。
[0233] また、配布用暗号ィ匕デバイス鍵は、カード IDを秘密鍵とする秘密鍵暗号化方式に よって生成される。
(C 1 2— 3)端末 ID格納部 2021b、端末共通鍵格納部 2043b
端末 ID格納部 202 lbは、上記第 1の変形例にて示す端末 ID格納部 2021と同様 であるので、ここでの説明は省略する。
[0234] 端末共通鍵格納部 2043bは、 1以上の端末共通鍵それぞれを、当該端末共通鍵 が格納される端末の機種と対応付けて格納している。なお、ここでは、端末 2001bに 対応する端末共通鍵を格納して!/ヽるものとする。
ここで、端末共通鍵格納部 2043bは、耐タンパ性を有しており、端末共通鍵の改竄 はできない。
[0235] (C- 1 2— 4)正当性確認情報格納部 2022b
正当性確認情報格納部 2022bは、上記実施の形態における CRLデータベース 0 805の正当な PCR値の格納部位に相当する。
正当性確認情報格納部 2022bは、サーバ 2004bにて管理されているコンテンツ鍵 復号プログラムに対する正当性確認情報 (正規の PCR値)と、端末 ID2015bとから 生成された正規の ID付 PCR値 (以下、個別化確認情報ともいう。)を、端末 ID格納
部 2021bにて記憶されている端末 IDと対応付けて蓄積している。ここでは、正当性 確認情報格納部 2022bは、コンテンツ鍵復号プログラム及び端末 ID2015bに対す る個別化確認情報 (正規の ID付 PCR値)を、端末 200 lbの端末 ID2015bと対応付 けて記'隐して ヽるものとする。
[0236] (C 1 2— 5)更新プログラム格納部 2023b
更新プログラム格納部 2023bは、上記実施の形態における CRLデータベース 080 5の更新プログラムの格納部位に相当する。
更新プログラム格納部 2023bは、上記第 1の変形例にて示す更新プログラム格納 部 2023と同様であるので、ここでの説明は省略する。
[0237] なお、上記にて示す CRLデータベース 0805は、本変形例にて示す端末 ID格納 部 2021b、正当性確認情報格納部 2022b及び更新プログラム格納部 2023bから構 成されていることが分かる。
(C- 1 - 2-6)秘密情報取得部 2024b
秘密情報取得部 2024bは、複数の配布用暗号化デバイス鍵 (秘密情報)を、サー バ 2004bからネットワーク接続端末 2003bを介して受け取ると、受け取った複数の配 布用暗号化デバイス鍵 (秘密情報)を秘密情報蓄積部 2029bへ格納する。
[0238] (C- 1— 2— 7)正当性確認情報取得部 2025b
正当性確認情報取得部 2025bは、上記実施の形態にて示す図 9における CRL更 新処理、特に CRLデータベースの正規の PCR値の更新に相当する。
正当性確認情報取得部 2025bは、ネットワーク接続端末 2003bを介してサーバ 20 04bから正当性確認情報 (正規の PCR値)を受け取ると、受け取った正当性確認情 報を確認情報個別化部 2040bへ出力する。
[0239] (C- 1 - 2-8)更新プログラム取得部 2026b
更新プログラム取得部 2026bは、上記第 1の変形例にて示す更新プログラム取得 部 2026と同様であるので、ここでの説明は省略する。
(C 1 2— 9)正当性確認部 2027b
正当性確認部 2027bは、上記実施の形態にて示す図 10における S1003に相当 する処理を行う。
[0240] 正当性確認部 2027bは、端末 2001bからコンテンツ鍵復号プログラムと端末 ID20 15bとに対する ID付 PCR値を受け取ると、端末 2001bと対応付けられたコンテンツ 鍵復号プログラムと端末 ID2015bとに対する正当性確認情報 (正規の ID付 PCR値) を、正当性確認情報格納部 2022bから取得する。
正当性確認部 2027bは、受け取った ID付 PCR値と正当性確認情報とがー致する か否かを判断する。
[0241] 一致すると判断する場合には、正当性確認部 2027bは、端末と秘密情報蓄積部 2 029bとを接続するようにスィッチ 2030bを閉じ、一致した旨を示す OK情報をデバイ ス鍵個別化部 2041bへ出力する。
一致しないと判断する場合には、正当性確認部 2027bは、一致しない旨を示す N G情報をプログラム出力部 2028bへ出力する。
[0242] なお、本変形例では、正当性確認部 2027bはステップ S1003のみに相当するとし た力 これに限定されない。
なお、第 1の変形例と同様、正当性確認部 2027bをステップ S1002及び S1003に 相当するとしてもよい。
(C— 1 2— 10)プログラム出力部 2028b
プログラム出力部 2028bは、上記第 1の変形例にて示すプログラム出力部 2028と 同様であるので、ここでの説明は省略する。
[0243] (C- 1 - 2- 11)確認情報個別化部 2040b
確認情報個別化部 2040bは、正当性確認情報取得部 2025bから正当性確認情 報(正規の PCR値)を受け取ると、端末 ID格納部 2021bから端末 ID2015bを取得 する。ここで、サーバ 2004bから受け取った正規の PCR値は、まだ端末 IDに関連付 けられていない。
[0244] 確認情報個別化部 2040bは、正当性確認情報と、端末 ID2015bとから PCR値拡 張コマンドと同等の処理を施して、コンテンツ鍵復号プログラムの PCR値に端末 IDが 反映された個別化確認情報 (正規の ID付 PCR値)を生成する。
確認情報個別化部 2040bは、生成した個別化確認情報を正当性確認情報格納部 2022bへ格納する。
[0245] (C— 1— 2— 12)デバイス鍵個別化部 204 lb
デバイス鍵個別化部 204 lbは、正当性確認部 2027bから OK情報 (正当性が確認 された旨を示す)を受け取ると、端末 ID格納部 2021bから端末 ID2015bを、秘密情 報蓄積部 2029bからフラグの値力「0」である 1個の配布用暗号ィ匕デバイス鍵 (秘密 情報)を、カード ID格納部 2042bからカード IDをそれぞれ取得する。
[0246] デバイス鍵個別化部 204 lbは、取得した 1個の配布用暗号ィ匕デバイス鍵を、カード IDを用いて復号してデバイス鍵を生成する。
デバイス鍵個別化部 204 lbは、予めカード 2002bに格納してある端末共通鍵 (端 末共通鍵格納部 2043bにて格納)と端末 ID2015b (端末 ID格納部 2021bにて格納 )を用いて上記実施の形態にて示す図 17における変換方式で生成した値を秘密鍵 として秘密暗号方式によりデバイス鍵を暗号ィ匕して、個別暗号ィ匕デバイス鍵を生成す る。
[0247] デバイス鍵個別化部 204 lbは、生成した個別暗号ィ匕デバイス鍵を端末 2001bへ 出力するともに、端末 2001bのオペレーティングシステムに対して秘密情報復号プロ グラムの起動を要求する。
(C 1 3)ネットワーク接続端末 2003b
ネットワーク接続端末 2003bは、自身に装着されたカード 2002bの端末 ID格納部 2021aから端末 2001aの端末 IDを、カード ID格納部 2042bからカード IDをそれぞ れ取得すると、取得した端末 ID及びカード IDを、ネットワークを介してサーバ 2004b へ出力する。この時、カード ID格納部 2042bでは、カード 2002bとサーノ 2004bと の通信路でカード IDの秘匿性が損なわれないようカード IDを暗号ィ匕した上で出力さ れる。具体的には、公知の安全な通信路を構築する方法等により、サーバ 2004bと 共通の鍵で暗号化した上で出力する。
[0248] その後、ネットワーク接続端末 2003bは、サーバ 2004bからネットワークを介して、 出力した端末 IDと対応付けられた更新プログラムと、その正当性確認情報 (PCR値) と、複数の秘密情報 (配布用暗号ィ匕デバイス鍵)とを受け取り、受け取った各情報を カード 2002bへ格納する。
(C— 1—4)サーノ 2004b
サーバ 2004bは、上記実施の形態と同様に、 CRLデータベースを有しており、端 末毎に配布すべき更新プログラム及び正規の PCR値 (正当性確認情報)を管理して いる。なお、更新プログラム及び正当性確認情報は、端末の機種毎に異なるとする。
[0249] サーバ 2004bは、複数のデバイス鍵を予め生成しており、生成した秘密情報を記 憶'管理している。サーバ 2004bは、端末に一度配布した秘密情報を再度配布しな いように管理している。なお、サーバ 2004bが管理している複数のデバイス鍵それぞ れは、互いに異なる。さらに、サーバ 2004bは、管理している全ての秘密情報を配布 した場合、これまでに管理して!/、た複数のデバイス鍵それぞれとは異なる複数のデ バイス鍵を生成する。上述したように、再度生成された複数のデバイス鍵それぞれに ついても、互いに異なる。
[0250] サーバ 2004bは、ネットワーク接続端末 2003bからネットワークを介して、端末 ID 及びカード IDを受け取ると、受け取った端末 ID力 機種を特定し、特定した機種に 対応するコンテンツ鍵復号プログラムに対する更新プログラム、及びその PCR値を取 得する。
サーバ 2004bは、管理して 、る複数のデバイス鍵のうち所定数(2個以上)のデバ イス鍵を取得する。
[0251] サーノ 2004bは、取得した所定数のデバイス鍵それぞれを、カード 2002b力も安 全な通信路を経由してカード IDを秘密鍵とする秘密鍵暗号ィ匕方式により暗号ィ匕して 、所定数の配布用暗号ィ匕デバイス鍵 (秘密情報)を生成する。
サーバ 2004bは、端末個別データー式 (生成した複数の秘密情報と、取得した更 新プログラム及びその正当性確認情報 (正規の PCR値) )を、ネットワークを介してネ ットワーク接続端末 2003bへ出力する。
[0252] (C 1 5)デバイス鍵配布システム 2000bの動作
デバイス鍵配布システム 2000bの動作について、図 22にて示す流れ図を用いて 説明する。
カード 2002bは、端末 2001bに装着されると、端末 2001bの端末 IDを取得し、取 得した端末 ID2015bを端末 ID格納部 202 lbに格納する(ステップ S 2100)。
[0253] カード 2002bは、ネットワーク接続端末 2003bに装着され、且つ CRLデータの更
新時において、カード ID格納部 2042b力もカード IDを取得し、取得したカード IDと、 端末 ID格納部 2021bに格納された端末 2001bの端末 ID2015bとを、ネットワーク 接続端末 2003bを介してサーバ 2004bへ送信する (ステップ S2105)。
[0254] サーノ 2004bは、カード 2002bからネットワーク接続端末 2003bを介して、カード 2 002bのカード IDと、端末 2001bの端末 IDとを受信すると、受信した端末 IDから機 種を特定し、特定した機種に対応する機種共通情報 (更新プログラム、及びその正 当性確認情報 (PCR値) )を取得する (ステップ S2110)。
サーバ 2004bは、管理して 、る複数のデバイス鍵のうち所定数(2個以上)のデバ イス鍵を取得し、取得した所定数のデバイス鍵それぞれを、受信したカード IDを秘密 鍵とする秘密鍵暗号化方式により暗号化して、所定数の秘密情報 (配布用暗号化デ バイス鍵)を生成する (ステップ S2115)。
[0255] サーバ 2004bは、端末個別データー式 (生成した複数の秘密情報 (配布用暗号ィ匕 デバイス鍵)と、取得した更新プログラム及びその正当性確認情報)を、ネットワークを 介してネットワーク接続端末 2003bへ出力する (ステップ S2120)。
カード 2002bは、サーバ 2004bからネットワーク接続端末 2003bを介して、端末個 別データー式を受信すると、各情報 (データ)を格納する (ステップ S2125)、具体的 には、カード 2002bの秘密情報取得部 2024bは、複数の秘密情報 (配布用暗号ィ匕 デバイス鍵)を受信し、受信した複数の秘密情報を秘密情報蓄積部 2029bへ格納す る。正当性確認情報取得部 2025bは、正当性確認情報を受信すると、受信した正当 性確認情報を正当性確認情報格納部 2022bへ格納する。更新プログラム取得部 20 26bは、更新プログラムを受信すると、受信した更新プログラムを更新プログラム格納 部 2023bへ格納する。
[0256] カード 2002bは、更新プログラムを端末 2001bへ出力する(ステップ S2130)。
端末 2001bは、更新プログラムをインストールする(ステップ S2135)。
カード 2002bの正当性確認部 2027bは、秘密情報 (デバイス鍵)出力要求を受け 取ると、端末 2001bの正当性を判断する (ステップ S2140)。秘密情報出力要求は、 上記実施の形態における図 4にて示すステップ S0402に相当し、コンテンツ鍵復号 プログラムの ID付 PCR値を含む。ここでは、カード 2002bの正当性確認部 2027bは
、コンテンツ鍵復号プログラムに対する正当性確認情報と、受け取った秘密情報出力 要求に含まれる ID付 PCR値との比較を行う。
[0257] 正当でないと判断する場合 (ステップ S2140における「NG」)、カード 2002bは、更 新プログラムを端末 2001bへ出力する (ステップ S2145)。具体的には、正当性確認 部 2027bは、 NG情報をプログラム出力部 2028bへ出力する。プログラム出力部 20 28bは、正当性確認部 2027bから NG情報を受け取ると、端末 2001bに対するコン テンッ鍵復号プログラムの更新プログラムを更新プログラム格納部 2023bから取得し 、取得した更新プログラムを端末 2001bのプログラム更新部 2013bへ出力する。
[0258] 正当であると判断する場合 (ステップ S2140における「O :」)、カード 2002bは、個 別暗号ィ匕デバイス鍵を生成し、生成した個別暗号ィ匕デバイス鍵を端末 2001bへ出 力する (ステップ S2150)。具体的には、正当性確認部 2027bは、 OK情報をデバイ ス鍵個別化部 2041bへ出力する。デバイス鍵個別化部 2041bは、正当性確認部 20 27bから OK情報を受け取ると、端末 ID格納部 2021bから端末 ID2015bを、秘密情 報蓄積部 2029bからフラグの値力 「0」である 1個の配布用暗号ィ匕デバイス鍵 (秘密 情報)を、カード ID格納部 2042bからカード IDをそれぞれ取得する。デバイス鍵個 別化部 2041bは、取得した 1個の配布用暗号ィ匕デバイス鍵を、カード IDを用いて復 号してデバイス鍵を生成する。デバイス鍵個別化部 2041bは、予めカード 2002bに 格納してある端末共通鍵と端末 ID2015bを用いて上記実施の形態にて示す図 17 における変換方式で生成した値を秘密鍵として秘密暗号方式によりデバイス鍵を喑 号化して、個別暗号ィ匕デバイス鍵を生成する。デバイス鍵個別化部 2041bは、生成 した個別暗号ィ匕デバイス鍵を端末 2001bへ出力する。
[0259] 端末 2001bのプログラム更新部 2013bは、カード 2002bから更新プログラムを受 け取ると、受け取った更新プログラムのインストールを行う(ステップ S2155)。具体的 には、プログラム更新部 2013bは、カード 2002bからコンテンツ鍵復号プログラムに 対する更新プログラムを受け取ると、受け取った更新プログラムを用いてコンテンツ鍵 復号プログラムを更新する。プログラム更新部 2013bは、復号プログラムの更新後、 ステップ S0408と同様に、システムのリセットを端末 2001bのオペレーティングシステ ムに依頼する。
[0260] 端末 2001bの秘密情報復号部 2014bは、個別暗号化秘密情報を、カード 2002b 力も受け取ると、個別暗号ィ匕デバイス鍵のインストールを行う(ステップ S2160)。具 体的には、秘密情報復号部 2014bは、カード 2002bから当該端末に対応する個別 暗号ィ匕デバイス鍵を、 ID格納部 2010bから端末 IDをそれぞれ取得する。秘密情報 復号部 2014bは、取得した端末 IDと端末共通鍵を用いて、個別暗号化デバイス鍵 を復号し、デバイス鍵を生成する。秘密情報復号部 2014bは、現在記憶しているデ バイス鍵から、生成したデバイス鍵へと更新する。
[0261] 以降、例えば、端末 2001bが図 4にて示すステップ S0403以降の動作を行い、力 ード 2002bが図 10にて示す権利確認'鍵生成プログラムを実行する。
以下、各ステップが実行されるタイミングの一例を示す。
ステップ S2010の動作は、カード 2002bが端末 2001bに装着された場合に実行さ れる。
[0262] ステップ S2015力らステップ S2035までの動作は、カード 2002bがネットワーク接 続端末 2003bに装着された場合に実行される。
ステップ S2040力ら S2045までの動作 ίま、サービスマンにより端末 2001bのプログ ラムのアップデートを行う場合に実行される。
ステップ S2050以降の動作は、端末 2001bの利用者によりコンテンツの再生の要 求があった場合に実行される。
[0263] (C 1 6)その他の変形例
なお、本発明を上記第 3の変形例に基づいて説明してきたが、本発明は、上記第 3 の変形例に限定されないのは、もちろんである。以下のような場合も本発明に含まれ る。
(1)上記第 3の実施の形態において、サーバ 2004bが、取得するデバイス鍵の個 数 (所定数)は 2個以上としたが、これに限定されない。
[0264] サーバ 2004b力 取得するデバイス鍵の個数は 1個以上であればよい。
(2)上記第 3の実施の形態において、サーバ 2004bが、取得するデバイス鍵の個 数は予め決められた個数 (所定数)としたが、これに限定されない。
サーバ 2004bが、取得するデバイス鍵の個数は、ネットワーク接続端末にて情報を
送信する際に、ユーザが指定してもよい。
[0265] この場合、ネットワーク接続端末 2003bは、ユーザから指定された取得個数を、サ ーバ 2004bへ送信する。サーバ 2004bは、ネットワーク接続端末 2003b力も取得個 数を受信すると、受信した取得個数分のデバイス鍵を取得する。
(3)上記第 3の実施の形態において、秘密情報蓄積部 2029bは、複数の配布用暗 号ィ匕デバイス鍵を格納するとしたが、これに限定されな ヽ。
[0266] 秘密情報蓄積部 2029bは、復号された複数のデバイス鍵を格納してもよい。
この場合におけるカード 2002bの動作について、以下に説明する。
秘密情報取得部 2024bは、サーバ 2004bから複数の配布用暗号ィ匕デバイス鍵を 受け取ると、カード ID格納部 2042b力もカード IDを取得する。
秘密情報取得部 2024bは、取得したカード IDを用いて、配布用暗号ィ匕デバイス鍵 それぞれを復号して、デバイス鍵を生成する。秘密情報取得部 2024bは、この復号 の動作を受信した配布用暗号ィ匕デバイス鍵の個数分行 ヽ、受信した配布用暗号ィ匕 デバイス鍵の個数と同数のデバイス鍵を生成する。
[0267] 秘密情報取得部 2024bは、生成した複数のデバイス鍵を秘密情報蓄積部 2029b へ格納する。
(4)上記第 3の変形例において、端末 2001bは、非ネットワーク接続の端末である としたが、これに限定されない。
端末 2001bは、ネットワーク接続可能な端末であるとしてもよい。つまり、端末 2001 bは、上記第 3の変形例にて示すネットワーク接続端末 2003bが行う動作をも兼ね備 免ることで実現できる。
[0268] (5)上記第 3の変形例において、デバイス鍵配布システム 2000bは、図 22にて示 すステップ S2130力ら S2135により、サービスマンによる端末 2001bの ンテンッ鍵 復号プログラムのアップデートを行うとした力 これに限定されな 、。
デノイス鍵酉己布システム 2000bの動作にお!ヽて、ステップ S2130力ら S2135を行 わなくてもよい。
[0269] (6)上記第 3の変形例において、秘密情報提供部 2020bは、過去に、端末へ出力 した秘密情報を、再度出力しないように、秘密情報蓄積部 2029bにて格納されてい
る複数の秘密情報それぞれに、フラグを対応付けたが、これに限定されない。
秘密情報提供部 2020bは、出力した 1以上の秘密情報力もなるリストを生成し、生 成したリストを用いて、過去に、端末へ出力した秘密情報を、再度出力しないように管 理してちよい。
[0270] または、秘密情報提供部 2020bは、出力した秘密情報を、消去してもよい。
つまり、端末に対する秘密情報のインストール状況をアップロードして、出力済の秘 密情報の管理、未出力に秘密情報の管理、若しくはその双方の管理ができればよい
(7)上記第 3の変形例において、デバイス鍵個別化部 2041bは、個別暗号化デバ イス鍵を生成する際に、端末 IDを用いたがこれに限定されない。
[0271] デバイス鍵個別化部 204 lbは、正当性確認部 2027bで用いた個別化確認情報( つまり、 ID付 PCR値)を秘密鍵として用いて、デバイス鍵を暗号ィ匕して、個別暗号ィ匕 デバイス鍵を生成してもよ ヽ。
(8)上記第 3の実施の形態において、サーバ 2004bは、カード IDを用いて配布用 暗号ィ匕デバイス鍵を生成した力 これに限定されな!ヽ。
[0272] サーバ 2004bは、第 1、及び第 2の変形例と同様に、端末 IDと端末共通鍵とから生 成された変換値 (暗号用変換値)を用いて配布用暗号ィ匕デバイス鍵を生成してもよ!ヽ し、端末 IDのみを用いて配布用暗号ィ匕デバイス鍵を生成してもよ!/ヽ。
このとき、カード 2002bのデバイス鍵個別化部 2041bは、暗号用変換値若しくは端 末 IDで暗号化された配布用暗号ィ匕デバイス鍵を復号した後、端末 IDで暗号ィ匕して 個別暗号ィ匕デバイス鍵を生成してもよいし、配布用暗号ィ匕デバイス鍵そのものを端 末 IDで暗号化、つまり 2重の暗号ィ匕をして個別暗号ィ匕デバイス鍵を生成してもよ ヽ。
[0273] 2重の暗号ィ匕した場合、端末 2001bは、先ず、個別暗号ィ匕デバイス鍵を端末 IDで 復号して、配布用暗号ィ匕デバイス鍵を生成する。次に、端末 2001bは、端末 IDと端 末共通鍵とから復号用変換値を生成し、生成した復号用変換値を用いて、生成した 配布用暗号ィ匕デバイス鍵を復号してデバイス鍵を生成する。
また、カード 2002bとサーバ 2004bで予め共有している秘密鍵で配布用暗号ィ匕デ バイス鍵を生成してもよい。
[0274] (9)上記第 3の実施の形態において、カード 2002bが予め端末共通鍵を格納して いる構成とした力 これに限定されない。
カード 2002bは、端末共通鍵を、サーバ 2004bから受け取ってもよい。 この場合、サーバ 2004bは、カード 2002bから端末 ID及びカード IDを受け取ると、 受け取った端末 IDにより特定される機種に対応する端末共通鍵を取得し、取得した 端末共通鍵を、受け取ったカード IDにて暗号ィ匕して、暗号ィ匕した端末共通鍵をカー ド 2002bへ送信する。
[0275] カード 2002bは、暗号ィ匕された端末共通鍵を受け取ると、受け取った暗号化された 端末共通鍵を端末共通鍵格納部 2043bへ格納する。
カード 2002bは、個別暗号ィ匕デバイス鍵の生成時に、暗号化された端末共通鍵を 復号する。
(10)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよ!/、。
[0276] (C— 1— 7)まとめ
上記第 3の変形例では、上記第 2の変形例により生じる効果に加え、複数のデバイ ス鍵をカード IDにて暗号ィ匕するので、カード毎に格納すべき複数のデバイス鍵を個 別化することができる。これにより、 1枚のカードを用いて複数の端末それぞれに、異 なるデバイス鍵を配布することができる。
[0277] また、 1枚のカードは、複数のデバイス鍵 (ここでは、配布用暗号ィ匕デバイス鍵)を格 納するので、サーバへのアクセス回数を減らすことができる。
(D— 1)第 4の変形例
上記第 3の変形例では、カードにてデバイス鍵の個別化を行ったが、これに限定さ れない。デバイス鍵の個別化は、デバイス鍵の配送対象である端末で行ってもよい。
[0278] ここで、本変形例では、情報の暗号化方法として、秘密暗号方式を用いる。また、 デバイス鍵とは、コンテンツを暗号ィ匕及び復号するための鍵 (以下、コンテンツ鍵とい う。)を暗号ィ匕及び復号するための鍵である。
以下、この場合のシステムの構成及び、各装置の構成について説明する。 デバイス鍵配布システム 2100は、図 23にて示すように、端末 (証明装置) 2101、 カード (検証装置) 2102、ネットワーク接続端末 2103及びサーバ 2104から構成され
ている。
[0279] 端末 2101は、ネットワークとは非接続の端末であり、上記実施の形態にて示す端 末 N0105、 · · ·、端末 Z0106に相当する。端末 2101は、デバイス鍵と、暗号化され たコンテンツ鍵を復号するためのプログラム(以下、コンテンツ鍵復号プログラム)とを 有している。また、端末 2101は、デバイス鍵の取得 (更新)時に、カード 2102からデ バイス鍵を暗号ィ匕するための個別暗号ィ匕プログラムを受け取る。個別暗号化プロダラ ムについては後述する。
[0280] カード 2102は、端末に装着されると、当該端末を識別するための端末 IDを取得し 、記憶する。ここでは、カード 2102は、端末 2101を識別するための端末 IDを予め記 憶している。つまり、カード 2102は、過去に一度、端末 2101に装着されたものとする 。カード 2102は、上記実施の形態にて示す CRL更新時にて、予め記憶している端 末 IDをネットワーク接続端末 2103へ出力する。
[0281] ネットワーク接続端末 2103は、端末 IDをサーバ 2104へネットワークを介して送信 する。ネットワーク接続端末 2103は、サーバ 2104から、個別暗号化プログラムに対 する更新プログラム(以下、第 1の更新プログラムという。)、コンテンツ鍵復号プロダラ ムに対する更新プログラム (以下、第 2の更新プログラムという。)、個別暗号ィ匕プログ ラムに対する第 1の正当性確認情報、コンテンツ鍵復号プログラムに対する第 2の正 当性確認情報、及び複数の秘密情報を受け取り、受け取った各情報をカード 2102 へ出力する。
[0282] ここで、秘密情報とは、配布用暗号ィ匕デバイス鍵と暗号ィ匕個別配送鍵との組からな る。配布用暗号ィ匕デバイス鍵は、デバイス鍵を、デバイス鍵毎に個別に割り当てられ た個別配送鍵にて暗号ィ匕したものである。暗号化個別配送鍵は、個別配送鍵を、端 末共通鍵にて暗号ィ匕したものである。ここでの、暗号化方式は、上述したように秘密 鍵暗号化方式である。
[0283] サーバ 2104は、端末 IDをネットワーク接続端末 2103から受け取ると、端末 IDに対 応する更新プログラム、及び正当性確認情報と、複数の秘密情報とを送信する。 ここで、正規のデバイス鍵、及び個別配送鍵の暗号化について説明する。 サーバ 2104は、図 24にて示すように、デバイス鍵を、対応する個別配送鍵にて暗
号化して、配布用暗号ィ匕デバイス鍵を生成する (ステップ S2200)。
[0284] サーバ 2104は、個別配送鍵を、端末共通鍵にて暗号化して、暗号化個別配送鍵 を生成する(ステップ S2205)。
サーバ 2104は、生成した配布用暗号ィ匕デバイス鍵と暗号ィ匕個別配送鍵との組か らなる秘密情報をカード 2102へ送信する。
(D— 1— 1)端末 2101
端末 2101は、図 23にて示すように、 ID格納部 2110、第 1のプログラム格納部 211 1、第 2のプログラム格納部 2112、端末測定部 2113、第 1のプログラム更新部 2114 、第 2のプログラム更新部 2115、デバイス鍵個別化部 2116、個別化デバイス鍵蓄積 部 2117、デバイス鍵復号部 2118から構成されている。
[0285] なお、端末 2101の構成要素の一部または全部は、 1個のシステム LSI (Large Sc ale Integration:大規模集積回路)から構成されているものとし、システム LSIには 、端末 2101と同種の端末と共通の鍵 (以下、端末共通鍵)を記憶している。ここで、 端末共通鍵は、耐タンパ性により秘匿性を有して 、る。
(D—1— 1— 1) ID格納部 2110、第 1のプログラム格納部 2011、第 2のプログラム 格納部 2112
ID格納部 2110は、当該端末の端末 ID2200を予め記憶している。
[0286] ここで、 ID格納部 2110は、耐タンパ性を有しており、端末 ID2200の改竄はできな い。
第 1のプログラム格納部 2111及び第 2のプログラム格納部 2112は、上記実施の形 態におけるプログラム格納部 0708に相当する。
第 1のプログラム格納部 2111は、個別暗号ィ匕プログラムを記憶するための領域を 有している。
[0287] 第 1のプログラム格納部 2111は、デバイス鍵の受信時に、個別暗号ィ匕プログラムが 格納され、その後、第 2のプログラム更新部 2115の動作開始時には、個別暗号化プ ログラムは消去される。
第 2のプログラム格納部 2112は、上記実施の形態におけるプログラム格納部 0708 が記憶して 、る各プログラムに加えて、個別暗号ィ匕された正規のデバイス鍵を復号
するためのプログラム(以下、デバイス鍵復号プログラム)、及びコンテンツ鍵復号プ ログラムを予め記憶して 、る。
[0288] (D— 1 1 2)端末測定部 2113
端末測定部 2113は、上記実施の形態におけるセキュアモジュール 0707、および ブートコード 0703、オペレーティングシステム 0709、再生制御プログラム 0711のセ キュアモジュール 0707制御部分に相当する。
端末測定部 2113は、個別暗号ィ匕プログラムの PCR値 (以下、第 1の PCR値)を測 定 (算出)する。端末測定部 2113は、 ID格納部 2110に格納されている端末 ID220 0を取得する。端末測定部 2113は、取得した端末 ID2200と、算出した第 1の PCR 値とに対して、 PCR値拡張コマンドを施して、個別暗号ィ匕プログラムの PCR値に端末 ID2200が反映された PRC値 (以下、第 1の ID付 PCR値という。)を生成する。端末 測定部 2113は、生成した第 1の ID付 PCR値をカード 2102へ出力する。
[0289] 端末測定部 2113は、コンテンツ鍵復号プログラムの PCR値 (以下、第 2の PCR値) を測定 (算出)する。端末測定部 2113は、 ID格納部 2110に格納されている端末 ID 2200を取得する。端末測定部 2113は、取得した端末 ID2200と、算出した第 2の P CR値とに対して、 PCR値拡張コマンドを施して、コンテンツ鍵復号プログラムの PCR 値に端末 ID2200が反映された PRC値 (以下、第 2の ID付 PCR値という。)を生成す る。端末測定部 2113は、生成した第 1の ID付 PCR値をカード 2102へ出力する。
[0290] なお、各測定のタイミングは、上記実施の形態と同様に、個別暗号ィ匕プログラムの ロード時、コンテンツ鍵復号プログラムのロード時であり、各出力のタイミングは、共に コンテンツの再生時である。
測定方法については、上記実施の形態と同様であるので、ここでの説明は省略す る。
(D— 1— 1— 3)第 1のプログラム更新部 2114、第 2のプログラム更新部 2115 第 1のプログラム更新部 2114は、カード 2102から個別暗号ィ匕プログラム (以下、第 1の更新プログラムともいう。)を受け取ると、受け取った第 1の更新プログラムを第 1の プログラム格納部 2111へ格納する。
[0291] 第 1のプログラム更新部 2114は、個別暗号ィ匕プログラムの格納後、ステップ S040
8と同様に、システムのリセットを端末 2101のオペレーティングシステムに依頼する。 第 2のプログラム更新部 2115は、カード 2102からコンテンツ鍵復号プログラムに対 する更新プログラム(以下、第 2の更新プログラム)を受け取ると、第 1のプログラム格 納部 2111に格納されて 、る個別暗号化プログラムを消去する。
[0292] 第 2のプログラム更新部 2115は、受け取った第 2の更新プログラムを用いてコンテ ンッ鍵復号プログラムを更新し、その後、ステップ S0408と同様〖こ、システムのリセッ トを端末 2101のオペレーティングシステムに依頼する。
(D- 1 - 1 -4)デバイス鍵個別化部 2116
デバイス鍵個別化部 2116は、第 1のプログラム格納部 2011にて格納されて 、る個 別暗号ィ匕プログラムが起動され、実行されることで実現される。
[0293] デバイス鍵個別化部 2116は、カード 2102から 1個の配布用暗号ィ匕デバイス鍵を 受け取ると、 ID格納部 2110から端末 ID2200を取得する。
デバイス鍵個別化部 2116は、取得した端末 IDを用いて、受け取った配布用暗号 化デバイス鍵を暗号ィ匕して、個別暗号ィ匕デバイス鍵を生成する。
デバイス鍵個別化部 2116は、生成した個別暗号ィ匕デバイス鍵を、個別化デバイス 鍵蓄積部 2117に格納する。
[0294] (D— 1 1 5)個別化デバイス鍵蓄積部 2117
個別化デバイス鍵蓄積部 2117は、デバイス鍵個別化部 2116にて生成された個別 暗号化デバイス鍵を格納する領域を有して!/、る。
(D- 1 - 1 -6)デバイス鍵復号部 2118
デバイス鍵復号部 2118は、第 2のプログラム格納部 2011にて格納されて 、るデバ イス鍵復号プログラムが起動され、実行されることで実現される。
[0295] デバイス鍵復号部 2118は、カード 2102から、個別化デバイス鍵蓄積部 2117に格 納されている個別暗号ィ匕デバイス鍵に対応する暗号ィ匕個別配送鍵を受け取る。 デバイス鍵個別化部 2116は、受け取った暗号ィ匕個別配送鍵を、所定の格納領域 (例えば、個別化デバイス鍵蓄積部 2117)に格納する。
デバイス鍵復号部 2118は、受け取った暗号ィ匕個別配送鍵に対応する個別暗号ィ匕 デバイス鍵を、個別化デバイス鍵蓄積部 2117から取得する。
[0296] デバイス鍵復号部 2118は、 ID格納部 2110から端末102200を取得し、取得した 端末 ID2200を用いて、個別化デバイス鍵蓄積部 2117から取得した個別暗号ィ匕デ バイス鍵を復号して、配布用暗号ィ匕デバイス鍵を生成する。
デバイス鍵復号部 2118は、当該端末の端末共通鍵を取得し、取得した端末共通 鍵を用いて、受け取った暗号ィ匕個別配送鍵を復号して、個別配送鍵を生成する。
[0297] デバイス鍵個別化部 2116は、生成した個別配送鍵を用いて、配布用暗号化デバ イス鍵を復号して、デバイス鍵を生成する。
(D— 1— 2)カード 2102
カード 2102は、図 23にて示すように、秘密情報提供部 2120、端末 ID格納部 212 1、正当性確認情報格納部 2122、第 1の更新プログラム格納部 2123、第 2の更新プ ログラム格納部 2124、秘密情報取得部 2125、正当性確認情報取得部 2126、第 1 の更新プログラム取得部 2127、第 2の更新プログラム取得部 2128、正当性確認部 2 129、第 1のプログラム出力部 2130、第 2のプログラム出力部 2131、及び確認情報 個別化部 2140から構成されて 、る。
[0298] (D—1— 2—1)秘密情報提供部 2120
秘密情報提供部 2120は、図 23にて示すように、秘密情報蓄積部 2132及びスイツ チ 2133を有している。
秘密情報蓄積部 2132は、上記実施の形態にて示すコンテンツ格納部 0807に相 当している。秘密情報蓄積部 2132は、ネットワーク接続端末 2103を介してサーバ 2 104から受け取った複数の秘密情報を蓄積している。具体的には、秘密情報蓄積部 2132は、図 25にて示すように秘密情報管理テーブル T2100を有している。
[0299] 秘密情報管理テーブル T2100は、配布用暗号化デバイス鍵と暗号化個別配送鍵 とからなる組を 1個以上記憶するための領域を有している。
配布用暗号ィ匕デバイス鍵及び暗号ィ匕個別配送鍵については、上述しているので、 ここでの説明は省略する。
ここで、 E (x、 y)は、データ yを暗号ィ匕鍵 Xで暗号した結果を示す。 DK1、 DK2, D K3、…は、デバイス鍵を、 Deli-Key 1, Deli— Key2、 Deli -Key 3,…は、 DK 1、 DK2, DK3、 . . .に対応する個別配送鍵を、 MKは、端末共通鍵を、それぞれ示
す。
[0300] スィッチ 2133は、上記実施の形態にて示す図 10のステップ S1005におけるコンテ ンッの鍵を出力する動作に相当し、正当性確認部 2129の制御により動作する。端末 が正当であると判断される場合には、スィッチ 2133は、端末が 1つの配布用暗号ィ匕 デバイス鍵と、それに対応する暗号ィ匕個別配送鍵とを取得できるように、端末と秘密 情報蓄積部 2132とを接続する。端末が正当でないと判断される場合には、スィッチ 2133は、端末と秘密情報蓄積部 2132とを接続しない。具体的に、接続するとは端 末 2101が秘密情報蓄積部 2132から情報を取得できる状態にすることである。
[0301] 秘密情報提供部 2120は、正当性確認部 2129から第 1の PCR値を用いた正当性 確認により端末 2101が正当であることを示す第 1の OK情報を受け取ると、端末 210 1と秘密情報蓄積部 2132とが接続するようスィッチを制御し、端末 2101のオペレー ティングシステムに対して個別暗号ィ匕プログラムの起動を要求する。
秘密情報提供部 2120は、正当性確認部 2129から第 2の PCR値を用 、た正当性 確認により端末 2101が正当であることを示す第 2の OK情報を受け取ると、端末 210 1と秘密情報蓄積部 2132とが接続するようスィッチを制御し、端末 2101のオペレー ティングシステムに対してデバイス鍵復号プログラムの起動を要求する。
[0302] 秘密情報提供部 2120は、正当性確認部 2129から端末 2101が正当でないことを 示す NG情報を受け取ると、端末 2101と秘密情報蓄積部 2132とが接続しないように スィッチを制御する。
秘密情報提供部 2120は、過去に、端末へ出力した配布用暗号ィ匕デバイス鍵を、 再度出力しないように管理している。例えば、複数の秘密情報それぞれに、フラグを 対応付ける。具体的には、秘密情報提供部 2120は、未出力の配布用暗号化デバイ ス鍵には値「0」を、出力済の配布用暗号ィ匕デバイス鍵には値「1」を、それぞれ対応 付ける。
[0303] 秘密情報提供部 2120は、配布用暗号ィ匕デバイス鍵を、当該配布用暗号ィ匕デバイ ス鍵の出力先である端末の端末 IDとを対応付けて管理している。
これにより、上記にて示すデバイス鍵復号部 2118は、出力済であり、且つ当該端 末 2101と対応付けられた配布用暗号化デバイス鍵に対応する暗号化個別配送鍵を
取得することにより、デバイス鍵を生成することができる。
[0304] (D— 1— 2— 2)端末 ID格納部 2121
端末 ID格納部 2121は、上記第 1の変形例にて示す端末 ID格納部 2021と同様で あるので、ここでの説明は省略する。
(D 1— 2— 3)正当性確認情報格納部 2122
正当性確認情報格納部 2122は、上記実施の形態における CRLデータベース 08 05の正当な PCR値の格納部位に相当する。
[0305] 正当性確認情報格納部 2122は、ネットワーク接続端末 2003を介してサーバ 200 4から受け取った第 1の正当性確認情報と、端末 ID2200とから生成された第 1の ID 付 PCR値 (以下、第 1の個別化確認情報ともいう。)を、端末 ID格納部 2121にて記 憶されて 、る端末 IDと対応付けて蓄積して 、る。
正当性確認情報格納部 2122は、ネットワーク接続端末 2003を介してサーバ 200 4から受け取った第 2の正当性確認情報と、端末 ID2200とから生成された第 2の ID 付 PCR値 (以下、第 2の個別化確認情報ともいう。)を、端末 ID格納部 2121にて記 憶されて 、る端末 IDと対応付けて蓄積して 、る。
[0306] ここでは、正当性確認情報格納部 2122は、第 1及び第 2の個別化確認情報それぞ れを、端末 2101の端末 ID2200と対応付けて記憶して 、るものとする。
(D— 1 2— 4)第 1の更新プログラム格納部 2123、第 2の更新プログラム格納部 2 124
第 1の更新プログラム格納部 2123及び第 2の更新プログラム格納部 2124は、上記 実施の形態における CRLデータベース 0805の更新プログラムの格納部位に相当す る。
[0307] 第 1の更新プログラム格納部 2123は、ネットワーク接続端末 2103を介してサーバ 2 104から受け取った第 1の更新プログラム (個別暗号ィ匕プログラム)を、端末 ID格納 部 2121にて記憶されている端末 IDと対応付けて蓄積している。ここでは、第 1の更 新プログラム格納部 2123は、第 1の更新プログラムを、端末 2101の端末 ID2200と 対応付けて記憶して 、るものとする。
[0308] 第 2の更新プログラム格納部 2124は、ネットワーク接続端末 2103を介してサーバ 2
104から受け取った第 2の更新プログラムを、端末 ID格納部 2121にて記憶されてい る端末 IDと対応付けて蓄積している。ここでは、第 2の更新プログラム格納部 2124は 、第 2の更新プログラムを、端末 2101の端末 ID2200と対応付けて記憶しているもの とする。
[0309] なお、上記にて示す CRLデータベース 0805は、本変形例にて示す端末 ID格納 部 2121、正当性確認情報格納部 2122、第 1の更新プログラム格納部 2123及び第 2の更新プログラム格納部 2124から構成されていることが分かる。
(D- 1 - 2- 5)秘密情報取得部 2125
秘密情報取得部 2125は、上記実施の形態にて示す図 9における権利購入処理に 相当する。
[0310] 秘密情報取得部 2125は、ネットワーク接続端末 2103を介してサーバ 2104から複 数の秘密情報を受け取ると、受け取った複数の秘密情報を秘密情報蓄積部 2132の 秘密情報管理テーブル T2100へ格納する。
ここで、秘密情報取得部 2125による個別暗号化秘密情報の受け取り、及び格納の タイミングは、例えば、コンテンツの購入時である。
[0311] (D— 1 2— 6)正当性確認情報取得部 2126
正当性確認情報取得部 2126は、上記実施の形態にて示す図 9における CRL更 新処理、特に CRLデータベースの正規の PCR値の更新に相当する。
正当性確認情報取得部 2126は、ネットワーク接続端末 2003を介してサーバ 200 4から、個別暗号ィ匕プログラムに対する第 1の正当性確認情報、及びコンテンツ鍵復 号プログラムに対する第 2の正当性確認情報を受け取ると、受け取った第 1及び第 2 の正当性確認情報を確認情報個別化部 2140へ出力する。
[0312] (D— 1 2— 7)第 1の更新プログラム取得部 2127、第 2の更新プログラム取得部 2 128
第 1の更新プログラム取得部 2127、及び第 2の更新プログラム取得部 2128は、上 記実施の形態にて示す図 9における CRL更新処理、特に CRLデータベースの更新 プログラムの更新に相当する。
[0313] 第 1の更新プログラム取得部 2127は、ネットワーク接続端末 2103を介してサーバ 2
104から第 1の更新プログラム (個別暗号ィ匕プログラム)を受け取ると、受け取った第 1 の更新プログラムを第 1の更新プログラム格納部 2123へ格納する。
第 2の更新プログラム取得部 2128は、ネットワーク接続端末 2103を介してサーバ 2 104から第 2の更新プログラムを受け取ると、受け取った第 2の更新プログラムを第 2 の更新プログラム格納部 2124へ格納する。
[0314] (D— 1 2— 8)正当性確認部 2129
正当性確認部 2129は、上記実施の形態にて示す図 10における S1003に相当す る。
正当性確認部 2129は、端末 2101から第 1の ID付 PCR値を受け取ると、端末 210 1と対応付けられた第 1の個別化確認情報を、正当性確認情報格納部 2122から取 得する。正当性確認部 2129は、受け取った第 1の ID付 PCR値と第 1の個別化確認 情報とがー致するカゝ否かを判断する。一致すると判断する場合には、正当性確認部 2129は、第 1の OK情報を秘密情報提供部 2120へ出力する。一致しないと判断す る場合には、正当性確認部 2129は、 NG情報を秘密情報提供部 2120及び第 1の プログラム出力部 2130へ出力する。
[0315] 正当性確認部 2129は、端末 2101から第 2の ID付 PCR値を受け取ると、端末 210 1の第 1のプログラム格納部 2111に第 1の更新プログラム (個別暗号ィ匕プログラム)が 消去されているカゝ否かを判断する。なお、消去されているカゝ否かの判断に第 2の個別 化確認情報を用いてもよい。端末 2101から受け取った第 2の ID付 PCR値と第 2の個 別化確認情報との比較を行い、一致していれば消去されていると判断してもよい。こ こで、個別暗号ィ匕プログラムが消去されているか否かを判断できるのは、第 2の個別 化確認情報を生成するために用いた対象となるプログラムに個別暗号ィ匕プログラム が含まれないからである。
[0316] 消去されていないと判断する場合には、正当性確認部 2129は、端末 2101のオペ レーティングシステムに第 1の更新プログラム (個別暗号ィ匕プログラム)を消去するよう に依頼し、その後、再度、端末 2101の第 1のプログラム格納部 2111に第 1の更新プ ログラム (個別暗号ィ匕プログラム)が消去されて 、る力否かを判断する。
消去されていると判断する場合には、正当性確認部 2129は、端末 2101と対応付
けられた第 2の個別化確認情報を、正当性確認情報格納部 2122から取得する。正 当性確認部 2129は、受け取った第 2の ID付 PCR値と第 2の個別化確認情報とがー 致するか否かを判断する。一致すると判断する場合には、正当性確認部 2129は、 第 2の OK情報を秘密情報提供部 2120へ出力する。一致しないと判断する場合に は、正当性確認部 2129は、 NG情報を秘密情報提供部 2120及び第 2のプログラム 出力部 2131へ出力する。
[0317] なお、第 1の変形例と同様、正当性確認部 2129をステップ S1002及び S1003に 相当するとしてもよい。
(D— 1— 2— 9)第 1のプログラム出力部 2130、第 2のプログラム出力部 2131 第 1のプログラム出力部 2130は、正当性確認部 2129から NG情報を受け取ると、 端末 2101に対する第 1の更新プログラム (個別暗号ィ匕プログラム)を第 1の更新プロ グラム格納部 2123から取得する。第 1のプログラム出力部 2130は、取得した第 1の 更新プログラムを端末 2101の第 1のプログラム更新部 2114へ出力する。
[0318] 第 2のプログラム出力部 2131は、正当性確認部 2129から NG情報を受け取ると、 端末 2101に対する第 2の更新プログラムを第 2の更新プログラム格納部 2124から取 得する。第 2のプログラム出力部 2130は、取得した第 2の更新プログラムを端末 210 1の第 2のプログラム更新部 2115へ出力する。
(D— 1 2— 10)確認情報個別化部 2140
確認情報個別化部 2140は、正当性確認情報取得部 2126から第 1の正当性確認 情報、及び第 2の正当性確認情報を受け取ると、端末 ID格納部 2121から端末 ID22 00を取得する。
[0319] 確認情報個別化部 2140は、第 1の正当性確認情報と、端末 ID2200とに PCR値 拡張コマンドと等価な処理を施して、個別暗号ィ匕プログラムの PCR値に端末 IDが付 加された第 1の個別化確認情報を生成する。確認情報個別化部 2140は、生成した 第 1の個別化確認情報を正当性確認情報格納部 2122へ格納する。
確認情報個別化部 2140は、第 2の正当性確認情報と、端末 ID2200とに PCR値 拡張コマンドと等価な処理を施して、コンテンツ鍵復号プログラムの PCR値に端末 ID が付加された第 2の個別化確認情報を生成する。確認情報個別化部 2140は、生成
した第 2の個別化確認情報を正当性確認情報格納部 2122へ格納する。
[0320] (D— 1— 3)ネットワーク接続端末 2103
ネットワーク接続端末 2103は、自身に装着されたカード 2102の端末 ID格納部 21 21から端末 2101の端末 IDを取得すると、取得した端末 IDを、ネットワークを介して サーバ 2104へ出力する。
その後、ネットワーク接続端末 2103は、サーバ 2104からネットワークを介して、出 力した端末 IDと対応付けられた第 1及び第 2の更新プログラムと、第 1及び第 2の正 当性確認情報と、複数の秘密情報を受け取り、受け取った各情報をカード 2102へ 格納する。
[0321] (D— 1 4)サーバ 2104
サーバ 2104は、上記実施の形態と同様に、 CRLデータベースを有しており、端末 毎に配布すべき第 1及び第 2の更新プログラム及び第 1及び第 2の正当性確認情報 を管理している。なお、第 1、第 2の更新プログラム及び第 1、第 2の正当性確認情報 は、端末の機種毎に異なるとする。
[0322] また、サーバ 2104は、端末共通鍵を予め記憶し、管理して!/、る。
サーバ 2004は、複数のデバイス鍵を予め生成しており、生成した秘密情報を記憶 '管理している。サーバ 2104は、端末に一度配布した秘密情報を再度配布しないよ うに管理している。なお、サーバ 2104が管理している複数の秘密情報それぞれは、 互いに異なる。さらに、サーバ 2104は、管理している全ての秘密情報を配布した場 合、これまでに管理して!/、た複数の秘密情報それぞれとは異なる複数の秘密情報を 生成する。上述したように、再度生成された複数の秘密情報それぞれについても、互 いに異なる。
[0323] サーバ 2104は、ネットワーク接続端末 2103からネットワークを介して、端末 IDを受 け取ると、受け取った端末 IDから機種を特定し、特定した機種に対応する機種共通 情報 (第 1、第 2の更新プログラム、第 1、第 2の正当性確認情報、及び端末共通鍵) を取得する。
サーバ 2104は、管理している複数のデバイス鍵のうち所定数(2個以上)のデバイ ス鍵と、それぞれに対応する個別配送鍵を取得する。サーバ 2104は、取得した所定
数のデバイス鍵それぞれを、対応する個別配送鍵を秘密鍵とする秘密鍵暗号化方 式により暗号ィ匕して、所定数の配布用暗号ィ匕デバイス鍵を生成する。
[0324] サーバ 2104は、配布用暗号ィ匕デバイス鍵の生成に用いた所定数の個別配送鍵そ れぞれを、端末共通鍵を秘密鍵とする秘密鍵暗号ィ匕方式により暗号ィ匕して、所定数 の暗号化個別配送鍵を生成する。
サーバ 2104は、端末個別データー式 (生成した複数の秘密情報と、取得した第 1 、第 2の更新プログラム及び第 1、第 2の正当性確認情報)を、ネットワークを介してネ ットワーク接続端末 2103へ出力する。
[0325] ここで、秘密鍵とは、上述したように、配布用暗号ィ匕デバイス鍵と暗号ィ匕個別配送 鍵とからなる組である。
(D- 1 - 5)デバイス鍵配布システム 2100の動作
デバイス鍵配布システム 2100の動作について、図 26及び図 27にて示す流れ図を 用いて説明する。
[0326] 以下の説明では、カード 2102が、図 18にて示すステップ S2010、 S2015を実行 し、端末 2101の端末 ID2200をサーバ 2104へ送信した後の動作について説明す る。
サーバ 2104は、ネットワーク接続端末 2103からネットワークを介して、端末 IDを受 け取ると、受け取った端末 IDから機種を特定し、特定した機種に対応する機種共通 情報 (第 1、第 2の更新プログラム、第 1、第 2の正当性確認情報、及び端末共通鍵) を取得する。サーバ 2104は、管理している複数のデバイス鍵のうち所定数(2個以上 )のデバイス鍵と、それぞれに対応する個別配送鍵を取得する。サーバ 2104は、取 得した所定数のデバイス鍵それぞれを、対応する個別配送鍵を用いて暗号化して、 所定数の配布用暗号ィ匕デバイス鍵を生成する。サーバ 2104は、配布用暗号化デバ イス鍵の生成に用いた所定数の個別配送鍵それぞれを、端末共通鍵を秘密鍵とす る秘密鍵暗号化方式により暗号化して、所定数の暗号化個別配送鍵を生成する (ス テツプ S2500)。
[0327] サーバ 2104は、端末個別データー式 (生成した複数の秘密情報と、取得した第 1 、第 2の更新プログラム及び第 1、第 2の正当性確認情報)を、ネットワーク接続端末 2
103を介してカード 2102へ出力する(ステップ S2505、 S2510, S2515, S2520) 。カードは、サーバ 2104からネットワーク接続端末 2103を介して、端末個別データ 一式を受け取ると、所定の格納領域へ格納する。具体的には、秘密情報取得部 212 5は、サーバ 2104から複数の秘密情報を受け取ると、受け取った複数の秘密情報を 秘密情報管理テーブル T2100へ格納する。正当性確認情報取得部 2126は、サー ノ 2004から第 1及び第 2の正当性確認情報を受け取ると、受け取った第 1及び第 2 の正当性確認情報を確認情報個別化部 2140へ出力する。第 1の更新プログラム取 得部 2127は、サーバ 2104から第 1の更新プログラム (個別暗号ィ匕プログラム)を受 け取ると、受け取つた第 1の更新プログラムを第 1の更新プログラム格納部 2123へ格 納する。第 2の更新プログラム取得部 2128は、サーバ 2104から第 2の更新プロダラ ムを受け取ると、受け取った第 2の更新プログラムを第 2の更新プログラム格納部 212 4へ格納する。
[0328] 確認情報個別化部 2140は、第 1及び第 2の正当性確認情報を受け取ると、端末 2 101の端末 ID2200を取得する (ステップ S2530)。具体的には、確認情報個別化部 2140は、端末 ID格納部 2121から端末 ID2200を取得する。
確認情報個別化部 2140は、取得した端末 ID2200を用いて、第 1及び第 2の正当 性確認情報それぞれに対する第 1及び第 2の個別化確認情報を生成する (ステップ S2525) 0具体的には、確認情報個別化部 2140は、第 1の正当性確認情報と端末 I D2200とに対して、 PCR値拡張コマンドを施して、第 1の個別化確認情報を生成す る。確認情報個別化部 2140は、第 2の正当性確認情報と、端末 ID2200とに PCR 値拡張コマンドを施して、第 2の個別化確認情報を生成する。確認情報個別化部 21 40は、生成した第 1及び第 2の個別化確認情報を正当性確認情報格納部 2122へ 格納する。
[0329] カード 2102は、個別暗号化プログラムを端末 2101へ出力する(ステップ S2540) 端末 2101は、個別暗号ィ匕プログラムをインストールする(ステップ S2545)。
端末 2101は、デバイス鍵取得要求と、第 1の ID付 PCR値をカード 2102の正当性 確認部 2129へ出力する(ステップ S2550)。正当性確認部 2129は、端末 2101から
デバイス鍵取得要求と、第 1の ID付 PCR値とを受け取ると、端末 2101の正当性を判 断する(ステップ S2555)。ここでは、カード 2102の正当性確認部 2129は、第 1の個 別化確認情報と、受け取った第 1の ID付 PCR値との比較を行う。
[0330] 正当でないと判断する場合 (ステップ S2555における「NG」)、カード 2102は、個 別暗号ィ匕プログラムを端末 2101へ出力する (ステップ S2560)。端末 2101は、個別 暗号ィ匕プログラムを受け取ると (ステップ S2565)、ステップ S2545へ戻る。具体的に は、正当性確認部 2129は、 NG情報を第 1のプログラム出力部 2130へ出力する。 第 1のプログラム出力部 2130は、正当性確認部 2129から NG情報を受け取ると、端 末 2101に対する個別暗号ィ匕プログラムを第 1の更新プログラム格納部 2123から取 得し、取得した個別暗号ィ匕プログラムを端末 2101の第 1のプログラム更新部 2114へ 出力する。第 1のプログラム更新部 2114は、カード 2102から個別暗号ィ匕プログラム を受け取ると、受け取った個別暗号ィ匕プログラムを、第 1のプログラム格納部 2111に 格納されている個別暗号ィ匕プログラムに上書きして更新し、システムのリセットを端末 2101のオペレーティングシステムに依頼する。
[0331] 正当であると判断する場合 (ステップ S2555における「O :」)、カード 2102の秘密 情報提供部 2120は、 1個の配布用暗号ィ匕デバイス鍵を端末 2101へ出力する (ステ ップ S2570)。具体的には、正当性確認部 2129は、第 1の OK情報を秘密情報提供 部 2120へ出力する。秘密情報提供部 2120は、正当性確認部 2129から第 1の OK 情報を受け取ると、秘密情報蓄積部 2132からフラグの値力 S「0」である 1個の配布用 暗号ィ匕デバイス鍵を取得する。秘密情報提供部 2120は、取得した 1個の配布用暗 号ィ匕デバイス鍵を端末 2101へ出力する。
[0332] 端末 2101のデバイス鍵個別化部 2116は、カード 2102から 1個の配布用暗号ィ匕 デバイス鍵を受け取ると (ステップ S2575)、受け取った配布用暗号ィ匕デバイス鍵を 用いて個別暗号ィ匕デバイス鍵を生成し、生成した個別暗号ィ匕デバイス鍵を個別化デ バイス鍵蓄積部 2117に格納する(ステップ32580)。具体的には、デバイス鍵個別 化部 2116は、 1個の配布用暗号ィ匕デバイス鍵を受け取ると、 ID格納部 2110から端 末 ID2200を取得する。デバイス鍵個別化部 2116は、取得した端末 IDを用いて、受 け取った配布用暗号ィ匕デバイス鍵を暗号ィ匕して、個別暗号化デバイス鍵を生成し、
生成した個別暗号ィ匕デバイス鍵を個別化デバイス鍵蓄積部 2117に格納する。
[0333] カード 2102は、第 2の更新プログラムを端末 2101へ出力する(ステップ S2585)。
端末 2101は、第 2の更新プログラムをインストールし (ステップ S2590)、その後、 第 1のプログラム格納部 2111にて格納されて 、る個別暗号化プログラムを消去する( ステップ S2595)。
[0334] 端末 2101は、暗号化個別配送鍵取得要求と、第 2の ID付 PCR値をカード 2102の 正当性確認部 2129へ出力する (ステップ S 2600)。
正当性確認部 2129は、端末 2101から暗号ィ匕個別配送鍵取得要求と、第 2の ID 付 PCR値とを受け取ると、端末 2101の第 1のプログラム格納部 2111に第 1の更新 プログラム (個別暗号ィ匕プログラム)が消去されて 、るか否かを判断する (ステップ S2 605)。
[0335] 消去されていないと判断する場合には (ステップ S2605における「NO」)、正当性 確認部 2129は、端末 2101のオペレーティングシステムに第 1の更新プログラム (個 別暗号ィ匕プログラム)を消去するように依頼し (ステップ S2610)、その後、ステップ S 2605に戻る。
消去されていると判断する場合には (ステップ S2605における「YES」)、端末 210 1の正当性を判断する (ステップ S2615)。ここでは、カード 2102の正当性確認部 21 29は、第 2の個別化確認情報と、受け取った第 2の ID付 PCR値との比較を行う。
[0336] 正当でないと判断する場合 (ステップ S2615における「NG」)、カード 2102は、第 2 の更新プログラムを端末 2101へ出力する (ステップ S2620)。端末 2101は、第 2の 更新プログラムを受け取ると (ステップ S2625)、ステップ S2590へ戻る。具体的には 、正当性確認部 2129は、 NG情報を第 2のプログラム出力部 2131へ出力する。第 2 のプログラム出力部 2131は、正当性確認部 2129から NG情報を受け取ると、端末 2 101に対する第 2の更新プログラムを第 2の更新プログラム格納部 2124から取得し、 取得した第 2の更新プログラムを端末 2101の第 2のプログラム更新部 2115へ出力 する。第 2のプログラム更新部 2115は、カード 2102から第 2の更新プログラムを受け 取ると、受け取った第 2の更新プログラムを用いてコンテンツ鍵復号プログラムを更新 し、システムのリセットを端末 2101のオペレーティングシステムに依頼する。
[0337] 正当であると判断する場合 (ステップ S2615における「O :」)、カード 2102の秘密 情報提供部 2120は、ステップ S2570にて出力した配布用暗号ィ匕デバイス鍵に対応 する暗号ィ匕個別配送鍵を、端末 2101へ出力する (ステップ S2630)。具体的には、 正当性確認部 2129は、第 2の OK情報を秘密情報提供部 2120へ出力する。秘密 情報提供部 2120は、正当性確認部 2129から第 2の OK情報を受け取ると、秘密情 報蓄積部 2132からフラグの値が「1」であり、且つ端末 2101の端末 ID2200と対応 付けられた配布用暗号ィ匕デバイス鍵に対応する暗号ィ匕個別配送鍵を取得し、取得し た暗号化個別配送鍵を端末 2101のデバイス鍵復号部 2118へ出力する。
[0338] デバイス鍵復号部 2118は、カード 2102から、暗号化個別配送鍵を受け取ると (ス テツプ S2635)、受け取った暗号ィ匕個別配送鍵を所定の格納領域 (例えば、個別化 デバイス鍵蓄積部 2117)に格納する (ステップ S2640)。
デバイス鍵復号部 2118は、個別化デバイス鍵蓄積部 2117に格納されて 、る個別 暗号ィ匕デバイス鍵からデバイス鍵を生成する (ステップ S2645)。具体的には、デバ イス鍵復号部 2118は、受け取った暗号ィ匕個別配送鍵に対応する個別暗号ィ匕デバイ ス鍵を、個別化デバイス鍵蓄積部 2117から取得する。デバイス鍵復号部 2118は、 I D格納部 2110から端末102200を取得し、取得した端末 ID2200を用いて、個別化 デバイス鍵蓄積部 2117から取得した個別暗号ィ匕デバイス鍵を復号して、配布用暗 号化デバイス鍵を生成する。デバイス鍵復号部 2118は、当該端末の端末共通鍵を 取得し、取得した端末共通鍵を用いて、受け取った暗号ィ匕個別配送鍵を復号して、 個別配送鍵を生成する。デバイス鍵個別化部 2116は、生成した個別配送鍵を用い て、配布用暗号ィ匕デバイス鍵を復号して、デバイス鍵を生成する。
[0339] 以下、各ステップが実行されるタイミングの一例を示す。
ステップ S2500から S2535までの動作は、カード 2102がネットワーク接続端末 21 03に装着された場合に実行される。
ステップ S2540力ら S2545までの動作、及びステップ S2585力ら S2595までの動 作は、サービスマンにより端末 2101のプログラムのアップデートを行う場合に実行さ れる。
[0340] ステップ S2550力ら S2580までの動作、ステップ S2555における NG時のステップ
S2545の動作、ステップ S2600力ら S2645までの動作、ステップ S2615における N G時のステップ S2590力ら S2595までの動作は、端末 2101の利用者によりコンテン ッの再生の要求があった場合に実行される。
(D— 1 6)その他の変形例
なお、本発明を上記第 4の変形例に基づいて説明してきたが、本発明は、上記第 4 の変形例に限定されないのは、もちろんである。以下のような場合も本発明に含まれ る。
[0341] (1)上記第 4の実施の形態において、サーバ 2104が、取得するデバイス鍵の個数
(所定数)は 2個以上としたが、これに限定されない。
サーバ 2104力 取得するデバイス鍵の個数は 1個以上であればよい。
(2)上記第 4の実施の形態において、サーバ 2104が、取得するデバイス鍵の個数 は予め決められた個数 (所定数)としたが、これに限定されない。
[0342] サーバ 2104が、取得するデバイス鍵の個数は、ネットワーク接続端末にて情報を 送信する際に、ユーザが指定してもよい。
この場合、ネットワーク接続端末 2103は、ユーザから指定された取得個数を、サー バ 2104へ送信する。サーバ 2104は、ネットワーク接続端末 2103から取得個数を受 信すると、受信した取得個数分のデバイス鍵を取得する。
[0343] (3)上記第 4の変形例において、端末 2101は、非ネットワーク接続の端末であると したが、これに限定されない。
端末 2101は、ネットワーク接続可能な端末であるとしてもよい。つまり、端末 2101 は、上記第 4の変形例にて示すネットワーク接続端末 2103が行う動作をも兼ね備え ることで実現できる。
[0344] (4)上記第 4の変形例において、デバイス鍵配布システム 2100は、図 26にて示す ステップ S2540力ら S2545、及びステップ S2585力ら S2590により、サービスマン による端末 2101の個別暗号ィ匕プログラム及びコンテンツ鍵復号プログラムのアップ デートを行うとしたが、これに限定されない。
デバイス鍵配布システム 2000bの動作において、ステップ S2540力ら S2545、及 びステップ S2585力ら S2590を行わなくてちょ!ヽ。
[0345] (5)上記第 4の変形例において、秘密情報提供部 2120は、過去に、端末へ出力し た秘密情報を、再度出力しないように、秘密情報蓄積部 2132にて格納されている複 数の秘密情報それぞれに、フラグを対応付けたが、これに限定されない。
秘密情報提供部 2120は、出力した 1以上の秘密情報力もなるリストを生成し、生成 したリストを用いて、過去に、端末へ出力した秘密情報を、再度出力しないように管理 してちよい。
[0346] または、秘密情報提供部 2120は、出力した秘密情報を、消去してもよい。
つまり、端末に対する秘密情報のインストール状況をアップロードして、出力済の秘 密情報の管理、未出力に秘密情報の管理、若しくはその双方の管理ができればよい
(6)上記第 4の実施の形態において、端末 2101は、個別暗号化プログラムの利用 後、個別暗号ィ匕プログラムを消去したが、これに限定されない。
[0347] 端末 2101は、個別暗号ィ匕プログラムを消去しなくてもよい。
この場合、端末 2101は、カード 2102による正当性確認時に正当でないと判断され る場合、つまり不正な個別暗号ィ匕プログラムが格納されている場合に、新しい個別暗 号ィ匕プログラム (正規の個別暗号ィ匕プログラム)を受け取る。この場合、カードは、個 別暗号ィ匕プログラムを更新したことが確認された後でなくては配布用暗号ィ匕デバイス 鍵を端末に出力しな ヽので、不正な個別暗号ィ匕プログラムが配布暗号ィ匕デバイス鍵 を漏洩することを防げる。
[0348] (7)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよ!/、。
(D— 1 7)まとめ
上記第 4の変形例において、正規の端末であれば、デバイス鍵の個別暗号化も正 しく実施することができるので、正当性確認後に、デバイス鍵 (ここでは、配布用暗号 化デバイス鍵)を出力することで、個別暗号化時の不正を防止することができる。
[0349] また、端末 2101は、個別暗号ィ匕には専用にプログラム (個別暗号ィ匕プログラム)を 用い、個別暗号化後に、使用した個別暗号ィ匕プログラムを消去するので、個別暗号 化方法の漏洩を防止することができる。
また、カード 2102は、端末 2101内の個別暗号ィ匕プログラムが消去されていないと
、暗号化個別配送鍵を、端末 2101に出力しないようにしているので、個別暗号化プ ログラムの消去を強制することができる。
[0350] (E— 1)その他の変形例
なお、本発明を上記実施の形態及び第 1から第 4の変形例に基づいて説明してき たが、本発明は、上記実施の形態及び第 1から第 4の変形例に限定されないのは、も ちろんである。以下のような場合も本発明に含まれる。
(1)上記各変形例において、デバイス鍵はサーバにて予め生成されるとした力 こ れに限定されない。
[0351] デバイス鍵はカードにて生成してもよい。
この場合、カードは、装着された端末に、生成したデバイス鍵を出力するとともに、 出力先の端末を識別する端末 IDと出力したデバイス鍵とを対応付けて、所定の記憶 領域に格納しておく。カードは、ネットワーク接続端末を介してサーバとデータの送受 信を行う際に、格納しているデバイス鍵と対応する端末 IDとをサーバへ送信する。
[0352] サーバは、デバイス鍵と対応する端末 IDとを受け取ると、受け取ったデバイス鍵と 端末 IDとを管理する。
(2)上記各実施の形態において、端末の正当性を確認するために、カードは、実 際に端末にロードされたプログラムの PCR値と、正規の PCR値との比較による認証( Attestationによる認証)を行ったが、これに限定されない。
[0353] カードは、プログラムのバージョンチェックによる端末の正当性を確認してもよい。
または、カードは、プログラムに固有の鍵 (ファームフェアに固有の鍵)を取得して、 端末の正当性を確認してもよい。
または、カードは、チャレンジレスポンス認証により端末の正当性を確認してもよい。
(3)上記各実施の形態において、カードは、サーノくからネットワークを介して、更新 プログラムを受け取った力 これに限定されない。
[0354] カードは、サーノ から放送波にて送信された更新プログラムを、カードを装着するこ とができ、且つ放送波を受信することのできる端末 (放送受信端末)を介して受け取つ てもよい。
または、サーバは、放送波にて、プログラムの更新が必要である旨の情報(更新情
報)のみを送信してもよい。この場合、カードは、放送受信端末を介して、更新情報を 受け取り、放送受信端末を介してユーザへ更新情報を受け取った旨のメッセージを 出力(表示)する。その後、カードは、ユーザの操作にて、サーバから、ネットワーク及 びネットワーク接続端末を介して、更新プログラムを受け取る。
[0355] また、ネットワークを介さずに、サーバへ直接カードを差し込んで更新プログラムを 受け取るとしてもよ 、。サーバとしてキオスク端末を用いる場合などが考えられる。
(4)上記各変形例において、カードによる端末の正当性の確認にて端末が正当で あると判断された場合にデバイス鍵を出力したが、これに限定されない。
端末が正当であると判断された場合に、カードから端末に出力するデータは、他の データであってもよい。
[0356] 例えば、音楽データ、画像データ、他の鍵 (ワーク鍵、コンテンツ鍵、鍵のチケット) 、新しい機能を有するプログラム (新プログラム)などである。つまり、端末が正当であ ると判断された場合に、カードから端末に出力するデータは、著作権が保護されるデ ータ(上記の音楽データや画像データに相当)や、機密性の高 、データ(上記の他 の鍵や新プログラムに相当)であればよい。
[0357] このとき、カードは、サーノくからネットワーク接続端末を介して、デバイス鍵の代わり に、著作権が保護されるデータや、機密性の高いデータを受け取ることとなる。
(5)上記第 2、第 3及び第 4の変形例において、各デバイス鍵配布システムは、 ΓΑ - 1 -6 (その他の変形例)」の(6— 1)、若しくは(6— 2)と同様に、第 2の端末 IDを用 いた構成であってもよい。
[0358] (6)上記各変形例にて示すシステムは、端末に固有のデバイス鍵を配布し、端末 に対するデバイス鍵の更新 (リニューアル)を行ったが、これに限定されな!、。
システムは、端末に対する他の情報の更新 (リニューアル)を行ってもよ 、。 ここで、端末測定部は上述したように、上記実施の形態におけるセキュアモジユー ルに相当しているので、端末測定部は、 TCG (Trusted Computing Group)で 規格化されて 、る TPM (Trusted Platform Module)と同様の機能を有して!/、る
[0359] 他の情報の更新(リニューアル)の一例として、 TPMに含まれるプラットフォーム(P1
atform)証明書の更新 (リニューアル)について、説明する。
上記第 1の変形例における端末共有鍵を、 TPMにて含まれるエンド一スメントキ一 (EK秘密鍵)に変更し、デバイス鍵をプラットフォーム証明書と変更することで、端末 の TPM (端末測定部)へ送り込むことができる。
[0360] もちろんプラットフォーム証明書の更新に限らず、 EK秘密鍵を用いて他の情報を 更新してちょい。
(7)上記各変形例にて示すシステムは、カードを具備する構成としたが、これに限 定されない。
カードの代わりに、当該カードと同様の構成要素を有する装置 (以下、認証装置)で あってもよい。
[0361] ここで、認証装置は、上記にて示すサーバに組み込まれてもよいし、サーバとは異 なる装置であってもよい。
この場合、例えば、端末は、ネットワーク接続端末と専用のケーブルにて接続され、 更新端末カゝらネットワーク接続端末を介して、更新プログラム、デバイス鍵 (秘密情報 )を受け取る。
[0362] (8)上記の各装置は、具体的には、マイクロプロセッサ、 ROM, RAM,ハードディ スクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュー タシステムである。前記 RAMまたはハードディスクユニットには、コンピュータプロダラ ムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムにしたが つて動作することにより、各装置は、その機能を達成する。ここでコンピュータプロダラ ムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが 複数個組み合わされて構成されたものである。
[0363] (9)上記の各装置を構成する構成要素の一部または全部は、 1個のシステム LSI ( Large Scale Integration:大規模集積回路)から構成されているとしてもよい。シ ステム LSIは、複数の構成部を 1個のチップ上に集積して製造された超多機能 LSIで あり、具体的には、マイクロプロセッサ、 ROM、 RAMなどを含んで構成されるコンビ ユータシステムである。前記 RAMには、コンピュータプログラムが記憶されている。前 記マイクロプロセッサ力 S、前記コンピュータプログラムにしたがって動作することにより
、システム LSIは、その機能を達成する。
[0364] また、上記の各装置を構成する構成要素の各部は、個別に 1チップィ匕されていても 良!、し、一部又は全てを含むように 1チップィ匕されてもょ 、。
また、ここでは、システム LSIとした力 集積度の違いにより、 IC、 LSI,スーパー LS I、ウルトラ LSIと呼称されることもある。また、集積回路化の手法は LSIに限るもので はなぐ専用回路又は汎用プロセッサで実現してもよい。 LSI製造後に、プログラムす ることが可能な FPGA (Field Programmable Gate Array)や、 LSI内部の回路 セルの接続や設定を再構成可能なリコンフィギユラブル'プロセッサーを利用しても良 い。
[0365] さらには、半導体技術の進歩又は派生する別技術により LSIに置き換わる集積回 路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積ィ匕を行って もよい。バイオ技術の適用等が可能性としてありえる。
(10)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能 な ICカードまたは単体のモジュール力も構成されて 、るとしてもよ 、。前記 ICカード または前記モジュールは、マイクロプロセッサ、 ROM, RAMなどから構成されるコン ピュータシステムである。前記 ICカードまたは前記モジュールは、上記の超多機能 L SIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動 作することにより、前記 ICカードまたは前記モジュールは、その機能を達成する。この ICカードまたはこのモジュールは、耐タンパ性を有するとしてもよ!/、。
[0366] (11)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンビュ ータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプ ログラム力もなるデジタル信号であるとしてもよい。
(12)また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコン ピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、 C D—ROMゝ MO、 DVDゝ DVD— ROMゝ DVD— RAMゝ BD (Blu—ray Disc)、半 導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されてい る前記デジタル信号であるとしてもよ 、。
[0367] (13)また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電
気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、デ ータ放送等を経由して伝送するものとしてもよい。
(14)また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであ つて、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセ ッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
[0368] ( 15)また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移 送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク 等を経由して移送すること〖こより、独立した他のコンピュータシステムにより実施すると してちよい。
(16)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよ!/、。 <その他の実施の形態 >
以下に、本発明に関する他の実施の形態について図面を用いて説明する。ここで は、特に TCG規格に準拠した機器認証に着目した実施形態について説明する。 1.実施の形態 1
1. 1 概要
実施の形態 1に係る検証システム 3000は、図 28に示すように、インターネット 3005 に相互に接続された端末装置 (証明装置) 3001、 CAサーバ装置 (検証装置) 3002 、 TPMサーバ装置 3003により構成される。
[0369] 端末装置 3001は TPM (Trusted Platform Module)を搭載しており、初起動 時又は初期化直後に、 CAサーバ装置から、正当な構成 (ノヽ一ドウエア及びソフトゥェ ァ)を有する機器であることを証明する AIK (Attestation Identity Key)クレデン シャル (AIK証明書)を取得する。
TPMは、端末装置 3001の有するプログラムの完全性を示すインテグリティ値 (後 述する)に、拡張処理を施して記録する機能を有するハードウェアモジュールである。
[0370] また、端末装置 3001が実際に動作する際にも、所定のタイミングで、 CAサーバ装 置 3002が検証装置となって、端末装置 3001の正当性を検証 (TCG規格におけるこ のような検証を Attestationと呼ぶ)する。具体的には、プログラムに不正な改竄が加 えられていないか、正常に動作しているかなどを検証する。なお、本実施の形態では
、端末装置 3001に AIKクレデンシャルを発行する CAサーバ装置 3002力 Attest ationにおける検証装置となっている力 CAサーバ装置 3002とは、個別の装置が、 端末装置 3001の動作時における Attestationの検証装置の役割を果たす構成で あっても良い。
1. 2 端末装置 3001の構成
(1)ハードウェア構成
ここで、端末装置 3001のハードウェア構成について図 29を用いて説明する。
[0371] 端末装置 3001ίま、内咅ノ ス 3160により、送受信咅 3103、 CPU3141、 RAM31 45、ハードディスクユニット 3142、セキュア ROM3143及び TPM3117を接続して 構成される。
(1 1)送受信部 3103
送受信部 3103は、インターネット 3005に接続可能なインタフェースを備えており、 インターネット 3005に接続された外部機器との間で情報の送受信を行う。
[0372] (1— 2)セキュア ROM3143
セキュア ROM3143には、機器固有の情報 (機器 ID、機種番号など)、及び、 BIO S3109、ブートローダー 3162といった端末装置 3001を起動する一連のプログラム 群を記憶している。
BIOS3109は、コンピュータに接続されたディスクドライブ、キーボード、ビデオ力 ードなどの周辺機器を制御するプログラム群であって、起動時に最初に実行されるプ ログラムである。 BIOS3109は、複数のブロック力も構成される力 図 29に示すように 、電源投入直後に実行されるブートブロック 3165に CRTM3163 (後述する)が記述 されている。
[0373] ブートローダー 3162は、 OSのカーネルを呼び出す手順を含む。
これらのプログラム及び、ハードディスクユニット 3142に、記憶されている各プログ ラムには、 RTM (Root of Trust Measurements) 3161力含まれて! /、る。これは 、各プログラムが呼び出すプログラムのインテグリティ値を計測する機能を実現するコ ードである。インテグリティ値とは、そのプログラムの完全性を示す値であって、ここで は一例として、呼び出されるプログラムコードのハッシュ値をインテグリティ値とする。
ノ、ッシュ関数には SHA— 1を用いる。これは、一例であって、他の一方向関数を用い ても良いし、呼び出すプログラムのビット数を計数するなど、他の方法でインテグリテ ィ値を計測しても良い。
[0374] 特に、 BIOS3109は、最初に実行されるプログラムであり、 BIOS3109に含まれる RTMコード(図 29の CRTM1363)は、他のプログラムに含まれる RTMコードとは異 なり、 BIOS3109自体のインテグリティ値を計測する手順、及び、 BIOS3109により 呼び出されるプログラムのインテグリティ値を計測する手順を含む。
[0375] BIOS3109は、書き換え不能なセキュア ROM3143に記録されており、 BIOS310 のブートブロック 3156に含まれる RTMコードによって計測された BIOS3109のイン テグリティ値の信頼性を根拠として、 PCR値 (後述する)の、信頼性が保証される。そ のため、 BIOS3109に含まれる RTMコードは、他のプログラムの RTMコードと区別 して CRTM (Core Root of Trust for Masurement)と呼ばれる。
[0376] (1 - 3) CPU3141
CPU3141は、セキュア ROM3143、ハードディスクユニット 3142、 RAM3145に 記憶されて 、る各種のプログラムを実行することで、下記の各種の機能部を実現する
(1—4) RAM (Random Access Memory) 3145
RAM3145は、揮発性の記憶媒体であって、 CPU3141により実行されるプロダラ ムを、ハードディスクユニット 3142又はセキュア ROM3143からロードし、記憶してい る。
[0377] (1— 5)ハードディスクユニット 3142
ハードディスクユニット 3142は、不揮発性で、書き込み及び消去可能な記録媒体 である。ハードディスクユニット 3142は、一例として、図 29に示すような OS及び検証 プログラム等のアプリケーションを記憶して 、る。
図 29には図示していないが、ハードディスクユニット 3142は、プログラムの他にも C PU3141により用いられる各種のデータ、ユーザデータなどを記憶して 、る。
[0378] (1 -6)TPM3117
TPM3117は、インタフェース 3144、 PCR (Platform Configulation Register
) 3146、不揮発メモリ 3110、実行エンジン 3148、舌 L数生成器 3151、 SHA— 1演算 器 3152、 1^\演算器3153、鍵生成器 3154及びプログラムコード格納部 3156を 1 チップ上に形成したものである。
[0379] PCRは、揮発性のメモリで構成され、図 30は、 PCR3146内部を示している。 PCR 3146は、複数の記憶領域 3171、 3172、 3173 · · ·を含んでいる。説明の便宜上、 記憶領域 3171、 3172、 3173 · · ·に記憶される PCR値を、それぞれ、 PCRO、 PCR 1、 PCR2- · ·と記載する。各記憶領域は、ハードディスクユニット 3142又はセキュア ROM3143に記憶されている各プログラムと一意に対応している。例えば、記憶領域 3171は、 BIOSと対応して!/、る。
[0380] 不揮発メモリ 3110は、各種の鍵が記憶されている。これらの鍵については、機能部 の説明において説明する。不揮発メモリ 3110は、各種の鍵を、階層構造を形成して 記憶しており、下位の鍵を上位の鍵を用いて暗号ィ匕して保持している。また、階層構 造のルート鍵となる SRK (StorageRootKey)を記憶して!/、る。
実行エンジン 3148は、プログラムコード格納部 3156に記憶されているプログラム に従って動作し、各演算器を制御することで、各種の機能を実現する。
[0381] 乱数生成器 3151は、乱数 (ノンス)を生成して出力する。
SHA- 1演算器 3152は、入力されたデータをハッシュ関数に代入してハッシュ値 を算出する。ここでは、一例として SHA—1を用いるが、他の一方向関数でも良い。
RSA演算器 3153は、入力されたデータ及び鍵を用いて RSA暗号方式に従った 暗号化演算又は復号演算を行う。
[0382] 鍵生成器 3154は、 RSA暗号に用いられる鍵ペアを生成する回路である。
プログラムコード格納部 3156は、一例として、図 31に示すようにストレージアクセス プログラム 3157、ログ保存プログラム 3158、 PCR値算出プログラム 3159 · · 'など各 種のプログラムを記憶している。これらのプログラムは、実行エンジン 3148により実行 可能な機械語形式で述されている。また、実行エンジン 3148が各プログラムを実行 する際に必要なデータ、演算途中のデータなど、各種のデータを一時的に記憶する
[0383] 上記のストレージアクセスプログラム 3157は、 TPM3117外の記憶媒体(ここでは、
RAM3145、ハードディスクユニット 3142、セキュア ROM)にアクセスする手順を含 むプログラムである。
ログ保存プログラム 3158は、 PCR3146の記憶している PCR値の何れかの値が変 わるたびに、 PCR3146の記憶している PCR値群を取得し、ストレージアクセスプログ ラム 3157により、取得した PCR値群をノヽードディスクユニット 3142に蓄積し、ログ情 報を生成する手順を含むプログラムである。
[0384] PCR値算出プログラム 3159は、 SHA— 1演算器 3152を用いて、メモリ 3108 (後 述)に新たにロードされるプログラムに対応する PCR値を算出し、算出した PCR値を 、 PCR3146内の適切な領域に書き込む手順を含むプログラムである。
(1— 7)入力部 3166及び表示部 3167
入力部 3166は、キーボード、マウスなどの入力機器と接続されており、これらの機 器の利用者の操作を受け付け、受け付けた操作を示す操作情報を CPU3141へ通 知する。
[0385] 表示部 3167は、モニタと接続されており、 CPU3141から出力される各種の画像を モニタへ出力する。
(2)機能的構成
図 32は、端末装置 3001及び CAサーバ装置の機能的構成を示した機能ブロック 図である。図中の矢印は、端末装置 3001の Attestationにおけるデータフローを示 している。
[0386] 図 32に示すように、端末装置 3001は、 ID記憶部 3101、制御部 3102、送受信部 3103、測定値通知部 3104、プログラム記憶部 3106、 RTM3107,メモリ 3108、 BI OS3109、鍵記憶部 3120、 PCR値記憶部 3111、ログ取得部 3112、 PCR値算出 部 3113、証明書記憶部 3114及びログ記憶部 3116から構成される。ここで、測定値 通知部 3104、 TPM制御部3118、鍵記憶部 3120、?0^値記憶部3111、ログ取得 部 3112及び PCR値算出部 3113が TPM上に形成される回路により実現される。
[0387] 上述したノ、一ドウエアが適切に動作することにより、 ID記憶部 3101、制御部 3102 、送受信部 3103、測定値通知部 3104、プログラム記憶部 3106、 RTM3107、メモ リ 3108、 BIOS3109,鍵記憶部 3120、 TPM制御部 3118、 PCR値記憶部 3111、
ログ取得部 3112、?0^値算出部3113、証明書記憶部 3114、ログ記憶部 3116及 び検証部 3119は実現される。
[0388] 以下に、各機能部について説明する。
(2—1) ID記憶部 3101
ID記憶部 3101は、セキュア ROM3143により構成されており、当該端末装置 300 1を一意に識別する機器 IDを記憶して 、る。
(2— 2)制御部 3102
制御部 3102は、メモリ 3108にロードされている各種のプログラムに従って、各構成 要素の動作を制御する。このとき制御部 3102は、具体的には図示していないが、各 機能部へ制御信号を出力している。また、利用者によるデータ及び指示の入力を受 け付け、受け付けた指示に従って各部を制御する。
[0389] また、制御部 3102は、 AIKクレデンシャル (後述する)を取得済みである力否かを 記憶しており、未取得の状態で端末装置 3001が起動された場合、 TPM制御部 311 8へ、 ALKクレデンシャルが未取得であることを通知する。ここで、起動とは、 OSがメ モリ 3108にロードされ実行可能な状態であるとする。
続いて、制御部 3102は、 TPM制御部 3118から、新たに生成された AIK公開鍵を 受け取る。 AIK公開鍵を受け取ると、 TPM3117内にぉぃて新たに生成されたAIK 秘密鍵と AIK公開鍵 (以下、必要に応じて AIK鍵ペアと呼ぶ)に割り当てる IDを生成 する。
[0390] 次に、制御部 3102は、証明書記憶部 3114から、 EKクレデンシャル 3121と PF (プ ラットフオーム)クレデンシャル 3122 (後述する)とを読み出す。続いて、送受信部 31 03を介して、生成された ID、 AIK公開鍵、読み出した EKクレデンシャル、 PFクレデ ンシャルを、 CAサーバ装置 3002に送信し、 AIKクレデンシャルの発行を要求する。
[0391] 要求が認められると、制御部 3102は、送受信部 3103を介して暗号化 AIKクレデ ンシャルを受信する。暗号化 AIKクレデンシャルは、 EK公開鍵を用いて AIKクレデ ンシャルを暗号ィ匕したものである。制御部 3102は、 EK秘密鍵を用いて受信した暗 号化 AIKクレデンシャルを復号し、 AIKクレデンシャルを生成する。制御部 3102は、 生成した AIKクレデンシャルを証明書記憶部 3114に書き込む。図 33は、既に AIK
クレデンシャル 3123取得後の証明書記憶部 3114を示している。
[0392] なお、制御部 3102自身が EK秘密鍵を読み出し、暗号化 AIKクレデンシャルの復 号を行う代わりに、 TPM3117内 TPM制御部へ、暗号化 AIKクレデンシャルを出力 し、復号を依頼してもよい。このようにすれば、 EK秘密鍵が、 TPMチップ外へ出力さ れることがなくなり、より安全性が高まる。
AIKクレデンシャルを取得済みの状態で、端末装置 3001が起動された場合、自機 が起動したことを示す起動通知を、送受信部 3103を介して、 CAサーバ装置 3002 へ送信する。続いて、 CAサーバ装置 3002から、動作許可通知又は動作禁止通知 を受信する。動作許可通知を受信した場合は、そのまま、各構成要素の動作の制御 を続行する。動作禁止通知を受信した場合は、当該端末装置 3001が不正な構成で あるか、不正動作をしている旨を通知する警告画面をモニタに表示し、端末装置 300 1の動作を停止させる。
[0393] 制御部 3102は、具体的には CPU3141が、メモリ 3108、セキュア ROM3143、ノヽ ードディスクユニット 3142に記憶されているコンピュータプログラムに従って動作する ことで、その機能を達成する。
(2— 3)送受信部 3103
送受信部 3103は、インターネット 3005に接続された外部機器と、端末装置 3001 内の各機能部との間で各種の情報の送受信を行う。ここで、前記外部機器には、 CA サーバ装置 3002が該当する。実際に、機器間で通信を行う際には、使い捨ての鍵( セッション鍵)を生成し、生成したセッション鍵でデータを暗号ィ匕して、安全に送受信 を行うが、これは、公知の技術により実現可能であり、本発明には直接関係が無いの で、以下の説明において、通信時におけるセッション鍵による暗号化、復号の処理に ついての説明は省略する。
[0394] (2—4)プログラム記憶部 3106
プログラム記憶部 3106は、具体的にはハードディスクユニット 3142により構成され 、オペレーティングシステム(以下 OS)を初めとする各種のプログラムを記憶している 。これらのプログラム力 メモリ 3108にロードされ、実行されることで、いくつかの機能 部は実現される。
[0395] (2— 5)メモリ 3108
メモリ 3108は、主に RAM3145から構成され、ハードディスクユニット 3142の一部 、セキュア ROM3143を含む。メモリ 3108は、 CPU3141の実行する各種のプログラ ムを、プログラム記憶部 3106などからロードし、実行可能な状態で記憶している。
[0396] (2-6) BIOS3109
BIOS3109は、 IPLの一種であり、具体的には、セキュア ROM3143内に記憶さ れているプログラムである。端末装置 3001が、起動されると、最初にメモリ 3108に口 ードされ実行される。
(2- 7)RTM3107
RTM3107は、メモリ 3108に新たなプログラムがロードされる前、そのプログラムの インテグリティ値を計測し、計測したインテグリティ値とロードされるプログラムを示す 識別子を PCR値算出部 3113へ出力する。ここでは、計測対象のプログラムコードの ノ、ッシュ値をインテグリティ値とする。ハッシュ値関数には、 SHA— 1を用いる。
[0397] RTM3107は、 BIOS3109に含まれる CRTM3163、及びメモリ 3108にロードさ れている各プログラム内の RTMコードを CPU3141が実行することで実現される機 能部である。また、最初にロード実行されるプログラムである BIOS3109に関しては、 ブートブロック 3156に含まれる CRTM3163が BIOS3109自身のインテグリティ値を 計測して出力する。
[0398] なお、ここでは、各プログラムに RTMコードが含まれて!/、るとした力 TCG規格で は、これは必須ではなぐ CPU3141力 BIOS3109に埋め込まれている、 CRTM3 163を実行することで、新たにメモリ 3108にロードされるプログラムのインテグリティ値 を計測する構成であっても良い。
(2— 8)証明書記憶部 3114
証明書記憶部 3114は、具体的にはハードディスクユニット 3142により構成され、 一例として、図 33に示すように EK (Endorsement Key)クレデンシャル(証明書) 3 121、 PFクレデンシャル 3122、 AIK (Attestation Identity Key)クレデンシャル 3123を記憶している。
[0399] EKクレデンシャル 3121は、 TPM製造者又は端末装置製造者によって発行される
証明書であって、 EK公開鍵の正当性を証明する。 EK公開鍵と後述する EK秘密鍵 3126は、 RSA暗号に対応する鍵ペアである。 EK秘密鍵 3126及び前記 EK公開鍵 は、 TPMチップに対応する鍵ペアであって、 EKクレデンシャル 3121は、 TPM製造 者又は端末装置製造者によって、端末装置 3001の製造過程おいて生成され、証明 書記憶部 3114に書き込まれる。
[0400] PFクレデンシャル 3122は、プラットフォーム(例えば、端末装置 3001自体、端末 装置 3001内の TPMチップを搭載した部品)の構成及び製造者を明確にし、プラット フォームの特性を明らかにする属性証明書である。また、プラットフォームが正当な T PMを搭載していることを証明するものである。具体的には、プラットフォームを端末 装置 3001自体とすると、端末装置 3001の製造業者を示す識別情報、搭載している TPM及び CPUの識別番号、 OSの種類、ソフトウェア構成を示す情報などを含む。 また、プラットフォームをマザ一ボードとすると、マザ一ボードの製造業者を示す識別 情報、マザ一ボードに搭載されている TPM及び CPUの機種番号、 OSの種類などを 含む。 PFクレデンシャル 3122は、プラットフォーム製造者により発行され、端末装置 3001の製造過程において、証明書記憶部 3114に書き込まれる。
[0401] 各クレデンシャルは、一例として X. 509形式で記述され、クレデンシャルを一意に 示す識別番号、発行者名、有効期限、発行者 (発行装置)の秘密鍵 (以下、サーバ 秘密鍵)を用いて生成された書名データ、前記署名データの生成に用いられたアル ゴリズムを示す情報などを含んで 、る。
なお、ここでは、証明書記憶部 3114はハードディスクユニット 3142により構成され るとしている力 TPM3117内に実装されても良い。
[0402] (2— 9)ログ記憶部 3116
ログ記憶部 3116は、具体的にはハードディスクユニット 3142により構成される。口 グ記憶部 3116は、端末装置 3001が起動して力も現在までの、 PCR値群の履歴を 記憶している。以下、この履歴をログ情報と呼ぶ。ログ情報は、少なくとも各 PCR値と 対応するプログラムを示す識別情報と各 PCR値の履歴を含むが、他にも、プログラム のバージョン情報、プログラムの挙動を示す情報を含んでも良い。なお、 TCG規格で は、このログ情報を S ML (Stored Measurement Log)と呼ぶ。以下の説明及び
図面において、必要に応じてログ情報を SMLと略して記載する。
[0403] なお、ここでは、ログ記憶部 3116は、ハードディスクユニット 3142により構成される としている力 TPM3117内に実装されても良い。
(2— 10)鍵記憶部 3120
鍵記憶部 3120は、一例として、図 34に示すように EK秘密鍵 3126、 AIK秘密鍵 3 127、八11^公開鍵3128、 SRK3129 ' · ·を記憶している。ハードウェア構成の説明に おいて述べたように、これらの鍵は、 SRK3129をルート鍵とする階層構造を形成し て記憶されているが、ここでは、説明の便宜上、前述の階層構造に関する説明は省 略する。
[0404] EK秘密鍵 3126は、 EKクレデンシャル 3121に含まれる EK公開鍵と対になる秘密 鍵であって、 RSA暗号に用いられる鍵ペアの一方に当たる。 EK秘密鍵 3126及び 前記 EK公開鍵は、 TPMチップに一意に対応する鍵であり、 EK秘密鍵 3126及び E Kクレデンシャル 3121は、 TPM製造者又は端末装置 3001の製造者によって、出 荷前に書き込まれる。
[0405] AIK秘密鍵 3127及び八1 公開鍵3128は、当該端末装置 3001の初起動時及び 初期化直後の起動時に、 TPM3117内の鍵生成器 3154により生成された鍵ペアで あって、 RSA暗号に対応している。 AIK公開鍵 3128は、 AIKクレデンシャル 3123 に含まれる公開鍵と同一であるので、鍵記憶部 3120に必ずしも書き込まれている必 要はない。また、 AIK鍵ペアの取得のタイミングは、初起動時及び初期化直後に限 定されるものではなぐ製造過程において、書き込まれるとしてもよい。
[0406] SRK3129については、既に述べた通りであるので、説明を省略する。
ここでは、初起動時に AIK鍵ペアが生成され、 AIKクレデンシャル 3123の取得後 の状態の鍵記憶部 3120について説明した。
(2- 11) PCR値記憶部 3111
PCR値記憶部 3111は、 PCR3146がその機能を担っており、 PCR0、 PCR1、 PC R2','を記憶している。
[0407] 各 PCR値は、それぞれ、 BIOS3109、プログラム記憶部 3106に記憶されている各 プログラムと対応している。つまり、図 30の各記憶領域は、それぞれ、異なるプロダラ
ムと対応しており、具体的には、記憶領域 3171、 3172、 3173 · · ·は、それぞれ、起 動される順に、 BIOS3109、ブートローダー、 OS ' · ·と対応している。従って、 PCR0 は、 BIOS3109と対応しており、 PCR1は、ブートローダーと対応しており、 PCR2は 、 OSと対応して!/ヽる。
[0408] なお、上述の各 PCR値とプログラムとの対応は、一例であって、これに限定されるも のではない。
( 2— 12) TPM制御部 3118
TPM制御部 3118は、 TPM3117内の各機能部の動作を制御する。図示していな いが、 TPM制御部3118は、 TPM内外の各部へ制御信号を出力している。
[0409] 具体的には、送受信部 3103を介して、 CAサーバ装置 3002から、乱数と Attesta tion (構成証明)要求を受信する。 Attestation要求を受信すると、受信した乱数を 測定値通知部 3104 (後述)へ出力する。次に、ログ記憶部 3116からログ情報を読み 出し、証明書記憶部 3114から AIKクレデンシャル 3123を読み出す。続いて、測定 値通知部 3104により生成された署名データと、読み出した AIKクレデンシャル 3123 とログ情報とを、送受信部 3103を介して、 CAサーバ装置 3002へ送信する。
[0410] また、 TPM制御部3118は、端末装置 3001の初起動時又は初期化直後の起動時 に、制御部 3102から AIKクレデンシャルが未取得である旨を通知される。この通知 を受けると、 TPM制御部3118は、 AIK鍵ペアを生成し、生成した AIK鍵ペアを、鍵 記憶部 3120に書き込む。続いて、生成された AIK公開鍵を制御部 3102へ出力す る。
[0411] TPM制御部 3118は、具体的には、実行エンジン 3148が、プログラムコード格納 部 3156に格納されているプログラムに従って動作し、各演算機を操作することにより 、その機能を達成する。
(2— 13) PCR値算出部 3113
PCR値算出部 3113は、 RTM3107力ら、新たにメモリ 3108にロードされるプログ ラムの識別子とインテグリティ値 (ハッシュ値)とを受け取る。
[0412] これらを受け取ると、 PCR値算出部 3113は、 PCR値記憶部 3111において、受け 取った識別子と対応する PCR値が格納される領域の直前領域に記憶されている PC
R値を読み出す。次に、 PCR値算出部 3113は、読み出した PCR値と受け取ったィ ンテグリティ値を結合してハッシュ関数に代入する。算出されたハッシュ値を PCR値と して、 PCR値記憶部 3111内において、受け取った識別子と対応する領域に書き込 む。
[0413] ただし、 BIOS3109と対応する PCROを算出する場合、記憶領域 3171が先頭の 記憶領域であるので、受け取ったインテグリティ値をそのままハッシュ関数に代入す る。若しくは、予め決められた初期値と CRTM3163のインテグリティ値を結合した値 をハッシュ関数に代入し、ノ、ッシュ値を算出しても良い。
TCG規格にぉ 、て、計測されたインテグリティ値にこのような演算を施して PCR値 を算出することを、拡張処理という。
[0414] 以下に、具体例を挙げて説明する。
BIOS,ブートローダー、 OSは、それぞれ、 PCR0、 PCR1、 PCR2と対応している。 各プログラムは、 BIOS、ブートローダー、 OS、デバイスドライノく · · ·の順にメモリ 310 8にロードされ実行される。 OSをメモリ 3108にロードするとき、 PCR値算出部 3113 は、 RTM3107から、 OSを示す識別子と OSから計測されたインテグリティ値を受け 取る。これらを受け取ると、 PCR値算出部 3113は、受け取った識別子を基に、 PCR 1を読み出し、読み出した PCR1と受け取ったインテグリティ値とを結合してハッシュ 関数に代入する (拡張処理)。次に、 PCR値算出部 3113は、算出されたハッシュ値( PCR2)を所定の記憶領域 3173に書き込む。
[0415] なお、端末装置 3001が複数のアプリケーションを備えており、各アプリケーションの ロードの順序が決まっておらず、アプリケーションが、ロードされる順序は、利用者の 操作によって決まる場合が考えられる。このような場合、一例として、 OSと対応する P CR3を用いて、ロードされるアプリケーション力も計測されたインテグリティ値を拡張し 、各アプリケーションに対応する PCR値を算出する。
[0416] なお、 PCR値算出部 3113は、具体的には、実行エンジン 3148が、プログラムコー ド格納部 3156に格納されて 、るプログラムに従って動作し、各演算機を操作するこ とにより、その機能を達成する。
(2— 14)ログ取得部 3112
ログ取得部 3112は、 PCR値記憶部 3111の記憶して 、る PCR値群を監視しており 、何れかの PCR値が変化すると、 PCR値記憶部 3111から1^1^値群を読み出し、読 み出した PCR値群をログ記憶部 3116へ書き込む。また、メモリ 3108の内容を監視 し、プログラムの動作状態を示す情報を生成してログ記憶部 3116に書き込む。
[0417] ログ取得部 3112は、具体的には、実行エンジン 3148が、プログラムコード格納部 3156に格納されて ヽるプログラムに従って動作し、各演算機を操作することにより、 その機能を達成する。
(2— 15)測定値通知部 3104
測定値通知部 3104は、インターネット 3005及び送受信部 3103を介して、 CAサ ーバ装置 3002から、乱数 (ノンス)を受信する。
[0418] 乱数を受信すると、測定値通知部 3104は、鍵記憶部 3120から AIK秘密鍵を読み 出し、 PCR値記憶部 3111から1^1^値群を読み出す。次に、読み出した AIK秘密鍵 を用いて、受信した乱数と PCR値群に署名生成アルゴリズムを施して署名データを 生成する。ここでは、一例として署名生成アルゴリズムとして RSA暗号を利用する力 他のアルゴリズムを用いても良 、。
[0419] 次に、 TPM制御部 3118の制御に従って、生成した署名データを、送受信部 3103 を介して、 CAサーバ装置 3002へ送信する。
測定値通知部 3104は、具体的には、実行エンジン 3148が、プログラムコード格納 部 3156に格納されているプログラムに従って動作し、各演算機を操作することにより 、その機能を達成する。
[0420] (2— 16)検証部 3119
検証部 3119は、端末装置 3001が、検証装置となって他の機器との間で Attestat ion処理を行う場合に、前記他の機器の正当性を検証する機能部である。具体的な 構成は、 CAサーバ装置 3002内の検証部 3013 (後述する)同様であるので、ここで は詳細な説明は省略する。なお、検証部 3013内は乱数生成部 3012を備えている 力 検証部 3119は、内部に乱数生成部を備えていても良いし、乱数生成を TPMチ ップに依頼する構成でも良い。また、検証部 3013は、検証データ記憶部 3018の記 憶して!/、る各種の情報を用いた検証を行って 、るので、検証部 3119も同様の情報(
検証データ)が必要である。ここで、この情報は、図 32の機能ブロック図には示されて いないが、ハードディスクユニット 3142に同様の検証データが記憶されているとする
1. 3 CAサーバ装置 3002の構成
CAサーバ装置 3002は、図 28に示すように、公正な第三者機関であるプライバシ 一 CAの保持する装置である。
[0421] CAサーバ装置 3002は、図 32に示すように、送受信部 3015、制御部 3011、検証 部 3013、検証データ記憶部 3018から構成される。さらに、検証部 3013は、乱数生 成部 3012、証明書検証部 3014、署名検証部 3016、ログ検証部 3017を含む。また 、図示していないが、操作者によるデータ及び指示の入力を受け付ける入力部、各 種の情報を表示する表示部を含んで 、る。
[0422] CAサーバ装置 3002は、具体的には、マイクロプロセッサ、 RAM、 ROMを含んで 構成されるコンピュータシステムであって、前記 RAM、 ROMには、コンピュータプロ グラムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムに 従って動作することで、 CAサーバ装置 3002は、その機能の一部を達成する。
(1)送受信部 3015
送受信部 3015は、インターネット 3005に接続可能なインタフェースを備えており、 制御部 3011の制御の下、インターネット 3005を介して接続された外部機器と、各機 能部との間のデータの送受信を行う。
[0423] (2)検証データ記憶部 3018
検証データ記憶部 3018は、検証部 3013による Attestation処理に用 、られる検 証データを記憶している。図 32では、その一例として、サーバ公開鍵 3021、乱数 30 22、正規 PCR値群 3023、正規ログ情報 3024を記憶している。
サーバ公開鍵 3021は、サーバ秘密鍵と対応する鍵であって、これらは RSA暗号 に対応している。
[0424] 乱数 3022は、 Attestationの過程において、乱数生成部 3012により生成された 擬似乱数である。
正規 PCR値群 3023は、端末装置 3001が、正常に動作した場合に算出される各 P
CR値を含む。
正規ログ情報 3024は、証明装置が正常に動作した場合に生成されるべきログ情 報であって、少なくとも、正常に動作した場合の各 PCR値群の履歴を含む。
[0425] (3)制御部 3011
制御部 3011は、 CAサーバ装置 3002内の各構成要素の動作を制御する。
制御部 3011は、インターネット 3005及び送受信部 3015を介して、端末装置 300 1から、起動通知を受信する。
また、制御部 3011は、インターネット 3005及び送受信部 3015を介して、端末装 置 3001力ら、 AIK鍵ペアを示す IDと、 AIK公開鍵と、 EKクレデンシャルと、 PFタレ デンシャルと、 AIKクレデンシャル発行要求とを受信する。
[0426] (3-1) Attestationの制御
起動通知を受信すると、制御部 3011は、検証部 3013へ端末装置 3001との間の Attestationの開始を指示する。
次に、検証部 3013から Attestationの結果を通知される。 Attestationの結果、 端末装置 3001が正当であると通知されると、制御部 3011は、送受信部 3015を介し て、端末装置 3001に動作許可通知を送信する。
[0427] Attestationの結果、端末装置 3001が不正であると通知されると、制御部 3011は 、送受信部 3015を介して、端末装置 3001に動作禁止通知を送信する。
(3- 2) AIKクレデンシャルの発行
制御部 3011は、 AIKクレデンシャル発行要求を受信すると、受信した EKクレデン シャル及び PFクレデンシャルの発行元へ、それぞれ、 EKクレデンシャル及び PFタレ デンシャルを送信し、クレデンシャルが有効であるか否かを問い合わせる。ここでは、 図 28に示す TPMサーバ装置 3003へ、 EKクレデンシャルを送信し、 PFクレデンシ ャルを端末サーバ装置 3004へ送信する。 制御部 3011は、 AIKクレデンシャルを生成する。ここで生成される AIKクレデンシャ ルは、 ACサーバ装置の秘密鍵 (以下、サーバ秘密鍵)を用いて、少なくとも AIK公 開鍵に署名生成アルゴリズムを施して生成された署名データを含む。
続いて、制御部 3011は、送受信部 3015を介して、生成した AIKクレデンシャルを EKクレデンシャルに含まれる EK公開鍵で暗号化し、暗号化 AIKクレデンシャルを 生成する。次に、送受信部 3015を介して、生成した暗号化 AIKクレデンシャルを、 端末装置 3001へ送信する。
[0429] 問合せの結果、端末装置 3001から受信したいずれかのクレデンシャルが無効であ れば、制御部 3011は、 AIKクレデンシャルの発行ができない旨を示す発行不可通 知を送信する。
(4)検証部 3013
検証部 3013は、図 32に示すように乱数生成部 3012、証明書検証部 3014、署名 検証部 3016及びログ検証部 3017から構成される。
[0430] (4 1)乱数生成部 3012
乱数生成部 3012は、擬似乱数生成エンジンを備え、制御部 3011から、 Attestati onの開始の指示を受け取ると乱数を生成する。
次に、生成した乱数を検証データ記憶部 3018に書き込むとともに、送受信部 301 5を介して、生成した乱数及び Attestation要求を送信する。
[0431] (4— 2)証明書検証部 3014
証明書検証部 3014は、乱数生成部 3012による Attestation要求の送信後、所定 時間内に、端末装置 3001から、 AIK証明書と署名データとログ情報とを受信する。
CAサーバ装置 3002は、無効になった AIKクレデンシャルを示す AIKクレデンシャ ル CRLを記憶して!/、る外部ストレージ 3026と接続されて!、る。
[0432] 証明書検証部 3014は、受信した AIK証明書が AIKクレデンシャル CRLに登録さ れて!ヽるか否かを検証する。
登録されていない場合、証明書検証部 3014は、検証データ記憶部 3018からサー バ公開鍵を読み出し、読み出したサーバ公開鍵を用いて、受信した AIK証明書に含 まれる署名データを検証する。検証の結果、 AIK証明書が正当であると証明されると 、証明書検証部 3014は、受信した署名データ、ログ情報及び AIK証明書に含まれ る AIK公開鍵を署名検証部 3016へ出力する。
[0433] 受信した AIKクレデンシャルが AIKクレデンシャル CRLに登録されている場合、及
び、受信した AIKクレデンシャルに含まれる署名データの検証、 AIKクレデンシャル が正当でな 、場合、端末装置 3001が不正である旨を示す検証結果を制御部 3011 へ出力する。
(4 3)署名検証部 3016
署名検証部 3016は、証明書検証部 3014から署名データとログ情報と AIK公開鍵 とを受け取る。これらを受け取ると、署名検証部 3016は、受け取った AIK公開鍵を 用いて、署名データに署名検証アルゴリズムを施して乱数と PCR値群を生成する。こ こで生成された乱数、 PCR値群をそれぞれ、証明用乱数、証明用 PCR値群と呼ぶ。 なお署名検証アルゴリズムには、 RSA暗号を用いる。
[0434] 署名検証部 3016は、検証データ記憶部 3018から乱数 3022と正規 PCR値群 30 23とを読み出す。生成した証明用乱数と読み出した乱数 3022とを比較する。両者 がー致すれば、続いて、生成した証明用 PCR値群を構成する各証明用 PCR値と、 読み出した正規 PCR値群 3023を構成する各正規 PCR値とを、それぞれ比較する。 全ての証明用 PCR値と正規 PCR値とがー致すると、署名検証部 3016は、受信した ログ情報をログ検証部 3017へ出力する。
[0435] 生成した証明用乱数と読み出した乱数 3022とが一致しない場合、及び、何れか一 組でも、証明用 PCR値と正規 PCR値とがー致しない場合、署名検証部 3016は、端 末装置 3001が不正である旨を示す検証結果を制御部 3011へ出力する。
(4— 4)ログ検証部 3017
ログ検証部 3017は、署名検証部 3016から、受信されたログ情報を受け取る。ログ 情報を受け取ると、ログ検証部 3017は、検証データ記憶部 3018から、正規ログ情 報 3024を読み出し、受け取ったログ情報と読み出した正規ログ情報 3024とを比較 する。
[0436] 比較の結果、両者が一致すると、ログ検証部 3017は、端末装置 3001が正当であ る旨を示す検証結果を制御部 3011へ出力する。
比較の結果、両者が一致しなければ、ログ検証部 3017は、端末装置 3001が不正 である旨を示す検証結果を制御部 3011へ出力する。
1. 4 TPMサーバ装置 3003
TPMサーバ装置 3003は、 TPMベンダの所有する装置であって、各 TPMチップ に固有の EK鍵ペア及び EK公開鍵を証明する EKクレデンシャルを管理する。
[0437] TPMサーバ装置 3003は、無効になった EKクレデンシャルを示す EKクレデンシャ ル CRLを記憶している外部ストレージと接続されており、 CAサーバ装置 3002から、
EKクレデンシャルの有効性の問合せを受け付ける。
1. 5 端末サーバ装置 3004
端末サーバ装置 3004は、端末装置ベンダの所有する装置であって、端末装置( 又は装置内のプラットフォーム)に固有の PFクレデンシャルを管理する。
[0438] 端末サーバ装置 3004は、無効になった PFクレデンシャルを示す PFクレデンシャ ル CRLを記憶している外部ストレージと接続されており、 CAサーバ装置 3002から P
Fクレデンシャルの有効性の問合せを受け付ける。
1. 6 動作
以下に、フローチャートを用いて、各装置の動作について説明する。
[0439] (1) Attestation処理における動作
図 35〜図 37は Attestation処理における各機器の動作を示したフローチャートで ある。以下に、図 35〜図 37を用いて Attestation処理における各機器の動作につ いて説明する。以下、記載を簡単にするためプログラム Aのインテグリティ値を In (A) と記載する。なお、図 32中データフローと図 35〜図 37の動作のうち対応するものに は、同一のステップ番号を付している。
[0440] 端末装置 3001に電源が入ると(ステップ S3000)、 BIOS3109のブートブロック 31 65に記述されている CRTM3163が実行され (ステップ S3001)、その結果、 BIOS のインテグリティ値 In (BIOS)が計測される(ステップ S3004)。 CRTM及び RTMコ ードにより実現される機能部 RTM3107は、計測したインテグリティ値 In (BIOS)と BI OSを示す識別子とを、 PCR値算出部 3113へ出力する。
[0441] PCR値算出部 3113は、インテグリティ値 In (BIOS)を受け取り、以下の演算により BIOSと対応する PCR0を算出する(ステップ S3006)。
PCR0 = SHA1 (In (BIOS) )
続いて、 PCR値算出部 3113は、算出した!^!^!を!^!^値記憶部 :!:!:!に書き込
む(ステップ S3008)。
[0442] BIOSの PCR値が記憶されると、 BIOSは、メモリ 3108にロードされ、実行される(ス テツプ S3009)。
BIOSの実行過程において、ブートローダーをメモリ 3108に読み出す必要が生じる と、 RTM3107は、ブートローダーのインテグリティ値 In (BL)を計測し、 PCR値算出 咅 113へ出力する(ステップ S 3012)。
[0443] PCR値算出部 3113は、インテグリティ値 In (BL)を受け取り、以下の演算により、ブ ートローダーの PCR値を算出する(ステップ S3013)。
PCR1 = SHA1 (PCRO+In (BL) )
ここで、上記の式の「 +」は連結を意味する。
PCR値算出部 3113は、算出した PCR1を PCR値記憶部 3111に書き込む (ステツ プ S3014)。
[0444] PCR1が PCR値記憶部 3111に書き込まれると、ブートローダーは、メモリ 3108に ロードされ、実行される(ステップ S3016)。
同様にして、!^!!^^:^ァ及び!^!^値算出部 :!!^は、 OSと対応する PCR値を算 出し(PCR2 = SHA1 (PCRl +In (OS) ) ) ,算出した PCR2を PCR値記憶部 3111 に書き込む(ステップ S 3018)。
[0445] ここで、上記の式の「 +」は連結を意味する。
?0^2が!^1^値記憶部3111に書き込まれると、 OSは、メモリ 3108にロードされ実 行される(ステップ S3021)。
ここで、当該端末装置 3001が既に、 AIKクレデンシャルを取得済みであれば (ステ ップ S3022の YES)、制御部 3102は、端末装置 3001が起動したことを示す起動通 知を、 CAサーバ装置 3002へ送信する(ステップ S3024)。
[0446] AIKクレデンシャルを未取得であれば (ステップ S3022の NO)、制御部 3102は、 ステップ S3023へ処理を移す。
CAサーバ装置 3002の制御部 3011は、端末装置 3001から起動通知を受信する (ステップ S3024)。起動通知を受信すると、制御部 3011は、検証部 3013へ Attest ationの開始を指示する。
[0447] Attestationの開始を指示されると、検証部 3013内の乱数生成部 3012は、乱数 を生成する(ステップ S3026)。次に、乱数生成部 3012は、生成した乱数と Attesta tion要求とを端末装置 3001へ送信すると共に (ステップ S3027)、生成した乱数を 検証データ記憶部 3018へ書き込む (ステップ S3028)。
[0448] 端末装置 3001の TPM制御部 3118は、乱数及び Attestation要求を受信し (ス テツプ S3027)、受信した乱数を測定値通知部 3104へ出力する。
測定値通知部 3104は、乱数を受け取ると、鍵記憶部 3120から AIK秘密鍵 3127 を読み出す (ステップ S3029)。続いて、 PCR値記憶部 3111から各1^1^値を読み 出す (ステップ S3030)。次に、測定値通知部 3104は、読み出した秘密鍵を用いて 、受け取った乱数と、読み出した PCR値群に署名生成アルゴリズムを施して、署名デ ータを生成する(ステップ S3031)。
[0449] TPM制御部 3118は、証明書記憶部 3114から AIKクレデンシャル 3123を読み出 し、ログ記憶部 3116からログ情報を読み出す (ステップ S3032)。
次に、 TPM制御部 3118は、測定値通知部 3104により生成された署名データと、 読み出した AIKクレデンシャルとログ情報とを CAサーバ装置 3002へ送信する (ステ ップ S3033)。
[0450] CAサーバ装置 3002内の証明書検証部 3014は、端末装置 3001から、署名デー タと AIKクレデンシャルとログ情報とを受信すると (ステップ S3033)、受信した AIKク レデンシャルが AIKクレデンシャル CRLに登録されて!、るか否かを確認し、登録され ている場合 (ステップ S3034の YES)、ステップ S3041へ処理を移す。
[0451] 受信した AIKクレデンシャルカ AIKクレデンシャル CRLに登録されて!、な!/、場合
(ステップ S3034の NO)、証明書検証部 3014は、検証データ記憶部 3018に記憶さ れて 、るサーバ公開鍵 3021を用いて AIKクレデンシャルを検証する(ステップ S303 6)。
署名検証部 3016は、受信した AIKクレデンシャルに含まれる AIK公開鍵を用いて 受信した署名データに署名検証アルゴリズムを施して証明用乱数と、証明用 PCR値 群を生成する(ステップ S3037)。続いて、検証データ記憶部 3018に記憶されてい る乱数 3022及び正規 PCR値群 3023を基に、証明用乱数と証明用 PCR値群とを検
証する(ステップ S 3038)。
[0452] ログ検証部 3017は、検証データ記憶部 3018に記憶されている正規ログ情報 302 4を基に受信したログ情報を検証する(ステップ S3041)。ステップ S3036〜ステップ S3041までの全ての検証のうち、いずれか一つでも失敗であれば (ステップ S3042 の NO)、制御部 3011は、端末装置 3001に動作禁止通知を送信する (ステップ S30 43)。全ての検証が成功であれば (ステップ S3042の YES)、制御部 3011は、端末 装置 3001へ動作許可通知を送信する(ステップ S3046)。
[0453] 端末装置 3001は、 CAサーバ装置 3002から、動作禁止通知又は動作許可通知を 受信する。
動作許可通知を受信した場合 (ステップ S3047の YES)、制御部 3102は、メモリに ロードされているプログラムを実行し、必要に応じて他のプログラムをメモリにロードし 実行する(ステップ S 3049)。
[0454] 動作禁止通知を受信した場合 (ステップ S3047の NO)、制御部 3102は、当該端 末装置 3001の構成が不正であることを示す警告画面を表示した後、端末装置 300 1の動作を停止させ、電源を OFFにする(ステップ S3052)。
(2)AIKクレデンシャルの取得動作
起動前の端末装置 3001は AIKクレデンシャルを保持しておらず、初起動時に CA サーバ装置 3002から AIKクレデンシャルを取得する。図 38、図 39は AIKクレデンシ ャルの取得における各機器の動作を示すフローチャートである。なお、これは、図 36 のステップ S3023の詳細である。
[0455] 以下に、図 38及び図 39を用いて AIKクレデンシャルの取得動作について説明す る。
先ず、 TPM制御部3118は、 RSA暗号に対応した新たな AIK鍵ペアを生成し (ス テツプ S3061)、生成した AIK鍵ペアを鍵記憶部 3120に書き込む(ステップ S3062 ) o次に、生成した AIK公開鍵を制御部 3102へ出力する。
[0456] 制御部 3102は、証明書記憶部 3114から EKクレデンシャル 3121と PFクレデンシ ャル 3122とを読み出す (ステップ S3063)。続いて、新たに生成された AIK鍵ペアを 識別する IDを生成する(ステップ S 3066)。
次に、制御部 3102は、 ID、 EKクレデンシャル、 PFクレデンシャル、 AIK公開鍵を CAサーバ装置 3002へ送信し、 AIKクレデンシャルの発行を要求する(ステップ S30 67)。
[0457] CAサーバ装置 3002の制御部 3011は、端末装置 3001から ID、 EKクレデンシャ ル、 PFクレデンシャル、 AIK公開鍵及び AIKクレデンシャルの発行要求を受信する( ステップ S 3067)。
これらを受信すると、制御部 3011は、 TPMサーバ装置 3003及び端末サーバ装 置 3004へ、それぞれ、 EKクレデンシャル及び PFクレデンシャルの正当性を問い合 わせる(ステップ S 3069)。
[0458] 問合せの結果、 EKクレデンシャル及び PFクレデンシャルのうち一方でも正当なけ れば (ステップ S3071の NO)、制御部 3011は、 AIKクレデンシャル発行に関する処 理を終了する。
問合せの結果、 EKクレデンシャル及び PFクレデンシャルの両方が正当であれば( ステップ S3071の YES)、制御部 3011は、受信した ID及び AIK公開鍵を含む AIK クレデンシャルを生成し (ステップ S3072)、受信した EKクレデンシャルに含まれる E K公開鍵を用いて、生成した AIKクレデンシャルを暗号ィ匕する(ステップ S3073)。
[0459] 次に、制御部 3011は、生成した暗号化 AIKクレデンシャルを端末装置 3001へ送 信する (ステップ S 3047)。
端末装置 3001の制御部 3102は、 CAサーバ装置 3002から暗号化 AIKクレデン シャルを受信すると (ステップ S3074)、鍵記憶部 3120から EK秘密鍵 3126を読み 出し (ステップ S3076)、読み出した EK秘密鍵を用いて暗号化 AIKクレデンシャルを 復号して、 AIKクレデンシャルを生成する(ステップ S3077)。
[0460] 続、て、制御部 3102は、生成した AIKクレデンシャルを証明書記憶部 3114へ書 き込む(ステップ S 3079)。
1. 7 実施の形態 1に関する変形例
(1)更新プログラムの取得
上記の実施の形態 1において、 Attestationが失敗した場合、 CAサーバ装置 300 2は動作禁止通知を送信し、端末装置 3001は、これを受信すると、動作を停止し、
電源を OFFにするとしたが、これに限るものではなぐ一部機能を制限した形で起動 するとしても良い。
[0461] また、上記の実施の形態及び変形例と同様に、 CAサーバ装置 3002は、各プログ ラムを最新バージョンに更新するための更新プログラムを送信し、端末装置 3001は 、受信した更新プログラムにより、各プログラムを最新版に更新するとしてもよい。 更新後、端末装置 3001は、再起動して、改めて Attestationを行う。
(2) Attestationのタイミング
上記の実施の形態 1では、 OSがメモリにロードされ実行可能になった時点で、起動 通知を送信し、 Attestationが開始されるが、これは、一例であって、他のタイミング であっても良い。
[0462] 例えば、 OSに続いて、デバイスドライノく、アプリケーションロードされた時点であつ ても良 、し、ブートローダーがロードされた時点であってもよ 、。
(3)特定の PCR値の指定
実施の形態 1では、測定値通知部 3104は、全ての PCR値を読み出し、読み出した PCR値群に署名を施して送信して 、るが、この構成に限るものではな!/、。
[0463] 具体的には、 CAサーバ装置 3002は、乱数と共に、何れか一つ(複数でも良い)の PCR値を示す識別情報を送信する。
測定値通知部 3104は、識別情報の示す PCR値のみを読み出し、読み出した PC R値と受信した乱数に署名を施して送信する。
これに合わせて、 TPM制御部3118は、ログ情報についても、受信した識別情報の PCR値に係るログ情報のみを抽出して送信する。
[0464] このようにすることで、機器間で送受信されるデータ量を少なくすることができる。
(4) RTM機能を実現する構成
上記の実施の形態では、 BIOSはブートブロックに CRTMを含み、各プログラムは 、 RTMコードを含んでおり、 CPUが CRTM及び各プログラムの RTMコードを実行 することで RTMの機能を実現している力 この後世に限定されるものではない。
[0465] 以下に、一例を紹介する。
端末装置は、ブートブロックに CRTMを含む BIOSを記憶している。これにカ卩えて、
RTM (ソフトウェア、以下機能部である RTMと区別するため RTMプログラムと呼ぶ) 及び Measurement Agentを記 '慮して!/、る。
CRTMは、 RTMのインテグリティ値を計測する手順を含む。
[0466] RTMプログラムは、指定されたプログラムのインテグリティ値を計測する手順を含む
Measurement Agentは、各種のプログラムから呼び出され、 RTMプログラムに インテグリティ値の計測を要求する手順を含むプログラムである。
BIOS,ローダー、 OS、及びその他のプログラムは、 Measurement Agentを呼 び出し、 自身が次に呼び出そうとしているプログラムを Measurement Agentに通 知するコードを含む。
[0467] 以上の構成により、各プログラムは、他のプログラムをメモリにロードする前に、 Mea surement Agentを呼び出して前記他のプログラムを通知し、 Measurement Ag entは、 RTMプログラムを呼び出し、通知されたプログラムのインテグリティ値の計測 を要求する。この要求を受けると、 RTMプログラム力 通知されたプログラムのインテ ダリティ値を算出する。
[0468] このような仕組みにより RTMの機能を実現してもよ 、。
2. 実施の形態 2
2. 1 概要
実施の形態 2に係るコンテンッ再生システムは、図 40に示すようにコンテンッ提供 サーバ 3202、端末装置 # 1 (3201)、端末装置 # 3 (3203)力も構成される。コンテ ンッ提供サーバ 3202及び端末装置 # 1 (3201)は、インターネット 3005に接続可 能である。端末装置 # 3 (3203)は、インターネット通信機能を有して 、な!/、。
[0469] メモリカード # 2 (3204)は、端末装置 # 1 (3201)及び端末装置 # 2 (3203)の何 れにも装着可能であり、コンテンツ及びコンテンツの利用権 (鍵、有効期限などを含 む)を保持している。
端末装置 # 1 (3201)及び端末装置 # 3 (3203)は、メモリカード # 2 (3204)に記 憶されているコンテンツを復号、伸長し再生する機能を有する。これに先立って、端 末装置とメモリカードが交互に検証装置及び証明装置となり、相互に Attestation処
理を行う。相互に相手の構成が正当であると認証した場合、端末装置はメモリカード
# 2からコンテンツ及び権利情報を取得し、コンテンツを再生することができる。
[0470] また、メモリカード # 2 (3204)は、端末装置 # 1 (3201)に装着された状態で、端末 装置 # 1 (3201)の通信機能を利用して、コンテンツ提供サーバ 3202から、新たなコ ンテンッ及び権利情報の購入処理を行う。
ところで、各機器の備えるプログラムはインターネットや、記録媒体、他の機器を介 してアップグレードされることが考えられる。
[0471] その場合、前述の Attestationに用いられる検証データを更新する必要が生じる。
コンテンツ提供サーバ 3202は、コンテンツ及び権利情報の販売に関する処理に加 えて、前述の Attestation処理に用いられる最新の検証データを保持して 、る。 メモリカード # 2 (3204)は、端末措置 # 1 (3201)に装着された状態で、端末装置 # 1 (3201)の通信機能を利用して、コンテンツ提供サーバ 3202と通信し、新たなコ ンテンッ及びコンテンツ利用権 (復号鍵、有効期限などを含む)を取得する。これに 先立って、コンテンツ提供サーバから、前述の Attestation処理に用いられる最新の 検証データを取得する。このときメモリカードは、自身が用いる検証データのみならず 、端末装置 # 1及び端末装置 # 3の用いる検証データも取得し、それぞれの端末装 置機器に装着された際に、取得した検証データを配布する。
2. 2 端末装置の構成 # 1及び端末装置 # 2の構成
端末装置 # 1の物理的構成及び機能的構成は実施の形態にぉ 、て説明した端末 装置 3001とほぼ同様であるのでここでは、詳細な説明を省略し相違点のみ説明す る。
[0472] 端末装置 # 1と端末装置 3001の相違点は、メモリカード # 2を装着可能な入出力 部を備えることと、 OS以上のアプリケーションとして音楽データを再生する手順を含 む再生制御プログラムを記憶している点である。また、ハードディスクユニットにより構 成される検証データ記憶部を有する。検証データ記憶部には、メモリカード # 2の正 当性を検証するための情報が記憶されて 、る。
[0473] また、端末装置 3001は、 OSが起動した時点で、外部の CAサーバ装置 3002と At testation処理を行ったり、 CAサーバ装置 3002から AIK証明書を取得したりして!/ヽ
る力 本実施の形態において、これは必須ではなぐ端末装置 # 1 (3201)の製造時 に AIK鍵ペア及び AIK証明書を記録してお!ヽても良い。
端末装置 # 1は、電源が ONになると、 BIOSから順に再生制御プログラムまでメモ リにロードする。再生制御プログラムがロードされると、先ず、装着しているメモリカー ド # 2との間で相互に、自身の機器 IDを送信し合う。続 、て、端末装置 # 1が検証装 置となってメモリカード # 2との間で第 1の Attestation処理を行う。
[0474] 第 1の Attestationが成功すれば続いて、端末装置 # 1が証明装置となって、第 2 の Attestation処理を行う。 2回の Attestationの結果、相互に正当な構成の機器 であることが証明されると、端末装置 # 1は、続いて再生制御プログラムを実行し、利 用者の操作に従って音楽再生をすることができる。
また、新たなコンテンツの購入を要求する利用者の操作を受け付けると、購入要求 をメモリカード # 2へ出力し、メモリカード # 2内の DRM (Digital Rights Manage ment)アプリ(後述)の実行によるコンテンツ購入処理などにぉ ヽて、通信機能を提 供する。
[0475] また、端末装置 # 1は、メモリカード # 2から、最新検証データを受け取ると、受け取 つた最新検証データにより、検証データ記憶部の記憶して ヽる検証データを書き換 える。
端末装置 # 3も端末装置 # 1とほぼ同様の構成であるが、端末装置 # 3は、インタ 一ネット 3005に接続可能な送受信部を持たない点が端末装置 # 1と異なる。
また、端末装置 # 3にメモリカード # 2が装着され、相互に機器 IDを送信しあう。続 いて、端末装置 # 3は、先ず、メモリカード # 2から、最新の検証データを受け取り、 受け取った最新の検証データにより、自身の記憶している検証データを書き換える。
[0476] 続、て、端末装置 # 1の場合と同様に、相互に Attestationを行う。
2. 3 コンテンツ提供サーバ
コンテンツ提供サーバ 3202は、コンテンツプロバイダの所有するサーバ装置であり 、主に、インターネット 3005を介して、外部機器との間で、コンテンツ及び利用権 (鍵 、有効期限などを含む)の販売に係る処理を行う。
[0477] 図 41は、コンテンツ提供サーバ 3202の構成を示す機能ブロック図である。図 41に
示すよう ίこ、コンテンツ提供サーノ 3202ίま、送受信咅 3211、 DRM処理咅 3212、コ ンテンッ DB (データベース) 3213、最新検証データ記憶部 3214、制御部 3216、表 示部 3217及び入力部 3218から構成される。
コンテンツ提供サーバ 3202は、具体的にはマイクロプロセッサ、 RAM, ROMを含 んで構成されるコンピュータシステムであって、前記 RAM、 ROMには、コンピュータ プログラムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラム に従って動作することで、コンテンツ提供サーバ 3202は、その機能の一部を達成す る。
[0478] (1)コンテンツ DB3213
コンテンツ DBは、大容量のハードディスクユニットから構成され、複数の暗号化コン テンッ及び各暗号ィ匕コンテンツに対応する権利情報を記憶している。
暗号ィ匕コンテンツは、音楽データを圧縮し暗号ィ匕して生成されたものである。権利 情報は、暗号化コンテンツを復号するための復号鍵、復号鍵の有効期限、価格情報 などを含んでいる。
[0479] (2)最新検証データ記憶部 3214
最新検証データ記憶部 3214は、複数の最新検証データ 3221、 3226 · · ·を記憶 している。各最新検証データは、機器 、正規 PCR値群、正規 SML (ログ情報)から なる。最新検証データは、機器 IDの示す機器の正当性を検証するための情報である
。以下、説明の便宜上、機器 ID :ID # n(n= l、 2、 3 · · ·)の機器の正当性を検証す るためのデータを検証データ # n、検証データ # nに含まれる正規 PCR値群を正規 P
CR# n、正規 SMLを正規 SML # nと記載する。
[0480] 一例として最新検証データ # 1 (3221)は、 ID # 1 (3222)、正規 PCR # 1 (3221) 及び正規 SML # 1を含み、 ID # 1の示す端末装置 # 1の正当性の検証に用いられ る。
(3) 01^1処理部3212
DRM処理部 3212は、制御部 3216の制御の下、インターネット 3005を介して接 続された外部機器との間で、コンテンツ販売に係る処理を行う機能部である。
[0481] 具体的には、外部機器から、コンテンツ購入要求を受信し、ユーザ認証、コンテン
ッリストの送信、コンテンツの選択の受信、課金処理、暗号化コンテンツ及び権利情 報の送信などの一連の処理を行う。
(4)送受信部 3211
送受信部 3211は、インターネット 3005に接続可能なインタフェースを含んで構成 され、インターネット 3005に接続された外部機器と、各機能部との間で、各種の情報 の送受信を行う。
[0482] (5)制御部 3216
制御部 3216は、各機能部へ制御信号(図示していない)を出力し、コンテンツ提供 サーバ 3202を構成する各機能部の動作を制御する。
また、制御部 3216は、インターネット 3005及び端末装置 # 1を介してメモリカード # 2から、最新検証データ要求を受信する。最新更新データ要求は、 1以上の機器 I Dを含んでおり、前記機器 IDの正当性検証に用いられる最新の検証データを要求 するものである。
[0483] 最新検証データ要求を受信すると、制御部 3216は、最新検証データ記憶部 3214 内で、受信した機器 IDと同一の機器 IDを含む最新検証データを検出し、検出した最 新検証データを読み出す。続いて、制御部 3216は、読み出した最新検証データを、 送受信部 3211を介して、メモリカード # 2へ送信する。
2. 4 メモリカード # 2 (3204)の構成
図 42は、メモリカード # 2 (3204)の機能的構成を示した機能ブロック図である。図 42【こ示すよう【こ、メモリカード、 # 2 (3204) ίま、 ff¾御咅 3231、メモリ 3232、ブートプロ グラム 3233、コンテンツ記憶部 3236、 RTM3237,入出力部 3239、証明書記憶部 3241、プログラム記憶部 3244、ログ記憶部 3251、 ΤΡΜチップ 3247、検証部 325 6、 ID記憶部 3266及び検証データ記憶部 3257から構成される。
[0484] メモリカード # 2 (3204)は、具体的には、 RAM、 ROMを含んだコンピュータシス テムであって、 RAM, ROMにはコンピュータプログラムが記憶されている。前記マイ クロプロセッサが、前記コンピュータプログラムに従って動作することにより、メモリカー ド # 2 (3204)は、その機能の一部を達成する。
以下に、各構成要素について、説明する。
[0485] なお、証明書記'隐咅 3241、メモリ 3232、ログ記'隐咅 ^3251、 RTM3237【こつ!ヽて は、実施の形態 1において説明した証明書記憶部、メモリ、ログ記憶部、 RTMと同様 の機能を有するので、ここでは、説明を省略する。
(1)入出力部 3239
入出力部 3239は、外部機器と接続可能なインタフェースを備える。ここで、外部機 器とは、端末装置 # 1及び端末装置 # 2とが該当する。入出力部 3239は、外部機器 とメモリカード # 2内の各機能部との間で情報の送受信を行う。
[0486] また、入出力部 3239は、外部機器から電力の供給を受ける電力端子を備えており 、電力端子を介して外部機器から供給される電力を各構成要素へ配布する。
(2)コンテンツ記憶部 3236
コンテンツ記憶部 3236は、暗号ィ匕コンテンツ及び権利情報を記憶するための機能 部である。ここに記憶される暗号ィ匕コンテンツ及び権利情報は、前述のコンテンツ提 供サーバの保持する暗号化コンテンツ及び権利情報と同様である。
[0487] (3)プログラム記憶部 3244
プログラム記憶部 3244は、フラッシュメモリなどの不揮発性の記憶媒体により構成 され、 OS3245及び DRMアプリ 3246を記憶している。端末装置側と同様に OS324 5は RTMコードを含んで!/、る。
DRMアプリ 3246は、コンテンツ提供サーバとの間で、コンテンツ購入に関する処 理を行い、端末装置によるコンテンツの再生要求に対して権利情報の確認、暗号ィ匕 コンテンツ及び復号鍵の出力などを行う手順を含むプログラムである。
[0488] (4)ブートプログラム 3233
ブートプログラム 3233は、端末装置における BIOSと同様に、メモリカードのセキュ ァな領域に記憶され、電力の供給が開始されると最初にロード実行されるプログラム である。ブートプログラム 3233は、前述の BIOSと同様に CRTM3262を含んでいる
[0489] メモリカード # 2に電力が供給されると、ブートプログラム、 OS、 DRMアプリの順に メモリにロードされ、実行される。特に、メモリカード # 2 (3204)内のプロセッサは、ブ ートプログラム 3233内の CRTM3262を、最初に実行する。
(5) ID記憶部 3266
ID記憶部 3266は、不揮発性の記憶媒体から構成され、一般領域 3267とセキュア 領域 3268から構成される。
[0490] セキュア領域 3268には、メモリカード #2 (3204)の製造時に書き込まれたメモリ力 ード # 2を一意に示す機器 ID「ID # 2」 3273が記憶されて 、る。
一般領域 3267には、メモリカード # 2が装着された事のある機器の機器 ID3271 及び機器 ID3272が記憶されている。具体的には、端末装置 # 1を示す機器 ID「ID # 1」 3271と、端末装置 # 3を示す機器 ID「ID # 3」 3272を記憶して 、る。以下、記 述を簡略にするため、これらの機器 IDを単に ID #1、 ID #2、 ID #3と記載する。
[0491] (6)検証データ記憶部 3257
検証データ記憶部 3257は、複数の検証データ 3258、 3259、 3261· ··を記憶し ている。
各検証データは、機器 ID、正規 PCR群、正規 SMLを含み、機器 IDの示す機器の 正当性の検証に用いられる。
[0492] 検証データ 3259は、メモリカード # 2の正当性の検証に用いられ、検証データ 325 8, 3261···は、それぞれ、端末装置 # 1、端末装置 # 3…の正当性検証に用いら れる。以下、これらを単に検証データ #n(n=l、 2、 3···)と記載し、検証データ #n を構成する機器 ID、正規 PCR群、正規 SMLをそれぞれ、 ID# 1、正規 PCR#n、正 規 SML#nと記載する。
[0493] 一例として、検証データ # 1は、端末装置 # 1を示す ID # 1 (3262)、端末装置 # 1 が正当な構成を有する場合に算出されるべき正規 PCR# 1 (3259)、及び、端末装 置 # 1正当な構成を有する場合の PCR値群の履歴を含む正規 SML# 1 (3264)か ら構成される。
(7)TPM#2(3247)
メモリカード # 2 (3204)に搭載されて!ヽる、 TPMチップ 3247 (以下、 TPM # 2と 記載する)は、ネットワークプロバイダにより提供され、メモリカード # 2に実装されたも のである。
[0494] TPM#2は、実施の形態 1の TPM3117と同様に、 TPM# 2内の各機能部により
、メモリカード # 2の正当性を示す情報である PCR値の算出及び蓄積を行う。 TPM # 2の詳細な構成は、実施の形態 1の TPM3117と同様であるので、図 42では、省 略して記載している。
本実施の形態で、各機器内の TPMチップの保持する EK秘密鍵、 AIK秘密鍵、 P CR値群をそれぞれ、 EK # n、 AIK # n、 PCR # n (n= 1、 2、 3 · · · )と記載する。また 各秘密鍵と対応する公開鍵の証明書を証明書 # n、ログ記憶部の記憶して!/、る SM Lを SML # nと記載する。
[0495] (8)検証部 3256
検証部 3256は、制御部 3231から当該メモリカード # 2 (検証装置)の装着されてい る端末装置 (証明装置)との Attestationを指示される。このとき、制御部 3231から、 端末装置の機器 IDを受け取る。
Attestationを指示されると、検証部 3256は、受け取った機器 IDを含む検証デー タを読み出す。続いて、読み出した検証データを用いて、端末装置の正当性検証を 行う。検証の詳細は、実施の形態 1において説明した検証部 3013による検証と同様 であるのでここでは説明を省略する。
[0496] 次に検証部 3256は、 Attestationの結果を制御部 3231へ通知する。
(9)制御部 3231
制御部 3231は、各構成要素の構成を制御する機能部である。
制御部 3231は、いずれかの端末装置に装着されると、 ID記憶部 3266から、 ID #
2を読み出し、端末装置に出力する。また、端末装置から機器 IDを受け取りメモリ 32
02に,じ'|怠 る。
[0497] ここで、機器 IDには、通信機能を有する再生装置であるか否か、また、記録媒体で あるかを示す情報が含まれる。例えば、通信機能を有するものは先頭ビット「11」から 始まり、通信機能を有さないものは、先頭ビット「10」から始まり、記録媒体は、先頭ビ ット「00」力 始まる機器 IDを有する。
続いて、制御部 3231は、端末装置から、 Attestation要求と乱数 (ノンス)とを受け 取る。これらを受け取ると、 TPM # 2 (3247)へ、受け取ったノンスを出力し Attestat ionを指示する。
[0498] メモリカード # 2の正当性が証明され、端末装置から動作許可通知を受信すると、 制御部 3231は、検証部 3256へ、端末装置の正当性検証 (Attestation)の指示を 出力する。このとき、メモリ 3232に書き込んだ端末 IDを読み出し、 Attestationの指 示と共に読み出した端末 IDを、検証部 3256へ出力する。
次に、制御部 3231は、検証部 3256力 、 Attestationの結果を通知される。通知 された結果により、端末装置が不正であると判断された場合、制御部 3231は、以後 端末装置との通信を停止する。
[0499] 通知された結果により端末装置が正当であると判断された場合、端末装置の利用 者の操作に従って、暗号ィ匕コンテンツの出力などの処理を行う。
(9- 1)端末装置 # 1に装着された場合の処理
以下に、端末装置 # 1に装着された場合に行われる処理について説明する。 メモリカード # 2が、端末装置 # 1に装着された状態で、端末装置 # 1から、コンテン ッの購入要求を受け取る。この要求を受け取ると、制御部 3231は、 ID記憶部 3266 に記憶されている全ての機器 IDを読み出す。続いて、最新の検証データの送信を要 求する最新検証データ要求を生成し、生成した最新検証データ要求を、端末装置 # 1の通信機能を利用してコンテンツ提供サーバ 3202へ送信する。最新検証データ 要求には、読み出した全ての機器 IDが含まれている。
[0500] 続いて、端末装置 # 1を介して、コンテンツ提供サーバ 3202から、複数の最新検 証データを受信する。受信した最新検証データに含まれる機器 IDを基に、検証デー タ記憶部 3257に記憶されている検証データを、受信した検証データにより書き換え る。
次に、制御部 3231は、メモリカード # 2自身を示す ID # 2を含む検証データ # 2を 読み出し、読み出した検証データ # 2を最新検証データ # 2として端末装置 # 1へ出 力する。
[0501] 出力した後、制御部 3231は、メモリ 3232にロードされている DRMプログラムの示 す手順に従って、コンテンツの購入処理を行う。
(9- 2)端末装置 # 2に装着された場合の処理
以下に、端末装置 # 2に装着された場合に行われる処理について説明する。
制御部 3231は、受け取った機器 IDの先頭の 2ビットが「10」の場合、 Attestation に先立って、自身を示す ID # 2を含む検証データ 3259を読み出し、読み出した検 証データ 3259を最新検証データとして出力する。
2. 5 動作
以下に、 Attestationに関連する各機器の動作について説明する。
[0502] なお、メモリカード # 2と端末装置との相互の Attestation処理に関する動作は、何 れの端末装置の場合も同じであるので、ここでは、端末装置 # 2とメモリカード # 2と の相互 Attestationにつ!/、ての説明は省略する。
(1)相互 Attestation
メモリカード # 2が端末装置 # 1に装着された状態で、端末装置 # 1の電源が ON になり、双方のブートプロセスが終了すると、端末装置 # 1が検証装置となって、メモ リカード # 2の正当性を検証する第 1の Attestationが行われる(ステップ S3101〜 ステップ S3103)
先ず、端末装置 # 1の検証部 3281は、ノンス # 2を生成してメモリカード # 2へ出 力する(ステップ S3101)。
[0503] メモリカード # 2の TPM # 2は、ノンス # 2を受け取ると、 AIK # 2を用いて、受け取 つたノンス # 2と、自身が保持して ヽる PCR # 2とに署名を施して署名データを生成 する。生成した署名データ「AIK # 1 (ノンス # 2、 PCR # 2)」と、 AIK証明書 # 2と S ML # 2とを、端末装置 # 1へ出力する (ステップ S3102)。以下、その他の実施の形 態において鍵 Aを用いて、データ B、 C- - -に署名を施して生成された署名データを「 A (B、 C · · · )」と記載する。一例として前述の「AIK # 1 (ノンス # 2、 PCR # 2)」は、 鍵「AIK # 1」を用いて「ノンス # 2、 PCR # 2」に署名を施して生成されたものである。
[0504] 端末装置 # 1の検証部 3281は、メモリカード # 2から、署名データと AIK証明書 # 2と SLM # 2とを受け取る。これらを受け取ると、 AIK証明書 # 2の検証、署名データ の検証 (具体的には、ノンス # 2の検証及び PCR# 2の検証)、 SML # 2の検証を順 次行う(ステップ S3103)。これらの検証には、サーバ公開鍵(図示せず)、 AIK証明 書 # 2に含まれる SIK公開鍵 # 2、検証データ記憶部 3282に記憶されている正規 P CR # 2及び正規 SML # 2が用いられる。
[0505] 第 1の Attestationが成功であれば、続!、て、メモリカード # 2が検証装置となって 、端末装置 # 1の正当性を検証する第 2の Attestationが行われる(ステップ S3106 〜ステップ S3108)。
先ず、メモリカード # 2の検証部 3256は、ノンス # 1を生成し、生成したノンス # 1を 、端末装置 # 1へ出力する (ステップ S3106)。
[0506] 端末装置 # 1の TPM # 1は、ノンス # 1を受け取ると、 AIK# 1を用いて、受け取つ たノンス # 1及び自身の保持して ヽる PCR # 1に署名を施して署名データを生成し、 AIK証明書 # 1と、生成した署名データと、 SML # 1とをメモリカード # 2へ出力する (ステップ S3107)。
メモリカード # 2の検証部 3256は、端末装置 # 1から AIK証明書 # 1と署名データ と SML # 1とを受け取る。これらを受け取ると、 AIK証明書 # 1の検証、署名データ の検証 (具体的には、ノンス # 1の検証及び PCR# 1)、 SML # 1の検証を順次行う ( ステップ S3108)。これらの検証には、サーバ公開鍵(図示せず)、 AIK証明書 # 1に 含まれる AIK公開鍵 # 1、検証データ記憶部 3257の記憶している正規 PCR# 1及 び正規 SML # 1が用いられる。
[0507] 第 2の Attestationが成功であれば、端末装置 # 1は、再生制御プログラムを実行 し、利用者の操作に従ってコンテンツの再生を開始する。
(2)最新検証データの取得
図 43の太線矢印は、最新の検証データ取得に関する動作を示している。以下に図 43を用いて、最新の検証データ取得処理における各機器の動作を説明する。
[0508] 利用者による、新たなコンテンツの購入を要求する操作をトリガとして、メモリカード
# 2の制御部 3231は、最新検証データ要求をコンテンツ提供サーバ 3202へ送信 する。この要求を受けて、コンテンツ提供サーバは、最新の検証データをメモリカード
# 2へ送信する (ステップ S 3111)。
メモリカード # 2の制御部 3231は、端末装置 # 1の通信機能を利用して、最新検証 データを受信し (ステップ S3111)、自身の記憶して 、る検証データを、受信した最 新の検証データにより書き換える。
[0509] 続 、て、自身の機器 IDと対応する最新の検証データ (最新の正規 PCR # 2及び最
新の正規 SML)を端末装置 # 1へ出力する (ステップ S3112)。
端末装置 # 1の制御部は、メモリカード # 2から最新の検証データ (最新の正規 PC R # 2及び最新の正規 SML)を受け取り(ステップ S3112)、受け取った最新の検証 データにより、検証データ記憶部 3282の保持している検証データを書き換える。
[0510] 双方において検証データの書き換えが終了すると、メモリカード # 2は、メモリ 3232 上の DRMアプリを実行して、利用者の操作に従って新たなコンテンツの購入処理を 行う。
また、その後、端末装置 # 3に装着されると、メモリカード # 2は、自身の機器 IDと対 応する最新の正規 PCR値 # 2と最新の正規 SML # 2とを、端末装置 # 3へ出力する (ステップ S3113)。端末装置 # 3は、自身の検証データ記憶部 3283に記憶してい る検証データを、受け取った最新の正規 PCR値 # 2と最新の正規 SML # 2により、 書き換える。
2. 6 実施の形態 2に関する変形例
(1)特定の PCR値の指定
実施の形態 1の変形例(3)と同様に、本実施の形態の Attestation処理において も、検証側の機器は、ノンスとともに何れか一つ (複数でも良い)の PCR値を示す識 別情報を送信し、証明側の機器は識別情報の示す PCR値のみを読み出して署名デ ータを生成し送信する。これに合わせて、ログ情報についても、受信した識別情報の PCR値に係るログ情報のみを抽出して送信するとしてもよい。
[0511] (2)複数のメモリカード
本実施の形態では 1枚のメモリカード # 2が複数の端末装置に装着される場合を例 に説明してきたが、逆に、 1台の端末装置 # 1に複数のメモリカードが装着される場合 ち考免られる。
この場合、端末装置 # 1は、過去に装着されたメモリカードの機器 IDを記憶してい る。また、各機器 IDと対応する検証データ(正規 PCR値群、正規 SML)を記憶して いる。検証部 3281は、現在装着されているメモリカードを示す機器 IDと対応する検 証データを選択し、端末装置が検証装置となる Attestationにおいて、選択した検 証データを用いる。
3. 実施の形態 3
3. 1 概要
本実施の形態も、実施の形態 2と同様に、アプリケーションとして、再生制御プログ ラムを有する端末装置 3301 (証明装置)と暗号化コンテンツを保持するメモリカード 3 302 (検証装置)から構成される。
[0512] 端末装置 3301は、それぞれ個別の提供者力も提供された 2個の TPMを搭載して いる。ここでは、一例としてデバイス製造者の提供した TPMとネットワークプロバイダ により提供された TPMとを搭載している。説明の便宜上前者を TPM # 1、後者を TP M # 2と記載する。
このように 1台の端末に複数の提供者からの TPMが搭載されるモデルを、 TCG規格 では、マルチステークホルダーモデルと呼ぶ
各 TPMは、それぞれ異なるプログラムの PCR値及び SMLを管理して!/、る。
[0513] メモリカード 3302は、先ず下位層のプログラムを管理している TPM # 1との間で At testationを行い、検証の結果、下位層のプログラム群の構成が正当であることが証 明されると、上位層のプログラム(アプリケーション)を管理する TPM # 2との間で Att estationを行 、、上位層のプログラム構成が正当であることを確認する。
[0514] また、端末装置 3301内においても、下位のプログラム群を管理する TPM # 1が上 位のプログラムを管理する TPM # 2の正当性を検証し、正当な TPMである力否かを 検証し、正当であると証明されると TPM # 1の管理するプログラム群のうち最上位の プログラムと対応する PCR値を出力し、 TPM # 2は、受け取った PCR値を用いて、 T PM # 2の管理するプログラムの PCR値を算出する。
[0515] また、検証の結果、 TPM # 2が不正であると判断すると、 TPM # 2への電力供給を 停止する。
図 44は、各機器の構成及び各構成の動作を示す構成図である。図中の矢印は、 各機器内及び機器間のデータフローを示している。また、図中において、各機器の 構成及び各構成の保持するデータには、数字のみの参照符号を付しており、動作を 示す部分には「S」で始まるステップ番号を付している。以下、図 44を用いて、各機器 の構成及び、動作について説明する。
3. 2 端末装置 3301の構成
端末装置 3301は、再生制御部 3311、 TPM # 2 (3312)、メモリ 3313、 RTM331 8、ログ記憶部 3319、証明書記憶部 3326、 TPM # 1 (3134)力 構成される。これ らの他にも、各種のデータ及びプログラムを記憶している不揮発性の記憶部、利用者 の操作を受け付ける入力部、表示部、メモリカードを装着し、各種の情報の入出力及 び電力供給を行う入出力部などを備える力 図 42では、これらを省略し、 Attestatio nに関連する部分のみを記載して 、る。
[0516] (1)再生制御部 3311
再生制御部 3311は、 CPUが、メモリ 3313上にロードされた再生制御プログラム 3 314を実行することにより実現される機能部であって、メモリカード 3302から、暗号ィ匕 コンテンツを読み出し、読み出した暗号ィ匕コンテンツを復号、伸長して再生する。
[0517] (2)TPM # 2 (3312)
TPM # 2は、自身を示す TPM識別子「ID # 2」を記憶して 、る。
また、 TPM # 2は、上位層のプログラムを示す識別情報を 1以上記憶している。 TP M # 2は、記憶している識別情報の示すプログラムの、正当性を示す情報 (PCR値 及び SML)を管理する。ここでは、具体的には再生制御プログラム 3314を示す識別 情報を記憶しており、このプログラムの完全性を示す情報を生成及び管理する。
[0518] また、図中の「EK# 2」は、 TPM # 2に固有の EK秘密鍵を示しており、「AIK# 2」 は、 AIK秘密鍵を示しており、 PCR# 2は、 TPM # 2の記憶している PCR値群を示 す。
TPM # 2は、 RTM3318力ら、各プログラムを示す識別情報とそのプログラムのィ ンテグリティ値を受け取る。受け取った識別情報が、自身の管理するプログラムの識 別情報と一致すれば、受け取ったインテグリティ値を用いて、 PCR値を算出し、記憶 する。また、自身の記憶している PCR# 2の履歴をログ記憶部 3319へ書き込む。受 け取った識別情報が、自身の管理するプログラムの識別情報と一致しなければ、受 け取ったデータを破棄する。
[0519] また、 TPM # 2 (証明側)は、 TPM # 1 (検証側)による正当性検証を受ける。ここで の検証方法は任意であっては、一例として、チャレンジ &レスポンスのような所定の
演算を含むものであっても良いし、 IDチェックや証明書チェックのような簡単な検証 であってもよい。
検証の結果 TPM # 1から、正当であると認められると、 TPM # 2は、 TPM # 1の管 理するプログラム群のうち、最上位のプログラムである OS3316と対応する PCR値を 受け取る。これを受け取ると、受け取った PCR値を PCROとして記憶する。
[0520] 再生制御プログラム 3314力メモリにロードされるとき、記憶している PCROと RTM3 318から受け取った、再生制御プログラム 3314のインテグリティ値とを基に再生制御 プログラムの PCR値 (PCR1)を算出して記憶する。
さらに、 TPM # 2は、メモリカード 3302から、 TPM識別子「ID # 2」、ノンス # 2及 び Attestation要求を受ける。これらを受け取ると、上記の実施の形態と同様に、自 身が管理するプログラム群に関する正当性を証明する Attestation処理を行う。(詳 細は、下記の動作において説明する)
Attestationにより、 TPM # 2の管理するプログラムの正当性が証明されると、 TP M # 2は、メモリカード 3302から暗号化コンテンツ及び、暗号化コンテンツ鍵を受け 取る。暗号ィ匕コンテンツ鍵は、 AIK# 2と対になる公開鍵 (以下 AIK # 2Pと記載する )を用いて、コンテンツ鍵を暗号ィ匕して生成されたものである。暗号化コンテンツは、 音楽データを圧縮して生成された圧縮音楽データを、コンテンツ鍵を用いて暗号ィ匕 したものである。
[0521] これらを受け取ると、 TPM # 2は、 AIK# 2を用いて暗号化コンテンツ鍵を復号して コンテンッ鍵を生成し、生成したコンテンッ鍵と受け取つた B音号ィ匕コンテンッとを再生 制御部 3311へ出力する。
なお、暗号ィ匕コンテンツ鍵の生成に用いられる暗号鍵は AIK# 2Pに限定されるも のではない。例えば、使い捨てのセッション鍵を用いるなど、他の鍵を用いても良い。
[0522] (3)メモリ 3313
メモリ 3313は、主に RAM力 構成され、 CPUにより実行される各種のプログラムを 記憶している。
図 44では、一例として再生制御プログラム 3314、 OS3316が記憶されている。
[0523] 再生制御プログラム 3314は、メモリカード 3302に記憶されている暗号化コンテンツ
を復号、伸長し再生する手順を含む。
OS3316は、アプリケーション (ここでは、音楽再生プログラム)を呼び出す手順を 含む。その他にも、利用者による操作の受け付け、メモリカードの検出など、端末装 置 3301の基本的な動作を制御する手順を含むプログラムある。 OS3316は、 TPM # 1により、 TPM # 2が正当であると判断されると、再生制御プログラム 3314をメモリ 3313にロードする。
[0524] (4)RTM3318
RTM3318は、上記の実施の形態 1において説明した RTM3107と同様に BIOS に含まれる CRTM及び各プログラムに含まれる RTMコードを CPUが実行することに より実現される機能部である。なお、その他の実施の形態 1における変形例 (4)で説 明したように、各プログラムが RTMコードを含まな 、構成であってもよ!/、。
[0525] RTM3318は、次に、メモリ 3313にロードされるプログラムのインテグリティ値を計 測し、計測したインテグリティ値と計測対象となったプログラムを示す識別情報とを、 T PM # 1及び TPM # 2双方に出力する。
(5)ログ記憶部 3319
ログ記憶部 3319は、 RAMなどの揮発性メモリから構成され、 SML # 2 (3322)及 び SML # 1 (3323)を記憶して!/、る。
[0526] SML # 2 (3322)は、 TPM # 2の管理するプログラムと対応する PCR # 2の履歴 情報を含む。
SML # 1 (3323)は、 TPM # 1の管理するプログラム群と対応する PCR値群(以下 PCR# 1)の履歴情報を含む。
(6)証明書記憶部 3326
証明書記憶部 3326は、フラッシュメモリなど不揮発性のメモリにより構成され、一例 として、 EK証明書 # 2 ( 3327)、 AIK証明書 # 2 ( 3328)、 EK証明書 # 1 (3329)及 び AIK証明書 # 1 (3331)を記憶している。
[0527] EK証明書 # 2 (3327)は、 TPM # 2の保持している EK # 2と対応する EK公開鍵 の正当性を証明する証明書である。
AIK証明書 # 2 (3328)は、 TPM # 2の保持して ヽる AIK # 2と対応する公開鍵(
AIK# 2P)の正当性を証明する証明書である。
EK証明書 # 1 (3329)は、 TPM # 1の保持している EK # 1と対応する EK公開鍵 の正当性を証明する証明書である。
[0528] AIK証明書 # 1 (3331)は、 TPM # 1の保持している AIK# 1と対応する AIK公開 鍵の正当性を証明する証明書である。
各証明書の構成については、実施の形態 1において説明した通りであるので、ここ では説明を省略する。
また、これらにカ卩えて、各 TPMに対応する PF証明書 (具体的には、ネットワークプ ロバイダの証明書及び端末装置製造者の証明書)を記憶していても良い。
[0529] (7)TPM # 1 (3334)
TPM # 1 (3334)は、デバイス製造者により提供されたものであり、自身を識別する TPM識別子「ID # 1」及び、 BIOS力 OSまでの下位層のプログラム群の識別情報 を記憶している。 TPM # 1は、記憶している識別情報の示す各プログラムの正当性 を示す情報 (PCR値及び SML)を管理する。
[0530] また、図中の「EK# 1」は、 TPM # 1に固有の EK秘密鍵を示しており、「AIK# 1」 は、 AIK秘密鍵を示しており、 PCR# 1は、 TPM # 1の記憶している PCR値群を示 す。
TPM # 1は、 RTM3318からインテグリティ値とインテグリティ値の計測対象となつ たプログラムを示す識別情報とを受け取る。受け取った識別情報と記憶して 、る識別 情報の何れかと一致すれば、受け取ったインテグリティ値を基に識別情報の示すプ ログラムの PCR値を算出し、記憶する。一致しない場合は、受け取ったインテグリティ 値を破棄する。
[0531] また、メモリ 3313に OS3316力 Sロードされ、かつ、メモリカード 3302のブート処理が 完了すると、 TPM # 1は、メモリカード 3302から、 TPM識別子「ID # 1」、ノンス # 1 及び Attestation要求を受け取る。これらを受け取ると、 TPM # 1は、メモリカード 33 02 (検証装置)との間で Attestations処理を行う。
[0532] Attestationの結果、 TPM # 1の管理するプログラム群の正当性が証明されると、 TPM # 1は、次に、 TPM # 2を検証する。検証の結果、 TPM # 2が正当であると判
断すると、 TPM # 1の管理するプログラム群のうち、最上位層のプログラムである OS
3316と対応するPCR値(PCR(OS) )をTPM # 2へ出カする。
3. 3 メモリカード 3302の構成
図 44には、メモリカード 3302の機能的構成を示している。図 44に示すように、メモ リカード 3302は、検証部 3341、 DRM処理部 3342、コンテンツ記憶部 3343及び検 証データ記憶部 3344から構成される。この他にも、端末装置 3301との間でデータ の入出力を行い電力の供給を受ける入出力部、ブートプログラムを初めとする各種の プログラムを記憶している不揮発性メモリなどを含んでいる力 ここでは、 Attestatio n処理に関連する部分のみを記載して 、る。
[0533] 以下に、各機能部について説明する。
(1)検証部 3341
検証部 3341は、メモリカード 3302が装着される端末装置 3301に搭載されており 下位層のプログラム群を管理する TPMの TPM識別子「ID # 1」と、上位層のプログ ラムを管理する TPMの TPM識別子「ID # 2」とを記憶して 、る。
[0534] メモリカード 3302のブート処理が終了すると、検証部 3341は、ノンス # 1を生成し 、自身の記憶して 、る ID # 1と生成したノンス # 1と、 Attestation要求とを端末装置 3301へ出力する。これをトリガとして、端末装置 3301内の TPM # 1との間で Attest ation処理行う。
Attestationの結果、 TPM # 1の管理するプログラム群の構成が不正であると判 断すると、検証部 3341は、以後、メモリカード 3302と端末装置 3301との通信を禁止 する。
[0535] Attestationの結果、 TPM # 1の管理するプログラム群の構成が正当であると判 断すると、検証部 3341は、検証が成功であることを端末装置 3301内の TPM # 1へ 通知する。
前記通知の後、検証部 3341は、ノンス # 2を生成し、記憶している ID # 2と生成し たノンス # 2と、 Attestation要求を端末装置 3301へ出力する。これをトリガとして、 端末装置 3301内の TPM # 2との間で Attestation処理を行う。
[0536] Attestationの結果、 TPM # 2の管理するプログラム群の構成が不正であると判
断すると、検証部 3341は、以後、メモリカード 3302と端末装置 3301との通信を禁止 する。
Attestationの結果、 TPM # 2の管理するプログラム群の構成が正当であると判 断すると、検証部 3341は、 TPM # 2との Attestationにおいて受け取った AIK証明 書 # 2から AIK# 2Pを抽出し、抽出した AIK# 2Pと TPM # 2を示す ID # 2とを DR M処理部 3342へ出力する。
[0537] (2)コンテンツ記憶部 3343
コンテンツ記憶部 3343は、フラッシュメモリなどの不揮発性の記憶媒体により構成 され、暗号ィ匕コンテンツ及び暗号ィ匕コンテンツに対応する権利情報を記憶して 、る。 権利情報には暗号ィ匕コンテンツを復号するためのコンテンツ鍵、コンテンツの視聴が 許可される期限などが含まれている。
[0538] (3) DRM処理部 3342
DRM処理部 3342は、端末装置 3301の通信機能を利用して、コンテンツプロバイ ダのサーバ装置との間でコンテンツ購入に関する処理を行ったり、コンテンツ記憶部 3343に記憶されている各暗号ィ匕コンテンツの有効期限の管理を行ったりする。 また、 DRM処理部 3342は、検証部 3341から、コンテンツ再生に係るプログラムを 管理する TPM # 2を示す ID # 2と公開鍵 API # 2Pとを受け取り記憶する。
[0539] DRM処理部 3342は、端末装置 3301を操作する利用者によるコンテンツ視聴要 求を受ける。コンテンツの視聴要求を受けると、 DRM処理部 3342は、検証部 3341 力 受け取った AIK# 2Pを用いて、コンテンツ鍵を暗号化して暗号化コンテンツ鍵を 生成し、生成した暗号ィ匕コンテンツ鍵と、 ID # 2と、 B音号化コンテンツとを、端末装置 3301へ出力する。
[0540] (4)検証データ記憶部 3344
検証データ記憶部 3344は、不揮発性の記憶媒体により構成され、一例として、検 証データ 3347、 CA公開鍵 3351及び検証データ 3352とを記憶している。
CA公開鍵は、 AIK証明書 # 1及び AIK証明書 # 2の発行元である第三者機関の 公開鍵であって、これらの証明書に含まれる署名データの生成に用いられた CA秘 密鍵と対になる鍵である。
[0541] 検証データ 3347は、検証部 3341と端末装置 3301内の TPM # 2との Attestatio nに用いられる検証データである。以下、検証データ # 2と記載する。
検証データ 3352は、検証部 3341と端末装置 3301内の TPM # 1との Attestatio nに用いられる検証データである。以下、検証データ # 1と記載する。
具体的に、検証データ # 1は、ノンス # 1 (3353)と、正規 PCR# 1 (3354)と、正規 SML # 1 (3356)力も構成される。これらのデータについては、上記の実施の形態 1 、実施の形態 2にお 、て説明した通りであるので詳細な説明は割愛する。
3. 4 動作
以下に、端末装置 3301の起動力もコンテンツ再生に至るまでの動作について、図 44を用いて説明する。なお、メモリカード 3302は、端末装置 3301に装着されており 、端末装置 3301から電力が供給され、一連のブート処理を終了しているとする。
[0542] メモリカード 3302のブート処理が終了すると、検証部 3341は、ノンス # 1を生成し( ステップ S3131)、生成したノンス # 1、下位層のプログラムを管理する TPMを示す I D # 1を端末装置 3301送信し、 Attestationを要求する(ステップ S3132)。送信と 共に、検証部 3341は、生成したノンス # 1を検証データ記憶部 3344へ書き込む (ス テツプ S3133)。
[0543] 端末装置 3301の TPM # 1は、メモリカード 3302から ID # 1、ノンス # 1及び Attes tation要求を受け取る(ステップ S3132)。これらを受け取ると、 TPM # 1は、自身の 保持する AIK # 1を用いて、受け取ったノンス # 1及び記憶している PCR# 1に署名 生成アルゴリズムを施して署名データ「AIK# 1 (ノンス # 1、 PCR# 1)」を生成する( ステップ S3134)。
[0544] 次に、自身を示す ID # 1と、生成した署名データと、 AIK証明書 # 1と、 SML # 1と をメモリカード 3302へ出力する(ステップ S3136)。
メモリカード 3302の検証部 3341は、署名データ「AIK# 1 (ノンス # 1、 PCR# 1)」 と、 AIK証明書 # 1と、 SML # 1とを受け取る (ステップ S3136)。これらを受け取ると 、検証部 3341は、検証データ記憶部 3344から、 CA公開鍵 3351と検証データ # 1 とを読み出し (ステップ S3137)、読み出した CA公開鍵 3351と検証データ # 1とを 用いて、受信したデータを検証する (ステップ S3138)。具体的には、 AIK証明書 #
1の検証、署名データの検証 (ノンス # 1及び PCR# 1の検証)、 SML # 1の検証を 順次行う。
[0545] 検証の結果、 TPM # 1の管理するプログラム群の正当性が証明されると、検証部 3 341は、 ID # 1と検証結果 (OK)を端末装置 3301へ出力する (ステップ S3139)。 端末装置 3301の TPM # 1は、メモリカード 3302から、 ID # 1と検証結果 (OK)と を受け取る(ステップ S3139)。これらを受け取ると、 TPM # 1は、 TPM # 2の正当性 を検証し、正当であると判断すると、 OS3316と対応する PCR値 (以下、 PCR(OS) と記載する)を TPM # 2へ出力する (ステップ S3141)。
[0546] TPM # 2は、受け取った PCR (OS)を PCR0として記憶し、続!、て、 PCR0及び再 生制御プログラム 3314のインテグリティ値から、 PCR1を算出する。
TPM # 1の Attestationが成功すると、メモリカード 3302の検証部 3341は、ノン ス # 2を生成し (ステップ S3144)、生成したノンス # 2と記憶している ID # 2とを端末 装置 3301へ出力し、 Attestationを要求する(ステップ S3146)。
[0547] 端末装置 3301の TPM # 2は、メモリカード 3302力ら、 ID # 2とノンス # 2と Attest ation要求を受け取る(ステップ S3146)。これらを受け取ると TPM # 2は、 AIK # 2 を用いて、受け取ったノンス # 2と保持している PCR# 2とに署名生成アルゴリズムを 施して署名データ「AIK # 2 (ノンス # 2、 PCR # 2)」を生成する (ステップ S3149)。
[0548] 続いて、 TPM # 2は、 ID # 2と、生成した署名データと、 AIK証明書 # 2と、 SML
# 2とをメモリカード 3302へ出力する(ステップ S3151)。
メモリカード 3302の検証部 3341は、端末装置 3301から ID # 2と、署名データと、 AIK証明書 # 2と、 SML # 2とを受け取る(ステップ S3151)。これらを受け取ると、検 証部 3341は、検証データ記憶部 3344から、 CA公開鍵 3351と検証データ # 2とを 読み出し (ステップ S3152)、読み出した CA公開鍵 3351と検証データ # 2とを用い て受け取ったデータを検証する(ステップ S3153)。具体的には、 AIK証明書 # 2の 検証、署名データの検証、 SML # 2の検証を順次行う。
[0549] 検証が成功し、 TPM # 2の管理するプログラム群の構成が正当であると判断すると 、検証部 3341は、受け取った ID # 2と、 AIK証明書 # 2に含まれる AIK# 2Pとを D RM処理部 3342へ出力する(ステップ S 3154)。
DRM処理部 3342は、受け取った ID # 2と AIK# 2Pを記憶しておく。利用者の操 作によりコンテンツの再生を要求されると、 DRM処理部 3342は、要求に対応する暗 号ィ匕コンテンッ及びコンテンッ鍵をコンテンッ記憶部 3343から読み出す (ステップ S 3155)。続いて、記憶している AIK # 2Pを用いてコンテンツ鍵を暗号ィ匕する(ステツ プ S3156)。次に、 DRM処理部 3342は、記憶している ID # 2と、読み出した暗号化 コンテンツと、生成した暗号ィ匕コンテンツ鍵とを端末装置 3301へ出力する (ステップ S3158)。
[0550] 端末装置 3301の TPM # 2は、メモリカード 3302から ID # 2と、暗号化コンテンツと 、暗号ィ匕コンテンツ鍵とを受け取る (ステップ S3158)。これらを受け取ると、受け取つ た暗号ィ匕コンテンツをそのまま再生制御部 3311へ出力し、次に、記憶している AIK # 2を用いて暗号ィ匕コンテンツ鍵を復号してコンテンツ鍵を生成する (ステップ S316 D o次に、 TPM # 2は、生成したコンテンツ鍵を再生制御部 3311へ出力する (ステ ップ S3162)。
[0551] 再生制御部 3311は、 TPM # 2から、暗号化コンテンツ及びコンテンツ鍵を受け取 る(ステップ S3162)。これらを受け取ると、受け取ったコンテンツ鍵で暗号化コンテン ッを復号してコンテンツを生成し、生成したコンテンツを再生する (ステップ S3163)。 復号により生成されたコンテンツが圧縮されていれば、伸長して再生する。
3. 5 実施の形態 3に関する変形例
(l)TPM間の検証
上記の実施の形態では、 TPM # 1の管理するプログラム群の正当性が証明された 後、 TPM # 1が TPM # 2を検証するとした力 これは必須ではない。
[0552] TPM # 1の管理するプログラム群の正当性が証明された後、 TPM # 1は TPM # 2 をァクティべイトし、 OSの PCR値を出力するだけでも良い。
逆に、メモリカード 3302との TPM # 1との Attestationに先立って、 TPM間で相 互認証を行うとしても良い。
また、 TPM # 1が、 TPM # 2の正当性を検証する方法について、上記の実施の形 態 3では、詳細には言及していないが、任意の方法で検証すればよい。例えば、チヤ レンジ &レスポンスのような、所定の演算により正当性を確認しても良いし、 TPM識
別子をチェックするような簡易な方法でも良い。
[0553] また、上記の実施の形態 3では、 TPM # 1による TPM # 2の正当性検証が失敗し た場合、 TPM # 1は、 TPM # 2への電力供給を停止すると記載したが、これに限定 されるものではなぐ例えば TPM # 2の起動を停止してもよいし、 TPM # 2の機能を 帘 U限するとしてもよ 、。
(2) TPM # 2が独立して動作
上記の実施の形態 3では、 TPM # 2は、 TPM # 1から OS3316と対応する PCR( OS)を受け取り、これを PCR0として記憶し、 PCR0と再生制御プログラム 3314のィ ンテグリティ値と力も再生制御プログラム 3314の PCR値 (PCR1)を算出しているがこ の構成に限るものではない。
[0554] 一例として、 TPM # 2内の不揮発性のメモリに所定の初期値 PCR0を記憶しておき 、これを用いて PCR1を算出しても良い。このように、 TPM # 2は、 TPM # 1とは独立 に動作する構成でも良い。
このように TPM # 2が、独自に PCR値を算出する場合、 TPM間の検証方法は、 T PM # 1が検証装置、 TPM # 2が証明装置となって、 Attestationを行っても良い。
[0555] (3)TPM # 2のソフトウェア実装
上記の実施の形態 3では、端末装置 3301は、ハードウェアである TPM # 2を搭載 しているとして説明してきた。しかし、 TPM # 2の機能の一部又は全部をソフトウェア により実現しても良い。
この場合、 TPM # 1は、メモリカード 3302との Attestationが成功すると、 TPM # 2の機能を担うハードウェア部分及びソフトウェア部分をそれぞれ検証する。具体的な 検証方法は任意である。一例として、 TPM # 1は、予めソフトウェア部分の検証デー タ (ハッシュ値など)を保持しておき、メモリにロードされる前にソフトウェア部分の証明 データ (ハッシュ値など)を算出し、両者を比較することで、ソフトウェア部分の正当性 を検証する。
[0556] また、 TPM # 2のハードウェア部分の検証につ!、ては、上記の TPM # 2の検証と 同様に IDの確認、チャレンジ &レスポンスなどにより正当性を検証する。
(4)検証失敗後の動作
上記の実施の形態 3では、 Attestationにより、端末装置 3301の構成が不正であ ると判断されると、メモリカード 3302内の検証部 3341は、端末装置 3301との通信を 禁止するとしている力 このような構成に限定されるものではない。
[0557] 例えば、メモリカードが端末装置に提供する機能、データを制限するとしても良い。
また、端末装置 3301は、自身の備えるプログラムを更新する更新制御部を備えて いても良い。
この場合、端末装置 3301の構成が不正であると判断されると更新制御部は、外部 サーバ(端末製造者のサーバ、ネットワークプロバイダのサーバ、コンテンツプロバイ ダのサーバ)から、更新プログラムをダウンロードし、ダウンロードした更新プログラム により、各プログラムを最新バージョンに書き換えた後、端末装置 3301を再起動する としてちよい。
[0558] (5)端末装置の構成通知
本実施の形態では、メモリカード 3302は、予め、端末装置 3301に 2つの TPMが 搭載されていることを知っており、各 TPMに対応する検証データを保持しているとし たが、端末装置に装着された時点で、端末装置の内部構成を示す構成情報を取得 してもよい。構成情報には、端末装置の搭載する TPMの数及び、 TPM識別子、さら に、複数の TPMを搭載する場合は、各 TPMの管理するプログラムの上下関係を示 す階層情報 (上記実施の形態では TPM # 1が下位層のプログラム群、 TPM # 2が 上位層のプログラム群と対応して 、る)が含まれる。
[0559] この場合、メモリカード 3302は、さらに、検証データ # 3を記憶している。検証デー タ # 3は、 TPMを 1個のみ搭載して!/、る端末装置との Attestationに用いられる正規 PCR # 3及び正規 SML # 3を含む。
メモリカード 3302の検証部 3341は、取得した構成情報により検証の手順を選択す る。端末装置に 2個の TPMが搭載されている場合には、上記の実施の形態 3と同様 に、下位層プログラム群を管理する TPMと Attestationを行った後、上位層のプログ ラム群を管理する TPMと Attestationを行う。
[0560] 端末装置が 1個の TPMを搭載している場合には、検証部 3341は、検証データ # 3を用いて、端末装置の構成の正当性を検証する。
4. 実施の形態 4
4. 1 概要
端末装置に記憶されているプログラムを更新する必要が生じたとき、更新プログラム を、メモリカードを介して配布する場合がある。
[0561] ここでは、端末装置内のプログラムのうちキャリア 3373 (通信事業者)が提供してい るプログラムを更新するための更新プログラムを、メモリカードを介して配布する。端 末装置には、コンピュータにより動作の一部又は全部を制御される様々な機器が該 当するが、例えば、携帯電話、コンテンツ再生装置、ゲーム機などが該当する。 端末装置 3371は、上記の実施の形態 1と同様に TPMを搭載しており、起動してか らメモリにロードされる各プログラムの完全性及びプログラム構成の正当性を示す PC R値群及び SML (PCR値群の履歴を含む)を生成し記録する。また、端末装置 337 1は、キャリアにより提供されたプログラム (キャリア提供プログラム)を記憶している。
[0562] キャリア 3373は、メモリカード 3372に更新プログラムと、メモリカードが正当なキヤリ ァカゝら配布されたことを証明するキャリア証明書とを記録したメモリカードを配布する 場合を想定して説明する。
メモリカード 3372 (検証装置)は、端末装置 3371 (証明装置)に装着されると、端末 装置 3371との間で Attestationを行 、、端末装置 3371の構成の正当性を検証す る。端末装置 3371の構成が正当であることが証明されると、メモリカード 3372は、記 憶しているデータを端末装置 3371へ出力する。
[0563] 端末装置 3371は、メモリカード 3372から出力された更新プログラムによる更新を 行う前に、キャリア証明書の検証を行い、自身に装着されているメモリカード 3372が 正当なキャリア 3373から配布されたメモリカードであることを確認する。
4. 2 メモリカード 3372の構成
メモリカード 3372は、上記の実施の形態と同様に、入出力部、制御部、メモリ、検 証部、検証データ記憶部など各機能部により動作するが、これらは、上記の実施の 形態と同様であるので、ここでは、具体的な構成の説明は省略し、メモリカード 3372 の保持するデータについて説明する。
[0564] (1)更新プログラム 3376
更新プログラム 3376は、端末装置 3371の保持するキャリア提供プログラム 3384 の一部又は全部を書き換える手順や書き換える内容を含む。更新プログラム 3376は 、端末装置 3371内の更新制御部 3382により解読され実行される。
(2)キャリア証明書 3377
キャリア証明書 3377は、メモリカード 3372が正当なキャリア 3373により配布された ことを示す証明書であって、更新プログラム 3376をハッシュ関数に代入して生成され た更新プログラムハッシュ値 3378と、キャリア 3373の秘密鍵 (以下、キャリア秘密鍵 と呼ぶ)を用いて、少なくとも更新プログラムハッシュ値 3378に署名生成アルゴリズム を施して生成された署名データ 3379とを含む。これら以外にも、発行元であるキヤリ ァ 3373を示す識別情報、証明書の形式を示す形式情報、署名生成アルゴリズムを 示す情報などを含んで 、る。
4. 3 端末装置 3371
端末装置 3371についても、メモリカードと同様に、各機能部を備え、それらが動作 することにより各機能を実現する力 ここでは、本実施の形態に特に関係のある構成 及びデータのみを記載し、その他の構成及びデータの記載は省略する。
[0565] 端末装置 3371は、キャリア 3373により提供されたキャリア提供 TPM3381を搭載 している。また、キャリア 3373により提供されたキャリア提供プログラム 3384、キャリア 秘密鍵と対になるキャリア公開鍵 3386を記憶している。また、プログラムの更新を実 行する更新制御部 3328を備える。
以下に、端末装置 3371の備える構成及びデータについて説明する。
[0566] (1)キャリア公開鍵 3386
キャリア公開鍵 3386は、キャリア秘密鍵と対なる公開鍵であって、製造時に、端末 装置 3371に書き込まれる。又は、出荷後にネットワーク、メモリカードなどを介して安 全に取得しても良い。
キャリア秘密鍵とキャリア公開鍵 3386の鍵ペアは、 RSA暗号に対応している。
[0567] (2)キャリア提供プログラム 3384
キャリア提供プログラム 3384は、キャリア 3373により提供されるプログラムであって 、端末装置 3371は、このプログラムを実行することで、キャリア 3373の提供する所定
のサービスを利用することができる。
(3)キャリア提供 TPM3381
キャリア提供 TPM3381は、キャリア 3373により提供された TPMであって、少なくと もキャリア提供プログラム 3384と対応する PCR値及び SMLを生成し、記録する機能 を備える。
[0568] また、更新制御部 3382からキャリア証明書を受け取り、キャリア証明書の検証を依 頼される。この依頼を受けると、キャリア提供 TPM3381は、キャリア公開鍵 3386を 読み出し、読み出したキャリア公開鍵 3386を用いて、キャリア証明書に含まれる署名 データの検証を行 、、検証結果を更新制御部 3382に通知する。
(4)更新制御部 3382
更新制御部 3382は、キャリア提供 TPM3381とメモリカード 3372による Attestati onが成功すると、メモリカード 3372から更新プログラム 3376とキャリア証明書 3377 を読み出す。
[0569] これらを読み出すと、読み出したキャリア証明書をキャリア提供 TPM3381へ出力し
、キャリア証明書の検証を依頼する。
続いて、キャリア提供 TPM3381からキャリア証明書の検証結果を通知される。検 証の失敗を示す検証結果を通知された場合、読み出した更新プログラム及びキヤリ ァ証明書を削除し、プログラムの更新を中止する。
[0570] 検証の成功を示す検証結果を通知された場合、更新制御部 3382は続 、て、読み 出した更新プログラムのハッシュ値を算出し、算出したハッシュ値とキャリア証明書に 含まれる更新プログラムノ、ッシュ値 3378とを比較する。
両者が一致する場合、更新制御部 3382は、読み出した更新プログラムに従って、 キャリア提供プログラム 3384の一部又は全部を書き換える。
[0571] 両者が一致しない場合、読み出した更新プログラムが不正に改竄されている可能 性があるので、更新制御部 3382は更新を中止し、読み出した更新プログラム 3376 及びキャリア証明書を削除する。
4. 4 動作
以下に、図 45を用いて、端末装置 3371によるプログラム更新の動作を、順を追つ
て説明する。なお、ここでは、メモリカード 3372は、正当なキャリア力も発行され、端 末装置 3371に装着されるまでに、記録して 、るデータに不正な改竄をされて 、な!/ヽ ものとして説明する。
[0572] メモリカード 3372が端末装置 3371に装着されると、端末装置 3371内のキャリア提 供 TPM3381とメモリカード 3372 (検証装置)は Attestationを行う(ステップ S3181
) o
Attestationが正常に終了すると、更新制御部 3382は、メモリカード 3372は、更 新プログラム 3376及びキャリア証明書 3377を読み出す (ステップ S3182)。
[0573] 次に、更新制御部 3382は、読み出したキャリア証明書をキャリア提供端末へ出力 して、検証を依頼する (ステップ S3184)。
キャリア提供 TPM3381は、更新制御部 3382の依頼を受けると (ステップ S3184) 、キャリア公開鍵 3386を読み出し (ステップ S3186)、読み出した、キャリア公開鍵 33 86を用いてキャリア証明書に含まれる署名データを検証する (ステップ S3187)。
[0574] 続いて、キャリア提供 TPM3381は、更新制御部 3382へ検証が成功である旨を通 知する(ステップ S3188)。
更新制御部 3382は、キャリア証明書の検証が成功した旨の通知を受け (ステップ S 3188)、続いて、読み出した更新プログラムハッシュ値を算出する。算出したハッシュ 値とキャリア証明書に含まれるノ、ッシュ値とがー致することを確認した後、更新プログ ラムに従ってキャリア提供プログラム 3384を更新する (ステップ S3182)。
4. 5 実施の形態 4に関する変形例
( 1 )コンテンツ再生に関する TPM
本変形例では、端末装置 3391は、上記の実施の形態 4において説明した端末装 置 3371と同様に、少なくともキャリア提供プログラムを管理する TPMを搭載しており 、キャリア 3373により発行されたメモリカード 3372を介してキャリア提供プログラム 33 84を更新する。
[0575] これにカ卩えて、図 46に示すように、端末装置 3391はコンテンツプロバイダ(以下 C Pと記載) 3400により提供された CP提供再生制御プログラム 3393を記憶しており、 少なくとも CP提供再生制御プログラム 3393の正当性を証明する PCR値及び SML
を生成、記録する CP提供 TPM3396を搭載している。また、端末装置 3391にコンテ ンッカード 3392が装着されると、所定の検証の後、端末装置 3391はコンテンツの再 生を行う。
[0576] 端末装置 3391にメモリカード 3372が装着された場合の動作は、上記の実施の形 態 4と同様であるので説明を省略する。
正当なコンテンツプロバイダ 3400により発行されたコンテンツカード 3392には、喑 号化コンテンツ 3401と暗号化コンテンツ 3401を復号するための復号鍵 3402と CP 証明書 3403が記録されている。 CP証明書 3403は、少なくとも所定の情報と、 CP秘 密鍵を用 、て前記所定の情報に署名を施して生成された署名データが含まれる。所 定の情報とは、一例として、コンテンツプロバイダ 3400を示す識別情報、復号鍵 340 2のハッシュ値などが考えられる。
[0577] 端末装置 3391は、 CPにより提供され、コンテンツの復号及び再生の手順を含む C P提供再生制御プログラム 3393と、 CP公開鍵 3394が記憶されている。 CP公開鍵 は CP秘密鍵と対になる鍵である。
以下、端末装置にコンテンツカード 3392が装着された場合の動作について説明す る。
[0578] コンテンツカード 3392が装着されると、端末装置 3391内の CP提供 TPM3396と コンテンツカード 3392 (検証装置)の間で Attestationが行われる(ステップ S3191 )。 Attestationの結果、 CP提供 TPM3396の管理するプログラム群の構成が正当 であることが証明されると、 CP提供再生制御プログラム 3393は(より正確には、 CPU により CP提供再生制御プログラム 3393が実行されることで実現される再生制御部) は、コンテンツカード 3392力ら、暗号化コンテンツ 3401、復号鍵 3402及び CP証明 書 3403を読み出す (ステップ S3192)。これらを読み出すと、 CP提供再生制御プロ グラム 3393は、読み出した CP証明書を CP提供 TPMへ出力し、 CP証明書の検証 を依頼する(ステップ S3195)。
[0579] CP提供 TPM3396は、この依頼を受けると、 CP公開鍵を読み出し (ステップ S) 31 94)、読み出した CP公開鍵を用いて CP証明書に含まれる署名データの検証を行う( ステップ S3195)。続いて、検証の結果を CP提供再生制御プログラムへ通知する (ス
テツプ S3196)。
CP提供再生制御プログラム 3393は、 CP証明書が正当である旨の通知を受けると 、読み出した復号鍵で暗号ィ匕コンテンツを復号し、再生する (ステップ S3197)。
[0580] (2)他者の提供した TPMの検証
上記の変形例(1)において、メモリカード及びコンテンツカードは、それぞれ、キヤリ ァ提供 TPM、 CP提供 TPMと Attestationを行っている力 例えば、 CPにより発行 されたコンテンツカード 3392 (検証装置)はキャリア提供 TPM3381とも Attestatio nを行い、メモリカード 3372 (検証装置)は、 CP提供 TPM3396とも Attestationを 行う構成であっても良い。
[0581] また、実施の形態 3のように、いずれのカードを装着した場合も、先ず、下位層のプ ログラムを管理する TPMと Attestationを行い、 Attestationが成功すると、下位層 のプログラムを管理する TPMがもう一方の TPMをァクティべイトし、その後、起動さ れた TPM (上位層のプログラム群を管理する)と Attestationを行 、つてもよ!、。
[0582] (3) SIMカード
実施の形態 4において、端末装置はメモリカードに代えて SIM (Subscriber Iden tity Module Card)カードを検証装置として Attestationを行い、正当性が証明さ れると SIMカード内の情報を取得できる構成であっても良い。図 47は、 SIMカード 3 411の保持する情報、端末装置 3416 (この場合、携帯電話が該当する)の構成及び 動作を示している。ここでは、端末装置には、例えば、携帯電話が該当する。
[0583] SIMカード 3411にはキャリア証明書 3412とキャリア固有鍵 3413を記憶している。
SIMカード 3411には、これらの他に、契約者情報などが記録されている。
キャリア証明書 3412には、少なくとも、キャリアを識別する識別情報及び、キャリア 秘密鍵を用いて、少なくとも前記キャリア識別情報に署名生成アルゴリズムを施して 生成された署名データが含まれて!/、る。
[0584] 端末装置 3416はキャリア提供 TPM3417を搭載しており、暗号化プログラム 3418 及びキャリア公開鍵 3419を記憶している。
キャリア提供 TPM3417は、共通鍵暗号(例えば AES ( Advanced Encryption Standard) )エンジンを搭載して!/、る。
暗号ィ匕プログラム 3418は、所定のサービスを提供するプログラムをキャリア固有鍵 で暗号ィ匕して生成されたものである。
[0585] キャリア公開鍵 3419はキャリア秘密鍵と対なる公開鍵であって、これらの鍵ペアは 、 RSA暗号に対応している。
以下、端末装置 3416の動作を簡単に説明する。
先ず、キャリア提供 TPM3417 (証明装置)と SIMカード 3411 (検証装置)間で Att estationを行い、端末装置 3416内でメモリにロードされたプログラム群の構成の正 当性を検証する(ステップ S3201)。 Attestation力 正常に終了すると、キャリア提 供 TPM3417は、 SIMカード 3411からキャリア証明書 3412を読み出す (ステップ S 3202)。次に、キャリア公開鍵 3419を読み出し (ステップ S3204)、読み出したキヤリ ァ公開鍵を用いてキャリア証明書に含まれる署名データの検証を行う(ステップ S32 06)。検証が成功であれば、キャリア提供 TPM3417は、 SIMカード 3411から、キヤ リア固有鍵 3413を読み出す (ステップ S3207)。次に、自身の備える共通鍵暗号ェ ンジンにより、読み出したキャリア固有鍵を用いて暗号ィ匕プログラム 3418を復号する (ステップ S3208)。
[0586] (4)端末固有鍵
上記変形例(3)において、 SIMカードには、キャリア固有鍵が記憶されているとした 力 これに代えて、端末固有鍵を記憶している構成であっても良い。
この場合、端末装置の記憶している暗号ィ匕プログラムは、プログラムを前記端末固 有鍵により暗号ィ匕して生成されたものであって、前記端末装置だけが暗号化プロダラ ムを復号して、前記プログラムを利用することができる。
5. 実施の形態 5
5. 1 概要
本実施の形態では、端末装置 3431は、 Attestationの検証装置の機能を内部に 備える。検証データには、署名が施され改竄されたとしても、容易に改竄の検出をす ることができるようになって!/、る。
[0587] 端末装置 3431内の検証部 3438は、先ず、検証データに改竄がないことを確認し 、続いて、内部の TPM (証明者)と Attestationを行い、端末内の構成が正当である
か否かを検証する。
5. 2 構成
図 48は、端末装置 3431の機能的構成を示すブロック図である。端末装置 3431は 、図示していない各種の機能部を備える力 ここでは、 Attestationに関連のある部 分のみを記載している。
[0588] 以下に各構成について説明する。
(1)メモリ 3432
メモリ 3432は、 RAM及び ROMから構成され、一例として、図 48に示すように BIO S、 OS、アプリケーションが記憶されている。これらのプログラムには、実施の形態 1 にお 、て説明したように CRTMコード又は RTMコードを含んで!/、るとしても良!、し、 実施の形態 1の変形例 (4)のように、各プログラムとは個別に、 RTMプログラムが存 在する構成でも良い。
[0589] また、 BIOSには、 OSをロードする手順が含まれており、 OSにはアプリケーションを ロードする手順が含まれて 、る。
(2) TPM3433
TPM3433は、実施の形態 1と同様に、 RTM3437からインテグリティ値を受け取り 、各プログラムに対応する PCR値を算出し、 PCR記憶部 3436に記憶している。また 、いずれかの PCR値が変わるたびに、 PCR値の履歴を不揮発メモリ 3439に書き込 み、 SML3443を生成する。なお、本実施の形態の場合、 AIK鍵ペアの生成及び AI K証明書の取得は必須ではなぐ検証部 3438による検証においては、 PCR値群を そのまま出力するが、実施の形態 1と同様に、 AIK証明書を取得し、 AIK秘密鍵を用 V、て署名を施した PCR値群を出力しても良 、。
[0590] (3)不揮発メモリ 3439
不揮発メモリ 3439は、具体的にはハードディスクユニット、フラッシュメモリ、 ROM などで構成され、図 48に示すように EK証明書 3441、 PF証明書 3442、 SML3443 、検証用公開鍵 3446、正規 PCR証明書群 3445、正規 SML証明書 3451を記憶し ている。
[0591] EK証明書 3441、 PF証明書 3442、 SML3443は、上記の実施の形態において
説明したとおりであるので、ここでは説明を省略する。
検証用公開鍵 3446、正規 PCR証明書群 3445、正規 SML証明書 3451は、端末 装置 3431の製造過程において、不揮発メモリ 3439の、書き換え不可領域に書き込 まれる。
[0592] 検証用公開鍵 3446は、 RSA暗号に対応した公開鍵であって、検証用秘密鍵 (後 述する)と対になる鍵である。検証用秘密鍵と検証用公開鍵の鍵ペアは、一例として RSA暗号に対応している。
正規 PCR証明書群 3445は、複数の正規 PCR証明書 3447、 3448、 3449 · · 'か ら構成される、各正規 PCR証明書は、少なくとも、端末装置 3431に記憶されている 各プログラムの識別情報と、そのプログラムが正当である場合に算出されるべき PCR 値とその PCR値に、検証用秘密鍵を用いて署名生成アルゴリズムを施して生成され た署名データとを含む。
[0593] 例えば、正規 PCR証明書 3447は、 BIOSと対応しており、 BIOSを示す識別情報と 、正当な BIOSコードに基づいて算出されるべき正規 PCR値 (正規 PCR1)と、検証 用秘密鍵を用いて正規 PCR1に署名生成アルゴリズムを施して生成された署名デー タとを含んでいる。
正規 SML証明書 3451は、上記の実施の形態において説明した正規 SMLと、検 証用秘密鍵を用いて、正規 SMLに署名生成アルゴリズムを施して生成された署名 データとを含んでいる。
[0594] (4)検証部 3438
検証部 3438は、端末装置 3431が起動すると、不揮発メモリ 3439から検証用公開 鍵 3446と正規 PCR証明書群 3445と正規 SML証明書 3451を読み出し、読み出し た検証用公開鍵 3446を用いて各証明書に含まれる署名データを検証する。何れか 一つでも、検証に失敗した場合、端末装置 3431の動作を停止させる。
[0595] 各証明書の検証が正常に終了すると、 TPM3433内の PCR記憶部 3436から PC R値群を読み出し、読み出した PCR値群を構成する各 PCRと、各正規 PCR証明書 に含まれる正規 PCR値とがー致することを確認する。何れか一組でも、 PCR値と正 規 PCR値とがー致しなければ、端末装置 3431の動作を停止させる。
全ての PCR値につて、読み出した PCR値と正規 PCR値とがー致すると、検証部 3 438は、不揮発メモリ 3439力ら SML3443を読み出し、読み出した SMLと正規 SM L証明書 3451に含まれる正規 SMLとを比較する。両者が一致しない場合は、端末 装置 3431の動作を停止させる。
[0596] 両者が一致すれば、検証部 3438は、検証の処理を終了する。
なお、確実な検証を行うために、検証部 3448は、メモリ 3432にロードされるプログ ラム群及び CPUとは、独立であることが望ましい。従って、ハードウェアとして実装さ れるか、書き換え不可のセキュア領域に記憶されるプログラムにより実現される、もし くは、耐タンパ実装されていることにより実現される。
[0597] また、検証が失敗した場合、端末装置 3451の動作を停止させると記載しているが、 これに限るものではなぐ例えば、所定の動作を制限して動作を継続しても良いし、 外部機器又はメモリカードから更新用プログラム及び、最新の正規 PCR証明書群と 正規 SML証明書を取得しても良い。
5. 3 実施の形態 5の変形例
(1)階層ごとの TPM
上記の実施の形態 5において、端末装置 3431は、 1個の TPMを搭載しており、検 証部 3438は、この TPMにより算出される各プログラムと対応する PCR値を検証して V、たが、プログラムの階層ごとに TPM及び検証部を備える構成であっても良 、。
[0598] 図 49は、この変形例における端末装置 3500の構成を示している。端末装置 3500 これらの他にも、ハードディスクユニット、通信部、入出力部、 CPUなどを含んで構成 される力 図 49では、端末装置 3500の構成の検証に関連する部分のみを記載して いる。また、図中の矢印は、各構成間のデータフローを示している。
図 49【こ示すよう【こ、端末装置 3500ίま、メモリ 3501、 TPM3511, 3513、 3516、 R TM3521, 3523、 3526、検証部 3522、 3524, 3527及びセキュアメモ U3531を 含んで構成される。
[0599] TPM3511と RTM3521と検証咅 3522は、アプリケーション 3502と対応しており、 TPM3513と RTM3523と検証咅 3524は、 OS3503と対応しており、 TPM3516と RTM3526と検証咅 3527は、 BIOS3504と対応して! /、る。
以下に、各構成について説明するが上記の実施の形態と重複する説明は省略し、 本変形例に特有の部分を中心に説明する。
[0600] (1— 1)メモリ 3501
メモリ 3501は、 RAM, ROMから構成され、 CPUが実行するプログラムを記憶する 。メモリ 3501【こ ίま、 BIOS3504, OS3503, プリゲーシヨン 3502の jl匿【こロード、され 、各プログラムには上位のプログラムをメモリ 3501にロードする手順が含まれる。
[0601] (1— 2)セキュアメモリ 3531
セキュアメモリ 3531は、書き込み及び消去不可のメモリであって、検証用公開鍵 35 32、正規 PCR証明書 3533、 3534及び 3536を記憶している。これらの構成は、前 述の実施の形態 5と同様であるので説明を省略する。
正規 PCR証明書 3536、 3534、 3533はそれぞれ、階層の異なるプログラム、 BIO S3504, OS3503,アプリケーション 3502と対応して! /、る。
[0602] (1— 3)RTM3526、 3523及び 3521
RTM3526は、 BIOS3504に含まれる CRTMコードを CPUが実行することにより 実現される機能部であって、 BIOS自身のインテグリティ値及び BIOSの呼び出すプ ログラム (OS)のインテグリティ値を算出する。
RTM3523及び 3521は、それぞれ、 OS3503及びアプリケーション 3502に含ま れる RTMコードを CPUが実行することにより実現する機能部であって、それぞれ、 対応するプログラムが呼び出そうとするプログラムのインテグリティ値を計測する機能 を備える。
[0603] — 4)検証部 3527、 3524、 3522
3つの検証部はそれぞれ、対応する TPMによって算出された PCR値の正当性を 検証する。検証の手順は、実施の形態 5と同様に、セキュアメモリ 3531から検証用公 開鍵 3532と正規 PCR証明書 (ここでは、各検証部と対応する正規 PCR証明書のみ )とを読み出し、読み出した正規 PCR証明書の検証、続いて、対応する TPMの保持 する PCR値と読み出した正規 PCR証明書に含まれる正規 PCR値とを比較する。一 致しなければ、端末装置 3500の動作を停止させる。又は、対応するプログラムによる 次のプログラムのロードを中止するとしてもよい。
[0604] 対応する TPMの保持する PCR値と読み出した正規 PCR証明書に含まれる正規 P CR値とがー致すれば、検証部は、対応する RTMに、対応するプログラムがロードし ようとしているプログラムのインテグリティ値の計測を指示する。これと同時に、対応す る TPMへ記憶して!/、る PCR値を上位の TPMへ出力するように指示する。
(1— 5)TPM3516、 3513、 3511
各 TPMは、対応するプログラムの PCR値を算出し、記憶する機能を有する。また、 対応する検証部の指示に従って記憶している PCR値を上位の TPMへ出力する。
[0605] (1 6)動作
BIOS3504力ら j噴に プリゲーシヨン 3502力 Sメモリ 3501に口一、されるまでの、端 末装置 3500内の各部の処理を、順を追って説明する。
電源が ONになると先ず BIOSに含まれる CRTMコードが実行されることで実現さ れる機會部である RTM3526により、 BIOS3504内の CRTMコードのインテグリティ 値が算出され、これを基に、 TPMは、 PCR0を算出する。続いて、 RTM3526は、 BI OS3504のインテグリティ値を計測し、 TPM3516は、計測されたインテグリティ値と PCR0とを基に、 BIOSと対応する PCR値 3517 (PCR1)を算出し、記憶する。 PCR 1が算出されると BIOS3504力メモリ 3501にロードされ、実行される。
[0606] また、検証部 3527は、検証用公開鍵 3532と正規 PCR証明書 (BIOS用) 3536を セキュアメモリ 3531から読み出し、正規 PCR証明書(BIOS用) 3536を検証し、続い て、正規 PCR証明書 3536に含まれる正規 PCR値と PCR1を比較する。両者が一致 すると、検証部 3527は、 RTM3526へ次にロードされるプログラム(OS3503)のィ ンテグリティ値の計測を指示し、 TPM3516へ PCR1の出力を指示する。
[0607] RTM3526は、 033503のィンテグリティ値111(03)を計測して、上位の TPM351 3へ出力する。また、 TPM3516は、上位の TPM3513へ、記憶している PCR1を出 力する。
TPM3513は、 1^[1^3526から033503のィンテグリティ値111 (03)を受け取り、 T PM3516から PCR1を受け取る。これらを受け取ると、受け取った111 (03)と130^1か ら PCR2を算出し、記憶する。
[0608] PCR2が算出されると、 BIOS3504は OS3503をメモリ 3501へロードする。また、
検証部 3524は、セキュアメモリ 3531から、検証用公開鍵 3532と正規 PCR証明書( OS用) 3534を読み出し、正規 PCR証明書(OS用) 3534の検証、 PCR2の検証を 順次行う。
PCR2が正規 PCR証明書 (OS用) 3534に含まれる正規 PCR値と一致すると判断 すると、検証部 3524は、 RTM3523へ OS3503がロードしょうとしているプログラム( アプリケーション 3502)のインテグリティ値 In (アプリ)の算出を指示し、 TPM3513へ 、 PCR2を上位の TPM3511へ出力するように指示する。
[0609] 検証部 3524の指示に従って、 RTM3523はアプリケーションのインテグリティ値 In
(アプリ)を算出し、 TPM3511へ出力する。同様に、 TPM3513は、記憶している P CR2を TPM3511へ出力する。
TPM3511は、 RTM3523から In (アプリ)を受け取り、 TPM3513力ら PCR2を受 け取る。これらを受け取ると、 TPM3511は、アプリケーション 3502と対応する PCR 値 3512 (PCR3)を算出する。
[0610] PCR3力算出されると、 OS3503は、アプリケーション 3502をメモリ 3501にロード する。
(2)上位層の検証
上記の変形例(1)では、各検証部は、自身と対応するプログラムの構成が正当であ るカゝ否かを検証し、正当であることが証明されると、上位層の TPMへ、演算に必要な パラメータ(具体的には、下位層の PCR値と上位層のプログラムのハッシュ値)を出 力する構成であった力 これに代わって、検証部は、上位の層の検証部及び RTM の正当性を検証する構成であっても良い。以下の説明の便宜上、 BIOS3504, OS 3503、アプリケーションと 3502の属する層をそれぞれ BIOS層、 OS層、アプリ層と 呼ぶ。
[0611] 図 50は、この変形例における端末装置 3600の構成のうち、検証に関連する部分 のみを記載している。図中の矢印は、下位層の検証部による上位層の検証部及び R TMの検証動作を示している。また、変形例(1)と重複する構成には同一の参照符 号を付している。
以下に、変形例(1)と異なる構成及び動作について説明する。
[0612] (2— 1)RTM3622、 3623及び 3627
RTM3627, 3624及び 3622は、それぞれ、 BIOS層、 OS層、アプリケーション層 に属し、自身の属する層のプログラムのインテグリティ値を計測する。続いて、計測し たインテグリティ値を、それぞれの層の TPM3516、 3513、 3511へ出力する。
[0613] 例えば、 RTM3627は、 BIOS3504のインテグリティ値を計測し、 TPM3516へ出 力する。
また、 RTM3623及び 3627がハードウェアにより構成されている場合、下位層の 検証部から、乱数を受け取る。乱数を受け取ると、 RTM3623及び 3627は、受け取 つた乱数に所定の演算を施して、下位層の検証部へ演算結果を出力する。
[0614] (2— 2)TPM3516、 3513及び 3511
TPM3516, 3513及び 3511は、それぞれ、 RTM3622, 3623及び 3627力も、 自身の属する層のプログラムのインテグリティ値を受け取り、受け取ったインテグリティ 値を拡張して PCR値を算出し、記憶する。
また、同一の層に属する検証部の要求に従って、記憶している PCR値を検出部へ 出力する。
[0615] 例えば、 TPM3516は、 RTM3627力ら、インテグリティ値を受け取り、受け取った インテグリティ値を拡張して PCR1を算出し、記憶する。また、検証部 3626から、 PC R値出力要求を受けると、 TPM3516は、記憶している PCR1を検証部 3626へ出力 する。
(2— 3)セキュアメモリ 3531
セキュアメモリ 3531は、上記の変形例(1)において説明した情報にカ卩えて、 OS層 検証データ 3622とアプリ層検証データ 3631とを記憶している。
[0616] OS層検証データ 3622は及びアプリ層検証データ 3631は、それぞれ、検証部 36 26及び 3623上位層の検証部と RTMの正当性を検証するために用いるデータであ る。
具体的に、検証部及び RTMが、ソフトウェアにより実現されている場合、 OS層検証 データ 3622は、検証部 3623及び RTM3624の機能を実現する正常なプログラムコ ードに所定の演算を施して算出されるべき値である。所定の演算は、任意であるが、
一例として、 SHA— 1のような一方向関数や、 AES暗号化演算、署名演算などが考 えられる。アプリ層検証データ 3631につ 、ても同様である。
[0617] また、上位層の検証部及び RTM力 ハードウェアにより実現されている場合、 OS 層検証データ 3622は、検証部 3623及び RTM3624の機能を備える回路により算 出されるべき値である。この場合、 OS層検証データは、検証部 3626により書き込ま れる。
アプリ層検証データ 3131についても、同様であって、検証部 3623により書き込ま れる。
[0618] (2— 4)検証部 3626、 3623及び 3621
検証部 3626、 3623及び 3621は、変形例(1)の 3つ検証部と同様に、それぞれ対 応するプログラムの正当性の検証を行う。検証の手順は、変形例(1)と同様であるの で、説明は割愛する。
対応するプログラムの正当性が証明されると、検証部 3626及び 3623は、上位の 層の検証部と RTMの正当性を検証する。
[0619] 具体的には、各検証部及び RTMがソフトウェアにより実現されている場合、検証部 3626は、検証部 3623を実現するプログラムコードと RTM3624を実現するプログラ ムコードを連結して連結コードを生成し、生成した連結コードに所定の演算を施す。 次に、検証部 3626は、セキュアメモリ 3531から OS層検証データ 3623を読み出し、 読み出した OS層検証データ 3623と演算結果とを比較する。両者が一致した場合、 検証部 3626は、上位層の検証部 3623及び RTM3624が正当であると判断し、検 証部 3623及び RTM3624をァクティべイトする。
[0620] ここで、所定の演算は、どのような演算であっても良いが、一例として、一方向関数 、暗号化演算などが考えられる。また、その他の演算であっても良い。
検証部 3623による検証部 3621及び RTM3622の検証手順も同様である。
なお、本変形例では、検証部 3623が所定の演算を施すとあるが、所定の演算を R TM3627が有する関数を利用してもよい。また、検証部 3623を実現するプログラム コードと RTM3624を実現するプログラムコードを連結した連結コードに対して所定 の演算を施している力 連結せず、それぞれに対して所定の演算を施しても良い。
[0621] 両者が一致しなかった場合、検証部 3626は、上位層の検証部 3623及び RTM36 24が不正であると判断し、端末装置 3600の動作を停止する。又は、所定機能を制 限する。
また、各検証部及び RTMがハードウェアにより実現されている場合、検証部 3626 は、乱数を生成し、生成した乱数を検証部 3623及び RTM3624へ出力する。続い て、検証部 3626は、生成した乱数に、検証部 3623及び RTM3624が正当である場 合に施されるべき演算を施して OS層検証データを生成し、セキュアメモリ 3531に書 き込む。次に、検証部 3623及び RTM3624から、所定の演算結果を受け取る。
[0622] 演算結果を受け取ると、検証部 3626は、セキュアメモリ 3531から、 OS層検証デー タ 3632を読み出し、受け取った演算結果と読み出した OS層検証データとを比較す る。両者が一致すると、検証部 3626は、上位層の検証部 3623及び RTM3624が 正当であると判断し、これらをァクティべイトする。
両者が一致しなカゝつた場合、検証部 3626は、上位層の検証部 3623及び RTM36 24が不正であると判断し、端末装置 3600の動作を停止する。又は、所定機能を制 限する。
[0623] 検証部 3623による検証部 3621及び RTM3622の検証手順も同様であるので説 明を省略する。
また、検証部 3621及び 3623がハードウェアにより実現されている場合、下位層の 検証部から乱数を受け取る。乱数を受け取ると、検証部 3621及び 3623は、受け取 つた乱数に所定の演算を施し、演算結果を下位層の検証部へ出力する。
[0624] (2— 5)まとめ
以上の構成によると、電源投入後、 BIOSの正当性検証、 OS層の検証部及び RT Mの正当性検証、 OSの正当性検証、アプリ層の検証部及び RTMの正当性検証、 アプリケーションの正当性検証が順次行われる。
全ての検証が成功であれば、端末装置 3600は、正常に動作することができる。
[0625] なお、図 50では、各 TPMは、各自の属する層のプログラムのインテグリティ値を受 け取り、受け取ったインテグリティ値を拡張して PCR値を算出し、記憶しているが、こ れは、必須ではなぐインテグリティ値をそのまま記憶していても良い。
6. その他の変形例
以上、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の 実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれ る。
[0626] (1)上記の実施の形態、及び、その変形例において、端末装置及びメモリカードは TCG規格に準拠した TPMチップを搭載しているとしてきた力 これに限定されるもの ではない。規格外であっても、同様に、各機器の正当性を証明する情報を生成、蓄 積する機能を有するセキュアな集積回路であれば良 、。
(2)各実施の形態において、端末装置はそれぞれ、パーソナルコンピュータ、音楽 プレーヤー、携帯端末などであるとして説明してきた力 これらに限るものではなぐメ モリ及びメモリにロードされたコンピュータプログラムに従って動作するコンピュータシ ステムを搭載した様々な機器に適応することができる。
[0627] 一例としては、サーバ装置を初めとするネットワーク機器、コンピュータ制御された 電ィ匕製品 (AV機器、調理機器など)、自動車、ロボットなどが挙げられる。
メモリカードに関しても同様に、端末装置に装着されて使用されるものを例に説明し てきたが、非接触 ICカードのようなものであってもよ 、。
(3)上記の各装置は、具体的には、マイクロプロセッサ、 ROM、 RAM,ハードディ スクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータ システムである。前記 RAM、 ROM,前記ハードディスクユニットには、コンピュータプ ログラムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムに 従って動作することにより、各装置は、その機能を達成する。ここで、コンピュータプロ グラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コー ドが複数個組み合わされて構成されたものである。
[0628] (4)上記の各装置を構成する構成要素の一部又は全部は、 1個のシステム LSI (La rge Scale Integration:大規模集積回路)から構成されているとしてもよい。シス テム LSIは、複数の構成部を 1個のチップ上に集積して製造された超多機能 LSIであ り、具体的には、マイクロプロセッサ、 ROM、 RAMなどを含んで構成されるコンビュ ータシステムである。前記 RAMには、コンピュータプログラムが記憶されている。前
記マイクロプロセッサ力 前記コンピュータプログラムに従って動作することにより、シ ステム LSIは、その機能を達成する。
[0629] (5)上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能な I Cカード又は単体のモジュール力 構成されて 、るとしてもよ 、。前記 ICカード又は 前記モジュールは、マイクロプロセッサ、 ROM, RAM,などから構成されるコンビュ ータシステムである。前記 ICカード又は前記モジュールは、上記の超多機能 LSIを 含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作するこ とにより、前記 ICカード又は前記モジュールは、その機能を達成する。この ICカード 又はこのモジュールは、耐タンパ性を有するとしてもよ!/、。
[0630] (6)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンビュ ータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプ ログラム力もなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ 読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、 CD— RO M、 MO、 DVD, DVD-ROM, DVD -RAM, BD (Blu— ray Disc)、半導体メ モリなど、〖こ記録したものとしてもよい。また、これらの記録媒体に記録されている前 記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
[0631] また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信 回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送 等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって 、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサ は、前記コンピュータプログラムに従って動作するとしてもよい。
[0632] また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送する ことにより、又は前記プログラム又は前記デジタル信号を、前記ネットワーク等を経由 して移送すること〖こより、独立した他のコンピュータシステムにより実施するとしてもよ い。
(7)また、上記実施例におけるメモリカード、 SIMカードの機能ブロックの全てが集
積回路である LSIとして実現される場合も本発明に含まれる。また、機能ブロックの全 てに限らず一部が LSIとして実現される場合も本発明に含まれる。これらは個別に 1 チップ化されても良いし、一部又は全てを含むように 1チップ化されてもよい。ここで は、 LSIとした力 集積度の違いにより、 IC、システム LSI、スーパー LSI、ウルトラ LS Iと呼称されることちある。
[0633] また、集積回路化の手法は LSIに限るものではなぐ専用回路又は汎用プロセッサ で実現してもよい。 LSI製造後に、プログラムすることが可能な FPGA (Field Program mable Gate Array)や LSI内部の回路セルの接続や設定を再構成可能なリコンフィギ ュラブノレ ·プロセッサを利用しても良!、。
更には、半導体技術の進歩又は派生する別技術により LSIに置き換わる集積回路 化の技術が登場すれば、当然その技術を用いて機能ブロックの集積ィ匕を行ってもよ い。バイオ技術の適応などが可能性として有り得る。
[0634] (8)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよ!/、。
産業上の利用可能性
[0635] 本発明を構成する各装置及びカードは、これらを製造する製造業、販売する販売 業において、経営的、つまり反復的かつ継続的に利用されうる。