以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ配信システムに対して本発明を適用した場合の実施形態である。
[1.コンテンツ配信システムの構成等]
始めに、図1を参照して、情報配信システムとしてのコンテンツ配信システムの概要構成等について説明する。
図1は、本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
図1の下部枠101内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)4、DSL(Digital Subscriber Line)回線事業者(の装置)5、FTTH(Fiber To The Home)回線事業者(の装置)6、ルータ(図示せず)及び通信回線(例えば、電話回線や光ケーブル等)7等によって、インターネット等のネットワーク(現実世界のネットワーク)8が構築されている。
コンテンツ配信システムSは、このようなネットワーク8を介して相互に接続された複数のノード装置1a,1b,1c・・・1x,1y,1z・・・を備えて構成されることになり、ピアツーピア方式のネットワークシステムとなっている。各ノード装置1a,1b,1c・・・1x,1y,1z・・には、固有の製造番号及びIP(Internet Protocol)アドレスが割り当てられている。なお、製造番号及びIPアドレスは、複数のノード装置1間で重複しないものである。また、以下の説明において、ノード装置1a,1b,1c・・・1x,1y,1z・・・を総称して「ノード1」というものとする。
更に、コンテンツ配信システムSは、ライセンスサーバ2を備え、これはネットワーク8に接続されている。
そして、このコンテンツ配信システムSにおいては、特定のアルゴリズム、例えば、後述する分散ハッシュテーブル(以下、DHT(Distributed Hash Table)という)を利用したアルゴリズムによって、図1の上部枠100内に示すような、オーバーレイネットワーク9が構築されることになる。つまり、このオーバーレイネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するネットワークを意味する。
本実施形態においては、DHTを利用したアルゴリズムによって構築されたオーバーレイネットワーク9を前提としており、このオーバーレイネットワーク9上に配置されたノード1を、オーバーレイネットワーク9に参加しているノード1という。オーバーレイネットワーク9への参加は、未だ参加していないノード1が、既に参加している任意のノード1に対して参加要求を送ることによって行われる。
また、オーバーレイネットワーク9に参加している各ノード1は、ノードIDを有しており、当該ノードIDは、例えば、IPアドレスあるいは製造番号を共通のハッシュ関数(例えば、SHA−1等)によりハッシュ化した値(例えば、bit長は160bit)であり、一つのID空間に偏りなく分散して配置されることになる。このように共通のハッシュ関数により求められた(ハッシュ化された)ノードIDは、当該IPアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。なお、本実施形態では、IPアドレス(グローバルIPアドレス)を共通のハッシュ関数によりハッシュ化した値をノードIDとする。
また、オーバーレイネットワーク9に参加している各ノード1は、夫々、DHTを保持している。このDHTには、他のノード1への経路情報、すなわち、ノードID空間内で適度に離れた他のノード1のノードIDとそのIPアドレスが、複数登録されている。このようなDHTは、ノード1がオーバーレイネットワーク9に参加する際に与えられることになる。また、コンテンツ配信システムSにおいては、ノード1のオーバーレイネットワーク9への参加若しくは脱退が頻繁に行われるため、定期的に(例えば数十分から数時間間隔で)DHTの更新が必要かどうかが確認されると共に、その更新情報が他のノード1にDHTに登録されている経路を介して伝達されるようになっている。これにより、DHTを最新の状態に保つことが可能となる。なお、DHTの生成方法については公知であるので詳しい説明を省略する。
更に、オーバーレイネットワーク9に参加している何れか複数のノード1は、ライセンスサーバ2の公開鍵(いわゆる公開鍵暗号方式における公開鍵)を保持(所有)することになる。ノード1は、この公開鍵によって、例えば、ライセンスサーバ2において当該ライセンスサーバ2の秘密鍵(いわゆる公開鍵暗号方式における秘密鍵)で暗号化された電子データ(例えば、後述するライセンス証やライセンス認証権限委譲証のハッシュ値)を復号化することができる。ところで、ライセンスサーバ2の秘密鍵は、ライセンスサーバ2のみが保持(所有)しているため、当該秘密鍵で電子データを暗号化することは、ライセンスサーバ2が当該電子データに署名(電子署名)することを意味する。そして、ノード1が、ライセンスサーバ2により署名(秘密鍵で暗号化)された電子データを、ライセンスサーバ2の公開鍵で復号化することは、当該電子データの出所を検証することを意味する。
更にまた、オーバーレイネットワーク9に参加している何れか複数のノード1には、配信情報としてのコンテンツ(例えば、映画や音楽等)データが分散されて保存(格納)されている。例えば、ノード1aには、タイトルがXXXの映画のコンテンツデータが保存されており、一方、ノード1bには、タイトルがYYYの映画のコンテンツデータが保存されるというように、互いに異なるコンテンツデータが、複数のノード1に分散されて保存される。また、あるコンテンツデータは、1つのノード1に保存されているとは限らず、複数のノード1に同じコンテンツデータが保存されうる。これらのコンテンツデータには、夫々、コンテンツ名(タイトル)等が付与されている。
また、このように分散して保存される全てのコンテンツデータは、再生制限がなされ保護されている。
ここで、再生制限とは、そのままの状態では正常にコンテンツデータを再生できず、視聴者がコンテンツを視聴できないように制限されていることを意味しており、本実施形態においては、コンテンツデータを暗号化鍵により暗号化することにより再生制限を行なっている。そして、コンテンツデータの再生制限、つまり暗号化は、解除データとしての復号化鍵(以下、「コンテンツ保護キー」という)により解除され、これにより、視聴者がコンテンツを視聴できることになる。
本実施形態において、このようなコンテンツデータの暗号化は、ライセンスサーバ2によってなされ、暗号化されたコンテンツデータは、ライセンスサーバ2から適当なノード1に配信され、保存されることになる。
なお、以下の説明において、このように暗号化されたコンテンツデータを、保護済コンテンツデータと称するものとし、保護済コンテンツデータが保存されるノード1をレプリカノード(コンテンツホルダノード)と称するものとする。
そして、このように分散保存されている保護済コンテンツデータの所在を示す所在情報(例えば、保護済コンテンツデータが保存されているレプリカノードのIPアドレス)もまた、オーバーレイネットワーク9に参加している複数のノード1に分散して保存されている。例えば、あるコンテンツデータのコンテンツ名(或いは、当該コンテンツデータの先頭数バイトでも良い)が、上記ノードIDを得るときと共通のハッシュ関数によりハッシュ化され(つまり、ノード1のIPアドレスのハッシュ値と同一のID空間に配置)、そのハッシュ値(当該ハッシュ値がコンテンツIDとなる)と最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノード1(以下、「ルートノード」という)に、当該コンテンツデータの所在情報が保存されることになる。つまり、同一のコンテンツデータ(コンテンツIDが同一)が、夫々、複数のレプリカノードに保存されている場合であっても、かかるコンテンツデータの所在を示す所在情報(複数のレプリカノードのIPアドレス等)は、1つのルートノードで管理することができる(なお、本実施形態においては、1のルートノードでは、1のコンテンツIDに対応するコンテンツデータの所在情報が保存される(つまり、ルートノードと上記所在情報とは1対1の関係にある)が、これに限定されるものではない))。
そして、あるコンテンツデータを取得(ダウンロード)したいユーザが使用するノード(以下、これを「ユーザノード」という)は、当該コンテンツデータのコンテンツIDが付加されたクエリ(問合せ情報)を他のノード1に対して送出することにより、当該クエリは、DHTルーティングによっていくつかのノード1(以下、これを「中継ノード」という)を経由してそのコンテンツデータの所在を示す所在情報を保存しているルートノードに辿り着く。上記各中継ノードは、受信したクエリに付加されたコンテンツIDと、DHTに登録されているノードIDとを比較して、次に転送すべきノード1を特定(例えば、コンテンツIDの上位数桁が一致するノードIDに対応するノード1のIPアドレスを特定)し、そこにクエリを転送することになる。こうして、ユーザノードは、上記ルートノードから所在情報を取得(受信)して、その所在情報に基づいて上記コンテンツデータを保存しているレプリカノードに接続し、そこから当該コンテンツデータを取得(受信)することが可能になる。
なお、ユーザノードからルートノードに至るまでのDHTを用いたクエリの転送方法は、例えば「Pastry」等で公知であるので更なる詳しい説明を省略する。また、クエリがルートノードに辿り着くまでの間に当該ルートノードと同じ所在情報をキャッシュしているノード1から当該所在情報が取得(受信)されるように構成してもよい。
ところで、上述したように、保護済コンテンツデータを正常に再生するには、コンテンツ保護キーが必要となるが、本実施形態においては、当該コンテンツ保護キーの発行許可に関する認証処理を行うノード1(以下、「認証ノード」という)と、コンテンツ保護キーの発行処理を行うノード1(以下、「コンテンツ保護キー発行ノード」という)と、が保護済コンテンツデータ毎(つまり、コンテンツデータ(コンテンツID)が異なれば、認証ノードもコンテンツ保護キー発行ノードも異なる)に存在しており、コンテンツ保護キーの発行許可に関する認証処理が、夫々の保護済コンテンツデータに対応する認証ノードにおいて行われ(即ち、認証処理の分散)、コンテンツ保護キーの発行処理が、夫々の保護済コンテンツデータ(コンテンツID毎)に対応するコンテンツ保護キー発行ノードにおいて行われる(即ち、発行処理の分散)ようになっている。
なお、本実施形態においては、コンテンツデータ(保護済コンテンツデータ)のコンテンツ名(或いは、当該コンテンツデータの先頭数バイトでも良い)+接尾辞(例えば、コンテンツ配信システムS内で統一された特定文字列)が、上記ノードIDを得るときと共通のハッシュ関数によりハッシュ化され、そのハッシュ値(当該ハッシュ値が認証IDとなる)と最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノード1が、当該コンテンツデータに対応する認証ノードとなる。また、以下の説明においては、ルートノードが、コンテンツ保護キー発行ノードとして機能する場合を例にとるものとする。
ここで、図2を参照して、ユーザノードがコンテンツ保護キーを取得する場合における基本的な流れを説明する。
図2は、DHTのノードID空間において、ユーザノードがコンテンツ保護キーを取得する場合におけるDHTルーティングの一例を示す図である。
図2の例において、ユーザノード1aは、取得対象となる保護済コンテンツデータ(例えば、ユーザが視聴したいコンテンツに係るコンテンツデータ)のコンテンツ保護キーの取得権限を証する取得権限証データの一例としてのライセンス証(ライセンスサーバ2により署名されている)をライセンスサーバ2から購入し、当該ライセンス証の認証依頼を示す認証依頼情報であって、当該ライセンス証、認証ID、及びユーザノード1aのIPアドレス等が付加された認証依頼情報を他のノード1に対して送出する。
そして、送出された認証依頼情報は、認証IDをキーとするDHTルーティングによって中継ノード1b及び1cを経由して、保護済コンテンツデータに対応する認証ノード(つまり、当該コンテンツデータのコンテンツ名+接尾辞のハッシュ値(認証ID)と最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノード)1xに辿り着くことになる。なお、各中継ノードにおいては、認証依頼情報に付加された認証IDと、DHTに登録されているノードIDとを比較して、次に転送すべきノード1を特定し(例えば、認証IDの上位数桁が一致するノードIDに対応するノード1のIPアドレスを特定)、そこに認証依頼情報を転送することになる。
この認証依頼情報を受信した認証ノード1xは、それに付加されたライセンス証に基づき当該保護済コンテンツデータに対応するコンテンツ保護キーの発行許可に関する認証処理、つまり、ライセンス証の有効性の認証(有効性の検査)を行う。なお、詳しくは後に述べるが、この認証ノード1xは、ライセンスサーバ2からライセンス認証権限が与えられており(言い換えれば、ライセンスサーバ2からライセンス認証権限が委譲されており)、当該認証権限を証する認証権限証データの一例としてのライセンス認証権限委譲証(ライセンスサーバ2により署名されている)を有している。
そして、認証ノード1xは、認証処理において当該ライセンス証に有効性があると認証した場合には、当該保護済コンテンツデータに対応するコンテンツ保護キーの発行許可を示す保護キー発行許可情報であって、上記ライセンス認証権限委譲証、当該保護済コンテンツデータのコンテンツID及びユーザノード1aのIPアドレス等が付加された保護キー発行許可情報を、図2に示すように、他のノード1に対して送出する。
そして、送出された保護キー発行許可情報は、コンテンツIDをキーとするDHTルーティングによって中継ノード1d及び1eを経由して、当該保護済コンテンツデータに対応するコンテンツ保護キー発行ノードであるルートノード(つまり、当該コンテンツデータのコンテンツIDと最も近いノードIDを有するノード)1yに辿り着くことになる。
この保護キー発行許可情報を受信したルートノード1yは、認証ノード1xの認証権限を確認、つまり、保護キー発行許可情報に付加されたライセンス認証権限委譲証の有効性の認証(有効性の検査)を行い、当該ライセンス認証権限委譲証に有効性があると認証した場合には、当該保護済コンテンツデータの所在情報、及び当該保護済コンテンツデータに対応するコンテンツ保護キー等が付加された保護キー送信情報を、ユーザノード1aに送信することになる。こうして、ユーザノード1aは、受信した所在情報に基づいて当該保護済コンテンツデータを保存しているレプリカノード1zに接続し、そこから当該保護済コンテンツデータを取得し、上記受信したコンテンツ保護キーにより保護済コンテンツデータを復号して再生することになる。
[2.ノードの構成等]
次に、図3及び図4等を参照して、コンテンツ配信システムSにおけるノード1の構成及び機能について説明する。
図3は、ノード1の概要構成例を示す図であり、図4は、ICカードの概要構成例を示す図である。
各ノード1は、図3に示すように、演算機能を有するCPU,作業用RAM,各種データ及びプログラム(OS(オペレーティングシステム)及び各種アプリケーションを含む)を記憶するROM等から構成されたコンピュータとしての制御部11と、各種データ(例えば、保護済コンテンツデータ)、及びDHT等を記憶保存(格納)するためのHDD等から構成された記憶部12と、受信された保護済コンテンツデータを一時蓄積するバッファメモリ13と、保護済コンテンツデータを復号化するための復号化用アクセラレータ14と、復号化されたコンテンツデータに含まれるエンコード(データ圧縮等)されたビデオデータ(映像情報)及びオーディオデータ(音声情報)等をデコード(データ伸張等)するデコーダ部15と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部(ビデオチップを含む)16と、当該映像処理部16から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等の表示部17と、上記デコードされたオーディオデータをアナログオーディオ信号にD(Digital)/A(Analog)変換した後これをアンプにより増幅して出力する音声処理部18と、当該音声処理部18から出力されたオーディオ信号を音波として出力するスピーカ19と、ICカード25を挿入するICカードスロット20と、ネットワーク8を通じて他のノード1又はライセンスサーバ2との間の情報の通信制御を行うための通信部(ネットワークインターフェイス)21と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部11に対して与える入力部(例えば、キーボード、マウス、或いは、操作パネル、リモコン等)22と、を備えて構成され、制御部11、記憶部12、バッファメモリ13、復号化用アクセラレータ14、デコーダ部15、ICカードスロット20、通信部21、及び入力部22は、バス23を介して相互に接続されている。
そして、制御部11は、CPUがROM又は記憶部12等に記憶されたプログラムを読み出して実行することにより、ノード1全体を統括制御すると共に、ユーザからの入力部22を介した指示に従って、オーバーレイネットワーク9への参加要求処理を行い、上述したDHTを取得するようになっている。これにより、ノード1は、他のノード1との間でデータ(例えば、コンテンツデータ)の授受や、他のノード1へのコンテンツデータの転送等の基本的機能を有することになる。
そして、ノード1が、上述したユーザノード1a、認証ノード1x、及びルートノード1yとして機能するためには、耐タンパ性のある(つまり、非正規な手段による機密データの読み取りを防ぎ、簡単に解析できないようにタンパリング対策が施されている)ICカード25が必要であり、当該ICカード25は、例えば、ライセンスサーバ2の運営者等からユーザに配布される。
ICカード25は、図4に示すように、CPUからなるICカードコントローラ251、RAM252、ROM253、耐タンパ性のある不揮発性メモリ(例えば、EEPROM)254、及びインターフェイスドライブ255等を備えて構成され、これらの構成要素は、バス256を介して相互に接続されている。ROM253には、ノード1が機能するユーザノード1a、認証ノード1x、又はルートノード1yに応じたプログラムが記憶され、不揮発性メモリ254には、ノード1が機能するユーザノード1a、認証ノード1x、又はルートノード1yに応じたデータが記憶されるようになっている。
ノード1がユーザノード1aとして使用される場合、ROM253にはライセンス証購入処理プログラム及びDRM(Digital Rights Management)処理プログラム等が予め記憶され、不揮発性メモリ254には、ユーザ毎に固有のユーザID(例えば、ICカード25の配布時にユーザ登録順に連番で付与される)及びライセンスサーバ2の公開鍵及びIPアドレス等が予め記憶されることになる。また、この場合、不揮発性メモリ254には、ライセンス証、コンテンツ保護キー、及びライセンス認証権限委譲証等が記憶されることになる。
一方、ノード1が認証ノード1xとして使用される場合、ROM253にはライセンス認証処理プログラム等が予め記憶され、不揮発性メモリ254には、ライセンスサーバ2の公開鍵等が予め記憶されることになる。また、この場合、不揮発性メモリ254には、ライセンス認証権限委譲証(予め不揮発性メモリ254に記憶されるようにしても良い)、及び当該認証ノード1xの公開鍵及び秘密鍵(認証ノード1xにより公開鍵と秘密鍵がペアで作成される)等が記憶されることになる。
一方、ノード1がルートノード1yとして使用される場合、ROM253には保護キー生成・管理処理プログラム、保護キー発行処理プログラム、及びブラックリスト登録処理プログラム等が予め記憶され、不揮発性メモリ254には、ライセンスサーバ2の公開鍵及びIPアドレス等が予め記憶されることになる。また、この場合、不揮発性メモリ254には、コンテンツ保護キー管理テーブル(後述)、コンテンツ保護キー、コンテンツ保護キー発行先リスト、及びブラックリスト等が記憶されることになる。
ICカード25がノード1のICカードスロット20に挿入されると、ノード1の制御部11と、ICカード25のICカードコントローラ251とは、インターフェイスドライブ255等を介してデータ通信が可能になる。
そして、ノード1の制御部11が、ICカードコントローラ251を通じてROM253に記憶されたライセンス証購入処理プログラム又はDRM処理プログラム等を読み込みRAMに展開して実行することにより、ノード1はユーザノード(本発明の第1のノード装置)1aとして機能するようになる。
一方、ノード1の制御部11が、ICカードコントローラ251を通じてROM253に記憶されたライセンス認証処理プログラム等を読み込みRAMに展開して実行することにより、ノード1は認証ノード(本発明の第2のノード装置)1xとして機能するようになる。
一方、ノード1の制御部11が、ICカードコントローラ251を通じてROM253に記憶された保護キー生成・管理処理プログラム、保護キー発行処理プログラム、又はブラックリスト登録処理プログラム等を読み込みRAMに展開して実行することにより、ノード1はルートノード(本発明の第3のノード装置)1yとして機能するようになる。
なお、ユーザノード1a、認証ノード1x、及びルートノード1yにおける具体的な処理については後述する。
[3.ライセンスサーバの構成等]
次に、図5及び図6等を参照して、コンテンツ配信システムSにおけるライセンスサーバ2の構成及び機能について説明する。
図5は、ライセンスサーバ2の概要構成例を示す図であり、図6は、耐タンパセキュアボードの概要構成例を示す図である。
ライセンスサーバ2は、図5に示すように、演算機能を有するCPU,作業用RAM,各種データ及びプログラム(OS(オペレーティングシステム)及び各種アプリケーションを含む)を記憶するROM等から構成された制御部31と、各種データ(例えば、コンテンツデータ)等を記憶保存(格納)するためのHDD等から構成された記憶部32と、コンテンツデータを暗号化して保護済コンテンツデータを生成するための暗号化用アクセラレータ33と、コンテンツデータをエンコード(コーデック変換等)するエンコーダ部34と、耐タンパセキュアボード40を装着するボードスロット35と、ネットワーク8を通じてノード1との間の情報の通信制御を行うための通信部(ネットワークインターフェイス)36と、オペレータからの指示を受け付け当該指示に応じた指示信号を制御部31に対して与える入力部(例えば、キーボード、マウス等)37と、を備えて構成され、これらの構成要素は、バス38を介して相互に接続されている。
また、記憶部32には、保護済コンテンツ管理データベースと、認証権限委譲先管理データベースと、ライセンス証発行先管理データベースと、が構築されており、保護済コンテンツ管理データベースには、配信された保護済コンテンツデータに関する情報(例えば、コンテンツ名、当該コンテンツデータの有効期限(例えば、再生又は複製(コピー)可能な期限)、コンテンツデータの再生可能回数、及びコンテンツデータの複製(コピー)可能回数等)と当該保護済コンテンツデータを保存したレプリカノードに関する情報(例えば、レプリカノードのIPアドレス、認証ID等)が対応付けられて登録され、認証権限委譲先管理データベースには、発行されたライセンス認証権限委譲証と当該ライセンス認証権限委譲証が与えられた認証ノードに関する情報(例えば、認証ノードのIPアドレス、認証ID等)が対応付けられて登録され、ライセンス証発行先管理データベースには、発行されたライセンス証と当該ライセンス証が与えられたユーザノードに関する情報(例えば、ユーザノードのIPアドレス、ユーザID等)が対応付けられて登録される。
耐タンパセキュアボード40は、図6に示すように、CPUからなるボードコントローラ401、RAM402、ROM403、耐タンパ性のある不揮発性メモリ(例えば、EEPROM)404、及びインターフェイスドライブ405等を備えて構成され、これらの構成要素は、バス406を介して相互に接続されている。ROM403には、コンテンツデータ暗号化処理プログラム、認証権限委譲証発行処理プログラム、ライセンス証発行処理プログラム、及び保護キー発行先検査処理プログラム等が記憶され、不揮発性メモリ404には、当該ライセンスサーバ2の公開鍵及び秘密鍵(ライセンスサーバ2により公開鍵と秘密鍵がペアで作成される)等が記憶されるようになっている。
そして、耐タンパセキュアボード40がボードスロット35に装着されると、ライセンスサーバ2の制御部31と、耐タンパセキュアボード40のボードコントローラ401とは、インターフェイスドライブ405等を介してデータ通信が可能になり、ライセンスサーバ2の制御部31は、ボードコントローラ401を通じてROM403に記憶された上記各種プログラムを読み込みRAMに展開して実行するようになっている。
なお、ライセンスサーバ2における具体的な処理については後述する。
[4.コンテンツ配信システムの動作]
図7は、コンテンツ配信システムSにおける全体的な処理の流れの一例を示す図である。
以下、図7に示す流れに沿ってコンテンツ配信システムSの動作について説明する。
(4−1.コンテンツデータ暗号化及び保存)
先ず、図8等を参照して、コンテンツデータの暗号化及び保存の際における動作について説明する。
図8は、ライセンスサーバ2の制御部31におけるコンテンツデータ暗号化及び保存処理を示すフローチャートである。なお、この説明において、ライセンスサーバ2は、レプリカノード1zに保存すべきコンテンツデータを予め取得して保存しているものとする。
図8に示す処理は、コンテンツデータ暗号化処理プログラムがライセンスサーバ2の制御部31により実行されることにより行われ、ステップS1では、ライセンスサーバ2は、レプリカノード1zに保存すべきコンテンツデータを選定し(例えば、オペレータからの入力部37を介した暗号化指示により)、当該コンテンツデータのルートノード1yから、当該コンテンツデータに使用すべきコンテンツ保護キーを取得する。
例えば、ライセンスサーバ2は、コンテンツID(コンテンツ名のハッシュ値)及びライセンスサーバ2のIPアドレス等が付加された保護キー取得依頼情報(コンテンツ保護キーの取得(入手)依頼を示す情報)を、DHTルーティングによって上記ルートノード1yに対して送信する(つまり、ライセンスサーバ2は、当該保護キー取得依頼情報を他のノード1に対して送出し、送出された保護キー取得依頼情報は、DHTルーティングによって中継ノードを経由して、当該コンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有するルートノード1yに辿り着くことになる)。これに対して、ルートノード1yでは、当該コンテンツデータに使用されるべきコンテンツ保護キーを生成、又は既に生成して記憶しているコンテンツ保護キーを選択し、これをライセンスサーバ2に対して送信する。
次いで、ライセンスサーバ2の制御部31は、ルートノード1yから受信、取得したコンテンツ保護キー、及び暗号化用アクセラレータ33を用いて上記選定したコンテンツデータを暗号化して保護済コンテンツデータを生成する(ステップS2)。
次いで、ライセンスサーバ2の制御部31は、生成した保護済コンテンツデータを、任意に選定したレプリカノードに対して配信し(ステップS3)、保存させる。
次いで、ライセンスサーバ2の制御部31は、配信した保護済コンテンツデータに関する情報と、その保護済コンテンツデータを保存したレプリカノードに関する情報とを対応付けて保護済コンテンツ管理データベースに登録し(ステップS4)、当該処理を終了する。
(4−2.コンテンツ保護キー生成及び管理)
次に、ルートノード1yにおけるコンテンツ保護キーの生成及び管理の際の動作について説明する。
なお、コンテンツ保護キー生成及び管理処理は、保護キー生成・管理処理プログラムがルートノード1yの制御部11により実行されることにより行われる。
ルートノード1yの制御部11は、任意のタイミングで(例えば、一定周期で、或いは、保護キー取得依頼情報が受信されたとき)、コンテンツ保護キーを生成しており、生成したコンテンツ保護キーを、ICカード25における不揮発性メモリ254に記憶させると共に、当該コンテンツ保護キーを管理するための保護キー管理情報を、不揮発性メモリ254に記憶されたコンテンツ保護キー管理テーブルに登録させるようになっている。そして、ルートノード1yの制御部11は、ライセンスサーバ2が送信した保護キー取得依頼情報を受信すると、上記生成したコンテンツ保護キーを、ライセンスサーバ2のIPアドレスに従って当該ライセンスサーバ2に対して送信することになる。
図9は、コンテンツ保護キー管理テーブルに登録された保護キー管理情報の一例を示す図である。
図9に示すコンテンツ保護キー管理テーブルには、生成されたコンテンツ保護キーの管理番号(識別番号)、コンテンツ保護キーのポインタ、コンテンツ保護キーの生成時刻、コンテンツ保護キーの有効期限、及びレプリカのインデックス情報が登録されている。
コンテンツ保護キーのポインタは、不揮発性メモリ254内におけるコンテンツ保護キーの保存場所を示すポインタを意味しており、ルートノード1yの制御部11がこれを参照することによりコンテンツ保護キーの保存場所を認識することができる。
また、コンテンツ保護キーの有効期限は、当該コンテンツ保護キーにより保護済コンテンツデータを復号化することが可能な期限を意味する。コンテンツ保護キーには、この有効期限を示す情報が付加されており、この有効期限が過ぎると、当該コンテンツ保護キーはその機能を失うようになっている。
また、レプリカのインデックス情報は、当該コンテンツ保護キーにより暗号化された保護済コンテンツデータの所在情報、つまり、当該保護済コンテンツデータが保存されたレプリカノードのIPアドレスである。当該インデックス情報は、保護済コンテンツデータがレプリカノードに保存されることにより、ルートノード1yに送信される(例えば、ライセンスサーバ2又はレプリカノードにより)ことになる。なお、図9の例では、複数の同じコンテンツデータ(言い換えれば、複製された複数のコンテンツデータ(レプリカ)であるが、映像及び音声等の品質が異なる場合もある)が、異なる5つのレプリカノードに保存されていることが示されている。
また、上記有効期限が過ぎたコンテンツ保護キーは、当該ルートノード1y及びユーザノード1aから削除(消去)されることになり、削除されたコンテンツ保護キーを管理するための保護キー管理情報も、コンテンツ保護キー管理テーブルから削除されることになる。更に、削除されたコンテンツ保護キーにより暗号化された保護済コンテンツデータは、レプリカノードから削除されるとともに、暗号化前のコンテンツデータが、新たにルートノード1yにより生成されたコンテンツ保護キーによりライセンスサーバ2にて再暗号化され、再びレプリカノードに保存される。つまり、コンテンツ保護キー及び保護済コンテンツデータは定期的に更新されることになり、これによって、例えば、コンテンツ保護キーが第三者に漏洩した場合でも被害を軽減(低減)させることができる。
図10は、コンテンツ保護キーの更新の様子の一例を示す図である。
図10の例では、レプリカ(複製データ)であるコンテンツデータA〜L(つまり、複製データである)のうち、3つのコンテンツデータ(例えば、コンテンツデータA,B,C)ずつ同一のコンテンツ保護キーが割り当てられている。また、図10の例では、各コンテンツ保護キーの有効期限(有効期間)は一定期間ずつずれて(シフトして)おり、当該有効期限が過ぎるとコンテンツ保護キーは消去され、コンテンツデータは再暗号化され保存されることになる。このように、各コンテンツ保護キーの有効期限をずらしているのは、ネットワーク負荷を低減させるためである。つまり、コンテンツ保護キーの有効期限が過ぎると、新しく生成されたコンテンツ保護キーによってコンテンツデータを再暗号化する必要が生じるが、有効期限をシフトすることでライセンスサーバ2が、一度に多くのコンテンツデータを再暗号化してレプリカノードに再配信しなくて済むようにしている。
なお、図10に示す例では、1つのコンテンツ保護キーに対して、3つのコンテンツデータが割り当てられているが、実際の運用では、ルートノードにおいて保有するコンテンツ保護キーの種類数とコンテンツデータ(つまり、レプリカ)の総数のバランスが考慮され、1つのコンテンツ保護キーに割り当てられるべきコンテンツデータの数が最適になるように決定される。
(4−3.ライセンス認証権限委譲証発行)
次に、図11等を参照して、ライセンス認証権限委譲証の発行の際における動作について説明する。
図11は、ライセンスサーバ2の制御部31におけるライセンス認証権限委譲証発行処理を示すフローチャートである。
図11に示す処理は、認証権限委譲証発行処理プログラムがライセンスサーバ2の制御部31により実行されることにより行われ、ステップS11では、ライセンスサーバ2は、ある保護済コンテンツデータ(例えば、新たにレプリカノードに保存された保護済コンテンツデータ)のライセンス認証権限を委譲するべき認証ノード1xから当該認証ノード1xの公開鍵を取得する。
例えば、ライセンスサーバ2は、認証ID(当該コンテンツデータのコンテンツ名と接尾辞のハッシュ値)及びライセンスサーバ2のIPアドレス等が付加された認証権限依頼情報(認証権限を請け負う依頼を示す情報)を、DHTルーティングによって上記認証ノード1xに対して送信する(つまり、ライセンスサーバ2は、当該認証権限依頼情報を他のノード1に対して送出し、送出された認証権限依頼情報は、DHTルーティングによって中継ノードを経由して、当該認証IDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有する当該認証ノード1xに辿り着くことになる)。これに対して、認証ノード1xは、自己の公開鍵を、ライセンスサーバ2のIPアドレスに従って当該ライセンスサーバ2に対して送信することになる。
次いで、ライセンスサーバ2の制御部31は、認証ノード1xから受信、取得した当該認証ノード1xの公開鍵が含まれるライセンス認証権限委譲証を生成、これに署名データ(つまり、ライセンスサーバ2の秘密鍵でライセンス認証権限委譲証のハッシュ値を暗号化したもの)を付加して、当該ライセンス認証権限委譲証を発行する(ステップS12)。
次いで、ライセンスサーバ2の制御部31は、認証ID及び上記発行したライセンス認証権限委譲証を、DHTルーティングによって上記認証ノード1xに対して送信する(ステップS13)。これにより、認証ノード1xは、当該ライセンス認証権限委譲証を受信し、ICカード25における不揮発性メモリ254に記憶することになる。
次いで、ライセンスサーバ2の制御部31は、発行したライセンス認証権限委譲証と、当該ライセンス認証権限委譲証を与えた認証ノードに関する情報とを対応付けて認証権限委譲先管理データベースに登録し(ステップS14)、当該処理を終了する。
なお、ライセンス認証権限の委譲は、有効期限付きで行うように構成しても良く、この場合、ライセンスサーバ2は、当該ライセンス認証権限の有効期限を管理し、当該有効期限が過ぎた場合には、ライセンス認証権限委譲証を再発行して認証ノード1xに対して送信するように構成する。また、この場合、例えば上記ライセンス認証権限委譲証にはライセンス認証権限の有効期限が含まれるように構成する。
(4−4.ライセンス証発行)
次に、図12及び図13等を参照して、ライセンス証の発行の際における動作について説明する。
図12は、ユーザノード1aの制御部11におけるライセンス証購入処理を示すフローチャートであり、図13は、ライセンスサーバ2の制御部31におけるライセンス証発行処理を示すフローチャートである。
図12に示す処理は、例えばユーザからの入力部22を介したライセンス証購入指示に従って、ライセンス証購入処理プログラムがユーザノード1aの制御部11により実行されることにより行われ、ステップS21では、所定の契約フォーム(例えば、ライセンスサーバ2からダウンロードされる)への必要事項の入力処理(例えば、ユーザから入力部22を介して入力されたコンテンツデータのコンテンツ名等を当該契約フォームへ入力する)が行われる。
次いで、ユーザノード1aの制御部11は、必要事項が入力された契約フォームのデータを、ライセンスサーバ2のIPアドレスに従って当該ライセンスサーバ2に対して送信する(ステップS22)。
これに対して、ライセンスサーバ2では、制御部31がライセンス証発行処理プログラムを実行することにより図13に示す処理が行われ、当該制御部31が、ユーザノード1aから送信されてきた契約フォームのデータを受信すると(ステップS31)、当該契約フォームに従って、ライセンス証を生成し、これに署名データ(つまり、ライセンスサーバ2の秘密鍵でライセンス証のハッシュ値を暗号化したもの)を付加して、当該ライセンス証を発行する(ステップS32)。
図14は、ライセンス証に記述される内容の一例を示す概念図である。
図14の例では、ライセンス証には、ユーザID、コンテンツ名、有効期限、再生可能回数、及び複製可能回数が記述されている。ユーザIDは、ユーザを特定するための情報であり、ユーザを特定できるのであればユーザID以外の情報であっても良い。また、コンテンツ名、有効期限、再生可能回数、及び複製可能回数は、例えば、保護済コンテンツ管理データベースから取得される情報である。
そして、ライセンスサーバ2の制御部31は、上記発行したライセンス証を、ユーザノード1aのIPアドレスに従ってユーザノード1aに対して送信する(ステップS33)。
次いで、ライセンスサーバ2の制御部31は、発行したライセンス証と、当該ライセンス証を与えたユーザノードに関する情報とを対応付けてライセンス証発行先管理データベースに登録し(ステップS34)、当該処理を終了する。
一方、図12において、ユーザノード1aの制御部11は、ライセンスサーバ2から送信されてきたライセンス証を受信し(ステップS23)、これをICカード25における不揮発性メモリ254に記憶させて(ステップS24)、当該処理を終了する。
(4−5.ライセンス認証、コンテンツ保護キー発行)
次に、図15乃至図17等を参照して、ライセンス証の認証、コンテンツ保護キーの発行の際における動作について説明する。
図15は、ユーザノード1aの制御部11におけるDRM処理1(コンテンツ保護キー要求の際の処理)を示すフローチャートであり、図16は、認証ノード1xの制御部11におけるライセンス認証処理を示すフローチャートであり、図17は、ルートノード1yの制御部11における保護キー発行処理を示すフローチャートである。
図15に示す処理は、例えばユーザからの入力部22を介したコンテンツ保護キー取得(要求)指示に従って、DRM処理プログラムがユーザノード1a(コンテンツ保護キーを要求するノード)の制御部11により実行されることにより行われ、ステップS41では、当該制御部11が、取得対象となる保護済コンテンツデータに対応するコンテンツ保護キーの取得権限を証するライセンス証(上記ステップS24にて記憶されたライセンス証)をICカード25から取得し、取得権限証送信手段として、当該ライセンス証、認証ID、及びユーザノード1aのIPアドレス等が付加された認証依頼情報を、DHTルーティングによって上記認証ノード1xに対して(向けて)送信する(つまり、ライセンスサーバ2は、当該認証依頼情報を他のノード1に対して送出し、送出された認証依頼情報は、DHTルーティングによって中継ノードを経由して、当該認証IDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有する当該認証ノード1xに辿り着くことになる)。
これに対して、認証ノード1xでは、制御部11がライセンス認証処理プログラムを実行することにより図16に示す処理が行われ、当該制御部11が、取得権限証受信手段として、ユーザノード1aから送信された認証依頼情報を受信すると(ステップS51)、認証手段として、当該認証依頼情報に付加されたライセンス証の有効性の認証処理を行う。
具体的には、認証ノード1xの制御部11は、先ず、ライセンスサーバ2の公開鍵を用いて当該ライセンス証の署名が正しいか否かを判別(ステップS52)、つまり、ライセンスサーバ2の秘密鍵で暗号化された当該ライセンス証のハッシュ値(署名データ)をライセンスサーバ2の公開鍵で復号化し、自ノードで計算したハッシュ値と一致するか否かを調べる。そして、当該制御部11は、ライセンス証の署名が正しい(つまり、ハッシュ値が一致した)場合(ステップS52:Y)、当該復号化されたランセンス証に記述された内容に矛盾がないか否かを判別し(ステップS53)、矛盾がない場合(例えば、ライセンス証に、ユーザID、コンテンツ名、有効期限、再生可能回数、及び複製可能回数が正しく記述されており、有効期限、再生可能回数、及び複製可能回数が基準範囲内にある場合)には(ステップS53:Y)、ライセンス証の有効性があると判定し(ステップS54)、ステップS56に移行する。
一方、上記ステップS52でライセンス証の署名が正しくない(つまり、ハッシュ値が一致しない)場合(ステップS52:N)、或いは、上記ステップS53でランセンス証に記述された内容に矛盾がある場合(ステップS53:N)には、認証ノード1xの制御部11は、ライセンス証の有効性がないと判定し(ステップS57)、ステップS58に移行する。
ステップ56では、認証ノード1xの制御部11は、ライセンス証に記述されたコンテンツ名をハッシュ化してコンテンツIDを生成し、更に、ライセンス認証権限委譲証をICカード25から取得した後、発行許可情報送信手段として、ライセンス認証権限委譲証、コンテンツID、ユーザID、及びユーザノード1aのIPアドレス等が付加された保護キー発行許可情報を、DHTルーティングによってルートノード1yに対して(向けて)送信し(つまり、認証ノード1xは、当該保護キー発行許可情報を他のノード1に対して送出し、送出された保護キー発行許可情報は、DHTルーティングによって中継ノードを経由して、当該コンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有する当該ルートノード1yに辿り着くことになる)、当該処理を終了する。
一方、ステップS58では、認証ノード1xの制御部11は、ライセンス証が不正である(有効性がない)旨が記述されたライセンス証不正情報を、ユーザノード1aのIPアドレスに従って当該ユーザノード1aに対して送信し、当該処理を終了する。
そして、ルートノード1yでは、制御部11が保護キー発行処理プログラムを実行することにより図17に示す処理が行われ、当該制御部11が、発行許可情報受信手段として、認証ノード1xから送信された保護キー発行許可情報を受信すると(ステップS61)、認証手段として、当該保護キー発行許可情報に付加されたライセンス認証権限委譲証の有効性の認証処理を行う。
具体的には、ルートノード1yの制御部11は、先ず、ライセンスサーバ2の公開鍵を用いて当該ライセンス認証権限委譲証の署名が正しいか否かを判別(ステップS62)、つまり、ライセンスサーバ2の秘密鍵で暗号化された当該ライセンス認証権限委譲証のハッシュ値(署名データ)をライセンスサーバ2の公開鍵で復号化し、自ノードで計算したハッシュ値と一致するか否かを調べる。
そして、当該制御部11は、ライセンス認証権限委譲証の署名が正しい(つまり、ハッシュ値が一致した)場合(ステップS62:Y)、当該復号化されたライセンス認証権限委譲証に含まれる認証ノード1xの公開鍵を用いて、認証ノード1xが正しい認証ノードであるか否かを判別する(ステップS63)。
例えば、ルートノード1yの制御部11は、乱数値(オリジナルの乱数値)を生成し、これを認証ノード1xに対して送信する。これに対し、認証ノード1xは、当該乱数値を受信し、これを自己(認証ノード1x)の秘密鍵で暗号化し、当該暗号化された乱数値を、ルートノード1yに対して返信する。そして、ルートノード1y制御部11は、暗号化された乱数値を受信し、これを認証ノード1xの公開鍵で復号化し、上記オリジナルの乱数値と、複号化された乱数値が一致する場合には、認証ノード1xが正しい認証ノードであると判別する。
なお、ライセンス認証権限委譲証にライセンス認証権限の有効期限が含まれている場合、当該有効期限が過ぎているか否かも判別される。
正しい認証ノードであると判別された場合には(ステップS63:Y)、ルートノード1yの制御部11は、保護キー発行許可情報に付加されたユーザIDがブラックリストに登録されているか否かを判別し(ステップS64)、登録されていない場合には(ステップS64:N)、ライセンス認証権限委譲証の有効性があると判定し(ステップS65)、ステップS66に移行する。
一方、上記ステップS62でライセンス認証権限委譲証の署名が正しくない(つまり、ハッシュ値が一致しない)場合(ステップS62:N)、或いは、上記ステップS63で正しい認証ノードでない(又は、ライセンス認証権限の有効期限が過ぎている)場合(ステップS63:N)、或いは、ユーザIDがブラックリストに登録されている場合(ステップS64:Y)には、ルートノード1yの制御部11は、ライセンス認証権限委譲証の有効性がないと判定し(ステップS69)、ステップS70に移行する。
ステップS66では、ルートノード1yの制御部11は、解除データ発行手段として、コンテンツ保護キー管理テーブルにて管理されているコンテンツ保護キーを例えばランダムに一つICカード25から選定して発行する。
次いで、ルートノード1yの制御部11は、当該発行したコンテンツ保護キー、当該コンテンツ保護キーにより暗号化された保護済コンテンツデータの所在情報(例えば、レプリカノードのIPアドレス)が付加された保護キー送信情報を、解除データ送信手段として、ユーザノード1aのIPアドレスに従って当該ユーザノード1aに対して送信する(ステップS67)。
次いで、ルートノード1yの制御部11は、コンテンツ保護キーの発行先のユーザノード1aのユーザのユーザIDをコンテンツ保護キー発行先リストに登録し(ステップS68)、当該処理を終了する。
一方、ステップS70では、ルートノード1yの制御部11は、ライセンス認証権限委譲証の有効性がない(或いは、認証ノード1xが認証権限がない)等のため、コンテンツ保護キーを発行できない旨等が記述されたコンテンツ保護キー発行不可情報を、ユーザノード1aのIPアドレスに従って当該ユーザノード1aに対して送信し、当該処理を終了する。
そして、図15に示すように、ユーザノード1aの制御部11は、認証ノード1x又はルートノード1yから送信されてきた情報を受信(当該情報が保護キー送信情報である場合、解除データ受信手段として受信)し(ステップS42)、その情報が保護キー送信情報であるか否か、つまり、コンテンツ保護キーが発行されたか否かを判別する(ステップS43)。上記受信された情報が保護キー送信情報である場合には(ステップS43:Y)、ユーザノード1aの制御部11は、保護キー送信情報に付加されたコンテンツ保護キー、当該保護済コンテンツデータの所在情報をICカード25における不揮発性メモリ254に記憶させる(ステップS44)。そして、ユーザノード1aの制御部11は、上記保護済コンテンツデータの所在情報に従って、当該レプリカノードに対して保護済コンテンツデータの要求情報を送信し、配信情報取得手段として、これに対して当該レプリカノードから送信されてきた保護済コンテンツデータを受信(つまり、ダウンロードして取得)(ステップS45)し、記憶部12に記憶保存して、当該処理を終了する。
なお、上記ルートノード1yから取得された保護済コンテンツデータの所在情報中に、複数のレプリカノードのIPアドレスが記述されている(つまり、取得(購入)したコンテンツ保護キーにより複数のコンテンツデータ(レプリカ)が暗号化され、複数のレプリカノードに保存されている)場合、ユーザノード1aの制御部11は、例えばランダムに1つのレプリカノードのIPアドレスを選択するか、或いは、何れかのレプリカノードのIPアドレスをユーザに選択させ、選択された当該レプリカノードから保護済コンテンツデータを取得するように構成してもよい。
一方、上記受信された情報が保護キー送信情報でない場合(ステップS43:N)、つまり、上記受信された情報が、認証ノード1xから送信されたライセンス証不正情報、又はルートノード1yから送信されたコンテンツ保護キー発行不可情報である場合には、ライセンス証の認証に失敗した旨、又はコンテンツ保護キーの失敗した旨を示す情報を、例えば、表示部17に表示させたり、スピーカ19に音声出力させたりすることによってユーザに通知し(ステップS46)、当該処理を終了する。
なお、上記ライセンス証の認証、コンテンツ保護キーの発行の際における動作においては、ユーザノード1aが認証依頼情報をDHTルーティングにより認証ノード1xに対して送信するように構成したが、これに限定されるものではなく、例えば、ユーザノード1aが認証依頼情報を、コンテンツIDをキーとするDHTルーティングによってルートノード1yに対して送信し、当該ルートノード1yが、受信した認証依頼情報を、認証ID(つまり、当該コンテンツデータのコンテンツ名+接尾辞のハッシュ値)をキーとするDHTルーティングによって認証ノード1xに対して送信するように構成してもよい(以降の処理は上記実施形態と同様)。
また、上記ライセンス証の認証、コンテンツ保護キーの発行の際における動作においては、ルートノード1yが保護キー送信情報をユーザノード1aに対して送信するように構成したが、これに限定されるものではなく、例えば、ルートノード1yが保護済コンテンツデータの所在情報に基づき保護キー送信情報をレプリカノードに対して送信し、そのレプリカノードが、保護キー送信情報に含まれるコンテンツ保護キーを、保護済コンテンツデータと共にユーザニード1aに対して送信するように構成してもよい。
(4−6.保護済コンテンツデータ復号化及び再生)
次に、図18等を参照して、保護済コンテンツデータ復号化及び再生の際における動作について説明する。
図18は、ユーザノード1aの制御部11におけるDRM処理2(コンテンツ保護キー使用の際の処理)を示すフローチャートである。
図18に示す処理は、例えばユーザからの入力部22を介した保護済コンテンツデータの再生指示(例えば、ユーザによる再生ボタンの押下)に従って、DRM処理プログラムがユーザノード1aの制御部11により実行されることにより行われ、ステップS81では、当該制御部11が、再生対象の保護済コンテンツデータのライセンス証をICカード25から取得する。
次いで、ユーザノード1aの制御部11は、上記取得したライセンス証の署名データを、ライセンスサーバ2の公開鍵で復号化する(ステップS82)。
次いで、ユーザノード1aの制御部11は、上記取得したライセンス証に基づき当該ライセンス証のハッシュ値を計算し(ステップS83)、同一性判別手段として、当該計算したライセンス証のハッシュ値と、上記復号して取得したライセンス証のハッシュ値と、を比較して同一性があるか(その内容が一致しているか)否かを判別する(ステップS84)。このように、ライセンス証のハッシュ値の同一性を判別することでユーザノード1aは正しい認証経路を通してコンテンツ保護キーが発行されたことを検証することができる。
そして、双方のライセンス証のハッシュ値に同一性があると判別された場合(ステップS84:Y)、当該ライセンス証に対応するコンテンツ保護キーをICカード25から取得し、当該コンテンツ保護キー及び復号化用アクセラレータ14を用いて上記再生対象の保護済コンテンツデータを復号化(つまり、再生制限を解除)し(ステップS85)、再生手段として、復号されたコンテンツデータをデコーダ部15、映像処理部16及び音声処理部18を通じて再生させ(ステップS86)、表示部17及びスピーカ19を通じて出力させ(つまり、コンテンツデータに係る映像及び音声を出力する)、当該処理を終了する。
そしてこれ以降、ユーザノード1aの制御部11(DRM処理プログラム)は、ライセンス証に記述された再生可能回数又は複製可能回数を参照して、復号化されたコンテンツデータの再生又は複製を行うことになる。例えば、ユーザノード1aでは、当該コンテンツデータが再生(又は複製)される度にカウントアップ(1インクリメント)される再生回数(又は複製回数)を記憶部12に記憶して管理すると共に、当該コンテンツデータを再生(又は複製)させる際に、上記管理されている再生回数(又は複製回数)と、ライセンス証に記述された再生可能回数(又は複製可能回数)とを比較し、再生回数(又は複製回数)が再生可能回数(又は複製可能回数)以下である場合に、コンテンツデータを再生(又は複製)させるように制御する。
また、ユーザノード1aの制御部11は、ライセンス証に記述された有効期限が経過した場合、ICカード25の不揮発性メモリ254から当該ライセンス証及びこれに対応するコンテンツ保護キーを消去(削除)させ、ライセンスサーバ2からライセンス証を再発行させて取得(購入)するようになっている。そして、ユーザノード1aの制御部11は、再発行されたライセンス証等が付加された認証依頼情報を、DHTルーティングによって上記認証ノード1xに対して送信し、ルートノード1yにより再発行されたコンテンツ保護キー及び保護済コンテンツデータの所在情報を取得することになる(図15乃至図17等の処理と同様)。これにより、コンテンツ保護キーが第三者に漏洩した場合の被害を低減させることができる。
一方、ライセンス証のハッシュ値に同一性がないと判別された場合(ステップS84:N)、ユーザノード1aの制御部11は、ライセンス証が正しくない旨を示す情報を、例えば、表示部17に表示させたり、スピーカ19に音声出力させたりすることによってユーザに通知し(ステップS87)、保護済コンテンツデータの複号化及び再生が行われずに、当該処理が終了する。
(4−7.コンテンツ保護キー不正発行先検査)
次に、図19及び図20等を参照して、コンテンツ保護キーの不正発行先検査の際における動作について説明する。
図19は、ルートノード1yの制御部11におけるブラックリスト登録処理を示すフローチャートであり、図20は、ライセンスサーバ2の制御部31における保護キー発行先検査処理を示すフローチャートである。
図19に示す処理は、例えば所定周期(例えば、1日周期)で、ルートノード1yの制御部11によりブラックリスト登録処理が実行されることにより行われる。
ルートノード1yの制御部11は、先ず、コンテンツ保護キー発行先リストをICカード25から取得し、これを、ライセンスサーバ2のIPアドレスに従って当該ライセンスサーバ2に対して送信する(ステップS91)。
これに対して、ライセンスサーバ2では、制御部31が保護キー発行先検査処理プログラムを実行することにより図20に示す処理が行われ、当該制御部31が、ルートノード1yから送信されてきたコンテンツ保護キー発行先リストを受信すると(ステップS101)、コンテンツ保護キー発行先リストの内容とライセンス証発行先管理データベースの内容を照合し(ステップS102)、コンテンツ保護キー発行先リストに登録されているユーザIDのうち、そのコンテンツ保護キーに対応するライセンス証に関してライセンス証発行先管理データベースに登録されていないユーザIDがあるか否かを判別し(ステップS103)、ある場合には(ステップS103:Y)、そのユーザIDを特定する(ステップS104)。つまり、ライセンス証が発行されていないにも関わらず、そのライセンス証に対応するコンテンツ保護キーが発行されているユーザのユーザIDが特定されることになる。
次いで、ライセンスサーバ2の制御部31は、上記特定されたユーザIDを含む不正エントリ情報をルートノード1yに対して返信(報告)する(ステップS105)して、当該処理を終了する。
これに対し、ルートノード1yの制御部11は、ライセンスサーバ2から送信されてきた不正エントリ情報を受信し(ステップS92)、当該不正エントリ情報に含まれるユーザIDを著作権侵害ユーザのユーザIDとしてブラックリストに登録(ステップS93)して、当該処理を終了する。
これにより、例えば、コンテンツ保護キーの有効期限切れに伴ってブラックリストに登録されたユーザIDを有するユーザノードがコンテンツ保護キーの再発行を要求するために認証依頼情報を認証ノード1xに対して送信(図15の処理にて)したとしても、ルートノード1yにてこのコンテンツ保護キーの再発行を適切に拒絶することができる。
なお、上記ステップS103の処理において、ライセンス証が発行されていないにも関わらず、そのライセンス証に対応するコンテンツ保護キーが発行されている場合、ライセンスサーバ2は、ユーザノード、認証ノード、及びルートノードの認証経路のどこかで不正な結託が行われたと判断し、次回のライセンス認証権限の委譲処理(例えばライセンス認証権限の有効期限がある場合)では、上記認証経路における認証ノードに対してライセンス認証権限の委譲を行わない(例えば、ライセンス認証権限委譲証の再発行を行わない)ように構成しても良い。
以上説明したように、上記実施形態によれば、コンテンツ保護キーの発行許可に関する認証処理が複数のノード1において分散して、コンテンツ名が同じコンテンツデータ毎に行われるように構成したので、従来の認証処理を行うサーバのような特定の装置に対して過大な処理負担を課するということを防止することができる。また、コンテンツ保護キーの発行処理もまた、コンテンツ名が同じコンテンツデータ毎に行われるように構成したので、特定の装置に対して過大な処理負担を課するということを防止することができる。また、コンテンツ保護キーをコンテンツ毎に異なるノードで分散管理されているので、仮に当該コンテンツ保護キーが漏洩したとしてもその被害を低減させることができ、著作権保護に関する安全性、信頼性等を確保することができる。
また、上記実施形態によれば、コンテンツ保護キーの発行許可に関する認証処理を行うノードと、コンテンツ保護キーの発行処理を行うノードとを独立させるようにしたので、不正な結託を防ぎ著作権保護に関する安全性、信頼性等を高めることができる。また、P2Pの利点である負荷分散を維持したまま安全なコンテンツ保護キーの発行を実現することができる。
また、上記実施形態においては、ライセンスサーバ2によって認証権限が委譲された認証ノードがコンテンツ毎に認証処理を行うと共に、その認証ノードに対してユーザノードが直接、認証依頼情報を送信するのではなくDHTルーティングによって送信するように構成したので、認証ノードとユーザノードとの不正な結託を極めて困難とし、認証ノードの信頼性を高めることができる。更に、ライセンス認証権限委譲証に有効期限を持たせるように構成すれば、より一層、認証ノードの信頼性を高めることができる。
更にまた、上記実施形態においては、ライセンス証に有効期限を持たせるように構成したので、コンテンツ保護キーが第三者に漏洩した場合の被害を低減させることができる。
[他の実施形態1]
上記実施形態においては、ライセンス証に記述された再生可能回数の更新を行わない構成について説明したが、別の例として、ライセンス証に記述された再生可能回数の更新が認証ノード1xにより行われる場合の動作について、図21及び図22等を参照して説明する。
図21は、ライセンス証の更新が行われる場合のユーザノード1aの制御部11におけるDRM処理3を示すフローチャートであり、図22は、認証ノード1xの制御部11におけるライセンス認証・更新処理を示すフローチャートである。
なお、以下の説明は、ユーザノード1aがライセンス証、コンテンツ保護キー、及び保護済コンテンツデータを既に取得していることを前提とする。
図21に示す処理は、例えばユーザからの入力部22を介した保護済コンテンツデータの再生指示に従って、DRM処理プログラムがユーザノード1aの制御部11により実行されることにより行われ、ステップS111では、当該制御部11が、再生対象の保護済コンテンツデータのライセンス証をICカード25から取得し、当該ライセンス証、認証ID、及びユーザノード1aのIPアドレス等が付加された認証依頼情報を、DHTルーティングによって上記認証ノード1xに対して送信する。
これに対して、認証ノード1xでは、制御部11がライセンス認証・更新処理プログラムを実行することにより図22に示す処理が行われ、当該制御部11が、ユーザノード1aから送信された認証依頼情報を受信すると(ステップS121)、当該認証依頼情報に付加されたライセンス証の有効性の認証処理を行う。
具体的には、認証ノード1xの制御部11は、先ず、上記ステップS52と同様、ライセンスサーバ2の公開鍵を用いて当該ライセンス証の署名が正しいか否かを判別し(ステップS122)、ライセンス証の署名が正しい場合(ステップS122:Y)、当該ランセンス証(復号化されたライセンス証)に記述された内容に矛盾がないか否かを判別し(ステップS123)、矛盾がない場合(上記ステップS53と同様)には(ステップS123:Y)、ライセンス証の有効性があると判定し(ステップS124)、ステップS125に移行する。
一方、上記ステップS122でライセンス証の署名が正しくない場合(ステップS122:N)、或いは、上記ステップS123でランセンス証に記述された内容に矛盾がある場合(ステップS123:N)には、認証ノード1xの制御部11は、ライセンス証の有効性がないと判定し(ステップS129)、ステップS130に移行する。
ステップS125では、認証ノード1xの制御部11は、当該ライセンス証に記述された再生可能回数を1回分減じて(1デクリメント)ライセンス証を更新する。
次いで、認証ノード1xの制御部11は、更新後のライセンス証に署名(つまり、認証ノード1xの秘密鍵で更新後のライセンス証のハッシュ値を暗号化。更新前(オリジナル)のライセンス証はライセンスサーバ2の署名によってオーソライズされるが、更新後のライセンス証は認証ノード1xの署名によってオーソライズされる)する(ステップS126)。
そして、認証ノード1xの制御部11は、更新後のライセンス証(署名されたもの)、及びライセンス認証権限委譲証が付加された更新ライセンス証送信情報を、ユーザノード1aに対して送信(返信)し(ステップS128)、当該処理を終了する。
一方、ステップS130では、認証ノード1xの制御部11は、ライセンス証が不正である(有効性がない)旨が記述されたライセンス証不正情報を、ユーザノード1aに対して送信し、当該処理を終了する。
そして、図21に示すように、ユーザノード1aの制御部11は、認証ノード1xから送信されてきた情報を受信し(ステップS112)、その情報が更新ライセンス証送信情報であるか否かを判別する(ステップS113)。上記受信された情報が更新ライセンス証送信情報である場合には(ステップS113:Y)、ユーザノード1aの制御部11は、更新ライセンス証送信情報に付加された更新後のライセンス証を、ICカード25における不揮発性メモリ254に記憶されている更新前のライセンス証と置き換え(ステップS114)、ステップS115に移行する。
一方、上記受信された情報が更新ライセンス証送信情報でない場合(ステップS113:N)には、ライセンス証の認証に失敗した旨を示す情報を、例えば、表示部17に表示させたり、スピーカ19に音声出力させたりすることによってユーザに通知し(ステップS116)、当該処理を終了する。
ステップS115では、当該制御部11が、上記取得した更新後のライセンス証の署名データを、認証ノード1xの公開鍵で復号化する。
次いで、ユーザノード1aの制御部11は、上記取得した更新後のライセンス証のハッシュ値を計算し(ステップS117)、当該計算した更新後のライセンス証のハッシュ値と、上記取得し複号化した更新後のライセンス証のハッシュ値と、を比較して同一性があるか否かを判別する(ステップS118)。
そして、双方の更新後のライセンス証のハッシュ値に同一性があると判別された場合(ステップS118:Y)、当該ライセンス証に対応するコンテンツ保護キーをICカード25から取得し、当該コンテンツ保護キー及び復号化用アクセラレータ14を用いて上記再生対象の保護済コンテンツデータを復号化し(ステップS119)、復号されたコンテンツデータをデコーダ部15、映像処理部16及び音声処理部18を通じて再生させ(ステップS120)、表示部17及びスピーカ19を通じて出力させ、当該処理を終了する。なお、双方の更新後のライセンス証のハッシュ値に同一性がない場合には(ステップS118:N)、保護済コンテンツデータの複号化及び再生が行われずに、当該処理が終了する。
なお、ユーザノード1aは更新後のライセンス証の真証性を、認証ノード1xから取得したライセンス認証権限委譲証によって確認することができる。
このような構成によれば、保護済コンテンツデータ再生指示(例えば、ユーザによる再生ボタンの押下)がある都度、ユーザノード1aから認証ノード1xへの問い合わせ(ライセンス認証及び更新依頼)が発生するが、ユーザによる保護済コンテンツデータの再生可能回数の管理をより厳密に管理し、ユーザによる不正をより確実に防止することができる。なお、このような構成は、例えば常時インターネットに接続されるSTB(セットトップボックス)のようなノード装置に対してより有効である。
[他の実施形態2]
上記実施形態においては、あるコンテンツ名のコンテンデータに対応する認証処理を1つの認証ノードで行うように構成したが、別の例として、DHTルーティングにおけるスパニングツリー上でルート近隣に位置するノードに対してもライセンス認証権限を委譲するように構成することで当該認証処理に関する冗長性を高めても良い。なお、「スパニングツリー上でルート近隣に位置するノード」には、例えば、認証依頼情報がユーザノードから認証ノードまでに転送されていく経路上における中継ノードと、中継ノードの近隣のノードが含まれる。例えば、PastryのようなDHTルーティングの場合、各ノードはDHTの他に自ノードの近隣ノード情報をLeaf Setとして管理しているので、スパニングツリーのルート付近(ルーティングが収束する付近)では、中継経路上のノードとその近隣ノードの両方が、認証機能を有しても良い(以下の鍵発行機能についても同様)。
更に、この場合に、認証ノードが自ノード以外の認証ノードに対して定期的にTTL(Time To Live)制御されるブロードキャストメッセージを発信(送出)して自ノードの存在を告知すると共に、自ノード以外の認証ノードから送信されてくるブロードキャストメッセージを受信することで認証ノードの総量を認識し、当該総量が所定量を下回った場合には、その事象を最初に検知した認証ノードが近隣の(例えば、ホップ数が少ない)一般ノードを認証ノードとして任命するように(ライセンス認証権限を委譲するように)ライセンスサーバ2へ依頼する構成としても良い。このように構成すれば、当該システムSにおけるライセンシング機能を安定化させることができる。
[他の実施形態3]
上記実施形態においては、あるコンテンツ名のコンテンデータに対応するコンテンツ保護キー発行処理を1つのコンテンツ保護キー発行ノード(例えば、ルートノード)で行うように構成したが、別の例として、DHTルーティングにおけるスパニングツリー上でルート近隣に位置するノードに対してもコンテン保護キーの発行権限を与えるように構成することで当該コンテンツ保護キー発行処理に関する冗長性を高めても良い。
更に、この場合に、コンテンツ保護キー発行ノードが自ノード以外のコンテンツ保護キー発行ノードに対して定期的にTTL(Time To Live)制御されるブロードキャストメッセージを発信(送出)して自ノードの存在を告知すると共に、自ノード以外のコンテンツ保護キー発行ノードから送信されてくるブロードキャストメッセージを受信することでコンテンツ保護キー発行ノードの総量を認識し、当該総量が所定量を下回った場合には、その事象を最初に検知したコンテンツ保護キー発行ノードが近隣の(例えば、ホップ数が少ない)一般ノードをコンテンツ保護キー発行ノードとして任命するように構成しても良い。このように構成すれば、当該システムSにおけるコンテンツ保護キー発行機能を安定化させることができる。
[他の実施形態4]
上記実施形態においては、1つのノードが、ルートノードの機能とコンテンツ保護キー発行ノードの機能の双方を実行する場合を例にとって説明したが、これに限定されるものではなく、ルートノードの機能と、コンテンツ保護キー発行ノードの機能を、独立した2つのノードにおいて夫々実行するように構成しても良い。この場合、例えば、認証ノード1xは、ライセンス認証権限委譲証、ユーザID、及びユーザノード1aのIPアドレス等が付加された保護キー発行許可情報を、DHTルーティング(この場合、コンテンツID+上述した接尾辞とは異なる接尾辞のハッシュ値をキーとする)によってコンテンツ保護キー発行ノードに対して送信し、当該コンテンツ保護キー発行ノードが、発行したコンテンツ保護キー、ライセンス認証権限委譲証が付加された保護キー送信情報を、ユーザノード1aに対して送信する。そして、ユーザノード1aが、コンテンツIDとするDHTルーティングによってルートノードに対して保護済コンテンツデータの所在情報を要求する情報を送信して、当該ルートノードから当該所在情報を取得する。
更に、認証ノードの機能と、ルートノードの機能と、コンテンツ保護キー発行の機能とを、それぞれ異なるノードにて行わせた場合、ユーザノードが、先ずルートノードにコンテンツIDとするDHTルーティングによってルートノードに対して保護済コンテンツデータの所在情報を要求する情報(ライセンス証が含まれる)を送信する。そして、ルートノードが認証ノードに対してライセンス証の認証依頼情報を送信する。ルートノードに認証結果が送信され、正しい認証である場合には、ルートノードは、コンテンツ保護キー発行ノードにコンテンツ保護キー発行を依頼して、コンテンツ保護キー発行ノードからコンテンツ保護キーを受信し、保護済コンテンツデータの所在情報とコンテンツ保護キーをユーザノードに送信するようにしても良い。また、ルートノードが認証ノードに対してライセンス証の認証依頼情報と保護済コンテンツデータの所在情報を送信し、認証ノードは、認証結果を、受信した保護済コンテンツデータの所在情報に対応するコンテンツ保護キー発行ノードに送信して、保護済コンテンツデータの所在情報をルートノードからユーザノードに送信し、コンテンツ保護キーをコンテンツ保護キー発行ノードからユーザノードに送信するようにしても良い。
なお、本実施形態においては、当該コンテンツ保護キーの発行許可に関する認証処理を行うノードと、コンテンツ保護キーの発行処理を行うノードとを独立させることで、不正な結託を防ぎ著作権保護に関する安全性、信頼性等を高めておりこれが運用上望ましいが、当該安全性を何らかの方法で高めることができれば、コンテンツ保護キーの発行許可に関する認証処理と、コンテンツ保護キーの発行処理とを一つのノード(例えば、上述した認証ノード、或いはコンテンツ保護キー発行ノード(ルートノード)等)で実行するように構成しても良い。
また、上記実施形態において、あるユーザノードが別のユーザノードが要求すべき保護済コンテンツデータに対応する認証ノード或いは、コンテンツ保護キー発行ノードとして機能することを妨げない。
また、上記実施形態においては、DHTを利用したアルゴリズムによって構築されたオーバーレイネットワーク9を前提として説明したが、本発明はこれに限定されるものではなく、その他のコンピュータネットワークシステムに対しても適用可能である。