(57)【要約】  従来技術では、端末がハッキングされている場合に、アップデートモジュールの信頼性が損なわれている可能性があり、プログラムを確実にアップデートさせることは困難である。  端末が利用しようとする秘密情報を格納したカードに、端末の更新プログラムを格納し、端末から得た情報を用いて端末の正当性を確認する機能と、端末が正当であると判断された場合には秘密情報を出力し、端末が正当でないと判断された場合には更新プログラムを出力する機能とを持たせる。これにより、端末は秘密情報を利用しようとする場合に、プログラムのアップデートを強制されることとなる。
2008004525.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と、前記情報処理装置に脱着可能な可搬型の情報記録装置とから構成される情報処理システムであって、
前記情報処理装置は、
当該情報処理装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムを格納している第１格納手段と、
ロードされるときに前記動作プログラムの特徴を示す特徴量を測定する測定手段と、
前記情報記録装置に対して、秘密情報を要求する要求手段と、
前記情報記録装置における前記動作プログラムの正当性の確認結果に応じて、秘密情報及び更新プログラムのいずれか一方を受信する受信手段と、
更新プログラムを受信した場合に、受信した更新プログラムに従って、前記第１格納手段に格納されている前記動作プログラムを更新する更新手段とを備え、
前記情報記録装置は、
秘密情報を安全に保持する情報保持手段と、
前記動作プログラムの更新のための更新プログラムを格納している第２格納手段と、
前記情報処理装置から秘密情報の要求を受信する受信手段と、
前記要求を受信すると、前記測定手段により測定された前記特徴量を用いて、前記動作プログラムの正当性を判断する判断手段と、
正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記情報処理装置へ出力し、正当でないと確認された場合、前記第２格納手段に格納されている前記更新プログラムを前記情報処理装置へ出力する出力手段と
を備えることを特徴とする情報処理システム。
【請求項２】
前記情報記録装置は、さらに、
過去に接続された情報処理装置を識別する装置識別子を格納している識別子格納手段と、
サーバ装置から、ネットワーク及び当該ネットワークに接続された前記情報処理装置を介して、前記識別子格納手段に格納されている装置識別子に関連付けられている前記更新プログラムを取得し、取得した前記更新プログラムを前記第２格納手段に書き込む第１取得手段と、
正当性情報格納手段と、
前記サーバ装置から、ネットワーク及び当該ネットワークに接続された前記情報処理装置を介して、前記第２格納手段に格納されている前記更新プログラムに関連付けられ、前記動作プログラムの正当性を確認するための正当性確認情報を取得し、取得した正当性確認情報を前記正当性情報格納手段に書き込む第２取得手段とを含み、
前記判断手段は、前記正当性情報格納手段に書き込まれている前記正当性確認情報に基づいて、前記動作プログラムの正当性を判断する
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
情報処理装置に脱着可能な可搬型の情報記録装置であって、
秘密情報を安全に保持する情報保持手段と、
前記情報処理装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムの更新のための更新プログラムを格納しているプログラム格納手段と、
前記情報処理装置から秘密情報の要求を受信する受信手段と、
前記要求を受信すると、前記情報処理装置から取得し、前記動作プログラムの特徴を示す測定特徴量を用いて、前記動作プログラムの正当性を判断する判断手段と、
正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記情報処理装置へ出力し、正当でないと確認された場合、前記プログラム格納手段に格納されている前記更新プログラムを前記情報処理装置へ出力する出力手段と
を備えることを特徴とする情報記録装置。
【請求項４】
前記情報記録装置は、さらに、
正当な動作プログラムの特徴を示す正規特徴量を格納する正規情報格納手段を含み、
前記判断手段は、前記情報処理装置から取得した測定特徴量と前記正規特徴量とを比較することにより、前記動作プログラムの正当性を判断する
ことを特徴とする請求項３に記載の情報記録装置。
【請求項５】
前記プログラム格納手段は、少なくとも過去に接続された１台以上の情報処理装置を識別する装置識別子と、前記情報処理装置のそれぞれに向けた更新プログラムとを対応付けて格納し、
前記出力手段は、前記要求の発信元である前記情報処理装置を識別する装置識別子に対応する情報処理装置向けの更新プログラムを出力する
ことを特徴とする請求項３に記載の情報記録装置。
【請求項６】
前記受信手段は、さらに、前記要求と共に前記要求の発信元である前記情報処理装置を識別する装置識別子を取得し、
前記プログラム格納手段は、過去に前記要求を行った１以上の情報処理装置を識別する装置識別子と、前記情報処理装置のそれぞれに向けた更新プログラムとを対応付けて格納し、
前記出力手段は、前記要求とともに受信した装置識別子に対応する情報処理装置向けの更新プログラムを出力する
ことを特徴とする請求項５に記載の情報記録装置。
【請求項７】
前記プログラム格納手段は、さらに、新たな情報処理装置からの前記要求を受信すると、新たな情報処理装置を識別する装置識別子を追加して格納する
ことを特徴とする請求項６に記載の情報記録装置。
【請求項８】
前記情報記録装置は、さらに、
前記更新プログラムを提供するサーバ装置に対して、前記プログラム格納手段に格納されている情報処理装置を識別する装置識別子を送信する送信手段と、
前記サーバ装置から、送信した前記装置識別子に対応する情報処理装置用の更新プログラムを取得する取得手段とを含み、
前記プログラム格納手段は、さらに、取得した前記更新プログラムを前記装置識別子と対応付けて記録する
ことを特徴とする請求項７に記載の情報記録装置。
【請求項９】
前記情報記録装置は、可搬型のメモリカードである
ことを特徴とする請求項３に記載の情報記録装置。
【請求項１０】
前記判断手段は、前記判断において、Trusted Computing Group(TCG)により仕様化されている構成証明技術に含まれる検証プロセスを用いる
ことを特徴とする請求項３に記載の情報記録装置。
【請求項１１】
可搬型の情報記録装置が装着される情報処理装置であって、
当該情報処理装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムを格納している第１格納手段と、
ロードされるときに前記動作プログラムの特徴を示す特徴量を測定する測定手段と、
前記情報記録装置に対して、秘密情報を要求する要求手段と、
前記情報記録装置における前記動作プログラムの正当性の確認結果に応じて、秘密情報及び更新プログラムのいずれか一方を受信する受信手段と、
更新プログラムを受信した場合に、受信した更新プログラムに従って、前記第１格納手段に格納されている前記動作プログラムを更新する更新手段と
を備えることを特徴とする情報処理装置。
【請求項１２】
前記測定手段は、耐タンパ化により保護されている
ことを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記情報処理装置は、さらに、
Trusted Computing Group(TCG)により仕様化されているTrusted Platform Moduleを構成し、少なくとも前記特徴量に基づいて、当該情報処理装置の正当性を証明する証明情報を生成する証明手段を含む
ことを特徴とする請求項１１に記載の情報処理装置。
【請求項１４】
情報処理装置に脱着可能な可搬型の情報記録装置において用いられるプログラム更新方法であって、
前記情報記録装置は、秘密情報を安全に保持する情報保持手段と、前記情報処理装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムの更新のための更新プログラムを格納しているプログラム格納手段とを備え、
前記プログラム更新方法は、
前記情報処理装置から秘密情報の要求を受信する受信ステップと、
前記要求を受信すると、前記情報処理装置から取得し、前記動作プログラムの特徴を示す測定特徴量を用いて、前記動作プログラムの正当性を判断する判断ステップと、
正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記情報処理装置へ出力し、正当でないと確認された場合、前記プログラム格納手段に格納されている前記更新プログラムを前記情報処理装置へ出力する出力ステップと
を含むことを特徴とするプログラム更新方法。
【請求項１５】
コンピュータ読み取り可能な記録媒体に記録され、情報処理装置に脱着可能な可搬型の情報記録装置において用いられるプログラム更新のためのコンピュータプログラムであって、
前記情報記録装置は、秘密情報を安全に保持する情報保持手段と、前記情報処理装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムの更新のための更新プログラムを格納しているプログラム格納手段とを備え、
前記コンピュータプログラムは、コンピュータに、
前記情報処理装置から秘密情報の要求を受信する受信ステップと、
前記要求を受信すると、前記情報処理装置から取得し、前記動作プログラムの特徴を示す測定特徴量を用いて、前記動作プログラムの正当性を判断する判断ステップと、
正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記情報処理装置へ出力し、正当でないと確認された場合、前記プログラム格納手段に格納されている前記更新プログラムを前記情報処理装置へ出力する出力ステップと
を実行させることを特徴とするコンピュータプログラム。
【請求項１６】
情報処理装置に脱着可能な可搬型の情報記録装置を構成する集積回路であって、
前記情報記録装置は、秘密情報を安全に保持する情報保持手段と、前記情報処理装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムの更新のための更新プログラムを格納しているプログラム格納手段とを備え、
前記集積回路は、
前記情報処理装置から秘密情報の要求を受信する受信手段と、
前記要求を受信すると、前記情報処理装置から取得し、前記動作プログラムの特徴を示す測定特徴量を用いて、前記動作プログラムの正当性を判断する判断手段と、
正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記情報処理装置へ出力し、正当でないと確認された場合、前記プログラム格納手段に格納されている前記更新プログラムを前記情報処理装置へ出力する出力手段と
を備えることを特徴とする集積回路。
【請求項１７】
サーバ装置と、ネットワークを介して前記サーバ装置に接続可能な第１情報処理装置と、前記サーバ装置に対する前記ネットワークを介した接続機能を有さない第２情報処理装置と、各情報処理装置に脱着可能な可搬型の情報記録装置とから構成される情報処理システムであって、
前記第２情報処理装置は、無効化されており、
前記サーバ装置は、前記第２情報処理装置を動作対象とする動作プログラムの更新のための更新プログラムを記憶しており、
前記情報記録装置が前記第１情報処理装置に装着され、前記第１情報処理装置は、前記サーバ装置からネットワークを介して前記更新プログラムを取得し、取得した前記更新プログラムを前記情報記録装置へ出力し、
前記情報記録装置が前記第２情報処理装置に装着され、
前記情報記録装置は、
秘密情報を安全に保持する情報保持手段と、
前記第１情報処理装置から前記更新プログラムを受信して格納する第１格納手段と、
前記第２情報処理装置から秘密情報の要求を受信する受信手段と、
前記要求を受信すると、前記第２情報処理装置において測定された特徴量を用いて、前記第２情報処理装置に格納されている動作プログラムの正当性を判断する判断手段と、
正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記第２情報処理装置へ出力し、正当でないと確認された場合、前記第２格納手段に格納されている前記更新プログラムを前記第２情報処理装置へ出力する出力手段とを備え、
前記第２情報処理装置は、
当該第２情報処理装置を動作対象とし、複数のコンピュータ命令を含む前記動作プログラムを格納している第２格納手段と、
ロードされるときに前記動作プログラムの特徴を示す特徴量を測定する測定手段と、
前記情報記録装置に対して、秘密情報を要求する要求手段と、
前記情報記録装置における前記動作プログラムの正当性の確認結果に応じて、秘密情報及び更新プログラムのいずれか一方を受信する受信手段と、
更新プログラムを受信した場合に、受信した更新プログラムに従って、前記第２格納手段に格納されている前記動作プログラムを更新する更新手段とを備える
ことを特徴とする情報処理システム。
【請求項１８】
サーバ装置と、ネットワークを介して前記サーバ装置に接続可能な第１情報処理装置と、前記サーバ装置に対する接続機能を有さない第２情報処理装置と、各情報処理装置に脱着可能な可搬型の情報記録装置とから構成される情報処理システムにおいて用いられる情報処理方法であって、
前記第２情報処理装置は、無効化されており、
前記サーバ装置は、前記第２情報処理装置を動作対象とする動作プログラムの更新のための更新プログラムを記憶しており、
前記情報記録装置は、秘密情報を安全に保持する情報保持手段を備え、
前記第２情報処理装置は、当該第２情報処理装置を動作対象とし、複数のコンピュータ命令を含む前記動作プログラムを格納している格納手段を備え、
前記情報処理方法は、
前記情報記録装置が前記第１情報処理装置に装着されたときに、前記第１情報処理装置により、前記サーバ装置からネットワークを介して前記更新プログラムを取得し、取得した前記更新プログラムを前記情報記録装置へ出力する出力ステップと、
前記情報記録装置が前記第２情報処理装置に装着されたときに、前記情報記録装置により、前記第１情報処理装置から前記更新プログラムを受信して格納する格納ステップと、
前記情報記録装置により、前記第２情報処理装置から秘密情報の要求を受信する受信ステップと、
前記情報記録装置により、前記要求を受信すると、前記第２情報処理装置において測定された特徴量を用いて、前記第２情報処理装置に格納されている動作プログラムの正当性を判断する判断ステップと、
前記情報記録装置により、正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記第２情報処理装置へ出力し、正当でないと確認された場合、前記第２格納手段に格納されている前記更新プログラムを前記第２情報処理装置へ出力する出力ステップと、
前記第２情報処理装置により、ロードされるときに前記動作プログラムの特徴を示す特徴量を測定する測定ステップと、
前記第２情報処理装置により、前記情報記録装置に対して、秘密情報を要求する要求ステップと、
前記第２情報処理装置により、前記情報記録装置における前記動作プログラムの正当性の確認結果に応じて、秘密情報及び更新プログラムのいずれか一方を受信する受信ステップと、
前記第２情報処理装置により、更新プログラムを受信した場合に、受信した更新プログラムに従って、前記格納手段に格納されている前記動作プログラムを更新する更新ステップと
を含むことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムによって動作する情報処理装置について、プログラムを確実に更新する技術に関する。
【背景技術】
【０００２】
デジタルコンテンツの普及により、コンテンツの不正コピーが社会問題となっている。コンテンツの処理機能をソフトウェアで実現する場合、不正コピーを試みる悪意のあるユーザからプログラムを保護する必要がある。コンテンツの処理機能を実現するプログラムが悪意のあるユーザから改竄や盗聴された場合、コンテンツが平文状態で抜き取られたり、プログラムからコンテンツを暗号化している鍵を不正取得されコンテンツが復号化される危険性がある。デジタルコンテンツは、インターネットによる再配布が容易なため、平文状態のコンテンツが不正に配布されると権利者の利益が大きく損なわれる。このような事態を防止するため、コンテンツの処理プログラムへの攻撃を防止することは重要である。【０００３】
しかしながら、処理プログラムのリリース時には、セキュリティホールがない完全なプログラムの提供を保証することは難しいため、悪意のあるユーザがこれらのセキュリティホールを突いてコンテンツ処理用のプログラムを改竄し、デジタルコンテンツを不正にコピーすることなどが予想される。このような事実が判明した場合には、そのプログラムをセキュリティホールへの対策を施した新しいプログラムに更新する必要があるが、そのような技術として以下のような技術がある。【０００４】
例えば、特許文献１では、更新プログラムを供給するサーバと、端末のアップデートモジュールとが相互認証を行い、お互い正しいと認識しあった場合に、更新プログラムを渡し、端末内のプログラムをその更新プログラムでアップデートする技術が開示されている。また、特許文献２では、更新プログラムを格納するカードと端末のアップデートモジュールとが相互認証を行った上で、カードに格納されている更新プログラムを端末が取得し、端末自身が端末のプログラムをアップデートする技術が開示されている。
【特許文献１】特開平１０−１９８５７１号公報
【特許文献２】特開２００３−３３０７４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来技術によるプログラムのアップデートは、更新プログラムを供給するカードやサーバと、端末のアップデートモジュールとが相互認証を行い、お互い正しいと認識しあった後、更新プログラムを渡す構成となっている。この仕組みは端末側のアップデートモジュールの信頼性に依存した方法である。
しかし、従来技術では、端末がハッキングされている場合、アップデートモジュールの信頼性が損なわれている可能性があるので、確実なプログラムのアップデートを保証することは困難である。例えば、アップデートモジュールもソフトウェアで構成されている場合、アップデートモジュール自身もハッキングされている可能性がある。この場合、アップデートモジュール自体が改竄されていると、本来のアップデート処理自体を回避したり、アップデートが必要であるか否かの判断を誤らせることができるので、ソフトウェアのアップデートを強制することができなくなる。【０００６】
アップデートモジュール自身のハッキングを防止するためには、プログラム更新システムに対して更新対象のプログラムより強固な耐タンパシールドが必要となる。従来技術では耐タンパ化の例として、プログラム更新システムをハードウェアによりすべて構成する方法が開示されているが、プログラム更新システムはインターネットとの通信等も含むので大規模なシステムとなることが多く、全体をハードウェアとすることは事実上困難である。【０００７】
そこで本発明は、上記の問題点に鑑みなされたものであって、プログラムのアップデートモジュールが信頼できない状態であっても、プログラムアップデートを確実に行わせることが可能な情報処理システム、情報記録装置、情報処理装置、プログラム更新方法、コンピュータプログラム及び集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明は、情報処理装置と、前記情報処理装置に脱着可能な可搬型の情報記録装置とから構成される情報処理システムであって、前記情報処理装置は、当該情報処理装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムを格納している第１格納手段と、ロードされるときに前記動作プログラムの特徴を示す特徴量を測定する測定手段と、前記情報記録装置に対して、秘密情報を要求する要求手段と、前記情報記録装置における前記動作プログラムの正当性の確認結果に応じて、秘密情報及び更新プログラムのいずれか一方を受信する受信手段と、更新プログラムを受信した場合に、受信した更新プログラムに従って、前記第１格納手段に格納されている前記動作プログラムを更新する更新手段とを備え、前記情報記録装置は、秘密情報を安全に保持する情報保持手段と、前記動作プログラムの更新のための更新プログラムを格納している第２格納手段と、前記情報処理装置から秘密情報の要求を受信する受信手段と、前記要求を受信すると、前記測定手段により測定された前記特徴量を用いて、前記動作プログラムの正当性を判断する判断手段と、正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記情報処理装置へ出力し、正当でないと確認された場合、前記第２格納手段に格納されている前記更新プログラムを前記情報処理装置へ出力する出力手段とを備える。【０００９】
また、前記情報記録装置は、さらに、過去に接続された情報処理装置を識別する装置識別子を格納している識別子格納手段と、サーバ装置から、ネットワーク及び当該ネットワークに接続された前記情報処理装置を介して、前記識別子格納手段に格納されている装置識別子に関連付けられている前記更新プログラムを取得し、取得した前記更新プログラムを前記第２格納手段に書き込む第１取得手段と、正当性情報格納手段と、前記サーバ装置から、ネットワーク及び当該ネットワークに接続された前記情報処理装置を介して、前記第２格納手段に格納されている前記更新プログラムに関連付けられ、前記動作プログラムの正当性を確認するための正当性確認情報を取得し、取得した正当性確認情報を前記正当性情報格納手段に書き込む第２取得手段とを含み、前記判断手段は、前記正当性情報格納手段に書き込まれている前記正当性確認情報に基づいて、前記動作プログラムの正当性を判断するとしてもよい。
【発明の効果】
【００１０】
これらの構成によると、情報処理装置が、受信した更新プログラムにより動作プログラムを更新しなければ、情報処理装置が所望する秘密情報の取得ができないので、情報処理装置に対して、動作プログラムの更新を強制することができる。
こうして、アップデートモジュール自体の信頼性に依存することなく、確実にプログラムをアップデートすることが可能となる。【００１１】
また、リボークされた情報処理装置を動作不能にすることなく、不正な情報処理装置をプログラムのアップデートにより正当な情報処理装置にすることができるので、継続して当該情報処理装置の使用を許可できる。こうして、リボークして動作不能にすることによるユーザへの被害を防止することができる。
また、可搬型の情報記録装置によりプログラムをアップデートしているので、インターネットに接続できない情報処理装置であっても、プログラムのアップデートが可能となり、情報処理装置への適用範囲を拡大することができる。【００１２】
また、本発明は、情報処理装置に脱着可能な可搬型の情報記録装置であって、秘密情報を安全に保持する情報保持手段と、前記情報処理装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムの更新のための更新プログラムを格納しているプログラム格納手段と、前記情報処理装置から秘密情報の要求を受信する受信手段と、前記要求を受信すると、前記情報処理装置から取得し、前記動作プログラムの特徴を示す測定特徴量を用いて、前記動作プログラムの正当性を判断する判断手段と、正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記情報処理装置へ出力し、正当でないと確認された場合、前記プログラム格納手段に格納されている前記更新プログラムを前記情報処理装置へ出力する出力手段とを備える。【００１３】
この構成によると、情報処理装置が、受信した更新プログラムにより動作プログラムを更新しなければ、情報処理装置が所望する秘密情報の取得ができないので、情報処理装置に対して、動作プログラムの更新を強制することができる。
こうして、アップデートモジュール自体の信頼性に依存することなく、確実にプログラムをアップデートすることが可能となる。【００１４】
ここで、前記情報記録装置は、さらに、正当な動作プログラムの特徴を示す正規特徴量を格納する正規情報格納手段を含み、前記判断手段は、前記情報処理装置から取得した測定特徴量と前記正規特徴量とを比較することにより、前記動作プログラムの正当性を判断してもよい。
この構成によれば、情報記録装置は、情報処理装置に格納されている動作プログラムが正当であるか否かを、動作プログラムの特徴を示す特徴量に基づいて確認することができる。仮に、情報処理装置に格納されている動作プログラムが不正に改ざんされているなら、不正に改ざんされた動作プログラムから得られる測定特徴量と、正規特徴量とは一致しないので、動作プログラムの改ざんを確実に検出することができる。【００１５】
ここで、前記プログラム格納手段は、少なくとも過去に接続された１台以上の情報処理装置を識別する装置識別子と、前記情報処理装置のそれぞれに向けた更新プログラムとを対応付けて格納し、前記出力手段は、前記要求の発信元である前記情報処理装置を識別する装置識別子に対応する情報処理装置向けの更新プログラムを出力してもよい。
この構成によれば、各情報処理装置に対して適切な更新プログラムを出力することができる。【００１６】
ここで、前記受信手段は、さらに、前記要求と共に前記要求の発信元である前記情報処理装置を識別する装置識別子を取得し、前記プログラム格納手段は、過去に前記要求を行った１以上の情報処理装置を識別する装置識別子と、前記情報処理装置のそれぞれに向けた更新プログラムとを対応付けて格納し、前記出力手段は、前記要求とともに受信した装置識別子に対応する情報処理装置向けの更新プログラムを出力してもよい。【００１７】
この構成によれば、情報記録装置が複数の情報処理装置で共有される場合でも、各情報処理装置に対して適切な更新プログラムを出力することができる。
ここで、前記プログラム格納手段は、さらに、新たな情報処理装置からの前記要求を受信すると、新たな情報処理装置を識別する装置識別子を追加して格納してもよい。
この構成によれば、情報記録装置は、過去に要求を受け付けた情報処理装置の全てについて、更新プログラムの管理を行うことができる。【００１８】
ここで、前記情報記録装置は、さらに、前記更新プログラムを提供するサーバ装置に対して、前記プログラム格納手段に格納されている情報処理装置を識別する装置識別子を送信する送信手段と、前記サーバ装置から、送信した前記装置識別子に対応する情報処理装置用の更新プログラムを取得する取得手段とを含み、前記プログラム格納手段は、さらに、取得した前記更新プログラムを前記装置識別子と対応付けて記録してもよい。【００１９】
この構成によれば、情報記録装置は、自身が管理している情報処理装置について、更新プログラムのバージョンアップがあった場合、バージョンアップ後の更新プログラムを取
得して記録することができる。
また、本発明は、可搬型の情報記録装置が装着される情報処理装置であって、当該情報処理装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムを格納している第１格納手段と、ロードされるときに前記動作プログラムの特徴を示す特徴量を測定する測定手段と、前記情報記録装置に対して、秘密情報を要求する要求手段と、前記情報記録装置における前記動作プログラムの正当性の確認結果に応じて、秘密情報及び更新プログラムのいずれか一方を受信する受信手段と、更新プログラムを受信した場合に、受信した更新プログラムに従って、前記第１格納手段に格納されている前記動作プログラムを更新する更新手段とを備える。【００２０】
この構成によると、情報処理装置が、受信した更新プログラムにより動作プログラムを更新しなければ、情報処理装置が所望する秘密情報の取得ができないので、情報処理装置に対して、動作プログラムの更新を強制することができる。
ここで、前記測定手段は、耐タンパ化により保護されているとしてもよい。
この構成によれば、不正解析者による特徴情報の改ざんを防止できるので、情報処理装置を動作させているプログラムが不正なものである場合に、より確実に更新プログラムへのアップデートを行わせることができる。また、特徴情報算出手段さえ保護していれば、上述した不正を防止できるので、装置全体を耐タンパ化する場合に比べて、低コストでプログラムのアップデートを強制することができる。【００２１】
ここで、サーバ装置と、ネットワークを介して前記サーバ装置に接続可能な第１情報処理装置と、前記サーバ装置に対する前記ネットワークを介した接続機能を有さない第２情報処理装置と、各情報処理装置に脱着可能な可搬型の情報記録装置とから構成される情報処理システムであって、前記第２情報処理装置は、無効化されており、前記サーバ装置は、前記第２情報処理装置を動作対象とする動作プログラムの更新のための更新プログラムを記憶しており、前記情報記録装置が前記第１情報処理装置に装着され、前記第１情報処理装置は、前記サーバ装置からネットワークを介して前記更新プログラムを取得し、取得した前記更新プログラムを前記情報記録装置へ出力し、前記情報記録装置が前記第２情報処理装置に装着され、前記情報記録装置は、秘密情報を安全に保持する情報保持手段と、前記第１情報処理装置から前記更新プログラムを受信して格納する第１格納手段と、前記第２情報処理装置から秘密情報の要求を受信する受信手段と、前記要求を受信すると、前記第２情報処理装置において測定された特徴量を用いて、前記第２情報処理装置に格納されている動作プログラムの正当性を判断する判断手段と、正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記第２情報処理装置へ出力し、正当でないと確認された場合、前記第２格納手段に格納されている前記更新プログラムを前記第２情報処理装置へ出力する出力手段とを備え、前記第２情報処理装置は、当該第２情報処理装置を動作対象とし、複数のコンピュータ命令を含む前記動作プログラムを格納している第２格納手段と、ロードされるときに前記動作プログラムの特徴を示す特徴量を測定する測定手段と、前記情報記録装置に対して、秘密情報を要求する要求手段と、前記情報記録装置における前記動作プログラムの正当性の確認結果に応じて、秘密情報及び更新プログラムのいずれか一方を受信する受信手段と、更新プログラムを受信した場合に、受信した更新プログラムに従って、前記第２格納手段に格納されている前記動作プログラムを更新する更新手段とを備えるとしてもよい。【００２２】
この構成によると、ネットワークに接続できない情報処理装置であっても、プログラムのアップデートが可能となり、情報処理装置への適用範囲を拡大することができる。
また、本発明を、上述した特徴を持つ情報記録装置および情報処理装置から構成される情報処理システム、プログラムアップデート方法、プログラム、および集積回路として実現した場合もそれぞれ同様の効果を発揮することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施の形態１におけるコンテンツ配布システムの構成を示すブロック図
【図２】本発明の実施の形態１における端末Ａのハードウェア構成を示すブロック図
【図３】本発明の実施の形態１における権利購入制御プログラムの動作を示すフローチャート
【図４】本発明の実施の形態１における再生制御プログラムの動作を示すフローチャート
【図５】本発明の実施の形態１におけるＰＣＲ拡張コマンド処理の動作を示すフローチャート
【図６】本発明の実施の形態１における端末起動時の動作を示すフローチャート
【図７】本発明の実施の形態１における端末Ｎのハードウェア構成を示すブロック図
【図８】本発明の実施の形態１におけるカードのハードウェア構成を示すブロック図
【図９】本発明の実施の形態１における権利購入プログラムの動作を示すフローチャート
【図１０】本発明の実施の形態１における権利確認・鍵生成プログラムの動作を示すフローチャート
【図１１】本発明の実施の形態１におけるコンテンツ配布システム全体の動作を示すフローチャート
【図１２】本発明の実施の形態１におけるサーバの構成を示すブロック図
【図１３】本発明の実施の形態１におけるサーバ上に存在するＣＲＬデータベースのデータ構造を示す図
【図１４】本発明の実施の形態１におけるカード上に存在するＣＲＬデータベースのデータ構造を示す図
【図１５】本発明の実施の形態１におけるコンテンツ配布システム全体の動作を示すフローチャート
【符号の説明】
【００２４】
０１００    コンテンツ配布システム
０１０１    サーバ
０１０２    端末Ａ
０１０３    端末Ｂ
０１０４    端末Ｍ
０１０５    端末Ｎ
０１０６    端末Ｚ
０１０７    カード
０１０８    インターネット
０２０１    プロセッサ
０２０２    ＲＡＭ
０２０３    ブートコード
０２０４    カードインターフェース
０２０５    通信部
０２０６    コンテンツ復号部
０２０７    セキュアモジュール
０２０８    プログラム格納部
０２０９    オペレーティングシステム
０２１０    権利購入制御プログラム
０２１１    再生制御プログラム
０２１２    プログラム証明書
０２１３    バス
０７０１    プロセッサ
０７０２    ＲＡＭ
０７０３    ブートコード
０７０４    カードインターフェース
０７０６    コンテンツ格納部
０７０７    セキュアモジュール
０７０８    プログラム格納部
０７０９    オペレーティングシステム
０７１１    再生制御プログラム
０２１２    プログラム証明書
０７１３    バス
０８０１    プロセッサ
０８０２    ＲＡＭ
０８０３    ブートコード
０８０４    端末Ｉ／Ｆ
０８０５    ＣＲＬデータベース
０８０７    コンテンツ格納部
０８０８    プログラム格納部
０８０９    オペレーティングシステム
０８１０    権利購入プログラム
０８１１    権利確認・鍵生成プログラム
０８１３    バス
１２０１    通信部
１２０２    ＣＲＬデータベース
１２０３    ＣＲＬ管理部
１２０４    権利管理部
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態について、図面を参照しながら説明する。
図１は、コンテンツ配布システム０１００の構成を示している。コンテンツ配布システム０１００は、サーバ０１０１、端末Ａ０１０２、端末Ｂ０１０３〜端末Ｍ０１０４、端末Ｎ０１０５〜端末Ｚ０１０６、カード０１０７から構成されており、サーバ０１０１は、端末Ａ０１０２、端末Ｂ０１０３、および端末Ｍ０１０４とインターネット０１０８を介して接続されている。端末Ｎ０１０５、端末Ｚ０１０６はサーバ０１０１と直接通信する手段を持っていない。端末Ａ０１０２、端末Ｂ０１０３〜端末Ｍ０１０４、および端末Ｎ０１０５〜端末Ｚ０１０６は、後述するようにカードインターフェースを備えており、カード０１０７を介してデータのやり取りが可能となっている。【００２６】
なお、図１ではサーバ０１０１と接続されている端末として、端末Ａ０１０２、端末Ｂ０１０３、端末Ｍ０１０４しか図示していないが、端末Ａ０１０２等と同一の構成を持つ１台以上の端末が、さらに、コンテンツ配布システム０１００に存在してもよい。また図１に示した台数よりも少ない台数だけ存在していてもよい。以後、端末Ｂ０１０３、端末Ｍ０１０４は端末Ａ０１０２と同様の構成であるため、必要な場合を除いて端末Ａ０１０２以外の端末についての説明は省略する。また、図１では、サーバ０１０１と接続されて
いない端末として、端末Ｎ０１０５、端末Ｚ０１０６しか図示していないが、端末Ｎ１０５または端末Ｚ０１０６と同一の構成を含む１台以上の端末が、さらに、コンテンツ配布システム０１００に存在してもよい。また、図１に示した台数よりも少ない台数だけ存在していてもよい。以後、端末Ｚ０１０６は端末Ｎ０１０５と同様の構成であるため、必要な場合を除いて端末Ｎ０１０５以外の端末についての説明は省略する。【００２７】
端末Ａ０１０２は、インターネット０１０８を介してサーバ０１０１と通信し、音楽や映画などのコンテンツをダウンロードする機能とダウンロードしたコンテンツを再生する機能を有している。ここで、コンテンツは著作権保護されており暗号化された形で端末Ａ０１０２にダウンロードされる。
カード０１０７は、端末Ａ０１０２、およびインターネット０１０８を介してサーバ０１０１と通信し、コンテンツを暗号化した鍵を取得し、端末Ａ０１０２の依頼に基づいてコンテンツを暗号化した鍵を端末Ａ０１０２に渡す。ここで、カード０１０７はコンテンツを暗号化した鍵を渡す際に、端末Ａ０１０２が正当な端末かどうかを確かめて、正当な端末でなければ鍵を出力しないよう構成されている。具体的には、公知の相互認証等により、相手の正当性を確認した上で鍵を渡している。【００２８】
図２は、端末Ａ０１０２の構成を示している。なお、端末Ｂ０１０３、端末Ｍ０１０４も同様の構成をしている。端末Ａ０１０２は、プロセッサ０２０１、ＲＡＭ０２０２、ブートコード０２０３、カードインターフェース０２０４、通信部０２０５、コンテンツ格納部０２０６、セキュアモジュール０２０７、プログラム格納部０２０８で構成されており、バス０２１３で相互に接続されている。プログラム格納部０２０８には、オペレーティングシステム０２０９、権利購入制御プログラム０２１０、再生制御プログラム０２１１、プログラム証明書０２１２が格納されている。【００２９】
プロセッサ０２０１は、ブートコード０２０３、およびＲＡＭ０２０２にロードされているプログラムを実行し、端末Ａ０１０２の各種処理を行う。
ＲＡＭ０２０２は、プロセッサ０２０１で実行するプログラムがロードされる。ロードされるプログラムはプログラム格納部０２０８に格納されている。
ブートコード０２０３は、端末Ａ０１０２がリセットされた後、プロセッサ０２０１が初めに実行するコード（ブートコード）が格納されている。ブートコード０２０３は、プログラム格納部０２０８に格納されているオペレーティングシステム０２０９をＲＡＭ０２０２へ展開する。【００３０】
カードインターフェース０２０４は、カード０１０７と端末Ａ０１０２を接続するインターフェースである。プロセッサ０２０１で動作するプログラムは、カードインターフェース０２０４と通信することで、カード０１０７と通信することができる。端末Ａ０１０２で動作するプログラムはカード０１０７と通信する時には常にカードインターフェース０２０４を使用する。以下、端末Ａ０１０２で動作するプログラムとカード０１０７の通信について記述する場合はカードインターフェース０２０４の記述は省略する。【００３１】
通信部０２０５は、インターネット０１０８と端末Ａ０１０２を接続するインターフェースである。プロセッサ０２０１で動作するプログラムは、通信部０２０５と通信することで、インターネット０１０８を介してサーバ０１０１と通信することができる。
コンテンツ格納部０２０６は、端末Ａ０１０２がサーバ０１０１からダウンロードしたコンテンツを格納しておく場所である。【００３２】
セキュアモジュール０２０７は、ＴＣＧ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ）で規格化されているＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）と同様の機能を有するデバイスである。ＴＰＭの詳細な仕様については、ＴＣＧのホームページ＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｔｒａｓｔｅｄｃｏｍｐｕｔｉｎｇｇｒｏｕｐ．ｏｒｇ＞で公開されている。【００３３】
セキュアモジュール０２０７は、ＰＣＲ（Ｐｌａｔｆｏｒｍ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｇｉｓｔｏｒ）と呼ばれるレジスタを含んでおり、そのレジスタには端末Ａ０１０２のソフトウェア構成に依存する値が格納される。セキュアモジュール０２０７は、ＰＣＲを更新するコマンドを提供しており、そのコマンドが実行されると現在のＰＣＲの値とそのコマンドの引数を結合し、その結合した値に対して一方向性関数を施した結果でＰＣＲが更新される。以下、このコマンドをＰＣＲ拡張コマンドと呼ぶ。【００３４】
セキュアモジュール０２０７は、セキュアモジュール０２０７内に外部に取り出されない形で保持されている秘密鍵を用いて、ＰＣＲの値に対し署名を施すサービスを提供することができる。このサービスはＡｔｔｅｓｔａｔｉｏｎと呼ばれる。例えば、端末Ａ０１０２内で動作するプログラムがセキュアモジュール０２０７のＡｔｔｅｓｔａｔｉｏｎサービスを用い、署名された現在のＰＣＲ値を取得してサーバ０１０１に送信する。この場合、サーバ０１０１は、認証局から得たセキュアモジュール０２０７の公開鍵を用いて署名検証することによって、送信された値がセキュアモジュール０２０７で生成されたＰＣＲの値であることを確かめることができる。なお、セキュアモジュール０２０７には耐タンパ処理が施されており、セキュアモジュール０２０７内で実行されるＰＣＲ拡張コマンド処理、およびＡｔｔｅｓｔａｔｉｏｎ処理を不正に変更することはできないようになっている。【００３５】
プログラム格納部０２０８は、端末Ａ０１０２で動作するプログラムを格納する場所であり、オペレーティングシステム０２０９、権利購入制御プログラム０２１０、再生制御プログラム０２１１、プログラム証明書０２１２を格納している。
オペレーティングシステム０２０９は、一般的な端末Ａ０１０２の基盤ソフトウェアであり、オペレーティングシステム０２０９上で動作するアプリケーションにサービスを提供する。オペレーティングシステム０２０９は、プログラム格納部０２０８内に格納されているアプリケーションをＲＡＭ０２０２にロードする。【００３６】
続いて、各プログラムが行う処理について説明する。
図３は権利購入制御プログラム０２１０の動作フローを示している。権利購入制御プログラム０２１０はオペレーティングシステム０２０９上で動作するアプリケーションである。権利購入制御プログラム０２１０は、端末Ａ０１０２において、サーバ０１０１から提供されるコンテンツの権利の取得をカード０１０７に依頼する処理とそのコンテンツのダウンロードを行う。以下、この処理の詳細を説明する。【００３７】
権利購入制御プログラム０２１０は、オペレーティングシステム０２０９にローディングされ制御権を取得すると、まず、サーバ０１０１に問い合わせて購入可能なコンテンツのリストを取得する。そのリストにはコンテンツを識別できる情報、例えば、コンテンツのＩＤやコンテンツのタイトル、コンテンツの概要等が含まれている。次に、そのリストを端末Ａ０１０２のユーザに提示し、購入するコンテンツを選択させ、選択したコンテンツのＩＤおよびそのコンテンツを購入する端末を識別する端末ＩＤ（端末Ａ０１０２の端末ＩＤ）を含むコンテンツ購入要求をカードＩ／Ｆ０２０４を介して、カード０１０７に
送信する（ステップＳ０３０１）。【００３８】
次に、権利購入制御プログラム０２１０は、カード０１０７に購入依頼したコンテンツのＩＤをサーバ０１０１に送信し、該当するコンテンツをサーバ０１０１からダウンロードし、コンテンツ格納部０２０６に格納する。ここで、ダウンロードするコンテンツは暗号化されているので、コンテンツ格納部から不正にコピーできたとしても著作権は保護される（ステップＳ０３０２）。【００３９】
なお、端末Ａ０１０２は、端末Ｎ０１０５等のインターネット０１０８に接続されていない端末のためにコンテンツを購入する場合がある。この場合、コンテンツ購入要求に含ませる端末ＩＤは、端末Ｎ０１０５等の端末ＩＤとなる。さらに、コンテンツを端末Ｎ０１０５等に渡すため、ステップＳ０３０２の後にコンテンツをカード０１０７に移動するステップが追加で実行される。【００４０】
図４は再生制御プログラム０２１１の動作フローを示している。再生制御プログラム０２１１はオペレーティングシステム０２０９上で動作するアプリケーションである。再生制御プログラム０２１１は、再生するコンテンツを暗号化している鍵をカード０１０７から取得し、その鍵でコンテンツを復号化してコンテンツを再生する。また、カードから端末Ａ０１０２内のプログラムの更新を依頼された場合は、プログラム格納部０２０８に格納されているプログラムを更新する。以下、再生制御プログラム０２１１の処理の詳細を述べる。【００４１】
再生制御プログラム０２１１は、オペレーティングシステム０２０９にローディングされ制御権を取得すると、コンテンツ格納部０２０６に格納されているコンテンツのリストを取得し、カード０１０７に問い合わせて再生可能なコンテンツのリストを作成する。カード０１０７は、カード０１０７に格納されているコンテンツを暗号化している鍵とその鍵に対応するコンテンツＩＤを格納しており、再生制御プログラム０２１１は、カード０１０７に格納されているコンテンツを暗号化している鍵に対応するコンテンツＩＤのリストを取得して、コンテンツ格納部０２０６に格納されているコンテンツＩＤのリストと比較して再生可能なコンテンツのリストを作成する。このリストは例えばカードに鍵が格納されているコンテンツのリストとなる（ステップＳ０４０１）。【００４２】
なお、再生制御プログラム０２１１は、カード０１０７に格納されているコンテンツＩＤのリストもカード０１０７から取得し、再生可能なコンテンツのリストに追加することができる。この追加リストは、端末Ａ０１０２内に格納されているコンテンツに対する再生可能なコンテンツのリストの作成手順と同様の手順で作成される。この追加リストも含めたリストは、カードを含む端末上に存在する鍵に対応したコンテンツのリストとなり、（コンテンツ格納部０２０６に格納されているか否かは問わず）その端末で再生できるコンテンツの一覧を示すリストとなる。【００４３】
再生制御プログラム０２１１は、ステップＳ０４０１で生成した再生可能なコンテンツのリストを端末Ａ０１０２のユーザに提示し、再生したいコンテンツを選択させ、そのコンテンツのＩＤを取得する。再生制御プログラム０２１１は、コンテンツＩＤを含む鍵出力依頼情報をカード０１０７に送信し、対応するコンテンツを暗号化している鍵の出力を依頼する（ステップＳ０４０２）。鍵出力依頼情報は、コンテンツＩＤ、端末ＩＤ、プログラム証明書、署名された現在のＰＣＲ値を含む。ここで、署名された現在のＰＣＲ値は、再生制御プログラム０２１１がセキュアモジュールに対してＡｔｔｅｓｔａｔｉｏｎサービスを用いて取得したものであり、そのＰＣＲの値は現在、端末で動作しているソフトウェアに依存する値となっている。【００４４】
次に、再生制御プログラム０２１１は、カード０１０７に依頼した鍵が出力されたかどうかをカード０１０７に問い合わせる。（ステップＳ０４０３）もし、鍵が出力されているのであれば（ステップＳ０４０３でＹＥＳ）、その鍵を用いてコンテンツ復号処理（ステップＳ０４０４）を行う。もし、鍵が出力されていないのであれば（ステップＳ０４０３でＮＯ）、カード０１０７からプログラムの更新依頼があるかどうかを確かめる処理（ステップＳ０４０６）を行う。ここで、プログラムの更新依頼は、コンテンツの処理プログラムにセキュリティホール等が発見されているとカード０１０７が判断した場合に、鍵を渡す前に、そのプログラムをアップデートすることを要求する依頼である。【００４５】
再生制御プログラム０２１１は、鍵が出力されているのであれば（ステップＳ０４０３でＹＥＳ）、カード０１０７から鍵を取得し、再生すべきコンテンツをコンテンツ格納部０２０６、もしくはカード０１０７から取得して、コンテンツを復号化する（ステップＳ０４０４）。
再生制御プログラム０２１１は、コンテンツが復号化されるとそのコンテンツを再生する。（ステップＳ０４０５）再生制御プログラム０２１１は、復号化されたコンテンツの種別に応じた再生を行う。以降の再生の手順は一般的な再生方法であるので、説明は省略する。【００４６】
再生制御プログラム０２１１は、鍵が出力されていないのであれば（ステップＳ０４０３でＮＯ）、カード０１０７にプログラムの更新依頼があるかどうかを問い合わせる。もし、プログラムの更新依頼があれば（ステップＳ０４０６でＹＥＳ）、カードから更新プログラムと後述する正規ＰＣＲ値を取得し、プログラム格納部０２０８のプログラムと後述するプログラム証明書０２１２を更新する（ステップＳ０４０７）。ここで、更新対象のプログラムとそのプログラムのプログラム証明書０２１２は、サーバ０１０１から取得され更新される。その後、再生制御プログラム０２１１は、端末Ａ０１０２を再起動するためにシステムリセット依頼をオペレーティングシステム０２０９に送信する（ステップＳ０４０８）。【００４７】
もし、プログラムの更新依頼がなければ（ステップＳ０４０６でＮＯ）、再生制御プログラム０２１１は、処理を終了する。
以上が再生制御プログラム０２１１が行う処理の説明である。以下、プログラム格納部０２０８が格納している情報の説明に戻る。
プログラム証明書０２１２は、セキュアモジュール０２０７のＰＣＲの値に対して端末Ａ０１０２を製造したメーカのみ知る秘密鍵で署名したデータである。署名するＰＣＲの値は、端末Ａ０１０２が起動し、オペレーティングシステム０２０９や各種アプリケーションがローディングされた後のＰＣＲの値である。この時、メーカはオペレーティングシステム０２０９や各種アプリケーションが各種著作権保護規格の実装要件を満たしているかどうかを確認した後、署名する。ここで、署名に用いる秘密鍵は端末Ａ０１０２には搭載されていないため、プログラム証明書０２１２は端末Ａ０１０２では生成できない。プログラム証明書０２１２は、例えばメーカの工場で生成される。【００４８】
ＰＣＲの値は、端末Ａ０１０２のソフトウェア構成に依存させるために、端末Ａ０１０２上でローディングされるプログラムのハッシュ値を引数としてＰＣＲ拡張コマンドを実行することで更新される。プログラムのロード時に必ずロード対象のプログラムのハッシュ値を計算し、ＰＣＲ拡張コマンドを用いて、そのハッシュ値でＰＣＲを更新していけば、ＰＣＲ値を端末Ａ０１０２のソフトウェア構成に常に依存させることができる。【００４９】
図５は、セキュアモジュール０２０７内のＰＣＲを更新し、ＰＣＲに端末Ａ０１０２のソフトウェア構成に依存する値を格納する処理のフローを示している。これは、オペレーティングシステム０２０９をローディングするブートコード０２０３、および各種アプリケーションプログラムをローディングするオペレーティングシステム０２０９の動作に共通して含まれる。これは、ブートコード０２０３はオペレーティングシステム０２０９を読み込むことで端末Ａ０１０２内のソフトウェア構成を変更し、オペレーティングシステム０２０９はアプリケーションプログラムを読み込むことで端末Ａ０１０２内のソフトウェア構成を変更するからである。【００５０】
以下の説明では、別のプログラムを呼び出す側（前者におけるブートコード０２０３と、後者におけるオペレーティングシステム０２０９）をロードするプログラムと、呼び出される側のプログラム（前者におけるオペレーティングシステム０２０９、後者におけるアプリケーションプログラム）をロード対象プログラムと呼ぶ。
ロードするプログラムは、まず、ロード対象プログラムのハッシュ値をハッシュ関数アルゴリズムで計算する（ステップＳ０５０１）。次に、このハッシュ値を引数として、ＰＣＲ拡張コマンドを実行し、セキュアモジュール０２０７内のＰＣＲの値を更新する（ステップＳ０５０２）。ロードするプログラムは、ＰＣＲ更新処理（ステップＳ０５０２）終了後、ロード対象プログラムをＲＡＭ０２０２に展開する（ステップＳ０５０３）。最後に、ロードするプログラムはＲＡＭ０２０２にロードしたプログラムに分岐する（ステップＳ０５０４）。【００５１】
端末Ａ０１０２は、電源投入後、もしくはリセット解除後、すなわち端末起動時、オペレーティングシステム０２０９や各種アプリケーションをＲＡＭ０２０２にロードしていく。端末Ａ０１０２は、プログラムをロードする時、図５で説明したようにＰＣＲの更新を行う。
図６は、端末Ａ０１０２の起動時の動作を表すフローチャートである。【００５２】
電源投入後、もしくはリセット解除後、プロセッサ０２０１は、ブートコード０２０３を実行する（ステップＳ０６０１）。ブートコード０２０３は、端末Ａ０１０２のハードウェアの初期設定を行った後、ブートコード０２０３自身のハッシュ値を計算し、このハッシュ値をＰＣＲ拡張コマンドの引数として、セキュアモジュール０２０７のＰＣＲを更新する。ここで、セキュアモジュール０２０７のＰＣＲは、電源投入、もしくはリセット解除後には初期化されているものとする。【００５３】
次にブートコード０２０３は、オペレーティングシステム０２０９をＲＡＭ０２０２にローディングする。ブートコード０２０３は、オペレーティングシステム０２０９をローディングする際、図５に示す手順で、オペレーティングシステム０２０９のハッシュ値を計算し、セキュアモジュール０２０７のＰＣＲを更新する。その後、プロセッサ０２０１は、オペレーティングシステム０２０９を実行し、オペレーティングシステム０２０９の初期化を行う。【００５４】
オペレーティングシステム０２０９は、その後、各種アプリケーションのローディングを行う（ステップＳ０６０３）。各種アプリケーションがローディングされる際、図５に示す手順で、各種アプリケーションのハッシュ値を計算し、セキュアモジュール０２０７のＰＣＲを更新する。
その後、端末Ａ０１０２は、ユーザからの入力を待ち、その入力に応じたアプリケーションプログラムの処理を実行する（Ｓ０６０４）。【００５５】
このように、端末Ａ０１０２は、電源投入後、もしくはリセット後、ブートコード０２０３を含む端末Ａ０１０２で動作するプログラムのハッシュ値でＰＣＲ拡張コマンドを用い、セキュアモジュール０２０７のＰＣＲを更新していく。その結果、セキュアモジュール０２０７のＰＣＲは、端末Ａ０１０２で動作しているプログラムに依存した値となる。
以上で端末Ａ０１０２の構成の説明を終わる。続いて、端末Ｎ０１０５の構成の説明に移る。【００５６】
図７は、端末Ｎ０１０５の構成を示している。なお、端末Ｚ０１０６も同様の構成をしている。端末Ｎ０１０５は、プロセッサ０７０１、ＲＡＭ０７０２、ブートコード０７０３、カードインターフェース０７０４、コンテンツ格納部０７０６、セキュアモジュール０７０７、プログラム格納部０７０８で構成されており、これらの要素はバス０７１３で相互に接続されている。プログラム格納部０７０８には、オペレーティングシステム０７０９、再生制御プログラム０７１１、プログラム証明書０７１２が格納されている。【００５７】
端末Ｎ０１０５のこれらの構成要素は、図２に示す端末Ａ０１０２の構成要素と同一の機能を有するため説明は省略する。ただし、端末Ｎ０１０５には、端末Ａ０１０２の通信部０２０５、権利購入制御プログラム０２１０に相当する構成要素は存在しない。
以上で端末Ｎ０１０５の構成の説明を終わる。続いて、サーバ０１０１の構成の説明を行う。【００５８】
図１２は、サーバ０１０１の構成を示している。サーバ０１０１は、通信部１２０１、ＣＲＬデータベース１２０２、ＣＲＬ管理部１２０３、権利管理部１２０４で構成されている。ＣＲＬデータベース１２０２はＣＲＬ管理部１２０３と接続されている。また、ＣＲＬ管理部１２０３、権利管理部１２０４は、通信部１２０１と接続されている。
通信部１２０１は、インターネット０１０８と接続されており、端末Ａ０１０２〜端末Ｍ０１０４と通信を行う。ＣＲＬ管理部１２０３、および権利管理部１２０４は、この通信部１２０１を介して端末Ａ０１０２〜端末Ｍ０１０４、および端末Ａ０１０２等に接続されたカード０１０７と通信する。【００５９】
ＣＲＬデータベース１２０２は、リボーク（無効化）されている端末の端末ＩＤ、その端末のリボークされた原因を取り除いた後の更新プログラム、およびその更新プログラムが端末上で実行された時のＰＣＲ値が格納されている。なお、端末のリボークは、一般的には、悪意の利用者の端末が特定できている場合にその端末を無効化することなど、プログラムの更新によって回復できない欠陥を持った端末の無効化も示すが、本実施の形態では、プログラムの更新によって回復できる欠陥を持った端末をリボーク対象として説明する。具体的には、本実施の形態では、セキュリティホールを持った古いソフトウェアを使用し続けている端末などが、リボーク対象としてＣＲＬデータベースに記録される。【００６０】
図１３は、ＣＲＬデータベース１２０２の構成を示した図である。ＣＲＬデータベース１２０２は、ＣＲＬエントリＴ１３０１、Ｔ１３０２、Ｔ１３０３・・・から構成され、各ＣＲＬエントリには、端末ＩＤ、更新プログラム、および正規ＰＣＲ値のエリアが存在する。ＣＲＬデータベース１２０２は、リボークされている端末の情報により構成される。【００６１】
端末ＩＤエリアには、リボークされている端末のＩＤが格納される。更新プログラムエリアには、リボークされた端末の更新プログラムが格納される。リボークされた原因がソ
フトウェアにある場合、この更新プログラムを用いて端末をアップデートすれば、端末は動作し続けることができる。このようなケースの具体例としては、ソフトウェアがハッキングされたことが判明した場合や、ソフトウェアにセキュリティホールが発見された場合などである。正規ＰＣＲ値エリアには、端末が更新プログラムエリアに格納されている更新プログラムでアップデートされ、正常に動作している時のＰＣＲ値が格納される。この正規ＰＣＲ値を用い、端末側でプログラムが正しくアップデートされているかどうかを確かめることができる。【００６２】
ＣＲＬ管理部１２０３は、通信部１２０１および端末Ａ０１０２を介してカード０１０７と相互認証を行い正規のカードであることを確かめ、ＣＲＬ情報を通信部１２０１を介して提供する。より具体的には、ＣＲＬ管理部１２０３は、カード０１０７から送られてくる端末ＩＤがＣＲＬデータベース１２０２に存在するかどうか確かめ、存在していれば該当するエントリの更新プログラムおよび正規ＰＣＲ値をカード０１０７に提供する。【００６３】
権利管理部１２０４は、コンテンツの権利情報を管理し、端末の要求に応じて課金処理を行い、コンテンツの権利情報を提供する。権利管理部１２０４は、カード０１０７と相互認証を行い、正当なカード０１０７であることを確かめた後に課金処理および権利情報の提供を行う。権利管理部１２０４は、通信部１２０１を介してインターネット０１０８と接続される。【００６４】
以上でサーバ０１０１の構成の説明を終わる。続いて、カード０１０７の構成の説明に移る。
図８は、カード０１０７の構成を示している。カード０１０７は、プロセッサ０８０１、ＲＡＭ０８０２、ブートコード０８０３、端末Ｉ／Ｆ０８０４、ＣＲＬデータベース０８０５、コンテンツ格納部０８０７、プログラム格納部０８０８で構成されており、これらの構成要素はバス０８１３で相互に結合されている。また、カード０１０７は、耐タンパ性を有しており、カード内のプログラムやデータを容易に暴露されることは無いようになっている。【００６５】
プロセッサ０８０１は、ブートコード０８０３、およびＲＡＭ０８０２にロードされているプログラムを実行し、カード０１０７の各種処理を行う。
ＲＡＭ０８０２は、プロセッサ０８０１で実行するプログラムがロードされる。ロードされるプログラムはプログラム格納部０８０８に格納されている。
ブートコード０８０３は、カード０１０７がリセットされた後、プロセッサ０８０１が初めに実行するコード（ブートコード）が格納されている。ブートコード０８０３は、プログラム格納部０８０８に格納されているオペレーティングシステム０８０９をＲＡＭ０８０２へ展開する。なお、カード０１０７は、端末に挿入され電力が供給された時点でリセットされる。【００６６】
端末Ｉ／Ｆ０８０４は、カード０１０７と端末を接続するインターフェースである。プロセッサ０８０１で動作するプログラムは、端末Ｉ／Ｆ０８０４と通信することで、端末と通信することができる。カード０１０７で動作するプログラムは端末Ｉ／Ｆ０８０４と通信する時には常に端末Ｉ／Ｆ０８０４を使用する。以下、カード０１０７で動作するプログラムと端末との通信について記述する場合は端末Ｉ／Ｆ０８０４の記述は省略する。【００６７】
図１４は、ＣＲＬデータベース０８０５の構成を示した図である。ＣＲＬデータベース０８０５は、ＣＲＬエントリＴ１４０１、Ｔ１４０２、Ｔ１４０３・・・から構成され、
各ＣＲＬエントリには、端末ＩＤ、更新プログラム、および正規ＰＣＲ値のエリアが存在する。
端末ＩＤエリアには、カード０１０７が取得した端末のＩＤが格納される。なお、端末ＩＤのエリアに書かれている「ＩＤ＿Ａ」「ＩＤ＿Ｂ」「ＩＤ＿Ｎ」はそれぞれ、端末Ａ１０２、端末Ｂ１０３、端末Ｎ１０５の端末ＩＤである。更新プログラムエリアには、該当する端末ＩＤを持つ端末がリボークされている場合、その端末の更新プログラムが格納される。正規ＰＣＲ値エリアには、端末が更新プログラムエリアに格納されている更新プログラムでアップデートされ、正常に動作している時のＰＣＲ値が格納される。なお、Ｔ１４０３では、更新プログラムがＮＵＬＬに、正規のＰＣＲ値が現状のＰＣＲ値となっている。このエントリはカード０１０７が鍵出力依頼情報を受け取った後の状態でありかつ更新プログラムを取得していない状態である。例えば、カード０１０７が初めて端末Ｎ０１０５に挿入されて、鍵出力依頼情報を受け取った直後の状態である。【００６８】
コンテンツ格納部０８０７には、暗号化されたコンテンツとコンテンツの権利が格納される。このコンテンツは端末Ａ０１０２のようなサーバ０１０１に接続可能な端末でダウンロードされ、コンテンツ格納部０８０７に格納される。コンテンツ格納部０８０７は、端末Ｎ０１０５のようなインターネット０１０８を経由してサーバ０１０１にアクセスできない端末にコンテンツを供給するために用いられる。また、コンテンツの権利は、後述する権利購入プログラム０８１０によってサーバ０１０１から取得されてコンテンツ格納部０８０７に格納される。【００６９】
コンテンツ格納部０８０７に格納されるコンテンツの権利は、カード０１０７の外部から直接アクセスすることはできず、後述する権利確認・鍵生成プログラム０８１１しかアクセスできないような実装となっている。具体的には、権利確認・鍵生成プログラム０８１１でしか復号できないように暗号化したりすることで、このような実装を行うことができる。【００７０】
プログラム格納部０８０８は、オペレーティングシステム０８０９、権利購入プログラム０８１０、権利確認・鍵生成プログラム０８１１を格納している。
オペレーティングシステム０８０９は、一般的なカード０１０７の基盤ソフトウェアであり、オペレーティングシステム０８０９上で動作するアプリケーションにサービスを提供する。オペレーティングシステム０８０９は、プログラム格納部０８０８内に格納されているアプリケーションをＲＡＭ０２０２にロードする。【００７１】
権利購入プログラム０８１０は、端末の権利購入制御プログラム０２１０から受け取ったコンテンツ購入要求に基づき、サーバ０１０１と端末の通信機能を用いて通信して権利の購入およびカード０１０７のＣＲＬデータベース０８０５の更新を行う。なお、コンテンツ購入要求には、端末Ａ０１０２の説明で述べたように、購入対象のコンテンツＩＤおよびそのコンテンツを購入する端末を識別する端末ＩＤが含まれている。【００７２】
図９は、権利購入プログラム０８１０の動作を示すフローチャートである。権利購入プログラム０８１０は、コンテンツ購入要求に含まれる端末ＩＤを取得してＣＲＬデータベース０８０５に格納する（ステップＳ０９０１）。権利購入プログラム０８１０は、ＣＲＬデータベース０８０５を操作し、ＣＲＬエントリを作成して端末ＩＤエリアに取得した端末ＩＤを格納する。権利購入プログラム０８１０は、既に取得した端末ＩＤを端末ＩＤエリアに持つＣＲＬエントリが存在する場合にはＣＲＬエントリの作成は行わない。【００７３】
権利購入プログラム０８１０は、サーバ０１０１と相互認証を行い、コンテンツの購入
処理およびコンテンツの権利の取得を行う（ステップＳ０９０２）。取得したコンテンツの権利は、コンテンツ格納部０８０７に安全に保存される。コンテンツの権利には、コンテンツの利用期限、利用回数などのコンテンツ利用条件、およびコンテンツを暗号化している鍵が格納されている。コンテンツの権利は暗号化された形でコンテンツ格納部０８０７に保持される。【００７４】
次に、権利購入プログラム０８１０は、サーバ０１０１に問い合わせ、ＣＲＬデータベース０８０５の更新を行う（ステップＳ０９０３）。ここで、権利購入プログラム０８１０は、ＣＲＬデータベース０８０５のＣＲＬエントリに格納されているすべての端末ＩＤをサーバ０１０１に送信する。サーバ０１０１のＣＲＬ管理部１２０３は、受け取った端末ＩＤがＣＲＬデータベース１２０２に格納されているかどうかを確かめ、該当する端末ＩＤが存在する場合、その端末ＩＤが格納されているＣＲＬエントリ内の更新プログラムと正規ＰＣＲ値を権利購入プログラム０８１０に送信する。権利購入プログラム０８１０は、受け取った更新プログラムと正規ＰＣＲ値をＣＲＬデータベース０８０５の該当する端末ＩＤを含むＣＲＬエントリに格納する。【００７５】
図１０は、権利確認・鍵生成プログラム０８１１の動作を示すフローチャートである。
権利確認・鍵生成プログラム０８１１は、端末がリボークされていないかどうか確認し、されていなければ、コンテンツ利用条件をチェックして再生可能な状態であればコンテンツの暗号鍵を端末に出力する。また、リボークされている場合、更新プログラムを端末に出力する。【００７６】
権利確認・鍵生成プログラム０８１１は、鍵出力依頼情報に含まれる端末ＩＤを取得してＣＲＬデータベース０８０５に格納する（ステップＳ１００１）。権利確認・鍵生成プログラム０８１１は、ＣＲＬデータベース０８０５を操作し、ＣＲＬエントリを作成して端末ＩＤエリアに取得した端末ＩＤを格納する。権利確認・鍵生成プログラム０８１１は、既に取得した端末ＩＤを端末ＩＤエリアに持つＣＲＬエントリが存在する場合にはＣＲＬエントリの作成は行わない。権利購入プログラム０８１０にも同様の処理を行う機能があるが、このステップは端末Ｎ０１０５のようなインターネット０１０８に接続されない端末で端末ＩＤを取得するために使用される。端末Ｎ０１０５のような端末は、権利購入プログラム０８１０を実行することはないからである。なお、これらの端末については、端末Ａ０１０２等のインターネット０１０８に接続された機器がカード０１０７を用いて事前に購入したコンテンツを再生することを想定している。【００７７】
権利確認・鍵生成プログラム０８１１は、鍵出力依頼情報に含まれるＡｔｔｅｓｔａｔｉｏｎサービスにより署名されたＰＣＲ値の署名検証を行う（ステップＳ１００２）。署名検証の結果、ＰＣＲ値が正規のものでないと判断された場合（ステップＳ１００２でＮＯ）、権利確認・鍵生成プログラム０８１１は処理を終了する。
署名検証の結果、ＰＣＲの値が正規のものであると確認された場合（ステップＳ１００２でＯＫ）、権利確認・鍵生成プログラム０８１１は、端末の正当性確認をＰＣＲ値を用いて行う（ステップＳ１００３）。権利確認・鍵生成プログラム０８１１は、ＣＲＬデータベース０８０５を参照し、鍵出力依頼情報に含まれる端末ＩＤと一致するＣＲＬエントリ内の正規ＰＣＲ値と、端末より取得したＰＣＲ値を比較する。比較結果がＯＫの場合（ステップＳ１００３でＯＫ）、権利確認処理に移る。比較結果がＮＧの場合（ステップＳ１００３でＮＧ）、プログラム更新処理に移る。ここで、比較結果がＯＫとはＰＣＲ値と正規ＰＣＲ値とが一致することを意味し、比較結果がＮＧとはＰＣＲ値と正規ＰＣＲ値とが一致しないことを意味する。【００７８】
なお、鍵出力依頼情報に含まれる端末ＩＤと一致するＣＲＬエントリ内の正規ＰＣＲ値が存在しない場合、権利確認・鍵生成プログラム０８１１は、鍵出力依頼情報に含まれるプログラム証明書に含まれるＰＣＲ値を正規ＰＣＲ値の替わりに用いて端末の正当性を確認する。比較結果がＯＫの場合（ステップＳ１００３でＯＫ）、権利確認処理に移る。比較結果がＮＧの場合（ステップＳ１００３でＮＧ）、プログラム更新処理に移る。【００７９】
ここで、権利確認・鍵生成プログラム０８１１は、正規ＰＣＲ値をサーバから取得していない場合に限って、鍵出力依頼情報に含まれるプログラム証明書中のＰＣＲ値をＣＲＬエントリに格納し、その後の端末の正当性確認に用いる。このプログラム証明書はメーカが出荷時に機器のソフトウェア構成を表すＰＣＲ値を含む状態で署名しているものであるため、実質的にはカード０１０７は端末が出荷時のソフトウェア構成であるかどうかの検証しかできないこととなる。しかしながら、後述するが、本実施の形態では、権利を購入する処理の中でＣＲＬエントリに格納されている端末ＩＤすべてについて更新プログラムが存在するかどうかの確認が行われ、更新プログラムが存在している場合は更新プログラムおよびその更新プログラムに対応した正規ＰＣＲがカード０１０７のＣＲＬエントリに格納される。そのため、一度端末ＩＤがＣＲＬエントリに格納され、権利購入処理が発生すると正規ＰＣＲ値を用いた端末の正当性検証が完全に機能することとなる。端末の利用者はコンテンツ配信サービスを受け続けるためには権利購入処理の実行が不可欠となるため、正規ＰＣＲ値の取得操作も避けることは困難である。【００８０】
端末が正当であると判断された場合（ステップＳ１００３でＯＫ）、権利確認・鍵生成プログラム０８１１は、鍵出力依頼情報に含まれるコンテンツＩＤに該当するコンテンツの権利情報をコンテンツ格納部０８０７から取得し、利用条件をチェックする（ステップＳ１００４）。利用条件のチェックがＮＧの場合（ステップＳ１００４でＮＧ）、権利確認・鍵生成プログラム０８１１は処理を終了する。【００８１】
利用条件のチェックがＯＫの場合（ステップＳ１００４でＯＫ）、権利確認・鍵生成プログラム０８１１は、コンテンツの権利情報に含まれるコンテンツ暗号鍵を端末に出力し、権利確認・鍵生成プログラムの処理を終了する（ステップＳ１００５）。
端末の正当性確認ステップで端末が正当でないと判断された場合（ステップＳ１００３でＮＧ）、権利確認・鍵生成プログラム０８１１は、ＣＲＬデータベース０８０５を参照し、鍵出力要求に含まれる端末ＩＤに該当するＣＲＬエントリの更新プログラムエリアに更新プログラムが存在するかどうかを確かめる（ステップＳ１００６）。更新プログラムが存在しない場合（ステップＳ１００６でＮＧ）、権利確認・鍵生成プログラム０８１１は、処理を終了する。【００８２】
更新プログラムが存在する場合（ステップＳ１００６でＯＫ）、更新プログラムと正規ＰＣＲの値の出力処理を行う（ステップＳ１００７）。ここで、更新プログラムおよび正規ＰＣＲ値は、ＣＲＬデータベース０８０５内に格納されている鍵出力依頼情報に含まれる端末ＩＤに該当するＣＲＬエントリのものである。
次に、コンテンツ配布システム０１００の動作を説明する。【００８３】
まず、インターネット０１０８を介してサーバ０１０１に接続されている端末（端末Ａ０１０２〜端末Ｍ０１０４）についての動作を説明する。以下、端末Ａ０１０２を例として説明するが、端末Ｂ０１０３〜端末Ｍ０１０４も同様の構成を備えているため、以下で説明するものと同様の動作を行う。
図１１は、端末Ａ０１０２においてカード０１０７を用いてサーバ０１０１から権利を購入し、サーバ０１０１から取得したコンテンツを端末Ａ０１０２で再生する場合のコンテンツ配布システム０１００の動作を示すフローチャートである。ここで、端末Ａ０１０２はリボークされており、サーバ０１０１のＣＲＬデータベース１２０２には、端末Ａ０１０２の端末ＩＤを含むＣＲＬエントリが存在していると仮定する。また、更新プログラムとそれに対応する正規ＰＣＲ値もＣＲＬデータベース１２０２の該当するＣＲＬエントリ内に格納されているとする。以下、図１１に示すフローチャートに従ってコンテンツ配布システム０１００の動作ついて説明する。【００８４】
端末Ａ０１０２は、図６で説明した端末起動フローに基づき端末の起動処理を行う（ステップＳ１１０１）。その結果、端末０１０２のセキュアモジュール０２０７内のＰＣＲが端末０１０２で動作しているプログラムに依存する値となる。カード０１０７は、ブートコード０８０３を用いてオペレーティングシステム０８０９をＲＡＭ０８０２にローディングし、その後、オペレーティングシステム０８０９が各種アプリケーションを起動することでカード０１０７を利用可能な状態にする。【００８５】
次に端末Ａ０１０２は、図３に示すように権利購入制御プログラム０２１０を用い、権利の購入処理をカード０１０７を用いて行う（ステップＳ１１０２）。カード０１０７は、図９に示すように権利購入プログラムを動作させ権利購入処理を行う。
ここで、端末Ａ０１０２はリボークされているので、権利購入プログラム０８１０は、サーバ０１０１から該当する更新プログラムと正規ＰＣＲ値をＣＲＬデータベース０８０５に格納する（ステップＳ１１０３）。【００８６】
次に端末Ａ０１０２は、図４に示すように再生制御プログラム０２１１を動作させコンテンツの再生を行う。再生制御プログラム０２１１がカード０１０７に対し鍵の出力を依頼すると図１０に示すように権利確認・鍵生成プログラム０８１１が動作する。ここで、権利確認・鍵生成プログラム０８１１は、ＣＲＬデータベース０８０５内に端末Ａ０１０２の端末ＩＤを含むＣＲＬエントリがあり、また更新プログラムおよび正規ＰＣＲ値が存在するため、更新プログラムおよび正規ＰＣＲ値を端末Ａ０１０２に出力する。再生制御プログラム０２１１は、受け取った更新プログラムおよび正規ＰＣＲ値をそれぞれプログラム格納部０２０８に格納し、端末Ａ０１０２を再起動する（ステップＳ１１０４）。その後、端末Ａ０１０２は、ステップＳ１１０１と同様に起動する。【００８７】
次に端末Ａ０１０２は、再生制御プログラム０２１１を動作させ、再度、カード０１０７の権利確認・鍵生成プログラム０８１１に鍵出力処理を依頼する。権利確認・鍵生成プログラム０８１１のステップＳ１００３で端末の正当性の確認が行われる（ステップＳ１１０５）。もし、正しくプログラムが更新されているならば（ステップＳ１１０５のＯＫ）、端末Ａ０１０２のセキュアモジュール０２０７から取得したＰＣＲ値とカード０１０７のＣＲＬデータベース０８０５に格納されているＰＣＲ値が一致することから、端末Ａ０１０２が正当であることが確認され、鍵が出力される。【００８８】
一方、プログラムの更新処理を行う端末Ａ０１０２の再生制御プログラム０２１１が悪意のあるものから改竄され、プログラムの更新が行われなかった場合（ステップＳ１１０
５のＮＧ）、端末Ａ０１０２のセキュアモジュール０２０７から取得したＰＣＲ値とカード０１０７のＣＲＬデータベース０８０５に格納されているＰＣＲ値は一致することなく、端末Ａ０１０２は正当でないと判断され、端末Ａ０１０２の処理は終了する。【００８９】
プログラムの更新が正しく行われた場合（ステップＳ１１０５でＯＫ）、カード０１０７からコンテンツの暗号鍵が出力される（ステップＳ１１０６）。
鍵が出力されると、再生制御プログラム０２１１は、コンテンツ格納部０２０６から暗号化されたコンテンツを取り出し、鍵を用いて復号化した後に再生する（ステップＳ１１０７）。【００９０】
このように、ＰＣＲ値を用いてプログラムが正しく更新されたことを確認しないとコンテンツ暗号鍵を出力しない構成とすることで、もし、正しくアップデートされていないならば、端末の正当性チェックがＮＧとなり、コンテンツを暗号化した鍵は端末に出力されないので、コンテンツを正しく再生するためには、プログラムをアップデートすることが必要となる。また、アップデートしたプログラムが改竄された場合であっても端末の正当性チェックがＮＧとなり、コンテンツが再生できなくなるため、コンテンツの著作権を適切に保護することができる。【００９１】
さらに、本発明では、従来技術のようにプログラムアップデート手段全体を耐タンパ実装することなく、プログラムのアップデートを強制することができる。つまり、上述の処理を実現するためには、カード０１０７とセキュアモジュール０２０７のみを耐タンパ実装していればよくなるため、耐タンパ実装すべき箇所を大きく削減することができる。
また、コンテンツを再生する権利を要求する際に、必ずカード０１０７が端末の正当性を確認し、ＮＧの場合に端末のプログラムをアップデートするので、コンテンツを再生しようとする限り、必ずアップデートが行われることとなる。これにより、リボークされた端末のソフトウェアのアップデートを確実に行うことができる。なお、本実施の形態では、コンテンツの再生時に上記の処理を行ったが、これを記録時等に変更することで、他のタイミングでもソフトウェアのアップデートを強制することができることは言うまでもない。【００９２】
続いて、インターネット０１０８と接続できない端末（端末Ｎ０１０５〜Ｚ０１０６）についての動作の説明を行う。以下では端末Ｎ０１０５を例として説明するが、端末Ｚ０１０６も同様の構成を備えているため、以下で説明するものと同様の動作を行う。
図１５は、インターネット０１０８を介してサーバ０１０１に接続することができない端末Ｎ０１０５のプログラムを更新する場合のコンテンツ配布システム０１００の動作を示すフローチャートである。ここで、端末Ｎ０１０５はリボークされており、サーバ０１０１のＣＲＬデータベース１２０２には、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリが存在していると仮定する。また、更新プログラムとそれに対応する正規ＰＣＲ値もＣＲＬデータベース１２０２の該当するＣＲＬエントリ内に格納されているとする。ここで、端末Ｎ０１０５は、インターネット０１０８を介してサーバ０１０１に接続することができないため、権利の購入は端末Ａ０１０２を用いて行い、コンテンツとその権利はカード０１０７を用いることで端末Ｎ０１０５で利用可能となる。以下、図１５に示すフローチャートに従ってコンテンツ配布システム０１００の動作について説明する。【００９３】
端末Ａ０１０２は、端末起動処理、および権利購入処理をそれぞれ図１１のステップＳ１１０１、およびステップＳ１１０２で説明したように行う。ここで、端末Ｎ０１０５で
もダウンロードしたコンテンツを再生できるようにするため、端末Ａ０１０２はカード０１０７のコンテンツ格納部０８０７にダウンロードしたコンテンツを格納する。
端末Ｎ０１０５は、図６で説明した端末起動フローに基づき端末の起動処理を行う（ステップＳ１５０３）。その結果、端末０１０５のセキュアモジュール０７０７内のＰＣＲが端末Ｎ０１０５で動作しているプログラムに依存する値となる。【００９４】
次に、端末Ａ０１０２で購入したコンテンツを端末Ｎ０１０５で再生するためにカード０１０７を端末Ａ０１０２から端末Ｎ０１０５に移動させる。端末Ｎ０１０５は、再生制御プログラム０７１１を動作させ、カード０１０７に対し、コンテンツ鍵出力依頼を行う。カード０１０７は、図１０に示すような動作を行う権利確認・鍵生成プログラム０８１１を動作させる。ここで、権利確認・鍵生成プログラムは、ステップＳ１００１で端末Ｎ０１０５の端末ＩＤをＣＲＬデータベースに追加し、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリを作成する（ステップＳ１５０４）。【００９５】
権利確認・鍵生成プログラム０８１１はその後、ステップＳ１００３で端末Ｎ０１０５の正当性確認を行う（ステップＳ１５０５）。ここで、権利確認・鍵生成プログラム０８１１は、ＣＲＬデータベース０８０５を参照し、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリを発見するが、正規ＰＣＲ値が存在しないため、端末Ｎ０１０５のプログラム証明書０７１２に格納されているＰＣＲ値を用いて端末の正当性を確認する。端末Ｎ０１０５のセキュアモジュール０７０７のＰＣＲ値とプログラム証明書０７１２のＰＣＲ値が一致しなければ（ステップＳ１５０５でＮＧ）、端末は正当で無いと判断し、権利確認・鍵生成プログラムは処理を終了する。【００９６】
端末の正当性が確認された場合（ステップＳ１５０５でＯＫ）、権利確認・鍵生成プログラム０８１１は、権利確認処理Ｓ１００４を行った後、コンテンツ格納部０８０７に格納されているコンテンツの権利内のコンテンツ暗号化鍵を復号化し、端末Ｎ０１０５に出力する（ステップＳ１５０６）。
端末Ｎ０１０５の再生制御プログラム０７１１は、カード０１０７から受け取ったコンテンツ暗号鍵を用いて、カード０１０７のコンテンツ格納部０８０７に格納されているコンテンツを復号化した後、再生する（ステップＳ１５０７）。なお、カード０１０７のコンテンツ格納部０８０７から端末Ｎ０１０５のコンテンツ格納部０７０６にコンテンツを転送した後にコンテンツの再生を行っても良い。【００９７】
次に、カード０１０７を用いて新たにコンテンツの権利を購入するために、カード０１０７は端末Ａ０１０２に挿入される。以下、端末Ａ０１０２においてコンテンツの権利を購入するフローについて説明する。
次に端末Ａ０１０２は、図３に示すように権利購入制御プログラム０２１０を用い、権利の購入処理をカード０１０７を用いて行う（ステップＳ１５０８）。カード０１０７は、図９に示すように権利購入プログラムを動作させ権利購入処理を行う。権利購入の際にダウンロードされたコンテンツは、カード０１０７のコンテンツ格納部０８０７に格納される。【００９８】
ここで、端末Ｎ０１０５はリボークされているので、権利購入プログラム０８１０は、サーバ０１０１から該当する更新プログラムと正規ＰＣＲ値をＣＲＬデータベース０８０５に格納する（ステップＳ１５０９）。カード０１０７のＣＲＬデータベース０８０５には、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリが存在しているので、権利購入プログラム０８１０のＣＲＬ更新処理（ステップＳ０９０３）において、端末Ｎ１００５の端
末ＩＤでサーバ０１０１のＣＲＬデータベース１２０２が検索される。検索の結果、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリがＣＲＬデータベース１２０２に存在するので、権利購入プログラム０８１０は、そのＣＲＬエントリから端末Ｎ０１０５の更新プログラムと正規ＰＣＲ値をカード０１０７のＣＲＬデータベース０８０５に存在する端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリに格納する。【００９９】
次に、カード０１０７は、端末Ｎ０１０５でコンテンツを再生するために端末Ｎ０１０５に挿入される。以下、端末Ｎ０１０５におけるコンテンツ再生動作について説明する。
端末Ｎ０１０５は、図１１のステップＳ１１０４において端末Ａ０１０２が行ったように端末Ｎ０１０５のプログラムを更新する（ステップＳ１５１０）。
端末Ｎ０１０５は、図１１のステップＳ１１０５において端末Ａ０１０２が行ったようにカード０１０７に対し鍵出力依頼を行うことで、カード０１０７によって正当性の確認を行われる（ステップＳ１５１１）。正当性が確認された場合（ステップＳ１５１１でＯＫ）、カード０１０７からコンテンツの暗号化鍵がカード０１０７から端末Ｎ０１０５に出力される。【０１００】
一方、プログラムの更新処理を行う端末Ｎ０１０５の再生制御プログラム０７１１が悪意のあるものから改竄され、プログラムの更新が行われなかった場合（ステップＳ１５１１のＮＧ）、端末Ｎ０１０５のセキュアモジュール０７０７から取得したＰＣＲ値とカード０１０７のＣＲＬデータベース０８０５に格納されているＰＣＲ値は一致することなく、端末Ｎ０１０５は正当でないと判断され、端末Ｎ０１０５の処理は終了する。【０１０１】
プログラムの更新が正しく行われた場合（ステップＳ１５１１でＯＫ）、カード０１０７からコンテンツの暗号鍵が出力される（ステップＳ１５１２）。
端末Ｎ０１０５の再生制御プログラム０７１１は、カード０１０７から受け取ったコンテンツ暗号鍵を用いて、カード０１０７のコンテンツ格納部０８０７に格納されているコンテンツを復号化した後、再生する（ステップＳ１５１３）。なお、カード０１０７のコンテンツ格納部０８０７から端末Ｎ０１０５のコンテンツ格納部０７０６にコンテンツを転送した後にコンテンツの再生を行っても良い。【０１０２】
これにより、インターネット０１０８経由でサーバ０１０１に接続できない端末Ｎ０１０５のような端末であっても、端末のリボークおよびプログラムの更新が可能となる。
また、一度カード０１０７が使用された端末に対応するリボケーションリストのみカード０１０７に取得するため、カード０１０７の少ないリソースでもリボケーションリストが取り扱える。【０１０３】
また、端末がネットワーク接続されている場合の動作説明で述べたものと同様の効果が得られることは言うまでもない。
（変形例）
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。【０１０４】
（１）  上述した実施の形態では、更新対象はソフトウェアであったが、ハードウェアの構成情報を更新するシステムに適用してもよい。このようなハードウェアの具体的な例としてはリコンフィギュアラブルプロセッサなどが考えられる。
（２）  上述した実施の形態では、カード、端末、サーバのいずれを制御するプログラムもオペレーティングシステムの上で動作していたが、これに限られるものではない。アプリケーションプログラム等が直接プロセッサで処理できる言語で書かれている場合には、必ずしもオペレーティングシステムはなくてもよい。【０１０５】
（３）  ＰＣＲはハッシュ値であるとしたが、これに限られるものではない。改竄検出に用いることのできる値であれば、どのようなものであってもよい。例えば、プログラムの一部を暗号化した値であったり、プログラムのチェックサム等であってもよい。
（４）  上述した実施の形態では、カード０１０７は、鍵の要求があった場合に端末がリボークされているか否かを確認するとしたが、これに限られるものではない。鍵情報以外にも、不正な端末に渡すと不利益のある情報であれば、他の情報であってもよい。さらに、端末が行う処理もコンテンツの再生に限るものではない。例えば、端末は、個人情報を取り扱うデータベースの処理を行うとしてもよい。この場合、端末がリボークされているか否かを確認するタイミングは、個人情報の要求が端末からあった場合などになる。【０１０６】
（５）  上述した実施の形態では、カード０１０７が端末がリボークされているか否かを確認するとしたが、これに限られるものではない。例えば、サーバが、権利情報を提供する際に、端末がリボークされているか否かを確認しても良い。この場合、端末は、権利情報の要求と共にＰＣＲを送信する。また、サーバは、正規ＰＣＲを記憶しており、端末から送られてきたＰＣＲと正規ＰＣＲとが不一致の場合（すなわち、ＮＧの場合）に端末のプログラムをアップデートさせる。なお、詳細な処理については、端末とカードとの間でのアップデートの処理と同様であるので省略する。【０１０７】
（６）  上述した実施の形態では、プログラムがアップデートされた後、端末は再起動されるとしたが、これに限られるものではない。再起動を必要としない小さなアップデートであれば、そのまま処理を続行してもよい。すなわち、アップデートが完了した後、再起動を行わずに、鍵情報が端末に出力され、コンテンツの復号及び再生処理が行われるとしてもよい。【０１０８】
（７）以上説明したように、本発明は、端末と端末から分離可能なカードによって構成される情報処理装置であって、端末は、端末で動作しているプログラムの特徴を測定し、保存する端末測定手段と、端末で動作するプログラムを格納するプログラム格納手段と、プログラム格納手段に格納されているプログラムを更新するプログラム更新手段から構成され、カードは、端末の更新プログラムを格納する更新プログラム格納手段と、端末測定手段から得た情報を用い端末の正当性を確認する正当性確認手段と、正当性確認手段により端末が正当であると判断された場合のみ、カード内に保持されている秘密情報を端末に提供する秘密情報提供手段と、正当性確認手段により端末が正当でないと判断された場合のみ、更新プログラム格納手段に格納された更新プログラムをプログラム更新手段に出力するプログラム出力手段から構成されることを特徴とする。【０１０９】
また、本発明のデータ処理装置において、カードはさらに、一度接続された端末の端末ＩＤを格納する端末ＩＤ格納手段と、接続されている端末がネットワークに接続できる場合、端末ＩＤ格納手段に格納されている端末ＩＤに関連付けられている更新プログラムをサーバから取得し、更新プログラム格納手段に格納する更新プログラム取得手段と、更新プログラム取得手段で取得した更新プログラムに関連付けられている端末の正当性確認情報を格納する正当性確認情報格納手段と、接続されている端末がネットワークに接続できる場合、更新プログラム取得手段で取得した更新プログラムに関連付けられている正当性確認情報をサーバから取得し、正当性確認情報格納手段に格納する正当性確認情報取得手段を具備し、正当性確認手段が正当性確認情報格納手段より取得した正当性確認情報を用いて、端末の正当性を確認することを特徴とする。【０１１０】
この構成によれば、アップデートモジュール自体の信頼性に依存しない、プログラムのアップデート方法を提供することが可能となる。
さらに、リボークされた端末を動作不能にすることなく、不正な端末をプログラムのアップデートにより正当な端末にすることができるので、コンテンツの再生を継続できる。リボークして動作不能にすることによるユーザへの被害を防止しつつ、コンテンツ配布システムの健全性を保つことが可能となる。【０１１１】
また、カード内部の機構によってプログラムをアップデートしているので、インターネットに接続できない端末でもプログラムのアップデートが可能となる。
また、本発明に係る情報記録装置は、プログラムによって動作する情報処理装置とともに用いられ、情報処理装置により利用される情報を記録している情報記録装置であって、情報処理装置から情報へのアクセス要求を受け付ける受付手段と、情報処理装置を動作させる更新プログラムを格納する更新プログラム格納手段と、アクセス要求が受け付けられ
た場合に、アクセス要求を行った情報処理装置を動作させているプログラムの特徴情報を取得する取得手段と、特徴情報に基づいて、情報処理装置を動作させているプログラムの正当性を確認する正当性確認手段と、プログラムが正当でないと確認された場合に、情報処理装置に対して更新プログラムを出力する出力手段とを備えることを特徴とする。【０１１２】
この構成によれば、情報記録装置に対して情報を要求している情報処理装置を動作させているプログラムが正当なものでないと確認された場合、そのプログラムが更新プログラムにアップデートされる。したがって、情報を利用しようとする装置に対して、プログラムのアップデートを強制することができる。
本発明に係る情報記録装置は、出力手段は、さらに、プログラムが正当であると確認された場合にのみ、情報を情報処理装置に出力することを特徴とする。【０１１３】
この構成によれば、情報処理装置は、プログラムが正当であると判定されない限り、要求している情報を得ることができない。このことから、アクセス要求を出している情報を得るためには、情報処理装置はプログラムのアップデートを行わざるを得なくなるので、プログラムのアップデートを強制することができる。
本発明に係る情報記録装置は、さらに、情報処理装置を動作させる正当なプログラムの特徴情報である正規特徴情報を格納する正規特徴情報格納手段を備え、正当性確認手段は、情報処理装置から受信した特徴情報と正規特徴情報とを比較することにより、プログラムが正当であるか否かを確認することを特徴とする。【０１１４】
この構成によれば、情報記録装置は、情報処理装置のプログラムが正当であるか否かを特徴情報に基づいて確認することができる。
本発明に係る情報記録装置は、受信手段は、さらに、アクセス要求と共に情報処理装置の識別情報を取得し、更新プログラム格納手段は、過去にアクセス要求を行った１以上の情報処理装置の識別情報と、情報処理装置のそれぞれに向けた更新プログラムとを対応付けて格納し、出力手段は、アクセス要求とともに受信した識別情報に対応する情報処理装置向けの更新プログラムを出力することを特徴とする。【０１１５】
この構成によれば、情報記録装置が複数の情報処理装置で共有される場合でも、各情報処理装置に対して適切な更新プログラムを出力することができる。
本発明に係る情報記録装置は、更新プログラム格納手段は、さらに、新たな情報処理装置からのアクセス要求が受け付けられると、新たな情報処理装置の識別情報を格納内容に追加することを特徴とする。【０１１６】
この構成によれば、情報記録装置は、過去にアクセス要求を受け付けた情報処理装置の全てについて、更新プログラムの管理を行うことができる。
本発明に係る情報記録装置は、さらに、更新プログラムを提供するサーバに対して、更新プログラム格納手段が格納している情報処理装置の識別情報を送信する送信手段と、サーバから送信した識別情報に対応する情報処理装置用の更新プログラムを取得する取得手段とを備え、更新プログラム格納手段は、取得した更新プログラムを識別情報と対応付けて記録することを特徴とする。【０１１７】
この構成によれば、情報記録装置は、自身が管理している情報処理装置について、更新プログラムのバージョンアップがあった場合、バージョンアップ後の更新プログラムを取
得して記録することができる。
また、本発明に係る情報記録装置は、可搬型の記録媒体であることを特徴とする。
この構成によれば、可搬型の記録媒体内部の機構によって、情報処理装置内のプログラムをアップデートしているので、インターネットに接続できない情報処理装置に対してもプログラムのアップデートを強制することができる。【０１１８】
また、本発明に係る情報処理装置は、プログラムによって動作し、プログラムの特徴情報によりプログラムの正当性を確認する情報記録装置と共に用いられる情報処理装置であって、プログラムの特徴情報を算出する特徴情報算出手段と、情報記録装置が記録する情報へのアクセス要求を行う際に、算出した特徴情報を情報記録装置へ送信する送信手段と、情報記録装置による確認に応じて、情報もしくは情報処理装置用の更新プログラムを受信する受信手段と更新プログラムを受信した場合、受信した更新プログラムによりプログラムを更新する更新手段とを備えることを特徴とする。【０１１９】
この構成によれば、情報処理装置は、情報記録媒体に情報の要求を行う際に、自身を動作させているプログラムが不正なものであれば、アップデートすることができる。
また、本発明に係る情報記録装置は、特徴情報算出手段は、耐タンパ化により保護されていることを特徴とする。
この構成によれば、不正解析者による特徴情報の改ざんを防止できるので、情報処理装置を動作させているプログラムが不正なものである場合に、より確実に更新プログラムへのアップデートを行わせることができる。また、特徴情報算出手段さえ保護していれば、上述した不正を防止できるので、装置全体を耐タンパ化する場合に比べて、低コストでプログラムのアップデートを強制することができる。【０１２０】
また、本発明を、上述した特徴を持つ情報記録装置および情報処理装置から構成されるシステム、プログラムアップデート方法、プログラム、および集積回路として実現した場合もそれぞれ同様の効果を発揮することができる。
（８）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。【０１２１】
（９）上記の各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。【０１２２】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又は全てを含むように１チップ化されてもよい。
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。【０１２３】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
（１０）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。【０１２４】
（１１）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。【０１２５】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。【０１２６】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（１２）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０１２７】
プログラムを更新する情報処理装置で利用できる。
【図１】
2008004525.tif 000003
【図２】
2008004525.tif 000004
【図３】
2008004525.tif 000005
【図４】
2008004525.tif 000006
【図５】
2008004525.tif 000007
【図６】
2008004525.tif 000008
【図７】
2008004525.tif 000009
【図８】
2008004525.tif 000010
【図９】
2008004525.tif 000011
【図１０】
2008004525.tif 000012
【図１１】
2008004525.tif 000013
【図１２】
2008004525.tif 000014
【図１３】
2008004525.tif 000015
【図１４】
2008004525.tif 000016
【図１５】
2008004525.tif 000017
【手続補正書】
【提出日】平成20年12月9日(2008.12.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
情報処理装置と、前記情報処理装置に脱着可能な可搬型の情報記録装置とから構成される情報処理システムであって、
前記情報処理装置は、
当該情報処理装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムを格納している第１格納手段と、
ロードされるときに前記動作プログラムの特徴を示す特徴量を測定する測定手段と、
前記情報記録装置に対して、秘密情報を要求する要求手段と、
前記情報記録装置における前記動作プログラムの正当性の確認結果に応じて、秘密情報及び更新プログラムのいずれか一方を受信する受信手段と、
更新プログラムを受信した場合に、受信した更新プログラムに従って、前記第１格納手段に格納されている前記動作プログラムを更新する更新手段とを備え、
前記情報記録装置は、
秘密情報を安全に保持する情報保持手段と、
前記動作プログラムの更新のための更新プログラムを格納している第２格納手段と、
前記情報処理装置から秘密情報の要求を受信する受信手段と、
前記要求を受信すると、前記測定手段により測定された前記特徴量を用いて、前記動作プログラムの正当性を判断する判断手段と、
正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記情報処理装置へ出力し、正当でないと確認された場合、前記第２格納手段に格納されている前記更新プログラムを前記情報処理装置へ出力する出力手段と
を備えることを特徴とする情報処理システム。
【請求項２】
前記情報記録装置は、さらに、
過去に接続された情報処理装置を識別する装置識別子を格納している識別子格納手段と、
サーバ装置から、ネットワーク及び当該ネットワークに接続された前記情報処理装置を介して、前記識別子格納手段に格納されている装置識別子に関連付けられている前記更新プログラムを取得し、取得した前記更新プログラムを前記第２格納手段に書き込む第１取得手段と、
正当性情報格納手段と、
前記サーバ装置から、ネットワーク及び当該ネットワークに接続された前記情報処理装置を介して、前記第２格納手段に格納されている前記更新プログラムに関連付けられ、前記動作プログラムの正当性を確認するための正当性確認情報を取得し、取得した正当性確認情報を前記正当性情報格納手段に書き込む第２取得手段とを含み、
前記判断手段は、前記正当性情報格納手段に書き込まれている前記正当性確認情報に基づいて、前記動作プログラムの正当性を判断する
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
情報処理装置に脱着可能な可搬型の情報記録装置であって、
秘密情報を安全に保持する情報保持手段と、
前記情報処理装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムの更新のための更新プログラムを格納しているプログラム格納手段と、
前記情報処理装置から秘密情報の要求を受信する受信手段と、
前記要求を受信すると、前記情報処理装置から取得し、前記動作プログラムの特徴を示す測定特徴量を用いて、前記動作プログラムの正当性を判断する判断手段と、
正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記情報処理装置へ出力し、正当でないと確認された場合、前記プログラム格納手段に格納されている前記更新プログラムを前記情報処理装置へ出力する出力手段と
を備えることを特徴とする情報記録装置。
【請求項４】
前記情報記録装置は、さらに、
正当な動作プログラムの特徴を示す正規特徴量を格納する正規情報格納手段を含み、
前記判断手段は、前記情報処理装置から取得した測定特徴量と前記正規特徴量とを比較することにより、前記動作プログラムの正当性を判断する
ことを特徴とする請求項３に記載の情報記録装置。
【請求項５】
前記プログラム格納手段は、少なくとも過去に接続された１台以上の情報処理装置を識別する装置識別子と、前記情報処理装置のそれぞれに向けた更新プログラムとを対応付けて格納し、
前記出力手段は、前記要求の発信元である前記情報処理装置を識別する装置識別子に対応する情報処理装置向けの更新プログラムを出力する
ことを特徴とする請求項３に記載の情報記録装置。
【請求項６】
前記受信手段は、さらに、前記要求と共に前記要求の発信元である前記情報処理装置を識別する装置識別子を取得し、
前記プログラム格納手段は、過去に前記要求を行った１以上の情報処理装置を識別する装置識別子と、前記情報処理装置のそれぞれに向けた更新プログラムとを対応付けて格納し、
前記出力手段は、前記要求とともに受信した装置識別子に対応する情報処理装置向けの更新プログラムを出力する
ことを特徴とする請求項５に記載の情報記録装置。
【請求項７】
前記プログラム格納手段は、さらに、新たな情報処理装置からの前記要求を受信すると、新たな情報処理装置を識別する装置識別子を追加して格納する
ことを特徴とする請求項６に記載の情報記録装置。
【請求項８】
前記情報記録装置は、さらに、
前記更新プログラムを提供するサーバ装置に対して、前記プログラム格納手段に格納されている情報処理装置を識別する装置識別子を送信する送信手段と、
前記サーバ装置から、送信した前記装置識別子に対応する情報処理装置用の更新プログラムを取得する取得手段とを含み、
前記プログラム格納手段は、さらに、取得した前記更新プログラムを前記装置識別子と対応付けて記録する
ことを特徴とする請求項７に記載の情報記録装置。
【請求項９】
前記情報記録装置は、可搬型のメモリカードである
ことを特徴とする請求項３に記載の情報記録装置。
【請求項１０】
前記判断手段は、前記判断において、Trusted Computing Group(TCG)により仕様化されている構成証明技術に含まれる検証プロセスを用いる
ことを特徴とする請求項３に記載の情報記録装置。
【請求項１１】
可搬型の情報記録装置が装着される情報処理装置であって、
当該情報処理装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムを格納している第１格納手段と、
ロードされるときに前記動作プログラムの特徴を示す特徴量を測定する測定手段と、
前記情報記録装置に対して、秘密情報を要求する要求手段と、
前記情報記録装置における前記動作プログラムの正当性の確認結果に応じて、秘密情報及び更新プログラムのいずれか一方を受信する受信手段と、
更新プログラムを受信した場合に、受信した更新プログラムに従って、前記第１格納手段に格納されている前記動作プログラムを更新する更新手段と
を備えることを特徴とする情報処理装置。
【請求項１２】
前記測定手段は、耐タンパ化により保護されている
ことを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記情報処理装置は、さらに、
Trusted Computing Group(TCG)により仕様化されているTrusted Platform Moduleを構成し、少なくとも前記特徴量に基づいて、当該情報処理装置の正当性を証明する証明情報を生成する証明手段を含む
ことを特徴とする請求項１１に記載の情報処理装置。
【請求項１４】
情報処理装置に脱着可能な可搬型の情報記録装置において用いられるプログラム更新方法であって、
前記情報記録装置は、秘密情報を安全に保持する情報保持手段と、前記情報処理装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムの更新のための更新プログラムを格納しているプログラム格納手段とを備え、
前記プログラム更新方法は、
前記情報処理装置から秘密情報の要求を受信する受信ステップと、
前記要求を受信すると、前記情報処理装置から取得し、前記動作プログラムの特徴を示す測定特徴量を用いて、前記動作プログラムの正当性を判断する判断ステップと、
正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記情報処理装置へ出力し、正当でないと確認された場合、前記プログラム格納手段に格納されている前記更新プログラムを前記情報処理装置へ出力する出力ステップと
を含むことを特徴とするプログラム更新方法。
【請求項１５】
コンピュータ読み取り可能な記録媒体に記録され、情報処理装置に脱着可能な可搬型の情報記録装置において用いられるプログラム更新のためのコンピュータプログラムであって、
前記情報記録装置は、秘密情報を安全に保持する情報保持手段と、前記情報処理装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムの更新のための更新プログラムを格納しているプログラム格納手段とを備え、
前記コンピュータプログラムは、コンピュータに、
前記情報処理装置から秘密情報の要求を受信する受信ステップと、
前記要求を受信すると、前記情報処理装置から取得し、前記動作プログラムの特徴を示す測定特徴量を用いて、前記動作プログラムの正当性を判断する判断ステップと、
正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記情報処理装置へ出力し、正当でないと確認された場合、前記プログラム格納手段に格納されている前記更新プログラムを前記情報処理装置へ出力する出力ステップと
を実行させることを特徴とするコンピュータプログラム。
【請求項１６】
情報処理装置に脱着可能な可搬型の情報記録装置を構成する集積回路であって、
前記情報記録装置は、秘密情報を安全に保持する情報保持手段と、前記情報処理装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムの更新のための更新プログラムを格納しているプログラム格納手段とを備え、
前記集積回路は、
前記情報処理装置から秘密情報の要求を受信する受信手段と、
前記要求を受信すると、前記情報処理装置から取得し、前記動作プログラムの特徴を示す測定特徴量を用いて、前記動作プログラムの正当性を判断する判断手段と、
正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記情報処理装置へ出力し、正当でないと確認された場合、前記プログラム格納手段に格納されている前記更新プログラムを前記情報処理装置へ出力する出力手段と
を備えることを特徴とする集積回路。
【請求項１７】
サーバ装置と、ネットワークを介して前記サーバ装置に接続可能な第１情報処理装置と、前記サーバ装置に対する前記ネットワークを介した接続機能を有さない第２情報処理装置と、各情報処理装置に脱着可能な可搬型の情報記録装置とから構成される情報処理システムであって、
前記第２情報処理装置は、無効化されており、
前記サーバ装置は、前記第２情報処理装置を動作対象とする動作プログラムの更新のための更新プログラムを記憶しており、
前記情報記録装置が前記第１情報処理装置に装着され、前記第１情報処理装置は、前記サーバ装置からネットワークを介して前記更新プログラムを取得し、取得した前記更新プログラムを前記情報記録装置へ出力し、
前記情報記録装置が前記第２情報処理装置に装着され、
前記情報記録装置は、
秘密情報を安全に保持する情報保持手段と、
前記第１情報処理装置から前記更新プログラムを受信して格納する第１格納手段と、
前記第２情報処理装置から秘密情報の要求を受信する受信手段と、
前記要求を受信すると、前記第２情報処理装置において測定された特徴量を用いて、前記第２情報処理装置に格納されている動作プログラムの正当性を判断する判断手段と、
正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記第２情報処理装置へ出力し、正当でないと確認された場合、前記第２格納手段に格納されている前記更新プログラムを前記第２情報処理装置へ出力する出力手段とを備え、
前記第２情報処理装置は、
当該第２情報処理装置を動作対象とし、複数のコンピュータ命令を含む前記動作プログラムを格納している第２格納手段と、
ロードされるときに前記動作プログラムの特徴を示す特徴量を測定する測定手段と、
前記情報記録装置に対して、秘密情報を要求する要求手段と、
前記情報記録装置における前記動作プログラムの正当性の確認結果に応じて、秘密情報及び更新プログラムのいずれか一方を受信する受信手段と、
更新プログラムを受信した場合に、受信した更新プログラムに従って、前記第２格納手段に格納されている前記動作プログラムを更新する更新手段とを備える
ことを特徴とする情報処理システム。
【請求項１８】
サーバ装置と、ネットワークを介して前記サーバ装置に接続可能な第１情報処理装置と、前記サーバ装置に対する接続機能を有さない第２情報処理装置と、各情報処理装置に脱着可能な可搬型の情報記録装置とから構成される情報処理システムにおいて用いられる情報処理方法であって、
前記第２情報処理装置は、無効化されており、
前記サーバ装置は、前記第２情報処理装置を動作対象とする動作プログラムの更新のための更新プログラムを記憶しており、
前記情報記録装置は、秘密情報を安全に保持する情報保持手段を備え、
前記第２情報処理装置は、当該第２情報処理装置を動作対象とし、複数のコンピュータ命令を含む前記動作プログラムを格納している格納手段を備え、
前記情報処理方法は、
前記情報記録装置が前記第１情報処理装置に装着されたときに、前記第１情報処理装置により、前記サーバ装置からネットワークを介して前記更新プログラムを取得し、取得した前記更新プログラムを前記情報記録装置へ出力する出力ステップと、
前記情報記録装置が前記第２情報処理装置に装着されたときに、前記情報記録装置により、前記第１情報処理装置から前記更新プログラムを受信して格納する格納ステップと、
前記情報記録装置により、前記第２情報処理装置から秘密情報の要求を受信する受信ステップと、
前記情報記録装置により、前記要求を受信すると、前記第２情報処理装置において測定された特徴量を用いて、前記第２情報処理装置に格納されている動作プログラムの正当性を判断する判断ステップと、
前記情報記録装置により、正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記第２情報処理装置へ出力し、正当でないと確認された場合、前記第２格納手段に格納されている前記更新プログラムを前記第２情報処理装置へ出力する出力ステップと、
前記第２情報処理装置により、ロードされるときに前記動作プログラムの特徴を示す特徴量を測定する測定ステップと、
前記第２情報処理装置により、前記情報記録装置に対して、秘密情報を要求する要求ステップと、
前記第２情報処理装置により、前記情報記録装置における前記動作プログラムの正当性の確認結果に応じて、秘密情報及び更新プログラムのいずれか一方を受信する受信ステップと、
前記第２情報処理装置により、更新プログラムを受信した場合に、受信した更新プログラムに従って、前記格納手段に格納されている前記動作プログラムを更新する更新ステップと
を含むことを特徴とする情報処理方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムによって動作する情報処理装置について、プログラムを確実に更新する技術に関する。
【背景技術】
【０００２】
デジタルコンテンツの普及により、コンテンツの不正コピーが社会問題となっている。コンテンツの処理機能をソフトウェアで実現する場合、不正コピーを試みる悪意のあるユーザからプログラムを保護する必要がある。コンテンツの処理機能を実現するプログラムが悪意のあるユーザから改竄や盗聴された場合、コンテンツが平文状態で抜き取られたり、プログラムからコンテンツを暗号化している鍵を不正取得されコンテンツが復号化される危険性がある。デジタルコンテンツは、インターネットによる再配布が容易なため、平文状態のコンテンツが不正に配布されると権利者の利益が大きく損なわれる。このような事態を防止するため、コンテンツの処理プログラムへの攻撃を防止することは重要である。
【０００３】
しかしながら、処理プログラムのリリース時には、セキュリティホールがない完全なプログラムの提供を保証することは難しいため、悪意のあるユーザがこれらのセキュリティホールを突いてコンテンツ処理用のプログラムを改竄し、デジタルコンテンツを不正にコピーすることなどが予想される。このような事実が判明した場合には、そのプログラムをセキュリティホールへの対策を施した新しいプログラムに更新する必要があるが、そのような技術として以下のような技術がある。
【０００４】
例えば、特許文献１では、更新プログラムを供給するサーバと、端末のアップデートモジュールとが相互認証を行い、お互い正しいと認識しあった場合に、更新プログラムを渡し、端末内のプログラムをその更新プログラムでアップデートする技術が開示されている。また、特許文献２では、更新プログラムを格納するカードと端末のアップデートモジュールとが相互認証を行った上で、カードに格納されている更新プログラムを端末が取得し、端末自身が端末のプログラムをアップデートする技術が開示されている。
【特許文献１】特開平１０−１９８５７１号公報
【特許文献２】特開２００３−３３０７４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来技術によるプログラムのアップデートは、更新プログラムを供給するカードやサーバと、端末のアップデートモジュールとが相互認証を行い、お互い正しいと認識しあった後、更新プログラムを渡す構成となっている。この仕組みは端末側のアップデートモジュールの信頼性に依存した方法である。
しかし、従来技術では、端末がハッキングされている場合、アップデートモジュールの信頼性が損なわれている可能性があるので、確実なプログラムのアップデートを保証することは困難である。例えば、アップデートモジュールもソフトウェアで構成されている場合、アップデートモジュール自身もハッキングされている可能性がある。この場合、アップデートモジュール自体が改竄されていると、本来のアップデート処理自体を回避したり、アップデートが必要であるか否かの判断を誤らせることができるので、ソフトウェアのアップデートを強制することができなくなる。
【０００６】
アップデートモジュール自身のハッキングを防止するためには、プログラム更新システムに対して更新対象のプログラムより強固な耐タンパシールドが必要となる。従来技術では耐タンパ化の例として、プログラム更新システムをハードウェアによりすべて構成する方法が開示されているが、プログラム更新システムはインターネットとの通信等も含むので大規模なシステムとなることが多く、全体をハードウェアとすることは事実上困難である。
【０００７】
そこで本発明は、上記の問題点に鑑みなされたものであって、プログラムのアップデートモジュールが信頼できない状態であっても、プログラムアップデートを確実に行わせることが可能な情報処理システム、情報記録装置、情報処理装置、プログラム更新方法、コンピュータプログラム及び集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明は、情報処理装置と、前記情報処理装置に脱着可能な可搬型の情報記録装置とから構成される情報処理システムであって、前記情報処理装置は、当該情報処理装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムを格納している第１格納手段と、ロードされるときに前記動作プログラムの特徴を示す特徴量を測定する測定手段と、前記情報記録装置に対して、秘密情報を要求する要求手段と、前記情報記録装置における前記動作プログラムの正当性の確認結果に応じて、秘密情報及び更新プログラムのいずれか一方を受信する受信手段と、更新プログラムを受信した場合に、受信した更新プログラムに従って、前記第１格納手段に格納されている前記動作プログラムを更新する更新手段とを備え、前記情報記録装置は、秘密情報を安全に保持する情報保持手段と、前記動作プログラムの更新のための更新プログラムを格納している第２格納手段と、前記情報処理装置から秘密情報の要求を受信する受信手段と、前記要求を受信すると、前記測定手段により測定された前記特徴量を用いて、前記動作プログラムの正当性を判断する判断手段と、正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記情報処理装置へ出力し、正当でないと確認された場合、前記第２格納手段に格納されている前記更新プログラムを前記情報処理装置へ出力する出力手段とを備える。
【０００９】
また、前記情報記録装置は、さらに、過去に接続された情報処理装置を識別する装置識別子を格納している識別子格納手段と、サーバ装置から、ネットワーク及び当該ネットワークに接続された前記情報処理装置を介して、前記識別子格納手段に格納されている装置識別子に関連付けられている前記更新プログラムを取得し、取得した前記更新プログラムを前記第２格納手段に書き込む第１取得手段と、正当性情報格納手段と、前記サーバ装置から、ネットワーク及び当該ネットワークに接続された前記情報処理装置を介して、前記第２格納手段に格納されている前記更新プログラムに関連付けられ、前記動作プログラムの正当性を確認するための正当性確認情報を取得し、取得した正当性確認情報を前記正当性情報格納手段に書き込む第２取得手段とを含み、前記判断手段は、前記正当性情報格納手段に書き込まれている前記正当性確認情報に基づいて、前記動作プログラムの正当性を判断するとしてもよい。
【発明の効果】
【００１０】
これらの構成によると、情報処理装置が、受信した更新プログラムにより動作プログラムを更新しなければ、情報処理装置が所望する秘密情報の取得ができないので、情報処理装置に対して、動作プログラムの更新を強制することができる。
こうして、アップデートモジュール自体の信頼性に依存することなく、確実にプログラムをアップデートすることが可能となる。
【００１１】
また、リボークされた情報処理装置を動作不能にすることなく、不正な情報処理装置をプログラムのアップデートにより正当な情報処理装置にすることができるので、継続して当該情報処理装置の使用を許可できる。こうして、リボークして動作不能にすることによるユーザへの被害を防止することができる。
また、可搬型の情報記録装置によりプログラムをアップデートしているので、インターネットに接続できない情報処理装置であっても、プログラムのアップデートが可能となり、情報処理装置への適用範囲を拡大することができる。
【００１２】
また、本発明は、情報処理装置に脱着可能な可搬型の情報記録装置であって、秘密情報を安全に保持する情報保持手段と、前記情報処理装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムの更新のための更新プログラムを格納しているプログラム格納手段と、前記情報処理装置から秘密情報の要求を受信する受信手段と、前記要求を受信すると、前記情報処理装置から取得し、前記動作プログラムの特徴を示す測定特徴量を用いて、前記動作プログラムの正当性を判断する判断手段と、正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記情報処理装置へ出力し、正当でないと確認された場合、前記プログラム格納手段に格納されている前記更新プログラムを前記情報処理装置へ出力する出力手段とを備える。
【００１３】
この構成によると、情報処理装置が、受信した更新プログラムにより動作プログラムを更新しなければ、情報処理装置が所望する秘密情報の取得ができないので、情報処理装置に対して、動作プログラムの更新を強制することができる。
こうして、アップデートモジュール自体の信頼性に依存することなく、確実にプログラムをアップデートすることが可能となる。
【００１４】
ここで、前記情報記録装置は、さらに、正当な動作プログラムの特徴を示す正規特徴量を格納する正規情報格納手段を含み、前記判断手段は、前記情報処理装置から取得した測定特徴量と前記正規特徴量とを比較することにより、前記動作プログラムの正当性を判断してもよい。
この構成によれば、情報記録装置は、情報処理装置に格納されている動作プログラムが正当であるか否かを、動作プログラムの特徴を示す特徴量に基づいて確認することができる。仮に、情報処理装置に格納されている動作プログラムが不正に改ざんされているなら、不正に改ざんされた動作プログラムから得られる測定特徴量と、正規特徴量とは一致しないので、動作プログラムの改ざんを確実に検出することができる。
【００１５】
ここで、前記プログラム格納手段は、少なくとも過去に接続された１台以上の情報処理装置を識別する装置識別子と、前記情報処理装置のそれぞれに向けた更新プログラムとを対応付けて格納し、前記出力手段は、前記要求の発信元である前記情報処理装置を識別する装置識別子に対応する情報処理装置向けの更新プログラムを出力してもよい。
この構成によれば、各情報処理装置に対して適切な更新プログラムを出力することができる。
【００１６】
ここで、前記受信手段は、さらに、前記要求と共に前記要求の発信元である前記情報処理装置を識別する装置識別子を取得し、前記プログラム格納手段は、過去に前記要求を行った１以上の情報処理装置を識別する装置識別子と、前記情報処理装置のそれぞれに向けた更新プログラムとを対応付けて格納し、前記出力手段は、前記要求とともに受信した装置識別子に対応する情報処理装置向けの更新プログラムを出力してもよい。
【００１７】
この構成によれば、情報記録装置が複数の情報処理装置で共有される場合でも、各情報処理装置に対して適切な更新プログラムを出力することができる。
ここで、前記プログラム格納手段は、さらに、新たな情報処理装置からの前記要求を受信すると、新たな情報処理装置を識別する装置識別子を追加して格納してもよい。
この構成によれば、情報記録装置は、過去に要求を受け付けた情報処理装置の全てについて、更新プログラムの管理を行うことができる。
【００１８】
ここで、前記情報記録装置は、さらに、前記更新プログラムを提供するサーバ装置に対して、前記プログラム格納手段に格納されている情報処理装置を識別する装置識別子を送信する送信手段と、前記サーバ装置から、送信した前記装置識別子に対応する情報処理装置用の更新プログラムを取得する取得手段とを含み、前記プログラム格納手段は、さらに、取得した前記更新プログラムを前記装置識別子と対応付けて記録してもよい。
【００１９】
この構成によれば、情報記録装置は、自身が管理している情報処理装置について、更新プログラムのバージョンアップがあった場合、バージョンアップ後の更新プログラムを取
得して記録することができる。
また、本発明は、可搬型の情報記録装置が装着される情報処理装置であって、当該情報処理装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムを格納している第１格納手段と、ロードされるときに前記動作プログラムの特徴を示す特徴量を測定する測定手段と、前記情報記録装置に対して、秘密情報を要求する要求手段と、前記情報記録装置における前記動作プログラムの正当性の確認結果に応じて、秘密情報及び更新プログラムのいずれか一方を受信する受信手段と、更新プログラムを受信した場合に、受信した更新プログラムに従って、前記第１格納手段に格納されている前記動作プログラムを更新する更新手段とを備える。
【００２０】
この構成によると、情報処理装置が、受信した更新プログラムにより動作プログラムを更新しなければ、情報処理装置が所望する秘密情報の取得ができないので、情報処理装置に対して、動作プログラムの更新を強制することができる。
ここで、前記測定手段は、耐タンパ化により保護されているとしてもよい。
この構成によれば、不正解析者による特徴情報の改ざんを防止できるので、情報処理装置を動作させているプログラムが不正なものである場合に、より確実に更新プログラムへのアップデートを行わせることができる。また、特徴情報算出手段さえ保護していれば、上述した不正を防止できるので、装置全体を耐タンパ化する場合に比べて、低コストでプログラムのアップデートを強制することができる。
【００２１】
ここで、サーバ装置と、ネットワークを介して前記サーバ装置に接続可能な第１情報処理装置と、前記サーバ装置に対する前記ネットワークを介した接続機能を有さない第２情報処理装置と、各情報処理装置に脱着可能な可搬型の情報記録装置とから構成される情報処理システムであって、前記第２情報処理装置は、無効化されており、前記サーバ装置は、前記第２情報処理装置を動作対象とする動作プログラムの更新のための更新プログラムを記憶しており、前記情報記録装置が前記第１情報処理装置に装着され、前記第１情報処理装置は、前記サーバ装置からネットワークを介して前記更新プログラムを取得し、取得した前記更新プログラムを前記情報記録装置へ出力し、前記情報記録装置が前記第２情報処理装置に装着され、前記情報記録装置は、秘密情報を安全に保持する情報保持手段と、前記第１情報処理装置から前記更新プログラムを受信して格納する第１格納手段と、前記第２情報処理装置から秘密情報の要求を受信する受信手段と、前記要求を受信すると、前記第２情報処理装置において測定された特徴量を用いて、前記第２情報処理装置に格納されている動作プログラムの正当性を判断する判断手段と、正当であると確認された場合、前記情報保持手段に保持されている前記秘密情報を前記第２情報処理装置へ出力し、正当でないと確認された場合、前記第２格納手段に格納されている前記更新プログラムを前記第２情報処理装置へ出力する出力手段とを備え、前記第２情報処理装置は、当該第２情報処理装置を動作対象とし、複数のコンピュータ命令を含む前記動作プログラムを格納している第２格納手段と、ロードされるときに前記動作プログラムの特徴を示す特徴量を測定する測定手段と、前記情報記録装置に対して、秘密情報を要求する要求手段と、前記情報記録装置における前記動作プログラムの正当性の確認結果に応じて、秘密情報及び更新プログラムのいずれか一方を受信する受信手段と、更新プログラムを受信した場合に、受信した更新プログラムに従って、前記第２格納手段に格納されている前記動作プログラムを更新する更新手段とを備えるとしてもよい。
【００２２】
この構成によると、ネットワークに接続できない情報処理装置であっても、プログラムのアップデートが可能となり、情報処理装置への適用範囲を拡大することができる。
また、本発明を、上述した特徴を持つ情報記録装置および情報処理装置から構成される情報処理システム、プログラムアップデート方法、プログラム、および集積回路として実現した場合もそれぞれ同様の効果を発揮することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態について、図面を参照しながら説明する。
図１は、コンテンツ配布システム０１００の構成を示している。コンテンツ配布システム０１００は、サーバ０１０１、端末Ａ０１０２、端末Ｂ０１０３〜端末Ｍ０１０４、端末Ｎ０１０５〜端末Ｚ０１０６、カード０１０７から構成されており、サーバ０１０１は、端末Ａ０１０２、端末Ｂ０１０３、および端末Ｍ０１０４とインターネット０１０８を介して接続されている。端末Ｎ０１０５、端末Ｚ０１０６はサーバ０１０１と直接通信する手段を持っていない。端末Ａ０１０２、端末Ｂ０１０３〜端末Ｍ０１０４、および端末Ｎ０１０５〜端末Ｚ０１０６は、後述するようにカードインターフェースを備えており、カード０１０７を介してデータのやり取りが可能となっている。
【００２４】
なお、図１ではサーバ０１０１と接続されている端末として、端末Ａ０１０２、端末Ｂ０１０３、端末Ｍ０１０４しか図示していないが、端末Ａ０１０２等と同一の構成を持つ１台以上の端末が、さらに、コンテンツ配布システム０１００に存在してもよい。また図１に示した台数よりも少ない台数だけ存在していてもよい。以後、端末Ｂ０１０３、端末Ｍ０１０４は端末Ａ０１０２と同様の構成であるため、必要な場合を除いて端末Ａ０１０２以外の端末についての説明は省略する。また、図１では、サーバ０１０１と接続されて
いない端末として、端末Ｎ０１０５、端末Ｚ０１０６しか図示していないが、端末Ｎ１０５または端末Ｚ０１０６と同一の構成を含む１台以上の端末が、さらに、コンテンツ配布システム０１００に存在してもよい。また、図１に示した台数よりも少ない台数だけ存在していてもよい。以後、端末Ｚ０１０６は端末Ｎ０１０５と同様の構成であるため、必要な場合を除いて端末Ｎ０１０５以外の端末についての説明は省略する。
【００２５】
端末Ａ０１０２は、インターネット０１０８を介してサーバ０１０１と通信し、音楽や映画などのコンテンツをダウンロードする機能とダウンロードしたコンテンツを再生する機能を有している。ここで、コンテンツは著作権保護されており暗号化された形で端末Ａ０１０２にダウンロードされる。
カード０１０７は、端末Ａ０１０２、およびインターネット０１０８を介してサーバ０１０１と通信し、コンテンツを暗号化した鍵を取得し、端末Ａ０１０２の依頼に基づいてコンテンツを暗号化した鍵を端末Ａ０１０２に渡す。ここで、カード０１０７はコンテンツを暗号化した鍵を渡す際に、端末Ａ０１０２が正当な端末かどうかを確かめて、正当な端末でなければ鍵を出力しないよう構成されている。具体的には、公知の相互認証等により、相手の正当性を確認した上で鍵を渡している。
【００２６】
図２は、端末Ａ０１０２の構成を示している。なお、端末Ｂ０１０３、端末Ｍ０１０４も同様の構成をしている。端末Ａ０１０２は、プロセッサ０２０１、ＲＡＭ０２０２、ブートコード０２０３、カードインターフェース０２０４、通信部０２０５、コンテンツ格納部０２０６、セキュアモジュール０２０７、プログラム格納部０２０８で構成されており、バス０２１３で相互に接続されている。プログラム格納部０２０８には、オペレーティングシステム０２０９、権利購入制御プログラム０２１０、再生制御プログラム０２１１、プログラム証明書０２１２が格納されている。
【００２７】
プロセッサ０２０１は、ブートコード０２０３、およびＲＡＭ０２０２にロードされているプログラムを実行し、端末Ａ０１０２の各種処理を行う。
ＲＡＭ０２０２は、プロセッサ０２０１で実行するプログラムがロードされる。ロードされるプログラムはプログラム格納部０２０８に格納されている。
ブートコード０２０３は、端末Ａ０１０２がリセットされた後、プロセッサ０２０１が初めに実行するコード（ブートコード）が格納されている。ブートコード０２０３は、プログラム格納部０２０８に格納されているオペレーティングシステム０２０９をＲＡＭ０２０２へ展開する。
【００２８】
カードインターフェース０２０４は、カード０１０７と端末Ａ０１０２を接続するインターフェースである。プロセッサ０２０１で動作するプログラムは、カードインターフェース０２０４と通信することで、カード０１０７と通信することができる。端末Ａ０１０２で動作するプログラムはカード０１０７と通信する時には常にカードインターフェース０２０４を使用する。以下、端末Ａ０１０２で動作するプログラムとカード０１０７の通信について記述する場合はカードインターフェース０２０４の記述は省略する。
【００２９】
通信部０２０５は、インターネット０１０８と端末Ａ０１０２を接続するインターフェースである。プロセッサ０２０１で動作するプログラムは、通信部０２０５と通信することで、インターネット０１０８を介してサーバ０１０１と通信することができる。
コンテンツ格納部０２０６は、端末Ａ０１０２がサーバ０１０１からダウンロードしたコンテンツを格納しておく場所である。
【００３０】
セキュアモジュール０２０７は、ＴＣＧ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ）で規格化されているＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）と同様の機能を有するデバイスである。ＴＰＭの詳細な仕様については、ＴＣＧのホームページ＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｔｒａｓｔｅｄｃｏｍｐｕｔｉｎｇｇｒｏｕｐ．ｏｒｇ＞で公開されている。
【００３１】
セキュアモジュール０２０７は、ＰＣＲ（Ｐｌａｔｆｏｒｍ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｇｉｓｔｏｒ）と呼ばれるレジスタを含んでおり、そのレジスタには端末Ａ０１０２のソフトウェア構成に依存する値が格納される。セキュアモジュール０２０７は、ＰＣＲを更新するコマンドを提供しており、そのコマンドが実行されると現在のＰＣＲの値とそのコマンドの引数を結合し、その結合した値に対して一方向性関数を施した結果でＰＣＲが更新される。以下、このコマンドをＰＣＲ拡張コマンドと呼ぶ。
【００３２】
セキュアモジュール０２０７は、セキュアモジュール０２０７内に外部に取り出されない形で保持されている秘密鍵を用いて、ＰＣＲの値に対し署名を施すサービスを提供することができる。このサービスはＡｔｔｅｓｔａｔｉｏｎと呼ばれる。例えば、端末Ａ０１０２内で動作するプログラムがセキュアモジュール０２０７のＡｔｔｅｓｔａｔｉｏｎサービスを用い、署名された現在のＰＣＲ値を取得してサーバ０１０１に送信する。この場合、サーバ０１０１は、認証局から得たセキュアモジュール０２０７の公開鍵を用いて署名検証することによって、送信された値がセキュアモジュール０２０７で生成されたＰＣＲの値であることを確かめることができる。なお、セキュアモジュール０２０７には耐タンパ処理が施されており、セキュアモジュール０２０７内で実行されるＰＣＲ拡張コマンド処理、およびＡｔｔｅｓｔａｔｉｏｎ処理を不正に変更することはできないようになっている。
【００３３】
プログラム格納部０２０８は、端末Ａ０１０２で動作するプログラムを格納する場所であり、オペレーティングシステム０２０９、権利購入制御プログラム０２１０、再生制御プログラム０２１１、プログラム証明書０２１２を格納している。
オペレーティングシステム０２０９は、一般的な端末Ａ０１０２の基盤ソフトウェアであり、オペレーティングシステム０２０９上で動作するアプリケーションにサービスを提供する。オペレーティングシステム０２０９は、プログラム格納部０２０８内に格納されているアプリケーションをＲＡＭ０２０２にロードする。
【００３４】
続いて、各プログラムが行う処理について説明する。
図３は権利購入制御プログラム０２１０の動作フローを示している。権利購入制御プログラム０２１０はオペレーティングシステム０２０９上で動作するアプリケーションである。権利購入制御プログラム０２１０は、端末Ａ０１０２において、サーバ０１０１から提供されるコンテンツの権利の取得をカード０１０７に依頼する処理とそのコンテンツのダウンロードを行う。以下、この処理の詳細を説明する。
【００３５】
権利購入制御プログラム０２１０は、オペレーティングシステム０２０９にローディングされ制御権を取得すると、まず、サーバ０１０１に問い合わせて購入可能なコンテンツのリストを取得する。そのリストにはコンテンツを識別できる情報、例えば、コンテンツのＩＤやコンテンツのタイトル、コンテンツの概要等が含まれている。次に、そのリストを端末Ａ０１０２のユーザに提示し、購入するコンテンツを選択させ、選択したコンテンツのＩＤおよびそのコンテンツを購入する端末を識別する端末ＩＤ（端末Ａ０１０２の端末ＩＤ）を含むコンテンツ購入要求をカードＩ／Ｆ０２０４を介して、カード０１０７に
送信する（ステップＳ０３０１）。
【００３６】
次に、権利購入制御プログラム０２１０は、カード０１０７に購入依頼したコンテンツのＩＤをサーバ０１０１に送信し、該当するコンテンツをサーバ０１０１からダウンロードし、コンテンツ格納部０２０６に格納する。ここで、ダウンロードするコンテンツは暗号化されているので、コンテンツ格納部から不正にコピーできたとしても著作権は保護される（ステップＳ０３０２）。
【００３７】
なお、端末Ａ０１０２は、端末Ｎ０１０５等のインターネット０１０８に接続されていない端末のためにコンテンツを購入する場合がある。この場合、コンテンツ購入要求に含ませる端末ＩＤは、端末Ｎ０１０５等の端末ＩＤとなる。さらに、コンテンツを端末Ｎ０１０５等に渡すため、ステップＳ０３０２の後にコンテンツをカード０１０７に移動するステップが追加で実行される。
【００３８】
図４は再生制御プログラム０２１１の動作フローを示している。再生制御プログラム０２１１はオペレーティングシステム０２０９上で動作するアプリケーションである。再生制御プログラム０２１１は、再生するコンテンツを暗号化している鍵をカード０１０７から取得し、その鍵でコンテンツを復号化してコンテンツを再生する。また、カードから端末Ａ０１０２内のプログラムの更新を依頼された場合は、プログラム格納部０２０８に格納されているプログラムを更新する。以下、再生制御プログラム０２１１の処理の詳細を述べる。
【００３９】
再生制御プログラム０２１１は、オペレーティングシステム０２０９にローディングされ制御権を取得すると、コンテンツ格納部０２０６に格納されているコンテンツのリストを取得し、カード０１０７に問い合わせて再生可能なコンテンツのリストを作成する。カード０１０７は、カード０１０７に格納されているコンテンツを暗号化している鍵とその鍵に対応するコンテンツＩＤを格納しており、再生制御プログラム０２１１は、カード０１０７に格納されているコンテンツを暗号化している鍵に対応するコンテンツＩＤのリストを取得して、コンテンツ格納部０２０６に格納されているコンテンツＩＤのリストと比較して再生可能なコンテンツのリストを作成する。このリストは例えばカードに鍵が格納されているコンテンツのリストとなる（ステップＳ０４０１）。
【００４０】
なお、再生制御プログラム０２１１は、カード０１０７に格納されているコンテンツＩＤのリストもカード０１０７から取得し、再生可能なコンテンツのリストに追加することができる。この追加リストは、端末Ａ０１０２内に格納されているコンテンツに対する再生可能なコンテンツのリストの作成手順と同様の手順で作成される。この追加リストも含めたリストは、カードを含む端末上に存在する鍵に対応したコンテンツのリストとなり、（コンテンツ格納部０２０６に格納されているか否かは問わず）その端末で再生できるコンテンツの一覧を示すリストとなる。
【００４１】
再生制御プログラム０２１１は、ステップＳ０４０１で生成した再生可能なコンテンツのリストを端末Ａ０１０２のユーザに提示し、再生したいコンテンツを選択させ、そのコンテンツのＩＤを取得する。再生制御プログラム０２１１は、コンテンツＩＤを含む鍵出力依頼情報をカード０１０７に送信し、対応するコンテンツを暗号化している鍵の出力を依頼する（ステップＳ０４０２）。鍵出力依頼情報は、コンテンツＩＤ、端末ＩＤ、プログラム証明書、署名された現在のＰＣＲ値を含む。ここで、署名された現在のＰＣＲ値は、再生制御プログラム０２１１がセキュアモジュールに対してＡｔｔｅｓｔａｔｉｏｎサービスを用いて取得したものであり、そのＰＣＲの値は現在、端末で動作しているソフトウェアに依存する値となっている。
【００４２】
次に、再生制御プログラム０２１１は、カード０１０７に依頼した鍵が出力されたかどうかをカード０１０７に問い合わせる。（ステップＳ０４０３）もし、鍵が出力されているのであれば（ステップＳ０４０３でＹＥＳ）、その鍵を用いてコンテンツ復号処理（ステップＳ０４０４）を行う。もし、鍵が出力されていないのであれば（ステップＳ０４０３でＮＯ）、カード０１０７からプログラムの更新依頼があるかどうかを確かめる処理（ステップＳ０４０６）を行う。ここで、プログラムの更新依頼は、コンテンツの処理プログラムにセキュリティホール等が発見されているとカード０１０７が判断した場合に、鍵を渡す前に、そのプログラムをアップデートすることを要求する依頼である。
【００４３】
再生制御プログラム０２１１は、鍵が出力されているのであれば（ステップＳ０４０３でＹＥＳ）、カード０１０７から鍵を取得し、再生すべきコンテンツをコンテンツ格納部０２０６、もしくはカード０１０７から取得して、コンテンツを復号化する（ステップＳ０４０４）。
再生制御プログラム０２１１は、コンテンツが復号化されるとそのコンテンツを再生する。（ステップＳ０４０５）再生制御プログラム０２１１は、復号化されたコンテンツの種別に応じた再生を行う。以降の再生の手順は一般的な再生方法であるので、説明は省略する。
【００４４】
再生制御プログラム０２１１は、鍵が出力されていないのであれば（ステップＳ０４０３でＮＯ）、カード０１０７にプログラムの更新依頼があるかどうかを問い合わせる。もし、プログラムの更新依頼があれば（ステップＳ０４０６でＹＥＳ）、カードから更新プログラムと後述する正規ＰＣＲ値を取得し、プログラム格納部０２０８のプログラムと後述するプログラム証明書０２１２を更新する（ステップＳ０４０７）。ここで、更新対象のプログラムとそのプログラムのプログラム証明書０２１２は、サーバ０１０１から取得され更新される。その後、再生制御プログラム０２１１は、端末Ａ０１０２を再起動するためにシステムリセット依頼をオペレーティングシステム０２０９に送信する（ステップＳ０４０８）。
【００４５】
もし、プログラムの更新依頼がなければ（ステップＳ０４０６でＮＯ）、再生制御プログラム０２１１は、処理を終了する。
以上が再生制御プログラム０２１１が行う処理の説明である。以下、プログラム格納部０２０８が格納している情報の説明に戻る。
プログラム証明書０２１２は、セキュアモジュール０２０７のＰＣＲの値に対して端末Ａ０１０２を製造したメーカのみ知る秘密鍵で署名したデータである。署名するＰＣＲの値は、端末Ａ０１０２が起動し、オペレーティングシステム０２０９や各種アプリケーションがローディングされた後のＰＣＲの値である。この時、メーカはオペレーティングシステム０２０９や各種アプリケーションが各種著作権保護規格の実装要件を満たしているかどうかを確認した後、署名する。ここで、署名に用いる秘密鍵は端末Ａ０１０２には搭載されていないため、プログラム証明書０２１２は端末Ａ０１０２では生成できない。プログラム証明書０２１２は、例えばメーカの工場で生成される。
【００４６】
ＰＣＲの値は、端末Ａ０１０２のソフトウェア構成に依存させるために、端末Ａ０１０２上でローディングされるプログラムのハッシュ値を引数としてＰＣＲ拡張コマンドを実行することで更新される。プログラムのロード時に必ずロード対象のプログラムのハッシュ値を計算し、ＰＣＲ拡張コマンドを用いて、そのハッシュ値でＰＣＲを更新していけば、ＰＣＲ値を端末Ａ０１０２のソフトウェア構成に常に依存させることができる。
【００４７】
図５は、セキュアモジュール０２０７内のＰＣＲを更新し、ＰＣＲに端末Ａ０１０２のソフトウェア構成に依存する値を格納する処理のフローを示している。これは、オペレーティングシステム０２０９をローディングするブートコード０２０３、および各種アプリケーションプログラムをローディングするオペレーティングシステム０２０９の動作に共通して含まれる。これは、ブートコード０２０３はオペレーティングシステム０２０９を読み込むことで端末Ａ０１０２内のソフトウェア構成を変更し、オペレーティングシステム０２０９はアプリケーションプログラムを読み込むことで端末Ａ０１０２内のソフトウェア構成を変更するからである。
【００４８】
以下の説明では、別のプログラムを呼び出す側（前者におけるブートコード０２０３と、後者におけるオペレーティングシステム０２０９）をロードするプログラムと、呼び出される側のプログラム（前者におけるオペレーティングシステム０２０９、後者におけるアプリケーションプログラム）をロード対象プログラムと呼ぶ。
ロードするプログラムは、まず、ロード対象プログラムのハッシュ値をハッシュ関数アルゴリズムで計算する（ステップＳ０５０１）。次に、このハッシュ値を引数として、ＰＣＲ拡張コマンドを実行し、セキュアモジュール０２０７内のＰＣＲの値を更新する（ステップＳ０５０２）。ロードするプログラムは、ＰＣＲ更新処理（ステップＳ０５０２）終了後、ロード対象プログラムをＲＡＭ０２０２に展開する（ステップＳ０５０３）。最後に、ロードするプログラムはＲＡＭ０２０２にロードしたプログラムに分岐する（ステップＳ０５０４）。
【００４９】
端末Ａ０１０２は、電源投入後、もしくはリセット解除後、すなわち端末起動時、オペレーティングシステム０２０９や各種アプリケーションをＲＡＭ０２０２にロードしていく。端末Ａ０１０２は、プログラムをロードする時、図５で説明したようにＰＣＲの更新を行う。
図６は、端末Ａ０１０２の起動時の動作を表すフローチャートである。
【００５０】
電源投入後、もしくはリセット解除後、プロセッサ０２０１は、ブートコード０２０３を実行する（ステップＳ０６０１）。ブートコード０２０３は、端末Ａ０１０２のハードウェアの初期設定を行った後、ブートコード０２０３自身のハッシュ値を計算し、このハッシュ値をＰＣＲ拡張コマンドの引数として、セキュアモジュール０２０７のＰＣＲを更新する。ここで、セキュアモジュール０２０７のＰＣＲは、電源投入、もしくはリセット解除後には初期化されているものとする。
【００５１】
次にブートコード０２０３は、オペレーティングシステム０２０９をＲＡＭ０２０２にローディングする。ブートコード０２０３は、オペレーティングシステム０２０９をローディングする際、図５に示す手順で、オペレーティングシステム０２０９のハッシュ値を計算し、セキュアモジュール０２０７のＰＣＲを更新する。その後、プロセッサ０２０１は、オペレーティングシステム０２０９を実行し、オペレーティングシステム０２０９の初期化を行う。
【００５２】
オペレーティングシステム０２０９は、その後、各種アプリケーションのローディングを行う（ステップＳ０６０３）。各種アプリケーションがローディングされる際、図５に示す手順で、各種アプリケーションのハッシュ値を計算し、セキュアモジュール０２０７のＰＣＲを更新する。
その後、端末Ａ０１０２は、ユーザからの入力を待ち、その入力に応じたアプリケーションプログラムの処理を実行する（Ｓ０６０４）。
【００５３】
このように、端末Ａ０１０２は、電源投入後、もしくはリセット後、ブートコード０２０３を含む端末Ａ０１０２で動作するプログラムのハッシュ値でＰＣＲ拡張コマンドを用い、セキュアモジュール０２０７のＰＣＲを更新していく。その結果、セキュアモジュール０２０７のＰＣＲは、端末Ａ０１０２で動作しているプログラムに依存した値となる。
以上で端末Ａ０１０２の構成の説明を終わる。続いて、端末Ｎ０１０５の構成の説明に移る。
【００５４】
図７は、端末Ｎ０１０５の構成を示している。なお、端末Ｚ０１０６も同様の構成をしている。端末Ｎ０１０５は、プロセッサ０７０１、ＲＡＭ０７０２、ブートコード０７０３、カードインターフェース０７０４、コンテンツ格納部０７０６、セキュアモジュール０７０７、プログラム格納部０７０８で構成されており、これらの要素はバス０７１３で相互に接続されている。プログラム格納部０７０８には、オペレーティングシステム０７０９、再生制御プログラム０７１１、プログラム証明書０７１２が格納されている。
【００５５】
端末Ｎ０１０５のこれらの構成要素は、図２に示す端末Ａ０１０２の構成要素と同一の機能を有するため説明は省略する。ただし、端末Ｎ０１０５には、端末Ａ０１０２の通信部０２０５、権利購入制御プログラム０２１０に相当する構成要素は存在しない。
以上で端末Ｎ０１０５の構成の説明を終わる。続いて、サーバ０１０１の構成の説明を行う。
【００５６】
図１２は、サーバ０１０１の構成を示している。サーバ０１０１は、通信部１２０１、ＣＲＬデータベース１２０２、ＣＲＬ管理部１２０３、権利管理部１２０４で構成されている。ＣＲＬデータベース１２０２はＣＲＬ管理部１２０３と接続されている。また、ＣＲＬ管理部１２０３、権利管理部１２０４は、通信部１２０１と接続されている。
通信部１２０１は、インターネット０１０８と接続されており、端末Ａ０１０２〜端末Ｍ０１０４と通信を行う。ＣＲＬ管理部１２０３、および権利管理部１２０４は、この通信部１２０１を介して端末Ａ０１０２〜端末Ｍ０１０４、および端末Ａ０１０２等に接続されたカード０１０７と通信する。
【００５７】
ＣＲＬデータベース１２０２は、リボーク（無効化）されている端末の端末ＩＤ、その端末のリボークされた原因を取り除いた後の更新プログラム、およびその更新プログラムが端末上で実行された時のＰＣＲ値が格納されている。なお、端末のリボークは、一般的には、悪意の利用者の端末が特定できている場合にその端末を無効化することなど、プログラムの更新によって回復できない欠陥を持った端末の無効化も示すが、本実施の形態では、プログラムの更新によって回復できる欠陥を持った端末をリボーク対象として説明する。具体的には、本実施の形態では、セキュリティホールを持った古いソフトウェアを使用し続けている端末などが、リボーク対象としてＣＲＬデータベースに記録される。
【００５８】
図１３は、ＣＲＬデータベース１２０２の構成を示した図である。ＣＲＬデータベース１２０２は、ＣＲＬエントリＴ１３０１、Ｔ１３０２、Ｔ１３０３・・・から構成され、各ＣＲＬエントリには、端末ＩＤ、更新プログラム、および正規ＰＣＲ値のエリアが存在する。ＣＲＬデータベース１２０２は、リボークされている端末の情報により構成される。
【００５９】
端末ＩＤエリアには、リボークされている端末のＩＤが格納される。更新プログラムエリアには、リボークされた端末の更新プログラムが格納される。リボークされた原因がソ
フトウェアにある場合、この更新プログラムを用いて端末をアップデートすれば、端末は動作し続けることができる。このようなケースの具体例としては、ソフトウェアがハッキングされたことが判明した場合や、ソフトウェアにセキュリティホールが発見された場合などである。正規ＰＣＲ値エリアには、端末が更新プログラムエリアに格納されている更新プログラムでアップデートされ、正常に動作している時のＰＣＲ値が格納される。この正規ＰＣＲ値を用い、端末側でプログラムが正しくアップデートされているかどうかを確かめることができる。
【００６０】
ＣＲＬ管理部１２０３は、通信部１２０１および端末Ａ０１０２を介してカード０１０７と相互認証を行い正規のカードであることを確かめ、ＣＲＬ情報を通信部１２０１を介して提供する。より具体的には、ＣＲＬ管理部１２０３は、カード０１０７から送られてくる端末ＩＤがＣＲＬデータベース１２０２に存在するかどうか確かめ、存在していれば該当するエントリの更新プログラムおよび正規ＰＣＲ値をカード０１０７に提供する。
【００６１】
権利管理部１２０４は、コンテンツの権利情報を管理し、端末の要求に応じて課金処理を行い、コンテンツの権利情報を提供する。権利管理部１２０４は、カード０１０７と相互認証を行い、正当なカード０１０７であることを確かめた後に課金処理および権利情報の提供を行う。権利管理部１２０４は、通信部１２０１を介してインターネット０１０８と接続される。
【００６２】
以上でサーバ０１０１の構成の説明を終わる。続いて、カード０１０７の構成の説明に移る。
図８は、カード０１０７の構成を示している。カード０１０７は、プロセッサ０８０１、ＲＡＭ０８０２、ブートコード０８０３、端末Ｉ／Ｆ０８０４、ＣＲＬデータベース０８０５、コンテンツ格納部０８０７、プログラム格納部０８０８で構成されており、これらの構成要素はバス０８１３で相互に結合されている。また、カード０１０７は、耐タンパ性を有しており、カード内のプログラムやデータを容易に暴露されることは無いようになっている。
【００６３】
プロセッサ０８０１は、ブートコード０８０３、およびＲＡＭ０８０２にロードされているプログラムを実行し、カード０１０７の各種処理を行う。
ＲＡＭ０８０２は、プロセッサ０８０１で実行するプログラムがロードされる。ロードされるプログラムはプログラム格納部０８０８に格納されている。
ブートコード０８０３は、カード０１０７がリセットされた後、プロセッサ０８０１が初めに実行するコード（ブートコード）が格納されている。ブートコード０８０３は、プログラム格納部０８０８に格納されているオペレーティングシステム０８０９をＲＡＭ０８０２へ展開する。なお、カード０１０７は、端末に挿入され電力が供給された時点でリセットされる。
【００６４】
端末Ｉ／Ｆ０８０４は、カード０１０７と端末を接続するインターフェースである。プロセッサ０８０１で動作するプログラムは、端末Ｉ／Ｆ０８０４と通信することで、端末と通信することができる。カード０１０７で動作するプログラムは端末Ｉ／Ｆ０８０４と通信する時には常に端末Ｉ／Ｆ０８０４を使用する。以下、カード０１０７で動作するプログラムと端末との通信について記述する場合は端末Ｉ／Ｆ０８０４の記述は省略する。
【００６５】
図１４は、ＣＲＬデータベース０８０５の構成を示した図である。ＣＲＬデータベース０８０５は、ＣＲＬエントリＴ１４０１、Ｔ１４０２、Ｔ１４０３・・・から構成され、
各ＣＲＬエントリには、端末ＩＤ、更新プログラム、および正規ＰＣＲ値のエリアが存在する。
端末ＩＤエリアには、カード０１０７が取得した端末のＩＤが格納される。なお、端末ＩＤのエリアに書かれている「ＩＤ＿Ａ」「ＩＤ＿Ｂ」「ＩＤ＿Ｎ」はそれぞれ、端末Ａ１０２、端末Ｂ１０３、端末Ｎ１０５の端末ＩＤである。更新プログラムエリアには、該当する端末ＩＤを持つ端末がリボークされている場合、その端末の更新プログラムが格納される。正規ＰＣＲ値エリアには、端末が更新プログラムエリアに格納されている更新プログラムでアップデートされ、正常に動作している時のＰＣＲ値が格納される。なお、Ｔ１４０３では、更新プログラムがＮＵＬＬに、正規のＰＣＲ値が現状のＰＣＲ値となっている。このエントリはカード０１０７が鍵出力依頼情報を受け取った後の状態でありかつ更新プログラムを取得していない状態である。例えば、カード０１０７が初めて端末Ｎ０１０５に挿入されて、鍵出力依頼情報を受け取った直後の状態である。
【００６６】
コンテンツ格納部０８０７には、暗号化されたコンテンツとコンテンツの権利が格納される。このコンテンツは端末Ａ０１０２のようなサーバ０１０１に接続可能な端末でダウンロードされ、コンテンツ格納部０８０７に格納される。コンテンツ格納部０８０７は、端末Ｎ０１０５のようなインターネット０１０８を経由してサーバ０１０１にアクセスできない端末にコンテンツを供給するために用いられる。また、コンテンツの権利は、後述する権利購入プログラム０８１０によってサーバ０１０１から取得されてコンテンツ格納部０８０７に格納される。
【００６７】
コンテンツ格納部０８０７に格納されるコンテンツの権利は、カード０１０７の外部から直接アクセスすることはできず、後述する権利確認・鍵生成プログラム０８１１しかアクセスできないような実装となっている。具体的には、権利確認・鍵生成プログラム０８１１でしか復号できないように暗号化したりすることで、このような実装を行うことができる。
【００６８】
プログラム格納部０８０８は、オペレーティングシステム０８０９、権利購入プログラム０８１０、権利確認・鍵生成プログラム０８１１を格納している。
オペレーティングシステム０８０９は、一般的なカード０１０７の基盤ソフトウェアであり、オペレーティングシステム０８０９上で動作するアプリケーションにサービスを提供する。オペレーティングシステム０８０９は、プログラム格納部０８０８内に格納されているアプリケーションをＲＡＭ０２０２にロードする。
【００６９】
権利購入プログラム０８１０は、端末の権利購入制御プログラム０２１０から受け取ったコンテンツ購入要求に基づき、サーバ０１０１と端末の通信機能を用いて通信して権利の購入およびカード０１０７のＣＲＬデータベース０８０５の更新を行う。なお、コンテンツ購入要求には、端末Ａ０１０２の説明で述べたように、購入対象のコンテンツＩＤおよびそのコンテンツを購入する端末を識別する端末ＩＤが含まれている。
【００７０】
図９は、権利購入プログラム０８１０の動作を示すフローチャートである。権利購入プログラム０８１０は、コンテンツ購入要求に含まれる端末ＩＤを取得してＣＲＬデータベース０８０５に格納する（ステップＳ０９０１）。権利購入プログラム０８１０は、ＣＲＬデータベース０８０５を操作し、ＣＲＬエントリを作成して端末ＩＤエリアに取得した端末ＩＤを格納する。権利購入プログラム０８１０は、既に取得した端末ＩＤを端末ＩＤエリアに持つＣＲＬエントリが存在する場合にはＣＲＬエントリの作成は行わない。
【００７１】
権利購入プログラム０８１０は、サーバ０１０１と相互認証を行い、コンテンツの購入
処理およびコンテンツの権利の取得を行う（ステップＳ０９０２）。取得したコンテンツの権利は、コンテンツ格納部０８０７に安全に保存される。コンテンツの権利には、コンテンツの利用期限、利用回数などのコンテンツ利用条件、およびコンテンツを暗号化している鍵が格納されている。コンテンツの権利は暗号化された形でコンテンツ格納部０８０７に保持される。
【００７２】
次に、権利購入プログラム０８１０は、サーバ０１０１に問い合わせ、ＣＲＬデータベース０８０５の更新を行う（ステップＳ０９０３）。ここで、権利購入プログラム０８１０は、ＣＲＬデータベース０８０５のＣＲＬエントリに格納されているすべての端末ＩＤをサーバ０１０１に送信する。サーバ０１０１のＣＲＬ管理部１２０３は、受け取った端末ＩＤがＣＲＬデータベース１２０２に格納されているかどうかを確かめ、該当する端末ＩＤが存在する場合、その端末ＩＤが格納されているＣＲＬエントリ内の更新プログラムと正規ＰＣＲ値を権利購入プログラム０８１０に送信する。権利購入プログラム０８１０は、受け取った更新プログラムと正規ＰＣＲ値をＣＲＬデータベース０８０５の該当する端末ＩＤを含むＣＲＬエントリに格納する。
【００７３】
図１０は、権利確認・鍵生成プログラム０８１１の動作を示すフローチャートである。
権利確認・鍵生成プログラム０８１１は、端末がリボークされていないかどうか確認し、されていなければ、コンテンツ利用条件をチェックして再生可能な状態であればコンテンツの暗号鍵を端末に出力する。また、リボークされている場合、更新プログラムを端末に出力する。
【００７４】
権利確認・鍵生成プログラム０８１１は、鍵出力依頼情報に含まれる端末ＩＤを取得してＣＲＬデータベース０８０５に格納する（ステップＳ１００１）。権利確認・鍵生成プログラム０８１１は、ＣＲＬデータベース０８０５を操作し、ＣＲＬエントリを作成して端末ＩＤエリアに取得した端末ＩＤを格納する。権利確認・鍵生成プログラム０８１１は、既に取得した端末ＩＤを端末ＩＤエリアに持つＣＲＬエントリが存在する場合にはＣＲＬエントリの作成は行わない。権利購入プログラム０８１０にも同様の処理を行う機能があるが、このステップは端末Ｎ０１０５のようなインターネット０１０８に接続されない端末で端末ＩＤを取得するために使用される。端末Ｎ０１０５のような端末は、権利購入プログラム０８１０を実行することはないからである。なお、これらの端末については、端末Ａ０１０２等のインターネット０１０８に接続された機器がカード０１０７を用いて事前に購入したコンテンツを再生することを想定している。
【００７５】
権利確認・鍵生成プログラム０８１１は、鍵出力依頼情報に含まれるＡｔｔｅｓｔａｔｉｏｎサービスにより署名されたＰＣＲ値の署名検証を行う（ステップＳ１００２）。署名検証の結果、ＰＣＲ値が正規のものでないと判断された場合（ステップＳ１００２でＮＯ）、権利確認・鍵生成プログラム０８１１は処理を終了する。
署名検証の結果、ＰＣＲの値が正規のものであると確認された場合（ステップＳ１００２でＯＫ）、権利確認・鍵生成プログラム０８１１は、端末の正当性確認をＰＣＲ値を用いて行う（ステップＳ１００３）。権利確認・鍵生成プログラム０８１１は、ＣＲＬデータベース０８０５を参照し、鍵出力依頼情報に含まれる端末ＩＤと一致するＣＲＬエントリ内の正規ＰＣＲ値と、端末より取得したＰＣＲ値を比較する。比較結果がＯＫの場合（ステップＳ１００３でＯＫ）、権利確認処理に移る。比較結果がＮＧの場合（ステップＳ１００３でＮＧ）、プログラム更新処理に移る。ここで、比較結果がＯＫとはＰＣＲ値と正規ＰＣＲ値とが一致することを意味し、比較結果がＮＧとはＰＣＲ値と正規ＰＣＲ値とが一致しないことを意味する。
【００７６】
なお、鍵出力依頼情報に含まれる端末ＩＤと一致するＣＲＬエントリ内の正規ＰＣＲ値が存在しない場合、権利確認・鍵生成プログラム０８１１は、鍵出力依頼情報に含まれるプログラム証明書に含まれるＰＣＲ値を正規ＰＣＲ値の替わりに用いて端末の正当性を確認する。比較結果がＯＫの場合（ステップＳ１００３でＯＫ）、権利確認処理に移る。比較結果がＮＧの場合（ステップＳ１００３でＮＧ）、プログラム更新処理に移る。
【００７７】
ここで、権利確認・鍵生成プログラム０８１１は、正規ＰＣＲ値をサーバから取得していない場合に限って、鍵出力依頼情報に含まれるプログラム証明書中のＰＣＲ値をＣＲＬエントリに格納し、その後の端末の正当性確認に用いる。このプログラム証明書はメーカが出荷時に機器のソフトウェア構成を表すＰＣＲ値を含む状態で署名しているものであるため、実質的にはカード０１０７は端末が出荷時のソフトウェア構成であるかどうかの検証しかできないこととなる。しかしながら、後述するが、本実施の形態では、権利を購入する処理の中でＣＲＬエントリに格納されている端末ＩＤすべてについて更新プログラムが存在するかどうかの確認が行われ、更新プログラムが存在している場合は更新プログラムおよびその更新プログラムに対応した正規ＰＣＲがカード０１０７のＣＲＬエントリに格納される。そのため、一度端末ＩＤがＣＲＬエントリに格納され、権利購入処理が発生すると正規ＰＣＲ値を用いた端末の正当性検証が完全に機能することとなる。端末の利用者はコンテンツ配信サービスを受け続けるためには権利購入処理の実行が不可欠となるため、正規ＰＣＲ値の取得操作も避けることは困難である。
【００７８】
端末が正当であると判断された場合（ステップＳ１００３でＯＫ）、権利確認・鍵生成プログラム０８１１は、鍵出力依頼情報に含まれるコンテンツＩＤに該当するコンテンツの権利情報をコンテンツ格納部０８０７から取得し、利用条件をチェックする（ステップＳ１００４）。利用条件のチェックがＮＧの場合（ステップＳ１００４でＮＧ）、権利確認・鍵生成プログラム０８１１は処理を終了する。
【００７９】
利用条件のチェックがＯＫの場合（ステップＳ１００４でＯＫ）、権利確認・鍵生成プログラム０８１１は、コンテンツの権利情報に含まれるコンテンツ暗号鍵を端末に出力し、権利確認・鍵生成プログラムの処理を終了する（ステップＳ１００５）。
端末の正当性確認ステップで端末が正当でないと判断された場合（ステップＳ１００３でＮＧ）、権利確認・鍵生成プログラム０８１１は、ＣＲＬデータベース０８０５を参照し、鍵出力要求に含まれる端末ＩＤに該当するＣＲＬエントリの更新プログラムエリアに更新プログラムが存在するかどうかを確かめる（ステップＳ１００６）。更新プログラムが存在しない場合（ステップＳ１００６でＮＧ）、権利確認・鍵生成プログラム０８１１は、処理を終了する。
【００８０】
更新プログラムが存在する場合（ステップＳ１００６でＯＫ）、更新プログラムと正規ＰＣＲの値の出力処理を行う（ステップＳ１００７）。ここで、更新プログラムおよび正規ＰＣＲ値は、ＣＲＬデータベース０８０５内に格納されている鍵出力依頼情報に含まれる端末ＩＤに該当するＣＲＬエントリのものである。
次に、コンテンツ配布システム０１００の動作を説明する。
【００８１】
まず、インターネット０１０８を介してサーバ０１０１に接続されている端末（端末Ａ０１０２〜端末Ｍ０１０４）についての動作を説明する。以下、端末Ａ０１０２を例として説明するが、端末Ｂ０１０３〜端末Ｍ０１０４も同様の構成を備えているため、以下で説明するものと同様の動作を行う。
図１１は、端末Ａ０１０２においてカード０１０７を用いてサーバ０１０１から権利を購入し、サーバ０１０１から取得したコンテンツを端末Ａ０１０２で再生する場合のコンテンツ配布システム０１００の動作を示すフローチャートである。ここで、端末Ａ０１０２はリボークされており、サーバ０１０１のＣＲＬデータベース１２０２には、端末Ａ０１０２の端末ＩＤを含むＣＲＬエントリが存在していると仮定する。また、更新プログラムとそれに対応する正規ＰＣＲ値もＣＲＬデータベース１２０２の該当するＣＲＬエントリ内に格納されているとする。以下、図１１に示すフローチャートに従ってコンテンツ配布システム０１００の動作ついて説明する。
【００８２】
端末Ａ０１０２は、図６で説明した端末起動フローに基づき端末の起動処理を行う（ステップＳ１１０１）。その結果、端末０１０２のセキュアモジュール０２０７内のＰＣＲが端末０１０２で動作しているプログラムに依存する値となる。カード０１０７は、ブートコード０８０３を用いてオペレーティングシステム０８０９をＲＡＭ０８０２にローディングし、その後、オペレーティングシステム０８０９が各種アプリケーションを起動することでカード０１０７を利用可能な状態にする。
【００８３】
次に端末Ａ０１０２は、図３に示すように権利購入制御プログラム０２１０を用い、権利の購入処理をカード０１０７を用いて行う（ステップＳ１１０２）。カード０１０７は、図９に示すように権利購入プログラムを動作させ権利購入処理を行う。
ここで、端末Ａ０１０２はリボークされているので、権利購入プログラム０８１０は、サーバ０１０１から該当する更新プログラムと正規ＰＣＲ値をＣＲＬデータベース０８０５に格納する（ステップＳ１１０３）。
【００８４】
次に端末Ａ０１０２は、図４に示すように再生制御プログラム０２１１を動作させコンテンツの再生を行う。再生制御プログラム０２１１がカード０１０７に対し鍵の出力を依頼すると図１０に示すように権利確認・鍵生成プログラム０８１１が動作する。ここで、権利確認・鍵生成プログラム０８１１は、ＣＲＬデータベース０８０５内に端末Ａ０１０２の端末ＩＤを含むＣＲＬエントリがあり、また更新プログラムおよび正規ＰＣＲ値が存在するため、更新プログラムおよび正規ＰＣＲ値を端末Ａ０１０２に出力する。再生制御プログラム０２１１は、受け取った更新プログラムおよび正規ＰＣＲ値をそれぞれプログラム格納部０２０８に格納し、端末Ａ０１０２を再起動する（ステップＳ１１０４）。その後、端末Ａ０１０２は、ステップＳ１１０１と同様に起動する。
【００８５】
次に端末Ａ０１０２は、再生制御プログラム０２１１を動作させ、再度、カード０１０７の権利確認・鍵生成プログラム０８１１に鍵出力処理を依頼する。権利確認・鍵生成プログラム０８１１のステップＳ１００３で端末の正当性の確認が行われる（ステップＳ１１０５）。もし、正しくプログラムが更新されているならば（ステップＳ１１０５のＯＫ）、端末Ａ０１０２のセキュアモジュール０２０７から取得したＰＣＲ値とカード０１０７のＣＲＬデータベース０８０５に格納されているＰＣＲ値が一致することから、端末Ａ０１０２が正当であることが確認され、鍵が出力される。
【００８６】
一方、プログラムの更新処理を行う端末Ａ０１０２の再生制御プログラム０２１１が悪意のあるものから改竄され、プログラムの更新が行われなかった場合（ステップＳ１１０
５のＮＧ）、端末Ａ０１０２のセキュアモジュール０２０７から取得したＰＣＲ値とカード０１０７のＣＲＬデータベース０８０５に格納されているＰＣＲ値は一致することなく、端末Ａ０１０２は正当でないと判断され、端末Ａ０１０２の処理は終了する。
【００８７】
プログラムの更新が正しく行われた場合（ステップＳ１１０５でＯＫ）、カード０１０７からコンテンツの暗号鍵が出力される（ステップＳ１１０６）。
鍵が出力されると、再生制御プログラム０２１１は、コンテンツ格納部０２０６から暗号化されたコンテンツを取り出し、鍵を用いて復号化した後に再生する（ステップＳ１１０７）。
【００８８】
このように、ＰＣＲ値を用いてプログラムが正しく更新されたことを確認しないとコンテンツ暗号鍵を出力しない構成とすることで、もし、正しくアップデートされていないならば、端末の正当性チェックがＮＧとなり、コンテンツを暗号化した鍵は端末に出力されないので、コンテンツを正しく再生するためには、プログラムをアップデートすることが必要となる。また、アップデートしたプログラムが改竄された場合であっても端末の正当性チェックがＮＧとなり、コンテンツが再生できなくなるため、コンテンツの著作権を適切に保護することができる。
【００８９】
さらに、本発明では、従来技術のようにプログラムアップデート手段全体を耐タンパ実装することなく、プログラムのアップデートを強制することができる。つまり、上述の処理を実現するためには、カード０１０７とセキュアモジュール０２０７のみを耐タンパ実装していればよくなるため、耐タンパ実装すべき箇所を大きく削減することができる。
また、コンテンツを再生する権利を要求する際に、必ずカード０１０７が端末の正当性を確認し、ＮＧの場合に端末のプログラムをアップデートするので、コンテンツを再生しようとする限り、必ずアップデートが行われることとなる。これにより、リボークされた端末のソフトウェアのアップデートを確実に行うことができる。なお、本実施の形態では、コンテンツの再生時に上記の処理を行ったが、これを記録時等に変更することで、他のタイミングでもソフトウェアのアップデートを強制することができることは言うまでもない。
【００９０】
続いて、インターネット０１０８と接続できない端末（端末Ｎ０１０５〜Ｚ０１０６）についての動作の説明を行う。以下では端末Ｎ０１０５を例として説明するが、端末Ｚ０１０６も同様の構成を備えているため、以下で説明するものと同様の動作を行う。
図１５は、インターネット０１０８を介してサーバ０１０１に接続することができない端末Ｎ０１０５のプログラムを更新する場合のコンテンツ配布システム０１００の動作を示すフローチャートである。ここで、端末Ｎ０１０５はリボークされており、サーバ０１０１のＣＲＬデータベース１２０２には、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリが存在していると仮定する。また、更新プログラムとそれに対応する正規ＰＣＲ値もＣＲＬデータベース１２０２の該当するＣＲＬエントリ内に格納されているとする。ここで、端末Ｎ０１０５は、インターネット０１０８を介してサーバ０１０１に接続することができないため、権利の購入は端末Ａ０１０２を用いて行い、コンテンツとその権利はカード０１０７を用いることで端末Ｎ０１０５で利用可能となる。以下、図１５に示すフローチャートに従ってコンテンツ配布システム０１００の動作について説明する。
【００９１】
端末Ａ０１０２は、端末起動処理、および権利購入処理をそれぞれ図１１のステップＳ１１０１、およびステップＳ１１０２で説明したように行う。ここで、端末Ｎ０１０５で
もダウンロードしたコンテンツを再生できるようにするため、端末Ａ０１０２はカード０１０７のコンテンツ格納部０８０７にダウンロードしたコンテンツを格納する。
端末Ｎ０１０５は、図６で説明した端末起動フローに基づき端末の起動処理を行う（ステップＳ１５０３）。その結果、端末０１０５のセキュアモジュール０７０７内のＰＣＲが端末Ｎ０１０５で動作しているプログラムに依存する値となる。
【００９２】
次に、端末Ａ０１０２で購入したコンテンツを端末Ｎ０１０５で再生するためにカード０１０７を端末Ａ０１０２から端末Ｎ０１０５に移動させる。端末Ｎ０１０５は、再生制御プログラム０７１１を動作させ、カード０１０７に対し、コンテンツ鍵出力依頼を行う。カード０１０７は、図１０に示すような動作を行う権利確認・鍵生成プログラム０８１１を動作させる。ここで、権利確認・鍵生成プログラムは、ステップＳ１００１で端末Ｎ０１０５の端末ＩＤをＣＲＬデータベースに追加し、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリを作成する（ステップＳ１５０４）。
【００９３】
権利確認・鍵生成プログラム０８１１はその後、ステップＳ１００３で端末Ｎ０１０５の正当性確認を行う（ステップＳ１５０５）。ここで、権利確認・鍵生成プログラム０８１１は、ＣＲＬデータベース０８０５を参照し、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリを発見するが、正規ＰＣＲ値が存在しないため、端末Ｎ０１０５のプログラム証明書０７１２に格納されているＰＣＲ値を用いて端末の正当性を確認する。端末Ｎ０１０５のセキュアモジュール０７０７のＰＣＲ値とプログラム証明書０７１２のＰＣＲ値が一致しなければ（ステップＳ１５０５でＮＧ）、端末は正当で無いと判断し、権利確認・鍵生成プログラムは処理を終了する。
【００９４】
端末の正当性が確認された場合（ステップＳ１５０５でＯＫ）、権利確認・鍵生成プログラム０８１１は、権利確認処理Ｓ１００４を行った後、コンテンツ格納部０８０７に格納されているコンテンツの権利内のコンテンツ暗号化鍵を復号化し、端末Ｎ０１０５に出力する（ステップＳ１５０６）。
端末Ｎ０１０５の再生制御プログラム０７１１は、カード０１０７から受け取ったコンテンツ暗号鍵を用いて、カード０１０７のコンテンツ格納部０８０７に格納されているコンテンツを復号化した後、再生する（ステップＳ１５０７）。なお、カード０１０７のコンテンツ格納部０８０７から端末Ｎ０１０５のコンテンツ格納部０７０６にコンテンツを転送した後にコンテンツの再生を行っても良い。
【００９５】
次に、カード０１０７を用いて新たにコンテンツの権利を購入するために、カード０１０７は端末Ａ０１０２に挿入される。以下、端末Ａ０１０２においてコンテンツの権利を購入するフローについて説明する。
次に端末Ａ０１０２は、図３に示すように権利購入制御プログラム０２１０を用い、権利の購入処理をカード０１０７を用いて行う（ステップＳ１５０８）。カード０１０７は、図９に示すように権利購入プログラムを動作させ権利購入処理を行う。権利購入の際にダウンロードされたコンテンツは、カード０１０７のコンテンツ格納部０８０７に格納される。
【００９６】
ここで、端末Ｎ０１０５はリボークされているので、権利購入プログラム０８１０は、サーバ０１０１から該当する更新プログラムと正規ＰＣＲ値をＣＲＬデータベース０８０５に格納する（ステップＳ１５０９）。カード０１０７のＣＲＬデータベース０８０５には、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリが存在しているので、権利購入プログラム０８１０のＣＲＬ更新処理（ステップＳ０９０３）において、端末Ｎ１００５の端
末ＩＤでサーバ０１０１のＣＲＬデータベース１２０２が検索される。検索の結果、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリがＣＲＬデータベース１２０２に存在するので、権利購入プログラム０８１０は、そのＣＲＬエントリから端末Ｎ０１０５の更新プログラムと正規ＰＣＲ値をカード０１０７のＣＲＬデータベース０８０５に存在する端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリに格納する。
【００９７】
次に、カード０１０７は、端末Ｎ０１０５でコンテンツを再生するために端末Ｎ０１０５に挿入される。以下、端末Ｎ０１０５におけるコンテンツ再生動作について説明する。
端末Ｎ０１０５は、図１１のステップＳ１１０４において端末Ａ０１０２が行ったように端末Ｎ０１０５のプログラムを更新する（ステップＳ１５１０）。
端末Ｎ０１０５は、図１１のステップＳ１１０５において端末Ａ０１０２が行ったようにカード０１０７に対し鍵出力依頼を行うことで、カード０１０７によって正当性の確認を行われる（ステップＳ１５１１）。正当性が確認された場合（ステップＳ１５１１でＯＫ）、カード０１０７からコンテンツの暗号化鍵がカード０１０７から端末Ｎ０１０５に出力される。
【００９８】
一方、プログラムの更新処理を行う端末Ｎ０１０５の再生制御プログラム０７１１が悪意のあるものから改竄され、プログラムの更新が行われなかった場合（ステップＳ１５１１のＮＧ）、端末Ｎ０１０５のセキュアモジュール０７０７から取得したＰＣＲ値とカード０１０７のＣＲＬデータベース０８０５に格納されているＰＣＲ値は一致することなく、端末Ｎ０１０５は正当でないと判断され、端末Ｎ０１０５の処理は終了する。
【００９９】
プログラムの更新が正しく行われた場合（ステップＳ１５１１でＯＫ）、カード０１０７からコンテンツの暗号鍵が出力される（ステップＳ１５１２）。
端末Ｎ０１０５の再生制御プログラム０７１１は、カード０１０７から受け取ったコンテンツ暗号鍵を用いて、カード０１０７のコンテンツ格納部０８０７に格納されているコンテンツを復号化した後、再生する（ステップＳ１５１３）。なお、カード０１０７のコンテンツ格納部０８０７から端末Ｎ０１０５のコンテンツ格納部０７０６にコンテンツを転送した後にコンテンツの再生を行っても良い。
【０１００】
これにより、インターネット０１０８経由でサーバ０１０１に接続できない端末Ｎ０１０５のような端末であっても、端末のリボークおよびプログラムの更新が可能となる。
また、一度カード０１０７が使用された端末に対応するリボケーションリストのみカード０１０７に取得するため、カード０１０７の少ないリソースでもリボケーションリストが取り扱える。
【０１０１】
また、端末がネットワーク接続されている場合の動作説明で述べたものと同様の効果が得られることは言うまでもない。
（変形例）
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
【０１０２】
（１）  上述した実施の形態では、更新対象はソフトウェアであったが、ハードウェアの構成情報を更新するシステムに適用してもよい。このようなハードウェアの具体的な例としてはリコンフィギュアラブルプロセッサなどが考えられる。
（２）  上述した実施の形態では、カード、端末、サーバのいずれを制御するプログラムもオペレーティングシステムの上で動作していたが、これに限られるものではない。アプリケーションプログラム等が直接プロセッサで処理できる言語で書かれている場合には、必ずしもオペレーティングシステムはなくてもよい。
【０１０３】
（３）  ＰＣＲはハッシュ値であるとしたが、これに限られるものではない。改竄検出に用いることのできる値であれば、どのようなものであってもよい。例えば、プログラムの一部を暗号化した値であったり、プログラムのチェックサム等であってもよい。
（４）  上述した実施の形態では、カード０１０７は、鍵の要求があった場合に端末がリボークされているか否かを確認するとしたが、これに限られるものではない。鍵情報以外にも、不正な端末に渡すと不利益のある情報であれば、他の情報であってもよい。さらに、端末が行う処理もコンテンツの再生に限るものではない。例えば、端末は、個人情報を取り扱うデータベースの処理を行うとしてもよい。この場合、端末がリボークされているか否かを確認するタイミングは、個人情報の要求が端末からあった場合などになる。
【０１０４】
（５）  上述した実施の形態では、カード０１０７が端末がリボークされているか否かを確認するとしたが、これに限られるものではない。例えば、サーバが、権利情報を提供する際に、端末がリボークされているか否かを確認しても良い。この場合、端末は、権利情報の要求と共にＰＣＲを送信する。また、サーバは、正規ＰＣＲを記憶しており、端末から送られてきたＰＣＲと正規ＰＣＲとが不一致の場合（すなわち、ＮＧの場合）に端末のプログラムをアップデートさせる。なお、詳細な処理については、端末とカードとの間でのアップデートの処理と同様であるので省略する。
【０１０５】
（６）  上述した実施の形態では、プログラムがアップデートされた後、端末は再起動されるとしたが、これに限られるものではない。再起動を必要としない小さなアップデートであれば、そのまま処理を続行してもよい。すなわち、アップデートが完了した後、再起動を行わずに、鍵情報が端末に出力され、コンテンツの復号及び再生処理が行われるとしてもよい。
【０１０６】
（７）以上説明したように、本発明は、端末と端末から分離可能なカードによって構成される情報処理装置であって、端末は、端末で動作しているプログラムの特徴を測定し、保存する端末測定手段と、端末で動作するプログラムを格納するプログラム格納手段と、プログラム格納手段に格納されているプログラムを更新するプログラム更新手段から構成され、カードは、端末の更新プログラムを格納する更新プログラム格納手段と、端末測定手段から得た情報を用い端末の正当性を確認する正当性確認手段と、正当性確認手段により端末が正当であると判断された場合のみ、カード内に保持されている秘密情報を端末に提供する秘密情報提供手段と、正当性確認手段により端末が正当でないと判断された場合のみ、更新プログラム格納手段に格納された更新プログラムをプログラム更新手段に出力するプログラム出力手段から構成されることを特徴とする。
【０１０７】
また、本発明のデータ処理装置において、カードはさらに、一度接続された端末の端末ＩＤを格納する端末ＩＤ格納手段と、接続されている端末がネットワークに接続できる場合、端末ＩＤ格納手段に格納されている端末ＩＤに関連付けられている更新プログラムをサーバから取得し、更新プログラム格納手段に格納する更新プログラム取得手段と、更新プログラム取得手段で取得した更新プログラムに関連付けられている端末の正当性確認情報を格納する正当性確認情報格納手段と、接続されている端末がネットワークに接続できる場合、更新プログラム取得手段で取得した更新プログラムに関連付けられている正当性確認情報をサーバから取得し、正当性確認情報格納手段に格納する正当性確認情報取得手段を具備し、正当性確認手段が正当性確認情報格納手段より取得した正当性確認情報を用いて、端末の正当性を確認することを特徴とする。
【０１０８】
この構成によれば、アップデートモジュール自体の信頼性に依存しない、プログラムのアップデート方法を提供することが可能となる。
さらに、リボークされた端末を動作不能にすることなく、不正な端末をプログラムのアップデートにより正当な端末にすることができるので、コンテンツの再生を継続できる。リボークして動作不能にすることによるユーザへの被害を防止しつつ、コンテンツ配布システムの健全性を保つことが可能となる。
【０１０９】
また、カード内部の機構によってプログラムをアップデートしているので、インターネットに接続できない端末でもプログラムのアップデートが可能となる。
また、本発明に係る情報記録装置は、プログラムによって動作する情報処理装置とともに用いられ、情報処理装置により利用される情報を記録している情報記録装置であって、情報処理装置から情報へのアクセス要求を受け付ける受付手段と、情報処理装置を動作させる更新プログラムを格納する更新プログラム格納手段と、アクセス要求が受け付けられ
た場合に、アクセス要求を行った情報処理装置を動作させているプログラムの特徴情報を取得する取得手段と、特徴情報に基づいて、情報処理装置を動作させているプログラムの正当性を確認する正当性確認手段と、プログラムが正当でないと確認された場合に、情報処理装置に対して更新プログラムを出力する出力手段とを備えることを特徴とする。
【０１１０】
この構成によれば、情報記録装置に対して情報を要求している情報処理装置を動作させているプログラムが正当なものでないと確認された場合、そのプログラムが更新プログラムにアップデートされる。したがって、情報を利用しようとする装置に対して、プログラムのアップデートを強制することができる。
本発明に係る情報記録装置は、出力手段は、さらに、プログラムが正当であると確認された場合にのみ、情報を情報処理装置に出力することを特徴とする。
【０１１１】
この構成によれば、情報処理装置は、プログラムが正当であると判定されない限り、要求している情報を得ることができない。このことから、アクセス要求を出している情報を得るためには、情報処理装置はプログラムのアップデートを行わざるを得なくなるので、プログラムのアップデートを強制することができる。
本発明に係る情報記録装置は、さらに、情報処理装置を動作させる正当なプログラムの特徴情報である正規特徴情報を格納する正規特徴情報格納手段を備え、正当性確認手段は、情報処理装置から受信した特徴情報と正規特徴情報とを比較することにより、プログラムが正当であるか否かを確認することを特徴とする。
【０１１２】
この構成によれば、情報記録装置は、情報処理装置のプログラムが正当であるか否かを特徴情報に基づいて確認することができる。
本発明に係る情報記録装置は、受信手段は、さらに、アクセス要求と共に情報処理装置の識別情報を取得し、更新プログラム格納手段は、過去にアクセス要求を行った１以上の情報処理装置の識別情報と、情報処理装置のそれぞれに向けた更新プログラムとを対応付けて格納し、出力手段は、アクセス要求とともに受信した識別情報に対応する情報処理装置向けの更新プログラムを出力することを特徴とする。
【０１１３】
この構成によれば、情報記録装置が複数の情報処理装置で共有される場合でも、各情報処理装置に対して適切な更新プログラムを出力することができる。
本発明に係る情報記録装置は、更新プログラム格納手段は、さらに、新たな情報処理装置からのアクセス要求が受け付けられると、新たな情報処理装置の識別情報を格納内容に追加することを特徴とする。
【０１１４】
この構成によれば、情報記録装置は、過去にアクセス要求を受け付けた情報処理装置の全てについて、更新プログラムの管理を行うことができる。
本発明に係る情報記録装置は、さらに、更新プログラムを提供するサーバに対して、更新プログラム格納手段が格納している情報処理装置の識別情報を送信する送信手段と、サーバから送信した識別情報に対応する情報処理装置用の更新プログラムを取得する取得手段とを備え、更新プログラム格納手段は、取得した更新プログラムを識別情報と対応付けて記録することを特徴とする。
【０１１５】
この構成によれば、情報記録装置は、自身が管理している情報処理装置について、更新プログラムのバージョンアップがあった場合、バージョンアップ後の更新プログラムを取
得して記録することができる。
また、本発明に係る情報記録装置は、可搬型の記録媒体であることを特徴とする。
この構成によれば、可搬型の記録媒体内部の機構によって、情報処理装置内のプログラムをアップデートしているので、インターネットに接続できない情報処理装置に対してもプログラムのアップデートを強制することができる。
【０１１６】
また、本発明に係る情報処理装置は、プログラムによって動作し、プログラムの特徴情報によりプログラムの正当性を確認する情報記録装置と共に用いられる情報処理装置であって、プログラムの特徴情報を算出する特徴情報算出手段と、情報記録装置が記録する情報へのアクセス要求を行う際に、算出した特徴情報を情報記録装置へ送信する送信手段と、情報記録装置による確認に応じて、情報もしくは情報処理装置用の更新プログラムを受信する受信手段と更新プログラムを受信した場合、受信した更新プログラムによりプログラムを更新する更新手段とを備えることを特徴とする。
【０１１７】
この構成によれば、情報処理装置は、情報記録媒体に情報の要求を行う際に、自身を動作させているプログラムが不正なものであれば、アップデートすることができる。
また、本発明に係る情報記録装置は、特徴情報算出手段は、耐タンパ化により保護されていることを特徴とする。
この構成によれば、不正解析者による特徴情報の改ざんを防止できるので、情報処理装置を動作させているプログラムが不正なものである場合に、より確実に更新プログラムへのアップデートを行わせることができる。また、特徴情報算出手段さえ保護していれば、上述した不正を防止できるので、装置全体を耐タンパ化する場合に比べて、低コストでプログラムのアップデートを強制することができる。
【０１１８】
また、本発明を、上述した特徴を持つ情報記録装置および情報処理装置から構成されるシステム、プログラムアップデート方法、プログラム、および集積回路として実現した場合もそれぞれ同様の効果を発揮することができる。
（８）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０１１９】
（９）上記の各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
【０１２０】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又は全てを含むように１チップ化されてもよい。
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【０１２１】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
（１０）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【０１２２】
（１１）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【０１２３】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【０１２４】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（１２）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０１２５】
プログラムを更新する情報処理装置で利用できる。
【図面の簡単な説明】
【０１２６】
【図１】本発明の実施の形態１におけるコンテンツ配布システムの構成を示すブロック図
【図２】本発明の実施の形態１における端末Ａのハードウェア構成を示すブロック図
【図３】本発明の実施の形態１における権利購入制御プログラムの動作を示すフローチャート
【図４】本発明の実施の形態１における再生制御プログラムの動作を示すフローチャート
【図５】本発明の実施の形態１におけるＰＣＲ拡張コマンド処理の動作を示すフローチャート
【図６】本発明の実施の形態１における端末起動時の動作を示すフローチャート
【図７】本発明の実施の形態１における端末Ｎのハードウェア構成を示すブロック図
【図８】本発明の実施の形態１におけるカードのハードウェア構成を示すブロック図
【図９】本発明の実施の形態１における権利購入プログラムの動作を示すフローチャート
【図１０】本発明の実施の形態１における権利確認・鍵生成プログラムの動作を示すフローチャート
【図１１】本発明の実施の形態１におけるコンテンツ配布システム全体の動作を示すフローチャート
【図１２】本発明の実施の形態１におけるサーバの構成を示すブロック図
【図１３】本発明の実施の形態１におけるサーバ上に存在するＣＲＬデータベースのデータ構造を示す図
【図１４】本発明の実施の形態１におけるカード上に存在するＣＲＬデータベースのデータ構造を示す図
【図１５】本発明の実施の形態１におけるコンテンツ配布システム全体の動作を示すフローチャート
【符号の説明】
【０１２７】
０１００    コンテンツ配布システム
０１０１    サーバ
０１０２    端末Ａ
０１０３    端末Ｂ
０１０４    端末Ｍ
０１０５    端末Ｎ
０１０６    端末Ｚ
０１０７    カード
０１０８    インターネット
０２０１    プロセッサ
０２０２    ＲＡＭ
０２０３    ブートコード
０２０４    カードインターフェース
０２０５    通信部
０２０６    コンテンツ復号部
０２０７    セキュアモジュール
０２０８    プログラム格納部
０２０９    オペレーティングシステム
０２１０    権利購入制御プログラム
０２１１    再生制御プログラム
０２１２    プログラム証明書
０２１３    バス
０７０１    プロセッサ
０７０２    ＲＡＭ
０７０３    ブートコード
０７０４    カードインターフェース
０７０６    コンテンツ格納部
０７０７    セキュアモジュール
０７０８    プログラム格納部
０７０９    オペレーティングシステム
０７１１    再生制御プログラム
０２１２    プログラム証明書
０７１３    バス
０８０１    プロセッサ
０８０２    ＲＡＭ
０８０３    ブートコード
０８０４    端末Ｉ／Ｆ
０８０５    ＣＲＬデータベース
０８０７    コンテンツ格納部
０８０８    プログラム格納部
０８０９    オペレーティングシステム
０８１０    権利購入プログラム
０８１１    権利確認・鍵生成プログラム
０８１３    バス
１２０１    通信部
１２０２    ＣＲＬデータベース
１２０３    ＣＲＬ管理部
１２０４    権利管理部
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2008004525.tif 000018
【図２】
2008004525.tif 000019
【図３】
2008004525.tif 000020
【図４】
2008004525.tif 000021
【図５】
2008004525.tif 000022
【図６】
2008004525.tif 000023
【図７】
2008004525.tif 000024
【図８】
2008004525.tif 000025
【図９】
2008004525.tif 000026
【図１０】
2008004525.tif 000027
【図１１】
2008004525.tif 000028
【図１２】
2008004525.tif 000029
【図１３】
2008004525.tif 000030
【図１４】
2008004525.tif 000031
【図１５】
2008004525.tif 000032
【国際調査報告】
2008004525.tif 000033
2008004525.tif 000034
2008004525.tif 000035
2008004525.tif 000036