以下、本技術の実施の形態を図面をもとに説明する。
<第1の実施形態>
[情報処理システム]
図1は、本実施形態の情報処理システムの構成を示す図である。
本実施形態の情報処理システム10は、放送局100と、インターネットなどの第1のネットワーク200と、アプリケーションサーバ300と、XML−AITサーバ400と、エッジルータ500と、LAN(Local Area Network)などの第2のネットワーク600と、放送用の受信機としての情報処理装置700とを有する。
放送局100(放送装置)は、例えば、地上波、衛星波、IP(Internet Protocol)ネットワークなどの通信媒体を介してデジタル放送信号を送信する放送設備(放送部)を有する。放送局100は、映像、音声、字幕などの各トランスポートストリームが多重化されたAVストリームと、AVストリームに付随するデータなどが重畳されたいわゆる放送ストリームを送出する。AVストリームに付随するデータとしては、HTML、BMLなどなどのマークアップ言語やJava(登録商標)スクリプトなどのスクリプト言語で記述された放送マネージドアプリケーション、放送マネージドアプリケーションおよび放送外マネージドアプリケーションの動作を制御するためのセクション形式のAIT(Application Information Table)などが含まれる。以後、このAITを「セクションAIT」と呼ぶ。このセクションAITは特許請求の範囲の「第2のアプリケーション情報テーブル」に相当する。
なお、本実施形態において、映像、音声、字幕などの各トランスポートストリームが多重化されて伝送されるAVストリームのことを「放送コンテンツ」と呼び、この用語にはアプリケーション、セクションAITの意味は含まれないこととする。
アプリケーションサーバ300は、第1のネットワーク200に接続可能とされ、第1のネットワーク200を通じて情報処理装置700に、放送コンテンツとともに処理されるアプリケーションを提供する。ここで、アプリケーションサーバ300から供給されるアプリケーションを「放送外マネージドアプリケーション」と呼び、放送局100より供給されるアプリケーションである「放送マネージドアプリケーション」と区別して表記することとする。
なお、セクションAITは、元々は、放送マネージドアプリケーションを放送コンテンツと連動して動作させるように制御するための情報である。本実施形態では、放送外マネージドアプリケーションの制御にも利用できるようにセクションAITのシンタクスが規定された。このセクションAITのシンタクスの詳細については後で説明する。
XML−AITサーバ400は、第1のネットワーク200に接続可能とされ、第1のネットワーク200を通じて情報処理装置700に、アプリケーションサーバ300から提供される、放送外マネージドアプリケーションに対応するXML−AITを情報処理装置700からのリクエストに応じて配信する。このXML−AITは放送外マネージドアプリケーションの少なくとも起動の制御するための情報を含む。これに対して、セクションAITは、XML−AITに従って起動された放送外マネージドアプリケーションの起動後の動作を制御するための情報を含む。このXML−AITは特許請求の範囲の「第1のアプリケーション情報テーブル」に相当する。
なお、アプリケーションサーバ300とXML−AITサーバ400は1つのサーバであってもよい。アプリケーションサーバ300とXML−AITサーバ400は、それぞれCPU、メインメモリ、データ記憶装置、ユーザインタフェースなどを備え、典型的なコンピュータとしての構成を備える。メインメモリあるいはデータ記憶装置には、上記のコンピュータをテーブル伝送部として機能させるためのプログラムが格納されている。
エッジルータ500は、第1のネットワーク200と第2のネットワーク600とを接続するためのルータである。第2のネットワーク600は有線、無線を問わない。
情報処理装置700は、例えば、パーソナルコンピュータ、携帯電話、スマートフォン、テレビジョン装置、ゲーム機、タブレット端末、オーディオ・ビデオ再生機器などであるが、具体的な製品の形態は問わない。
情報処理装置700は、放送局100からデジタル放送信号を受信し、復調してトランスポートストリームを得る。情報処理装置700は、このトランスポートストリームから放送ストリームを分離し、デコードして情報処理装置700に接続される表示部(図示せず)及びスピーカ部(図示せず)や、記録装置(図示せず)に出力することが可能である。
なお、表示部、スピーカ部および記録装置はそれぞれ、情報処理装置700と一体であってもよいし、互いに独立した機器として直接又は第2のネットワーク600を介して情報処理装置700に接続されていてもよい。あるいは、表示部及びスピーカ部を有する機器(図示せず)が直接又は第2のネットワーク600を介して情報処理装置700に接続されていてもよい。
情報処理装置700は、XML−AITサーバ400からXML−AITを取得し、このXML−AITに記述されたロケーション情報をもとにアプリケーションサーバ300にアクセスする。情報処理装置700は、アプリケーションサーバ300から、XML−AITの制御対象である放送外マネージドアプリケーションを取得する。
情報処理装置700は、取得したXML−AITから制御対象である放送外マネージドアプリケーションのアプリケーション識別子を抽出し、受信されたトランスポートストリームに多重化された1以上のセクションAITの中から当該アプリケーション識別子を有するセクションAITを抽出する。情報処理装置700は、このセクションAITに従って、既に起動された放送外マネージドアプリケーションの動作を制御する。
[アプリケーション]
次に、放送マネージドアプリケーションおよび放送外マネージドアプリケーションなどのアプリケーションについて説明する。アプリケーションは、放送局100およびアプリケーションサーバ300から情報処理装置700に提供される。アプリケーションは、例えばHTML(Hyper Text Markup Language)文書、BML文書(Broadcast Markup Language)、MHEG文書(Multimedia and Hypermedia information coding)、Java(登録商標)スクリプト、静止画ファイル、動画ファイルなどで構成される。
アプリケーションは可視的な状態と不可視の状態をとり得る。可視的な状態とは、画面を通じてそのアプリケーションの動作をユーザが視ることのできる状態である。不可視の状態とは、アプリケーションの動作を画面を通じてユーザが視ることができない状態である。
また、アプリケーションは、情報処理装置700のユーザによる操作に従って提示する情報や機能を変えることができる双方向型アプリケーションでもよいし、ユーザに対して一方向に情報を提示するアプリケーションでもよい。
[XML−AITのデータ構造]
次に、XML−AITのデータ構造について説明する。
図2は、本実施形態のXML−AITのデータ構造を示す図である。
XML−AITには、アプリケーション毎の、アプリケーション名(appName)、アプリケーション識別子(applicationId)、アプリケーション記述子(applicationDescriptor)、トランスポートプロトコル記述子(applicationTransport)、アプリケーションロケーション記述子(applicationLocation)、アプリケーションバウンダリ記述子(applicationBoundary)、アプリケーションスペシフィック記述子(applicationSpecificDescriptor)、アプリケーションユーセジ記述子(applicationUsageDescriptor)、利用許諾情報記述子21(broadcastResourcePermissionDescriptor)などが格納される。
アプリケーション記述子には、アプリケーションタイプ(type)、アプリケーション制御コード(controlCode)22、アプリケーションの可視、不可視性を指定するフラグ(visibility)、アプリケーションがサービスに紐づいているかを示すフラグ(serviceBound)、アプリケーションの優先度(priority)、アプリケーションのバージョン(version)、アイコン情報(icon)、情報処理装置700がアプリケーションを記録またはキャッシュするための情報(storageCapability)などが格納される。
[利用許諾情報記述子のシンタクス]
利用許諾情報記述子21は、放送外マネージドアプリケーションに放送リソースの利用が許諾されている場合に付加される記述子である。
図3は、利用許諾情報記述子21のシンタクスを示す図である。
利用許諾情報記述子21には、1以上のサービス利用許諾情報(Service_permission)と1以上のオーバーレイエリア情報(Overlay_area)を記述できる。
サービス利用許諾情報は、利用許諾の適用範囲を示すパーミッション指定単位(scope)を含む。パーミッション指定単位には次のものがある。
all:全ての放送事業者
affiliate:系列局
broadcaster:放送事業者
service:チャンネル
event:番組
series:シリーズ
パーミッション指定単位が"affiliate"である場合、どの系列局であるかが系列ID(affiation_id)により指定される。
パーミッション指定単位が"broadcaster"である場合には、どの放送事業者であるかが放送事業者ID(broadcaster_id)により指定される。
パーミッション指定単位が"service"である場合には、どのチャンネルであるかがネットワークID(network_Id)、トランスポートストリームID(transport_stream_id)およびサービスID(service_id)により指定される。
パーミッション指定単位が"event"である場合、どの番組であるかがネットワークID、トランスポートストリームID、サービスIDおよびイベントID(event_id)により指定される。
パーミッション指定単位が"series"である場合、どのシリーズであるかがネットワークID、トランスポートストリームID、サービスIDおよびシリーズID(series_id)により指定される。
サービス利用許諾情報には、さらに、パーミッションビットマップ(permission)が格納される。パーミッションビットマップは、サービス利用許諾情報のバイナリデータである。
パーミッションビットマップはアプリケーションコントローラ708のメモリに保持される。アプリケーションコントローラ708はこのメモリに保持されたパーミッションビットマップを参照して放送外マネージドアプリケーションによる放送リソースの利用範囲を制御する。
メモリに保持されたパーミッションビットマップは、放送外マネージドアプリケーションを起動後に情報処理装置700が取得するセクションAITの外部アプリケーション制御記述子に格納されたパーミッションビットマップと比較される。双方のパーミッションビットマップに差分があれば、セクションAITの外部アプリケーション制御記述子に格納されたパーミッションビットマップで、メモリのパーミッションビットマップが上書きされる。以後はこの上書きがされたパーミッションビットマップを参照して放送外マネージドアプリケーションによる放送リソースの利用範囲の制御がアプリケーションコントローラ708によって行われる。
これにより、例えば、放送外マネージドアプリケーションの提供者などの第三者によって作成されたXML−AITに設定された利用許諾情報の範囲を、放送局側がセクションAITを用いて動的に変更できる仕組みが実現される。
サービス利用許諾情報には、さらに、パーミッションエラー時の振る舞いに関する情報(Overlay_Permission_error_behaviour)が記述される。パーミッションエラー時の振る舞いに関する情報としては、例えば次のものがある。
app_off:アプリケーションを非表示にする。
video_off:放送リソースのビデオを非表示にする。
app_suspend:アプリケーションを非表示にし、アプリケーションの動作を一時停止する。
このように、パーミッションンエラーが発生したとき、放送リソースの少なくともビデオが非表示の状態とされるため、実質的に放送リソースの利用が不可の状態となる。
次に、オーバーレイエリア情報(Overlay_area)について説明する。
オーバーレイエリア情報はオーバーレイエリアを定義するための情報である。オーバーレイエリアとは、放送外マネージドアプリケーションを表示してよいディスプレイ画面上の領域のことである。言い換えれば、オーバーレイエリアは、主に放送映像が表示される領域の上に重ねて設定される領域である。
オーバーレイエリアを定義するための情報としては、エリアID(areaId)、HTMLアプリケーション内の要素のID(elementId)、エリア左上水平座標(upper_left_horizontal)、エリア左上垂直座標(upper_left_vertical)、エリア水平サイズ(horizontal_size)およびエリア垂直サイズ(vertical_size)などがある。
エリアIDはオーバーレイエリアを識別するための識別子である。
HTMLアプリケーション内の要素のIDは、オーバーレイエリアと紐付けられる放送外マネージドアプリケーションまたは放送外マネージドアプリケーション内の要素を特定する識別子である。
エリア左上水平座標とエリア左上垂直座標はオーバーレイエリアの左上角の座標を指定する情報である。
エリア垂直サイズとエリア水平サイズはオーバーレイエリアの縦横のサイズを指定する情報である。
[XML−AITの電子署名]
このXML−AITには、改ざんを検出するための電子署名が添付される。電子署名としては、例えばXML署名などが用いられる。XML署名の形式は、XML−AITに対して独立したdetached署名、XML−AITを包含した形式を有するenveloping署名、XML−AITに包含された形式のenveloped署名のいずれであるかを問わない。なお、XML−AITのフォーマットへの影響を抑えるにはdetached署名を採用するのがよい。
情報処理装置700のアプリケーションコントローラ708は、リファレンス検証(Reference Validation)と署名検証(Signature Validation)とを含むコア検証(Core Validation)の手続きに従って、XML署名を検証する。
リファレンス検証とは、リソース(XML−AIT)に正規化変換プロセス(Transform)及びダイジェスト計算アルゴリズム(DigestMethod)を適用することにより、リファレンス(Reference)のダイジェスト値(DigestValue)を検証する方式である。リファレンス検証により得られた結果と、登録されたダイジェスト値(DigestValue)とが比較され、これらが一致しない場合、検証失敗となる。
署名検証とは、署名情報(SignatureInfo)要素をXML正規化アルゴリズム(CanonicalizationMethod)で指定された正規化方式でシリアル化し、鍵情報(KeyInfo)等を用いて鍵データを取得し、署名アルゴリズム(SignatureMethod)で指定された方式を用いて署名を検証する方式である。
[セクションAITの構成]
図4はセクションAITのデータ構造を示す図である。
セクションAITは、テーブルID(table_id)、セクションシンタックス指示(section_syntax_indicator)、セクション長(section_length)、アプリケーションタイプ(application_type)、バージョン番号(version_number)、カレントネクスト指示(current_next_indicator)、セクション番号(section_number)、最終セクション番号(last_section_number)、共通記述子領域41(descriptor)、アプリケーション情報ループ長(application_loop_length)、アプリケーション識別子(application_identifier)、アプリケーション制御コード42(application_control_code)、アプリケーション記述子(application_descriptor)などが格納される。
共通記述子領域41には、放送外マネージドアプリケーションの動作を制御するための外部アプリケーション制御記述子(External_application_control_descriptor)が格納される。
[外部アプリケーション制御記述子のシンタクス]
図5は、外部アプリケーション制御記述子(External_application_control_descriptor)のシンタクスを示す図である。
外部アプリケーション制御記述子には、記述子タグ(descriptor_tag)、記述子長(descriptor_length)、パーミッションビットマップ数(permission_bitmap_count)、パーミッションビットマップ51(permission_bitmap)などが記述される。
セクションAITに記述されるパーミッションビットマップ51は、情報処理装置700において既に起動されている放送外マネージドアプリケーションによる放送リソースの利用許諾の範囲を示すバイナリデータ、すなわち、サービス利用許諾情報のバイナリデータである。このパーミッションビットマップは、情報処理装置700のアプリケーションコントローラ708のメモリに既に保持されているパーミッションビットマップと比較される。
なお、XML−AITのパーミッションビットマップとセクションAITのパーミッションビットマップには、パーミッションエラー時の振る舞いに関する情報のバイナリデータが含まれていてもよい。但し、この実施形態では、XML−AITの方にのみ、パーミッションエラー時の振る舞いに関する情報のバイナリデータがパーミッションビットマップに含まれるようにした。
外部アプリケーション制御記述子には、オーバーレイエリアに関する情報として、オーバーレイ許可極性(overlay_admission_polarity)、オーバーレイ制御エリア数(overlay_contolled_area_count)が記述される。
オーバーレイ許可極性は、セクションAITで定義されるオーバーレイエリアを利用できるエリアとするか、利用できないエリアとするかを指定する情報である。
オーバーレイ制御エリア数は、オーバーレイエリアの数を指定する情報である。
外部アプリケーション制御記述子には、さらに、オーバーレイエリアに関する情報として、オーバーレイエリアタグ(overlay_controlled_area_tag)、エリア左上水平座標(upper_left_horizontal)、エリア左上垂直座標(upper_left_vertical)、エリア水平サイズ(horizontal_size)およびエリア垂直サイズ(vertical_size)などが記述される。
オーバーレイエリアタグは、オーバーレイエリアを識別するタグ情報である。
エリア左上水平座標、エリア左上垂直座標、エリア水平サイズおよびエリア垂直サイズの各々が指定する情報は、XML−AITの利用許諾情報記述子において同じ名前の記述子と同じである。
外部アプリケーション制御記述子には、さらに、ブラック・ホワイトアプリケーションリスト数(bw_application_list_count)、アプリケーションID(application_identifier)、ブラック・ホワイト極性(black_white_polarity)などが記述される。
ブラック・ホワイトアプリケーションリスト数は、放送リソースの利用を許諾する、または禁止するアプリケーションの数を指定する情報である。
アプリケーションIDは、放送リソースの利用を許諾する、または禁止するアプリケーションのアプリケーションIDである。
ブラック・ホワイト極性は、放送リソースの利用を許諾する、または禁止するかのいずれかを指定する情報である。例えば、オーバーレイ許可極性として、オーバーレイエリアを利用できる極性が指定されている場合であっても、特定の放送外マネージドアプリケーションに対してブラック・ホワイト極性によって"禁止"が指定されている場合には、その特定の放送外マネージドアプリケーションによる放送リソースの利用は禁止される。また、オーバーレイ許可極性として、オーバーレイエリアを利用できない極性が指定されている場合であっても、特定の放送外マネージドアプリケーションに対してブラック・ホワイト極性によって"許諾"が指定されている場合には、その特定の放送外マネージドアプリケーションによる放送リソースの利用は許諾される。
[アプリケーション制御コードの定義]
アプリケーションのライフサイクルは、XML−AITおよびセクションAITに格納されるアプリケーション制御コード22、42をもとに、情報処理装置700によって動的に制御される。
図6はアプリケーション制御コード22、42の定義を示す図である。
同図に示すように、アプリケーション制御コード22、42としては、"AUTOSTART"、"PRESENT"、"DESTROY"、"KILL"、"PREFETCH"、"REMOTE"、"DISABLED"、"PLAYBACK_AUTOSTART"が標準規格上存在する。これらアプリケーション制御コードの定義は以下のとおりである。
"AUTOSTART"は、サービスの選択に伴いアプリケーションを自動で起動することを指示するコードである。アプリケーションが既に実行されている場合にはこの限りでない。
"PRESENT"は、サービスが選択されている間、アプリケーションを実行可能な状態とすることを指示するコードである。但し、対象のアプリケーションは、サービスの選択に伴って自動的にアプリケーションは起動されず、ユーザからの起動の指示を受けて起動される。
"DESTROY"は、アプリケーションの終了の許可を指示するコードである。
"KILL"は、アプリケーションの強制的な終了を指示するコードである。
"PREFETCH"は、アプリケーションのキャッシュを指示するコードである。
"REMOTE"は、現在のトランスポートストリームでは取得できないアプリケーションであることを示すコードである。そのアプリケーションは、別のトランスポートストリームあるいはキャッシュから取得して利用可能となる。
"DISABLED"は、アプリケーションの起動を禁止することを示すコードである。
"PLAYBACK_AUTOSTART"は、ストレージ(記録装置)に録画された放送コンテンツの再生に伴いアプリケーションを起動させるためのコードである。
[情報処理装置700の構成]
図7は本実施形態の情報処理装置700の構成を示すブロック図である。
情報処理装置700は、放送インタフェース701、デマルチプレクサ702、出力処理部703、映像デコーダ704、音声デコーダ705、字幕デコーダ706、通信インタフェース707、アプリケーションコントローラ708(コントローラ)を有する。
放送インタフェース701(放送受信部)は、アンテナ及びチューナを有し、これらを用いてユーザにより選局されたデジタル放送信号を受信する。放送インタフェース701は、受信したデジタル放送信号に対して復調処理などを施して得たトランスポートストリームをデマルチプレクサ702に出力する。
デマルチプレクサ702は、トランスポートストリームから放送コンテンツのストリームパケット、アプリケーションのパケット、AITセクションのパケットをそれぞれ分離する。デマルチプレクサ702は、放送コンテンツのストリームパケットから映像ES(Elementary Stream)、音声ES、字幕ESを分離する。デマルチプレクサ702は、映像ESを映像デコーダ704に、音声ESを音声デコーダ705に、字幕ESを字幕デコーダ706に、そしてアプリケーションのパケット、およびAITセクションを含むPSI/SI(Program Specific Information/Service Information)のパケットをアプリケーションコントローラ708にそれぞれ分配する。
映像デコーダ704は、映像ESをデコードして映像信号を生成し、生成した映像信号を出力処理部703に出力する。音声デコーダ705は、音声ESをデコードして音声信号を生成し、生成した音声信号を出力処理部703に出力する。
字幕デコーダ706は、字幕ESをデコードして字幕信号を生成し、生成した字幕信号を出力処理部703に出力する。
放送インタフェース701、デマルチプレクサ702、出力処理部703、映像デコーダ704、音声デコーダ705、字幕デコーダ706は、放送コンテンツを受信し提示する処理を行う放送コンテンツ処理部である。
通信インタフェース707は、LANなどの第2のネットワーク600を通じて外部の機器と通信を行うためのインタフェースである。通信インタフェース707は無線による通信、有線による通信を問わない。
アプリケーションコントローラ708(コントローラ)は、アプリケーションの制御に関する処理を行うコントローラである。
出力処理部703は、映像デコーダ704からの映像信号、音声デコーダ705からの音声信号、字幕デコーダ706からの字幕信号及びアプリケーションコントローラ708からの映像信号や音声信号等を合成し、情報処理装置700に接続された記録装置(図示せず)、表示部及びスピーカ部(図示せず)に出力する。
上記の情報処理装置700の少なくともアプリケーションコントローラ708を含む構成の一部または全ては、CPU(Central Processing Unit)およびメモリを有するコンピュータと、このコンピュータをアプリケーションコントローラ708などとして機能させるプログラムとにより提供される。
[情報処理システム10の動作]
次に、本実施形態の情報処理システム10の動作を説明する。
(1.放送リソースの利用許諾範囲の制御(その1))
図8は放送局100(放送装置)、アプリケーションサーバ300、XML−AITサーバ400、および情報処理装置700の間でのやりとりの流れを示すシーケンス図である。図9は情報処理装置700のアプリケーションコントローラ708による処理手順を示すフローチャートである。
情報処理装置700は、例えばリモコンなどを使ってユーザにより選択されたアプリケーションローンチャを表示する(ステップS101)。アプリケーションローンチャは、例えば、情報処理装置700に実装された、いわゆるレジデントアプリケーションや、HTMLブラウザによって提示されるHTML5(Hyper Text Markup Language 5)、BML(Broadcast Markup Language)などによって実現される。アプリケーションローンチャには、選択可能な放送外マネージドアプリケーションのメニューが表示される。
ユーザは例えばリモコンなどを使って利用したい放送外マネージドアプリケーションを選択することができる。アプリケーションローンチャに表示されたメニューの放送外マネージドアプリケーションのメニューには、放送外マネージドアプリケーション用のXML−AITを情報処理装置700に取得させるためのスクリプトなどが組み込まれている。
アプリケーションローンチャに表示された放送外マネージドアプリケーションのメニュー上で、リモコンを使ったユーザの操作によって任意の放送外マネージドアプリケーションが選択されると(ステップS102)、アプリケーションコントローラ708は、その放送外マネージドアプリケーションに対応するスクリプトを実行することによって、当該任意の放送外マネージドアプリケーション用のXML−AITをXML−AITサーバ400から取得する(ステップS103)。
情報処理装置700のアプリケーションコントローラ708は、取得したXML−AITに記述されているアプリケーションのロケーション情報をもとにアプリケーションサーバ300から放送外マネージドアプリケーションを取得する(ステップS104)。
アプリケーションコントローラ708は、取得した放送外マネージドアプリケーションを、XML−AITに記述されたアプリケーション制御コード"AUTOSTART"に従って起動する(ステップS105)。
アプリケーションコントローラ708は、放送外マネージドアプリケーションを起動させた後、放送外マネージドアプリケーションからの放送リソースのアクセス要求を監視する(ステップS106)。アプリケーションコントローラ708は、放送外マネージドアプリケーションからの放送リソースのアクセス要求を検出すると(ステップS107のY)、この放送リソースに対応する放送局公開鍵証明書が情報処理装置700内のメモリに保存されているかどうかを調べる(ステップS107)。
情報処理装置700のアプリケーションコントローラ708は、放送局公開鍵証明書が情報処理装置700内のメモリに保存されていない場合には、目的の放送局公開鍵証明書がデータカルーセルで伝送されてくるのを待つ。アプリケーションコントローラ708は、目的の放送局公開鍵証明書を受信すると、これをメモリに保存する(ステップS108)。
アプリケーションコントローラ708は、実行中の放送外マネージドアプリケーションに添付された電子署名を、メモリに保存された放送局公開鍵証明書を用いて検証する(ステップS110)。もし電子署名の検証に失敗した場合(ステップS111のN)、アプリケーションコントローラ708は、当該放送外マネージドアプリケーションが放送局によって認証されていないものとして、その放送局のすべての放送リソースのアクセスを禁止するように設定をする(ステップS112)。放送リソースのアクセスを禁止された状態では、放送外マネージドアプリケーションが起動されても放送リソースへのアクセスは不可の状態となる。
電子署名の検証に成功した場合(ステップS111のY)、アプリケーションコントローラ708は、XML−AITに記述された利用許諾情報記述子21の中のサービス利用許諾情報をもとに、放送外マネージドアプリケーションによってアクセス要求された放送リソースへのアクセスの可否を判定する(ステップS113)。
なお、XML−AITに記述された利用許諾情報記述子21の中のサービス利用許諾情報は、アプリケーションコントローラ708のメモリにパーミッションビットマップ(バイナリデータ)として保持されている。アプリケーションコントローラ708は、このパーミッションビットマップを参照して放送外マネージドアプリケーションによってアクセス要求された放送リソースへのアクセスの可否を判定する。
ここで、例えば、サービス利用許諾情報の中のパーミッション指定単位が"service"である場合を想定する。この場合、利用許諾情報記述子21の中のサービス利用許諾情報によって、チャンネルを特定するための情報がネットワークID、トランスポートストリームIDおよびサービスIDにより指定されている。ここで、そのチャンネルを"チャンネルx"とする。この例では、放送外マネージドアプリケーションがアクセス要求するチャンネルが"チャンネルx"ならば、アプリケーションコントローラ708はそのアクセス要求を許可して、"チャンネルx"へのアクセスを許可する。
もし、その他のチャンネルが放送外マネージドアプリケーションによってアクセス要求された場合には、アプリケーションコントローラ708は、パーミッションエラーが発生したことを判定する。この場合、アプリケーションコントローラ708は、利用許諾情報記述子21の中のサービス利用許諾情報に格納された、パーミッションエラー時の振る舞いに関する情報に従って、放送外マネージドアプリケーションの動作を制御する。
このようにして、アプリケーションコントローラ708は、電子署名の検証に成功した場合に、XML−AITのサービス利用許諾情報をもとに許可された範囲で、放送外マネージドアプリケーションが放送リソースをアクセスするように制御を行う(ステップS114)。
一方、放送局100からは情報処理装置700にて起動中の放送外マネージドアプリケーションの動作を制御するためのセクションAITが周期的に送出される。セクションAITの送出周期は例えば100ms程度とされている。セクションAITは、バージョン番号によって世代が管理されている。アプリケーションコントローラ708は、最後に取得したセクションAITのバージョン番号を保持し、この保持されているバージョン番号と異なるバージョン番号を有するセクションAITを受信する(ステップS115)。
アプリケーションコントローラ708は、受信したセクションAITに外部アプリケーション制御記述子が付加されているかどうかを確認する(ステップS116)。外部アプリケーション制御記述子が付加されていない場合(ステップS116のN)、XML−AITに格納された利用許諾情報記述子21(メモリに保持されたパーミッションビットマップ)に基づく放送リソースの利用許諾の制御が継続される。
取得したセクションAITに外部アプリケーション制御記述子が付加されている場合(ステップS116のY)、アプリケーションコントローラ708は、この外部アプリケーション制御記述子のパーミッションビットマップと、メモリに保持されたパーミッションビットマップとを比較する(ステップS117)。アプリケーションコントローラ708は、双方のパーミッションビットマップに差分があれば(ステップS117のY)、外部アプリケーション制御記述子のパーミッションビットマップでメモリのパーミッションビットマップを更新する(ステップS118)。これにより、放送局の側が意図する放送リソースの利用許諾範囲が情報処理装置700において設定される。
なお、外部アプリケーション制御記述子のパーミッションビットマップと、メモリに保持されたパーミッションビットマップとの差分がない場合には(ステップS117のN)、メモリに保持されたパーミッションビットマップはそのままにして、このパーミッションビットマップに基づく放送リソースの利用許諾の制御が継続される。
この後、例えば、ユーザによるリモコンの操作によるアプリケーションの終了指示や別のアプリケーションへの遷移などが発生すると(ステップS120のYES)、情報処理装置700のアプリケーションコントローラ708は放送外マネージドアプリケーションを終了させる(ステップS122)。
また、情報処理装置700のアプリケーションコントローラ708は、放送外マネージドアプリケーションの実行中に取得したセクションAITに"AUTOSTART"、"DESTROY"、"KILL"以外のアプリケーション制御コードが記述されている場合には、そのアプリケーション制御コードに従って放送外マネージドアプリケーションの状態を遷移させるなどの処理を行った後(ステップS121)、次のセクションAITを待機する。
以後、受信されたセクションAITについても同様の処理が行われる。
その後、同一チャンネル(チャンネルx)内での番組の切り替わり(番組A→番組B)が発生した場合にも、その番組Bの切り替わり後に取得したセクションAITについて同様の処理が繰り返される。
また、チャンネルの切り替えが発生した場合も、そのチャンネルの切り替わり後に取得したセクションAITについて同様の処理が繰り返される。
(2.放送リソースの利用許諾範囲の制御(その2))
放送外マネージドアプリケーションが実行中であるとき、例えば、ユーザのマニュアル操作などによって放送チャンネルが切り替えられる操作(ダイレクト選局操作)が行われることがある。
図10は、放送外マネージドアプリケーションの実行中にダイレクト選局操作が発生した場合の放送局100(放送送出装置)、アプリケーションサーバ300、XML−AITサーバ400、および情報処理装置700の間でのやりとりの流れを示すシーケンス図である。図11は放送外マネージドアプリケーションの実行中にダイレクト選局操作が発生した場合のアプリケーションコントローラ708の制御の流れを示すフローチャートである。
放送外マネージドアプリケーションの実行中にダイレクト選局操作が発生したとき(ステップS201)、情報処理装置700のアプリケーションコントローラ708は、このダイレクト選局された放送チャンネルに対応する放送局公開鍵証明書が情報処理装置700内のメモリに保存されているかどうかを調べる(ステップS202)。
情報処理装置700のアプリケーションコントローラ708は、放送局公開鍵証明書が情報処理装置700内のメモリに保存されていない場合には、目的の放送局公開鍵証明書が切り替えられた放送チャンネルのデータカルーセルなどで伝送されてくるのを待ち、データカルーセルなどによって伝送されてきた目的の放送局公開鍵証明書を受信すると、これをメモリに保存する(ステップS203)。
なお、ここでは、データカルーセルで放送局公開鍵証明書が伝送されてくる例を示したが、予め指定されたサーバから公開鍵証明書を取得するなど、通信を用いた公開鍵証明書を取得するようにしてもよい。
アプリケーションコントローラ708は、実行中の放送外マネージドアプリケーションに添付された電子署名を、メモリに保存された放送局公開鍵証明書を用いて検証する(ステップS205)。この電子署名の署名に失敗した場合(ステップS206のN)、アプリケーションコントローラ708は、当該放送外マネージドアプリケーションを終了させる(ステップS209)。
電子署名の署名に成功した場合(ステップS206のY)、アプリケーションコントローラ708は、放送外マネージドアプリケーションの動作を継続させ、パーミッションビットマップをもとに許可された範囲で、放送外マネージドアプリケーションが放送リソースをアクセスするように制御を行う(ステップS207)。
以後の動作は、図9のステップS120より以降と同じである。
また、図11に示すように、放送外マネージドアプリケーションの動作中、例えば、放送外マネージドアプリケーションに組み込まれたスクリプトの実行、あるいは、ユーザのマニュアル操作などによって、別の放送外マネージドアプリケーションへの遷移の指示が発生することがある。この場合、アプリケーションコントローラ708は、上述したアプリケーションローンチャから放送外マネージドアプリケーションがユーザにより選択された場合と同様に制御を行う。
(3.オーバーレイエリアの制御)
既に説明したように、XML−AITおよびセクションAITには、放送外マネージドアプリケーションを表示させてもよいディスプレイ画面Dにおける領域をオーバーレイエリアとして定義するためのオーバーレイエリア情報(Overlay_area)を記述することができる。
図12はXML−AITの利用許諾情報記述子21の中のオーバーレイエリア情報をもとにしたオーバーレイエリアの設定例を示す図である。
この設定例では、areaId=1とareaId=2の2つのオーバーレイエリアが存在する。各々のオーバーレイエリアは、エリア左上水平座標(upper_left_horizontal)、エリア左上垂直座標(upper_left_vertical)、エリア水平サイズ(horizontal_size)およびエリア垂直サイズ(vertical_size)によってディスプレイ画面Dにおける領域が定義される。
アプリケーションコントローラ708は、XML−AITの利用許諾情報記述子21の中のオーバーレイエリア情報(Overlay_area)をもとに、各々のオーバーレイエリアを作成する。
アプリケーションコントローラ708は、放送外マネージドアプリケーションの起動後に取得したセクションAITの共通記述子領域41(descriptor)の外部アプリケーション制御記述子(External_application_control_descriptor)に含まれるオーバーレイエリアに関する情報をもとに、あらためてオーバーレイエリアを作成することができる。すなわち、放送局100の意図するオーバーレイエリアに更新することができる。
図13はオーバーレイエリアの第1の更新例を示す図である。
この例では、XML−AITの利用許諾情報記述子21の中のオーバーレイエリア情報(Overlay_area)をもとにオーバーレイエリア1が作成される。さらに、オーバーレイエリア1内には放送外マネージドアプリケーションの表示領域2が設けられていることとする。
例えばチャンネル切り替えなどの後、アプリケーションコントローラ708は、受信したセクションAITの外部アプリケーション制御記述子に含まれるオーバーレイエリアに関する情報をもとに、既存のオーバーレイエリア1に代えて新たなオーバーレイエリア3を作成する。
アプリケーションコントローラ708は、オーバーレイエリア1からオーバーレイエリア3への変更が発生した場合、自身に予め組み込まれたプログラムに従って、新しく作成されたオーバーレイエリア3内に放送外マネージドアプリケーションの表示領域2を移動させるように制御を行う。
なお、放送外マネージドアプリケーションの表示領域2の位置はアプリケーションコントローラ708によって制御される。例えば、予め決められた位置に放送外マネージドアプリケーションの表示領域2が配置されるように制御される。同時に複数の放送外マネージドアプリケーションの表示領域2が表示される場合には、アプリケーションコントローラ708によって互いの位置が排他的に制御される。
図14は、オーバーレイエリアの第2の更新例を示す図である。
この例では、アプリケーションコントローラ708は、セクションAITの外部アプリケーション制御記述子に含まれるオーバーレイエリアに関する情報をもとに、既存のオーバーレイエリア1からオーバーレイエリア3への変更が発生した場合、自身に予め組み込まれたプログラムに従って以下の制御を行う。
まず、アプリケーションコントローラ708は、ディスプレイ画面Dの例えば全面を放送映像表示部4として使用していた状態から、放送映像表示部4を縮小させ、これによりできた空き領域をアプリケーション表示部5として設定する。アプリケーションコントローラ708は、放送外マネージドアプリケーションの表示領域2を、外部アプリケーション制御記述子のオーバーレイエリアに関する情報に拠らず、アプリケーション表示部5に表示させるように制御を行う。
これにより、放送映像表示部4の映像の上に放送外マネージドアプリケーションが重ねて表示されることを回避できる。
図15は、オーバーレイエリアの第3の更新例を示す図である。
この例は、XML−AITのオーバーレイエリア情報をもとにディスプレイ画面Dの全画面を使用するオーバーレイエリア1が設定されている場合を想定する。このオーバーレイエリア1の全体に放送外マネージドアプリケーションの表示領域2が割り当てられており、その一部に放送映像表示部4が設定される。
アプリケーションコントローラ708は、例えば、チャンネル切り替えなどの後に受信したセクションAITの外部アプリケーション制御記述子に含まれるオーバーレイエリアに関する情報をもとに、既存のオーバーレイエリア1に代えて新たなオーバーレイエリア3を作成する。
このとき、アプリケーションコントローラ708は、自身に予め組み込まれたプログラムに従って、放送映像表示部4をディスプレイ画面Dの全画面に設定し、放送外マネージドアプリケーションの表示領域2を非表示の状態にする。これにより、放送映像表示部4の映像が放送外マネージドアプリケーションによって一部隠れてしまうことを回避できる。また、この第3の更新例において、放送外マネージドアプリケーションを構成する(elementIdで指定される)子要素がオーバーレイエリア3の位置に指定されている場合、その子要素を表示させるようにしてもよい。
(4.電子署名の生成と検証)
次に、電子署名の生成と検証について説明する。
図16は電子署名の生成と検証の仕組みについて説明するためのブロック図である。
XML−AITサーバ400およびアプリケーションサーバ300はアプリケーション制作者が所有する一台のサーバであってもよく、別々のサーバであってもよい。ここでは、XML−AITサーバ400およびアプリケーションサーバ300を総称して「サーバ」と呼ぶ。サーバは、典型的なコンピュータの構成を有する機器である。したがって、CPU、メインメモリ、HDDなどのストレージデバイス、マウスやキーボードなどの入力装置、液晶ディスプレイなどの表示部などで構成される。メインメモリおよびストレージデバイスには、OS(Operating System)、サーバ用のアプリケーションプログラムなどのソフトウェア、情報処理装置700に提供される放送外マネージドアプリケーション、アプリケーション毎のXML−AITのファイル、署名生成鍵などが格納される。
サーバは、署名付きアプリケーション生成部350を有する。署名付きアプリケーション生成部350は、具体的にはメインメモリにロードされたプログラムと、このプログラムを実行するCPUとで実現される。
アプリケーション制作者は、放送外マネージドアプリケーション351とXML−AIT355について放送局100に対して認証を依頼する。
放送局100は、アプリケーション制作者より依頼された認証の対象である放送外マネージドアプリケーション351とXML−AIT355の内容を精査し、問題がなければ、ルートCA800(図1)より発行された秘密鍵と放送局公開鍵証明書のペアのうち秘密鍵を署名生成鍵357として署名生成器356に設定する。署名生成器356は放送外マネージドアプリケーション351について署名用のハッシュ関数を用いてダイジェストを生成し、このダイジェストを署名生成鍵(秘密鍵)357で暗号化してXML署名358を生成する。放送局100は、生成したXML署名358をサーバに応答する。署名付きアプリケーション生成部350は、放送局100より応答されたXML署名358を放送外マネージドアプリケーション351に付加して電子署名付きのアプリケーション360を生成し、情報処理装置700に配信する。
情報処理装置700のアプリケーションコントローラ708は、サーバより取得した電子署名付きのアプリケーション360から署名生成器753にてXML署名を抽出し、このXML署名を放送局公開鍵証明書から取り出した署名検証鍵である公開鍵754を用いて検証して署名検証結果755を得る。
次に、放送局100から情報処理装置700に放送局公開鍵証明書を伝送する方法について説明する。
放送局100から情報処理装置700に放送局公開鍵証明書を伝送する方法には、専用モジュール方式、データ放送拡張方式(その1)、データ放送拡張方式(その2)などがある。
(専用モジュール方式)
図17は専用モジュール方式の概念図である。
専用モジュール方式では、データ放送番組がユーザにより選択された時最初に起動させるべきスタート文書を含むモジュールであるcomponent_tag=0x40に、放送局公開鍵証明書43を伝送するための専用のモジュール(例えばmodule_id=0xFFFEなど)44が新たな配置される。
また、上記の専用モジュールで配布する放送局公開鍵証明書の更新を情報処理装置700に知らせるために、放送局公開鍵証明書記述子がDII(Download Info Indication)が配置される。
図18は、放送局公開鍵証明書記述子の構成を示す図である。
放送局公開鍵証明書記述子(broadcast certificate_descriptor)は放送局公開鍵証明書を識別するID(broadcaster_certificate_id)および放送局公開鍵証明書のバージョン(broadcaster_certificate_version)を含む。
図19は専用モジュール方式による放送局公開鍵証明書の取得および更新に関するフローチャートである。
まず、情報処理装置700のアプリケーションコントローラ708は、データカルーセルで伝送されるDIIのモジュール情報を監視する(ステップS401)。情報処理装置700のアプリケーションコントローラ708は、DIIのモジュール情報に放送局公開鍵証明書記述子が含まれていることを検出すると(ステップS402のY)、この放送局公開鍵証明書記述子を解析し、この放送局公開鍵証明書記述子の中からIDとバージョンをそれぞれ抽出する(ステップS403)。
アプリケーションコントローラ708は、メモリに既に格納されている放送局公開鍵証明書のIDと今回取得したIDとを比較し、IDが一致した放送局公開鍵証明書がメモリに格納されているかどうかを調べる(ステップS404)。該当する放送局公開鍵証明書が格納されていない場合(ステップS405のN)、アプリケーションコントローラ708は、データカルーセルで伝送される放送局公開鍵証明書を取得し、メモリに格納する(ステップS406)。この後、DIIのモジュール情報の監視状態に戻る。
該当する放送局公開鍵証明書が格納されている場合(ステップS405のY)、アプリケーションコントローラ708は、メモリに格納されている放送局公開鍵証明書のバージョンを確認する(ステップS407)。アプリケーションコントローラ708は、確認した放送局公開鍵証明書のバージョンと今回取得した放送局公開鍵証明書のバージョンとを比較し、放送局公開鍵証明書のバージョンアップの発生の有無を判定する(ステップS408)。
放送局公開鍵証明書のバージョンアップが発生していないことが判定された場合は(ステップS408のN)、アプリケーションコントローラ708はDIIのモジュール情報の監視状態に戻る。
放送局公開鍵証明書のバージョンアップが発生したことを判定した場合(ステップS408のN)、アプリケーションコントローラ708はデータカルーセルで伝送される放送局公開鍵証明書を取得し、メモリに格納する(ステップS409)。この後、DIIのモジュール情報の監視状態に戻る。
以上のようにして、情報処理装置700は、IDの異なる1以上の種類の最新バージョンの放送局公開鍵証明書を取得し、メモリに格納することができる。
(データ放送拡張方式(その1))
図20はデータ放送拡張方式(その1)によるルート証明書記述子の構成を示す図である。
データ放送拡張方式(その1)は、ルート証明書記述子のroot_certificate_typeに新しいサービスの公開鍵証明書を伝送するための拡張を施し、そこに放送局公開鍵証明書を識別するID(broadcaster_certificate_id)および放送局公開鍵証明書のバージョン(broadcaster_certificate_version)を記述するようにしたものである。
図21はデータ放送拡張方式(その1)による放送局公開鍵証明書の取得および更新に関するフローチャートである。
まず、情報処理装置700のアプリケーションコントローラ708は、データカルーセルで伝送されるDIIのルート証明書記述子を監視する(ステップS501)。情報処理装置700のアプリケーションコントローラ708は、DIIのルート証明書記述子を検出すると(ステップS502のY)、このルート証明書記述子を解析し、このルート証明書記述子に新しいサービスを示す値(root_certificate_type = 2)が記述されているかどうかを判定する(ステップS503)。新しいサービスを示す値(root_certificate_type = 2)が記述されていなければデータ放送の処理を行い(ステップS504)、その後、DIIのルート証明書記述子の監視状態に戻る。
ルート証明書記述子に新しいサービスを示す値(root_certificate_type = 2)が記述されている場合、アプリケーションコントローラ708は、ルート証明書記述子の中から放送局公開鍵証明書のIDとバージョンをそれぞれ抽出する(ステップS505)。以降のステップS506からステップS511までの動作は、専用モジュール方式のステップS404からステップS409と同じであるため、説明を省略する。
アプリケーションコントローラ708は、メモリに既に格納されている放送局公開鍵証明書のIDと今回取得したIDとを比較し、IDが一致した放送局公開鍵証明書がメモリに格納されているかどうかを調べる(ステップS404)。該当する放送局公開鍵証明書が格納されていない場合(ステップS405のN)、アプリケーションコントローラ708は、データカルーセルで伝送される放送局公開鍵証明書を取得し、メモリに格納する(ステップS406)。この後、DIIのルート証明書記述子の監視状態に戻る。
該当する放送局公開鍵証明書が格納されている場合(ステップS405のY)、アプリケーションコントローラ708は、メモリに格納されている放送局公開鍵証明書のバージョンを確認する(ステップS407)。アプリケーションコントローラ708は、確認した放送局公開鍵証明書のバージョンと今回取得した放送局公開鍵証明書のバージョンとを比較し、放送局公開鍵証明書のバージョンアップの発生の有無を判定する(ステップS408)。
放送局公開鍵証明書のバージョンアップが発生していないことが判定された場合は(ステップS408のN)、アプリケーションコントローラ708はDIIのモジュール情報の監視状態に戻る。
放送局公開鍵証明書のバージョンアップが発生したことを判定した場合(ステップS408のN)、アプリケーションコントローラ708はデータカルーセルで伝送される放送局公開鍵証明書を取得し、メモリに格納する(ステップS409)。この後、DIIのモジュール情報の監視状態に戻る。
以上のようにして、情報処理装置700は、IDの異なる1以上の種類の最新バージョンの放送局公開鍵証明書を取得し、メモリに格納することができる。
(データ放送拡張方式(その2))
データ放送拡張方式(その2)は、ルート証明書記述子の中でデータ放送向け公開鍵証明書を伝送できる格納領域のうち、固定の1つの格納領域が新しいサービス向けに割り当てられ、そこに放送局公開鍵証明書を識別するID(broadcaster_certificate_id)および放送局公開鍵証明書のバージョン(broadcaster_certificate_version)が記述される。また、例えば図22に示すように、ルート証明書記述子に新たなフラグ(broadcaster_certificate_flag)が配置される。例えば、このフラグの値が"1"であるとき、放送局公開鍵証明書が伝送されることを示し、フラグの値が"0"であるとき、放送局公開鍵証明書が伝送されないことを示す。
図23は、データ放送拡張方式(その2)による放送局公開鍵証明書の取得および更新に関するフローチャートである。
まず、情報処理装置700のアプリケーションコントローラ708は、データカルーセルで伝送されるDIIのルート証明書記述子を監視する(ステップS601)。情報処理装置700のアプリケーションコントローラ708は、DIIのルート証明書記述子を検出すると(ステップS502のY)、このルート証明書記述子を解析し、フラグ(broadcaster_certificate_flag)の値を確認する。フラグの値が"0"である場合、アプリケーションコントローラ708はデータ放送の処理を行い(ステップS504)、その後、DIIのルート証明書記述子の監視状態に戻る。
フラグの値が"0"である場合、アプリケーションコントローラ708は、ルート証明書記述子の中でデータ放送向け公開鍵証明書を伝送できる複数の格納領域のうち予め決められた格納領域から、放送局公開鍵証明書のIDとバージョンをそれぞれ抽出する(ステップS605)。以降のステップS606からステップS611までの動作は、専用モジュール方式のステップS404からステップS409と同じであるため、説明を省略する。
以上のようにして、情報処理装置700は、IDの異なる1以上の種類の最新バージョンの放送局公開鍵証明書を取得し、メモリに格納することができる。
[第1の実施形態の効果等]
本実施形態では、次のような効果が得られる。
1.アプリケーションコントローラ708は、セクションAITの外部アプリケーション制御記述子をもとに、放送外マネージドアプリケーションによる放送リソースの利用範囲を制御する。これにより、放送外マネージドアプリケーションの提供者などの第三者によって作成されたXML−AITに設定された利用許諾情報の範囲を、放送局側がセクションAITを用いて動的に変更できる仕組みが実現される。
これにより、例えば、スポーツ中継など、タイムスケジュールが流動的な放送番組において、番組の進行や編成の変更などの変化に合わせて放送外マネージドアプリケーションの動作の制御を変更することができる。
また、複数のチャンネル(放送局)の放送リソースを利用することを想定した放送外マネージドアプリケーションの動作の制御を、放送局毎に指定することができる。
2.アプリケーションコントローラ708は、XML−AITのサービス利用許諾情報のバイナリデータであるパーミッションビットマップをメモリに保持する。アプリケーションコントローラ708はメモリに保持されたパーミッションビットマップと放送外マネージドアプリケーションを起動後に取得されるセクションAITの中のパーミッションビットマップとをバイナリ演算によって比較することによって差分を求めることができる。これにより、情報処理装置700のアプリケーションコントローラ708の負担を軽減し、高速化を図れる。
3.アプリケーションコントローラ708は、セクションAITの外部アプリケーション制御記述子をもとに、放送外マネージドアプリケーションのディスプレイ画面での表示位置を制御する。これにより、放送外マネージドアプリケーションの提供者などの第三者によって作成されたXML−AITに設定された利用許諾情報の範囲を、放送局側がセクションAITを用いて動的に変更できる仕組みが実現される。
<変形例1>
第1の実施形態では、アプリケーションに電子署名が添付されることとしたが、XML−AITに電子署名を添付してもよい。この方式によると、1つのアプリケーションに対して、複数の放送局が放送リソースの利用を許可する場合には、XML−AITには放送リソースの利用を許可するすべての放送局の電子署名が添付される。
<変形例2>
変形例1の方式では、アプリケーションの改ざんを直接に検出することができない。そこでアプリケーションのハッシュ値をXML−AITに埋め込み、情報処理装置700において、アプリケーションの実体から計算されるハッシュ値とXML−AITに埋め込まれて通知されるハッシュ値とを比較することで、アプリケーションの改ざんを間接的に検出することが可能である。以下、この方式について説明する。
次に、電子署名およびハッシュ値の生成と検証について説明する。
図24は電子署名およびハッシュ値の生成とこれらの検証の仕組みについて説明するための図である。
サーバは、署名付きAIT生成部350Aを有する。署名付きAIT生成部350Aは、具体的にはメインメモリにロードされた、電子署名およびハッシュ値の生成を行うプログラムと、このプログラムを実行するCPUとで実現される。
署名付きAIT生成部350Aは、放送外マネージドアプリケーション351Aの実体(バイナリコード)から所定のハッシュ演算器352Aを用いてハッシュ値353Aを算出する。ハッシュのアルゴリズムとしては、例えばFIPS PUB 180-1,180-2で標準規格化されているSHA-1やSHA-2などがある。
署名付きAIT生成部350Aは、当該放送外マネージドアプリケーション351AのXML−AIT362Aにハッシュ値353Aを合成して、ハッシュ値付きのXML−AIT355Aを生成する。
アプリケーション制作者は、放送外マネージドアプリケーション351AとXML−AIT355Aについて放送局100Aに対して認証を依頼する。
放送局100は、アプリケーション制作者より依頼された認証の対象である放送外マネージドアプリケーション351AとXML−AIT355Aの内容を精査し、問題がなければ、ルートCA800(図1参照)より発行された秘密鍵と放送局公開鍵証明書のペアのうち秘密鍵を署名生成鍵357Aとして署名生成器356Aに設定する。署名生成器356AはXML−AIT355Aについて署名用のハッシュ関数を用いてダイジェストを生成し、このダイジェストを署名生成鍵(秘密鍵)357Aで暗号化してXML署名358Aを生成する。放送局100Aは、生成したXML署名358Aをサーバに応答する。
サーバの署名付きAIT生成部350Aは、放送局100Aより応答されたXML署名358Aをハッシュ値付きのXML−AIT355Aに付加して電子署名付きのXML−AIT360Aを生成し、情報処理装置700Aに配信する。
情報処理装置700のアプリケーションコントローラ708Aは、サーバより取得した放送外マネージドアプリケーション351Aの実体(バイナリコード)から所定のハッシュ演算器751A(ハッシュ関数)を用いてハッシュ値752Aを算出する。ここで用いられるハッシュ関数は、サーバの署名付きAIT生成部350Aのハッシュ演算器352Aのそれと同じである必要がある。そこでアプリケーションコントローラ708Aは、サーバより取得した電子署名付きのXML−AIT360Aに記述されたハッシュアルゴリズムを確認して、ハッシュ演算器751A(ハッシュ関数)のハッシュアルゴリズムとの整合がとれているかどうかを判定する。もしハッシュアルゴリズムの不整合が判定された場合、アプリケーションコントローラ708Aはハッシュ演算器751A(ハッシュ関数)を切り替えてサーバの署名付きAIT生成部350Aのハッシュ演算器352Aのそれと整合させる。
アプリケーションコントローラ708Aは、サーバより取得した電子署名付きのXML−AIT360Aから抽出したハッシュ値353Aとハッシュ値752Aとをハッシュ比較器756Aを用いて比較し、一致/不一致の結果757Aを得る。
アプリケーションコントローラ708Aは、署名生成器753Aにて、サーバより取得した電子署名付きのXML−AIT360AからXML署名を抽出し、このXML署名を署名検証鍵(公開鍵)754Aを用いて検証して署名検証結果755Aを得る。
この変形例によれば、アプリケーションにハッシュ値を追加して情報処理装置700に提供されるので、情報処理装置700はアプリケーションサーバ300より取得したアプリケーションに対して算出したハッシュ値とXML−AITにより伝達されたハッシュ値とを比較することによって、アプリケーションの正当性を判定することができる。
以上、HbbTVの標準規格を前提とした実施形態を説明したが、本技術は、HbbTVの標準規格を前提とすることに必ずしも限定されるものではない。
[本技術の別の構成]
本技術は以下のような構成も採ることができる。
(1)放送を受信可能な放送受信部と、
前記放送のリソースを利用するアプリケーションによる前記リソースの利用許諾範囲を示す第1の利用許諾情報が少なくとも格納された第1のアプリケーション情報テーブルを通信により取得して前記アプリケーションの動作を制御し、前記アプリケーションの実行中、前記放送受信部を用いて、前記アプリケーションによる前記リソースの利用許諾範囲を示す第2の利用許諾情報が少なくとも格納された第2のアプリケーション情報テーブルを取得して前記アプリケーションの動作を制御するように構成されるコントローラと
を具備する情報処理装置。
(2)前記(1)に記載の情報処理装置であって、
前記コントローラは、前記第1のアプリケーション情報テーブルの情報をもとに前記アプリケーションを取得し、前記取得したアプリケーションを起動させるように構成される
情報処理装置。
(3)前記(1)または(2)に記載の情報処理装置であって、
前記コントローラは、前記第1の利用許諾情報と前記第2の利用許諾情報とを比較して差分が検出された場合、前記第1の利用許諾情報から前記第2の利用許諾情報に切り替えて、前記アプリケーションによる前記リソースの利用範囲を制御するように構成される
情報処理装置。
(4)前記(1)ないし(3)のいずれかに記載の情報処理装置であって、
前記アプリケーションが、放送局以外の第三者によって提供されるアプリケーションである
情報処理装置。
(5)前記(1)ないし(4)のいずれかに記載の情報処理装置であって、
前記第1のアプリケーション情報テーブルおよび前記第2のアプリケーション情報テーブルは、前記アプリケーションを表示させてもよいディスプレイ画面上の領域を定義するエリア情報を格納し、
前記コントローラは、前記エリア情報をもとに前記領域を設定し、この領域に前記アプリケーションを表示させるように構成される
情報処理装置。
(6)放送リソースを利用可能なアプリケーションによる前記放送リソースの利用許諾範囲を示す利用許諾情報が少なくとも格納されたアプリケーション情報テーブルを含む放送信号を送信する放送部
を具備する放送装置。
(7)前記(6)に記載の放送装置であって、
前記放送部は、前記アプリケーションを表示させてもよいディスプレイ画面上の領域を定義するエリア情報を前記アプリケーション情報テーブルに格納して送出するように構成される
放送装置。
その他、本技術は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。