(57)【特許請求の範囲】
【請求項１】
複数のシステムプログラムの完全性を検証しつつ順に実行するセキュアブートを行った後、認証装置との認証処理を伴うアプリケーションプログラムを実行する情報処理装置であって、
第１暗号鍵に対応する第１復号鍵を記憶する鍵保持手段と、
セキュアブート後の自装置の完全性維持を第１の利用許可条件として前記第１暗号鍵を用いて暗号化された第２復号鍵と、前記アプリケーションプログラムの完全性維持を第２の利用許可条件として前記第２復号鍵に対応する第２暗号鍵を用いて暗号化された認証鍵とを記憶する鍵情報保持手段と、
前記第１復号鍵を用いて前記暗号化された第２復号鍵を復号し、前記第１の利用許可条件を満たす場合にのみ、さらに、当該復号により得た前記第２復号鍵を用いて前記暗号化された認証鍵を復号し、前記第２の利用許可条件を満たす場合にのみ当該復号により得た前記認証鍵を出力する復号処理手段と、
前記認証鍵が出力された場合に、前記認証鍵を用いて前記認証装置と前記認証処理を行う認証処理手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記情報処理装置は、さらに、
前記複数のシステムプログラム及び前記アプリケーションプログラムの各々を起動する毎に、起動するプログラムの要約値を生成して累積処理し、得られる累積値を保持する生成手段を備え、
前記鍵情報保持手段により保持されている前記暗号化された第２復号鍵は、前記セキュアブート後の累積値の期待値とともに前記第１暗号鍵を用いて暗号化されており、前記暗号化された認証鍵は、前記アプリケーションプログラムの要約値の期待値とともに前記第２暗号鍵を用いて暗号化されており、
前記復号処理手段は、前記第１の利用許可条件について、前記第２復号鍵とともに復号された前記累積値の期待値が、前記生成手段により生成される前記セキュアブート後の累積値と一致する場合にのみ、前記第１の利用許可条件を満たすと判断し、前記第２の利用許可条件について、前記認証鍵とともに復号された前記要約値の期待値が、前記生成手段により生成される前記アプリケーションプログラムの要約値と一致する場合にのみ、前記第２の利用許可条件を満たすと判断する
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記情報処理装置は、さらに、
前記複数のシステムプログラムのいずれかの更新処理を行うプログラム更新手段と、
前記更新処理がされた場合に、前記鍵情報保持手段により保持されている前記暗号化された第２復号鍵を、前記更新処理後におけるセキュアブート後の累積値の期待値とともに前記第１暗号鍵を用いて暗号化された第２復号鍵に置き換える鍵情報更新手段と
を備えることを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記情報処理装置は、さらに、
前記アプリケーションプログラムの要約値の期待値と、前記セキュアブート後の累積値の期待値とを保持する期待値保持手段を備え、
前記鍵情報保持手段は、前記第１及び第２の利用許可条件について判定を行う場合に、前記アプリケーションプログラムの要約値の期待値、及び前記セキュアブート後の累積値の期待値を前記期待値保持手段から読み出して用いる
ことを特徴とする請求項２記載の情報処理装置。
【請求項５】
前記認証処理手段は、さらに、前記認証処理に先立ち、前記復号処理手段に、前記第１復号鍵を用いて前記暗号化された第２復号鍵を復号させ、前記第１の利用許可条件を満たす場合にのみ前記復号処理手段から出力される前記第２復号鍵を取得し、前記第２復号鍵を用いて前記認証装置と事前認証処理を行い、
前記鍵情報保持手段により保持されている前記暗号化された認証鍵は、前記事前認証処理に成功した場合に、前記認証処理に先立ち、前記認証装置から取得されて書き込まれたものである
ことを特徴とする請求項１記載の情報処理装置。
【請求項６】
認証装置と、複数のシステムプログラムの完全性を検証しつつ順に実行するセキュアブート後に前記認証装置との認証処理を伴うアプリケーションプログラムを実行する情報処理装置とを含む認証システムであって、
前記情報処理装置は、
第１暗号鍵に対応する第１復号鍵をセキュアに記憶する鍵保持手段と、
セキュアブート後の自装置の完全性維持を第１の利用許可条件として前記第１暗号鍵を用いて暗号化された第２復号鍵を記憶する鍵情報保持手段と、
前記第１復号鍵を用いて前記暗号化された第２復号鍵を復号し、前記第１の利用許可条件を満たす場合にのみ、当該復号により得た前記第２復号鍵を出力する復号処理手段と、
前記第２復号鍵が出力された場合に、前記第２復号鍵を用いて前記認証装置と事前認証処理を行う第１の認証処理手段とを備え、
前記認証装置は、
前記第２復号鍵を用いて、前記情報処理装置と前記事前認証処理を行う第２の認証手段と、
前記事前認証処理に成功した場合に、前記アプリケーションプログラムの完全性維持を第２の利用許可条件として前記第２復号鍵に対応する第２暗号鍵で暗号化された認証鍵を、前記情報処理装置に送信する送信手段とを備え、
前記情報処理装置は、前記暗号化された認証鍵を取得して、前記鍵情報保持手段に書き込み、
前記復号処理手段は、前記暗号化された認証鍵が書き込まれた後には、前記暗号化された第２復号鍵を前記第１復号鍵を用いて復号し、前記第１の利用許可条件を満たす場合にのみ、さらに、当該復号により得た前記第２復号鍵を用いて前記暗号化された認証鍵を復号し、前記第２の利用許可条件を満たす場合にのみ当該復号により得た前記認証鍵を出力し、
前記第１の認証処理手段は、さらに、前記認証鍵が出力された場合に、前記認証鍵を用いて前記認証装置と第２の認証処理を行い、
前記第２の認証手段は、前記送信手段による送信の後、前記情報処理装置との間で、前記認証鍵を用いた前記第２の認証処理を行う
ことを特徴とする認証システム。
【請求項７】
複数のシステムプログラムの完全性を検証しつつ順に起動するセキュアブート後にアプリケーションプログラムを実行し、セキュアブート後の完全性維持を第１の利用許可条件として暗号化された第１復号鍵を保持している情報処理装置との間で認証処理を行う認証装置であって、
前記情報処理装置と、前記第１復号鍵を用いた事前認証処理を行う認証手段と、
前記事前認証処理に成功した場合に、前記アプリケーションプログラムの完全性維持を利用許可条件として前記第１復号鍵に対応する第１暗号鍵で暗号化された認証鍵を、前記情報処理装置に送信する送信手段とを備え、
前記認証手段は、さらに、前記暗号化された認証鍵を送信した後、前記情報処理装置との間で、前記認証鍵を用いた認証処理を行うことで、前記情報処理装置の完全性を検証する
ことを特徴とする認証装置。
【請求項８】
複数のシステムプログラムの完全性を検証しつつ順に実行するセキュアブートを行った後、認証装置との認証処理を伴うアプリケーションプログラムを実行する情報処理装置に用いられる情報処理方法であって、
第１暗号鍵に対応する第１復号鍵を記憶する鍵保持ステップと、
セキュアブート後の自装置の完全性維持を第１の利用許可条件として前記第１暗号鍵を用いて暗号化された第２復号鍵と、前記アプリケーションプログラムの完全性維持を第２の利用許可条件として前記第２復号鍵に対応する第２暗号鍵を用いて暗号化された認証鍵とを記憶する鍵情報保持ステップと、
前記第１復号鍵を用いて前記暗号化された第２復号鍵を復号し、前記第１の利用許可条件を満たす場合にのみ、さらに、当該復号により得た前記第２復号鍵を用いて前記暗号化された認証鍵を復号し、前記第２の利用許可条件を満たす場合にのみ当該復号により得た前記認証鍵を出力する復号処理ステップと、
前記認証鍵が出力された場合に、前記認証鍵を用いて前記認証装置と前記認証処理を行う認証処理ステップと
を含むことを特徴とする情報処理方法。
【請求項９】
複数のシステムプログラムの完全性を検証しつつ順に実行するセキュアブートを行った後、認証装置との認証処理を伴うアプリケーションプログラムを実行する情報処理装置に用いられる情報処理プログラムであって、
第１暗号鍵に対応する第１復号鍵を記憶する鍵保持ステップと、
セキュアブート後の自装置の完全性維持を第１の利用許可条件として前記第１暗号鍵を用いて暗号化された第２復号鍵と、前記アプリケーションプログラムの完全性維持を第２の利用許可条件として前記第２復号鍵に対応する第２暗号鍵を用いて暗号化された認証鍵とを記憶する鍵情報保持ステップと、
前記第１復号鍵を用いて前記暗号化された第２復号鍵を復号し、前記第１の利用許可条件を満たす場合にのみ、さらに、当該復号により得た前記第２復号鍵を用いて前記暗号化された認証鍵を復号し、前記第２の利用許可条件を満たす場合にのみ当該復号により得た前記認証鍵を出力する復号処理ステップと、
前記認証鍵が出力された場合に、前記認証鍵を用いて前記認証装置と前記認証処理を行う認証処理ステップと
をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項１０】
複数のシステムプログラムの完全性を検証しつつ順に実行するセキュアブートを行った後、認証装置との認証処理を伴うアプリケーションプログラムを実行する情報処理装置に用いられる情報処理プログラムを記憶するコンピュータ読み取り可能な記録媒体であって、
前記情報処理プログラムは、
第１暗号鍵に対応する第１復号鍵を記憶する鍵保持ステップと、
セキュアブート後の自装置の完全性維持を第１の利用許可条件として前記第１暗号鍵を用いて暗号化された第２復号鍵と、前記アプリケーションプログラムの完全性維持を第２の利用許可条件として前記第２復号鍵に対応する第２暗号鍵を用いて暗号化された認証鍵とを記憶する鍵情報保持ステップと、
前記第１復号鍵を用いて前記暗号化された第２復号鍵を復号し、前記第１の利用許可条件を満たす場合にのみ、さらに、当該復号により得た前記第２復号鍵を用いて前記暗号化された認証鍵を復号し、前記第２の利用許可条件を満たす場合にのみ当該復号により得た前記認証鍵を出力する復号処理ステップと、
前記認証鍵が出力された場合に、前記認証鍵を用いて前記認証装置と前記認証処理を行う認証処理ステップと
をコンピュータに実行させることを特徴とする記録媒体。
【請求項１１】
複数のシステムプログラムの完全性を検証しつつ順に実行するセキュアブートを行った後、認証装置との認証処理を伴うアプリケーションプログラムを実行する情報処理装置に用いられる集積回路であって、
第１暗号鍵に対応する第１復号鍵を記憶する鍵保持手段と、
セキュアブート後の自装置の完全性維持を第１の利用許可条件として前記第１暗号鍵を用いて暗号化された第２復号鍵と、前記アプリケーションプログラムの完全性維持を第２の利用許可条件として前記第２復号鍵に対応する第２暗号鍵を用いて暗号化された認証鍵とを記憶する鍵情報保持手段と、
前記第１復号鍵を用いて前記暗号化された第２復号鍵を復号し、前記第１の利用許可条件を満たす場合にのみ、さらに、当該復号により得た前記第２復号鍵を用いて前記暗号化された認証鍵を復号し、前記第２の利用許可条件を満たす場合にのみ当該復号により得た前記認証鍵を出力する復号処理手段と、
前記認証鍵が出力された場合に、前記認証鍵を用いて前記認証装置と前記認証処理を行う認証処理手段と
を備えることを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パーソナルコンピュータや携帯電話などの情報通信機器、インターネットアクセス機能を備えたテレビ受信装置など情報家電機器等の情報処理装置に関し、特に、装置同士がデータを交換する場合に、データの送信元装置において送信先装置の完全性を確認する技術に関する。
【背景技術】
【０００２】
近年、クライアント側端末で動作するソフトウェアモジュールに改変を加えて不正な動作をさせ、サーバ側が送信するコンテンツについて課している制限を迂回しサービスの提供を受けたり、保存やコピーを禁じているコンテンツを不正に保存、コピーするなどの被害が増加している。
【０００３】
これに対し、ＴＣＧ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ）などにより、サーバ側からクライアント側の端末におけるプラットフォームの完全性を確認する技術が提案されている。サーバ側からすると、クライアント側の端末におけるプラットフォームの完全性を確認してからコンテンツをクライアント側に送信することで、コンテンツの不正な保存や、コピーを免れることができる。このプラットフォームの完全性を確認する技術について、サービス提供サーバ２９１０がパーソナルコンピュータ２９００に対して情報サービスを提供するシステムを例に図２９を用いて説明する。パーソナルコンピュータ２９００には、特殊なレジスタであるＰＣＲ（Ｐｌａｔｆｏｒｍ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｇｉｓｔｅｒ）２９０４を備えたＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）２９０２と呼ばれる耐タンパモジュールが実装されている。パーソナルコンピュータ２９００のＣＰＵ２９０１は、ＢＩＯＳ２９０５、ＯＳ２９０６、アプリケーション２９０７等のソフトウェアモジュールのコードを実行するが、実行の際にそれぞれのハッシュを計算し、計算したハッシュをＴＰＭ２９０２に送信する。ハッシュを受信したＴＰＭ２９０２は、ＰＣＲ２９０４に既に格納されているハッシュと受信したハッシュとを連結し、その連結したデータに対して更にハッシュ演算を実行してその結果をＰＣＲ２９０４に格納する。ＰＣＲ２９０４の値は、ＣＰＵ２９０１が実行するソフトウェアモジュールのダイジェスト値を累積したものであり、パーソナルコンピュータ２９００上でどのソフトウェアモジュールが実行されているかを示す。パーソナルコンピュータ２９００は、情報サービスの提供を要求する際に、チャレンジレスポンス方式等を用い、ＰＣＲ２９０４に格納されている値（ＰＣＲ値）をサービス提供サーバ２９１０に送信する。サービス提供サーバ２９１０は、パーソナルコンピュータ２９００において正しいソフトウェアモジュールが実行されている場合のＰＣＲの値（ＰＣＲ照合値）が格納された照合値ＤＢ２９１２を備えており、受信したＰＣＲ値とＰＣＲ照合値とを比較して、パーソナルコンピュータ２９００において正しいソフトウェアモジュールが実行されているか否か判定する。そして、サービス提供サーバ２９１０は、情報サービスを、正しいソフトウェアモジュールが実行されていると判断した場合にのみパーソナルコンピュータ２９００に提供する（特許文献１、及び非特許文献１〜４参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００２−５３６７５７号公報
【非特許文献】
【０００５】
【非特許文献１】ＴＰＭ  Ｍａｉｎ，Ｐａｒｔ１  Ｄｅｓｉｇｎ  Ｐｒｉｎｃｉｐｌｅｓ，Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｖｅｒｓｉｏｎ  １．２  Ｌｅｖｅｌ２  Ｒｉｖｉｓｉｏｎ１０３（９  Ｊｕｌｙ  ２００７）
【非特許文献２】ＴＰＭ  Ｍａｉｎ，Ｐａｒｔ２  ＴＰＭ  Ｓｔｒｕｃｔｕｒｅｓ，Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｖｅｒｓｉｏｎ１．２  Ｌｅｖｅｌ２  Ｒｉｖｉｓｉｏｎ１０３（９  Ｊｕｌｙ  ２００７）
【非特許文献３】ＴＰＭ  Ｍａｉｎ  Ｐａｒｔ３  Ｃｏｍｍａｎｄｓ，Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｖｅｒｓｉｏｎ  １．２  Ｌｅｖｅｌ２  Ｒｉｖｉｓｉｏｎ１０３（９  Ｊｕｌｙ  ２００７）
【非特許文献４】ＴＣＧ  Ｍｏｂｉｌｅ  Ｔｒｕｓｔｅｄ  Ｍｏｄｕｌｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｖｅｒｓｉｏｎ  １．０  Ｒｅｖｉｓｉｏｎ  １（１２  Ｊｕｎｅ  ２００７）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述の技術では、パーソナルコンピュータ２９００のＯＳ等のソフトウェアモジュールが新しいバージョン等に更新された場合には、サービス提供サーバ２９１０はパーソナルコンピュータ２９００の更新されたソフトウェアモジュールの情報を取得し、パーソナルコンピュータ２９００の最新のＰＣＲ照合値を算出して、照合値ＤＢを最新の状態にしておく必要があり、仮に、照合値ＤＢの更新が遅れた場合、パーソナルコンピュータ２９００は正しいソフトウェアモジュールを実行しているにも関わらず、認証に失敗してしまうという問題がある。
【０００７】
上記問題に鑑み、本発明は、クライアント側のソフトウェアモジュールが更新された場合でも、サーバ側でデータベース等を更新する手間を無くし、かつ、クライアント側装置の完全性、正規のソフトウェアが起動されていることを検証できる情報処理装置、認証システム、認証装置、情報処理方法、情報処理プログラム、記録媒体、及び集積回路を提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明の一実施態様である情報処理装置は、複数のシステムプログラムの完全性を検証しつつ順に実行するセキュアブートを行った後、認証装置との認証処理を伴うアプリケーションプログラムを実行する情報処理装置であって、第１暗号鍵に対応する第１復号鍵を記憶する鍵保持手段と、セキュアブート後の自装置の完全性維持を第１の利用許可条件として前記第１暗号鍵を用いて暗号化された第２復号鍵と、前記アプリケーションプログラムの完全性維持を第２の利用許可条件として前記第２復号鍵に対応する第２暗号鍵を用いて暗号化された認証鍵とを記憶する鍵情報保持手段と、前記第１復号鍵を用いて前記暗号化された第２復号鍵を復号し、前記第１の利用許可条件を満たす場合にのみ、さらに、当該復号により得た前記第２復号鍵を用いて前記暗号化された認証鍵を復号し、前記第２の利用許可条件を満たす場合にのみ当該復号により得た前記認証鍵を出力する復号処理手段と、前記認証鍵が出力された場合に、前記認証鍵を用いて前記認証装置と前記認証処理を行う認証処理手段とを備える。
【発明の効果】
【０００９】
本発明の一実施態様である情報処理装置は、上述の構成を備えることにより、複数のシステムプログラムのいずれかを更新する場合に、前記鍵情報保持手段に保持されている前記暗号化された第２復号鍵を、当該更新後におけるセキュアブート後の自装置の完全性維持を第１の利用許可条件として第１暗号鍵を用い暗号化された第２復号鍵に置き換えるのみで、当該更新により前記暗号化された第２復号鍵が復号できなくなるのを防ぐことができ、前記暗号化された認証鍵に当該更新の影響を及ぼさないようにできる。そして、前記認証装置にあっては、前記更新の前後いずれの場合にも、前記情報処理装置との間で前記認証鍵を用いて前記認証処理を行うことができる。すなわち、前記情報処理装置において前記更新があっても、前記認証鍵を用いて認証することで、更新後のセキュアブート後の情報処理装置の完全性の維持と、前記アプリケーションプログラムの完全性の維持とを確認することができる。また、前記認証装置において、従来のようにデータベース等を保持、更新する必要はない。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態１に係るシステム構成を示すブロック図
【図２】本発明の実施の形態１に係る端末Ａの構成を示すブロック図
【図３】本発明の実施の形態１に係る端末Ｂの構成を示すブロック図
【図４】図４（ａ）は、本発明の実施の形態１に係る端末Ａのモジュール記憶部が保持しているソフトウェアモジュールとそのモジュール証明書を示す図、図４（ｂ）は、本発明の実施の形態１におけるモジュール証明書のデータ構造を示す図
【図５】本発明の実施の形態１に係る端末Ａの鍵情報保持部が保持している鍵情報を示す図
【図６】図６（ａ）は、本発明の実施の形態１における証明書Ａ１のデータ構造を示す図、図６（ｂ）は、本発明の実施の形態１における証明書Ａ２のデータ構造を示す図
【図７】本発明の実施の形態１に係る端末Ａのセキュリティモジュールの構成を示すブロック図
【図８】本発明の実施の形態１における端末Ｂが端末Ａを認証する認証処理のシーケンス図
【図９】本発明の実施の形態１における暗号化鍵Ａ２の復号処理のフロー図
【図１０】本発明の実施の形態１に係る端末Ａの鍵情報保持部が保持している鍵情報の更新処理を示す模式図
【図１１】本発明の実施の形態２に係るシステム構成を示すブロック図
【図１２】本発明の実施の形態２に係る端末Ｃの構成を示すブロック図
【図１３】本発明の実施の形態２に係る端末Ｃの期待値保持部が保持している期待値リストの一例を示す図
【図１４】本発明の実施の形態２における端末Ａと端末Ｃとのペアリング処理のシーケンス図
【図１５】本発明の実施の形態２における端末Ａと端末Ｃとのペアリング処理の中で行われる秘密鍵Ａ１を用いた認証処理のシーケンス図
【図１６】本発明の実施の形態２における秘密鍵Ａ１の復号処理のフロー図
【図１７】本発明の実施の形態２に係る端末Ａの鍵情報保持部への暗号化鍵Ａ３の保存処理を示す模式図
【図１８】本発明の実施の形態２における証明書Ａ３のデータ構造を示す図
【図１９】本発明の実施の形態２における端末Ｃが端末Ａを認証する認証処理のシーケンス図
【図２０】本発明の実施の形態３に係る端末Ａと端末Ｂの構成を示すブロック図
【図２１】本発明の実施の形態３に係る端末Ｂの鍵情報保持部が保持している鍵情報を示す図
【図２２】本発明の実施の形態３における端末Ａと端末Ｂとの相互認証処理の前半のシーケンス図
【図２３】本発明の実施の形態３における端末Ａと端末Ｂとの相互認証処理の後半のシーケンス図
【図２４】本発明の実施の形態１における端末Ｂが端末Ａを認証する認証処理のメカニズムを示す図
【図２５】本発明の実施の形態２における端末Ａと端末Ｃとのペアリング処理のメカニズムを示す図
【図２６】図２６（ａ）は、本発明の実施の形態１における証明書Ａ１の利用条件に設定されるデータの内容の一例を示す図。図２６（ｂ）は、本発明の実施の形態１における証明書Ａ２の利用条件に設定されるデータの内容の一例を示す図。
【図２７】発明の実施の形態１における証明書Ａ１の端末情報に設定されるデータの内容の一例を示す図。
【図２８】本発明の実施の形態２における端末Ａから期待値を受信する場合の端末Ａと端末Ｃとのペアリング処理のシーケンス図
【図２９】従来技術に基づく認証処理の一例を説明する図
【発明を実施するための形態】
【００１１】
本発明の一実施態様である情報処理装置は、複数のシステムプログラムの完全性を検証しつつ順に実行するセキュアブートを行った後、認証装置との認証処理を伴うアプリケーションプログラムを実行する情報処理装置であって、第１暗号鍵に対応する第１復号鍵を記憶する鍵保持手段と、セキュアブート後の自装置の完全性維持を第１の利用許可条件として前記第１暗号鍵を用いて暗号化された第２復号鍵と、前記アプリケーションプログラムの完全性維持を第２の利用許可条件として前記第２復号鍵に対応する第２暗号鍵を用いて暗号化された認証鍵とを記憶する鍵情報保持手段と、前記第１復号鍵を用いて前記暗号化された第２復号鍵を復号し、前記第１の利用許可条件を満たす場合にのみ、さらに、当該復号により得た前記第２復号鍵を用いて前記暗号化された認証鍵を復号し、前記第２の利用許可条件を満たす場合にのみ当該復号により得た前記認証鍵を出力する復号処理手段と、前記認証鍵が出力された場合に、前記認証鍵を用いて前記認証装置と前記認証処理を行う認証処理手段とを備える。
【００１２】
また、前記情報処理装置は、前記複数のシステムプログラム及び前記アプリケーションプログラムの各々を起動する毎に、起動するプログラムの要約値を生成して累積処理し、得られる累積値を保持し、前記鍵情報保持手段により保持されている前記暗号化された第２復号鍵は、前記セキュアブート後の累積値の期待値とともに前記第１暗号鍵を用いて暗号化されており、前記暗号化された認証鍵は、前記アプリケーションプログラムの要約値の期待値とともに前記第２暗号鍵を用いて暗号化されており、前記復号処理手段は、前記第１の利用許可条件について、前記第２復号鍵とともに復号された前記累積値の期待値が、前記生成部により生成される前記セキュアブート後の累積値と一致する場合にのみ、前記第１の利用許可条件を満たすと判断し、前記第２の利用許可条件について、前記認証鍵とともに復号された前記要約値の期待値が、前記生成部により生成される前記アプリケーションプログラムの要約値と一致する場合にのみ、前記第２の利用許可条件を満たすと判断することとしてもよい。
【００１３】
この構成によれば、前記第２復号鍵を前記セキュアブート後の累積値の期待値とともに暗号化する（以下、バインドするという。）ことにより、前記セキュアブートが正常に起動した場合にのみ利用できる態様で前記第２復号鍵を暗号化することができる。また、前記認証鍵を前記アプリケーションプログラムの要約値の期待値にバインドすることにより、前記アプリケーションプログラムが改ざんなく正常に起動した場合にのみ利用できる態様で認証鍵を暗号化することができる。
【００１４】
また、前記情報処理装置は、さらに、前記複数のシステムプログラムのいずれかの更新処理を行うプログラム更新手段と、前記更新処理がされた場合に、前記鍵情報保持手段により保持されている前記暗号化された第２復号鍵を、前記更新処理後におけるセキュアブート後の累積値の期待値とともに前記第１暗号鍵を用いて暗号化された第２復号鍵に置き換える鍵情報更新手段とを備えることとしてもよい。
【００１５】
この構成によれば、複数のシステムプログラムのいずれかを更新処理した場合であっても、暗号化された第２復号鍵を前記更新処理された後のシステムプログラムに対応できるよう更新するのみで、暗号化された認証鍵に更新の影響を及ぼさないようにできる。システムプログラム（例えばＯＳ）の開発者と、アプリケーションプログラム（例えばゲームソフトなど）の開発者は、一般的に異なることが多いが、このような場合に、システムプログラムを更新しても、その更新の影響を、システムプログラムに関連ある範囲である、前記暗号化された第２復号鍵についてのみに抑えることができる。また、前記認証装置は、前記システムプログラム更新の前後いずれの場合も、前記情報処理装置との間で前記認証鍵を用いて前記認証処理を行うことができる。すなわち、前記情報処理装置において前記更新があっても、前記認証装置にとっては、従来のようにデータベース等を保持、更新する必要がなく、前記認証鍵を用いて認証することで、更新後のセキュアブート後の情報処理装置の完全性の維持と、前記アプリケーションプログラムの完全性の維持とを確認することができる。
【００１６】
また、前記情報処理装置は、さらに、前記アプリケーションプログラムの要約値の期待値と、前記セキュアブート後の累積値の期待値とを保持する期待値保持手段を備え、前記鍵情報保持手段は、前記第１及び第２の利用許可条件について判定を行う場合に、前記アプリケーションプログラムの要約値の期待値、及び前記セキュアブート後の累積値の期待値を前記期待値保持手段から読み出して用いることとしてもよい。
【００１７】
この構成によれば、前記アプリケーションプログラムの要約値の期待値と、前記セキュアブート後の累積値の期待値とを予め保持しておく構成とすることができる。また、前もって外部の装置から前記アプリケーションプログラムの要約値の期待値と、前記セキュアブート後の累積値の期待値とを取得した場合に取得したこれらの情報を保持しておくことができる。
【００１８】
また、前記認証処理手段は、さらに、前記認証処理に先立ち、前記復号処理手段に、前記第１復号鍵を用いて前記暗号化された第２復号鍵を復号させ、前記第１の利用許可条件を満たす場合にのみ前記復号処理手段から出力される前記第２復号鍵を取得し、前記第２復号鍵を用いて前記認証装置と事前認証処理を行い、前記鍵情報保持手段により保持されている前記暗号化された認証鍵は、前記事前認証処理に成功した場合に、前記認証処理に先立ち、前記認証装置から取得されて書き込まれたものであることとしてもよい。
【００１９】
本発明の一実施態様である認証システムは、認証装置と、複数のシステムプログラムの完全性を検証しつつ順に実行するセキュアブート後に前記認証装置との認証処理を伴うアプリケーションプログラムを実行する情報処理装置とを含む認証システムであって、前記情報処理装置は、第１暗号鍵に対応する第１復号鍵をセキュアに記憶する鍵保持手段と、セキュアブート後の自装置の完全性維持を第１の利用許可条件として前記第１暗号鍵を用いて暗号化された第２復号鍵を記憶する鍵情報保持手段と、前記第１復号鍵を用いて前記暗号化された第２復号鍵を復号し、前記第１の利用許可条件を満たす場合にのみ、当該復号により得た前記第２復号鍵を出力する復号処理手段と、前記第２復号鍵が出力された場合に、前記第２復号鍵を用いて前記認証装置と事前認証処理を行う第１の認証処理手段とを備え、前記認証装置は、前記第２復号鍵を用いて、前記情報処理装置と前記事前認証処理を行う第２の認証手段と、前記事前認証処理に成功した場合に、前記アプリケーションプログラムの完全性維持を第２の利用許可条件として前記第２復号鍵に対応する第２暗号鍵で暗号化された認証鍵を、前記情報処理装置に送信する送信手段とを備え、前記情報処理装置は、前記暗号化された認証鍵を取得して、前記鍵情報保持手段に書き込み、前記復号処理手段は、前記暗号化された認証鍵が書き込まれた後には、前記暗号化された第２復号鍵を前記第１復号鍵を用いて復号し、前記第１の利用許可条件を満たす場合にのみ、さらに、当該復号により得た前記第２復号鍵を用いて前記暗号化された認証鍵を復号し、前記第２の利用許可条件を満たす場合にのみ当該復号により得た前記認証鍵を出力し、前記第１の認証処理手段は、さらに、前記認証鍵が出力された場合に、前記認証鍵を用いて前記認証装置と第２の認証処理を行い、前記第２の認証手段は、前記送信手段による送信の後、前記情報処理装置との間で、前記認証鍵を用いた前記第２の認証処理を行う。
【００２０】
本発明の一実施態様である認証装置は、複数のシステムプログラムの完全性を検証しつつ順に起動するセキュアブート後にアプリケーションプログラムを実行し、セキュアブート後の完全性維持を第１の利用許可条件として暗号化された第１復号鍵を保持している情報処理装置との間で認証処理を行う認証装置であって、前記情報処置装置と、前記第１復号鍵を用いた前記事前認証処理を行う認証手段と、前記事前認証処理に成功した場合に、前記アプリケーションプログラムの完全性維持を利用許可条件として前記第１復号鍵に対応する第１暗号鍵で暗号化された認証鍵を、前記情報処理装置に送信する送信手段とを備え、前記認証手段は、さらに、前記暗号化された認証鍵を送信した後、前記情報処理装置との間で、前記認証鍵を用いた認証処理を行うことで、前記情報処理装置の完全性を検証する。
【００２１】
この構成によれば、認証装置は、情報処理装置のシステムプログラムの更新の有無にかかわらず、第２復号鍵及び前記アプリケーションプログラムの要約値さえ予め分かっていれば、前記情報処理装置へ送信するための前記暗号化された認証鍵を生成できる。この暗号化された認証鍵を情報処理装置へと送信した後は、前記認証鍵を用いて認証処理できるようになる。また、前記情報処理装置において複数のシステムプログラムのいずれかを更新する場合には、前記鍵情報保持手段に保持されている前記暗号化された第２復号鍵を、当該更新後におけるセキュアブート後の自装置の完全性維持を第１の利用許可条件として第１暗号鍵を用いて暗号化された第２復号鍵に置き換えるのみで、当該更新により前記暗号化された第２復号鍵が復号できなくなるのを防ぐことができ、前記暗号化された認証鍵に当該更新の影響を及ぼさないようにできる。前記認証装置にあっては、前記更新の前後いずれの場合にも、前記情報処理装置との間で前記認証鍵を用いて前記認証処理を行うことができる。すなわち、前記情報処理装置において前記更新があっても、前記認証鍵を用いて認証することで、更新後のセキュアブート後の情報処理装置の完全性の維持と、前記アプリケーションプログラムの完全性の維持とを確認することができる。また、前記認証装置にとっては、従来のようにデータベース等を保持、更新する必要はない。
【００２２】
本発明の一実施態様である情報処理方法は、複数のシステムプログラムの完全性を検証しつつ順に実行するセキュアブートを行った後、認証装置との認証処理を伴うアプリケーションプログラムを実行する情報処理装置に用いられる情報処理方法であって、第１暗号鍵に対応する第１復号鍵を記憶する鍵保持ステップと、セキュアブート後の自装置の完全性維持を第１の利用許可条件として前記第１暗号鍵を用いて暗号化された第２復号鍵と、前記アプリケーションプログラムの完全性維持を第２の利用許可条件として前記第２復号鍵に対応する第２暗号鍵を用いて暗号化された認証鍵とを記憶する鍵情報保持ステップと、前記第１復号鍵を用いて前記暗号化された第２復号鍵を復号し、前記第１の利用許可条件を満たす場合にのみ、さらに、当該復号により得た前記第２復号鍵を用いて前記暗号化された認証鍵を復号し、前記第２の利用許可条件を満たす場合にのみ当該復号により得た前記認証鍵を出力する復号処理ステップと、前記認証鍵が出力された場合に、前記認証鍵を用いて前記認証装置と前記認証処理を行う認証処理ステップとを含む。
【００２３】
本発明の一実施態様である情報処理プログラムは、複数のシステムプログラムの完全性を検証しつつ順に実行するセキュアブートを行った後、認証装置との認証処理を伴うアプリケーションプログラムを実行する情報処理装置に用いられる情報処理プログラムであって、第１暗号鍵に対応する第１復号鍵を記憶する鍵保持ステップと、セキュアブート後の自装置の完全性維持を第１の利用許可条件として前記第１暗号鍵を用いて暗号化された第２復号鍵と、前記アプリケーションプログラムの完全性維持を第２の利用許可条件として前記第２復号鍵に対応する第２暗号鍵を用いて暗号化された認証鍵とを記憶する鍵情報保持ステップと、前記第１復号鍵を用いて前記暗号化された第２復号鍵を復号し、前記第１の利用許可条件を満たす場合にのみ、さらに、当該復号により得た前記第２復号鍵を用いて前記暗号化された認証鍵を復号し、前記第２の利用許可条件を満たす場合にのみ当該復号により得た前記認証鍵を出力する復号処理ステップと、前記認証鍵が出力された場合に、前記認証鍵を用いて前記認証装置と前記認証処理を行う認証処理ステップとをコンピュータに実行させる。
【００２４】
本発明の一実施態様である記録媒体は、複数のシステムプログラムの完全性を検証しつつ順に実行するセキュアブートを行った後、認証装置との認証処理を伴うアプリケーションプログラムを実行する情報処理装置に用いられる情報処理プログラムを記憶するコンピュータ読み取り可能な記録媒体であって、前記情報処理プログラムは、第１暗号鍵に対応する第１復号鍵を記憶する鍵保持ステップと、セキュアブート後の自装置の完全性維持を第１の利用許可条件として前記第１暗号鍵を用いて暗号化された第２復号鍵と、前記アプリケーションプログラムの完全性維持を第２の利用許可条件として前記第２復号鍵に対応する第２暗号鍵を用いて暗号化された認証鍵とを記憶する鍵情報保持ステップと、前記第１復号鍵を用いて前記暗号化された第２復号鍵を復号し、前記第１の利用許可条件を満たす場合にのみ、さらに、当該復号により得た前記第２復号鍵を用いて前記暗号化された認証鍵を復号し、前記第２の利用許可条件を満たす場合にのみ当該復号により得た前記認証鍵を出力する復号処理ステップと、前記認証鍵が出力された場合に、前記認証鍵を用いて前記認証装置と前記認証処理を行う認証処理ステップとをコンピュータに実行させる。
【００２５】
本発明の一実施態様である集積回路は、複数のシステムプログラムの完全性を検証しつつ順に実行するセキュアブートを行った後、認証装置との認証処理を伴うアプリケーションプログラムを実行する情報処理装置に用いられる集積回路であって、第１暗号鍵に対応する第１復号鍵を記憶する鍵保持手段と、セキュアブート後の自装置の完全性維持を第１の利用許可条件として前記第１暗号鍵を用いて暗号化された第２復号鍵と、前記アプリケーションプログラムの完全性維持を第２の利用許可条件として前記第２復号鍵に対応する第２暗号鍵を用いて暗号化された認証鍵とを記憶する鍵情報保持手段と、前記第１復号鍵を用いて前記暗号化された第２復号鍵を復号し、前記第１の利用許可条件を満たす場合にのみ、さらに、当該復号により得た前記第２復号鍵を用いて前記暗号化された認証鍵を復号し、前記第２の利用許可条件を満たす場合にのみ当該復号により得た前記認証鍵を出力する復号処理手段と、前記認証鍵が出力された場合に、前記認証鍵を用いて前記認証装置と前記認証処理を行う認証処理手段とを備える。
【００２６】
この構成によれば、複数のシステムプログラムのいずれかを更新する場合に、保持されている前記暗号化された第１復号鍵を、第２暗号鍵を用い当該更新後におけるセキュアブート後の自装置の完全性維持を第１の利用許可条件として暗号化された第１復号鍵に置き換えるのみで、当該更新により前記暗号化された第１復号鍵が復号できなくなるのを防ぐことができ、前記暗号化された認証鍵に当該更新の影響を及ぼさないようにできる。そして、前記認証装置にあっては、前記更新の前後いずれの場合にも、前記情報処理装置との間で前記認証鍵を用いて前記認証処理を行うことができる。すなわち、前記情報処理装置において前記更新があっても、前記認証鍵を用いて認証することで、更新後のセキュアブート後の情報処理装置の完全性の維持と、前記アプリケーションプログラムの完全性の維持とを確認することができる。また、前記認証装置において、従来のようにデータベース等を保持、更新する必要はない。
１．第１の実施形態
本発明の第１の実施形態について説明する。
【００２７】
図１は、第１の実施形態のシステム構成を示す図である。
端末Ａ１００と端末Ｂ１０１とは、有線または無線の通信手段を用いて接続し相互にデータ通信を行う。具体的には、端末Ａ１００は、搭載されているアプリケーションモジュールＸを用い、端末Ｂ１０１からストリーミング伝送されるコンテンツを受信する。このアプリケーションモジュールＸは、アプリケーションモジュールＸの提供者から予めアプリケーションモジュールＸに関するバージョン等の情報やオブジェクトコード等の提供を受けた端末Ａ１００の製造者により、端末Ａ１００のシステムモジュールと共に端末Ａ１００にプリインストールされ出荷される。出荷後においては、端末Ａ１００に搭載されたソフトウェアは改ざんされる可能性がある。
【００２８】
端末Ｂ１０１は、端末Ａ１００にコンテンツをストリーミング送信するのであるが、著作権保護の観点等から、改ざんされたソフトウェアの制御に従い端末Ａ１００が動作することでコンテンツが端末Ａ１００内に不正に保存されたり、他の端末へ不正に転送されたりするなど端末Ｂ１０１が意図しない処理が行われるのを防ぐ必要がある。そのため、端末Ｂ１０１は、改ざんされたソフトウェアが端末Ａ１００上で起動していないこと、すなわち端末Ａ１００の完全性が維持されている、正規のシステムモジュールとアプリケーションモジュールＸとが正規のソフトウェアとして起動していることを認証する。
【００２９】
この認証処理の概要を図２４を用いて説明する。
端末Ａ１００は、２つの暗号化された秘密鍵１、２（２４０１、２４０２）を保持している。秘密鍵１（２４０１）と秘密鍵２（２４０２）は、いずれもＲＳＡ（ＲＩＶＥＳＴ  ＳＨＡＭＩＲ  ＡＤＬＥＭＡＮ）暗号方式の秘密鍵であり、鍵長は２０４８ビットである。これらの秘密鍵は、復号条件を示す復号条件情報と共に暗号化されている。この暗号化された秘密鍵は、端末Ａ１００が備えるセキュリティモジュール内で復号される。セキュリティモジュールは、復号により秘密鍵と復号条件を示す情報とを得るが、このとき、復号条件が満たされているか否かを判定し、満たされていない場合には秘密鍵をセキュリティモジュール外に出力しない。ここで、秘密鍵１（２４０１）とともに暗号化された復号条件情報は、端末Ａ１００がシステムモジュール群をセキュアブートした場合に得られる情報である。セキュアモジュールは、詳細は後述するが、端末Ａ１００における各ソフトウェアの起動状態を示す状態情報を保持し、これを用いて復号条件情報を検証する機能を有する。そして、秘密鍵１の暗号化は、セキュリティモジュールが保持しているルート鍵により復号できるように成されている。また、秘密鍵２（２４０２）とともに暗号化された復号条件情報は、端末Ａ１００がアプリケーションモジュールＸを起動した場合に得られる情報である。そして、秘密鍵２の暗号化は、秘密鍵１により復号できるように成されている。
【００３０】
端末Ａ１００は、端末Ｂ１０１との間で認証処理を行うのに先立ち、暗号化された秘密鍵１（２４０１）をセキュリティモジュールが保持するルート鍵で復号し、次に暗号化された秘密鍵２（２４０２）を秘密鍵１で復号する。そして、復号された秘密鍵２（２４０２）を用いて、端末Ｂ１０１との間で認証処理を行う。この認証処理では、端末Ａ１００が秘密鍵２を用いて電子署名を生成して端末Ｂ１０１に送信する。端末Ｂ１０１は、この電子署名の有効性を検証することで認証処理を行う。
【００３１】
認証処理において、端末Ｂ１０１は、端末Ａ１００において秘密鍵２を用いて電子署名が生成された場合にのみ認証成功と判定する。よって、端末Ａ１００において秘密鍵２（２４０２）が正常に復号された場合にのみ認証処理が成功する。また、秘密鍵２（２４０２）が正常に復号されるのは、端末Ａ１００において秘密鍵１（２４０１）が正常に復号される場合のみである。このように、端末Ｂ１０１は、端末Ａ１００から送信される電子署名の有効性を検証するのみで、端末Ａ１００の完全性、端末Ａ１００においてシステムモジュール群のセキュアブートが完了し、かつ、アプリケーションモジュールＸが正常に起動されたか否かについて確認することができる。
１．１．構成
１．１．１．端末Ａ１００
図２は、本発明の第１の実施形態における端末Ａ１００の構成を示している。
【００３２】
端末Ａ１００は、モジュール記憶部２０１、モジュール起動制御部２０２、モジュール実行部２０３、セキュリティモジュール２０４、鍵情報保持部２０５、認証処理部２０６、通信部２０７、モジュール更新部２０８、及び鍵情報更新部２０９とを含んで構成される。
【００３３】
また、セキュリティモジュール２０４は、端末Ａ１００のソフトウェアの起動状態を保持する状態情報保持部２１０と、暗号化された鍵を復号して秘密鍵を出力する復号処理部２１１と、復号処理部２１１が出力する秘密鍵を用いて署名処理を行う署名処理部２１２と、暗号化鍵の復号に用いられるルート鍵２１３を保持するルート鍵記憶部２１４とから構成される。ルート鍵２１３は、ＲＳＡ暗号方式の秘密鍵であり、その鍵長は２０４８ビットである。
【００３４】
モジュール記憶部２０１は、端末Ａ１００におけるモジュール実行部２０３により実行されるソフトウェアモジュールを格納している。
図４（ａ）は、モジュール記憶部２０１に格納されているモジュールと、各モジュールに対応するモジュール証明書とを示す図である。
【００３５】
端末Ａ１００のセキュアブート時には、最初にシステムモジュール１（４１１）が起動され、次いで、システムモジュール２（４１２）、システムモジュール３（４１３）が連続的に起動される。これらのブートが完了した後、ユーザの起動操作に基づきアプリケーションモジュールＸ（４１４）、アプリケーションモジュールＹ（４１５）が起動される。ここで、セキュアブートとは、全てのモジュールにおいて不正な改ざんが行われていないことが確認できた場合にのみ端末を起動させるブート方法である。
【００３６】
図４（ｂ）は、モジュール証明書のデータ構造を示す図である。
モジュール証明書は、モジュール識別情報４０１、モジュール計測値４０２、起動条件４０３、発行者識別情報４０４及び電子署名４０５とから構成される。モジュール識別情報４０１は、モジュールを識別する名称を示す。具体的には、モジュールを一意に識別する名称を示すテキストデータ又はモジュールを一意に識別する番号である。モジュール計測値４０２は、モジュールのハッシュ値である。起動条件４０３は、モジュールを起動する際の起動を許可する条件を示す。具体的には、本証明書に対応するモジュールを起動する前の状態において、後述する状態情報保持部２１０のレジスタに格納されているべき期待値が設定されている。すなわち、本証明書に対応するモジュールを起動するにあたり、状態情報保持部２１０のレジスタに格納されているべき期待値と、起動条件４０３の値が一致する場合に起動が許可されることになる。発行者識別情報４０４は、モジュールの発行者を示す識別情報である。電子署名４０５は、モジュール識別情報４０１とモジュール計測値４０２と起動条件４０３と発行者識別情報４０４に対して、モジュールの発行者が生成する電子署名である。
【００３７】
モジュール起動制御部２０２は、モジュール記憶部２０１に格納されているシステムモジュール群のセキュアブートの制御やアプリケーションモジュールの起動を制御する。具体的には、モジュール起動制御部２０２は、各モジュールを起動する際に、モジュール証明書の電子署名４０５を検証する。検証に成功した場合、モジュール起動制御部２０２は、起動しようとしているモジュールのハッシュ値を生成して、モジュール証明書のモジュール計測値４０２と照合し、一致する場合にのみそのモジュールを起動する。特に、システムモジュール１、システムモジュール２、システムモジュール３を起動する際には、モジュール起動制御部２０２は、前述の電子証明書４０５の検証と、モジュールのハッシュ値の照合に加え、状態情報保持部２１０のレジスタに格納されている値と起動条件４０３とを照合し、一致する場合にのみそのモジュールを起動する。モジュール起動制御部２０２が、前述の起動手順により各モジュールを起動させれば、仮にいずれかのモジュールに不正な改ざんが行われた場合に端末そのものの起動が成功しないので、セキュアなブートが実現される。この起動手順をセキュアブートという。また、モジュール起動制御部２０２は、セキュアブートの際に、及びアプリケーションモジュールＸ又はアプリケーションモジュールＹを起動する際に、起動したソフトウェアモジュールのモジュール証明書のモジュール計測値４０２を、状態情報保持部２１０のレジスタに累積演算させる。この結果、起動したソフトウェアモジュールに関する情報が状態情報保持部２１０に保持される。具体的には、モジュール起動制御部２０２は、状態情報保持部２１０のレジスタに対して、レジスタに保持されている値とモジュール証明書のモジュール計測値４０２とをデータ結合し、さらにＳＨＡ１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ  Ｏｎｅ）のハッシュ演算を行った結果をレジスタに格納する累積演算を行う。この累積演算には、一例としてＴＣＧによって策定されたＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）仕様「ＴＰＭ  Ｍａｉｎ  Ｐａｒｔ１  Ｄｅｓｉｇｎ  Ｐｒｉｎｃｉｐｌｅ  １」で開示されるＴＰＭ＿Ｅｘｔｅｎｄ処理が用いられる。
【００３８】
モジュール実行部２０３は、モジュール起動制御部２０２によって起動されたソフトウェアモジュールの実行環境である。
セキュリティモジュール２０４は、耐タンパ性を有し、暗号化鍵の復号処理を行う。詳細については後述する。
【００３９】
鍵情報保持部２０５は、暗号化鍵を保持している。本実施の形態では、鍵情報保持部２０５は、端末Ａの製造者により生成される２つの鍵情報５００、５１０を保持している。
図５は、鍵情報保持部２０５に保持されている鍵情報の構成を示す図である。
【００４０】
鍵情報５００は、鍵ＩＤ５０１、暗号化鍵Ａ１（５０２）、証明書Ａ１（５０３）、及び復号鍵ＩＤ（５０４）とから構成される。鍵ＩＤ（５０１）には、公開鍵Ａ１を示すＩＤが設定されている。公開鍵Ａ１は、秘密鍵Ａ１（５０６）に対応する。証明書Ａ１（５０３）は、公開鍵Ａ１の証明書である。証明書の詳細については、後述する。復号鍵ＩＤ（５０４）には、暗号化鍵Ａ１の復号鍵であるルート鍵（ＲｏｏｔＫＥＹ−Ａ）を示すＩＤが設定されている。暗号化鍵Ａ１（５０２）は、復号条件Ａ１（５０５）と秘密鍵Ａ１（５０６）とが、復号鍵ＩＤ（５０４）により示されるルート鍵２１３で復号できるよう暗号化されたものである。本実施の形態では、ルート鍵２１３は、公開鍵暗号の秘密鍵であり、暗号化鍵Ａ１（５０２）は、ルート鍵２１３に対応する公開鍵により暗号化されている。復号条件Ａ１（５０５）は、暗号化鍵Ａ１（５０２）を復号するための条件を示す。復号条件Ａ１（５０５）は、具体的には、モジュール起動制御部２０２によるシステムモジュール１、システムモジュール２、システムモジュール３のセキュアブートが完了した場合に、状態情報保持部２１０のレジスタに格納されているべき期待値である。セキュアブート完了後において、この期待値と、状態情報保持部２１０のレジスタに実際に格納されている値とが一致する場合のみ、セキュリティモジュール２０４は、秘密鍵Ａ１（５０６）をセキュアモジュール２０の外に出力する。よって、他のモジュールは、セキュアブートが完了している場合にのみ秘密鍵Ａ１（５０６）を取得できることとなる。
【００４１】
鍵情報５１０は、鍵ＩＤ（５１１）、暗号化鍵Ａ２（５１２）、証明書Ａ２（５１３）及び復号鍵ＩＤ（５１４）とから構成される。鍵ＩＤ（５１１）には、公開鍵Ａ２を示すＩＤが設定されている。公開鍵Ａ２は、秘密鍵Ａ２（５１６）に対応する。証明書Ａ２（５１３）は、公開鍵Ａ２の証明書である。証明書の詳細については後述する。復号鍵ＩＤ（５１４）には、暗号化鍵Ａ２の復号鍵である秘密鍵Ａ１を示すＩＤが設定されている。暗号化鍵Ａ２（５１２）は、復号条件Ａ２（５１５）と秘密鍵Ａ２（５１６）とが、復号鍵ＩＤ（５１４）により示される秘密鍵Ａ１（５０６）によって復号できるよう暗号化されたものである。本実施の形態では、秘密鍵Ａ１（５０６）は、公開鍵暗号の秘密鍵であり、暗号化鍵Ａ２（５１２）は、秘密鍵Ａ１（５０６）に対応する公開鍵Ａ１により暗号化されている。復号条件Ａ２（５１５）は、具体的には、モジュール起動制御部２０２による正規のアプリケーションモジュールＸの起動が成功した場合に、状態情報保持部２１０のレジスタに格納されているべき期待値である。正規のアプリケーションモジュールＸの起動が成功した場合において、この期待値と、状態情報保持部２１０のレジスタに実際に格納されている値とが一致している場合のみ、セキュアモジュール２０は、秘密鍵Ａ２（５１６）をセキュアモジュール２０の外に出力する。よって、他のモジュールは、正規のアプリケーションモジュールＸの起動が成功した場合にのみ秘密鍵Ａ２（５１６）を取得できることとなる。なお、秘密鍵Ａ１と、秘密鍵Ａ２とは、何れもＲＳＡ暗号方式の秘密鍵であり、鍵長は２０４８ビットである。
【００４２】
以上説明したように、秘密鍵Ａ２（５１６）に施されている暗号を復号するためには秘密鍵Ａ１（５０６）が必要である。また、秘密鍵Ａ１（５０６）に施されている暗号はセキュアブートが完了している場合にのみ復号できる。よって、秘密鍵Ａ２（５１６）に施されている暗号は、セキュアブートが完了し、かつ、正規のアプリケーションモジュールＸが起動されている場合にのみ復号できる。
【００４３】
次に、証明書Ａ１（５０３）、証明書Ａ２（５１３）の詳細について説明する。
図６（ａ）は、公開鍵Ａ１の証明書である証明書Ａ１（５０３）のデータ構造を示す図である。
【００４４】
証明書Ａ１（５０３）は、バージョン６０１、アルゴリズムＩＤ（６０２）、発行者６０３、有効期間６０４、サブジェクト６０５、公開鍵Ａ１（６０６）、秘密鍵Ａ１（５０６）の利用条件６０７、端末情報６０８及び発行者署名６０９を含んで構成される。
【００４５】
バージョン６０１は、証明書のデータ構造のバージョンを示す。アルゴリズムＩＤ（６０２）は、秘密鍵Ａ１の暗号アルゴリズムを示す。発行者６０３は、証明書の発行者を示す。本実施形態では、端末Ａ製造者を示す。有効期間６０４は、証明書の有効期間を示す。サブジェクト６０５は、証明書Ａ１（５０３）が証明する主体である端末Ａ１００を示す証明書のサブジェクトである。利用条件６０７は、公開鍵Ａ１（６０６）と、秘密鍵Ａ１（５０６）の利用条件に関する属性を示す。利用条件６０７には、「秘密鍵Ａ１（５０６）は暗号化されている。秘密鍵Ａ１（５０６）に施されている暗号は、端末Ａ１００がセキュアブートを完了している場合にのみ復号される。」という秘密鍵Ａ１（５０６）の利用条件を示す情報がテキストデータ又はＸＭＬまたはＡＳＮ．１（Ａｂｓｔｒａｃｔ  Ｓｙｎｔａｘ  Ｎｏｔａｔｉｏｎ  Ｏｎｅ）エンコードされたデータなどのバイナリデータの形態で設定されている。
【００４６】
図２６（ａ）は、利用条件６０７をＡＳＮ．１形式で設定した場合のデータの内容を模式的に示している。
この場合、”SecretKey = ENCRYPTED"（２６０１）は、上述の「秘密鍵Ａ１（５０６）は暗号化されている」ことを示している。また、"Condition = SECURE#BOOT#COMPLETED"（２６０２）は、上述の「秘密鍵"Ａ１"（５０６）に施されている暗号は、端末Ａがセキュアブートを完了している場合にのみ復号される。」ことを示している。実際には、これをＢＥＲ（Ｂａｓｉｃ  Ｅｎｃｏｄｉｎｇ  Ｒｕｌｅｓ）やＤＥＲ（Ｄｉｓｔｉｎｇｕｉｓｈｅｄ  Ｅｎｃｏｄｉｎｇ  Ｒｕｌｅｓ）の規定に従ってＴＬＶ（Ｔａｇ  Ｌｅｎｇｔｈ  Ｖａｌｕｅ）符号化したバイナリデータが利用条件６０７に設定される。
【００４７】
端末情報６０８は、端末Ａ１００の機種名や製造者名、サポートする暗号アルゴリズム情報などの端末Ａ１００に関する属性を示す。端末情報６０８には、機種名や製造者名、サポートする暗号アルゴリズム情報の他に、状態情報保持部２１０のシステム用のレジスタを示す情報と、状態情報保持部２１０のアプリケーション用のレジスタを示す情報が、テキストデータまたはＸＭＬまたはＡＳＮ．１エンコードされたデータなどのバイナリデータの形態で設定されている。
【００４８】
図２７は、端末情報６０８の一例をＡＳＮ．１形式で設定した場合のデータの内容を示している。
この場合“ ProductCode = "ABCD1234""（２７０１）は、「端末Ａ１００の機種名が"ABCD1234"である」ことを示している。  また、" Manufacture = "Company A""（２７０２）は、「端末Ａ１００の製造者名が"Company A"である」ことを示している。さらに"CipherAlgorithm = sha1WithRSAEncryption"（２７０３）は、「端末Ａ１００がハッシュ演算のアルゴリズムとしてＳＨＡ１を、公開鍵暗号のアルゴリズムとしてＲＳＡ暗号をそれぞれサポートする」ことを示している。また、”Register4System: Register = 0, Register = 1, Register = 2, Register = 3, Register = 4, Register = 5, Register = 6, Register = 7"（２７０４）は、端末Ａ（１００）の状態情報保持部２１０のシステム用のレジスタを示している。"Register4Application: Register = 8, Register = 9, Register = 10, Register = 11, Register = 12, Register = 13, Register = 14, Register = 15"（２７０５）は、端末Ａ（１００）の状態情報保持部２１０のアプリケーション用のレジスタを示している。実際には、これをＢＥＲやＤＥＲの規定に従ってＴＬＶ符号化したバイナリデータが端末情報６０８に設定される。
【００４９】
状態情報保持部２１０のシステム用のレジスタとアプリケーション用のレジスタについては、後述の状態情報保持部２１０の説明において詳しく説明する（図７参照）。
発行者署名６０９は、バージョン６０１、アルゴリズムＩＤ６０２、発行者６０３、有効期間６０４、サブジェクト６０５、公開鍵Ａ１（６０６）、秘密鍵Ａ１（５０６）の利用条件６０７及び端末情報６０８を含む情報に対し生成された発行者による電子署名である。
【００５０】
図６（ｂ）は、公開鍵Ａ２の証明書である証明書Ａ２（５１３）のデータ構造を示す図である。
証明書Ａ２（５１３）は、バージョン６１１、アルゴリズムＩＤ６１２、発行者６１３、有効期間６１４、サブジェクト６１５、公開鍵Ａ２（６１６）、秘密鍵Ａ２（５１６）の利用条件６１７及び発行者署名６１９を含んで構成される。
【００５１】
バージョン６１１は、証明書のデータ構造のバージョンを示す。アルゴリズムＩＤ６１２は、秘密鍵Ａ２の暗号アルゴリズムを示す。発行者６１３は、証明書の発行者を示す。本実施形態では、発行者６１３は端末Ａ製造者を示す。有効期間６１４は、証明書の有効期間を示す。サブジェクト６１５は、証明書Ａ２（５１３）が証明する主体である端末Ａを示す証明書のサブジェクトである。利用条件６１７は、公開鍵Ａ２（６１６）と、秘密鍵Ａ２（５１６）の利用条件に関する属性を示す。利用条件６１７には、「秘密鍵Ａ２（５１６）は暗号化されている。秘密鍵Ａ２（５１６）に施されている暗号は、端末Ａがセキュアブートを完了し、正規のアプリケーションモジュールＸが起動している場合にのみ復号される。」という秘密鍵Ａ２（５１６）の利用条件を示す情報がテキストデータまたはＸＭＬまたはＡＳＮ．１エンコードされたデータなどのバイナリデータの形態で設定されている。
【００５２】
図２６（ｂ）は、利用条件６１７をＡＳＮ．１形式で設定した場合のデータの内容を模式的に示している。
この場合、”SecretKey = ENCRYPTED"（２６１１）は、「秘密鍵Ａ２（５１６）は暗号化されている」ことを示す。また、"Condition = SECURE#BOOT#COMPLETED"（２６１２）と"AndCondition: State = APPLICATION#EXECUTING, Application = "APPLICATION#MODULE#X""（２６１３）は、「秘密鍵Ａ２（５１６）に施されている暗号は、端末Ａがセキュアブートを完了し、かつ、正規のアプリケーションモジュールＸが起動している場合にのみ復号される。」ことを示している。実際には、これをＢＥＲやＤＥＲの規定に従ってＴＬＶ符号化したバイナリデータが利用条件６１７に設定される。
【００５３】
発行者署名６１９は、バージョン６１１、アルゴリズムＩＤ６１２、発行者６１３、有効期間６１４、サブジェクト６１５、公開鍵Ａ２（６１６）、秘密鍵Ａ２（５１６）の利用条件６１７とを含む情報に対し生成された発行者による電子署名である。
【００５４】
次に、セキュリティモジュール２０４について説明する。セキュリティモジュール２０４は、具体的にはＴＣＧによって仕様が策定されたＴＰＭ等によって実現されるが、これに限らず、耐タンパ性を備えた同等の機能を有するその他のハードウェアモジュールや、ソフトウェアモジュールであってもよい。
【００５５】
認証処理部２０６は、端末Ｂ１０１との認証処理を制御する。通信部２０７は、端末Ｂ１０１と有線または無線での通信を行う。モジュール更新部２０８は、モジュール記憶部２０１に格納されているモジュールを更新する。鍵情報更新部２０９は、鍵情報保持部２０５に保持されている暗号化鍵を更新する。
【００５６】
図７は、セキュリティモジュール２０４の詳細な内部構成を示す図である。
状態情報保持部２１０は、レジスタ０〜１５の１６個のレジスタを備える。レジスタ０〜７は、端末Ａ１００で起動するシステムモジュールの起動状態に関連する情報を保持する。具体的には、セキュアブートの際に、起動したソフトウェアモジュールのモジュール証明書のモジュール計測値４０２が、モジュール起動制御部２０２によってシステム用のレジスタ０からレジスタ７の何れかのレジスタに対し累積演算される。レジスタ８〜１５は、端末Ａで起動するアプリケーションモジュールの起動状態に関連する情報を保持する。具体的には、アプリケーションモジュールＸまたはアプリケーションモジュールＹを起動する際に、モジュール起動制御部２０２によって、起動したソフトウェアモジュールのモジュール証明書のモジュール計測値４０２が、アプリケーション用のレジスタ８からレジスタ１５の何れかのレジスタに対して累積演算される。これにより、レジスタ０〜１５の各レジスタには、起動しているソフトウェアモジュールのハッシュ値の累積値が保持される。
【００５７】
復号処理部２１１は、暗号化鍵の復号処理を行う復号部７０１と、復号された秘密鍵を一時的に保持する秘密鍵保持部７０２とから構成される。秘密鍵保持部７０２に格納された秘密鍵は、復号部７０１での復号処理や署名処理部２１２での電子署名の生成処理に用いられる。
１．１．２．端末Ｂ１０１
図３は、本発明の第１の実施形態における端末Ｂ１０１の構成を示す図である。
【００５８】
端末Ｂ１０１は、端末Ｂ１０１が実行するソフトウェアモジュールを格納するモジュール記憶部３０１と、モジュール記憶部３０１に格納されているモジュールの起動を制御するモジュール起動制御部３０２と、モジュール起動制御部３０２によって起動されたソフトウェアモジュールの実行環境であるモジュール実行部３０３と、端末Ａ１００との認証処理を制御する認証処理部３０６と、端末Ａ１００との有線または無線での通信を行う通信部３０７とから構成される。
【００５９】
認証処理部３０６には、上記で説明した証明書Ａ２（５１３）のデータ構造を解析するための情報と、証明書Ａ２（５１３）の有効性を検証するための端末Ａの製造者の公開鍵（不図示）が保持されている。この端末Ａ１００の製造者の公開鍵は、証明書Ａ２に施されている署名の生成に用いられた端末Ａの製造者の秘密鍵に対応するＲＳＡ暗号方式の公開鍵である。
１．２．動作
１．２．１．認証処理
アプリケーションモジュールＸが起動している端末Ａ１００が端末Ｂ１０１との間で行なう認証処理のシーケンスについて図８を用いて説明する。
【００６０】
まず、端末Ａ１００の認証処理部２０６は、端末Ｂ１０１に認証処理を要求するメッセージを送る（Ｓ８０１）。すると、端末Ｂ１０１の認証処理部３０６が端末Ａ１００との認証処理を開始し、ランダムな文字列であるｎｏｎｃｅを生成し（Ｓ８０２）、端末Ａ１００に送信する（Ｓ８０３）。ｎｏｎｃｅを受信した端末Ａ１００の認証処理部２０６は、暗号化鍵Ａ２（５１２）と証明書Ａ２（５１３）と暗号化鍵Ａ１（５０２）を鍵情報保持部２０５から読み出し（Ｓ８０４）、さらに、セキュリティモジュール２０４に暗号化鍵Ａ１（５０２）の復号を要求する（Ｓ８０５）。
【００６１】
セキュリティモジュール２０４の復号処理部２１１は、ルート鍵２１３を用いて暗号化鍵（Ａ１）の復号処理を行い（Ｓ８０６）、処理結果を認証処理部２０６に送信する（Ｓ８０７）。この時、セキュリティモジュール２０４は、暗号化鍵Ａ１（５０２）を復号して復号条件Ａ１（５０５）を取り出し、状態情報保持部２１０のレジスタに格納されている値と復号条件Ａ１（５０５）とを照合し、照合に成功した場合には復号処理成功の処理結果を送信する。また、状態情報保持部２１０のレジスタに格納されている値と復号条件Ａ１（５０５）との照合に失敗した場合には復号処理失敗の処理結果を送信する。Ｓ８０７の処理結果が失敗であった場合、認証処理部２０６は認証処理を中止し、Ｓ８０７の処理結果が成功であった場合、認証処理部２０６はセキュリティモジュール２０４に暗号化鍵Ａ２の復号を要求する（Ｓ８０８）。
【００６２】
セキュリティモジュール２０４における復号処理部２１１は、Ｓ８０６の復号処理で得られた秘密鍵Ａ１を用いて暗号化鍵Ａ２の復号処理を行い（Ｓ８０９）、処理結果を認証処理部２０６に送信する（Ｓ８１０）。この復号処理では、セキュリティモジュール２０４は、暗号化鍵Ａ２（５１２）を復号して復号条件Ａ２（５１５）を取り出し、状態情報保持部２１０のレジスタに格納されている値と復号条件Ａ２（５１５）とを照合し、照合に成功した場合には復号処理成功の処理結果を送信する。また、状態情報保持部２１０のレジスタに格納されている値と復号条件Ａ２（５１５）との照合に失敗した場合には復号処理失敗の処理結果を送信する。Ｓ８０９の復号処理の詳細は後に別途説明する。
【００６３】
Ｓ８１０の処理結果が失敗であった場合、認証処理部２０６は認証処理を中止し、Ｓ８１０の処理結果が成功であった場合、認証処理部２０６は、セキュリティモジュール２０４に秘密鍵Ａ２によるｎｏｎｃｅへの署名処理を要求する（Ｓ８１１）。セキュリティモジュール２０４は、Ｓ８０９で復号した秘密鍵Ａ２によるｎｏｎｃｅへの署名処理を行い（Ｓ８１２）、電子署名を認証処理部２０６に送信する（Ｓ８１３）。署名処理は、具体的には、ｎｏｎｃｅのハッシュ値を生成し、そのハッシュ値に対して秘密鍵Ａ２により暗号化する処理である。認証処理部２０６は、受信した電子署名と証明書Ａ２とを端末Ｂ１０１へ送信する（Ｓ８１４）。
【００６４】
端末Ｂ１０１は、まず、認証処理部３０６が受信した証明書Ａ２を端末Ａ製造者公開鍵を用いて検証し（Ｓ８１５）、さらに、検証された証明書Ａ２に含まれる公開鍵Ａ２（６１６）を用いて、受信した電子署名がｎｏｎｃｅに対する秘密鍵Ａ２による電子署名であることを検証し（Ｓ８１６）、認証結果を端末Ａ１００に送信し、端末Ａ１００の認証処理部２０６が認証結果を受信して認証処理を終了する（Ｓ８１７）。Ｓ８１６の電子署名の検証では、具体的には、認証処理部３０６が、まず、Ｓ８０３にて端末Ａ１００へ送信したｎｏｎｃｅのハッシュ値を生成し、次に、受信した電子署名を公開鍵Ａ２（６１６）を用いて復号して、ｎｏｎｃｅのハッシュ値と照合する。なお、Ｓ８１２においてｎｏｎｃｅに対して署名処理を行っているが、ｎｏｎｃｅの値に対してハッシュ値を生成することなく直接秘密鍵Ａ２で暗号化するようにしてもよい。この場合、Ｓ８１５においては、暗号化されたｎｏｎｃｅを公開鍵Ａ２（６１６）を用いて復号し、復号した結果とＳ８０３にて端末Ａ１００へ送信したｎｏｎｃｅの値と等しいかどうかを照合するようにしてもよい。
１．２．２．暗号化鍵Ａ２の復号処理
以下、図８のＳ８０９における秘密鍵Ａ１による暗号化鍵Ａ２の復号処理について詳細に説明する。
【００６５】
図９は、秘密鍵Ａ１による暗号化鍵Ａ２の復号処理の詳細なフローを示す図である。
まず、認証処理部２０６が、鍵情報保持部２０５が保持する鍵情報５１０において、復号鍵ＩＤ５１４が示す秘密鍵Ａ１（５０６）が暗号化鍵Ａ２（５１２）の復号に用いる復号鍵であると特定する（Ｓ９０１）。次に、認証処理部２０６からの要求に基づき、セキュリティモジュール２０４の復号部７０１が、ルート鍵２１３を用いて暗号化鍵Ａ１（５０２）を復号することで秘密鍵Ａ１（５０６）を取得する（Ｓ９０２）。さらに、復号部７０１が、状態情報保持部２１０のレジスタを参照して復号条件Ａ１（５０５）との照合値を取得し（Ｓ９０３）、取得した照合値と復号条件Ａ１（５０５）とを照合する（Ｓ９０４）。照合値と一致しなかった場合には（Ｓ９０４：ＮＧ）、端末Ａ１００はセキュアブートを完了した場合とは異なる状態にあることになる。したがって、セキュリティモジュール２０４はステップＳ９０２で復号したデータを消去し、復号処理失敗の処理結果を認証処理部２０６へ送信して、処理を中止する。照合値と一致した場合には（Ｓ９０４：ＯＫ）、端末Ａ１００はセキュアブートを完了した状態にあることになる。したがって、Ｓ９０２で復号した秘密鍵Ａ１を秘密鍵保持部２１１に保持し、復号処理成功の処理結果を認証処理部２０６へ送信する（Ｓ９０５）。
【００６６】
次に、認証処理部２０６からの要求に基づき、セキュリティモジュール２０４の復号部７０１は、秘密鍵保持部２１１に保持されている秘密鍵Ａ１を用いて暗号化鍵Ａ２を復号することで秘密鍵Ａ２を取得する（Ｓ９０６）。さらに、復号部７０１は、状態情報保持部２１０のレジスタを参照して復号条件Ａ２（５１５）との照合値を取得し（Ｓ９０７）、取得した照合値と復号条件Ａ２（５１５）とを照合する（Ｓ９０８）。照合値と一致しなかった場合には（Ｓ９０８：ＮＧ）、端末Ａ１００は正規のアプリケーションモジュールＸを起動した場合とは異なる状態にあることになり、セキュリティモジュール２０４はステップＳ９０６で復号したデータを消去し、復号処理失敗の処理結果を認証処理部２０６へ送信する。照合値と一致した場合には（Ｓ９０８：ＯＫ）、端末Ａ１００は正規のアプリケーションモジュールＸを起動した状態にあることになり、Ｓ９０６で復号した秘密鍵Ａ２を秘密鍵保持部２１１に保持し、復号処理成功の処理結果を認証処理部２０６へ送信する（Ｓ９０９）。ここで、秘密鍵Ａ２（５１６）に施されている暗号を復号して秘密鍵Ａ２（５１６）を取得し、秘密鍵Ａ２（５１６）を利用してＳ８１２の署名生成の処理をするためには、「端末Ａ１００がセキュアブートを完了している」という条件と、「端末Ａ１００が正規のアプリケーションモジュールＸを起動している」という条件の２つの条件が満たされている必要がある。すなわち、端末Ｂ１０１は、Ｓ８１６のｎｏｎｃｅに対する秘密鍵Ａ２による電子署名の有効性を検証しておけば、端末Ａ１００においてセキュアブートが完了し、正規のアプリケーションモジュールＸが起動されていることを確認することができる。これにより、端末Ｂ１０１において、アプリケーションモジュールＸの照合値を管理しなくとも、アプリケーションモジュールＸが起動されていることを確認することができる。また、これと同時に、端末Ａ１００がセキュアブートを完了していることも確認できるので、端末Ａ１００のシステム用のモジュールそれぞれの照合値を端末Ｂ１０１で管理しなくとも、端末Ａ１００のシステム用のモジュールが正常に起動したことを確認することができる。
１．２．３．鍵情報の更新処理
図１０は、本発明の第１の実施形態における端末Ａ１００の鍵情報更新部２０９による鍵情報５００の更新を模式的に示す図である。
【００６７】
鍵情報５００の更新は、システムモジュールの何れかのモジュールが更新された場合に行う。
更新の際、端末Ａ１００は、端末Ａ製造者から更新するシステムモジュールと新しい鍵情報５００’とを通信部２０７を介してダウンロードする。鍵情報５００’は、鍵情報５００の復号条件Ａ１を、復号条件Ａ１’に更新したものである。しかし、システムモジュールの何れかが更新されても、鍵情報５００における秘密鍵Ａ１、ルート鍵ＲｏｏｔＫＥＹ−Ａは同じものを使用することができる。以上の様な更新方式をとっているので、システムモジュールの更新による影響を他の鍵情報５１０等に与えず、鍵情報５００のみを更新するだけで済む。特に、本実施の形態では、鍵情報を、システムモジュール（ＯＳ以前に起動するモジュール）に対応する鍵情報５１０と、アプリケーションに対応する鍵情報５００とに分けて管理しているので、システムモジュールが更新された場合たとしてアプリケーションの提供者による更新作業は発生しない。よって、アプリケーションの提供者とシステムモジュールの製作者のそれぞれが行うべき作業を切り分けることができる。アプリケーションの提供者は、システムモジュールの提供者と異なることが多いので、このような切り分けができるとシステムのメンテナンスの手間は大きく軽減できる。
２．第２の実施形態
本発明の第２の実施形態について説明する。
【００６８】
第２の実施形態が第１の実施形態と異なるのは、端末Ａ１００が、端末Ｂ１０１との間で行っていた認証処理と同様の認証処理を、他の端末（端末Ｃ１０２）との間で行えるようにするために後述のペアリング処理を行っている点である。端末Ａ１００と端末Ｃ１０２との間でペアリング処理が行われた結果、端末Ａ１００に新たな鍵情報が設定されることになる。新たな鍵情報は、第１の実施形態における鍵情報５１０に相当するもので、復号条件には「端末Ａ１００での正規のシステムモジュールと正規のアプリケーションモジュールＹの起動」が設定される。端末Ａ１００にこのような新たな鍵情報を設定することにより、端末Ａ１００での正規のシステムモジュールと正規のアプリケーションモジュールＹの起動を条件として端末Ａ１００と端末Ｃ１０２との間で認証処理が行われるようにすることが可能となる。
【００６９】
図１１は、第２の実施形態のシステム構成を示す図である。
端末Ａ１００、端末Ｂ１０１については第１の実施形態と同じであり、第１の実施形態のシステム構成に、端末Ａ１００との間でペアリング処理、認証処理を実行する端末Ｃ１０２が追加されている。ここで、アプリケーションモジュールＹは、端末Ａ１００の出荷後に、アプリケーションモジュールＹの提供者が有するサーバからユーザによって端末Ａ１００にダウンロードされたものとする。また、アプリケーションモジュールＹが起動されている場合にのみ復号される暗号化鍵については、予め設定されていないものとする。
【００７０】
図２５は、本発明における端末Ａ１００と端末Ｃ１０２との間で行われるペアリング処理を模式的に表した図である。
端末Ａ１００には、１つの暗号化された秘密鍵１（２４０１）が保持されている。秘密鍵１（２４０１）の内容については、第１の実施形態で説明済みである。まず、端末Ａ１００の認証処理部２０６は、暗号化された秘密鍵１（２４０１）を復号し、復号された秘密鍵１を用いて端末Ｃ１０２との間で認証処理を行う。次に、端末Ｃ１０２では、秘密鍵３（２４０３）を、端末Ａ１００においてアプリケーションモジュールＹが起動している場合の期待値とともに暗号化して暗号化鍵を生成し、さらに、秘密鍵３（２４０３）に対応する公開鍵の証明書を生成する。そして、生成した暗号化鍵と証明書とを端末Ａ１００に送信する。暗号化鍵を生成する際の動作については後で詳細に説明する。このように、暗号化鍵と証明書とが端末Ａ１００に送信されてしまえば、その後は、第１の実施形態における端末Ａ１００と端末Ｂ１０１との間の認証処理と同様に、端末Ａ１００と端末Ｃ１０２との間で認証処理を行うことができる。この認証処理により端末Ｃ１０２は、端末Ａ１００においてアプリケーションモジュールＹが正常に起動していることを検証できる。
２．１．構成
図１２は、本発明の第２の実施形態における端末Ｃ１０２の構成を示す図である。
【００７１】
端末Ｃ１０２は、期待値保持部１２０１、ペアリング処理部１２０２、セキュリティモジュール１２０４、認証処理部１２０６及び通信部１２０７とを含んで構成される。期待値保持部１２０１は、相手側の端末で起動されているアプリケーションモジュールの期待値をデータベース（ＤＢ）として保持する。
【００７２】
図１３は、期待値保持部１２０１に保持されているアプリケーションモジュールの期待値ＤＢを示す。このＤＢには、各アプリケーションモジュールと、端末機種、期待値、提供者のＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）が対応づけて登録されている。
【００７３】
ペアリング処理部１２０２は、他の端末との間のペアリング処理を制御する。ペアリング処理部１２０２は、期待値ＤＢ中のＵＲＬをもとに通信部１２０７を介して定期的に各アプリケーションモジュールの提供者にアクセスする。そして、アプリケーションモジュールが更新されたことを認識した場合に、新しい期待値を受信して、期待値保持部１２０１に保持されているアプリケーションモジュールの期待値を更新する。
【００７４】
セキュリティモジュール１２０４は、暗号化鍵の生成処理を行う。セキュリティモジュール１２０４は、鍵生成部１２１１、生成した秘密鍵を暗号化する暗号化処理部１２１０、証明書を生成する際の署名処理行う署名処理部１２１２、署名処理に用いる署名鍵１２１３が保持された署名鍵保持部１２１４とを含んで構成されている。署名鍵１２１３は、ＲＳＡ暗号方式の秘密鍵であり、その鍵長は２０４８ビットである。
【００７５】
認証処理部１２０６は、端末Ａ１００との認証処理を制御する。認証処理部１２０６は、上記で説明した証明書Ａ１（５０３）および証明書Ａ２（５１３）のデータ構造を解析するための情報と、証明書Ａ１５０３の有効性を検証するための端末Ａの製造者の公開鍵（不図示）を保持している。この端末Ａ１００の製造者の公開鍵は、証明書Ａ１に施されている署名の生成に用いられた端末Ａ１００の製造者の秘密鍵に対応するＲＳＡ暗号方式の公開鍵である。
【００７６】
通信部１２０７は、端末Ａ１００と有線又は無線により通信を行う。
２．２．動作
２．２．１．ペアリング処理
端末Ａ１００と端末Ｃ１０２との間のペアリング処理のシーケンスについて、図１４を用いて説明する。
【００７７】
本ペアリング処理では、端末Ａ１００においてアプリケーションモジュールＹが起動していることを条件として認証が行われる。まず、端末Ａ１００の認証処理部２０６は、端末Ｃ１０２に対しアプリケーションモジュールＹでのペアリングを要求するメッセージを送る（Ｓ１４０１）。この時、メッセージには、アプリケーションモジュールＹを識別するアプリケーション名が含まれている。すると、端末Ａ１００と端末Ｃ１０２との間で、秘密鍵Ａ１（５０５）を用いた認証処理が行われる（Ｓ１４０２）。認証処理については、後述する。この認証処理に失敗した場合には、ペアリング処理は中止される。認証処理に成功した場合には、端末Ｃ１０２の認証処理部１２０６が、アプリケーションモジュールＹのアプリケーション名とステップＳ１４０２の認証処理で取得した公開鍵Ａ１の証明書Ａ１（５０３）とを含むペアリング処理要求をペアリング処理部１２０２に送信する（Ｓ１４０３）。
【００７８】
ペアリング処理部１２０２では、まず、受信した証明書Ａ１（５０３）の端末情報６０８に含まれる機種名から端末Ａ１００の機種名を特定する（Ｓ１４０４）。次に、ペアリング処理部１２０２は、期待値保持部１２０１に保持されている期待値ＤＢからＳ１４０３で受信したアプリケーション名とＳ１４０４で特定した機種名を検索キーとして、アプリケーションモジュールＹを端末Ａ１００が実行した場合の期待値を検索し（Ｓ１４０５）、検索結果として期待値を取得する（Ｓ１４０６）。このとき、期待値保持部１２０１の期待値ＤＢに、アプリケーションモジュールＹを端末Ａ１００が実行した場合の期待値が登録されていなかった場合、ペアリング処理部１２０２は、Ｓ１４０６で検索結果として検索エラーを受信して、ペアリング処理は中止される。ペアリング処理部１２０２は、期待値保持部１２０１からアプリケーションモジュールＹを端末Ａ１００が実行した場合の期待値を取得すると、取得した期待値を復号条件Ａ３（５２５）に設定する（Ｓ１４０７）。このように、端末Ｃ１０２は、アプリケーションモジュールＹを端末Ａ１００が実行した場合の期待値を、期待値保持部１２０１に予め格納しているので、端末Ａ１００から期待値を取得する必要はない。
【００７９】
さらに、ペアリング処理部１２０２は、証明書Ａ１（５０３）の端末情報６０８に含まれる端末Ａ１００がサポートする暗号アルゴリズム情報に含まれる公開鍵暗号方式のアルゴリズムの秘密鍵Ａ３（５２６）と、秘密鍵Ａ３（５２６）に対応する公開鍵Ａ３（１８０６）との鍵ペアを生成する（Ｓ１４０８）。そして、ペアリング処理部１２０２は、受信した証明書Ａ１（５０３）から公開鍵Ａ１（６０６）を抽出し（Ｓ１４０９）、公開鍵Ａ１（６０６）を用いて秘密鍵Ａ３（５２６）を復号条件Ａ３（５２５）とともに暗号化することで暗号化鍵Ａ３（５２２）を生成する（Ｓ１４１０）。次に、ペアリング処理部１２０２は、署名鍵１２１３を用いて秘密鍵Ａ３に対応する公開鍵Ａ３の証明書である証明書Ａ３（５２３）を生成する（Ｓ１４１１）。このとき、ペアリング処理部１２０２は、証明書Ａ３（５２３）のサブジェクトに、受信した証明書Ａ１（５０３）のサブジェクトと同じ端末Ａ１００を示す値を設定する。
【００８０】
ここで、証明書Ａ３（５２３）について説明する。
図１８は、証明書Ａ３（５２３）のデータ構造を示す図である。
証明書Ａ３は、バージョン１８０１、アルゴリズムＩＤ１８０２、発行者１８０３、有効期間１８０４、サブジェクト１８０５、公開鍵Ａ３（１８０６）、秘密鍵Ａ３（５２６）の利用条件１８０７及び発行者署名１８０９を含んで構成される。
【００８１】
バージョン１８０１は、証明書Ａ３は、証明書のデータ構造のバージョンを示す。アルゴリズムＩＤ１８０２は、秘密鍵Ａ３の暗号アルゴリズムを示す。発行者１８０３は、証明書の発行者である端末Ｃ１０２のユーザを示す。有効期間１８０４は、証明書の有効期間を示す。サブジェクト１８０５は、証明書Ａ３（５２３）が証明する主体である端末Ａ１００を示す。利用条件１８０７は、秘密鍵Ａ３（５２６）の利用条件に関する属性を示す。利用条件１８０７には、「秘密鍵Ａ３（５２６）は暗号化されている。秘密鍵Ａ３（５２６）に施されている暗号は、端末Ａがセキュアブートを完了し、正規のアプリケーションモジュールＹが起動している場合にのみ復号される。」という秘密鍵Ａ３（５２６）の利用条件を示す情報がテキストデータまたはＸＭＬまたはバイナリデータの形態で設定されている。発行者署名１８０９は、バージョン１８０１、アルゴリズムＩＤ１８０２、発行者１８０３、有効期間１８０４、サブジェクト１８０５、公開鍵Ａ３（１８０６）、秘密鍵Ａ３（５２６）の利用条件１８０７とを含む情報に対し生成された、発行者による電子署名である。以上で、証明書Ａ３（５２３）についての説明を終え、図１４の説明に戻る。
【００８２】
ペアリング処理部１２０２は、生成した暗号化鍵Ａ３（５２２）と証明書Ａ３（５２３）と、さらには暗号化鍵Ａ３（５２２）の鍵ＩＤ５２１と、復号鍵ＩＤ（５２４）とから構成される鍵情報５２０を生成し、生成した鍵情報５２０を端末Ａ１００に送信する（Ｓ１４１２）。認証処理部２０６は、受信した鍵情報を鍵情報保持部２０５に保存して（Ｓ１４１３）ペアリング処理を終了する。端末Ａ１００の鍵情報保持部２０５には、第１の実施形態における暗号化鍵Ａ１（５００）、暗号化鍵Ａ２（５１０）に加え、新たに端末Ｃ１０２と認証処理をする際に用いられる暗号化鍵Ａ３（５２２）と公開鍵Ａ３（１８０６）の証明書Ａ３（５２３）を含む鍵情報５２０が保持されることになる。暗号化鍵Ａ３（５２２）において秘密鍵Ａ３（５２６）に施されている暗号は、端末Ａ１００がセキュアブートを完了し、正規のアプリケーションモジュールＹが起動している場合にのみ復号される。
【００８３】
ペアリング処理が終了した後においては、端末Ａ１００は、図１９に示すように、端末Ａ１００は端末Ｃ１０２との間で、暗号化鍵Ａ３と証明書Ａ３を用いて認証処理が行えるようになる。図１９は、認証処理に用いる暗号化鍵と証明書がそれぞれ暗号化鍵Ａ３と証明書Ａ３に置き換わり、また、端末Ｂ１０１が端末Ｃ１０２に置き換わっている以外は、第１の実施形態で説明した図８と同じである。図１９についてのこれ以上の説明は、図８についての説明と重複するので省略する。
２．２．２．認証処理
次に、図１５を用いて、ステップＳ１４０２での秘密鍵Ａ１を用いた認証処理について説明する。
【００８４】
まず、端末Ａ１００の認証処理部２０６が端末Ｃ１０２にペアリング処理を要求するメッセージを送る（Ｓ１５０１）。すると、端末Ｃ１０２の認証処理部１２０６が端末Ａ１００との認証処理を開始し、ランダムな文字列であるｎｏｎｃｅを生成し（Ｓ１５０２）、端末Ａ１００に送信する（Ｓ１５０３）。ｎｏｎｃｅを受信した端末Ａ１００の認証処理部２０６は、暗号化鍵Ａ１（５００）を鍵情報保持部２０５から読み出し（Ｓ１５０４）、さらに、セキュリティモジュール２０４に暗号化鍵Ａ１の復号を要求する（Ｓ１５０５）。
【００８５】
セキュリティモジュール２０４は、ルート鍵２１３による暗号化鍵Ａ１の復号処理を行い（Ｓ１５０６）、処理結果を認証処理部２０６に送信する（Ｓ１５０７）。この時、セキュリティモジュール２０４は、状態情報保持部２１０のレジスタに格納されている値と復号条件Ａ１（５０５）との照合に成功して暗号化鍵Ａ１の復号に成功した場合には復号処理成功の処理結果を送信する。また、状態情報保持部２１０のレジスタに格納されている値と復号条件Ａ１（５０５）との照合に失敗して暗号化鍵Ａ１の復号に失敗した場合には復号処理失敗の処理結果を送信する。ステップＳ１５０７の処理結果が失敗であった場合、認証処理部２０６は認証処理を中止し、ステップＳ１５０７の処理結果が成功であった場合、認証処理部２０６は、セキュリティモジュールに秘密鍵Ａ１によるｎｏｎｃｅへの署名処理を要求する（Ｓ１５０８）。セキュリティモジュールは、ステップＳ１５０６で復号した秘密鍵Ａ１によるｎｏｎｃｅへの署名処理を行い（Ｓ１５０９）、電子署名を認証処理部２０６に送信する（Ｓ１５１０）。署名処理は、具体的には、ｎｏｎｃｅのハッシュ値を生成し、そのハッシュ値に対して秘密鍵Ａ１により暗号化する処理である。認証処理部２０６は、受信した電子署名と証明書Ａ１とを端末Ｂ１０１へ送信する（Ｓ１５１１）。
【００８６】
端末Ｂ１０１は、まず、受信した証明書Ａ１を検証し（Ｓ１５１２）、さらに、検証された証明書Ａ１に含まれる公開鍵Ａ１を用いて、受信した電子署名がｎｏｎｃｅに対する秘密鍵Ａ１による電子署名であることを検証し（Ｓ１５１３）、認証結果を端末Ａ１００に送信して（Ｓ１５１４）認証処理を終了する。
【００８７】
ステップＳ１５１３の電子署名の検証では、具体的には、認証処理部１２０６が、まず、ステップＳ１５０３にて端末Ａ１００へ送信したｎｏｎｃｅのハッシュ値を生成し、次に、受信した電子署名を公開鍵Ａ１（６０６）を用いて復号して、ｎｏｎｃｅのハッシュ値と照合する。なお、ステップＳ１５０９においてｎｏｎｃｅに対して署名処理を行っているが、ｎｏｎｃｅの値に対してハッシュ値を生成することなく、秘密鍵Ａ１で暗号化するようにしてもよい。この場合、ステップＳ１５１３においては、暗号化されたｎｏｎｃｅを公開鍵Ａ１（６０６）を用いて復号し、復号した結果とステップＳ１５０３にて端末Ａ１００へ送信したｎｏｎｃｅの値と等しいかどうかを照合するようにしてもよい。
２．２．３．暗号化鍵Ａ１の復号処理
次に、上述の図１５のＳ１５０６における処理である、秘密鍵Ａ１を用いた認証処理における端末Ａ１００において行われる暗号化鍵Ａ１（５０２）の復号処理について説明する。
【００８８】
図１６は、暗号化鍵Ａ１（５０２）の復号処理の詳細なフローを示している。
まず、認証処理部２０６が、鍵情報保持部２０５が保持する鍵情報の中から、暗号化鍵Ａ１（５０２）の復号鍵ＩＤ５０４からルート鍵２１３が復号鍵であることを特定する（Ｓ１６０１）。次に、認証処理部２０６からの要求に基づき、セキュリティモジュール２０４の復号部７０１がルート鍵２１３を用いて暗号化鍵Ａ１を復号し（Ｓ１６０２）、さらに、復号部７０１が状態情報保持部２１０のレジスタを参照して復号条件Ａ１（５０５）との照合値を算出し（Ｓ１６０３）、算出した照合値と復号条件Ａ１（５０５）とを照合する（Ｓ１６０４）。この時、照合値と一致しなかった場合には、セキュリティモジュール２０４はステップＳ１６０２で復号したデータを消去し、復号処理失敗の処理結果を認証処理部２０６へ送信する。また、照合値と一致した場合には、ステップＳ１６０２で復号した秘密鍵Ａ１を秘密鍵保持部２１１に保持し、復号処理成功の処理結果を認証処理部２０６へ送信する（Ｓ１６０５）。
３．第３の実施形態
本発明の第３の実施形態について説明する。
【００８９】
本発明の第３の実施形態は、他の端末との間で、新たに特定のアプリケーションの起動を条件として接続が行われるように設定し、さらに、他の端末との間で相互認証をする機能を有するように端末Ａ１００と端末Ｂ１０１とを構成したものである。
【００９０】
システム構成は、第１の実施形態と同じである。
図２０は、本発明の第３の実施形態における端末Ａ１００と端末Ｂ１０１の構成を示しており、第１の実施形態での端末Ａ１００が有していた認証処理をする機能と、第２の実施形態での端末Ｃ１０２が有していたペアリング処理の機能の両方を有しており、同じ構成要素に関しては説明を省略する。
【００９１】
認証処理部２０６には、証明書Ａ１（５０３）と証明書Ａ２（５１３）の有効性を検証するための端末Ａ製造者公開鍵（不図示）と、証明書Ｂ１（２１０３）と証明書Ｂ２（２１１３）の有効性を検証するための端末Ｂ製造者公開鍵（不図示）と、が保持されている。この端末Ａ製造者公開鍵と端末Ｂ製造者公開鍵は、何れも、ＲＳＡ暗号方式の公開鍵であり、鍵長は２０４８ビットである。
【００９２】
図２１は、端末Ｂ１０１の鍵情報保持部２０５に保持されている鍵情報を示している。図２１は、端末Ｂ１０１の鍵情報保持部２０５に２つの鍵情報が保持されている場合を示し、１つ目の鍵情報２１００は、公開鍵Ｂ１を示す鍵ＩＤ（２１０１）と、暗号化鍵Ｂ１（２１０２）、公開鍵Ｂ１の証明書である証明書Ｂ１（２１０３）、暗号化鍵Ｂ１の復号鍵を示すルート鍵ＢのＩＤである復号鍵ＩＤ“ＲｏｏｔＫＥＹ−Ｂ”（２１０４）とから構成される。暗号化鍵Ｂ１（２１０２）は、暗号化鍵Ｂ１（２１０２）の暗号を復号するための条件を示す復号条件Ｂ１（２１０５）と秘密鍵Ｂ１（２１０６）とが、ルート鍵Ｂによって復号されるように暗号化されたものである。
【００９３】
復号条件Ｂ１（２１０５）には、モジュール起動制御部２０２によるシステムモジュール１、システムモジュール２、システムモジュール３のセキュアブートが完了した場合に、状態情報保持部２１０のレジスタに格納される値が設定されており、秘密鍵Ｂ１はセキュアブートが完了している場合にのみ復号できるようになっている。２つ目の鍵情報２１１０は、公開鍵Ｂ２を示す鍵ＩＤ（２１１１）と、暗号化鍵Ｂ２（２１２１）、公開鍵Ｂ２の証明書である証明書Ｂ２（２１１３）、暗号化鍵Ｂ２の復号鍵である秘密鍵Ｂ１を示す復号鍵ＩＤとから構成され、暗号化鍵Ｂ２（２１１２）は、暗号化鍵Ｂ２（２１１２）の暗号を復号するための条件を示す復号条件Ｂ２（２１１５）と秘密鍵Ｂ２（２１１６）とが、公開鍵Ｂ１によって復号されるように暗号化されたものである。
【００９４】
復号条件Ｂ２（２１１５）には、モジュール起動制御部２０２によるアプリケーションモジュールＸの起動が成功した場合に、状態情報保持部２１０のレジスタに格納される値が設定されており、秘密鍵Ｂ２はアプリケーションモジュールＸが起動されている場合にのみ秘密鍵Ｂ１を復号できるようになっている。つまり、秘密鍵Ｂ２はセキュアブートが完了し、かつ、アプリケーションモジュールＸが起動されている場合にのみ復号できるようになっている。秘密鍵Ｂ１と秘密鍵Ｂ２は、何れもＲＳＡ暗号方式の秘密鍵であり、鍵長は２０４８ビットである。鍵情報２１００、２１１０は、端末Ｂの製造者によって設定される。
【００９５】
次に、アプリケーションモジュールＸが起動している端末Ａ１００と同じくアプリケーションモジュールＸが起動している端末Ｂ１０１との間で行われる相互認証処理のシーケンスを、図２２及び図２３を用いて説明する。まず、端末Ａ１００の認証処理部２０６がランダムな文字列ｎｏｎｃｅ１を生成し（Ｓ２２００）、端末Ｂ１０１に生成したｎｏｎｃｅ１を含む相互認証処理を要求するメッセージを送る（Ｓ２２０１）。すると、相互認証要求を受信した端末Ｂ１０１の認証処理部２０６は、暗号化鍵Ｂ２（２１１２）と暗号化鍵Ｂ１（２１０２）を端末Ｂ１０１の鍵情報保持部２０５から読み出し（Ｓ２２０２）、さらに、セキュリティモジュール２０４に暗号化鍵Ｂ１（２１０２）の復号を要求する（Ｓ２２０３）。端末Ｂ１０１のセキュリティモジュール２０４は、ルート鍵による暗号化鍵Ｂ１の復号処理を行い（Ｓ２２０４）、処理結果を端末Ｂの認証処理部２０６に送信する（Ｓ２２０５）。この時、端末Ｂ１０１のセキュリティモジュール２０４は、状態情報保持部２１０のレジスタに格納されている値と復号条件Ｂ１（２１０５）との照合に成功して暗号化鍵Ｂ１（２１０２）の復号に成功した場合には復号処理成功の処理結果を送信する。また、状態情報保持部２１０のレジスタに格納されている値と復号条件Ｂ１（２１０５）との照合に失敗して暗号化鍵Ｂ１（２１０２）の復号に失敗した場合には復号処理失敗の処理結果を送信する。ステップＳ２２０５の処理結果が失敗であった場合、端末Ｂ１０１の認証処理部２０６は認証処理を中止し、ステップＳ２２０５の処理結果が成功であった場合、端末Ｂ１０１の認証処理部２０６は、端末Ｂ１０１のセキュリティモジュール２０４に暗号化鍵Ｂ２（２１１２）の復号を要求する（Ｓ２２０６）。
【００９６】
端末Ｂ１０１のセキュリティモジュール２０４は、ステップＳ２２０４の復号処理で得られた秘密鍵Ｂ１による暗号化鍵Ｂ２（２１１２）の復号処理を行い（Ｓ２２０７）、処理結果を端末Ｂ１０１の認証処理部２０６に送信する（Ｓ２２０８）。この時、端末Ｂ１０１のセキュリティモジュール２０４は、状態情報保持部２１０のレジスタに格納されている値と復号条件Ｂ２（２１１５）との照合に成功して暗号化鍵Ｂ２（２１１２）の復号に成功した場合には復号処理成功の処理結果を送信する。また、状態情報保持部２１０のレジスタに格納されている値と復号条件Ｂ２（２１１５）との照合に失敗して暗号化鍵Ｂ２（２１１２）の復号に失敗した場合には復号処理失敗の処理結果を送信する。ステップＳ２２０８の処理結果が失敗であった場合、端末Ｂ１０１の認証処理部２０６は認証処理を中止し、ステップＳ２２０８の処理結果が成功であった場合、端末Ｂ１０１の認証処理部２０６は、端末Ｂ１０１のセキュリティモジュール２０４に秘密鍵Ｂ２によるｎｏｎｃｅ１への署名処理を要求する（Ｓ２２０９）。
【００９７】
端末Ｂのセキュリティモジュール２０４は、Ｓ２２０７で復号した秘密鍵Ｂ２によるｎｏｎｃｅ１への署名処理を行い（Ｓ２２１０）、電子署名を端末Ｂ１０１の認証処理部２０６に送信する（Ｓ２２１１）。署名処理は、具体的には、ｎｏｎｃｅ１のハッシュ値を生成し、そのハッシュ値に対して秘密鍵Ｂ２により暗号化する処理である。端末Ｂ１０１の認証処理部２０６は、受信した電子署名と証明書Ａ２とを端末Ａ１００へ送信する（Ｓ２２１２）。端末Ａ１００の認証処理部２０６は、まず、受信した公開鍵Ｂ２の証明書Ｂ２を検証し（Ｓ２２１３）、さらに、検証された証明書Ｂ２に含まれる公開鍵Ｂ２を用いて、受信した電子署名がｎｏｎｃｅ１に対する秘密鍵Ｂ２による電子署名であることを検証し（Ｓ２２１４）、認証結果を端末Ｂ１０１に送信する（Ｓ２２１５）。ステップＳ２２１４の電子署名の検証では、具体的には、端末Ａ１００の認証処理部２０６が、まず、ステップＳ２２０１にて端末Ｂ１０１へ送信したｎｏｎｃｅ１のハッシュ値を生成し、次に、受信した電子署名を公開鍵Ｂ２（１８１６）を用いて復号して、ｎｏｎｃｅ１のハッシュ値と照合する。なお、ステップＳ２２１０においてｎｏｎｃｅ１に対して署名処理を行っているが、ｎｏｎｃｅ１の値に対してハッシュ値を生成することなく、秘密鍵Ｂ２で暗号化するようにしてもよい。この場合、ステップＳ２２１４においては、暗号化されたｎｏｎｃｅ１を公開鍵Ｂ２（１８１６）を用いて復号し、復号した結果とステップＳ２２０１にて端末Ｂ１０１へ送信したｎｏｎｃｅ１の値と等しいかどうかを照合するようにしてもよい。
【００９８】
次に端末Ｂ１０１の認証処理部２０６が、ｎｏｎｃｅ１とは異なるランダムな文字列ｎｏｎｃｅ２を生成し（Ｓ２２１６）、端末Ａ１００に送信する（Ｓ２２１７）。ｎｏｎｃｅ２を受信した端末Ａ１００の認証処理部２０６は、暗号化鍵Ａ２と暗号化鍵Ａ１を鍵情報保持部２０５から読み出し（Ｓ２２１８）、さらに、端末Ａ１００のセキュリティモジュール２０４に暗号化鍵Ａ１の復号を要求する（Ｓ２２１９）。端末Ａ１００のセキュリティモジュール２０４は、ルート鍵による暗号化鍵Ａ１の復号処理を行い（Ｓ２２２０）、処理結果を端末Ａ１００の認証処理部２０６に送信する（Ｓ２２２１）。この時、端末Ａ１００のセキュリティモジュール２０４は、状態情報保持部２１０のレジスタに格納されている値と復号条件Ａ１（５０５）との照合に成功して暗号化鍵Ａ１（５０２）の復号に成功した場合には復号処理成功の処理結果を送信する。また、状態情報保持部２１０のレジスタに格納されている値と復号条件Ａ１（５０５）との照合に失敗して暗号化鍵Ａ１（５０２）の復号に失敗した場合には復号処理失敗の処理結果を送信する。ステップＳ２２２１の処理結果が失敗であった場合、端末Ａ１００の認証処理部２０６は認証処理を中止し、Ｓ２２２１の処理結果が成功であった場合、端末Ａ１００の認証処理部２０６は、端末Ａ１００のセキュリティモジュール２０４に暗号化鍵Ａ２の復号を要求する（Ｓ２２２２）。
【００９９】
端末Ａ１００のセキュリティモジュール２０４は、ステップＳ２２２０で復号した秘密鍵Ａ１による暗号化鍵Ａ２（５１２）を復号して秘密鍵Ａ２を取得し（Ｓ２２２３）、処理結果を端末Ａ１００の認証処理部２０６に送信する（Ｓ２２２４）。この時、端末Ａ１００のセキュリティモジュール２０４は、状態情報保持部２１０のレジスタに格納されている値と復号条件Ａ２（５１５）との照合に成功して暗号化鍵Ａ２（５１２）の復号に成功した場合には復号処理成功の処理結果を送信する。また、状態情報保持部２１０のレジスタに格納されている値と復号条件Ａ２（５１５）との照合に失敗して暗号化鍵Ａ２（５１２）の復号に失敗した場合には復号処理失敗の処理結果を送信する。ステップＳ２２２４の処理結果が失敗であった場合、端末Ａ１００の認証処理部２０６は認証処理を中止し、ステップＳ２２２４の処理結果が成功であった場合、端末Ａの認証処理部２０６は、端末Ａ１００のセキュリティモジュール２０４に秘密鍵Ａ２によるｎｏｎｃｅ２への署名処理を要求する（Ｓ２２２５）。端末Ａ１００のセキュリティモジュール２０４は、ステップＳ２２２３で復号した秘密鍵Ａ２によるｎｏｎｃｅ２への署名処理を行い（Ｓ２２２６）、電子署名を端末Ａ１００の認証処理部２０６に送信する（Ｓ２２２７）。端末Ａ１００の認証処理部２０６は、受信した電子署名と証明書Ａ２とを端末Ｂ１０１へ送信する（Ｓ２２２８）。署名処理は、具体的には、ｎｏｎｃｅ２のハッシュ値を生成し、そのハッシュ値に対して秘密鍵Ａ２により暗号化する処理である。
【０１００】
端末Ｂ１０１の認証処理部２０６は、受信した証明書Ａ２を検証し（Ｓ２２２９）、さらに、検証された証明書Ａ２に含まれる公開鍵Ａ２を用いて、受信した電子署名がｎｏｎｃｅ２に対する秘密鍵Ａ２による電子署名であることを検証し（Ｓ２２３０）、認証結果を端末Ａ１００に送信し、端末Ａ１００の認証処理部２０６が認証結果を受信して認証処理を終了する（Ｓ２２３１）。ステップＳ２２３０の電子署名の検証では、具体的には、端末Ｂ１０１の認証処理部２０６が、まず、ステップＳ２２１７にて端末Ａ１００へ送信したｎｏｎｃｅ２のハッシュ値を生成し、次に、受信した電子署名を公開鍵Ａ２（６１６）を用いて復号して、ｎｏｎｃｅ２のハッシュ値と照合する。なお、ステップＳ２２２６においてｎｏｎｃｅ２に対して署名処理を行っているが、ｎｏｎｃｅ２の値に対してハッシュ値を生成することなく、秘密鍵Ａ２で暗号化するようにしてもよい。この場合、ステップＳ２２３０においては、暗号化されたｎｏｎｃｅ２を公開鍵Ａ２を用いて復号し、復号した結果とステップＳ２２１７にて端末Ａ１００へ送信したｎｏｎｃｅ２の値と等しいかどうかを照合するようにしてもよい。
【０１０１】
端末Ａ１００は、ｎｏｎｃｅ１に対する秘密鍵Ｂ２による電子署名の有効性を検証することで、端末Ｂ１０１において、セキュアブートが行われ、アプリケーションモジュールＸは正常起動していることを検証することが出来る。一方、端末Ｂ１０１でも、ｎｏｎｃｅ２に対する秘密鍵Ａ２による電子署名の有効性を検証することで、端末Ａ１００において、セキュアブートが行われ、アプリケーションモジュールＸは正常起動していることを検証することが出来る。
４．変形例その他
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
（１）上述の実施形態１では、秘密鍵１（２４０１）、秘密鍵２（２４０２）、ルート鍵２１３、秘密鍵Ａ１、秘密鍵Ａ２及び端末Ａ製造者秘密鍵として、ＲＳＡ暗号方式の鍵を用いることを想定して説明をしたが、ＥＣＣ（ＥＬＬＩＰＴＩＣ  ＣＵＲＶＥ  ＣＲＹＰＴＯＳＹＳＴＥＭ）暗号方式やＮＴＲＵ暗号方式の鍵を用いるようにしても良い。また、鍵長についても、２０４８ビットに限らず他の鍵長であっても良い。
【０１０２】
また、上述の実施形態では、ハッシュ演算のアルゴリズムとしてＳＨＡ１を用いるとしたが、ＳＨＡ２５６やＳＨＡ５１２などのハッシュ演算アルゴリズムを用いるようにしても良い。
（２）上述の実施形態１では、ルート鍵２１３、秘密鍵Ａ１及び秘密鍵Ａ２として、公開鍵暗号方式の鍵を用いることを想定して説明をしたが、ＡＥＳ（ＡＤＶＡＮＣＥＤ  ＥＮＣＲＹＰＴＩＯＮ  ＳＴＡＮＤＡＲＤ）やＤＥＳ（ＤＡＴＡ  ＥＮＣＲＹＰＴＩＯＮ  ＳＴＡＮＤＡＲＤ）、３ＤＥＳなどの共通鍵暗号方式の鍵を用いるようにしても良い。
【０１０３】
この場合、端末Ａ１００と端末Ｂ１０１は、共通ルート鍵と共通鍵Ａ１と共通鍵Ａ２を共有する。ルート鍵２１３を用いて行っていた処理を共通ルート鍵を用いて行い、秘密鍵Ａ１（５０６）と公開鍵Ａ１（６０６）を用いて行っていた処理を共通鍵Ａ１を用いて行い、秘密鍵Ａ２（５１６）と公開鍵Ａ２（６１６）を用いて行っていた処理を共通鍵Ａ２を用いて行う。但し、証明書Ａ２（５１３）としては、公開鍵Ａ２（６１６）及び共通鍵Ａ２は含まれないものを使用する。
（３）上述の実施形態１では、復号条件Ａ２（５１５）には、正規のアプリケーションモジュールＸが起動されている場合の状態情報保持部２１０のレジスタに格納されているべき期待値、具体的には、正規のアプリケーションモジュールＸのハッシュ値の累積値が設定されるとしたがこれに限らない。復号条件Ａ２（５１５）として、状態情報保持部２１０のレジスタに、さらに、特定のパスコードのハッシュ値が累積されている場合の期待値を設定するとしても良い。
【０１０４】
この特定のパスコードは、端末Ａ１００のユーザが入力するユーザパスワードであっても良く、また、アプリケーションモジュールＸ提供者から発行されるライセンスコードであっても良い。この場合、モジュール起動制御部２０２によって起動されたアプリケーションモジュールＸは、状態情報保持部２１０のアプリケーション用のレジスタ８からレジスタ１５の何れかのレジスタに対してパスコードのハッシュ値を累積演算する。そして、暗号化鍵Ａ２（５１２）を復号するための条件として「端末Ａがセキュアブートを完了している」という条件と、「端末Ａが正規のアプリケーションモジュールＸを起動している」という条件の２つの条件に、さらに「正しいパスコードが入力されている」という条件が加わることになるなど、より複雑な条件設定を行うことが可能となる。
（４）上述の実施形態２では、アプリケーション名と機種名を検索キーとして、期待値保持部１２０１から期待値を検索するとしたが、アプリケーション名の代わりにアプリケーションＩＤを用いても良く、また、機種名の代わりに機種ＩＤを用いても良い。その場合、ステップＳ１４０１で送信される端末Ｃ１０２にアプリケーションモジュールＹでのペアリングを要求するメッセージには、アプリケーションＩＤが含まれ、証明書Ａ１（５０３）には機種ＩＤが含まれる。
（５）上述の実施形態２では、ペアリング処理部１２０２が期待値保持部１２０１からアプリケーションモジュールＹを端末Ａ１００が実行した場合の期待値を検索したが、端末Ａ１００から期待値を受信するようにしても良い。この場合、実際には端末Ｃ１０２は、アプリケーションモジュールＹの証明書であるモジュール証明書Ｙ４２５を端末Ａ１００から受信し、モジュール証明書Ｙ４２５に含まれるモジュール計測値を期待値とする。またこの場合、端末Ｃ１０２の認証処理部３０６には、モジュール証明書Ｙ４２５の有効性を検証するためのアプリケーションモジュールＹ提供者の公開鍵（不図示）が保持される。このアプリケーションモジュールＹ提供者の公開鍵は、モジュール証明書Ｙ４２５に施されている署名の生成に用いられたアプリケーションモジュールＹ提供者の秘密鍵に対応するＲＳＡ暗号方式の公開鍵である。
【０１０５】
図２８は、この場合のペアリング処理のシーケンスを示しており、端末Ａ１００においてアプリケーションモジュールＹが起動していることを条件として認証が行われるように端末Ａ１００と端末Ｃ１０２との間で次のようにペアリング処理を行う。
【０１０６】
まず、端末Ａ１００の認証処理部２０６が端末Ｃ１０２にアプリケーションモジュールＹでのペアリングを要求するメッセージを送る（Ｓ２８０１）。この時、メッセージには、アプリケーションモジュールＹの証明書であるモジュール証明書Ｙ４２５が含まれている。すると、図１５に示すように、秘密鍵Ａ１（５０５）を用いた認証処理が端末Ａ１００と端末Ｃ１０２との間で行われる（Ｓ１４０２）。
【０１０７】
この認証処理に失敗した場合には、ペアリング処理は中止され、認証処理に成功した場合には、端末Ｃ１０２の認証処理部１２０６が、モジュール証明書Ｙ４２５をアプリケーションモジュールＹ提供者の公開鍵を用いて検証する（Ｓ２８０２）。さらに、端末Ｃ１０２の認証処理部１２０６は、検証されたモジュール証明書Ｙ４２５からモジュール計測値４０２を抽出し（Ｓ２８０３）、アプリケーションモジュールＹのアプリケーション名とステップＳ１４０２の認証処理で取得した公開鍵Ａ１の証明書Ａ１（５０３）とステップＳ２８０３で抽出したモジュール計測値とを含むペアリング処理要求をペアリング処理部１２０２に送信する（Ｓ２８０４）。
【０１０８】
ペアリング処理部１２０２では、まず、受信したモジュール計測値を復号条件Ａ３（５２５）に決定し（Ｓ２８０５）、さらに、証明書Ａ１（５０３）の端末情報６０８に含まれる端末Ａがサポートする暗号アルゴリズム情報に含まれる公開鍵暗号方式のアルゴリズムの秘密鍵Ａ３（５２６）と公開鍵Ａ３（１８０６）の鍵ペア生成する（Ｓ１４０８）。そして、ペアリング処理部１２０２は、受信した証明書Ａ１（５０３）から公開鍵Ａ１（６０６）を抽出し（Ｓ１４０９）、公開鍵Ａ１（６０６）を用いて秘密鍵Ａ３（５２６）を復号条件Ａ３（５２５）とともに暗号化することで暗号化鍵Ａ３（５２２）を生成する（Ｓ１４１０）。さらに、ペアリング処理部１２０２は、署名鍵１２１３を用いて秘密鍵Ａ３に対応する公開鍵Ａ３の証明書である証明書Ａ３（５２３）を生成する（Ｓ１４１１）（図１８参照）。この時、ペアリング処理部１２０２は、証明書Ａ３（５２３）のサブジェクトに、受信した証明書Ａ１（５０３）のサブジェクトと同じ端末Ａを示す値を設定する。
【０１０９】
ペアリング処理部１２０２は、生成した暗号化鍵Ａ３（５２２）と証明書Ａ３（５２３）と、さらには暗号化鍵Ａ３（５２２）の鍵ＩＤ“ＫＥＹ−Ａ３”（５２１）と復号鍵ＩＤ“ＫＥＹ−Ａ１”（５２４）とから構成される鍵情報５２０を端末Ａ１００に送信する（Ｓ１４１２）。認証処理部２０６は、受信した鍵情報を鍵情報保持部２０５に保存して（Ｓ１４１３）ペアリング処理を終了する。
（６）上述の実施形態２では、端末Ｃ１０２がペアリング処理における、暗号化鍵と証明書を生成する機能を備えるとしたが、ネットワークを介して通信可能なサーバ装置が同様の機能を備えていてもよく、その場合は、端末Ａ１００とサーバ装置との間で直接、または、端末Ｃ１０２を介して端末Ａ１００とサーバ装置との間で、図１４において説明したステップＳ１４０１からステップＳ１５１３に対応する処理を行うことで、端末Ａ１００と端末Ｃ１０２とのペアリング処理を行うことが出来る。
（７）上述の実施形態２では、秘密鍵１（２４０１）、秘密鍵３（２４０３）、ルート鍵２１３、秘密鍵Ａ１、秘密鍵Ａ２、秘密鍵Ａ３及び端末Ａ製造者秘密鍵として、公開鍵暗号方式の鍵を用いることを想定して説明をしたが、ＥＣＣ暗号方式やＮＴＲＵ暗号方式の鍵を用いるようにしても良い。また、鍵長も２０４８ビット以外の鍵長であっても良い。
（８）上述の実施形態２では、ルート鍵２１３、秘密鍵Ａ１、秘密鍵Ａ２及び秘密鍵Ａ３としては、公開鍵暗号方式の鍵を用いることを想定して説明をしたが、ＡＥＳやＤＥＳ、３ＤＥＳなどの共通鍵暗号方式の鍵を用いるようにしても良い。その場合、端末Ａ１００と端末Ｃ１０２は、共通ルート鍵と共通鍵Ａ１と共通鍵Ａ３を共有する。そして、ルート鍵２１３を用いて行っていた処理を共通ルート鍵を用いて行い、秘密鍵Ａ１（５０６）と公開鍵Ａ１（６０６）を用いて行っていた処理を共通鍵Ａ１を用いて行い、秘密鍵Ａ３（５２６）と公開鍵Ａ３（６２６）を用いて行っていた処理を共通鍵Ａ３を用いて行う。但し、証明書Ａ１（５０３）には、公開鍵Ａ１（６０６）および共通鍵Ａ１は含まれないものを使用する。また証明書Ａ３（５２３）には、公開鍵Ａ３（１８０６）および共通鍵Ａ３は含まれないものを使用する。
（９）上述の実施形態２では、復号条件Ａ３（５２５）には、正規のアプリケーションモジュールＹが起動されている場合の状態情報保持部２１０のレジスタに格納されているべき期待値、具体的には、正規のアプリケーションモジュールＹのハッシュ値の累積値が設定されるとしたが、状態情報保持部２１０のレジスタに、さらに特定のパスコードのハッシュ値が累積されている場合の期待値を復号条件Ａ３（５２５）に設定するようにしても良い。
【０１１０】
また、この特定のパスコードは、端末Ａ１００のユーザが入力するユーザパスワードとしても良いし、アプリケーションモジュールＹ提供者から発行されるライセンスコードとしても良い。モジュール起動制御部２０２によって起動されたアプリケーションモジュールＹは、状態情報保持部２１０のアプリケーション用のレジスタ８からレジスタ１５の何れかのレジスタに対してパスコードのハッシュ値を累積演算する。この場合、暗号化鍵Ａ３（５２２）を復号するための条件として「端末Ａがセキュアブートを完了している」という条件と、「端末Ａが正規のアプリケーションモジュールＹを起動している」という条件の２つの条件に、さらに「正しいパスコードが入力されている」という条件が加わることになり、より複雑な条件設定を行うことが可能となる。
（１０）上述の実施形態２では、秘密鍵Ａ３（５２６）を公開鍵Ａ１（６０６）で暗号化したが、公開鍵Ａ２（６１６）で暗号化するようにしても良い。その場合、端末Ａ１００は、第１の実施形態の図８において説明した秘密鍵Ａ２（５１６）を用いた認証処理を端末Ｃ１０２との間で行い、端末Ｃ１０２は認証処理の際に受信した証明書Ａ２（５１３）から公開鍵Ａ２（６１６）を取得し、公開鍵Ａ２（６１６）を用いて秘密鍵Ａ３（５２６）を暗号化して暗号化鍵Ａ３（５２２）を生成する。この場合、暗号化鍵Ａ３（５２２）を復号するための条件として「端末Ａがセキュアブートを完了している」という条件と、「端末Ａが正規のアプリケーションモジュールＸを起動している」という条件の２つの条件に、さらに「端末Ａが正規のアプリケーションモジュールＹを起動している」という条件が加わることになり、より複雑な条件設定を行うことが可能となる。
（１１）第２の実施形態では、期待値情報保持部１２０１が、アプリケーションモジュールの期待値を予め保持していた。この構成により、第２の実施形態では、期待値を受け取る処理を省略することができていた。しかし、この構成に限るものではない。アプリケーションモジュールの期待値を、相手側の端末から取得してもよい。この場合、期待値が改ざんされることを防ぐため、相手側の端末は、期待値に署名を付与するか、暗号化を施した上で期待値を送信することが望ましい。この構成をとった場合、相手側の端末が持つ構成が分からなくとも、その構成にあわせてバインドした暗号化鍵を生成することができる。
（１２）上述の実施形態３では、ルート鍵２１３、秘密鍵Ａ１、秘密鍵Ａ２、秘密鍵Ｂ１、秘密鍵Ｂ２、端末Ａ製造者秘密鍵、端末Ｂ製造者秘密鍵としては、公開鍵暗号方式の鍵を用いることを想定して説明をしたが、ＥＣＣ暗号方式やＮＴＲＵ暗号方式の鍵を用いるようにしても良い。また、鍵長も２０４８ビット以外の鍵長であっても良い。
（１３）上述の実施形態３では、ルート鍵２１３、秘密鍵Ａ１、秘密鍵Ａ２、秘密鍵Ｂ１及び秘密鍵Ｂ２としては、公開鍵暗号方式の鍵を用いることを想定して説明をしたが、ＡＥＳやＤＥＳ、３ＤＥＳなどの共通鍵暗号方式の鍵を用いるようにしても良い。
【０１１１】
その場合、端末Ａ１００と端末Ｂ１０１は、共通ルート鍵と共通鍵Ａ１と共通鍵Ａ２と共通鍵Ｂ１と共通鍵Ｂ２を共有する。ルート鍵２１３を用いて行っていた処理を共通ルート鍵を用いて行い、秘密鍵Ａ１（５０６）と公開鍵Ａ１（６０６）を用いて行っていた処理を共通鍵Ａ１を用いて行い、秘密鍵Ａ２（５１６）と公開鍵Ａ２（６１６）を用いて行っていた処理を共通鍵Ａ２を用いて行う。また、秘密鍵Ｂ１（２１０６）と公開鍵Ｂ１（２１０６）を用いて行っていた処理を共通鍵Ｂ１を用いて行い、秘密鍵Ｂ２（２１１６）と公開鍵Ｂ２（２１１６）を用いて行っていた処理を共通鍵Ｂ２を用いて行う。但し、証明書Ａ２（５１３）には、公開鍵Ａ２（６１６）および共通鍵Ａ２は含まれないものを使用する。また証明書Ｂ２（２１１３）には、公開鍵Ｂ２及び共通鍵Ｂ２は含まれないものを使用する。
（１４）上記の実施形態では、認証に使う秘密鍵は、正規のシステムモジュールが起動し、かつ、アプリケーションモジュールが起動したことを条件に復号されるよう暗号化されていた。しかし、この構成に限るものではない。アプリケーションモジュールが起動したことを条件としなくともよい。この場合、認証が成功すれば、正規のシステムモジュールが起動したことを確認できることになる。また、この場合、システムモジュールの何れかが更新された場合でも、認証に使う秘密鍵自体は更新せず、認証に使う秘密鍵の復号に使う鍵だけを新しい構成にバインドして再暗号化し、更新すればよい。
（１５）上記の実施形態では、ｎｏｎｃｅに署名を生成し、それを検証することで認証処理を行っていた。しかし、この構成に限るものではなく、多様な認証方法を用いることができる。例えば、ｎｏｎｃｅそのものを暗号化し、その暗号化されたｎｏｎｃｅが正しく復号できるかを確認することで認証を行うこともできる。
（１６）なお、端末間の通信において、利用条件を含む証明書を利用したが、利用条件を含まない証明書も利用してもよい。利用条件を含まない証明書も利用する場合には、利用条件の有無を判定し、利用条件が存在しない場合には、判定を行わずに一般的な処理を行う。この場合、本願の技術に対応していない端末とも通信を行うことが可能となる。
【０１１２】
また、上述した利用条件を含む証明書を受信した場合に、受信側の端末にて証明書内の利用条件に従った処理を行えるようにするために、受信側の端末は、利用条件のデータベースを保持してもよい。この利用条件のデータベースには、接続を許可または不許可の機種情報やアプリケーション情報が登録されているものとする。このようにすることで受信した証明書内の利用条件と、端末内の利用条件データベースを比較することで、接続の許可/不許可を判断することができる。
【０１１３】
また、上述の利用条件のデータベースは、更新可能なデータベースとして実現してもよい。このようにすることで、今まで接続許可であった端末を接続不許可である端末として登録するようなリボークや、新規に出荷された端末との接続許可である端末として登録することも可能となり、より柔軟な接続形態を実現することが可能となる。更新方法はネットワーク経由でも良いし、記録メディアによる更新でもよい。
（１７）上記の実施形態では、データを、モジュールの期待値を復号条件として暗号化することを「モジュールの起動にバインドする」と呼んでいた。しかし、バインドの形態は上記に限られるものではない。バインドは、状態情報保持部のレジスタに格納されている値と、その期待値とが合致している環境の時のみ、データに対するアクセスを行えるようなアクセス制限を実現できる処理であればよい。他のバインドの例として、例えば、期待値を鍵にして暗号化することが考えられる。
（１８）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。なお、各装置は、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどの全てを含むコンピュータシステムには限らず、これらの一部から構成されているコンピュータシステムであってもよい。
（１９）上記の各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
【０１１４】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又は全てを含むように１チップ化されてもよい。
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【０１１５】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
（２０）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
（２１）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０１１６】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【０１１７】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０１１８】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【０１１９】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（２２）セキュリティモジュールは、耐タンパソフトウェアまたはソフトウェアと及びハードウェアにより実施されるとしてもよい。
（２３）ＣＰＵは特別な動作モード（セキュアモードなど）を備え、ＣＰＵによって実行されるソフトウェアはその特別な動作モード（セキュアモードなど）で動作することで安全に実行されるとしてもよい。
（２４）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０１２０】
本発明は、パーソナルコンピュータや携帯電話、オーディオプレーヤ、テレビ受像機、ビデオレコーダなど、プログラムデータの更新を行う情報通信機器や家電機器に広く利用することができる。
【０１２１】
特に、端末同士が接続してデータを交換する場合において、ソフトウェアの改ざん等により、送信されたデータが受信側の端末において不正に保存されたり、他の端末へ不正に転送されたりするなどの送信側が意図しない処理が行われることを防止し、正規のソフトウェアが起動されている機器のみと接続することが可能となる。
【符号の説明】
【０１２２】
１００    端末Ａ
１０１    端末Ｂ
１０２    端末Ｃ
２０１、３０１    モジュール記憶部
２０２、３０２    モジュール起動制御部
２０３、３０３    モジュール実行部
２０４、１２０４    セキュリティモジュール
２０５    鍵情報保持部
２０６、３０６、１２０６    認証処理部
２０７、３０７、１２０７    通信部
２０８    モジュール更新部
２０９    鍵情報更新部
２１０    状態情報保持部
２１１    復号処理部
２１２、１２１２    署名処理部
２１３    ルート鍵
１２０１    期待値保持部
１２０２    ペアリング処理部
１２１０    暗号処理部
１２１１    鍵生成部
１２１２    署名処理部
１２１３    署名鍵
【図１】
0005457363.tif 000002
【図２】
0005457363.tif 000003
【図３】
0005457363.tif 000004
【図４】
0005457363.tif 000005
【図５】
0005457363.tif 000006
【図６】
0005457363.tif 000007
【図７】
0005457363.tif 000008
【図８】
0005457363.tif 000009
【図９】
0005457363.tif 000010
【図１０】
0005457363.tif 000011
【図１１】
0005457363.tif 000012
【図１２】
0005457363.tif 000013
【図１３】
0005457363.tif 000014
【図１４】
0005457363.tif 000015
【図１５】
0005457363.tif 000016
【図１６】
0005457363.tif 000017
【図１７】
0005457363.tif 000018
【図１８】
0005457363.tif 000019
【図１９】
0005457363.tif 000020
【図２０】
0005457363.tif 000021
【図２１】
0005457363.tif 000022
【図２２】
0005457363.tif 000023
【図２３】
0005457363.tif 000024
【図２４】
0005457363.tif 000025
【図２５】
0005457363.tif 000026
【図２６】
0005457363.tif 000027
【図２７】
0005457363.tif 000028
【図２８】
0005457363.tif 000029
【図２９】
0005457363.tif 000030