以下、図面を参照しながら本明細書で開示する技術の実施形態について詳細に説明する。
A.システム構成
図1には、本明細書で開示する技術を適用したコンテンツ伝送システム100の構成例を模式的に示している。図示のコンテンツ伝送システム100は、家庭内に敷設されたホーム・ネットワーク110内に設置されたサーバー101と端末102で構成される。同図では、簡素化のため、サーバーと端末をそれぞれ1台ずつしか描いていないが、2台以上のサーバー並びに端末がホーム・ネットワーク上に設置されることも想定される。例えば、サーバーと端末はDLNAに規定されているプロトコルに従って動作することでコンテンツの伝送を行なうことが可能である。
サーバー101は、端末102にコンテンツを提供する装置である。サーバー101は、例えば、セットトップボックスやレコーダー、テレビジョン受信機、パーソナル・コンピューター、ネットワーク・アクセス・サーバー(NAS)などである。サーバー101は、地上ディジタル放送で受信又は録画した放送コンテンツや、ブルーレイ・ディスクなどの記録媒体(図示しない)から読み込んだ映画などの商用コンテンツ、さらにはインターネット上のコンテンツ・サーバー(図示しない)から取得したコンテンツを端末102に提供する。コンテンツを提供する形態として、ストリーミングやコンテンツの移動(MOVE)が挙げられる。
端末102は、ホーム・ネットワーク110越しに、サーバー101にコンテンツを要求する装置であり、携帯電話やスマートフォン、タブレットなどの多機能携帯端末などに相当する。
本実施形態では、ホーム・ネットワーク110を介したサーバー101と端末102間のコンテンツ伝送には、DTCP技術が適用されている。したがって、端末102は、所定の相互認証及び鍵交換(AKE)アルゴリズムに従って、サーバー101と相互認証するとともに鍵を共有した後に、サーバー101内に蓄積されたコンテンツを要求することができる。サーバー101は、要求されたコンテンツを、共有した鍵を用いて暗号化伝送する。コンテンツを提供するサーバー101はDTCPのSourceデバイスに相当し、コンテンツを利用する端末102はDTCPのSinkデバイスに相当する。
なお、端末102で外出先などホーム・ネットワーク110の外からサーバー101にアクセスしたいときには、ホーム・ネットワーク110内で端末102をサーバー101に事前に登録しておく必要がある。また、本実施形態では、サーバー101は、登録する端末102に対して、リモート・アクセス時に許容されるコンテンツの再生可能時間を付与するようになっているが、この点の詳細については後述に譲る。
また、図2には、本明細書で開示する技術を適用したコンテンツ伝送システム200の他の構成例を模式的に示している。図示のコンテンツ伝送システム200は、家庭内に敷設されたホーム・ネットワーク210内に設置されたサーバー201と、インターネットなどの外部ネットワーク220上に接続された端末202で構成される。ホーム・ネットワーク210と外部ネットワーク220は、IPプロトコルに従い、ルーター230経由で相互接続されている。同図では、簡素化のため、サーバーと端末をそれぞれ1台ずつしか描いていないが、ホーム・ネットワーク210内に2台以上のサーバーが設置されることや、ホーム・ネットワーク210内にも端末が接続され、さらに外部ネットワーク220上に2台以上の端末が接続されることも想定される。
サーバー201は、セットトップボックスやレコーダー、テレビジョン受信機、パーソナル・コンピューター、ネットワーク・アクセス・サーバー(NAS)などである。サーバー201、放送コンテンツや商用コンテンツなどを、外部ネットワーク220からリモート・アクセスする端末202に提供する)。コンテンツを提供する形態として、ストリーミングやコンテンツの移動(MOVE)が挙げられる。
端末202は、携帯電話やスマートフォン、タブレットなどの多機能携帯端末などであり、ホーム・ネットワーク210及び外部ネットワーク220からなるIPネットワーク越しに、サーバー201にコンテンツを要求する。
本実施形態では、ホーム・ネットワーク210及び外部ネットワーク220を介したサーバー201と端末202間のコンテンツ伝送には、DTCP−IP技術が適用されている。したがって、端末202は、ホーム・ネットワーク210内でサーバー201に事前に登録しておく必要がある(前述)。端末202は、ホーム・ネットワーク210及び外部ネットワーク220からなるIPネットワーク越しに、サーバー201と相互認証するとともに交換鍵を共有した後に、サーバー201内に蓄積されたコンテンツを要求することができる。サーバー201は、登録されている端末202から要求されたコンテンツを、共有した交換鍵を用いて暗号化伝送する。コンテンツを提供するサーバー201はDTCPのSourceデバイスに相当し、コンテンツを利用する端末202はDTCPのSinkデバイスに相当する。
本実施形態では、サーバー202は、事前に登録する端末202に対して、リモート・アクセス時に許容されるコンテンツの再生可能時間を付与するようになっている。また、サーバー201は、端末202がリモート・アクセスした際には、残りの再生可能時間に応じてコンテンツの提供を制限するが、この点の詳細については後述に譲る。
図3には、図1並びに図2において、サーバー101、201(すなわち、Sourceデバイス)として動作するコンテンツ送信装置300の機能的構成を模式的に示している。サーバー101、201の具体例は、セットトップボックスやレコーダー、テレビジョン受信機、パーソナル・コンピューター、ネットワーク・アクセス・サーバー(NAS)などである。
通信・制御部301は、ホーム・ネットワーク並びに外部ネットワークを介した通信動作を制御するとともに、当該コンテンツ送信装置300全体の動作を統括的に制御する。また、通信・制御部301は、HDMI(登録商標)(High Definition Multimedia Interface)やMHL(登録商標)(Mobile High‐Definition Link)、USB(Universal Serial Bus)などの外部機器接続用(若しくは、コンテンツのディジタル出力用)のインターフェースを備えており、ハード・ディスク装置やブルーレイ・ディスク装置などの録画再生機器を接続することができる。
コンテンツ記録部302は、ホーム・ネットワーク並びに外部ネットワーク越しで端末101、201に提供するコンテンツを記録する。コンテンツ記録部302に記録された各コンテンツは、一般的なファイル・システムの管理下で、記録日時やアクセス日時、長さ(duration)が保持される。また、コンテンツ記録部302は、各コンテンツ、又はコンテンツ・グループのメタデータも記録する。
コンテンツ取得部303は、端末101、201に提供するコンテンツを取得し、必要に応じてコンテンツ記録部302に記録する。また、コンテンツ取得部303は、端末に提供するコンテンツをコンテンツ記録部302から取得することもある。
コンテンツ取得部303は、例えば地上ディジタル放送用チューナーなどからなり、放送コンテンツを取得する。この場合のコンテンツ取得部303は、例えばARIB(Association of Radio Industries andBusinesses:電波産業会)で規定される仕様に基づく。コンテンツ取得部303は、例えば、放送チャンネルの全セグメント又は一部のセグメントの受信機能、EPG(Electronic Program Guide)の機能(番組検索、番組情報の表示、番組予約)、HDCP(High−bandwidth Digital Content Protection)仕様などに基づくコピー制御機能、放送コンテンツを限定受信したり受信した放送コンテンツを外部出力する際に暗号化したりするコンテンツ保護機能、などを備えている。
また、サーバー101、201がネットワーク・アクセス・サーバーの場合には、コンテンツ取得部303は、放送波を受信せず、レコーダーで録画したコンテンツや、メディア再生装置で再生するコンテンツを、ネットワーク経由で取得し、必要に応じてコンテンツ記録部302に記録する。
また、コンテンツ取得部303は、ブルーレイ・ディスクなどのメディア再生装置からなり、映画などの商用コンテンツをメディアから読み取る。また、コンテンツ取得部303は、ブラウザーなどからなり、インターネット上のコンテンツ・サーバー(図示しない)から有償又は無償のコンテンツをダウンロードする。
コンテンツ提供部304は、端末からの要求に応答して、コンテンツ取得部303が取得したコンテンツを端末に提供する。端末が外部ネットワーク上からのリモート・アクセスによりコンテンツを要求する場合、その端末は端末管理部307に事前に登録されたものでなければならない。コンテンツ提供部304は、例えばHTTP(Hypet Text Transfer Protocol)プロトコルを利用して、端末へコンテンツを伝送する。コンテンツを提供する方法として、コンテンツのストリーミングやコンテンツの移動(MOVE)を挙げることができる。また、コンテンツ提供部304は、伝送するコンテンツを、認証・鍵共有部306により端末と共有した交換鍵を用いて暗号化する。
コンテンツ・リスト提供部305は、例えば端末からの要求に応答して、端末に提供可能なコンテンツのリストと詳細情報を、端末に提供する。上述からも分かるように、サーバー101、201が端末に提供可能なコンテンツは、コンテンツ取得部303が受信する放送コンテンツやメディアから読み出す商用コンテンツ、コンテンツ記録部302に既に記録されているコンテンツが挙げられる。コンテンツ・リストの提供には、例えば、DLNAのベースとなるUPnP(Universal Plug andPlay)で策定されている、コンテンツのリストとコンテンツの詳細情報を階層化して配信するCDS(Content Directory Service)機能が適用される。
認証・鍵共有部306は、コンテンツの要求元となる端末との間で、DTCP−IPが規定する認証及び鍵交換(AKE)アルゴリズムに従って、相互認証並びにコンテンツ暗号化のための交換鍵の共有を行なう。認証・鍵共有部306は、外部ネットワークからリモート・アクセスによりコンテンツを要求してくる端末に対しては、リモート・アクセス用交換鍵KRを共有する(後述)。
端末管理部307は、コンテンツを要求する端末の情報を管理する。端末管理部307は、外部ネットワークからリモート・アクセスによりコンテンツを利用する端末に対して事前に登録の処理を行なうとともに、その端末の情報を「remote sink registry」や「RAC(Remote Access Connection) registry」として管理する。
本実施形態では、端末管理部307は、端末の登録を行なう際に、リモート・アクセス時に許容されるコンテンツの再生可能時間をその端末に付与し、端末の識別情報とペアにして管理する点に1つの特徴がある。そして、コンテンツ提供部304は、登録を済ませた端末がリモート・アクセスした際には、その端末の再生可能時間のアップデート(コンテンツの再生時間に応じた再生可能時間の減算)を行なうとともに、残りの再生可能時間に応じてコンテンツの提供を制限する。但し、この点の詳細については後述に譲る。
なお、上記の機能ブロック303〜307は、通信・制御部301において、オペレーティング・システムやTCP/IPプロトコルの上位で実行するアプリケーション・プログラムとして実現することもできる。また、この種のアプリケーション・プログラムは、インターネットなどの広域ネットワーク上で所定のダウンロード・サイトで配信することができ、ディジタル放送チューナーやTV受像機などのCE(Consumer Electronics)機器、スマートフォンなどの多機能端末にダウンロードして利用に供される。
このようなダウンロード・サイトは、例えば、コンピューター・プログラムを記憶する記憶装置2711と、コンピューター・プログラムのダウンロード要求を受信したことに応じてそのダウンロードを認める通信装置2712とを備えたサーバー2710からなり(図26を参照のこと)、ダウンロードしたコンピューター・プログラムをインストールするクライアント装置(DTCP_Source又はDTCP_Sink)と併せてコンピューター・プログラム配信システム2700を構成する。この種のサーバーは、クライアントからのコンピューター・プログラムのダウンロード要求に対して、コンピューター・プログラムの名称を示す情報を通知する情報通知装置2713をさらに備えている。情報通知装置2713は、コンピューター・プログラムの名称とともに、例えば、家庭内に記録した商用コンテンツを遠隔地の端末に提供するアプリケーションであることを示す情報を通知する。
図4には、図1並びに図2において、端末102、202(すなわち、Sink)として動作するコンテンツ受信装置400の機能的構成を模式的に示している。端末102、202の具体例は、携帯電話やスマートフォン、タブレットなどの多機能携帯端末などである。
通信・制御部401は、ホーム・ネットワーク並びに外部ネットワークを介した通信動作を制御するとともに、当該コンテンツ受信装置400全体の動作を統括的に制御する。
コンテンツ・リスト閲覧部402は、Sourceとなるサーバー101、201に対して、コンテンツ・リストの取得要求を行ない、取得したコンテンツ・リストの閲覧画面を表示する。例えば、サーバー101、201が提供可能なコンテンツのリストをCDS情報(前述)として取得したときには、コンテンツ一覧画面が表示される。ユーザーはこの一覧画面を通して、再生出力したいコンテンツを選択することができる。
コンテンツ取得部403は、コンテンツの取得要求をサーバー101、201に送信して、サーバー内のコンテンツを取得する。コンテンツ取得部403は、例えば、コンテンツ・リスト閲覧部402が表示するコンテンツ一覧画面の中でユーザーが選択したコンテンツの取得を要求する。サーバー101、201に対するコンテンツの取得要求並びにコンテンツの取得には、例えばHTTPプロトコルが利用される(後述)。コンテンツを取得する方法として、コンテンツのストリーミングやコンテンツの移動(MOVE)を挙げることができる。本実施形態では、サーバー201にリモート・アクセスする場合、登録時に付与された再生可能時間の残りに応じてコンテンツの提供が制限される点に1つの特徴があるが、その詳細については後述に譲る。
サーバー101、201から取得したコンテンツは、認証・鍵共有部406によりサーバー101、201との間で共有した交換鍵を用いて暗号化されている。コンテンツ復号部404は、サーバー101、201から取得した暗号化コンテンツをこの暗号鍵を用いて復号化する。そして、コンテンツ再生出力部405は、復号したコンテンツを再生出力する。コンテンツ再生出力部405は、動画像などのコンテンツを表示する表示部を備えている。
認証・鍵共有部406は、コンテンツの要求先となるサーバー101、201との間で、DTCP−IPが規定する認証及び鍵交換(AKE)アルゴリズムに従って、相互認証と、コンテンツ暗号化のための暗号鍵の共有を行なう。認証・鍵共有部406は、外部ネットワークからリモート・アクセスによりコンテンツを要求するサーバー201との間では、リモート・アクセス用交換鍵KRを共有する。また、認証・鍵共有部406は、ホーム・ネットワーク210に接続している間に、サーバー201に対してリモート・アクセスのための登録を事前に行なう。本実施形態では、端末202がサーバー201に登録を行なう際に、リモート・アクセス時に許容されるコンテンツの再生可能時間が付与される点に特徴があるが、この点の詳細については後述に譲る。
上記の機能ブロック402〜406は、通信・制御部401において、オペレーティング・システムやTCP/IPプロトコルの上位で実行するアプリケーション・プログラムとして実現することもできる。この種のアプリケーション・プログラムは、インターネットなどの広域ネットワーク上で所定のダウンロード・サイトで配信することができ、スマートフォンなど、ホーム・サーバー内のコンテンツを再生する多機能端末にダウンロードして利用に供される。
このようなダウンロード・サイトは、例えば、コンピューター・プログラムを記憶する記憶装置2711と、コンピューター・プログラムのダウンロード要求を受信したことに応じてそのダウンロードを認める通信装置2712とを備えたサーバー2710からなり(図26を参照のこと)、ダウンロードしたコンピューター・プログラムをインストールするクライアント装置(DTCP_Source又はDTCP_Sink)と併せてコンピューター・プログラム配信システム2700を構成する。この種のサーバーは、クライアントからのコンピューター・プログラムのダウンロード要求に対して、コンピューター・プログラムの名称を示す情報を通知する情報通知装置2713をさらに備えている。情報通知装置2713は、コンピューター・プログラムの名称とともに、例えば、家庭内に記録した商用コンテンツを遠隔地で閲覧することが認められるアプリケーションであることを示す情報を通知する。
図2に示したコンテンツ伝送システム200の利用形態として、携帯電話や多機能携帯端末のような端末202が、遠隔地から外部ネットワーク220及びルーター230経由で自宅内のサーバー201に接続して、サーバー201のコンテンツ記録部302に記録されたコンテンツ(例えば、録画した放送コンテンツ)を視聴することが考えられる。このような利用形態は、ユーザーにとってはどこでもコンテンツを視聴できるというメリットがある反面、コンテンツ提供業者にとっては、コンテンツが遠隔地でも永続的に視聴されるというデメリットがある。
例えば、放送事業者にとっては、放送対象地域外の居住者によって放送コンテンツが永続的に視聴されることになる。これによって、地方局の放送ビジネスに悪影響を及ぼすことや、コンテンツ調達契約でカバーされない場所でコンテンツが視聴されることが懸念される。
そこで、本明細書で開示する技術では、リモート・アクセス時に許容されるコンテンツの再生可能時間を端末202に付与し、サーバー201は再生可能時間の範囲内でのみ端末202にコンテンツを提供することにより、遠隔地からのコンテンツの利用が永続できないようにしている。
サーバー201は、例えば、端末202をリモート・アクセスのために登録を行なう際に再生可能時間の付与を併せて行なう。勿論、サーバー201は、別の方法で、又は別の時期に、端末202への再生可能時間の付与を行なうようにしてもよい。
そして、サーバー201は、端末202にコンテンツのストリーム伝送を行なう際、伝送したコンテンツの再生時間だけ再生可能時間を減らし、残りの再生可能時間がゼロになったらそれ以上の伝送ができないようにする。また、サーバー201は、端末202にコンテンツの移動(MOVE)を行なう際、そのコンテンツの長さ(duration)を再生可能時間から差し引き、残りの再生可能時間がゼロになったらそれ以上伝送できないようにする。伝送できないようにする方法として、残りの再生可能時間がゼロであることを確認する方法の他に、端末202の登録を抹消する方法も挙げられる。
このように、サーバー201が再生可能時間に応じて端末202へのコンテンツの提供を制限することによって、リモート・アクセスする端末202でコンテンツを永続的に視聴することを防止することができる。放送対象地域に居住するユーザーは、旅行や出張の間、与えられた再生可能時間だけはコンテンツを視聴することができる。これと同時に、放送対象外地域に居住するユーザーが永続的にコンテンツを視聴することを防止できる。
サーバー201への端末202の登録は、ホーム・ネットワーク210内でのみ可能とし、遠隔地からは行なえないようにする。例えば、DTCP規格のRemote Sink Registration処理を行なう。
また、端末202は、再生可能時間がゼロになる前にサーバー201に再登録を行なうことにより、再生可能時間を初期値に戻すことができるものとする。
なお、サーバー201は、再生可能時間の残りを端末202に通知するようにしてもよい。例えば、コンテンツ伝送を行なう際のHTTP(Hyper Text Transfer Protocol)メッセージのヘッダー・フィールドなどに再生可能時間の情報を格納するようにしてもよい(後述)。
B.登録手続き
図5には、リモート・アクセスを行なうSinkデバイスを、再生可能時間とともに、Sourceデバイスに登録する手順(Remote Sink Registration処理)を図解している。同図中、Sinkデバイスは端末202に相当し、Sourceデバイスはサーバー201に相当するものと理解されたい。登録手続きは、ホーム・ネットワーク210内でのみとし、遠隔地からは行なえないものとする。
まず、SourceデバイスとSinkデバイス間で、RTT(Round Trip Time)の制限下で、AKE手続きが実施される(SEQ501)。例えば、SourceデバイスとSinkデバイスがホーム・ネットワーク210内にあれば、RTTの制限をクリアして、AKE手続きが成功裏に終了する。RTT−AKE手続き自体は、本明細書で開示する技術の要旨に直接関連しないので、ここでは詳細な説明を省略する。
そして、RTT−AKE手続きに成功裏に終了すると、Sinkデバイスは、コマンドRA_REGISTER.CMDを用いて、自分のSink−IDをSourceデバイスに送信する(SEQ502)。
ここで、Sinkデバイスは、Sink−IDとして、自分に固有のDevice ID、又は、IDuを送信する(SinkデバイスがCommon Device KeyとCommon Device Certificateを実装することで、Device IDがSinkの特定情報とならない場合には、IDuがSink−IDとして用いられる)。
これに対し、Sourceデバイスは、RA_REGISTER.CMDで受け取ったSink−IDが、直前に完了したRTT-AKE手続で受信したDevice ID又はIDuと一致し、remote sink registryにまだ記憶しておらず、且つ、remote sink registryが満杯でないかどうかをチェックする。そして、これらの条件をクリアし、Sink−IDをremote sink registryに追加記憶するときには、Sourceデバイスは、RA_REGISTER.RSPをSinkデバイスに返す(SEQ503)。
上記の手続きSEQ501〜503は、基本的には、DTCPの仕様書、例えばDTCP Volume 1 Supplement E Mapping DTCP to IP,Revision 1.4ed1(Informational Version)のV1SE.10.7.1節の記載に従って実施される。
そして、Sourceデバイスは、再生可能時間をペアにしたSinkデバイスの登録を実行する(SEQ504)。
図6には、手続きSEQ504において、SourceデバイスがSink−IDと再生可能時間をペアにしたSinkデバイスの登録を行なうための処理手順をフローチャートの形式で示している。
Sourceデバイスは、RA_REGISTER.CMDで登録を要求してきたSinkデバイスのSink−IDが、(端末管理部307で管理している)remote sink registryに既に記憶されたかどうかをチェックする(ステップS601)。
Sinkデバイスから受け取ったSink−IDが記憶されている場合は(ステップS601のYes)、Sourceデバイスは、そのSinkデバイスの再生可能時間を初期値にセットして(ステップS602)、本処理ルーチンを終了する。なお、Sink−IDが今回の登録処理以前に登録されていた場合には、本処理で再生可能時間が初期値にリセットされる。
一方、登録を要求するSinkデバイスのSink−IDがremote sink registryに記憶されていないときには(ステップS601のNo)、Sourceデバイスは、何もせずに本処理を終了する。
図7には、Sink−IDと再生可能時間をペアにして格納したremote sink registryの登録内容を例示している。図示の例では、参照番号701で示すように、Sink−IDが0x800000e924のSinkデバイスの再生可能時間43200分と、参照番号702で示すように、Sink−IDが0x80000100afのSinkデバイスの再生可能時間1500分を登録している。
但し、図7に示したような端末毎の再生可能時間の情報の管理を、ホーム・ネットワーク210内のサーバー201で個別に行なうのではなく、クラウド上などに置かれた管理用サーバーで一元的に行なうようにしてもよい。
C.再生可能時間に基づくリモート・アクセスの制限
上述したように、サーバー201は、端末202を登録する際に、リモート・アクセス時に許容されるコンテンツの再生可能時間を付与し、Sink−IDとペアにして管理する。そして、サーバー201は、端末202にコンテンツのストリーム伝送を行なう際、伝送したコンテンツの再生時間だけ再生可能時間を減らし、残りの再生可能時間がゼロになったらそれ以上の伝送ができないようにする。また、サーバー201は、端末202にコンテンツの移動(MOVE)を行なう際、そのコンテンツの長さ(duration)を再生可能時間から差し引き、残りの再生可能時間がゼロになったらそれ以上伝送できないようにする。また、伝送できないようにする方法として、端末202の登録を抹消(remote sink registryから削除)することも挙げられる。
このように、サーバー201が再生可能時間により端末202へのコンテンツの提供を制限することによって、リモート・アクセスする端末202でコンテンツを永続的に視聴するのを防止することができる。放送対象地域に居住するユーザーは、旅行や出張の間、与えられた再生可能時間だけはコンテンツを視聴することができる。これと同時に、放送対象外地域に居住するユーザーが永続的にその放送コンテンツを視聴することを防止できる。
図8には、上記の登録を行なった後のSourceデバイスとSinkデバイス間でリモート・アクセスによるコンテンツ伝送を行なう手順を模式的に示している。同図中、Sinkデバイスは端末202に相当し、Sourceデバイスはサーバー201に相当するものと理解されたい。
図示のコンテンツ伝送は、Sinkデバイスが伝送を要求するコンテンツを指定するコンテンツ・リスト閲覧フェーズ(SEQ801)と、SourceデバイスとSinkデバイス間で相互認証及び鍵交換手順を実施してリモート・アクセス用交換鍵KRを共有するRA−AKE手続きフェーズ(SEQ802)と、コンテンツ・リスト閲覧フェーズで指定されたコンテンツを、リモート・アクセス用交換鍵KRを用いて暗号化伝送するコンテンツ伝送フェーズ(SEQ803)からなる。
図9には、コンテンツ・リスト閲覧フェーズ(SEQ801)の中身を模式的に示している。同図中、Sinkデバイスは端末202に相当し、Sourceデバイスはサーバー201に相当するものと理解されたい。
Sinkデバイスからは、コンテンツ・リスト閲覧部402から、コンテンツ・リストの閲覧要求が発行される(SEQ901)。
コンテンツ・リストの閲覧には、DLNAのベースとなるUPnPで策定されているCDS(Content Directory Service)機能を適用することができる。この場合、SEQ901では、SinkデバイスからCDS:Browseアクションが発行される。そして、Sourceデバイスは、コンテンツのリストとコンテンツの詳細情報を階層化して配信する。
コンテンツ・リストの閲覧要求には、Sinkデバイスを特定するSink−IDが含められる。CDS:BrowseリクエストでSink−IDを送る手段としては、新たにヘッダー・フィールド(例えば、SinkID.dtcp.com)を設け、そのパラメーターとしてHTTPのヘッダー部分で送ることが考えられる。Sourceデバイス側では、リクエストに含まれているSink−IDに基づいて、そのSinkデバイスの再生可能時間をチェックすることができる。
Sourceデバイス側では、CDS:Browseアクションが発行されたことに応答して、コンテンツ・リスト提供部305は、コンテンツ提供部304で提供可能なコンテンツに関する取得可能なすべてのコンテンツ情報を取得して(SEQ902)、十分な情報量のCDS情報を生成する(SEQ903)。コンテンツ提供部304で提供可能なコンテンツは、例えば、コンテンツ取得部303で取得可能な放送コンテンツや商用コンテンツ、あるいは、自身のストレージであるコンテンツ記録部302に既に記録されているコンテンツなどである。そして、Sourceデバイスは、Sinkデバイスに対してCDS Resultとして返す(SEQ904)。
なお、Sourceデバイスは、要求元のSinkデバイスの現在の再生可能時間では足りない長さ(duration)のコンテンツをコンテンツのリストから外すようにしてもよい。また、Sourceデバイスは、コンテンツのリストを提供する際に、要求元のSinkデバイスの現在の再生可能時間の情報、又は、コンテンツを取得後の再生可能時間の情報を通知するようにしてもよい。
Sinkデバイス側では、コンテンツ・リスト閲覧部402が、受信したCDS Resultを解析して、コンテンツのタイトル並びにより詳細情報を含むコンテンツ情報を表示する(SEQ905)。
Sinkデバイスのユーザーは、表示されているコンテンツ・リストの中から、再生したいコンテンツを選択することができる。そして、コンテンツが選択されると、SourceデバイスからSinkデバイスへのコンテンツの伝送が開始されるが、コンテンツ伝送に先駆けて、SinkデバイスとSourceデバイス間で、リモート・アクセス用の相互認証及び鍵交換すなわちRA−AKE処理が実施される。
図10には、RA−AKE手続きフェーズ(SEQ802)の中身の詳細を示している。同図中、Sinkデバイスは端末202に相当し、Sourceデバイスはサーバー201に相当するものと理解されたい。図示の手順は、基本的には、DTCPの仕様書(前述)のV1SE.10.7.2節に記載事項に従うものとする。
Sinkデバイスは、リモート・アクセス用交換KR(Remote Exchange Key)用のビットが設定された交換鍵フィールドを含んだCHALLENGEコマンドを送信して、Sourceデバイスに対してAKE処理を要求する(SEQ1001)。そして、SourceデバイスとSinkデバイス間で、認証手続きのうちチャレンジ・レスポンス部分が実行される(SEQ1002〜1004)。
但し、CHALLENGEコマンドのKR用のビットが設定されていないときには、SourceデバイスはRA−AKE手続きを中止し、RA−AKE以外のAKE手続きを引き続き行なうことができる。
Sourceデバイスは、チャレンジ・レスポンス手続きでSinkデバイスから、Device ID又はIDuをSink−IDとして受け取ることができる(SEQ1005)。
ここで、Sourceデバイスは、remote sink resistryのメンテナンス、すなわち、再生可能時間がゼロになったSink−IDをremote sink resistryから抹消する処理を実施する(SEQ1006)。再生可能時間がゼロになったSink−IDをremote sink resistryから抹消することで、放送対象地域外の居住者によって放送コンテンツが永続的に視聴されることを防止する。remote sink resistryのメンテナンス処理が実施された後は、再生可能時間が残っているエントリーのみが残っているものとする。remote sink resistryのメンテナンス処理の詳細については、後述に譲る。
なお、このメンテナンス処理は、新たなSinkをremote sink registryに登録できる領域を生む効果がある。但し、後述の処理に示す通り、この処理を行なわなくても再生可能時間がゼロのSinkデバイスに対するコンテンツ送信は防げるため、敢えて登録を維持したい場合などにこの処理を行なわないことも考えられる。そして、メンテナンス処理を行なわない場合は、図示を省略するが、RA−AKE手続きを行なっているSinkデバイスの再生可能時間をチェックし、ゼロの場合はAKE_CANCELコマンドを送信して、RA−AKE手続きを中止する。一方、ゼロでない場合は下記の処理を行なう。
次いで、Sourceデバイスは、受け取ったSink−IDが自身の端末管理部307内で管理しているremote sink registryに登録されているかどうかをチェックする(SEQ1007)。
Sink−IDがremote sink registryにリストされていない場合には(SEQ1007のNo)、Sourceデバイスは、SinkデバイスにAKE_CANCELコマンドを送信して(SEQ1015)、RA−AKE手続きを中止する(SEQ1016)。
一方、Sink−IDがremote sink registryに既に登録されている場合には(SEQ1007のYes)、Sourceデバイスは、このSink−IDに該当するRAC record(後述)が既に存在するかどうかを判別するために、RAC registry内をチェックする(SEQ1008)。
Sink−IDに該当するRAC recordが存在する場合には(SEQ1008のYes)、Sourceデバイスは、そのRAC recordに格納されているリモート・アクセス用交換鍵KR及びその交換鍵ラベルKR_labelを使うことに決定する。あるいは、Sourceデバイスは、リモート・アクセス用交換鍵KRを用いてコンテンツの伝送を行なっていないのであれば、RAC record内を参照し、格納されているKR及びKR_labelの値を更新するようにしてもよい(SEQ1014)。
Sink−IDはremote sink registryに登録済みであるが、該当するRAC recordが存在しない場合には(SEQ1008のNo)、Sourceデバイスは、RAC recordをカウントするカウント値RACCがRACCmax未満であるかどうかをチェックする(SEQ1009)。ここで、RACCmaxは、リモート・アクセス・コネクションをカウントするカウンターであり、リモート・アクセス・コネクションが存在しないときにゼロに初期化される。
RACCがそのRACCmax未満でないときには(SEQ1009のNo)、Sourceデバイスは、SinkデバイスにAKE_CANCELコマンドを送信して(SEQ1015)、RA−AKE手続きを中止する(SEQ1016)。
RACCがRACCmax未満であれば(SEQ1009のYes)、Sourceデバイスは、RACCの値を1だけインクリメントした後(SEQ1010)、所定の演算規則に従って、リモート・アクセス用交換鍵KR及びその交換鍵ラベルKR_labelを生成して(SEQ1011)、これらをSinkデバイスのSink−IDと対応付けて、RAC registry内のRAC recordに格納する(SEQ1012)。サーバー201は、例えば端末管理部307内でRAC recordを管理する。
図11には、Sinkデバイスに対して生成したリモート・アクセス用交換鍵KR及びその交換鍵ラベルKR_labelをSink−IDと対応付けてRAC recordとして記憶する様子を示している。図示の例では、Sink−IDが0x800000e924のSinkデバイスに対して、リモート・アクセス用交換鍵0x7f4130de0a6100e257cf68db及びその交換鍵ラベル0xe9が割り当てられている。
Sourceデバイスは、既存のRAC recordから取り出したリモート・アクセス用交換鍵KR及びその交換鍵ラベルKR_label(更新した場合を含む)、又は、新たに生成したリモート・アクセス用交換鍵KR及びその交換鍵ラベルKR_labelを、Sinkデバイスに送信する(SEQ1017)。
SourceデバイスがRA_MANAGEMENT機能をサポートしている場合には、リモート・アクセス用交換KRを維持するためのKR用生存タイマーを開始させ、少なくとも1分間KRを保持する(SEQ1013)。
図12には、remote sink registryのメンテナンス処理の手順をフローチャートの形式で示している。以下では、便宜上、Sourceデバイスとしてのサーバー201内でメンテナンス処理を行なうものとして説明する。このメンテナンス処理は、例えばサーバー201内の認証・鍵共有部306が、RA−AKE手続きフェーズの中で実施する。
Sourceデバイスは、端末管理部307内で管理しているremote sink registry中で、再生可能時間を未確認のSinkデバイスに関して(ステップS1201のNo)、そのSink−IDとペアにして記憶されている再生可能時間を参照し(ステップS1202)、再生可能時間がゼロになっているかどうかをチェックする(ステップS1203)。そして、Sourceデバイスは、再生可能時間がゼロになっているSink−IDのエントリーを(ステップS1203のYes)、remote sink registryから削除する(ステップS1204)。
次いで、Sourceデバイスは、remote sink registry内に登録されているすべてのSinkのエントリーについてステップS1202〜S1204の処理を終了するまで(ステップS1201のYes)、繰り返し実行する。
図12に示したremote sink registryのメンテナンス処理は、各サーバー201が個別に実施する(言い換えれば、サーバー201が設置されたホーム・ネットワーク210単位で実施する)のではなく、クラウド上の管理サーバーなどで各家庭のサーバー201のremote sink registryを一元的に集中管理するようにしてもよい。
また、図12に示したようなremote sink registryのメンテナンス処理を、RA−AKE手続き時に逐次行なうのではなく、サーバー201又はクラウド上の管理サーバーなどが、(RA−AKE手続きを実施するか否かに拘わらず)定期的に行なうようにしてもよい。
また、図12では、1回のメンテナンス処理でremote sink registry内のすべてのエントリーについて再生可能時間の確認処理を実行するようになっているが、RA−AKE手続きの対象となっているSink−IDに対応するエントリーについてのみ再生可能時間の確認処理を行なうだけでもよい。
図13には、リモート・アクセス用交換鍵KRを用いて暗号化伝送するコンテンツ伝送フェーズ(SEQ803)の中身を模式的に示している。同図中、Sinkデバイスは端末202に相当し、Sourceデバイスはサーバー201に相当するものと理解されたい。図示のシーケンスには、再生可能時間に基づくコンテンツ出力管理の処理と、コンテンツ出力制御及び再生可能時間の管理の処理が含まれている。
Sinkデバイスは、RA−AKE手続により取得したリモート・アクセス用交換鍵KR及びその交換鍵ラベルKR_labelを取得した後に、例えば、HTTP GETメソッドを用いたHTTPリクエスト(HTTP GET request)により、Sourceデバイスに対して、コンテンツの伝送を要求する(SEQ1301)。この要求の際には、コンテンツのURL(Uniform Resource Locator)とともに、リモート・アクセス用交換鍵KRのIDであるラベルKR_labelを送る。ここで、SinkデバイスからSourceデバイスに交換鍵のID(KR_label)を送るためのヘッダー・フィールドを定義する。
Sourceデバイスは、Sinkデバイスからコンテンツの伝送要求を受けると、再生可能時間に基づくコンテンツ出力管理の処理を実行する(SEQ1302)。
Sourceデバイスは、RA−AKE手続きにおいて、リモート・アクセス用交換鍵KR及びその交換鍵ラベルKR_labelをSinkデバイスに送る際に、これらをSink−IDと対応付けてRAC recordとして記憶している(前述並びに図11を参照のこと)。したがって、Sourceデバイスは、コンテンツ要求に含まれる交換鍵ラベルKR_labelに該当するRAC Recordから、要求元SinkデバイスのSink−IDを調べることができる。
また、Sourceデバイスは、Sinkデバイスの登録時、すなわち、Sink−IDをremote sink registryに登録する際に、再生可能時間(初期値)をSink−IDとペアにして記憶している(前述並びに図7を参照のこと)。そして、Sourceデバイスは、Sinkデバイスがコンテンツを利用する度に、remote sink registry内の再生可能時間を更新している(後述)。したがって、RAC Recordから得たSink−IDに基づいて、そのSinkデバイスの現在の再生可能時間を調べることができる。
そして、Sourceデバイスは、要求元Sinkデバイスの再生可能時間が残っていれば、Sinkデバイスからのコンテンツ要求を許可するが、再生可能時間がゼロになっていれば、Sinkデバイスからのコンテンツ要求を許可しない。
Sourceデバイスは、Sinkデバイスからのコンテンツ要求を許可する場合には、交換鍵ラベルKR_labelで指定されたリモート・アクセス用交換鍵KRをRAC recordから取り出すと、これ用いてコンテンツを暗号化して、HTTPレスポンス(HTTP GET response)としてSinkデバイスに伝送する(SEQ1303)。
また、Sourceデバイスは、Sinkデバイスへのコンテンツの暗号化伝送を開始すると、続いて、再生可能時間に基づくコンテンツ出力制御と、そのSinkデバイスの再生可能時間の管理の処理を実行する(SEQ1304)。
SouorceデバイスがSinkデバイスにコンテンツを提供する形態として、ストリーミング伝送とコンテンツの移動(MOVE)を挙げることができる。ストリーミング伝送とコンテンツの移動(MOVE)のいずれを行なうかになって、SEQ1302で実行するコンテンツ出力管理と、SEQ1304で実行するコンテンツ出力制御及び再生可能時間管理の処理手順は相違する。
図14には、ストリーミング時においてSEQ1302で実施するコンテンツ出力管理処理の手順をフローチャートの形式で示している。以下では、便宜上、Sourceデバイスとしてのサーバー201が、例えばコンテンツ提供部304がコンテンツ出力管理処理を行なうものとして説明する。
Sourceデバイスは、コンテンツ要求(HTTP GET request)に含まれる交換鍵ラベルKR_labelを参照し(ステップS1401)、同じ交換鍵ラベルKR_labelのRAC recordが端末管理部307内に存在するかどうかをチェックする(ステップS1402)。
ここで、同じ交換鍵ラベルKR_labelのRAC recordが存在しない場合には(ステップS1402のNo)、要求元のSinkデバイスがRA−AKE手続きを行なっていないなどの原因により、不正なコンテンツ要求である。そこで、Sourceデバイスは、後続の処理をすべてスキップして、本処理ルーチンを終了する。
一方、同じ交換鍵ラベルKR_labelのRAC recordが存在する場合には(ステップS1402のYes)、Sourceデバイスは、そのRA recordから、交換鍵ラベルKR_labelに対応するSink−IDを取得する(ステップS1403)。
次いで、Sourceデバイスは、端末管理部307内のremote sink registryから、Sink−IDとペアにして記憶されている再生可能時間を取得する(ステップS1404)。但し、各Sink−IDの再生可能時間を例えばクラウド上の管理サーバーに委ねている場合には、Sourceデバイスは、通信・制御部301を介して管理サーバーにアクセスして、該当する再生可能時間の情報を取得する。
また、Sourceデバイスは、タイマーをゼロに設定する(ステップS1405)。
そして、Sourceデバイスは、コンテンツ要求元のSinkデバイスの再生可能時間がゼロより大きいかどうかをチェックする(ステップS1406)。
再生可能時間がゼロでないときには(ステップS1406のYes)、Sourceデバイスは、Sinkデバイスからのコンテンツ要求を許可する。すなわち、Sourceデバイスは、タイマーの計時を開始し(ステップS1407)、要求されたコンテンツの送信を例えばHTTP GET responseで行なう(ステップS1408)。
一方、再生可能時間がゼロのときには(ステップS1406のNo)、Sourceデバイスは、Sinkデバイスからのコンテンツ要求を許可せず、後続の処理をスキップして、本処理ルーチンを終了する。
また、図15には、ストリーミング時においてSEQ1304で実施するコンテンツ出力制御及び再生可能時間管理処理の手順をフローチャートの形式で示している。以下では、便宜上、Sourceデバイスとしてのサーバー201内で、例えばコンテンツ提供部304がコンテンツ出力制御及び再生可能時間管理処理を行なうものとして説明する。
Sourceデバイスは、計時しているタイマーの値がコンテンツ伝送先のSinkデバイスの再生可能時間未満であるかどうかをチェックする(ステップS1501)。
ここで、タイマーの値が再生可能時間未満であれば(ステップS1501のYes)、コンテンツの伝送を終了又は停止するまでの間(ステップS1502のNo)、ステップS1501に戻り、Sourceデバイスは、タイマーの値のチェックを継続する。
そして、コンテンツの伝送を終了又は停止すると(ステップS1502のYes)、Sourceデバイスは、タイマーの計時を停止し(ステップS1503)、コンテンツ伝送先のSinkデバイスの再生可能時間からタイマーの値を引いて(ステップS1504)、本処理ルーチンを終了する。
また、タイマーの値が再生可能時間以上となったときには(ステップS1501のNo)、Sourceデバイスは、コンテンツ伝送先のSinkデバイスへのコンテンツの伝送を停止する(ステップS1505)。そして、サーバー201は、remote sink registryで管理している、そのSinkデバイスの再生可能時間をゼロにして(ステップS1506)、本処理ルーチンを終了する。
図16には、ストリーミング時においてSEQ1302で実施するコンテンツ出力管理処理の変形例を示している。また、図17には、図16に対応した、ストリーミング時においてSEQ1304で実施するコンテンツ出力制御及び再生可能時間管理処理の手順を示している。図16並びに図17は、Sourceデバイス側での処理負荷を軽減することを意図した処理手順である。
まず、図16を参照しながら、ストリーミング時においてSEQ1302で実施するコンテンツ出力管理処理について説明する。
Sourceデバイスは、コンテンツ要求(HTTP GET request)に含まれる交換鍵ラベルKR_labelを参照し(ステップS1601)、同じ交換鍵ラベルKR_labelのRAC recordが端末管理部307内に存在するかどうかをチェックする(ステップS1602)。
ここで、同じ交換鍵ラベルKR_labelのRAC recordが存在しない場合には(ステップS1602のNo)、要求元のSinkデバイスがRA−AKE手続きを行なっていないなどの原因により、不正なコンテンツ要求である。そこで、Sourceデバイスは、後続の処理をすべてスキップして、本処理ルーチンを終了する。
一方、同じ交換鍵ラベルKR_labelのRAC recordが存在する場合には(ステップS1602のYes)、Sourceデバイスは、そのRA recordから、交換鍵ラベルKR_labelに対応するSink−IDを取得する(ステップS1603)。
次いで、Sourceデバイスは、端末管理部307内のremote sink registryから、Sink−IDとペアにして記憶されている再生可能時間を取得する(ステップS1604)。但し、各Sink−IDの再生可能時間を例えばクラウド上の管理サーバーに委ねている場合には、Sourceデバイスは、通信・制御部301を介して管理サーバーにアクセスして、該当する再生可能時間の情報を取得する。
また、Sourceデバイスは、タイマーをゼロに設定する(ステップS1605)。
そして、Sourceデバイスは、コンテンツ移動先のSinkデバイスの再生可能時間が、移動を要求しているコンテンツの長さ(duration)以上かどうかをチェックする(ステップS1606)。
コンテンツ移動先のSinkデバイスの再生可能時間がコンテンツの長さ(duration)以上である場合には(ステップS1606のYes)、Sourceデバイスは、Sinkデバイスからのコンテンツ要求を許可する。この場合、Sourceデバイスは、コンテンツ移動先のSinkデバイスの再生可能時間からコンテンツの長さ(duration)を引いた後(ステップS1607)、タイマーの計時を開始し(ステップS1608)、要求されたコンテンツの送信を例えばHTTP GET responseで行なう(ステップS1609)。なお、後述(図22を参照のこと)のように、再生可能時間をSinkデバイスに通知する場合は、上記のコンテンツの長さを引く前の再生可能時間を渡すものとする。
一方、再生可能時間がコンテンツの長さ(duration)より小さい場合には(ステップS1606のNo)、Sourceデバイスは、Sinkデバイスからのコンテンツ要求を許可せず、後続の処理をスキップして、本処理ルーチンを終了する。
続いて、図17を参照しながら、Soourceデバイスの処理負荷を軽減した、ストリーミング時においてSEQ1304で実施するコンテンツ出力制御及び再生可能時間管理処理について説明する。
Sourceデバイスは、コンテンツの伝送を終了又は停止するとき(ステップS1701のYes)、タイマーの計時を停止する(ステップS1702)。
そして、Sourceデバイスは、タイマーの値がコンテンツの長さ(duration)より小さいかどうかをチェックする(ステップS1703)。
ここで、タイマーの値がコンテンツの長さ(duration)よりも小さければ(ステップS1703のYes)、Sourceデバイスは、コンテンツ移動先のSinkデバイスの再生可能時間に(duration−タイマー値)を足して(ステップS1704)、本処理ルーチンを終了する。
また、タイマーの値がコンテンツの長さ(duration)以上の場合には(ステップS1703のNo)、Sourceデバイスは、コンテンツ移動先のSinkデバイスの再生可能時間を更新することなく、本処理ルーチンを終了する。
図16並びに図17に示した処理手順に従えば、コンテンツ伝送中に再生残り時間のチェックが不要になる。したがって、Sourceデバイスは、現在の処理を変更しなければならない箇所が減り、伝送中の定期的な処理乃至割り込み処理が不要になることから、処理負荷が軽減される。
図18には、コンテンツ移動(MOVE)時においてSEQ1302で実施するコンテンツ出力管理処理の手順をフローチャートの形式で示している。以下では、便宜上、Sourceデバイスとしてのサーバー201内で、例えばコンテンツ提供部304がコンテンツ出力管理処理を行なうものとして説明する。
Sourceデバイスは、コンテンツ要求(HTTP GET request)に含まれる交換鍵ラベルKR_labelを参照し(ステップS1801)、同じ交換鍵ラベルKR_labelのRAC recordが端末管理部307内に存在するかどうかをチェックする(ステップS1802)。
ここで、同じ交換鍵ラベルKR_labelのRAC recordが存在しない場合には(ステップS1802のNo)、要求元のSinkデバイスがRA−AKE手続きを行なっていないなどの原因により、不正なコンテンツ要求である。そこで、Sourceデバイスは、後続の処理をすべてスキップして、本処理ルーチンを終了する。このとき、Sourceデバイスは、コンテンツ要求元のSinkデバイスに、例えばHTTP Status Code 406などのエラー応答を返送するようにしてもよい(ステップS1808)。
一方、同じ交換鍵ラベルKR_labelのRAC recordが存在する場合には(ステップS1802のYes)、Sourceデバイスは、そのRA recordから、交換鍵ラベルKR_labelに対応するSink−IDを取得する(ステップS1803)。
次いで、Sourceデバイスは、端末管理部307内のremote sink registryから、Sink−IDとペアにして記憶されている再生可能時間を取得する(ステップS1804)。但し、各Sink−IDの再生可能時間を例えばクラウド上の管理サーバーに委ねている場合には、Sourceデバイスは、通信・制御部301を介して管理サーバーにアクセスして、該当する再生可能時間の情報を取得する。
また、Sourceデバイスは、Sinkデバイスから要求されたコンテンツの長さ(duration)を取得する(ステップS1805)。例えば、CDS中のres@durationなどを参照して、コンテンツの長さ(duration)を取得することができる。
そして、Sourceデバイスは、コンテンツを要求するSinkデバイスの再生可能時間が、要求されたコンテンツの長さ(duration)以上かどうかをチェックする(ステップS1806)。
再生可能時間がコンテンツの長さ(duration)以上のときには(ステップS1806のYes)、Sourceデバイスは、Sinkデバイスからのコンテンツ要求を許可し、そのコンテンツの伝送を開始する(ステップS1807)。要求されたコンテンツの送信を例えばHTTP GET responseで行なう。
また、再生可能時間がコンテンツの長さ(duration)を下回るときには(ステップS1806のNo)、Sourceデバイスは、Sinkデバイスからのコンテンツ要求を許可せず、後続の処理をスキップして、本処理ルーチンを終了する。このとき、Sourceデバイスは、コンテンツ要求元のSinkデバイスに、例えばHTTP Status Code 406などのエラー応答を返送するようにしてもよい(ステップS1808)。
また、図19には、コンテンツ移動(MOVE)時においてSEQ1304で実施するコンテンツ出力制御及び再生可能時間管理処理の手順をフローチャートの形式で示している。以下では、便宜上、Sourceデバイスとしてのサーバー201内で、例えばコンテンツ提供部304がコンテンツ出力制御及び再生可能時間管理処理を行なうものとして説明する。
Sourceデバイスは、コンテンツの移動が中止されず(ステップS1901のNo)、且つ、コンテンツの移動が成功裏に終了すると(ステップS1902)、コンテンツ伝送先のSinkデバイスの再生可能時間から、移動したコンテンツの長さ(duration)を引いて(ステップS1903)、本処理ルーチンを終了する。
また、コンテンツの移動が成功しなかったときには(ステップ1702のNo)、ステップS1901に戻り、Sourceデバイスは、コンテンツの移動を中止するかどうかを再度チェックする。
また、コンテンツの移動を中止するときには(ステップS1901のYes)、Sourceデバイスは、コンテンツ伝送先のSinkデバイスの再生可能時間からコンテンツの長さ(duration)を引くことなく、本処理ルーチンを終了する。
図14〜図19に示した処理手順は、コンテンツ伝送フェーズにおいてSourceデバイスがSinkデバイスの残りの再生可能時間に基づいてコンテンツの提供を制限して、遠隔地からのコンテンツの利用が永続できないようにしている。
これに対し、コンテンツ伝送フェーズに先行するコンテンツ・リスト閲覧フェーズ(図8を参照のこと)において、Sourceデバイスが、Sinkデバイスの残りの再生可能時間に基づいて、閲覧を許可するコンテンツ情報を制限するという変形例も考えられる。
例えば、Sinkデバイスは、CDSを要求する際に、自分のSink−IDをHTTP request中のヘッダー・フィールド(例えば、DTCPID.ARIB.OR.JP)で含める。Sourceデバイスは、Sink−IDに基づいて、要求元のSinkデバイスの再生可能時間を取得すると、再生可能時間がゼロのSinkデバイスにはCDSを渡さない、あるいは再生可能時間よりも長いdurationのコンテンツを提供可能なものとして通知しない、といった制限をする。Sinkデバイス側では、(Sourceデバイスは提供可能であるが)自分には提供されないコンテンツの情報への閲覧が制限されることにより、そのコンテンツの要求が抑制される。
図20には、コンテンツ・リスト閲覧フェーズ(SEQ801)において、Sourceデバイスが、リモート・アクセスするSinkデバイスに対して、Sinkデバイスの再生可能時間に基づいてCDS情報の提供を制限するための処理手順をフローチャートの形式で示している。
まず、Sourceデバイスは、提供可能なコンテンツ情報をクリアする(ステップS2001)。次いで、Sourceデバイスは、要求元のSinkデバイスのSink−IDに対応する再生可能時間を、remote sink registryから取得する(ステップS2002)。
ここで、Sourceデバイスは、要求元のSinkデバイスの再生可能時間がゼロより大きいかどうかをチェックする(ステップS2003)。再生可能時間がゼロのときには(ステップS2003のNo)、Sourceデバイスは、Sinkデバイスからのコンテンツ情報の要求を許可せず、後続の処理ステップS2004〜S2008をスキップして、本処理ルーチンを終了する。
一方、要求元のSinkデバイスの再生可能時間がゼロより大きいときには(ステップS2003のYes)、すべてのコンテンツ情報を処理するまで(ステップS2004のNo)、コンテンツ情報の作成を行なう。すなわち、Sourceデバイスは、未処理のコンテンツのコンテンツ情報を参照すると(ステップS2005)、そのコンテンツの長さ(duration)をCDS中のres@durationなどから取得する(ステップS2006)。
そして、Sourceデバイスは、そのコンテンツの長さ(duration)と、要求元のSinkデバイスの再生可能時間と大小比較する(ステップS2007)。
そのコンテンツの長さ(duration)がSinkデバイスの再生可能時間以下のときには(ステップS2007のYes)、Sourceデバイスは、このコンテンツ情報を提供可能なコンテンツ情報に追加する(ステップS2008)。そして、ステップS2004に戻り、すべてのコンテンツ情報を処理したかどうかをチェックする。
一方、そのコンテンツの長さ(duration)がSinkデバイスの再生可能時間を超えているときには(ステップS2007のNo)、ステップS2004に戻り、Sourceデバイスはすべてのコンテンツ情報を処理したかどうかをチェックする。但し、ストリーミング時に、図13のコンテンツ出力制御及び再生可能時間管理の処理を図15の処理で行なう場合は、コンテンツの長さ(duration)がSinkデバイスの再生可能時間を超えているときにコンテンツ移動を不可にして、このコンテンツ情報を提供可能なコンテンツ情報に追加することも考えられる。例えば、DLNA Guidelines Part4では、res@protocolInfo中のDTCP.COM_FLAGS paramのbit31のset/resetがコンテンツの移動可能/不可を表すようになっている。
そして、すべてのコンテンツ情報の処理が終了したときには(ステップS2004のYes)、Sourceデバイスは、完成したコンテンツ情報を、要求元のSinkデバイスに送信する(ステップS2009)。
このように、長さ(duration)が再生可能時間以下となるコンテンツだけに制限して、Sinkデバイスにコンテンツ情報を提供することによっても、遠隔地からのコンテンツの利用が永続できないようにすることができる。
D.再生可能時間の通知
本実施形態では、サーバー201は、再登録してきた端末202の再生可能時間を初期値にリセットして、旅行や出張の間にコンテンツを視聴したいユーザーの便宜を図るようにしている。
また、コンテンツ伝送中に、サーバー201は、再生可能時間の残りを端末202に通知するようにしてもよい。端末202側では、受信したコンテンツの再生中に再生可能時間を表示することで、ユーザーが気付かないうちにコンテンツを再生できなくなるということを防止するとともに、サーバー201への再登録を促すことができる。
例えば、サーバー201は、図21に示すように、コンテンツ伝送を行なう際のHTTP(Hyper Text Transfer Protocol)メッセージのヘッダー・フィールドなどに再生可能時間の情報を格納することができる。同図中、Sinkデバイスは端末202に相当し、Sourceデバイスはサーバー201に相当するものと理解されたい。
Sinkデバイスは、HTTP GETメソッドを用いたHTTPリクエスト(HTTP GET request)により、Sourceデバイスに対して、コンテンツの伝送を要求する(SEQ2201)。この要求の際には、コンテンツのURL(Uniform Resource Locator)とともに、リモート・アクセス用交換鍵KRのIDであるラベルKR_labelを送る。ここで、SinkデバイスからSourceデバイスに交換鍵のID(KR_label)を送るためのヘッダー・フィールドを定義する。
これに対し、Sourceデバイスは、このコンテンツ要求に含まれる交換鍵ラベルKR_labelに該当するRAC Recordから、要求元SinkデバイスのSink−IDを特定する。そして、Sink−IDとペアにしてremote sink registryに登録されている再生可能時間の現在値を取得すると、これをHTTPレスポンス(HTTP GET response)のヘッダー・フィールドRSRREmainTime.ARIB.OR.JPに含めてSinkデバイスに伝送する(SEQ2202)。図示の例では、再生可能時間1234分が記載されている。
図22には、Sinkデバイスが、Sourceデバイスから通知された再生可能時間を表示するための処理手順をフローチャートの形式で示している。
まず、Sinkデバイスは、再生対象コンテンツの長さ(duration)を変数Dに格納する(ステップS2301)。コンテンツの長さ(duration)は、例えばCDS中のres@durationを参照することによって取得することができる。
次いで、Sinkデバイスは、HTTP GET responseのヘッダー・フィールドに記載されている再生可能時間を変数Rに格納する(ステップS2302)。
そして、Sinkデバイスは、Dの値とRの値を大小比較する(ステップS2303)。ここで、Dの方がRよりも大きいときには(ステップS2303のYes)、Sinkデバイスの残りの再生可能時間よりもコンテンツの長さ(duration)の方が長く、コンテンツを最後まで再生できないことになる。そこで、Sinkデバイスは、再生対象のコンテンツを最後まで再生できないという警告を、例えばコンテンツ再生出力部405の表示部(前述)に表示する(ステップS2304)。
次いで、Sinkデバイスは、タイマー2をゼロから計時開始すると(ステップS2305)、コンテンツの受信している間に(ステップS2307のNo)、Rからタイマー2の値を引いた値を現時点の再生可能時間として、例えばコンテンツ再生出力部405の表示部(前述)に表示し続ける(ステップS2306)。なお、図13のコンテンツ出力制御及び再生可能時間管理を図16及び図17の処理で行なう場合は、タイマー2の値がRより大きくなる場合があり得るが、その場合、再生可能時間はゼロと表示するものとする。
このように、本実施形態に係るコンテンツ伝送システムによれば、コンテンツ送信装置すなわちSourceデバイスは、コンテンツ受信装置すなわちSinkデバイスがリモート・アクセスによりコンテンツを受信する際の再生可能時間を制限することで、遠隔地からのコンテンツの利用が永続できないようにすることができる。また、コンテンツ受信装置において、残りの再生可能時間を通知することによって、ユーザーが知らないうちにコンテンツを再生できなくなるということを防ぐことができる。
E.コンテンツ送信装置の具体例
サーバー201若しくはDTCPのSourceデバイスとして動作するコンテンツ送信装置の具体例は、セットトップボックスやレコーダー、テレビジョン受信機、パーソナル・コンピューター、ネットワーク・アクセス・サーバー(NAS)などである。
図23には、サーバー201若しくはDTCPのSourceデバイスとして動作することが可能なパーソナル・コンピューター2400の構成例を示している。パーソナル・コンピューター2400はリモート・アクセス機能(前述)にも対応しているものとする。図示のパーソナル・コンピューター2400は、CPU(Central Processing Unit)2401、RAM(Random Access Memory)2402、EEPROM(Electrically Erasable and Programmable ROM)2403、ディスプレイ2404、スピーカー2405、例えばHDD(Hard Disc Drive)やSDD(Super Density Disc)などの大容量情報記憶装置2406、I/Oインターフェース2407などの回路コンポーネントを備え、これらの回路コンポーネントがバス2408を介して相互接続されている。
CPU2401は、メイン・メモリーとしてのRAM2402にロードされたプログラムを読み出して実行する。
RAM2402には、コンテンツの暗号及び復号に関する機能がロードされる。例えば、DTCP−IP機能を実行するためのプログラム、及び、RA−AKE処理を実行するためのプログラムがRAM2402にロードされる。また、SinkデバイスのSink−IDを再生可能時間とペアにして登録する際の認証シーケンス(図6を参照のこと)を実行するためのプログラムは、RA−AKE処理を実行するためのプログラムの一部として、このRAM2402にロードされ、CPU2401が実行する。
EEPROM2403は、書き換えが可能な不揮発性記憶装置であり、設定情報などが記憶される。パーソナル・コンピューター2400がSourceデバイスすなわちコンテンツ送信装置として動作する場合、SinkデバイスのSink−IDが再生可能時間とペアにしてEEPROM2403に記憶される。
パーソナル・コンピューター2400上では、Sinkデバイスから、リモート・アクセスが可能な端末として登録するよう要求を受けると、CPU2401が、RAM2402からDTCP−IPのAKE処理が記述されたプログラムを読み出し、Sinkデバイスとの間でAKE手続きを実行する。
この手続きに成功すると、CPU2401は、RAM2402に記憶されたプログラムに従って、Sinkデバイスに再生可能時間(初期値)を付与し、Sink−IDとペアにしてEEPROM2403に記憶する。
その後、パーソナル・コンピューター2400上では、CPU2401が、RA−AKE処理の要求を受けた場合に、この要求を行なっているSinkデバイスのSink−IDと、EEPROM83に記憶されたSink−IDと比較し、RA−AKE処理を完了させるか否かを決定する処理を実行する。
そして、RA−AKE処理が完了すると、パーソナル・コンピューター2400と、RA−AKE処理の要求を行なったSinkデバイスとの間で共通するコンテンツ鍵が生成される。パーソナル・コンピューター2400側では、生成されたコンテンツ鍵を一時的に記憶し、大容量情報記憶装置2406からコンテンツを読み出したときに、このコンテンツを一時的に記憶されたコンテンツ鍵で暗号化する。暗号化されたコンテンツは、I/Oインターフェース2408を経て、外部に出力される。I/Oインターフェース2408が無線LAN機能を有している場合、無線LANを介して、RA−AKE処理の要求を行なったSinkデバイスに対し、暗号化コンテンツが送信される。
図24には、サーバー201若しくはDTCPのSourceデバイスとして動作することが可能なレコーダー2500の構成例を示している。レコーダー2500はリモート・アクセス機能(前述)にも対応しているものとする。図示のレコーダー2500は、システム・チップ2501、大容量記憶装置2502、RAM2503、EEPROM2504、無線LANチップ2505又はLANポート2509のうち少なくとも一方、チューナー2506、ディスプレイ2507、スピーカー2508を備えている。
システム・チップ2501は、CPU2501a、コプロセッサー2501b、インターフェース機能部2501cなどの回路モジュールを備え、これらの回路モジュールは、当該チップ内のバス2501dで相互接続されている。
CPU2501aは、インターフェース機能部2501cを介して接続された記憶装置に記憶されたプログラムを実行することが可能である。
コプロセッサー2501bは、補助演算装置であり、主に動画像の圧縮又は復号処理を実行する。例えば、H264、VC1、MPEG2、JPEGなどのアルゴリズムを実行する。また、コプロセッサー2501bは、(大容量記憶装置2502に記憶された)動画像コンテンツをSinkデバイスなどのコンテンツ受信装置に伝送する際には、通信速度などの通信環境に応じて画像のサイズを変換して、通信環境に最適なサイズで送信できるようにする処理、すなわちコーデックのトランスコーディングを行なう。コーデックのトランスコードにより、Sinkデバイスなどのコンテンツ伝送先での再生の遅れを軽減することができる。但し、コーデックのトランスコーディングは、コプロセッサー2501bのような専用ハードウェアではなく、CPU2501aで行なうようにすることもできる。また、コンテンツのトランスコーディングを行なう圧縮率は、ユーザーがコンテンツ毎に指定することも可能である。
大容量記憶装置2502は、例えばHDDやSDDなどであるが、Sinkデバイス若しくはコンテンツ受信装置に提供するコンテンツを記憶する。
チューナー2506は、地上ディジタル放送などの放送信号を選局受信する。本実施形態では、例えばEPG(Electronic Program Guide)などの機能に従って、番組を録画又は録画予約して、放送コンテンツを大容量記憶装置2502に記憶する。
チューナー2506で受信する放送番組や、大容量記憶装置2502に記憶したコンテンツは、ディスプレイ2507並びに2508を使って視聴することも可能である。
無線LANチップ2505は、例えばWi−Fi(Wireless Fidelity)若しくはIEEE802.11などの無線LAN規格における物理層並びにMAC(Media Access Control)層の処理を行ない、所定のアクセスポイント経由で、あるいはSinkデバイスとしてのコンテンツ受信装置と直接無線接続する。また、LANポート2509は、差し込まれたLANケーブル2509Aを介してEthernet(登録商標)などの有線LAN(図示しない)に接続されるとともに、例えばIEEE802.3などの有線LAN規格における物理層並びにMAC層の処理を行ない、Sinkデバイスとしてのコンテンツ受信装置と通信する。
メイン・メモリーとしてのRAM2503には、CPU2501aで実行されるプログラムがロードされる。RAM2503にロードされる主なプログラムは、コンテンツの暗号及び復号に関する機能を実現するプログラムであり、例えば、DTCP−IP機能を実行するためのプログラム、及び、RA−AKE処理を実行するためのプログラムがRAM2503にロードされる。
EEPROM2504は、書き換えが可能な不揮発性記憶装置であり、設定情報などが記憶される。レコーダー2500がSourceデバイスすなわちコンテンツ送信装置として動作する場合、SinkデバイスのSink−IDが再生可能時間とペアにしてEEPROM2504に記憶される。
レコーダー2500上では、Sinkデバイスから、リモート・アクセスが可能な端末として登録するよう要求を受けると、CPU2501aが、RAM2503からDTCP−IPのAKE処理が記述されたプログラムを読み出し、Sinkデバイスとの間でAKE手続きを実行する。
この手続きに成功すると、CPU2501aは、RAM2503に記憶されたプログラムに従ってSinkデバイスに再生可能時間(初期値)を付与し、Sink−IDとペアにしてEEPROM2504に記憶する。
その後、レコーダー2500上では、CPU2501aが、RA−AKE処理の要求を受けた場合に、この要求を行なっているSinkデバイスのSink−IDと、EEPROM2504に記憶されたSinkデバイスのSinkIDを比較し、RA−AKE処理を完了させるか否かを決定する処理を実行する。
そして、RA−AKE処理が完了すると、レコーダー2500と、RA−AKE処理の要求を行なったSinkデバイスとの間で共通するコンテンツ鍵が生成される。レコーダー2500側では、生成されたコンテンツ鍵を一時的に記憶し、大容量情報記憶装置2502からコンテンツを読み出したときに、このコンテンツを一時的に記憶されたコンテンツ鍵で暗号化する。暗号化されたコンテンツは、インターフェース機能部2501c及び無線LANチップ2505を経て、RA−AKE処理の要求を行なった端末に対し、暗号化コンテンツが送信される。
図25には、サーバー201若しくはDTCPのSourceデバイスとして動作することが可能なネットワーク・アクセス・サーバー(NAS)2600の構成例を示している。
ネットワーク・アクセス・サーバー2600は、大容量記憶装置を備え、ホーム・ネットワーク110、210内に設置されて、大容量記憶装置内の情報をIPプロトコルに従って伝送する。例えば、レコーダー2500で録画した放送コンテンツをネットワーク・アクセス・サーバー2600にダビングしたり、ネットワーク・アクセス・サーバー2600内に記憶したコンテンツをパーソナル・コンピューター2400やスマートフォンなどのSinkデバイスに伝送して視聴したりすることができる。また、ネットワーク・アクセス・サーバー2600は、ネットワーク・アクセス・サーバー2600はリモート・アクセス機能(前述)にも対応しているものとする。
図示のネットワーク・アクセス・サーバー2600は、システム・チップ2601、大容量記憶装置2602、RAM2603、EEPROM2604、無線LANチップ2605又はLANポート2606のうち少なくとも一方を備えている。
システム・チップ2601は、CPU2601a、コプロセッサー2601b、インターフェース機能部2601cなどの回路モジュールを備え、これらの回路モジュールは、当該チップ内のバス2601dで相互接続されている。
CPU2601aは、インターフェース機能部2601cを介して接続された記憶装置に記憶されたプログラムを実行することが可能である。
コプロセッサー2601bは、補助演算装置であり、主に動画像の圧縮又は復号処理を実行する。例えば、H264、VC1、MPEG2、JPEGなどのアルゴリズムを実行する。また、コプロセッサー2601bは、(大容量記憶装置2602に記憶された)動画像コンテンツをSinkデバイスなどのコンテンツ受信装置に伝送する際には、通信速度などの通信環境に応じて画像のサイズを変換して、通信環境に最適なサイズで送信できるようにする処理、すなわちコーデックのトランスコーディングを行なう。コーデックのトランスコードにより、Sinkデバイスなどのコンテンツ伝送先での再生の遅れを軽減することができる。但し、コーデックのトランスコーディングは、コプロセッサー2601bのような専用ハードウェアではなく、CPU2601aで行なうようにすることもできる。また、コンテンツのトランスコーディングを行なう圧縮率は、ユーザーがコンテンツ毎に指定することも可能である。
大容量記憶装置2602は、例えばHDDやSDDなどであるが、Sinkデバイス若しくはコンテンツ受信装置に提供するコンテンツを記憶する。例えば、レコーダー2500で録画した放送コンテンツを、(無線LANチップ2605経由で受信して)大容量記憶装置2602にダビングすることもできる。
無線LANチップ2605は、例えばWi−Fi(Wireless Fidelity)若しくはIEEE802.11などの無線LAN規格における物理層並びにMAC(Media Access Control)層の処理を行ない、所定のアクセスポイント経由で、あるいはSinkデバイスとしてのコンテンツ受信装置と直接無線接続する。また、LANポート2606は、差し込まれたLANケーブル2606Aを介してEthernet(登録商標)などの有線LAN(図示しない)に接続されるとともに、例えばIEEE802.3などの有線LAN規格における物理層並びにMAC層の処理を行ない、Sinkデバイスとしてのコンテンツ受信装置と通信する。
メイン・メモリーとしてのRAM2603には、CPU2601aで実行されるプログラムがロードされる。RAM2603にロードされる主なプログラムは、コンテンツの暗号及び復号に関する機能を実現するプログラムであり、例えば、DTCP−IP機能を実行するためのプログラム、及び、RA−AKE処理を実行するためのプログラムがRAM2603にロードされる。
EEPROM2604は、書き換えが可能な不揮発性記憶装置であり、設定情報などが記憶される。ネットワーク・アクセス・サーバー2600がSourceデバイスすなわちコンテンツ送信装置として動作する場合、SinkデバイスのSink−IDが再生可能時間とペアにしてEEPROM2604に記憶される。
ネットワーク・アクセス・サーバー2600上では、Sinkデバイスから、リモート・アクセスが可能な端末として登録するよう要求を受けると、CPU2601aが、RAM2603からDTCP−IPのAKE処理が記述されたプログラムを読み出し、Sinkデバイスとの間でAKE手続きを実行する。
この手続きに成功すると、CPU2601aは、RAM2603に記憶されたプログラムに従ってSinkデバイスに再生可能時間(初期値)を付与し、Sink−IDとペアにしてEEPROM2604に記憶する。
その後、ネットワーク・アクセス・サーバー2600上では、CPU2501aが、RA−AKE処理の要求を受けた場合に、この要求を行なっているSinkデバイスのSink−IDと、EEPROM2604に記憶されたSinkデバイスのSinkIDを比較し、RA−AKE処理を完了させるか否かを決定する処理を実行する。
そして、RA−AKE処理が終了すると、ネットワーク・アクセス・サーバー2600と、RA−AKE処理の要求を行なったSinkデバイスとの間で共通するコンテンツ鍵が生成される。ネットワーク・アクセス・サーバー2600側では、生成されたコンテンツ鍵を一時的に記憶し、大容量情報記憶装置2602からコンテンツを読み出したときに、このコンテンツを一時的に記憶されたコンテンツ鍵で暗号化する。暗号化されたコンテンツは、インターフェース機能部2601c及び無線LANチップ2605を経て、RA−AKE処理の要求を行なった端末に対し、暗号化コンテンツが送信される。