(57)【要約】【課題】放送コンテンツとともに処理されるアプリケーションの信頼性の向上を図る。【解決手段】情報処理装置のアプリケーションコントローラは、電子署名が添付され、放送コンテンツとともに処理するアプリケーションを取得するために必要なロケーション情報が格納されたアプリケーション情報テーブルを取得し、電子署名を検証する。アプリケーションコントローラは、当該検証に成功した場合に、ロケーション情報をもとにアプリケーションを取得することを可能とする。【選択図】図１３
2013094110.tif 000002
【特許請求の範囲】
【請求項１】
放送コンテンツを受信し処理する放送コンテンツ処理部と、
電子署名が添付され、前記放送コンテンツとともに処理するアプリケーションを取得するために必要なロケーション情報が格納されたアプリケーション情報テーブルを取得し、前記電子署名を検証し、少なくとも当該検証に成功した場合に、前記ロケーション情報をもとに前記アプリケーションを取得することを可能とするコントローラと
を具備する情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記アプリケーション情報テーブルには、前記アプリケーションから所定の演算によって求められた当該アプリケーションを代表する第１の代表値が格納され、
前記コントローラは、前記取得したアプリケーションに対して前記所定の演算によって当該アプリケーションを代表する第２の代表値を算出し、前記第１の代表値と前記第２の代表値を比較して当該アプリケーションの検証を行う
情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
前記アプリケーション情報テーブルには、モード情報が格納され、
前記コントローラは、前記アプリケーション情報テーブルに記述された前記モード情報をもとに、前記アプリケーションが利用できる機能を制御する
情報処理装置。
【請求項４】
請求項３に記載の情報処理装置であって、
前記コントローラは、前記アプリケーション情報テーブルに記述された前記モード情報をもとに、前記電子署名の検証の要否を判定する
情報処理装置。
【請求項５】
電子署名が添付され、放送コンテンツとともに処理するアプリケーションを情報処理装置に取得させるために必要なロケーション情報が格納されたアプリケーション情報テーブルを生成し、前記情報処理装置からの当該アプリケーション情報テーブルの取得要求に応じて応答する生成部
を有するサーバ装置。
【請求項６】
請求項５に記載のサーバ装置であって、
前記生成部は、前記アプリケーションから所定の演算によって求められた当該アプリケーションを代表する第１の代表値を前記アプリケーション情報テーブルに付加する
サーバ装置。
【請求項７】
請求項６に記載のサーバ装置であって、
前記生成部は、前記アプリケーションが利用できる機能を制御するモード情報を前記アプリケーション情報テーブルに付加する
サーバ装置。
【請求項８】
コントローラが、電子署名が添付され、放送コンテンツとともに処理するアプリケーションを取得するために必要なロケーション情報が格納されたアプリケーション情報テーブルを取得し、前記電子署名を検証し、少なくとも当該検証に成功した場合に、前記ロケーション情報をもとに前記アプリケーションを取得することを可能とする
情報処理方法。
【請求項９】
生成部が、電子署名が添付され、放送コンテンツとともに処理するアプリケーションを情報処理装置に取得させるために必要なロケーション情報が格納されたアプリケーション情報テーブルを生成し、前記情報処理装置からの当該アプリケーション情報テーブルの取得要求に応じて応答する
サーバ処理方法。
【請求項１０】
放送コンテンツを受信し処理する放送コンテンツ処理部と、
電子署名が添付され、前記放送コンテンツとともに処理するアプリケーションを取得するために必要なロケーション情報が格納されたアプリケーション情報テーブルを取得し、前記電子署名を検証し、少なくとも当該検証に成功した場合に、前記ロケーション情報をもとに前記アプリケーションを取得することを可能とするコントローラと
としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、アプリケーション管理テーブルを用いて放送コンテンツに関連するアプリケーションを実行することが可能な情報処理装置、アプリケーション管理テーブルを供給するサービスを行うサーバ装置、これらの装置に関連する情報処理方法、サーバ処理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、放送コンテンツの再生と同時に、インターネット等のネットワークを通じて配信されるアプリケーションの実行を行うことを可能とする技術が知られている。このような技術として、ハイブリッドブロードバンド放送（Hybrid Broadcast Broadband TV、以下「ＨｂｂＴＶ」と称する。）と呼ばれる技術が知られている。ＨｂｂＴＶの標準規格として、欧州では「ETSI TS 102 796」（非特許文献１参照。）が策定されている。また、我が国でもこれに準拠した標準規格「ARIB STD-B23」（非特許文献２参照。）が策定されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ETSI（European Telecommunications Standards Institute）「ETSI TS 102 796 V1.1.1 （2010-06)」http://www.etsi.org/deliver/etsi_ts/102700_102799/102796/01.01.01_60/ts_102796v010101p.pdf（平成２３年１０月２１日閲覧）
【非特許文献２】社団法人電波産業会「デジタル放送におけるアプリケーション実行環境  標準規格  ARIB STD-B23 1.2版」http://www.arib.or.jp/english/html/overview/doc/2-STD-B23v1_2.pdf（平成２３年１０月２１日閲覧）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えばＨｂｂＴＶなどのように、放送コンテンツの再生と同時にアプリケーションが実行されるシステムでは、アプリケーションの起動から終了までのライフサイクルが、放送コンテンツに重畳されたＡＩＴセクション（Application Information Table）と呼ばれるデータ構造によって管理される。ＡＩＴセクションを取得した情報端末は、ＡＩＴセクションに含まれるアプリケーション制御用のコードをもとにアプリケーションの制御を行う。【０００５】
また、放送ＡＩＴセクションと同等の情報を有し、インターネットなど通信網を利用して受信機にアプリケーションに関する情報を提供するために最適なフォーマットとして、ＸＭＬ形式で記述されたＡＩＴセクションであるＸＭＬ−ＡＩＴがある。【０００６】
しかしながら、ＸＭＬ−ＡＩＴは、インターネットを通じて提供されるファイルであることから、悪意のある第三者による改ざんなどの危険に晒されたものと言える。ＸＭＬ−ＡＩＴが改ざんされると、意図しないアプリケーションサーバのアプリケーションをダウンロードするように誘導されたり、正規とは異なるアプリケーションの制御が実行されたりするなどの可能性が生じる。【０００７】
また、アプリケーションには、放送から番組やデータを受信して提示するなど、様々な機能を利用できるものが多い。しかし、このようなアプリケーションが利用することのできる機能の中の一部を利用不可とするためには、アプリケーションそのものに変更を加えるなど、時間と手間がかかる。【０００８】
以上のような事情に鑑み、本技術の目的は、アプリケーションの信頼性の向上を図ることのできる情報処理装置、サーバ装置、情報処理方法、サーバ処理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本技術に係る情報処理装置は、放送コンテンツを受信し処理する放送コンテンツ処理部と、電子署名が添付され、前記放送コンテンツとともに処理するアプリケーションを取得するために必要なロケーション情報が格納されたアプリケーション情報テーブルを取得し、前記電子署名を検証し、少なくとも当該検証に成功した場合に、前記ロケーション情報をもとに前記アプリケーションを取得することを可能とするコントローラとを具備する。【００１０】
前記アプリケーション情報テーブルには、前記アプリケーションから所定の演算によって求められた当該アプリケーションを代表する第１の代表値が格納され、
前記コントローラは、前記取得したアプリケーションに対して前記所定の演算によって当該アプリケーションを代表する第２の代表値を算出し、前記第１の代表値と前記第２の代表値を比較して当該アプリケーションの検証を行うものであってよい。【００１１】
前記アプリケーション情報テーブルには、モード情報が格納され、前記コントローラは、前記アプリケーション情報テーブルに記述された前記モード情報をもとに、前記アプリケーションが利用できる機能を制御するものであってよい。【００１２】
前記コントローラは、前記アプリケーション情報テーブルに記述された前記モード情報をもとに、前記電子署名の検証の要否を判定するものであってよい。【００１３】
本技術に係るサーバ装置は、電子署名が添付され、放送コンテンツとともに処理するアプリケーションを情報処理装置に取得させるために必要なロケーション情報が格納されたアプリケーション情報テーブルを生成し、前記情報処理装置からの当該アプリケーション情報テーブルの取得要求に応じて応答する生成部を有する。【００１４】
前記生成部は、前記アプリケーションから所定の演算によって求められた当該アプリケーションを代表する第１の代表値を前記アプリケーション情報テーブルに付加するものであってよい。【００１５】
前記生成部は、前記アプリケーションが利用できる機能を制御するモード情報を前記アプリケーション情報テーブルに付加するものであってよい。【００１６】
本技術に係る情報処理方法は、コントローラが、電子署名が添付され、放送コンテンツとともに処理するアプリケーションを取得するために必要なロケーション情報が格納されたアプリケーション情報テーブルを取得し、前記電子署名を検証し、少なくとも当該検証に成功した場合に、前記ロケーション情報をもとに前記アプリケーションを取得することを可能とする。【００１７】
本技術に係るサーバ処理方法は、生成部が、電子署名が添付され、放送コンテンツとともに処理するアプリケーションを情報処理装置に取得させるために必要なロケーション情報が格納されたアプリケーション情報テーブルを生成し、前記情報処理装置からの当該アプリケーション情報テーブルの取得要求に応じて応答する。【００１８】
本技術に係るプログラムは、放送コンテンツを受信し処理する放送コンテンツ処理部と、電子署名が添付され、前記放送コンテンツとともに処理するアプリケーションを取得するために必要なロケーション情報が格納されたアプリケーション情報テーブルを取得し、前記電子署名を検証し、少なくとも当該検証に成功した場合に、前記ロケーション情報をもとに前記アプリケーションを取得することを可能とするコントローラとしてコンピュータを機能させる。
【発明の効果】
【００１９】
以上のように、本技術によれば、アプリケーションの信頼性の向上を図ることができる。
【図面の簡単な説明】
【００２０】
【図１】本実施形態の情報処理システムの概要を示す図である。
【図２】ＡＩＴセクションのデータ構造を示す図である。
【図３】ＸＭＬ−ＡＩＴのデータ構造を示す図である。
【図４】アプリケーションモード記述子およびアプリケーションハッシュ記述子のデータ構造を示す図である。
【図５】ＡＩＴセクションおよびＸＭＬ−ＡＩＴに指定されるアプリケーション制御コードの定義を示す図である。
【図６】本実施形態の情報処理装置の構成を示すブロック図である。
【図７】ＡＩＴセクションを用いたアプリケーションの制御の動作例を示す図である。
【図８】図７の動作例のフローチャートである。
【図９】ＸＭＬ−ＡＩＴを用いたアプリケーションの起動の動作例を示す図である。
【図１０】図９の動作例のフローチャートである。
【図１１】放送ＢＭＬデータからアプリケーションを起動する場合の動作例を示す図である。
【図１２】図１１の動作例のフローチャートである。
【図１３】放送連動型アプリケーションを起動した後、ＸＭＬ−ＡＩＴによって放送非連動型アプリケーションを起動する場合の動作例を示す図である。
【図１４】図１３の動作例のフローチャートである。
【図１５】図１３の動作例のフローチャートである。
【図１６】アプリケーションランチャから放送非連動型アプリケーションを起動する場合の動作例を示す図である。
【図１７】図１６の動作例のフローチャートである。
【図１８】電子署名およびハッシュ値の生成と検証の方法を説明する図である。
【図１９】電子署名およびハッシュ値の生成と検証の方法の変形例を説明する図である。
【発明を実施するための形態】
【００２１】
以下、本技術の実施の形態を図面をもとに説明する。
＜第１の実施形態＞
［情報処理システム］
図１は、本実施形態の情報処理システムの概要を示す図である。
本実施形態の情報処理システム１は、放送設備１００と、インターネットなどの第１のネットワーク２００と、アプリケーションサーバ３００と、ＸＭＬ−ＡＩＴサーバ４００と、エッジルータ５００と、ＬＡＮ（Local Area Network）などの第２のネットワーク６００と、情報処理装置７００とを有する。
【００２２】
放送設備１００は、例えば、地上波、衛星波、ＩＰ（Internet Protocol）ネットワークなどの通信媒体を介してデジタル放送信号を送信する。放送設備１００は、映像、音声、字幕などの各ストリームが多重化されたＡＶストリームと、ＡＶストリームに付随するデータなどが重畳されたいわゆる放送ストリームを送出する。ＡＶストリームに付随するデータとしては、ＨＴＭＬ、ＢＭＬなどなどのマークアップ言語、Java（登録商標）スクリプトなどのスクリプト言語で記述されたアプリケーション、アプリケーションを管理するための情報からなるＡＩＴセクション（Application Information Table）セクションなどが含まれる。ここで放送設備１００より放送されるアプリケーションを「放送アプリケーション」と呼ぶ。
【００２３】
アプリケーションサーバ３００は、第１のネットワーク２００に接続可能とされ、第１のネットワーク２００を通じて情報処理装置７００に、放送ストリームとともに処理されるアプリケーションを提供する。ここで、放送ストリームとともに処理されるアプリケーションには、放送コンテンツに関連する放送連携型アプリケーションと、放送コンテンツに関連しない放送非連携型アプリケーションとがある。放送連携型アプリケーションは、放送から番組やデータなどの様々なリソースを取得して提示することができるアプリケーションである。一方、放送非連携型アプリケーションは放送コンテンツと関連しないため、放送リソースにアクセスすることのないアプリケーションである。
【００２４】
ＸＭＬ−ＡＩＴサーバ４００は、第１のネットワーク２００に接続可能とされ、第１のネットワーク２００を通じて情報処理装置７００に、アプリケーションサーバ３００から提供されるアプリケーションを管理するためのＸＭＬ（Extensible Markup Language）−ＡＩＴを配信する。
【００２５】
なお、アプリケーションサーバ３００とＸＭＬ−ＡＩＴサーバ４００は１つのサーバであってもよい。
【００２６】
エッジルータ５００は、第１のネットワーク２００と第２のネットワーク６００とを接続するためのルータである。第２のネットワーク６００は有線、無線を問わない。
【００２７】
情報処理装置７００は、例えば、パーソナルコンピュータ、携帯電話、スマートフォン、テレビジョン装置、ゲーム機、タブレット端末、オーディオ・ビデオ再生機器などであるが、具体的に製品形態は問わない。
情報処理装置７００は、放送設備１００からデジタル放送信号を受信し、復調してトランスポートストリームを得る。情報処理装置７００は、このトランスポートストリームから放送ストリームを分離し、デコードして情報処理装置７００に接続される表示部（図示せず）及びスピーカ部（図示せず）や、記録装置（図示せず）に出力することが可能である。
【００２８】
なお、表示部、スピーカ部および記録装置はそれぞれ、情報処理装置７００と一体であってもよいし、互いに独立した機器として直接又は第２のネットワーク６００を介して情報処理装置７００に接続されていてもよい。あるいは、表示部及びスピーカ部を有する機器（図示せず）が直接又は第２のネットワーク６００を介して情報処理装置７００に接続されていてもよい。
【００２９】
また、情報処理装置７００は、取得したトランスポートストリームからアプリケーションや、ＡＩＴセクションを含むＰＳＩ／ＳＩを抽出し、当該ＡＩＴセクションを解釈してアプリケーションの制御を行うことが可能である。情報処理装置７００は、アプリケーションが可視的なアプリケーションである場合には、このアプリケーションの実行により生成された映像信号を、上記放送コンテンツの映像信号及び字幕信号と合成して表示部に出力することが可能である。
【００３０】
さらに、情報処理装置７００は、第１のネットワーク２００、エッジルータ５００及び第２のネットワーク６００を通じて、アプリケーションサーバ３００からアプリケーションを取得することができる。同様に情報処理装置７００は、ＸＭＬ−ＡＩＴサーバ４００からＸＭＬ−ＡＩＴのファイルを取得することができる。情報処理装置７００は、取得したＸＭＬ−ＡＩＴを解釈して、アプリケーションサーバ３００から取得したアプリケーションや放送を通じて取得したアプリケーションを制御することが可能である。
【００３１】
［アプリケーション］
ここで、アプリケーションについて説明する。アプリケーションは、放送設備１００およびアプリケーションサーバ３００から情報処理装置７００に提供される。アプリケーションは、例えばＨＴＭＬ（Hyper Text Markup Language）文書、BML文書(Broadcast Markup Language)、MHEG文書(Multimedia and Hypermedia information coding)、Ｊａｖａ（登録商標）スクリプト、静止画ファイル、動画ファイルなどで構成される。
【００３２】
アプリケーションは可視的なものであっても不可視的なものであってもよい。可視的なアプリケーションとは、画面を通じてその状態をユーザが視ることのできるアプリケーションである。不可視的なアプリケーションは、画面を通じてその状態をユーザが視ることのできないアプリケーションである。例えば、ブラウザがユーザに不可視の透明な状態で起動中であるときに利用されるアプリケーションや、視聴率調査などを目的として情報処理装置にて視聴された放送コンテンツを特定するための情報や視聴時間を記録して特定のサーバに配信したりするアプリケーションなどが考えられる。
【００３３】
また、アプリケーションは、情報処理装置７００のユーザの操作に従って提示する情報や機能を変えることができる双方向型アプリケーションでもよいし、ユーザに対して一方向に情報を提示するアプリケーションでもよい。
さらに、アプリケーションには、放送コンテンツに連動した放送連動型アプリケーションと、放送コンテンツに連動しない放送非連動型アプリケーションとがある。
【００３４】
［ＡＩＴセクション及びＸＭＬ−ＡＩＴのデータ構造］
ここで、放送設備１００からＡＩＴセクションとして伝送されるＡＩＴのデータ構造と、アプリケーションサーバ３００から提供されるＸＭＬ−ＡＩＴのデータ構造について説明する。なお、本明細書で単に「ＡＩＴ」と記述するときは、放送設備１００からＡＩＴセクションで伝送されるＡＩＴのことを言う。
【００３５】
図２は、本実施形態のＡＩＴのデータ構造を示す図である。
ＡＩＴは、アプリケーションに関する種々の情報や、アプリケーションを制御するためのアプリケーション制御コード等が格納されるテーブルである。具体的には、ＡＩＴには、テーブルＩＤ、セクションシンタックス指示、セクション長、アプリケーション形式、バージョン番号、カレントネクスト指示、セクション番号、最終セクション番号、共通記述子ループ長、アプリケーション情報ループ長、アプリケーション識別子、アプリケーション制御コード１１、アプリケーション記述子ループ長、アプリケーション記述子等が格納される。
【００３６】
図３は、本実施形態のＸＭＬ−ＡＩＴのデータ構造を示す図である。
ＸＭＬ−ＡＩＴには、アプリケーション毎の、アプリケーション名、アプリケーション識別子、アプリケーション記述子、アプリケーションタイプ、アプリケーション制御コード２１、アプリケーションの可視性、現在のサービス内でのみ有効かを示すフラグ、アプリケーションの優先度、アプリケーションのバージョン、プラットフォームプロファイルにあわせたバージョン、アイコン、ストレージ機能の性能、トランスポートプロトコル記述子、アプリケーションロケーション記述子、アプリケーションバウンダリ記述子、アプリケーションスペシフィック記述子、アプリケーションユーセジ記述子、アプリケーションモード記述子２２、アプリケーションハッシュ記述子２３等が格納される。
【００３７】
このＸＭＬ−ＡＩＴには、改ざんを検出するための電子署名が添付される。電子署名としては、例えばＸＭＬ署名などが用いられる。ＸＭＬ署名の形式は、ＸＭＬ−ＡＩＴに対して独立したdetached署名、ＸＭＬ−ＡＩＴを包含した形式を有するenveloping署名、ＸＭＬ−ＡＩＴに包含された形式のenveloped署名のいずれであるかを問わない。なお、ＸＭＬ−ＡＩＴのフォーマットへの影響を抑えるにはdetached署名を採用するのがよい。
【００３８】
情報処理装置７００のアプリケーションコントローラ７０８は、リファレンス検証（Reference Validation）と署名検証（Signature Validation）とを含むコア検証（Core Validation）の手続きに従って、ＸＭＬ署名を検証する。
リファレンス検証とは、リソース（ＸＭＬ−ＡＩＴ）に正規化変換プロセス（Transform）及びダイジェスト計算アルゴリズム（DigestMethod）を適用することにより、リファレンス（Reference）のダイジェスト値（DigestValue）を検証する方式である。リファレンス検証により得られた結果と、登録されたダイジェスト値（DigestValue）とが比較され、これらが一致しない場合、検証失敗となる。
署名検証とは、署名情報（SignatureInfo）要素をＸＭＬ正規化アルゴリズム（CanonicalizationMethod）で指定された正規化方式でシリアル化し、鍵情報（KeyInfo）等を用いて鍵データを取得し、署名アルゴリズム（SignatureMethod）で指定された方式を用いて署名を検証する方式である。
【００３９】
上記のＸＭＬ−ＡＩＴのデータ構造において、アプリケーションモード記述子２２およびアプリケーションハッシュ記述子２３は本技術に係る実施形態のシステムから新規に導入された情報である。
【００４０】
図４はアプリケーションモード記述子２２およびアプリケーションハッシュ記述子２３のデータ構造を示す図である。
アプリケーションモード記述子２２は、アプリケーションモード記述子２２を識別する記述子タグ、記述子長、アプリケーションのモードを示すアプリケーションモードなどで構成される。
【００４１】
アプリケーションモードは、アプリケーションが利用できる機能（ＡＰＩ：Application Program Interface）を制御するための情報である。アプリケーションによって利用が制限される機能としては、例えば、放送の番組やデータなどの様々な放送リソースにアクセスして提示する放送リソース提示機能などが挙げられる。より詳細には、放送連動型アプリケーションは、その放送リソース提示機能を利用できるようにアプリケーションモードの値が設定され、放送に無関係（連動しない）放送非連動型アプリケーションは、その放送リソース提示機能を利用できないようにアプリケーションモードの値が設定される。なお、アプリケーションモードによって、利用できるかどうかが切り替えられる機能は放送リソース提示機能に限られない。
【００４２】
ここで、放送連動型アプリケーションに対して設定されるアプリケーションモードを"mode1"、放送非連動型アプリケーションに対して設定されるアプリケーションモードを"mode2"とした場合を想定する。
この想定においては、アプリケーションモードは、情報処理装置において電子署名の検証の要否を知るための情報として利用することができる。すなわち、情報処理装置はアプリケーションモードが"mode1"であるとき電子署名の検証が不要と判定し、"mode2"であるとき電子署名の検証が必要であることを判定する。但し、これは１つの運用形態に過ぎず、放送連動型アプリケーションについても電子署名の検証を必要とすることとしてもよい。
【００４３】
アプリケーションハッシュ記述子２３は、記述子タグ、記述子長、ハッシュ値の計算方法を示すハッシュアルゴリズム、ハッシュ値長、ハッシュ値などで構成される。ハッシュ値は、アプリケーションのハッシュ値であり、所定のハッシュ関数などによってアプリケーションの実体から生成された値であり、そのアプリケーションを代表する値と言うことができる。このハッシュ値の利用方法については後で説明する。
【００４４】
［アプリケーション制御コードの定義］
アプリケーションのライフサイクルは、ＡＩＴセクション及びＸＭＬ−ＡＩＴに格納されるアプリケーション制御コード１１、２１をもとに、情報処理装置７００によって動的に制御される。
図５はＡＩＴセクション及びＸＭＬ−ＡＩＴに格納されるアプリケーション制御コード１１、２１の定義を示す図である。
同図に示すように、アプリケーション制御コードとしては、"AUTOSTART"、"PRESENT"、"DESTROY"、"KILL"、"PREFETCH"、"REMOTE"、"DISABLED"、"PLAYBACK_AUTOSTART"が標準規格上存在する。これらアプリケーション制御コードの定義は以下のとおりである。
【００４５】
"AUTOSTART"は、サービスの選択に伴いアプリケーションを自動で起動することを指示するコードである。アプリケーションが既に実行されている場合にはこの限りでない。
"PRESENT"は、サービスが選択されている間、アプリケーションを実行可能な状態とすることを指示するコードである。但し、対象のアプリケーションは、サービスの選択に伴って自動的にアプリケーションは起動されず、ユーザからの起動の指示を受けて起動される。
"DESTROY"は、アプリケーションの終了の許可を指示するコードである。
"KILL"は、アプリケーションの強制的な終了を指示するコードである。
"PREFETCH"は、アプリケーションのキャッシュを指示するコードである。
"REMOTE"は、現在のトランスポートストリームでは取得できないアプリケーションであることを示すコードである。そのアプリケーションは、別のトランスポートストリームあるいはキャッシュから取得して利用可能となる。
"DISABLED"は、アプリケーションの起動を禁止することを示すコードである。
"PLAYBACK_AUTOSTART"は、ストレージ（記録装置）に録画された放送コンテンツの再生に伴いアプリケーションを起動させるためのコードである。
【００４６】
［第１の情報処理装置の構成］
図６は本実施形態の情報処理装置７００の構成を示すブロック図である。
情報処理装置７００は、放送インタフェース７０１、デマルチプレクサ７０２、出力処理部７０３、映像デコーダ７０４、音声デコーダ７０５、字幕デコーダ７０６、通信インタフェース７０７、アプリケーションコントローラ７０８（コントローラ）を有する。
【００４７】
放送インタフェース７０１は、アンテナ及びチューナを有し、これらを用いてユーザにより選局されたデジタル放送信号を受信する。放送インタフェース７０１は、受信したデジタル放送信号に対して復調処理などを施して得たトランスポートストリームをデマルチプレクサ７０２に出力する。
【００４８】
デマルチプレクサ７０２は、トランスポートストリームから放送コンテンツのストリームパケット、アプリケーションのパケット、ＡＩＴセクションのパケットをそれぞれ分離する。デマルチプレクサ７０２は、放送コンテンツのストリームパケットから映像ＥＳ（Elementary Stream）、音声ＥＳ、字幕ＥＳを分離する。デマルチプレクサ７０２は、映像ＥＳを映像デコーダ７０４に、音声ＥＳを音声デコーダ７０５に、字幕ＥＳを字幕デコーダ７０６に、そしてアプリケーションのパケット、およびＡＩＴセクションを含むＰＳＩ／ＳＩ（Program Specific Information/Service Information）のパケットをアプリケーションコントローラ７０８にそれぞれ分配する。
【００４９】
映像デコーダ７０４は、映像ＥＳをデコードして映像信号を生成し、生成した映像信号を出力処理部７０３に出力する。音声デコーダ７０５は、音声ＥＳをデコードして音声信号を生成し、生成した音声信号を出力処理部７０３に出力する。
字幕デコーダ７０６は、字幕ＥＳをデコードして字幕信号を生成し、生成した字幕信号を出力処理部７０３に出力する。
【００５０】
放送インタフェース７０１、デマルチプレクサ７０２、出力処理部７０３、映像デコーダ７０４、音声デコーダ７０５、字幕デコーダ７０６は、放送コンテンツを受信して処理する放送コンテンツ処理部である。
【００５１】
通信インタフェース７０７は、ＬＡＮなどの第２のネットワーク６００を通じて外部の機器と通信を行うためのインタフェースである。通信インタフェース７０７は無線による通信、有線による通信を問わない。
【００５２】
アプリケーションコントローラ７０８は、アプリケーションの制御に関する処理を行うコントローラである。
【００５３】
出力処理部７０３は、映像デコーダ７０４からの映像信号、音声デコーダ７０５からの音声信号、字幕デコーダ７０６からの字幕信号及びアプリケーションコントローラ７０８からの映像信号や音声信号等を合成し、情報処理装置７００に接続された記録装置（図示せず）、表示部及びスピーカ部（図示せず）に出力する。
【００５４】
上記の情報処理装置７００の少なくともアプリケーションコントローラ７０８を含む構成の一部または全ては、ＣＰＵ（Central Processing Unit）およびメモリを有するコンピュータとプログラムとにより提供することが可能である。
【００５５】
［情報処理システム１の動作］
次に、本実施形態の情報処理システム１の動作を説明する。
動作の説明は、
１．ＡＩＴセクションを用いたアプリケーションの起動
２．ＸＭＬ−ＡＩＴを用いたアプリケーションの起動
３．放送ＢＭＬデータからのアプリケーションの起動
４．放送非連動型のアプリケーションの起動
５．アプリケーションランチャから放送非連動型アプリケーションの起動
６．電子署名およびハッシュ値の生成と検証
の順で行う。
【００５６】
（１．ＡＩＴセクションを用いたアプリケーションの起動）
図７はＡＩＴセクションを用いたアプリケーションの起動の動作例を示す図である。
図８は図７の動作例のフローチャートである。
情報処理装置７００は、例えばリモコンなどを使ってユーザにより選局された放送設備１００からの放送コンテンツを受信し、映像データ、音声データ、字幕データなどのデコード処理などを行って、情報処理装置７００に接続された表示部及びスピーカ部に放送コンテンツを出力する（ステップＳ１０１）。
【００５７】
具体的には、放送インタフェース７０１が、ユーザにより選局された放送設備１００から放送コンテンツのデジタル放送信号を受信し、復調処理などを施して得たトランスポートストリームをデマルチプレクサ７０２に出力する。デマルチプレクサ７０２はトランスポートストリームから放送コンテンツのストリームパケットを分離し、さらに放送コンテンツのストリームパケットを映像ＥＳ、音声ＥＳ、字幕ＥＳに分離する。分離された映像ＥＳ、音声ＥＳ、字幕ＥＳはそれぞれ、映像デコーダ７０４、音声デコーダ７０５、字幕デコーダ７０６にてデコードされ、出力処理部７０３にて合成されて表示部及びスピーカ部に出力される。
【００５８】
この例では、放送設備１００から時刻Ｔ１に、放送連動型アプリケーションApp1に関するＡＩＴが格納されたＡＩＴセクションが放送コンテンツに重畳して伝送される。このＡＩＴセクションには放送連動型アプリケーションApp1のロケーション情報と起動を指示するアプリケーション制御コード"AUTOSTART"が格納されている。ここで、放送連動型アプリケーションApp1はアプリケーションサーバ３００から取得される場合を想定しているため、ロケーション情報はそのアプリケーションサーバ３００から当該放送連動型アプリケーションApp1を取得するために必要な情報として、ＨＴＴＰ（Hypertext Transfer Protocol）などの通信プロトコル情報とＵＲＬ（Uniform Resource Locator）などで構成される。
【００５９】
デマルチプレクサ７０２はトランスポートストリームから放送連動型アプリケーションApp1のパケットとＡＩＴセクションのパケットを分離してアプリケーションコントローラ７０８に供給する。アプリケーションコントローラ７０８はＡＩＴセクションを取得すると（ステップＳ１０２）、これを解析する（ステップＳ１０３）。
【００６０】
なお、本実施形態では、ＡＩＴセクションは悪意のある第三者によって改ざんされる可能性は極めて低いという理由から、電子署名の検証は不要とされている。
【００６１】
この動作例では、ＡＩＴセクションにアプリケーション制御コードとして"AUTOSTART"が指定されているので、アプリケーションコントローラ７０８は、当該ＡＩＴセクションに記述されたロケーション情報をもとにアプリケーションサーバ３００にアクセスして放送連動型アプリケーションApp1を取得し、これを起動させる（ステップＳ１０４のＮ、ステップＳ１０５のＹ、ステップＳ１０６）。起動された放送連動型アプリケーションApp1は、例えば、表示部に表示された放送番組Ａの映像とともに可視化（提示）される。
【００６２】
続いて、時刻Ｔ２にＡＩＴセクションの更新が発生したものとする。情報処理装置７００のアプリケーションコントローラ７０８は、ＡＩＴセクションのデータ構造の中のバーションナンバーをもとにＡＩＴセクションの更新が発生したことを知ることができる。ここで、更新されたＡＩＴセクションには、放送連動型アプリケーションApp1の終了を指示するアプリケーション制御コード"DESTROY"または"KILL"と、次の放送連動型アプリケーションApp2の起動を指示するアプリケーション制御コード"AUTOSTART"が記述されているものとする。
【００６３】
情報処理装置７００のアプリケーションコントローラ７０８は、新たなＡＩＴセクションを取得すると（ステップＳ１０２）、このＡＩＴセクションに記述された放送連動型アプリケーションApp1に対するアプリケーション制御コード"DESTROY"または"KILL"に従って放送連動型アプリケーションApp1を終了させる（ステップＳ１０４のＹ、エンド）。また、アプリケーションコントローラ７０８は、当該ＡＩＴセクションに放送連動型アプリケーションApp2に対するアプリケーション制御コードとして格納された"AUTOSTART"に従って放送連動型アプリケーションApp2を取得し（ステップＳ１０５のＹ、Ｓ１０６）、これを起動させる（ステップＳ１０５）。これにより、放送連動型アプリケーションApp1に代わって放送連動型アプリケーションApp2が放送番組Ａの映像とともに提示される。
【００６４】
なお、アプリケーションコントローラ７０８は、取得したＡＩＴセクションに"AUTOSTART"、"DESTROY"、"KILL"以外のアプリケーション制御コードが記述されている場合には、そのアプリケーション制御コードに従って放送連動型アプリケーションの状態を遷移させるなどの処理を行った後（ステップＳ１０７）、次のＡＩＴセクションを待機する。
【００６５】
図７において、放送連動型アプリケーションApp1および放送連動型アプリケーションApp2は放送番組の映像に対して領域を分けてL字形に表示されるものとしたが、必ずしも放送番組の映像と同時に表示される必要はなく、全画面に表示してもよい。また、放送番組の映像に対して領域を分けて表示するにしても、縦横に分離して表示したり、左右に分離して表示させるようにしてもよい。アプリケーションを全画面に表示させる場合、放送番組の映像が表示されなくなるが、この状態においても、放送インタフェース７０１のチューナは選局状態にあり、ＡＩＴセクションを含む放送ストリームの受信状態が継続される。
【００６６】
上記のように、放送連動型アプリケーションを時間によって切り替えて情報処理装置７００に提示させるサービスの具体的な態様としては、例えば、次のようなものが挙げられる。
１．歌手のコンサート全体を映す動画が主映像としてＡＶストリームで伝送される場合に、その様子を別の角度から撮影したり、歌手をズーム撮影したりした副映像、その歌手やコンサートに関する文字データなどの情報を提供するためのアプリケーション。
２．様々な国の言語によるスポーツ実況の音声や字幕を提供するためのアプリケーション。
３．目の不自由な人向けにＡＶストリームで伝送される映像の内容を音声で説明するためのオーディオディスクリプションのアプリケーション。
【００６７】
（２．ＸＭＬ−ＡＩＴを用いたアプリケーションの起動）
図９はＸＭＬ−ＡＩＴを用いたアプリケーションの起動の動作例を示す図である。
図１０は図９の動作例のフローチャートである。
【００６８】
ユーザによるリモコンの操作による放送の選局（ステップＳ２０１）からＡＩＴセクションに基づく放送連動型アプリケーションの取得、提示（ステップＳ２０８）までの動作は、上記の１．ＡＩＴセクションを用いたアプリケーションの起動と同じである。
【００６９】
この動作例では、提示中の放送連動型アプリケーションApp1に、次に提示させる放送連動型アプリケーションApp2用のＸＭＬ−ＡＩＴを情報処理装置７００に取得させるためのcreateApplication()関数などを含むスクリプトが組み込まれている場合を想定している。createApplication()関数には、引数として、その放送連動型アプリケーションApp2用のＸＭＬ−ＡＩＴにアクセスするために必要な通信プロトコルに関する情報とＸＭＬ−ＡＩＴのロケーション情報などが記述されている。
【００７０】
放送連動型アプリケーションApp1の提示中、ユーザからの指示あるいは時間など所定の条件が成立すると（ステップＳ２０９のＹ）、放送連動型アプリケーションApp1に組み込まれた上記のスクリプトが実行されることによって、情報処理装置７００のアプリケーションコントローラ７０８は、新たなＸＭＬ−ＡＩＴをＸＭＬ−ＡＩＴサーバ４００から取得し（ステップＳ２１０）、解析する（ステップＳ２１１）。
【００７１】
この新たなＸＭＬ−ＡＩＴには、実行中の放送連動型アプリケーションApp1に関する情報とこれから実行される放送連動型アプリケーションApp2に関する情報が記述されている。ここで、放送連動型アプリケーションApp1に関する情報として、放送連動型アプリケーションApp1の終了を指示するアプリケーション制御コード"DESTROY"または"KILL"と、アプリケーションモード"mode1"が記述され、放送連動型アプリケーションApp2に関する情報としては、当該放送連動型アプリケーションApp2の起動を指示するアプリケーション制御コード"AUTOSTART"とアプリケーションモード"mode1"が記述されている。つまり各アプリケーションApp1、App2とも放送連動型のアプリケーションであるためアプリケーションモードは"mode1"とされている。
【００７２】
アプリケーションコントローラ７０８は、取得したＸＭＬ−ＡＩＴにおいて各アプリケーションApp1、App2ともアプリケーションモードが"mode1"であることから、電子署名の検証を要することなく、このＸＭＬ−ＡＩＴに記述されたアプリケーション制御コードに従って各アプリケーションApp1、App2に関する制御を開始する。
【００７３】
すなわち、ＸＭＬ−ＡＩＴに記述された放送連動型アプリケーションApp1に対するアプリケーション制御コード"DESTROY"または"KILL"に従って放送連動型アプリケーションApp1を終了させる。さらに、アプリケーションコントローラ７０８は、ＸＭＬ−ＡＩＴに記述された放送連動型アプリケーションApp2に対するアプリケーション制御コード"AUTOSTART"に従って（ステップＳ２１２のＹ）、そのＸＭＬ−ＡＩＴに記述された放送連動型アプリケーションApp2のロケーション情報をもとにアプリケーションサーバ３００から放送連動型アプリケーションApp2を取得し、これを起動させる（ステップＳ２１３）。この際、アプリケーションコントローラ７０８は、放送連動型アプリケーションApp2のアプリケーションモードが"mode1"に設定されているので、放送リソース提示機能などを利用できるモードで放送連動型アプリケーションApp2を起動させる。
【００７４】
（３．放送ＢＭＬデータからのアプリケーションの起動）
次に、放送ＢＭＬデータからアプリケーションを起動する場合の動作を説明する。
図１１は放送ＢＭＬデータからアプリケーションを起動する場合の動作例を示す図である。
図１２は図１１の動作例のフローチャートである。
【００７５】
本動作例は、ＢＭＬデータ放送に放送連動型アプリケーションApp1のＸＭＬ−ＡＩＴを情報処理装置７００に取得させるためのスクリプトが組み込まれている場合を想定している。なお、データ放送はＢＭＬであることに限定されない。例えば、ＭＨＥＧ（Multimedia and Hypermedia Experts Group）など、マルチメディアを扱うことのできる他のマークアップ言語によるデータ放送も可である。
【００７６】
情報処理装置７００は、例えばリモコンなどを使ってユーザにより選局された放送設備１００からの放送コンテンツを受信し、映像データ、音声データ、字幕データなどのデコード処理などを行って、情報処理装置７００に接続された表示部及びスピーカ部にＡＶコンテンツ（放送番組）を出力する（ステップＳ３０１）。
【００７７】
ＡＶコンテンツ（放送番組）の出力中、例えばリモコンなどを使ってユーザによりデータ放送を再生する指示が入力されると（ステップＳ３０３）、当該視聴中のＡＶコンテンツ（放送番組）に付随して伝送されるＢＭＬデータ放送がＡＶコンテンツ（放送番組）とともに提示される（ステップＳ３０４）。
【００７８】
ＢＭＬデータ放送の提示中、ユーザからの指示あるいは時間など所定の条件が成立すると（ステップＳ３０５のＹ）、ＢＭＬデータ放送に組み込まれた上記のスクリプトが実行されることによって、情報処理装置７００のアプリケーションコントローラ７０８は、放送連動型アプリケーションApp1用のＸＭＬ−ＡＩＴをＸＭＬ−ＡＩＴサーバ４００から取得し（ステップＳ３０６）、解析する（ステップＳ３０７）。
【００７９】
この放送連動型アプリケーションApp1用のＸＭＬ−ＡＩＴには、アプリケーション制御コードとして"AUTOSTART"が指定され、アプリケーションモードとしては"mode1"が記述されている。
【００８０】
アプリケーションコントローラ７０８は、放送連動型アプリケーションApp1のアプリケーションモードが"mode1"であることから、電子署名の検証を要することなく、当該ＸＭＬ−ＡＩＴに記述されたロケーション情報をもとにアプリケーションサーバ３００にアクセスして放送連動型アプリケーションApp1を取得し、これを起動させる（ステップＳ３０８のＹ、ステップＳ３０９）。このとき、アプリケーションコントローラ７０８は、放送連動型アプリケーションApp1のアプリケーションモードが"mode1"であることから、放送リソース提示機能を利用できるモードで放送連動型アプリケーションApp1を起動させる。
なお、電子署名の検証の要否の判定はアプリケーションモードのみで行われるとは限らない。例えば、取得したＸＭＬ−ＡＩＴが、改ざんされる可能性が小さい放送のＢＭＬ文書に記述されたＵＲＬをもとに取得されたものである場合には、電子署名の検証は不要と判定される。逆に、ＸＭＬ−ＡＩＴが、後述するアプリケーションランチャなど、放送以外の伝送系を通じて取得されたものである場合には、電子署名の検証は必要と判定される。
【００８１】
この後、情報処理装置７００のアプリケーションコントローラ７０８は、新たに取得したＸＭＬ−ＡＩＴに放送連動型アプリケーションApp1の終了を指示するアプリケーション制御コード"DESTROY"、または"KILL"が記述されている場合には、このアプリケーション制御コードに従って放送連動型アプリケーションApp1を終了させる（ステップＳ３０２のＹ）。
【００８２】
また、情報処理装置７００のアプリケーションコントローラ７０８は、新たに取得したＸＭＬ−ＡＩＴに"AUTOSTART"、"DESTROY"、"KILL"以外のアプリケーション制御コードが記述されている場合には、そのアプリケーション制御コードに従って放送連動型アプリケーションApp1の状態を遷移させるなどの処理を行った後（ステップＳ３１０）、次のＸＭＬ−ＡＩＴを待機する。
【００８３】
（４．放送非連動型のアプリケーションの起動）
次に、放送非連動型のアプリケーションの起動に関する動作を説明する。
図１３は放送連動型アプリケーションApp1を起動した後、ＸＭＬ−ＡＩＴによって放送非連動型アプリケーションApp3を起動する場合の動作例を示す図である。
図１４及び図１５は図１３の動作例のフローチャートである。
【００８４】
リモコンの操作による放送の選局（ステップＳ４０１）からＡＩＴセクションに基づく放送連動型アプリケーションの取得、提示（ステップＳ４０５）までの動作は、上記の１．ＡＩＴセクションを用いた放送連動型アプリケーションの制御と同じである。
【００８５】
この動作例では、放送連動型アプリケーションApp1に放送非連動型アプリケーションApp3用のＸＭＬ−ＡＩＴを情報処理装置７００に取得させるためのcreateApplication()関数を含むスクリプトが組み込まれている場合を想定している。
【００８６】
放送連動型アプリケーションApp1の実行中、ユーザからの指示あるいは時間など所定の条件が成立すると（ステップＳ４０７のＹ）、放送連動型アプリケーションApp1に組み込まれた上記のスクリプトが実行されることによって、情報処理装置７００のアプリケーションコントローラ７０８は、放送非連動型アプリケーションApp3用のＸＭＬ−ＡＩＴをＸＭＬ−ＡＩＴサーバ４００から取得し、解析する（ステップＳ４０８）。
【００８７】
ここで、放送非連動型のアプリケーションは、一般的に、放送事業者とは異なるアプリケーション提供事業者より提供される。このため、放送非連動型アプリケーションのＸＭＬ−ＡＩＴにはアプリケーションモードとして"mode2"が設定される。したがって、当該ＸＭＬ−ＡＩＴには本来、電子署名が添付されているはずであり、情報処理装置７００の側でＸＭＬ−ＡＩＴを利用するにあたって当該電子署名の検証が必須条件となる。
【００８８】
また、このＸＭＬ−ＡＩＴには、実行中の放送連動型アプリケーションApp1に関する情報として、放送連動型アプリケーションApp1の終了を指示するアプリケーション制御コード"DESTROY"または"KILL"と、アプリケーションモード"mode1"が記述され、これから実行される放送非連動型アプリケーションApp3に関する情報として当該放送非連動型アプリケーションApp3の起動を指示するアプリケーション制御コード"AUTOSTART"とアプリケーションモード"mode2"が記述されている。さらに、このＸＭＬ−ＡＩＴには、放送非連動型アプリケーションApp3のハッシュ値（第１の代表値）が記述されている。
【００８９】
情報処理装置７００のアプリケーションコントローラ７０８は、取得したＸＭＬ−ＡＩＴに電子署名が添付されているかどうかを判定する（ステップＳ４１０）。ＸＭＬ−ＡＩＴに電子署名が添付されている場合にはアプリケーションコントローラ７０８は当該電子署名の検証が必要であることを判定し、検証を行う（ステップＳ４１１）。
【００９０】
また、ＸＭＬ−ＡＩＴに電子署名が添付されていない場合（ステップＳ４１０のＮ）、アプリケーションコントローラ７０８は、ＸＭＬ−ＡＩＴに記述されたアプリケーションモードが、電子署名の検証を必要としないモードの値である"mode1"であるかどうかを確認する（ステップＳ４１２）。この確認で、アプリケーションモードが"mode1"であれば、電子署名の検証が不要であることが判定される。
【００９１】
電子署名の検証に失敗した場合にはエラーが表示される（ステップＳ４２３）。電子署名の検証に成功した場合（ステップＳ４１１のＹ）、あるいは、電子署名の検証が不要であることが判定された場合（ステップＳ４１２のＹ）、アプリケーションコントローラ７０８は、ＸＭＬ−ＡＩＴに記述されたアプリケーション制御コードが"AUTOSTART"であるかどうかを判定する（ステップＳ４１３）。アプリケーション制御コードが"AUTOSTART"であれば、アプリケーションコントローラ７０８は、ＸＭＬ−ＡＩＴにアプリケーションモードの値とハッシュ値が記述されているかどうかを判定する（ステップＳ４１４、Ｓ４１５）。ＸＭＬ−ＡＩＴにアプリケーションモードの値が設定されていない場合にはエラーが表示される（ステップＳ４２３）。ＸＭＬ−ＡＩＴにアプリケーションモードの値が記述されていれば、アプリケーションコントローラ７０８は、ＸＭＬ−ＡＩＴに記述されているハッシュ値（Ａ）（第１の代表値）を保持する（ステップＳ４１６）。
【００９２】
次に、アプリケーションコントローラ７０８は、ＸＭＬ−ＡＩＴに記述されている放送非連動型アプリケーションApp3のロケーション情報をもとにアプリケーションサーバ３００から放送非連動型アプリケーションApp3を取得して、ＸＭＬ−ＡＩＴに記述されているハッシュ値の計算方法を示すハッシュアルゴリズムにより当該放送非連動型アプリケーションApp3のハッシュ値（Ｂ）（第２の代表値）を計算する（ステップＳ４１７）。
【００９３】
次に、アプリケーションコントローラ７０８はハッシュ値（Ａ）とハッシュ値（Ｂ）とを比較する（ステップＳ４１８）。一致する場合、アプリケーションコントローラ７０８は、その放送非連動型アプリケーションApp3のアプリケーションモードが"mode2"であることから、その放送非連動型アプリケーションApp3を放送リソース提示機能を利用できないモードで起動させる（ステップＳ４１９）。一致しない場合にはエラー表示が行われる（ステップＳ４２３）。この後は、新たなＸＭＬ−ＡＩＴに記述されているアプリケーション制御コードに従って、放送非連動型アプリケーションApp3の状態の遷移、終了などの制御や、その他、ユーザのリモコンの操作やイベントメッセージによるイベント処理が行われる（ステップＳ４２０、Ｓ４２１、Ｓ４２２）。
【００９４】
（５．アプリケーションランチャから放送非連動型アプリケーションの起動）
次に、アプリケーションランチャから放送非連動型アプリケーションを起動する場合の動作を説明する。
図１６はアプリケーションランチャから放送非連動型アプリケーションを起動する場合の動作例を示す図である。
図１７は図１６の動作例のフローチャートである。
【００９５】
情報処理装置７００は、例えばリモコンなどを使ってユーザにより選択されたアプリケーションランチャ画面を表示する。アプリケーションランチャ画面とは、情報処理装置７００に実装された、いわゆるレジデントアプリケーションや、ＨＴＭＬブラウザによって提示されるＨＴＭＬ５などの文書によって実現される。アプリケーションランチャ画面には、アプリケーションのメニューなどが表示される（ステップＳ５０１）。ユーザは例えばリモコンなどを使って提示させたいアプリケーションを選択することができる。アプリケーションの個々のメニューには、そのメニューに対応するアプリケーション用のＸＭＬ−ＡＩＴを情報処理装置７００に取得させるためのスクリプトなどが組み込まれている。
【００９６】
アプリケーションランチャ画面に表示されたアプリケーションのメニュー上で、リモコンを使ったユーザの操作によって任意の放送非連動型アプリケーションApp3が選択されると（ステップＳ５０２）、そのアプリケーションに対応する上記のスクリプトが実行されることによって、情報処理装置７００のアプリケーションコントローラ７０８は、当該アプリケーション用のＸＭＬ−ＡＩＴをＸＭＬ−ＡＩＴサーバ４００から取得し、解析する（ステップＳ５０３）。
【００９７】
ここで、アプリケーションランチャ画面から選択可能な放送非連動型のアプリケーションは、一般的に、放送事業者とは異なるアプリケーション提供事業者より提供される。このため、放送非連動型アプリケーションのＸＭＬ−ＡＩＴにはアプリケーションモードとして"mode2"が設定される。したがって、当該ＸＭＬ−ＡＩＴには本来、電子署名が添付されているはずであり、情報処理装置７００の側では、ＸＭＬ−ＡＩＴを利用するにあたって当該電子署名の検証が必須条件となる。
【００９８】
また、このＸＭＬ−ＡＩＴには、放送非連動型アプリケーションApp3に関する情報として、放送非連動型アプリケーションApp3の起動を指示するアプリケーション制御コード"AUTOSTART"とアプリケーションモード"mode2"が記述されている。さらに、このＸＭＬ−ＡＩＴには、放送非連動型アプリケーションApp3のハッシュ値が記述されている。
【００９９】
情報処理装置７００のアプリケーションコントローラ７０８は、取得したＸＭＬ−ＡＩＴに電子署名が添付されているかどうかを判定する（ステップＳ５０４）。ＸＭＬ−ＡＩＴに電子署名が添付されている場合にはアプリケーションコントローラ７０８は当該電子署名の検証が必要であることを判定する。以降の動作は、上記の４．放送非連動型のアプリケーションの起動と同じである。
【０１００】
（６．電子署名およびハッシュ値の生成と検証）
次に、電子署名およびハッシュ値の生成と検証について説明する。
【０１０１】
ＸＭＬ−ＡＩＴサーバ４００およびアプリケーションサーバ３００は一台のサーバであってもよく、別々のサーバであってもよい。ここでは、ＸＭＬ−ＡＩＴサーバ４００およびアプリケーションサーバ３００を総称して「サーバ」と呼ぶ。サーバは、典型的なコンピュータの構成を有する機器である。したがって、ＣＰＵ、メインメモリ、ＨＤＤなどのストレージデバイス、マウスやキーボードなどの入力装置、液晶ディスプレイなどの表示部などで構成される。メインメモリおよびストレージデバイスには、ＯＳ（Operating System）、サーバ用のアプリケーションプログラムなどのソフトウェア、情報処理装置７００に提供されるアプリケーション（放送連動型アプリケーション、放送非連動型アプリケーション）、アプリケーション毎のＸＭＬ−ＡＩＴのファイル、署名生成鍵などが格納される。サーバ用のアプリケーションプログラムとしては、電子署名およびハッシュ値の生成を行うプログラムなどが含まれる。
【０１０２】
図１８はサーバでの電子署名およびハッシュ値の生成と、情報処理装置７００での電子署名およびハッシュ値の検証の方法を説明する図である。
サーバは、ＡＩＴ生成部３５０を有する。ＡＩＴ生成部３５０は、具体的にはメインメモリにロードされた、電子署名およびハッシュ値の生成を行うプログラムと、このプログラムを実行するＣＰＵとで実現される。
【０１０３】
ＡＩＴ生成部３５０は、以下の処理を行う。
１．ＡＩＴ生成部３５０は、アプリケーション３５１の実体（バイナリコード）から所定のハッシュ演算器３５２を用いてハッシュ値３５３を算出する。ハッシュのアルゴリズムとしては、例えばFIPS PUB 180-1,180-2で標準規格化されているＳＨＡ−１やＳＨＡ−2などがある。
【０１０４】
２．ＡＩＴ生成部３５０は、当該アプリケーション３５１のＸＭＬ−ＡＩＴ３６２にハッシュ値３５３を合成（３５４）して、ハッシュ値付きのＸＭＬ−ＡＩＴ３５５を生成する。
【０１０５】
３．ＡＩＴ生成部３５０は、署名生成器３５６にて、ハッシュ値付きのＸＭＬ−ＡＩＴ３５５に対して署名用のハッシュ関数を用いてダイジェストを生成し、このダイジェストを署名生成鍵（秘密鍵）３５７で暗号化してＸＭＬ署名３５８を生成する。
【０１０６】
４．ＡＩＴ生成部３５０は、ＸＭＬ署名３５８をハッシュ値付きのＸＭＬ−ＡＩＴ３５５に付加（３５９）して電子署名付きのＸＭＬ−ＡＩＴ３６０を生成する。
５．そして、電子署名付きのＸＭＬ−ＡＩＴ３６０は情報処理装置７００に提供される。
【０１０７】
情報処理装置７００のコントローラ７０８は、以下の処理を行う。
１．コントローラ７０８は、署名生成器７５３にて、サーバより取得した電子署名付きのＸＭＬ−ＡＩＴ３６０からＸＭＬ署名を抽出し、このＸＭＬ署名を署名検証鍵（公開鍵）７５４を用いて検証して署名検証結果７５５を得る。
【０１０８】
２．ＸＭＬ署名の検証に成功した場合、コントローラ７０８は、サーバより取得したアプリケーション３５１の実体（バイナリコード）から所定のハッシュ演算器７５１（ハッシュ関数）を用いてハッシュ値７５２を算出する。ここで用いられるハッシュ関数は、サーバのＡＩＴ生成部３５０のハッシュ演算器３５２のそれと同じである必要がある。そこでコントローラ７０８は、サーバより取得した電子署名付きのＸＭＬ−ＡＩＴ３６０に記述されたハッシュアルゴリズムを確認して、ハッシュ演算器７５１（ハッシュ関数）のハッシュアルゴリズムとの整合がとれているかどうかを判定する。もしハッシュアルゴリズムの不整合が判定された場合、コントローラ７０８はハッシュ演算器７５１（ハッシュ関数）を切り替えてサーバのＡＩＴ生成部３５０のハッシュ演算器３５２のそれと整合させる。
【０１０９】
３．コントローラ７０８は、サーバより取得した電子署名付きのＸＭＬ−ＡＩＴ３６０から抽出したハッシュ値３５３とハッシュ値７５２とをハッシュ比較器７５６を用いて比較し、一致／不一致の結果７５７を得る。
【０１１０】
４．ＸＭＬ署名の検証に失敗した場合、もしくはＸＭＬ署名の検証に成功してもハッシュ値３５３とハッシュ値７５２が不一致の場合にはエラーとして終了する。
【０１１１】
［実施形態の効果等］
本実施形態では、次のような効果が得られる。
１．例えば、インターネット網といった通信路によってＸＭＬ−ＡＩＴおよびアプリケーションを伝送するサービスにおいて、それらの信頼性を保持しながら情報処理装置７００に伝送することができる。悪意のある第三者によるＸＭＬ−ＡＩＴおよびアプリケーションの改ざんなどを防止することが可能であり、情報処理装置７００において安全にアプリケーションを利用することができる。
２．より具体的には、ＸＭＬ−ＡＩＴにアプリケーションのハッシュ値を記述して情報処理装置７００に提供されるので、情報処理装置７００はアプリケーションサーバ３００より取得したアプリケーションに対して算出したハッシュ値とＸＭＬ−ＡＩＴにより伝達されたハッシュ値とを比較することによって、アプリケーションの正当性を判定することができる。
３．また、ハッシュ値を含むＸＭＬ−ＡＩＴには電子署名が添付され、情報処理装置７００はこの電子署名の検証に成功しなければ、アプリケーションを取得することもできないようにしたので、ＸＭＬ−ＡＩＴの改ざんなどにより、不正なアプリケーションが情報処理装置７００において実行されることを防止できる。
４．ＸＭＬ−ＡＩＴにアプリケーションモードを記述できるようにしたことで、アプリケーションが利用できる機能を制御することができる。さらに、情報処理装置７００は、ＸＭＬ−ＡＩＴに記述されたアプリケーションモードなどに基づいて電子署名の検証の要否を一意に知ることができる。これにより例えば、放送事業者によって制作されたアプリケーション用のＸＭＬ−ＡＩＴについては電子署名の検証をスキップできることで、トータル的な速度向上を期待できる。
【０１１２】
＜変形例等＞
なお、上記の実施形態では、ハッシュ関数を用いてアプリケーションのハッシュ値を算出することとしたが、その変形例として、図１９に示すように、ＨＭＡＣ（Keyed-Hashing for Message Authentication）演算器３５２Ａ、７５１Ａを用いる方法がある。ＨＭＡＣ演算器３５２Ａ、７５１Ａは、ＳＨＡ−１、ＳＨＡ−２などのハッシュ関数を秘密の共有鍵（ハッシュキー）３６１Ａ、７５８Ａと組み合わせて使用することでハッシュ値３５３Ａ、７５２Ａを算出する。その他は、上記の実施形態と同様である。
【０１１３】
また、以上の実施形態では、アプリケーションの代表値としてハッシュ値を用いる場合について説明したが、アプリケーションのバイナリコードから所定の演算によって得られる値であれば、ハッシュ演算以外の方式を採用してもよい。
【０１１４】
ＨｂｂＴＶの標準規格を前提とした実施形態を説明したが、本技術は、ＨｂｂＴＶの標準規格を前提とすることに必ずしも限定されるものではない。
【０１１５】
その他、本技術は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【符号の説明】
【０１１６】
１…情報処理システム
１１．２１…アプリケーション制御コード
２２…アプリケーションモード記述子
２３…アプリケーションハッシュ記述子
１００…放送設備
２００…第１のネットワーク
３００…アプリケーションサーバ
３５０…ＡＩＴ生成部
３５１…アプリケーション
３５２…ハッシュ演算器
３５３…ハッシュ値
３５５…ＡＩＴ
３５６…署名生成器
３５７…署名生成鍵
３５８…ＸＭＬ署名
３６０…ＡＩＴ
４００…ＡＩＴサーバ
６００…第２のネットワーク
７００…情報処理装置
７０１…放送インタフェース
７０２…デマルチプレクサ
７０３…出力処理部
７０４…映像デコーダ
７０５…音声デコーダ
７０６…字幕デコーダ
７０７…通信インタフェース
７０８…アプリケーションコントローラ
７５１…ハッシュ演算器
７５２…ハッシュ値
７５３…署名生成器
７５４…署名検証鍵
７５５…署名検証結果
７５６…ハッシュ比較器
【図１】
2013094110.tif 000003
【図２】
2013094110.tif 000004
【図３】
2013094110.tif 000005
【図４】
2013094110.tif 000006
【図５】
2013094110.tif 000007
【図６】
2013094110.tif 000008
【図７】
2013094110.tif 000009
【図８】
2013094110.tif 000010
【図９】
2013094110.tif 000011
【図１０】
2013094110.tif 000012
【図１１】
2013094110.tif 000013
【図１２】
2013094110.tif 000014
【図１３】
2013094110.tif 000015
【図１４】
2013094110.tif 000016
【図１５】
2013094110.tif 000017
【図１６】
2013094110.tif 000018
【図１７】
2013094110.tif 000019
【図１８】
2013094110.tif 000020
【図１９】
2013094110.tif 000021
【国際調査報告】
2013094110.tif 000022
2013094110.tif 000023