【文献】
Hybridcast技術仕様概説,日本放送協会放送技術研究所,2011年 5月27日,p.7-17,URL,http://www.nhk.or.jp/strl/hybridcast/HCsummary.pdf
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
以下、本技術の実施の形態を図面をもとに説明する。
<第1の実施形態>
[情報処理システム]
図1は、本実施形態の情報処理システムの概要を示す図である。
本実施形態の情報処理システム1は、放送設備100と、インターネットなどの第1のネットワーク200と、アプリケーションサーバ300と、XML−AITサーバ400と、エッジルータ500と、LAN(Local Area Network)などの第2のネットワーク600と、放送用の受信機としての情報処理装置700とを有する。
【0015】
放送設備100は、例えば、地上波、衛星波、IP(Internet Protocol)ネットワークなどの通信媒体を介してデジタル放送信号を送信する。放送設備100は、映像、音声、字幕などの各トランスポートストリームが多重化されたAVストリームと、AVストリームに付随するデータなどとが重畳されたいわゆる放送ストリームを送出する。AVストリームに付随するデータとしては、HTML、BMLなどなどのマークアップ言語、Java(登録商標)スクリプトなどのスクリプト言語で記述された放送連携型のアプリケーション、アプリケーションを管理するための情報からなるXML−AIT((Extensible Markup Language-Application Information Table)などが含まれる。
【0016】
なお、本実施形態において、映像、音声、字幕などの各トランスポートストリームが多重化されて伝送されるAVストリームのことを「放送コンテンツ」と呼び、この用語にはアプリケーション、XML−AITの意味は含まれないこととする。
【0017】
アプリケーションサーバ300は、第1のネットワーク200に接続可能とされ、第1のネットワーク200を通じて情報処理装置700に放送とは直接関係のない放送非連動アプリケーションを提供する。放送非連動アプリケーションは、放送リソースの制作者以外の者によって制作されたアプリケーションであり、放送から映像、音声、字幕、SI情報、データ放送などの様々な種類の放送リソースを取得して提示などの処理を行うことができるものの、実際に放送リソースにアクセスしてもよいかどうかについては、一定の認証を必要とすることが望ましい。
【0018】
XML−AITサーバ400は、第1のネットワーク200に接続可能とされ、第1のネットワーク200を通じて情報処理装置700に、アプリケーションサーバ300から提供される放送非連動アプリケーションを管理するためのXML−AITを配信する。
【0019】
なお、アプリケーションサーバ300とXML−AITサーバ400は1つのサーバであってもよい。アプリケーションサーバ300とXML−AITサーバ400は、それぞれCPU、メインメモリ、データ記憶装置、ユーザインタフェースなどを備え、典型的なコンピュータとしての構成を備える。メインメモリあるいはデータ記憶装置には、上記のコンピュータをテーブル伝送部として機能させるためのプログラムが格納されている。
【0020】
エッジルータ500は、第1のネットワーク200と第2のネットワーク600とを接続するためのルータである。第2のネットワーク600は有線、無線を問わない。
【0021】
情報処理装置700は、例えば、パーソナルコンピュータ、携帯電話、スマートフォン、テレビジョン装置、ゲーム機、タブレット端末、オーディオ・ビデオ再生機器などであるが、具体的に製品形態は問わない。
【0022】
情報処理装置700は、放送設備100からデジタル放送信号を受信し、復調してトランスポートストリームを得る。情報処理装置700は、このトランスポートストリームから放送ストリームを分離し、デコードして情報処理装置700に接続される表示部(図示せず)及びスピーカ部(図示せず)や、記録装置(図示せず)に出力することが可能である。
【0023】
なお、表示部、スピーカ部および記録装置はそれぞれ、情報処理装置700と一体であってもよいし、互いに独立した機器として直接又は第2のネットワーク600を介して情報処理装置700に接続されていてもよい。あるいは、表示部及びスピーカ部を有する機器(図示せず)が直接又は第2のネットワーク600を介して情報処理装置700に接続されていてもよい。
【0024】
情報処理装置700は、XML−AITサーバ400からXML−AITのファイルを取得し、解釈して、アプリケーションサーバ300から放送非連動アプリケーションを取得し、起動などの制御を行うことができる。
【0025】
[放送非連動アプリケーション]
ここで、放送非連動アプリケーションについて説明を補足する。放送非連動アプリケーションはアプリケーションサーバ300から情報処理装置700に提供される。放送非連動アプリケーションは、例えばHTML(Hyper Text Markup Language)文書、BML文書(Broadcast Markup Language)、MHEG文書(Multimedia and Hypermedia information coding)、Java(登録商標)スクリプト、静止画ファイル、動画ファイルなどで構成される。
【0026】
放送非連動アプリケーションは可視的なものであっても不可視的なものであってもよい。可視的なアプリケーションとは、画面を通じてその状態をユーザが視ることのできるアプリケーションである。不可視的なアプリケーションは、画面を通じてその状態をユーザが視ることのできないアプリケーションである。例えば、ブラウザがユーザに不可視の透明な状態で起動中であるときに利用されるアプリケーションや、視聴率調査などを目的として情報処理装置にて視聴された放送コンテンツを特定するための情報や視聴時間を記録して特定のサーバに配信したりするアプリケーションなどが考えられる。
【0027】
また、放送非連動アプリケーションは、情報処理装置700のユーザによる操作に従って提示する情報や機能を変えることができる双方向型アプリケーションでもよいし、ユーザに対して一方向に情報を提示するアプリケーションでもよい。
【0028】
[XML−AITのデータ構造]
次に、XML−AITのデータ構造について説明する。
図2は、本実施形態のXML−AITのデータ構造を示す図である。
XML−AITには、アプリケーション毎の、アプリケーション名、アプリケーション識別子、アプリケーション記述子、アプリケーションタイプ、アプリケーション制御コード21、アプリケーションの可視性、現在のサービス内でのみ有効かを示すフラグ、アプリケーションの優先度、アプリケーションのバージョン、プラットフォームプロファイルにあわせたバージョン、アイコン、ストレージ機能の性能、トランスポートプロトコル記述子、アプリケーションロケーション記述子、アプリケーションバウンダリ記述子、アプリケーションスペシフィック記述子、アプリケーションユーセジ記述子、アプリケーションモード記述子、アプリケーションハッシュ記述子22、アプリケーション識別記述子23などが格納される。
【0029】
このXML−AITには、改ざんを検出するための電子署名が添付される。電子署名としては、例えばXML署名などが用いられる。XML署名の形式は、XML−AITに対して独立したdetached署名、XML−AITを包含した形式を有するenveloping署名、XML−AITに包含された形式のenveloped署名のいずれであるかを問わない。なお、XML−AITのフォーマットへの影響を抑えるにはdetached署名を採用するのがよい。
【0030】
情報処理装置700のアプリケーションコントローラ708は、リファレンス検証(Reference Validation)と署名検証(Signature Validation)とを含むコア検証(Core Validation)の手続きに従って、XML署名を検証する。
リファレンス検証とは、リソース(XML−AIT)に正規化変換プロセス(Transform)及びダイジェスト計算アルゴリズム(DigestMethod)を適用することにより、リファレンス(Reference)のダイジェスト値(DigestValue)を検証する方式である。リファレンス検証により得られた結果と、登録されたダイジェスト値(DigestValue)とが比較され、これらが一致しない場合、検証失敗となる。
署名検証とは、署名情報(SignatureInfo)要素をXML正規化アルゴリズム(CanonicalizationMethod)で指定された正規化方式でシリアル化し、鍵情報(KeyInfo)等を用いて鍵データを取得し、署名アルゴリズム(SignatureMethod)で指定された方式を用いて署名を検証する方式である。
【0031】
図3はアプリケーションハッシュ記述子22のデータ構造を定義するXMLスキーマの例を示す図である。
このXMLスキーマではcomplexTypeの要素としてapplicationHashDescriptor要素が宣言されている。このapplicationHashDescriptor要素は、その子要素であるsequence要素の配下に、ハッシュ値の計算方法を示すハッシュアルゴリズムが格納されるhash_algorithm要素の名前とその型を宣言する要素と、アプリケーションのハッシュ値が格納されるhash_value要素の名前とその型を宣言する要素とを有する。アプリケーションのハッシュ値は、所定のハッシュ関数などによってアプリケーションの実体から生成された値であり、そのアプリケーションを代表する値と言うことができる。
【0032】
[アプリケーション識別記述子23の詳細]
次に、アプリケーション識別記述子23の詳細を説明する。
アプリケーション識別記述子23としては、
1.放送非連動アプリケーションがアクセス可能な放送局系列、放送局、チャンネルおよびイベント(番組)などの放送の単位を定義する情報(第3の定義情報)、
2.放送非連動アプリケーションが利用可能な放送リソースを構成するメディア情報の種類(映像、音声、SI情報、字幕、データ放送など)を定義する情報(以下「アクセス許可情報」と呼ぶ。)(第1の定義情報)、
3.放送リソースを利用した放送非連動アプリケーションの動作を制約する情報(以下「レンダリング許可情報」と呼ぶ。)(第2の定義情報)
等が含まれる。
アクセス許可情報とレンダリング許可情報を「リソース許可情報」と総称する。
【0033】
図4及び
図5は上記のアプリケーション識別記述子23(ApplicationIdDescriptor)の論理的構造を定義するXMLスキーマの例を示す図である。
【0034】
このXMLスキーマではcomplexTypeの要素としてApplicationIdDescriptor要素が宣言されている。
このApplicationIdDescriptor要素の子要素であるsequence要素の配下には、grant_aplication_access_flag要素、affiliation要素、terrestrial_broadcaster要素、broadcaster要素、event要素がそれぞれ宣言されている。
【0035】
ApplicationIdDescriptor要素は承諾アプリケーションアクセスフラグを格納する要素である。承諾アプリケーションアクセスフラグは"0"および"1"のいずれかの値をとる。承諾アプリケーションアクセスフラグが"0"であるとき、アプリケーション識別記述子23に記述された内容が、アプリケーションとの同時の提示が禁止される条件(ブラックリスト)として解釈される。承諾アプリケーションアクセスフラグが"1"である場合、アプリケーション識別記述子23に記述された内容が、アプリケーションとの同時の提示を許可する条件(ホワイトリスト)として解釈される。
【0036】
affiliation要素は、その配下に、放送系列局の名前を格納するaffiliation_name要素の名前と型を宣言する要素と、放送系列局の識別子(id)を格納する属性の名前と型を宣言する要素と、放送系列局のリソース許可情報(resouce_permission)の構造を定義する別の要素を参照先として示す要素を有する。
【0037】
terrestrial_broadcaster要素は、その配下に、地上デジタル放送局の名前を格納するterrestrial_broadcaster_name要素の名前と型を宣言する要素と、地上デジタル放送局の識別子(id)を格納する属性の名前と型を宣言する要素と、地上デジタル放送局のリソース許可情報(resouce_permission)の構造を定義する別の要素を参照先として示す要素を有する。
【0038】
broadcaster要素は、その配下に、BS/CS放送局の名前を格納するbroadcaster_name要素の名前とその型を宣言する要素と、BS/CS放送局の識別子(id)を格納する属性の名前と型を宣言する要素と、BS/CS放送局のリソース許可情報(resouce_permission)の構造を定義する別の要素を参照先として示す要素を有する。
【0039】
event要素は、その配下に、イベントを指定するための情報の構造を定義する別の要素(attributeGroup_name要素)の参照先を示す要素を有する。
【0040】
attributeGroup_name要素は、その配下に、イベントの名前を格納するevent_name要素の名前とその型を宣言する要素と、ネットワークIDを格納するnetwork_id属性の名前とその型を定義する要素と、トランスポートストリームIDを格納するtransport_stream_id属性の名前とその型を定義する要素と、サービスIDを格納するservice_id属性の名前とその型を定義する要素と、イベントIDを格納するevent_id属性の名前とその型を定義する要素と、イベントのリソース許可情報(resouce_permission)の構造を宣言する別の要素の参照先を示す要素を有する。
ここで、network_id属性、transport_stream_id属性、service_id属性はチャンネルを識別するための情報である。
また、event_id属性の名前とその型を定義する属性の値の記載は必須ではない。この記載がない場合にはチャンネルのみが指定されたことになる。
【0041】
このXMLスキーマでは他のcomplexTypeの要素としてresouce_permission要素が宣言されている。resouce_permission要素は、その配下に、アクセス許可情報を格納するaccess_permission要素の名前とその型を定義する要素と、レンダリング許可情報を格納するrendering_permission要素の名前とその型を定義する要素と、リソース許可情報(resouce_permission)の識別子(id)を格納する属性の名前と型を宣言する要素を有する。
【0042】
なお、
図4及び
図5のスキーマでは、access_permission要素およびrendering_permission要素に"0"から"128"までの値が格納されることとしたが、
図6に示すように、resouce_permission要素内に、予め意味が定義されたリソース許可情報(resouce_permission)毎にこれを指定するかどうかを示す"0"か"1"の値を格納する複数の要素を定義してもよい。
【0043】
図6に示すリソース許可情報(resouce_permission)のXMLスキーマにおいて、
video_scaling要素は、ビデオをスケーリングしながらのアプリケーションの実行の可否を指定する値を格納するための要素である。
video_overlay要素は、ビデオをオーバーレイしながらのアプリケーションの実行の可否を指定する値を格納するための要素である。
realtime_tuning要素は、アプリケーションからの現在の放送番組への選局の可否を指定する値を格納するための要素である。
reservation_tuning要素は、アプリケーションからの予約録画のための選局の可否を指定する値を格納するための要素である。
SI_reference要素は、アプリケーションからのSI情報への参照の可否を指定する値を格納するための要素である。
current_tuininginfo要素は、アプリケーションからの現在選局中の番組情報への参照の可否を指定する値を格納するための要素である。
NVRam_access要素は、アプリケーションからの情報処理装置内のNVRAM(Non Volatile RAM)へのアクセスの可否を指定する値を格納するための要素である。
【0044】
このリソース許可情報(resouce_permission)のXMLスキーマにも、リソース許可情報の識別子(Permission_id)を格納する属性の名前と型を宣言する要素が宣言されている。
【0045】
図7は、リソース許可情報のXMLスキーマの他の例を示す図である。
このXMLスキーマでは、resouce_permission要素内のaccess_permission要素およびrendering_permission要素それぞれの型を"xsd:string" minOcuur=0 maxOccur=unbound"と定義されている。これにより、access_permission要素およびrendering_permission要素について、それぞれ上限なく要素の内容を文字列で定義することができる。
なお、minOcuur=0は、定義可能な要素の数の下限が"0"、つまり要素の定義を省くことができることを意味する。maxOccur=unboundは、定義可能な要素の数の上限がないことを意味する。要素の意味の詳細はサービスにおいて任意に決められる。
【0046】
図8および
図9はリソース許可情報のXMLスキーマのさらに他の例を示す図である。
図4及び
図5に示したスキーマでは、リソース許可情報(resouce_permission)の構造がApplicationIdDescriptor要素の外のcomplexTypeの要素であるresouce_permission要素内に定義されることとしたが、
図8および
図9に示すXMLスキーマでは、affiliation要素、terrestrial_broadcaster要素、broadcaster要素、event要素の参照先であるattributeGroup_name要素のそれぞれにresouce_permission要素が定義されている。
【0047】
図10は
図4及び
図5のXMLスキーマ、または
図8及び
図9のXMLスキーマを用いて作成されるアプリケーション識別記述子23の具体例を示す図である。
このアプリケーション識別記述子23の具体例は、放送局系列とBS/CS放送局の放送単位に対してリソース許可情報がホワイトリストとして指定された場合を示すものである。
【0048】
すなわち、承諾アプリケーションアクセスフラグとして"1"が指定され、識別子が"00000001"、名前が"affiliation_A"という放送系列局に対して、識別子が"01"、アクセス許可情報(access_permission)の値が"10"、レンダリング許可情報(rendering_permission)の値が"20"のリソース許可情報(resouce_permission)が指定されている。また、識別子が"00000002"、名前が"broadcaster_B"というBS/CS放送局に対して、識別子が"02"、アクセス許可情報(access_permission)の値が"30"、レンダリング許可情報(rendering_permission)の値が"40"のリソース許可情報(resouce_permission)が指定されている。
アクセス許可情報(access_permission)の値、レンダリング許可情報(rendering_permission)の値に対して割り当てられる意味はサービスにおいて任意に決められる。
【0049】
[アプリケーション制御コードの定義]
アプリケーションのライフサイクルは、XML−AITに格納されるアプリケーション制御コード21をもとに、情報処理装置700によって動的に制御される。
【0050】
図11はXML−AITに格納されるアプリケーション制御コード21の定義を示す図である。
同図に示すように、アプリケーション制御コードとしては、"AUTOSTART"、"PRESENT"、"DESTROY"、"KILL"、"PREFETCH"、"REMOTE"、"DISABLED"、"PLAYBACK_AUTOSTART"が標準規格上存在する。これらアプリケーション制御コードの定義は以下のとおりである。
【0051】
"AUTOSTART"は、サービスの選択に伴いアプリケーションを自動で起動することを指示するコードである。アプリケーションが既に実行されている場合にはこの限りでない。
"PRESENT"は、サービスが選択されている間、アプリケーションを実行可能な状態とすることを指示するコードである。但し、対象のアプリケーションは、サービスの選択に伴って自動的にアプリケーションは起動されず、ユーザからの起動の指示を受けて起動される。
"DESTROY"は、アプリケーションの終了の許可を指示するコードである。
"KILL"は、アプリケーションの強制的な終了を指示するコードである。
"PREFETCH"は、アプリケーションのキャッシュを指示するコードである。
"REMOTE"は、現在のトランスポートストリームでは取得できないアプリケーションであることを示すコードである。そのアプリケーションは、別のトランスポートストリームあるいはキャッシュから取得して利用可能となる。
"DISABLED"は、アプリケーションの起動を禁止することを示すコードである。
"PLAYBACK_AUTOSTART"は、ストレージ(記録装置)に録画された放送コンテンツの再生に伴いアプリケーションを起動させるためのコードである。
【0052】
[情報処理装置の構成]
図12は本実施形態の情報処理装置700の構成を示すブロック図である。
情報処理装置700は、放送インタフェース701、デマルチプレクサ702、出力処理部703、映像デコーダ704、音声デコーダ705、字幕デコーダ706、通信インタフェース707、アプリケーションコントローラ708(コントローラ)を有する。
【0053】
放送インタフェース701は、アンテナ及びチューナを有し、これらを用いてユーザにより選局されたデジタル放送信号を受信する。放送インタフェース701は、受信したデジタル放送信号に対して復調処理などを施して得たトランスポートストリームをデマルチプレクサ702に出力する。
【0054】
デマルチプレクサ702は、トランスポートストリームから放送コンテンツのストリームパケット、アプリケーションのパケット、AITセクションのパケットをそれぞれ分離する。デマルチプレクサ702は、放送コンテンツのストリームパケットから映像ES(Elementary Stream)、音声ES、字幕ESを分離する。デマルチプレクサ702は、映像ESを映像デコーダ704に、音声ESを音声デコーダ705に、字幕ESを字幕デコーダ706に、そしてアプリケーションのパケット、およびAITセクションを含むPSI/SI(Program Specific Information/Service Information)のパケットをアプリケーションコントローラ708にそれぞれ分配する。
【0055】
映像デコーダ704は、映像ESをデコードして映像信号を生成し、生成した映像信号を出力処理部703に出力する。音声デコーダ705は、音声ESをデコードして音声信号を生成し、生成した音声信号を出力処理部703に出力する。
字幕デコーダ706は、字幕ESをデコードして字幕信号を生成し、生成した字幕信号を出力処理部703に出力する。
【0056】
放送インタフェース701、デマルチプレクサ702、出力処理部703、映像デコーダ704、音声デコーダ705、字幕デコーダ706は、放送コンテンツを受信し、処理する放送処理部である。
【0057】
通信インタフェース707は、LANなどの第2のネットワーク600を通じて外部の機器と通信を行うためのインタフェースである。通信インタフェース707は無線による通信、有線による通信を問わない。
【0058】
アプリケーションコントローラ708は、アプリケーションの制御に関する処理を行うコントローラである。
【0059】
出力処理部703は、映像デコーダ704からの映像信号、音声デコーダ705からの音声信号、字幕デコーダ706からの字幕信号及びアプリケーションコントローラ708からの映像信号や音声信号等を合成し、情報処理装置700に接続された記録装置(図示せず)、表示部及びスピーカ部(図示せず)に出力する。
【0060】
上記の情報処理装置700の少なくともアプリケーションコントローラ708を含む構成の一部または全ては、CPU(Central Processing Unit)およびメモリを有するコンピュータと、このコンピュータを放送処理部、アプリケーションコントローラ708などとして機能させるプログラムとにより提供することが可能である。
【0061】
[情報処理システム1の動作]
次に、本実施形態の情報処理システム1の動作を説明する。
動作の説明は、
1.放送非連動アプリケーションによる放送リソースの利用の制御
2.署名およびハッシュ値の生成と検証
の順で行う。
【0062】
(1.放送非連動アプリケーションによる放送リソースの利用の制御)
図13は放送設備100、アプリケーションサーバ300、XML−AITサーバ400、および情報処理装置700の間でのやりとりの流れを示すシーケンス図である。
図14は情報処理装置700の処理手順を示すフローチャートである。
【0063】
情報処理装置700は、例えばリモコンなどを使ってユーザにより選択されたアプリケーションローンチャを表示する(ステップS101)。アプリケーションローンチャは、例えば、情報処理装置700に実装された、いわゆるレジデントアプリケーションや、HTMLブラウザによって提示されるHTML5(Hyper Text Markup Language 5)、BML(Broadcast Markup Language)などによって実現される。アプリケーションローンチャには、放送非連動アプリケーションのメニューが表示される。
【0064】
ユーザは例えばリモコンなどを使って提示させたい放送非連動アプリケーションを選択することができる。アプリケーションローンチャに表示されたメニューの放送非連動アプリケーションのメニューには、放送非連動アプリケーション用のXML−AITを情報処理装置700に取得させるためのスクリプトなどが組み込まれている。
【0065】
アプリケーションローンチャに表示された放送非連動アプリケーションのメニュー上で、リモコンを使ったユーザの操作によって任意の放送非連動アプリケーションが選択されると(ステップS102)、その放送非連動アプリケーションに対応するスクリプトが実行されることによって、情報処理装置700のアプリケーションコントローラ708は、当該放送非連動アプリケーション用のXML−AITをXML−AITサーバ400から取得する(ステップS103)。
【0066】
情報処理装置700のアプリケーションコントローラ708は、取得したXML−AITに記述されているアプリケーションのロケーション情報をもとにアプリケーションサーバ300から放送非連動アプリケーションを取得し(ステップS104)、取得した放送非連動アプリケーションを直ちに起動する(ステップS105)。
【0067】
次に、情報処理装置700のアプリケーションコントローラ708は、ハッシュ値及び電子署名の検証を行う(ステップS106)。なお、ハッシュ値の検証及び電子署名の検証の詳細については後で説明する。
【0068】
ハッシュ値及び電子署名の検証に成功した場合(ステップS107のY)、アプリケーションコントローラ708は、放送非連動アプリケーションからの放送リソースのアクセス要求を監視する(ステップS108)。
【0069】
また、ハッシュ値および電子署名の少なくともいずれか一方の検証に失敗した場合(ステップS107のN)、アプリケーションコントローラ708は、当該放送非連動アプリケーションによる全ての放送リソースのアクセスを禁止するように設定を行った後(ステップS109)、放送非連動アプリケーションからの放送リソースのアクセス要求を監視する(ステップS108)。
【0070】
アプリケーションコントローラ708は、放送非連動アプリケーションからの放送リソースのアクセス要求を検出すると(ステップS108のY)、取得したXML−AITに記述されたアクセス許可情報(access_permission)を参照して、当該放送非連動アプリケーションによる放送リソースのアクセスの可否を判定する(ステップS110)。
【0071】
例えば、
図10に示したアプリケーション識別記述子23が取得され、アクセス許可情報(access_permission)の値"10"は"すべての放送リソースの利用を許可する。"を意味することとする。ここで"すべての放送リソース"とは、放送されるすべての種類(映像、音声、SI情報、字幕、データ放送など)のメディア情報のことである。
【0072】
この想定において、実行された放送非連動アプリケーションによってアクセス要求された放送リソースが"affiliation_A"という放送系列局に属する放送局からの放送リソースである場合には、当該放送非連動アプリケーションによる放送リソースのアクセスは可能と判定される。
【0073】
また、実行された放送非連動アプリケーションによってアクセス要求された放送リソースが、"affiliation_A"という放送系列局に属さない放送局からの放送リソースであって、"broadcaster_B"というBS/CS放送局以外の放送局の放送リソースである場合には、当該放送非連動アプリケーションによる放送リソースのアクセスは不可と判定される。
【0074】
さらに、
図10に示したアプリケーション識別記述子23において、アクセス許可情報(access_permission)の値"10"が"映像"を意味するように定義されている場合には、放送非連動アプリケーションによる放送リソースのアクセスは"映像"のみ可能と判定される。したがって、この場合、放送非連動アプリケーションがアクセスしようとしている放送リソースが"映像と音声"である場合には、放送非連動アプリケーションは映像のみを利用することができ、音声を利用できない。
【0075】
同様に、アクセス許可情報(access_permission)の値"10"が"SI情報以外の放送リソース"を意味するように定義されている場合、放送非連動アプリケーションによる放送リソースのアクセスは"SI情報以外の放送リソース"のみ可能と判定される。したがって、この場合、放送非連動アプリケーションがアクセスしようとしている放送リソースが"SI情報"である場合のみ、放送非連動アプリケーションはその放送リソースを利用できるが、放送非連動アプリケーションがアクセスしようとしている放送リソースが"映像と音声"である場合には放送非連動アプリケーションはその放送リソースを利用できない。
【0076】
アプリケーションコントローラ708は、実行された放送非連動アプリケーションによってアクセス要求された放送リソースが、アクセス許可情報(access_permission)においてアクセスすることを許可された放送リソースであることを判定すると(ステップS111のY)、その放送リソースにアクセスする(ステップS112)。
【0077】
続いて、アプリケーションコントローラ708は、レンダリング許可情報(rendering_permission)をもとに、アクセスした放送リソースを利用した放送非連動アプリケーションの動作の制約を決定する(ステップS113)。
【0078】
ここで、放送非連動アプリケーションの動作の制約に関して説明を補足する。
放送非連動アプリケーションの動作の制約として、放送リソースとアプリケーションを表示させる場合の方法に関する制約がある。
【0079】
放送リソースとアプリケーションの表示方法の例を以下に示す。
図18は、選局された放送番組31Aとアプリケーション32Aとを画面を分割するように表示させ、放送番組31Aをスケーリングつまりサイズを変更して表示させる方法を示す。
図19は、選局された放送番組31Bを全画面表示させ、アプリケーション32Bをその上に重ねて表示させる方法を示す。
図20は、アプリケーション32Cを全画面表示させ、そこに放送リソースの一つである番組情報33を表示させる方法を示す。
図21は、放送番組31Dのみを全画面表示させ、アプリケーションを非表示とする方法を示す。
【0080】
例えば、情報処理装置700内で実行中の放送非連動アプリケーションが、放送番組の番組情報を表示するために、その番組情報を含むSI情報にアクセスしようとした場合を想定する。
情報処理装置700のアプリケーションコントローラ708は、レンダリング許可情報(rendering_permission)を参照して番組情報の表示の可否を調べる。番組情報の表示が可であれば、アプリケーションコントローラ708は、
図20に示したように、その番組情報をアプリケーション領域に表示させる。
【0081】
ただし、この動作例は、アクセス許可情報(access_permission)においてSI情報の利用が許可されている場合を前提としたものである。もし、アクセス許可情報(access_permission)において番組情報のソースであるSI情報の利用が許可されていない場合にはレンダリング許可情報(rendering_permission)に記述された情報に拘わらず、番組情報の表示は行われない。
以上が、放送非連動アプリケーションの動作の制約に関する説明である。
【0082】
図14の説明に戻る。
アプリケーションコントローラ708は、実行された放送非連動アプリケーションによってアクセス要求された放送リソースが、当該放送非連動アプリケーションによってアクセスすることを許可されていない放送リソースであることを判定すると(ステップS111のN)、その放送リソースにアクセスしないことにより、実行中の放送非連動アプリケーションに放送リソースを与えない(ステップS114)。これにより、放送非連動アプリケーションは、放送リソースを利用しない状態のまま動作を続ける。
【0083】
この後、例えば、ユーザによるリモコンの操作によるアプリケーションの終了指示や別のアプリケーションへの遷移などが発生すると(ステップS115のYES)、情報処理装置700のアプリケーションコントローラ708はて放送非連動アプリケーションを終了させる(ステップS116)。
【0084】
また、情報処理装置700のアプリケーションコントローラ708は、放送非連動アプリケーションの実行中に新たに取得したXML−AITに"AUTOSTART"、"DESTROY"、"KILL"以外のアプリケーション制御コードが記述されている場合には、そのアプリケーション制御コードに従って放送非連動アプリケーションの状態を遷移させるなどの処理を行った後(ステップS117)、次のXML−AITを待機する。
【0085】
次に、放送チャンネルのダイレクト選局時の動作を
図13及び
図15により説明する。
図15は情報処理装置700のアプリケーションコントローラ708による放送チャンネルのダイレクト選局時の動作のフローチャートである。
【0086】
以上のようにして放送非連動アプリケーションが実行中であるとき、例えば、ユーザのマニュアル操作などによって放送チャンネルが切り替えられる操作(ダイレクト選局操作)が行われることがある。このようなダイレクト選局操作が発生したとき(ステップS201)、情報処理装置700のアプリケーションコントローラ708は、取得したXML−AITに記述されたアクセス許可情報(access_permission)をもとに、上記のダイレクト選局操作によって選択された放送チャンネルの放送リソースが実行中の放送非連動アプリケーションによって利用されることが許可された放送リソースであるかどうかを判定する(ステップS202)。
【0087】
ダイレクト選局操作によって選択された放送チャンネルの放送リソースが、実行中の放送非連動アプリケーションによって利用されることが許可された放送リソースであれば、アプリケーションコントローラ708は、その放送非連動アプリケーションの実行を継続させながら、ダイレクト選局操作によって選択された放送チャンネルの選局処理を実行し、その放送を提示する(ステップS203)。また、ダイレクト選局操作によって選択された放送チャンネルが実行中の放送非連動アプリケーションによって利用が許可されていない放送リソースであれば、放送非連動アプリケーションを終了させ、ダイレクト選局操作によって選択された放送チャンネルの選局処理を実行し、その放送を提示する(ステップS204)。なお、このときの変形例として、放送非連動アプリケーションの実行を継続させ、放送リソースの利用が不可であることをユーザに知らせるようにしてもよい。
【0088】
次に、放送非連動アプリケーションの遷移が発生した場合の動作を
図13、
図14及び
図16により説明する。
動作中の放送非連動アプリケーションに組み込まれたスクリプトの実行、あるいは、ユーザのマニュアル操作などによって、放送非連動アプリケーションの遷移の指示が発生したとき(
図16、ステップS301)、情報処理装置700のアプリケーションコントローラ708は、XML−AITサーバ400から、遷移先の放送非連動アプリケーションのXML−AITを取得する(
図14、ステップS103)。アプリケーションコントローラ708は、このXML−AITに記述されているアプリケーションのロケーション情報をもとにアプリケーションサーバ300から放送非連動アプリケーションを取得し(
図14、ステップS104)、起動する(
図14、ステップS105)。
【0089】
以降同様に、アプリケーションコントローラ708は、ハッシュ値及び電子署名の検証を行い、検証に成功すれば、実行中の放送非連動アプリケーションからの放送リソースのアクセス要求を検出したタイミングで、アクセス許可情報(access_permission)をもとに、放送非連動アプリケーションによる当該放送リソースのアクセスの可否を判定する。実行された放送非連動アプリケーションによってアクセス要求された放送リソースが、当該放送非連動アプリケーションによってアクセスすることを許可された放送リソースであれば、アプリケーションコントローラ708はその放送リソースをアクセスするとともに、レンダリング許可情報(rendering_permission)の内容をもとに、実行中の放送非連動アプリケーションの動作に対する制約を決定する。また、実行された放送非連動アプリケーションによってアクセス要求された放送リソースが、当該放送非連動アプリケーションによってアクセスすることを許可されていない放送リソースであれば、アプリケーションコントローラ708はその放送リソースのアクセス(選局)を実行しないことにより放送リソースの提示などの利用を無効とする。
以上が、放送非連動アプリケーションによる放送リソースの利用の制御の説明である。
【0090】
(2.電子署名およびハッシュ値の生成と検証)
次に、電子署名およびハッシュ値の生成と検証について説明する。
図17は電子署名およびハッシュ値の生成と検証の仕組みについて説明するためのブロック図である。
【0091】
XML−AITサーバ400およびアプリケーションサーバ300は一台のサーバであってもよく、別々のサーバであってもよい。ここでは、XML−AITサーバ400およびアプリケーションサーバ300を総称して「サーバ」と呼ぶ。サーバは、典型的なコンピュータの構成を有する機器である。したがって、CPU、メインメモリ、HDDなどのストレージデバイス、マウスやキーボードなどの入力装置、液晶ディスプレイなどの表示部などで構成される。メインメモリおよびストレージデバイスには、OS(Operating System)、サーバ用のアプリケーションプログラムなどのソフトウェア、情報処理装置700に提供される放送非連動アプリケーション、アプリケーション毎のXML−AITのファイル、署名生成鍵などが格納される。サーバ用のアプリケーションプログラムとしては、電子署名およびハッシュ値の生成を行うプログラムなどが含まれる。
【0092】
サーバは、AIT生成部350を有する。AIT生成部350は、具体的にはメインメモリにロードされた、電子署名およびハッシュ値の生成を行うプログラムと、このプログラムを実行するCPUとで実現される。
【0093】
AIT生成部350は、以下の処理を行う。
1.AIT生成部350は、アプリケーション351の実体(バイナリコード)から所定のハッシュ演算器352を用いてハッシュ値353を算出する。ハッシュのアルゴリズムとしては、例えばFIPS PUB 180-1,180-2で標準規格化されているSHA-1やSHA-2などがある。
【0094】
2.AIT生成部350は、当該アプリケーション351のXML−AITにハッシュ値353を合成(354)して、ハッシュ値付きのXML−AIT355を生成する。
【0095】
3.AIT生成部350は、アプリケーション351とXML−AIT355について放送局CA(Certificate Authority)800に対して認証を依頼する。
図1にも示したように、放送局CA800は、放送局あるいは放送局系列から、放送リソースの利用に関する認証業務の依頼を受けてその業務を遂行する。放送局CA800は、放送局以外のアプリケーション制作者より依頼された認証の対象であるアプリケーション351とXML−AIT355の内容をチェックし、その内容に問題がなければ、ルートCA900より発行された秘密鍵と公開鍵のペアのうち秘密鍵を署名生成鍵として署名生成器356に設定する。署名生成器356はハッシュ値付きのXML−AIT355に対して署名用のハッシュ関数を用いてダイジェストを生成し、このダイジェストを署名生成鍵(秘密鍵)357で暗号化してXML署名358を生成する。放送局CA800は、生成したXML署名358をサーバに応答する。
【0096】
4.サーバのAIT生成部350は、放送局CAより応答されたXML署名358をハッシュ値付きのXML−AIT355に付加(359)して電子署名付きのXML−AIT360を生成する。
5.そして、サーバのAIT生成部350は、電子署名付きのXML−AIT360を情報処理装置700に提供する。なお、XML署名358の生成で用いられた秘密鍵に対応する公開鍵は、情報処理装置700に別経路で与えられ、情報処理装置700のコントローラ708はこの公開鍵を保持する。
【0097】
情報処理装置700のアプリケーションコントローラ708は、以下の処理を行う。
1.コントローラ708は、サーバより取得したアプリケーション351の実体(バイナリコード)から所定のハッシュ演算器751(ハッシュ関数)を用いてハッシュ値752を算出する。ここで用いられるハッシュ関数は、サーバのAIT生成部350のハッシュ演算器352のそれと同じである必要がある。そこでコントローラ708は、サーバより取得した電子署名付きのXML−AIT360に記述されたハッシュアルゴリズムを確認して、ハッシュ演算器751(ハッシュ関数)のハッシュアルゴリズムとの整合がとれているかどうかを判定する。もしハッシュアルゴリズムの不整合が判定された場合、コントローラ708はハッシュ演算器751(ハッシュ関数)を切り替えてサーバのAIT生成部350のハッシュ演算器352のそれと整合させる。
【0098】
2.コントローラ708は、サーバより取得した電子署名付きのXML−AIT360から抽出したハッシュ値353とハッシュ値752とをハッシュ比較器756を用いて比較し、一致/不一致の結果757を得る。
【0099】
3.コントローラ708は、署名生成器753にて、サーバより取得した電子署名付きのXML−AIT360からXML署名を抽出し、このXML署名を署名検証鍵(公開鍵)754を用いて検証して署名検証結果755を得る。
【0100】
以上のようにして、サーバでの電子署名およびハッシュ値の生成と、情報処理装置700での電子署名およびハッシュ値の検証が行われる。
【0101】
[実施形態の効果等]
本実施形態では、次のような効果が得られる。
1.本実施形態によれば、XML−AITに、放送非連動アプリケーションにより利用可能な放送リソースのメディア情報の種類(映像、音声、SI情報、字幕、データ放送など)を指定するアクセス許可情報(access_permission)を記述できることとした。これにより、放送非連動アプリケーションによる放送リソースの利用の可否を、放送リソースにおけるメディア情報の種類の単位に細分化して定義することができる。
【0102】
2.本実施形態によれば、XML−AITに、アクセス許可情報(access permission)と紐付けて、例えば放送非連動アプリケーションにより利用可能な放送リソースの表示方法など、放送リソースを利用した放送非連動アプリケーションによる動作を制約するレンダリング許可情報(rendering_permission)を記述できることとした。これにより、放送非連動アプリケーションにより利用可能な放送リソースの表示方法などに、放送リソースの制作者の意図を反映させることができる。
【0103】
3.本実施形態によれば、XML−AITに、アクセス許可情報(access_permission)およびレンダリング許可情報(rendering_permission)は、放送局系列、放送局、チャンネルおよびイベント(番組)などの放送単位の情報と紐付けてリソース許可情報(resouce_permission)として記述できることとした。これにより、様々な放送単位でアクセス許可情報(access_permission)およびレンダリング許可情報(rendering_permission)を定義することができる。
【0104】
4.ところで、放送リソースの制作者の意図は、放送局CA800での放送非連動アプリケーションとXML−AITの内容チェックを通してリソース許可情報(resouce_permission)に反映される。その具体的な仕組みは次の通りである。
【0105】
すなわち、本実施形態では、放送局系列および放送局からの認証業務の依頼を受けた放送局CA800が、放送局以外のアプリケーション制作者より依頼された認証の対象である放送非連動アプリケーションとXML−AITの内容をチェックし、問題がなければ電子署名をXML−AITに付けてアプリケーション制作者に返却する。放送非連動アプリケーションとXML−AITの内容のチェックにおいてリソース許可情報(resouce_permission)の内容に問題があれば、放送局CA800は改善点をアプリケーション制作者にフィードバックする。アプリケーション制作者は、放送局CA800よりフィードバックされた改善点をもとにXML−AITの内容を更新し、改めて放送局CA800に認証を依頼する。
【0106】
<変形例>
HbbTVの標準規格を前提とした実施形態を説明したが、本技術は、HbbTVの標準規格を前提とすることに必ずしも限定されるものではない。
【0107】
その他、本技術は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。