(58)【調査した分野】(Int.Cl.,DB名)
受信機でスクランブル解除情報を取得する方法であって、前記スクランブル解除情報は、スクランブルがかけられたコンテンツのスクランブル解除を可能にするものであり、前記方法は、
提供者の検証鍵を使用してソフトウェアイメージにアクセスするステップであって、前記ソフトウェアイメージは、前記提供者の検証鍵に対応する提供者の署名鍵を使用して提供者によりセキュリティ保護されている、ステップと、
前記スクランブル解除情報のセキュリティ保護されたバージョンを受信するステップと、
前記アクセスしたソフトウェアイメージを使用して、前記スクランブル解除情報のセキュリティ保護されたバージョンから仮想スクランブル解除情報を取得するステップと、
前記仮想スクランブル解除情報および前記提供者の検証鍵を入力として暗号関数に提供して、前記スクランブル解除情報を含む所与の出力を生成するステップであって、前記暗号関数は、求められた検証鍵と別の仮想スクランブル解除情報が前記暗号関数の前記所与の出力に対応するように、署名鍵および前記署名鍵に関連付けられた検証鍵を含む鍵ペアと別の仮想スクランブル解除情報とを求めることが不可能であるという性質を有する、ステップと
を含む方法。
受信機がスクランブル解除情報を取得することを可能にする方法であって、前記スクランブル解除情報はスクランブルがかけられたコンテンツのスクランブル解除を可能にするものであり、前記方法は、
前記受信機に提供者の検証鍵およびソフトウェアイメージを提供するステップであって、前記ソフトウェアイメージは、前記提供者の検証鍵に対応する提供者の署名鍵を使用して提供者によりセキュリティ保護されており、前記提供者の検証鍵は前記ソフトウェアイメージにアクセスするためのものである、ステップと、
前記受信機に前記スクランブル解除情報のセキュリティ保護されたバージョンを提供するステップであって、前記ソフトウェアイメージは、前記スクランブル解除情報のセキュリティ保護されたバージョンから仮想スクランブル解除情報を取得するように構成されている、ステップとを含み、
前記受信機は暗号関数を実行するように構成され、前記仮想スクランブル解除情報および前記提供者の検証鍵を入力として暗号関数に提供すると、前記スクランブル解除情報を含む所与の出力が生成され、前記暗号関数は、求められた検証鍵と別の仮想スクランブル解除情報が前記暗号関数の前記所与の出力に対応するように、署名鍵および前記署名鍵に関連付けられた検証鍵を含む鍵ペアと別の仮想スクランブル解除情報とを求めることが不可能であるという性質を有する、方法。
【発明の概要】
【発明が解決しようとする課題】
【0004】
制御語の海賊行為は、デジタル映像放送(DVB)システムにおける大きな問題である。一般的な攻撃では、制御語がすべての受信機でコンテンツの暗号化を解除する共有鍵であることを利用する。攻撃者は、鍵配信インフラストラクチャの一部を破って制御語を入手し、権限のない受信機に制御語を再配布することができる。例えば、時に攻撃者は、CA/DRMクライアントから受信機中のデスクランブラに送信される制御語を傍受して、ローカルネットワークまたはインターネットを介してそれを再配布することができる。そして、再配布された制御語を使用して、合法な権限のあるCA/DRMクライアントなしで、スクランブルがかけられたサービスのスクランブルを解除する。したがって、セキュリティの要件の1つは、制御語の秘匿性と真正性を保護することである。
【0005】
場合によっては、チップセットが鍵の階層に対応して、製造工程でインストールされる秘密鍵に基づく制御語の配信を保護する。添付図面の
図1に、コンテンツのスクランブルを解除する鍵をロードするための受信機のチップセット102の従来技術による例を示す。解読モジュール114、116、および118は、暗号化された入力データおよび入力された鍵を使用して、解読された出力データを得る。チップの製造者は、対称のチップセット一意鍵CSUKについての疑似乱数の秘密値でチップセットを個別化設定し、後の識別のために秘密でないチップセットの通し番号CSSNをチップセットに割り当てる。要素104および106は、それぞれCSSNおよびCSUKを記憶する読み取り専用の記憶場所である。要素108および110は、解読後の出力データを一時的に記憶する読み取りおよび書き込み可能の記憶場所である。図に示すように、コンテンツデコーダ112がスクランブルが解除されたコンテンツを復号する。要素間のデータの流れを矢印で示す。矢印に沿ったラベルはデータの流れを識別する。
【0006】
図1に示すように、「{Content}
CW」と表す、制御語CWでスクランブルがかけられたコンテンツストリームがチップセット102で受信される。コンテンツのスクランブルを解除するために必要な制御語を提供するために、チップセット102は、入力された{CW}
CSLKを使用して、関連付けられたCWをセキュアにロードすることをサポートし、{CW}
CSLKは、対称チップセットロード鍵CSLKで暗号化されたCWを表す。そのCSLKは、入力{CSLK}
CSUKで表される、対称チップセット一意鍵CSUKで暗号化されてチップセット102で受信される。{CSLK}
CSUKを解読するにはCSUKが必要とされる。特定のチップセットに関連付けられたCSUKおよびチップセットの通し番号CSSNは、通例は、チップセットの記憶場所(それぞれ要素104および要素106)に予めインストールされ、変更することはできない。動作時には、CSUKがチップセット102内のセキュアな記憶域(すなわち要素106)から取り出され、それを使用して解読モジュール114を使用して{CSLK}
CSUKからCSLKを解読する。解読されると、CSLKはメモリ(すなわち要素108)に記憶され、それを使用して解読モジュール116を使用して{CW}
CSLKを解読する。最後に、メモリ(すなわち要素110)に記憶された平文の制御語を解読モジュール118が使用して、受信されるスクランブルがかけられたコンテンツ{Content}
CWのスクランブルを解除し、コンテンツデコーダ112を使用してチップセットでコンテンツを復号することができる。コンテンツデコーダ112は、チップセット102の外部にあってよく、通例は受信機の一部である。
【0007】
通例、垂直市場の受信機の場合、チップ製造者が(CSSN、CSUK)のペアのリストをCA/DRMの供給者に提供して、
図1に示す方法を使用してチップセットロード鍵CSLKの値をチップセットにロードできるようにする。公知の条件付きアクセスシステムでは、権利管理メッセージ(EMM)およびECMをヘッドエンドシステムからCA/DRMクライアントに送信することにより、
図1に示すような鍵ロード機構を使用する。
図1の例の場合、EMMはCSLK(CA/DRMクライアントを対象とし、CA/DRMシステムにより提供される秘密性のある真正な経路を使用して保護される)およびそれを暗号化したバージョン{CSLK}
CSUK(チップセット102向け)を含む。ECMは、暗号化されたCWを含む。CA/DRMクライアントは{CSLK}
CSUKをチップセットに提供し、CSLKを一連の制御語をロードするための鍵として使用することができる。すなわち、CA/DRMクライアントは、CSLKを使用してECMに含まれるCWを再暗号化し、それにより、チップセット102に送られるメッセージ{CW}
CSLKが生成される。通例、CSLKはCA/DRMクライアントとチップセットとの特定の組み合わせに一意であり、したがって、そのチップセットのみがそのCA/DRMクライアントから受信される{CW}
CSLKを解読することができる(そのため、CWロードメッセージ{CW}
CSLKの共有は可能でない)。
【0008】
水平市場の受信機の場合、CA/DRMシステムの運営者(本文献では「提供者」または「運営者」とも呼ぶ)は、CA/DRMシステムを交換することができる。垂直市場の受信機の場合の上記の解決法では、受信機に関連付けられた秘密のマスタ鍵(すなわち鍵CSUK)がCA/DRMの供給者に知られる。セキュリティの観点からは、この性質は水平市場の受信機には望ましくない。その理由の1つは、現在のCA/DRMの供給者はCA/DRMシステムが交換された後に秘密のマスタ鍵CSUKを公開することができ、受信機のセキュリティを損なうためである。したがって、水平市場の受信機の場合のセキュリティ要件は、この方式が、あるCA/DRMの供給者に知られている受信機の秘密を他のどのCA/DRM供給者にも知らせることを必要としないことになる。この要件は上記の方式では満たされない。
【0009】
図1の例は対称暗号アルゴリズムを使用する方法を示すが、添付図面の
図2に示すような非対称、すなわち公開鍵の暗号技術を使用することも可能である。
【0010】
図2は、制御語の秘密性を保護するために非対称の暗号アルゴリズムを使用した制御語のロードを実施する典型的なチップセットを示す。チップセットの通し番号CSSNと関連付けられたチップセット202は、要素204(読み取り専用のメモリ記憶場所)、鍵のペアを記憶する要素208および要素210(読み取りおよび書き込み可能なメモリ記憶場所)、ならびに平文の制御語を一時的に記憶する要素212(読み取りおよび書き込み可能な記憶場所)を含む。鍵ペアの真正性を保護するために、要素208および要素210は一度限り書き込みが可能な記憶場所であることが好ましい。
【0011】
製造時にペア(CSSN、CSUK)をロードし、ペアをCA/DRMの供給者およびその運営者に送信する(
図1に示す例で行われるように)代わりに、
図2に示すチップセット202のチップ製造者は、チップセットの公開鍵CSPKおよびチップセットの秘密鍵CSSKからなるランダムの鍵ペアを生成する鍵ペア個別化設定モジュール206を起動することによりチップセット202を個別化設定する。CSPKおよびCSSKはそれぞれ要素208および210に記憶される。あるいは、鍵ペア個別化設定モジュール206はチップセット202の外部(例えばチップセット製造者が利用可能なチップセット個別化設定システム)に実装し、製造者が個別化設定時にチップセット202にCSSKをロードしてもよい。その後、製造者は自身のシステムからCSSKを削除することができる。
【0012】
製造者は番号のペアを維持し、各ペアは、チップセット通し番号CSSNとそれに関連付けられたチップセットの公開鍵CSPKからなる。(CSSN、CSPK)のペアのリストは、すべてのCA/DRM供給者が入手できるようにすることができる。番号CSSNおよびCSPKは秘密でないため、それらのペアの真正性のみを保護すればよいことに留意されたい。CSPKを使用してCWを暗号化し、このCWは対応するCSSKを持つ受信機のみが(解読モジュール216を使用して)解読することができる。すなわち、暗号化された制御語{CW}
CSPKは、同じランダムの鍵ペア(CSPK、CSSK)を他の受信機が生成しないことから一意のデータパターンとなり、そのためCWロードメッセージ{CW}
CSPKを共有することは不可能となる。そして、一時的に要素212に記憶された解読されたCWを使用して、解読モジュール218で{Content}
CWを解読して、スクランブルが解除されたコンテンツを生成する。その後、コンテンツデコーダ214を使用して、スクランブルが解除されたコンテンツを復号する。
【0013】
図2に示すような公開鍵による解決法の利点は、チップセットの秘密鍵CSSKをどのCA/DRM供給者にも知らせる必要がない点である。しかし、CSPKは公開鍵であるため、攻撃者も入手することができる。詳細には、攻撃者は、例えばCWが別の受信機から破られた後に、CSPKを使用して、所与の制御語CWをそのCSPKに関連付けられた受信機に配布することができる。すなわち、この方法ではCWロードメッセージの真正性が保護されない。
【0014】
CWロードメッセージの真正性を保護するための第2の独立した機構を
図2に示す公開鍵の解決法に追加することができる。例えば、メッセージ認証コード(MAC)を使用して、CWロードメッセージ{CW}
CSPKの真正性を保護することができる。MACは、CA/DRMクライアントとチップセット間で共有される秘密鍵K
MACに基づく対称暗号技術である。詳細には、CA/DRMクライアントはK
MACをCWロードメッセージ{CW}
CSPKのMAC値を生成するための鍵として使用する。計算されたMAC値はメッセージに付加することができる。メッセージおよびMAC値を受信すると、チップセットはK
MACを使用してMAC値を検証する。あるいは、公開鍵暗号(すなわち非対称デジタル署名)に基づく方法を使用して、CWロードメッセージ{CW}
CSPKの真正性を保護することもできる。そのような解決法では、製造者が個別化設定段階で、デジタル署名方式に関連付けられた公開鍵を受信機にロードする。その公開鍵は、真正性機構のルート鍵として使用することができる。受信機は機構を使用してCWロードメッセージ{CW}
CSPKの真正性を検証することができる。
【0015】
しかし、真正性方式(対称および非対称)のいずれでも、メッセージの署名に使用されるマスタ鍵は秘密鍵である。これは、そのマスタ鍵がCA/DRMの供給者に配布された場合には、CA/DRMの供給者に知られた受信機の秘密を他のCA/DRM供給者に一切知らせることを方式が必要としないという要件が満たされないことを意味する。
【0016】
この要件を満たし、制御語の秘密性と真正性を保護するために、信頼機関としてのチップ製造者の役割を拡張することができる(または別途信頼機関を使用することができる)。例えば、両方式で追加的な鍵の層を導入し、信頼機関がその方式のルート鍵を管理することができる。しかし、これは、信頼機関が、受信機の個別化設定が完了した後に受信機に関連付けられた(少なくとも)1つの秘密を管理する必要があることを意味する。責任上の理由から、信頼機関のこの役割は、チップセットの製造者には望ましくない。これは、信頼機関が別途必要となることを意味する。
【0017】
上記の問題を解決する、チップセットに制御語をロードする改良された解決法が必要とされる。すなわち、以下の特性を備えた方式が必要とされる。(i)CWの秘密性および真正性が保護される。(ii)CA/DRMシステムは、秘密鍵を共有する必要なしにその方式を独立して使用することができる。(iii)受信機の個別化設定後に、信頼機関は、その受信機(チップセット)に関連付けられた秘密鍵を一切管理する必要がない。
【0018】
EP10193312.5に、交換可能なCA/DRMクライアントを備えた水平市場の受信機のための新規の方式が開示される。EP10193312の方式は、上記の3つの特性を満たす。
【0019】
上記のように、有料TVシステムでは、受信機の内部にCA/DRMクライアントが実装される(または受信機に結合されたモジュール/機器として)。CA/DRMクライアントはEMMおよびECMを処理することによりデジタルコンテンツへのアクセスを管理する。CA/DRMクライアントは、スマートカードの集積回路などの着脱可能なセキュリティモジュールの内部に実装するか、または(可能性としては難読化した)ソフトウェアとして実装し、受信機内のチップで実行することができる。CA/DRMクライアントがソフトウェアとして実装され、受信機内のチップで実行される場合は、通例CA/DRMクライアントは受信機のソフトウェアイメージに含まれる。受信機ソフトウェアイメージは通常は受信機のチップセットでは実行されず、受信機に内蔵された別個のチップまたは回路で実行される。
【0020】
実際の運用時には、受信機ソフトウェアイメージは更新される場合がある。受信機ソフトウェアイメージを更新する目的には以下がある。(1)受信機の機能を強化する。(2)セキュリティの侵害を修復する(例えば更新されたCA/DRMクライアントソフトウェアを更新されたソフトウェアイメージに含めることによる)。(3)CA/DRMシステムを交換する(CA/DRMクライアントがソフトウェアとして実装されており、受信機ソフトウェアイメージに含まれていると想定する)、または、(4)受信機を新しい提供者の運用で使用したい場合は、新しい提供者(すなわち新しいCA/DRMシステム運営者)の受信機ソフトウェアイメージを水平市場の受信機にダウンロードする。ソフトウェアをダウンロードする(更新された、または新しいCA/DRMクライアントを含む可能性がある)際の一般的なセキュリティ要件は、ソフトウェアイメージの真正性または単一の供給元の真正性が保護されることである。そのようなセキュリティ対策は、準拠している受信機が、変更が加えられたCA/DRMクライアントを含む可能性のある不法なソフトウェアイメージを受け付けられないようにすることに留意されたい。詳細には、変更が加えられたCA/DRMクライアントを使用して、例えばコンテンツの使用規則を回避することにより(本来はコンテンツへのアクセスを特定の時間量に制約するコンテンツの使用規則を回避する等)、または権限のない入手元から破られた鍵(制御語など)を入手することにより、不法にコンテンツへアクセスすることができる。
【0021】
ソフトウェアイメージの真正性または単一の供給元の真正性を保護する公知の技術は、それぞれ対称MACまたは非対称デジタル署名を使用するものである。より具体的には、そのような技術が使用される場合は、ソフトウェアイメージのMAC値またはデジタル署名(またはその暗号ハッシュ値)が生成され、生成したMAC値またはデジタル署名をソフトウェアイメージに付加する。次いで、ソフトウェアイメージおよびMAC値またはデジタル署名をダウンロードした後に、受信機は検証鍵とそれに関連付けられた検証アルゴリズムを使用して、ソフトウェアイメージの真正性または単一の供給元の真正性を検証することができる。以下では、ソフトウェアイメージの真正性を保護するために使用される機構をソフトウェア真正性機構とも称する。
【0022】
通例、垂直市場の受信機の場合、デジタル署名方式に関連付けられた公開鍵でチップセットを個別化設定して、受信機ソフトウェアイメージの真正性を保護する。対応する秘密鍵はCA/DRMの供給者に知られており、CA/DRMの供給者はその鍵を受信機ソフトウェアイメージを署名する際に使用する。この解決法を水平市場の受信機で実装した場合、CA/DRMの供給者はCA/DRMシステムが交換された後に、ソフトウェア真正性機構に関連付けられた秘密鍵を公開することができ、ソフトウェア真正性機構のセキュリティが損なわれる。
【0023】
水平市場の受信機の場合の代替の解決法は、信頼機関としてのチップ製造者の役割を拡張するものである(または別途信頼機関を使用する)。例えば、信頼機関がソフトウェア真正性機構の秘密マスタ鍵を管理することができる。信頼機関はその秘密マスタ鍵を使用して受信機ソフトウェアイメージに署名することができ、または信頼機関はその秘密マスタ鍵を使用して、CA/DRMの供給者またはCA/DRMシステムの運営者に関連付けられた公開鍵に署名し、CA/DRM供給者またはCA/DRMシステムの運営者は各自の関連付けられた秘密鍵を使用して受信機ソフトウェアイメージに署名することができる。しかし、これは、信頼機関が、受信機の個別化設定が完了した後に受信機に関連付けられた秘密を管理する必要があることを意味することに留意されたい。責任上の理由から、信頼機関のこの役割は、チップセットの製造者には望ましくない。これは、そのような解決法では信頼機関が別途必要となることを意味する。
【0024】
水平市場の受信機の場合に受信機ソフトウェアイメージの真正性または単一の供給元の真正性を保護するための改良された解決法が必要とされる。詳細には以下の特性を備えたソフトウェア真正性機構が必要とされる。(i)受信機ソフトウェアイメージの真正性または単一の供給元の真正性が保護される。(ii)CA/DRMシステムは、秘密鍵を共有する必要なしにソフトウェア真正性機構を独立して使用することができる。(iii)受信機の個別化設定後に、信頼機関は、その受信機に関連付けられた秘密鍵を一切管理する必要がない。
【課題を解決するための手段】
【0025】
本発明の第1の態様によれば、受信機でスクランブル解除情報を取得する方法が提供され、前記スクランブル解除情報は、スクランブルがかけられたコンテンツのスクランブル解除を可能にするものであり、前記方法は、提供者の検証鍵を使用してソフトウェアイメージにアクセスするステップであって、前記ソフトウェアイメージは、前記提供者の検証鍵に対応する提供者の署名鍵を使用して提供者によりセキュリティ保護されている、ステップと、前記スクランブル解除情報のセキュリティ保護されたバージョンを受信するステップと、前記アクセスしたソフトウェアイメージを使用して、前記スクランブル解除情報のセキュリティ保護されたバージョンから仮想スクランブル解除情報を取得するステップと、前記仮想スクランブル解除情報および前記提供者の検証鍵を入力として暗号関数に提供して、前記スクランブル解除情報を含む所与の出力を生成するステップであって、前記暗号関数は、求められた検証鍵と別の仮想スクランブル解除情報が前記暗号関数の前記所与の出力に対応するように、署名鍵および前記署名鍵に関連付けられた検証鍵を含む鍵ペアと別の仮想スクランブル解除情報とを求めることが不可能であるという性質を有する、ステップとを含む。
【0026】
一部の実施形態では、前記ソフトウェアイメージにアクセスすることは、前記ソフトウェアイメージを検証および/または認証するステップを含む。
【0027】
一部の実施形態では、前記ソフトウェアイメージは暗号化されており、前記ソフトウェアイメージにアクセスすることは、前記暗号化されたソフトウェアイメージを解読するための解読鍵を検証および/または認証するステップと、前記検証および/または認証された解読鍵を使用して前記暗号化されたソフトウェアイメージを解読するステップとを含む。
【0028】
一部の実施形態では、前記スクランブル解除情報のセキュリティ保護されたバージョンは、第2の提供者の署名鍵を使用して提供者によりセキュリティ保護されたスクランブル解除情報であり、前記ソフトウェアイメージを使用して、前記スクランブル解除情報のセキュリティ保護されたバージョンから仮想スクランブル解除情報を取得するステップは、前記第2の提供者の署名鍵に対応する第2の提供者の検証鍵を使用して、前記スクランブル解除情報のセキュリティ保護されたバージョンにアクセスするステップとを含み、前記提供するステップは、前記仮想スクランブル解除情報、前記提供者の検証鍵、および前記第2の提供者の検証鍵を入力として暗号関数に提供して、前記スクランブル解除情報を含む所与の出力を生成するステップを含み、前記暗号関数は、求められた第1の検証鍵、求められた第2の検証鍵、および別の仮想スクランブル解除情報が前記暗号関数の所与の出力に対応するように、第1の署名鍵および前記第1の署名鍵に関連付けられた第1の検証鍵を含む第1の鍵ペアと、第2の署名鍵および第2の署名鍵を含む第2の鍵ペアと、別の仮想スクランブル解除情報とを求めることが不可能であるという性質を有する。この場合、前記第2の提供者の検証鍵は前記提供者の検証鍵と等しくてよい。
【0029】
一部の実施形態では、提供者の検証鍵と提供者の署名鍵は、それぞれデジタル署名方式の公開鍵と秘密鍵である。あるいは、一部の実施形態では、提供者の検証鍵および提供者の署名鍵は、対称メッセージ認証方式の鍵である。
【0030】
本発明の第2の態様によれば、受信機がスクランブル解除情報を取得することを可能にする方法が提供され、前記スクランブル解除情報はスクランブルがかけられたコンテンツのスクランブル解除を可能にするものであり、前記方法は、前記受信機に提供者の検証鍵およびソフトウェアイメージを提供するステップであって、前記ソフトウェアイメージは、前記提供者の検証鍵に対応する提供者の署名鍵を使用して提供者によりセキュリティ保護されており、前記提供者の検証鍵は前記ソフトウェアイメージにアクセスするためのものである、ステップと、前記受信機に前記スクランブル解除情報のセキュリティ保護されたバージョンを提供するステップであって、前記ソフトウェアイメージは、前記スクランブル解除情報のセキュリティ保護されたバージョンから仮想スクランブル解除情報を取得するように構成されている、ステップとを含み、前記受信機は暗号関数を実行するように構成され、前記仮想スクランブル解除情報および前記提供者の検証鍵を入力として暗号関数に提供すると、前記スクランブル解除情報を含む所与の出力が生成され、前記暗号関数は、求められた検証鍵と別の仮想スクランブル解除情報が前記暗号関数の前記所与の出力に対応するように、署名鍵および前記署名鍵に関連付けられた検証鍵を含む鍵ペアと別の仮想スクランブル解除情報とを求めることが不可能であるという性質を有する。
【0031】
本発明の第3の態様によれば、上記方法のいずれか1つを実施するように構成された装置が提供される。
【0032】
本発明の第1の態様に係る方法を実施するように構成される場合、装置は、スマートカードまたは受信機のチップセットとすることができる。
【0033】
本発明の第2の態様に係る方法を実施するように構成される場合、装置は、コンテンツ配信ネットワークのヘッドエンドシステムとすることができる。
【0034】
本発明の第4の態様によれば、プロセッサによって実行されると、前記プロセッサに上記方法のいずれか1つを実施させるコンピュータプログラムが提供される。
【0035】
EP10193312.5に記載される技術と同様に、本明細書に定義される方式は関数を使用して、制御語(CW)とも呼ばれるコンテンツ暗号化/解読鍵を導出する。より正確には、ソフトウェア真正性機構の(ルート)検証鍵がその関数への入力の1つであるという点でEP10193312.5に開示される方式を拡張する。検証鍵は、EP10193312.5で鍵ロードメッセージの真正性を検証するために使用される署名検証鍵と等しくても、または関数への追加的な入力としてもよい。関数の出力はCWおよび可能性としてはコンテンツのスクランブル(解除)機構で使用されるより多くの値を含む。関数は、ソフトウェア真正性機構の検証鍵が真正でない場合はコンテンツのスクランブル解除が失敗するという意味で検証鍵の真正性が保護されるように選択される。それに対応する署名鍵を機構内でルート鍵として使用して、受信機ソフトウェアイメージの真正性または単一の供給元の真正性を保護する。
【0036】
次いで、添付図面を参照して単なる例として本発明の実施形態を説明する。
【発明を実施するための形態】
【0038】
以下の説明および図面では本発明の特定の実施形態を説明する。ただし、本発明は記載の実施形態に限定されず、実施形態によっては下記の特徴のすべてを含むとは限らないことが理解されよう。ただし、特許請求の範囲に述べられる本発明のより広い主旨および範囲から逸脱することなく、本発明に各種の改変および変更を加えてよいことは明らかであろう。
【0039】
図3は、本発明の一実施形態による例示的なシステム7の概略図である。システム7は、配布ネットワーク6を介して1つまたは複数の受信機2と通信するように構成されたヘッドエンドシステム4を備える。
【0040】
ヘッドエンドシステム4は、1つまたは複数の制御語を使用してスクランブルがかけられたコンテンツのストリーム(すなわち、{Content}
CW)を配布ネットワーク6を介して受信機2に伝送(または送信または通信)する。ヘッドエンドシステム4は、配布ネットワーク6を介して1つまたは複数のECMおよびEMMを受信機2に送信することができ、それにより受信機2は1つまたは複数の制御語にアクセスし、それによりスクランブルがかけられたコンテンツストリームのスクランブルを解除することができる。ただし、以下ではECMおよびEMMを参照して本発明の実施形態を説明するが、本発明の実施形態はECMおよびEMMを利用することに限定されないことが理解されよう。ヘッドエンドシステム4は、
図5〜
図8、
図10、
図11、および
図14〜
図18との関連で説明する方法およびシステムを使用して、コンテンツにスクランブルをかけ、スクランブル解除情報(例えばECMおよびEMM)を受信機2に提供することができる。
【0041】
配布ネットワーク6は、スクランブル解除情報(例えばECM、EMM)およびスクランブルがかけられたコンテンツストリームを受信機2に通信または同報通信することが可能な任意のネットワークでよい。例えば、配布ネットワーク6は、ケーブルネットワーク、衛星通信網、地上放送網、インターネット等の1つまたは複数からなることができる。
【0042】
(スクランブルがかけられた)コンテンツストリームは、映像データ、音声データ、画像データ、テキストデータ、アプリケーション/ソフトウェアデータ、番組表データ等の1つまたは複数などの任意種のコンテンツデータを含むことができる。
【0043】
受信機2は、ECM、EMM、およびスクランブルがかけられたコンテンツストリームを受信する任意種の受信機(またはクライアント機器)とすることができる。例えば、受信機2は、セットトップボックス、コンテンツ出力装置(テレビやラジオ)に内蔵された受信機、放送サービスをサポートする移動端末、パーソナルコンピュータ等である。受信機2は、スクランブルが解除され復号されたコンテンツをユーザ(スクリーン/モニタおよび/または1つまたは複数のスピーカなど)に出力または再生する機器を含むか、または通信的に結合することができる。
【0044】
受信機2は、スクランブルがかけられたおよび/または符号化されたコンテンツのスクランブルを解除および/または復号するチップセット1を含む。チップセット1は、CA/DRMクライアント3に通信的に接続することができる。一般に、受信機2は、ECMおよびEMMを受信し、フィルタリングし、さらに処理するためにCA/DRMクライアント3に転送する。CA/DRMクライアント3は、受け取ったECMおよびEMMから条件付きアクセス(CA)データにアクセスし、
図4、
図9、
図12、および
図13との関連で説明する方法およびシステムを使用して制御語をチップセット1にロードすることができる。CA/DRMクライアント3はスマートカードなど、受信機2から取外し可能な安全機器とすることができる(したがって下記のCA/DRMクライアント機能を実行するためのプロセッサおよびメモリを備えることができる)。これに加えて、またはこれに代えて、CA/DRMクライアント3は、受信機2と一体にし、受信機2のハードウェア構成要素として実施するか、かつ/または受信機2のセキュリティ保護された環境で実行されるソフトウェアとして実施するか、かつ/または受信機2で実行される難読化されたソフトウェアとして実施することもできる。
【0045】
下記のシステムおよび方法を使用して条件付きアクセスメッセージ(EMMおよび/またはECM)を送信するために必要な帯域幅は、既存の機構で安全に制御語をチップセットにロードするために必要な帯域幅と同等である。帯域幅は貴重な資源であり、下記の解決法はシステム7の全体的な性能を低下させるべきでないため、これは重要である。下記の方法およびシステムは、あらゆるCA/DRMシステムおよびCA/DRMシステムの運営者が独立して、すなわち、CA/DRMシステム間で一切秘密を共有する必要なしに鍵ロード機構を確立することができる、制御語の秘密性および真正性を保護する解決法を提供する(SimulCrypt動作時には制御語を共有するという明らかな例外を除く。これは制御語はSimulCrypt動作では本質的に共有されるためである)。また、本方式ではどの信頼機関も、受信機の個別化設定が完了した後に受信機(チップセット)に関連付けられた秘密を管理する必要がない。これは、信頼機関の役割が、現在利用可能な垂直市場の受信機の解決法におけるチップセット製造者の役割に相当することを意味する。また、新規の方法およびシステムは、制御語の真正性機構のルート鍵のペアが破られるセキュリティの侵害から回復することができ、これは既存の解決法では提供されないセキュリティ機能である。
【0046】
図4は、チップセットを使用する例示的方法を概略的に説明する図である。例示として、この方法は、チップセット402およびCA/DRMクライアント404を使用して実施される。(例えばヘッドエンドシステム4の)コンテンツ配信モジュール406は、条件付きアクセスデータ(ECMやEMMなど)およびスクランブルがかけられたコンテンツストリームを受信機2のチップセット402に提供することができる。チップセット402は、さらなる処理のために条件付きアクセスデータをCA/DRMクライアント404に渡すことができる。
【0047】
製造時に、チップセット402は鍵ペアを用いて個別化設定することができる。個別化設定段階時に、その鍵ペアをチップセットの通し番号CSSNに関連付ける。CSSNは、チップセット402のメモリ要素410に記憶することができる。鍵ペアは、チップセットの公開鍵CSPK(チップセット402のメモリ要素414に記憶される)、およびそれに対応するチップセットの秘密(秘密)鍵CSSK(チップセット402のメモリ要素416に記憶される)を含む。鍵ペアは、チップセット402内で(例えば鍵ペア個別化設定モジュール412を使用して)生成することが好ましい。あるいは、鍵ペア個別化設定モジュール412は、チップセット402の外部で(チップセット製造者が利用可能なチップセット個別化設定システム内で)実装し、製造者は、個別化設定時にCSSKおよびCSPKをチップセット402にロードすることができる。その後、製造者は自身のシステムからCSSKを削除することができる。明らかなように、関連付けられた公開鍵暗号体系を使用して、チップセット402に受信されるスクランブルがかけられたコンテンツのスクランブルを解除するのに必要とされる制御語の秘密性を保護する。公開鍵暗号の使用により、チップ製造者はCSSNとCSPKの両方を製造されるすべてのチップセットについて公開することができる。チップセット402の製造者は番号のペアを維持し、各ペアは、チップセットの通し番号CSSNとそれに関連付けられたチップセットの公開鍵CSPKとからなる。(CSSN、CSPK)ペアのリストは、すべてのCA/DRMシステムが入手できるようにすることができる。CA/DRMシステムへの配布時には、その情報の真正性のみを保護すればよいことが好ましい。
【0048】
攻撃者がCSPKも使用してチップセットにCWロードメッセージを生成して使用するのを成功させないために、下記のシステムおよび方法は、チップセット402がCWロードメッセージの真正性を検証することを必要とする追加的な機構を備える。この機構は、攻撃者がチップセットの公開されたCSPKを知った場合でもチップセット402に制御語を発行できないようにする。
【0049】
下記のシステムおよび方法は、ヘッドエンドシステム4に関連するCA/DRMシステムに関連付けられた別の非対称鍵ペアを使用することによりこれを実現する。この鍵ペアは、(公開)署名検証鍵SVKとCA/DRMシステムに関連付けられたそれに対応する(秘密/プライベート)署名鍵SKを含む。この鍵ペアは、署名生成アルゴリズムおよびそれに対応する署名検証アルゴリズムからなる非対称暗号方式で使用するものである。鍵ペア(SK、SVK)は、ヘッドエンドシステム4に関連付けられたCA/DRMシステムにより生成され、その秘密鍵SKはどのCA/DRM供給者にも知られる必要がないことが好ましい。
【0050】
CA/DRMクライアント404は、チップセット402および/または受信機2から転送されるECMおよび/またはEMMおよび/または他の条件付きアクセス情報を受信する通信モジュールを含むことができる。この通信モジュールは、CA/DRMクライアント404の鍵管理モジュール408の内部で実装することができる。鍵管理モジュール408は、チップセット402を介してコンテンツ配信モジュール406から受信する条件付きアクセスデータからSVKを取得することができる。SVKは、ヘッドエンドシステム4からCA/DRMクライアント404に提供することができる。
【0051】
署名検証鍵SVKは、CA/DRMクライアント404のメモリ要素420に記憶される。CA/DRMクライアント404は、署名検証鍵SVKをチップセット402に送信し、その結果、チップセット402はチップセット402のメモリ要素424にSVKを記憶することができる。
【0052】
下記の説明から明らかになるように、ヘッドエンドシステム4に関連付けられたCA/DRMシステムは、ランダムな値CW*(または同義で「仮想制御語」とも呼ぶ)を生成する。仮想制御語CW*は、コンテンツのスクランブル(解除)には直接的には使用されない。代わりに、CW*およびSVKから導出することが可能な値、すなわち制御語CWがコンテンツのスクランブル(解除)に使用される鍵となる。ヘッドエンドシステム4は、ECMを使用して仮想制御語CW*を受信機2のチップセット402に送る。チップセット402は、受け取ったECMをフィルタリングし、CA/DRMクライアント404に転送される条件付きアクセスデータの一部としてCA/DRMクライアント404に転送する。鍵管理モジュール408は、受け取ったECMから仮想制御語CW*を取得する。
【0053】
チップセット402は、スクランブルがかけられたコンテンツのスクランブルを解除するデスクランブラ(descrambler)434を含む。上記のように、チップセット402はCW*をデスクランブラ434で直接的には使用せず、チップセット402のHモジュール432によって実装されるハッシュ関数Hを使用してCW*およびSVK(メモリ要素424に記憶される)からCWを導出する。Hモジュール432は2つの入力(CW*およびSVK)を合成してから、合成した入力にハッシュ関数を適用して出力CWを生成する。Hモジュール432は、チップセット402の暗号/セキュアモジュール内で実装することができる。関数Hは、他の適当な暗号関数であってもよい(すなわち必ずしもハッシュ関数である必要はない)。関数Hの可能な実装は、好ましくは以下の特性を有する。出力CWを与えられたときに、SVK*およびCW**がCWに対応するように(すなわち関数Hへの入力として、またはHモジュール432への入力としてSVK*およびCW**を提供すると、結果として制御語CWが出力されるように)鍵ペア(SK*、SVK*)および仮想制御語CW**を得ることが難しい(例えば困難、計算的に困難、不可能、または計算的に不可能)。特定の実施形態では、「難しい」とは、攻撃者が、SVK*およびCW**がCWに対応するように多項時間または空間内で鍵ペア(SK*、SVK*)および仮想制御語CW**を導出することが不可能であることを意味する。他の実施形態では、「難しい」とは、そのような値を得るために必要とされる演算の回数またはメモリの大きさに下限を指定することと定義することができる。第3の例として、「難しい」とは、上記性質が満たされない確率の上限を指定することと定義することができる。
【0054】
この性質を備える関数Hの一例は以下である。(1)例えばSVKの値をCW*の値に付加することにより入力CW*とSVKを合成して、中間の結果Xを生成し、(2)第2原像の計算が困難なハッシュ関数を入力Xに適用して出力CWを生成する。上記の好ましい性質がこの例で成立することを理解するために、制御語CWおよび公開鍵SVKを与えられて、攻撃者が、SVK*およびCW**がCW SVKに対応するように、SVKに等しくないSVK*および仮想制御語CW**を求めることが難しいことを考察したい。これを理解するために、攻撃者がそのようなSVK*とそのようなCW**を生成することが可能であると仮定する。そして、出力CWおよび入力SVKおよびCW*を与えられると、SVK*がSVKと等しくないため、同じ方法を適用して、ハッシュ関数へのSVK*およびCW**からなる第2の原像を生成することができる。これは、ハッシュ関数が第2原像計算の困難性を持たないことを意味し、仮定と矛盾する。その結果、攻撃者にとって唯一の選択肢は、ヘッドエンドシステム4に関連付けられたCA/DRMシステムの公開鍵に関連付けられた署名鍵(すなわちSVK)を求めることとなり、これは非対称方式では本質的に不可能である。また、関数Hは、仮想制御語CW*が既知の場合(すなわち第2原像の計算が困難なハッシュ関数への入力が両方とも分かっている場合)にも上記の所望の性質を満たすことに留意されたい。これは以下のように理解することができる。出力CWおよび第2原像の計算が困難なハッシュ関数への指定された入力を与えられると、与えられた出力CWに対応する第2原像の計算が困難なハッシュ関数への第2の異なる入力のセットを求めることは本質的に不可能である。これは、攻撃者が与えられたCWに対応するSVKと異なる署名検証鍵を求めることができないことを意味する。攻撃者にとって唯一の選択肢は、SVKに関連付けられた署名鍵を求めることであるが、これは非対称暗号方式では本質的に不可能である。
【0055】
関数Hを適用した後、Hモジュール432は、チップセット402のメモリ要素438に出力CWを記憶する。メモリ要素438のCWを使用して、スクランブル解除モジュール434は、コンテンツ配信モジュール406から提供されたコンテンツのスクランブルを解除し、スクランブル解除したコンテンツをさらなる処理(例えば映像または音声の伸張)のためにチップセット402のコンテンツデコーダ440に送信する。コンテンツデコーダ440は、チップセット402とは独立した(または外部の)モジュールとして受信機2内に実装することができる。
【0056】
対称暗号化を使用して仮想制御語CW*の秘密性と真正性を保護する。詳細には、ヘッドエンドシステム4に関連付けられたCA/DRMシステムにより、対称チップセットロード鍵CSLKがチップセット402について(かつ好ましくはそのチップセット402に一意に)生成される。CSLK(CA/DRMクライアント404を行き先とし、CA/DRMシステムから提供される秘密性のある真正な経路を使用して保護される)が、初期化パターンCSLK-init(チップセット402を行き先とする)と共に、チップセット402に接続されたCA/DRMクライアント404に送信される。初期化パターンCSLK-initは、CSLKを暗号化したバージョン(チップセット402のCSPKを使用して暗号化される)および、下記で説明するようにCSLKを暗号化したバージョンの署名(署名は署名鍵SKを使用して生成される)を含む。したがって、チップセット402でCSLK-initを処理してCSLK値を生成することができるように、CSLKを暗号化してCSLK-initを生成する。
【0057】
一部の実施形態では、CSLK(CA/DRMクライアント404を宛先とし、CA/DRMシステムから提供される秘密性のある真正な経路を使用して保護される)および初期化パターンCSLK-init(チップセット402を宛先とする)は、1つまたは複数のEMMを使用してヘッドエンドシステム4からチップセット402に送信され、チップセット402は、EMMを抽出して、CA/DRMクライアント404の鍵管理モジュール408に転送する。(CA/DRMクライアント404とチップセット402との一意の組み合わせがヘッドエンドシステム4内で分からない場合は、CSLKと初期化パターンCSLK-initのパッケージングと送信に別々のEMMを使用することが好ましい。)そして、鍵管理モジュール408は、CA/DRMクライアント404およびチップセット402で使用するためにEMMからCSLKおよびCSLK-initを抽出することができる。CSLKはCA/DRMクライアント404のメモリ要素418に記憶することができ、CSLK-initは、CA/DRMクライアント404のメモリ要素422に記憶することができる。CA/DRMクライアント404は、その後初期化パターンCSLK-initをチップセット402に転送することができる。
【0058】
CA/DRMクライアント404は、CA/DRMクライアント404の対称暗号化モジュール444を使用してCW
*(その鍵管理モジュール408がECMから抽出し、鍵管理モジュール408に転送されている)をCSLK(メモリ要素418に記憶されている)で暗号化して{CW
*}
CSLKを生成する。CSLKによるCW
*の暗号化は、CA/DRMクライアント404内の任意の適切なセキュリティモジュールで行うことができる。CW
*を暗号化したversion{CW
*}
CSLKは次いでチップセット402に送られ、チップセット402の対称解読モジュール442(対称暗号化モジュール444に対応する)を使用して解読される。解読モジュール442は、チップセット402のメモリ要素430に記憶されたCSLK値を使用してCW
*を得る。
【0059】
初期化パターンCLSK-initおよび/またはCW
*の暗号化バージョンは、チップセット402と通信的に接続されたCA/DRMクライアント404内の任意の適切な送信モジュールを使用してCA/DRMクライアントからチップセット402に送信することができる。CW
*の暗号化されたバージョンおよび/または初期化パターンCLSK-initは、チップセット402内のさらに別の通信モジュールを使用してチップセット402で受信することができる。
【0060】
{CW*}
CSLKを解読するためにメモリ要素430に記憶されたCSLK値を得るために、チップセット402は、署名検証モジュール426および解読モジュール428として実装される2つの暗号動作を含む。署名検証モジュール426および解読モジュール428は、チップセット402内の任意の適切な暗号モジュール内に実装することができる。チップセット402は、署名検証モジュール426およびヘッドエンドシステム4に関連付けられたCA/DRMシステムのSVK(チップセット402のメモリ要素424に記憶されている)を使用してCSLK-initの真正性を検証する。署名検証モジュール426がCSLK-initが真正でないと判断した場合(すなわち署名がSVKに関連付けられたSKを使用して生成されていない場合)、チップセット402は、その後、新しいCSLK-initメッセージおよび/または新しいSVKが受信されて新しいCSLK-initメッセージを検証できるようになるまで、コンテンツの解読を一切行わないなど適切な措置を行って、受信機2のユーザが解読されたコンテンツへのアクセスを得ないことを保証することができる。あるいは、署名検証モジュール426は、検証が合格の場合のみ、すなわちCSLK-initがメモリ要素424に記憶されたSVKに対応するSKを使用して署名されている場合にのみ、解読モジュール428がそこからCSLKを得ることができる値を出力することができる。一方、検証が不合格の場合、すなわちCSLK-initがメモリ要素424に記憶されたSVKに対応するSKを使用して署名されていない場合には、署名検証モジュール426は、解読モジュール428がそこからCSLKを得ることができない値を出力することができる。例えば、メッセージ回復機能を備える署名機構を使用することができる。
【0061】
CSLK-initの真正性を検証した後、チップセット402のCSSK(メモリ要素416に記憶されている)を使用してCSLK-init中の暗号化されたCSLKを解読する。CSLKはチップセット402のCSPKで暗号化されているため、対応するCSSKを持つチップセットだけがCSLK-initメッセージからCSLKを正しく解読することができる。
【0062】
チップセット402がCSLKを得ると、得られたCSLKを使用して、解読モジュール442で{CW
*}
CSLKを解読してCW*を得ることができる。SVKの真正性およびCSLK-initメッセージの真正性が保護される場合には、攻撃者は、チップセット402内でCW*を生じさせる所与のCW*についての暗号化されたCW*メッセージを構築できないという点で、CW*の真正性が保護される。CSLK-initメッセージの真正性は、そのメッセージをSKで署名することにより保護される。Hモジュール432とメモリ要素424に記憶されたSVK値を使用して、SVKとCW*を合成し、処理してCWを生成する。Hモジュールは、SVKが真正でない場合はコンテンツのスクランブル解除が失敗するという意味で署名検証鍵SVKの真正性を保護する。すなわち、署名鍵SKを知らない攻撃者が求めた鍵ペア(SK*,SVK*)の署名検証鍵が入力としてチップセットに提供され(それにより例えば攻撃者によって選択されたCSLKをロードし、そのCSLKを使用して所与のSVK*をロードする)と、Hモジュール432は正しいCWを出力せず、その結果コンテンツのスクランブル解除は失敗する。
【0063】
対称チップセットロード鍵CSLKを使用して、対称暗号化アルゴリズムおよび鍵CSLKで暗号化されたCW*値を解読する。Hモジュール432はCW*およびSVKから適切にCWを導出して、スクランブル解除モジュール434にCWをロードしてコンテンツのスクランブルを解除できるようにする。この実装には、CSLK-initメッセージを処理して最初にCSLKを得る際にチップセット402は公開鍵暗号動作のみを行えばよいという利点がある。通常の動作時には、CSLKおよびSVKはチップセットの内部に記憶することができ、CW処理のオーバーヘッドは既存のシステムに近い。Hモジュール432に関連する計算ステップは、通常の対称暗号化(または解読)ステップと同等である。
【0064】
図4との関連で説明するCA/DRMクライアント/チップセット構成で機能するために、ヘッドエンドシステム4は、チップセット402ごとにチップセットロード鍵の初期化パターン(CSLK-init)を生成するように構成される。
図5は、コンテンツ配信ネットワークのそのようなヘッドエンドシステム4で使用する方法の概略説明図である。
【0065】
具体的には、ヘッドエンドシステム4のEMM生成器518は、対象チップセット402にランダムなチップセットロード鍵CSLKを生成する(例えばEMM生成器518のチップセットロード鍵生成器508を使用する)。CSLKは、任意の疑似乱数生成器を使用して生成してよい。好ましくは、EMM生成器518はチップセットロード鍵生成器508を使用して、チップセット402の全数のうち各チップセット402に固有のCSLKを生成する。すなわち、ヘッドエンドシステム4のCA/DRMシステムでサービスされる各受信機2は、その他の受信機2と異なる独自のCLSKを持つ。これにより、メッセージ{CW*}
CSLKの(不正な)共有を防止する。
【0066】
EMM生成器518は、対象チップセット402のCSPKを使用して、生成されたCSLKを暗号化する(例えばEMM生成器518の暗号化モジュール510を使用する)。
【0067】
EMM生成器518は、そのCA/DRMシステムによってサービスされているチップセット402のCSPKを記憶するCSPKストア504を備えることができる。暗号化モジュール510は、チップセット402の解読モジュール428で行われる解読処理に対応する暗号化処理を行う。
【0068】
EMM生成器518は、(EMM生成器518のメモリ要素502に記憶された)SKを使用して、暗号化されたCSLKに署名してチップセットロード鍵初期化パターンCSLK-initを生成する(例えばEMM生成器518の署名モジュール512を使用する)。そして、EMM生成器518は生成したCSLK-initをCSLK(CA/DRMクライアント404を行き先とし、CA/DRMシステムにより提供される秘密性のある真正な経路を使用して保護される)と共にパッケージしてEMMを形成する。このEMMは、対応するCSPKまたはCSSNを持つチップセット402に接続されたCA/DRMクライアント404を対象とする。CA/DRMクライアント404とチップセット402の一意の組み合わせがヘッドエンドシステム4内で分からない場合は、CSLKおよびCSLK-initのパッケージおよび送信には別々のEMMを生成し、使用することが好ましい。
【0069】
ヘッドエンドシステム4は、CW*のランダム値を生成するCW生成器506を含む。CW生成器506は、任意の疑似乱数生成器を使用してCW*のランダム値を生成することができる。
【0070】
ヘッドエンドシステム4は、CW生成器506で生成されたCW*を受け取って受け取ったCW*を含むECMを生成するECM生成器516を含む。
【0071】
ヘッドエンドシステム4はマルチプレクサ524を含む。マルチプレクサ524は、CA/DRMモジュール(またはスクランブルモジュール)526に送信する適切なデータを選択し、ECM生成器516から出力されるECM、EMM生成器518から出力されるEMM、およびコンテンツ、の少なくとも1つを選択する。ECMおよび/またはEMMは、チップセット402に送信するためにマルチプレクサ524からコンテンツ配信モジュール528に渡すことができる。マルチプレクサ524から渡されたコンテンツは、CWを使用してCA/DRMモジュール526でスクランブル処理される。これには、コンテンツスクランブル解除モジュール434が行うことが可能なコンテンツのスクランブル解除に対応する任意形態のコンテンツスクランブル技術を伴う可能性がある。その後、スクランブルがかけられたコンテンツはコンテンツ配信モジュール528に供給され、コンテンツ配信モジュール528はスクランブルがかけられたコンテンツを受信機2に送信する。
【0072】
ヘッドエンドシステムは、CA/DRMモジュール526内でコンテンツにスクランブルをかけるための制御語を生成するHモジュール520を含む。Hモジュール520は暗号モジュール内に実装することができる。CWを生成するために、Hモジュール520は、
図4のHモジュール432に対応する関数Hを実装する。詳細には、Hモジュールは、CW生成器506で生成され、ECM生成器516から提供されるECMで送信されるCW*値からCWを導出する。Hモジュール520は、メモリ要素514に記憶された署名検証鍵SVKをCW生成器506で生成されたCW*と組み合わせ、関数H(例えばハッシュ関数)を適用してCW*値をCWに変換する。Hモジュール432およびチップセット402の関数Hについての上記の説明(および要件)は、Hモジュール520とその関数Hに当てはまる。チップセット402のHモジュール432は、同じ入力(SVKおよびCW
*)を与えられると、ヘッドエンドシステム4のHモジュール520と同じ出力CWを生成する。
【0073】
上記の方法およびシステムは、DVB SimulCrypt仕様(DVB=デジタル映像放送)に記載されるヘッドエンドシステムなどのシステムで使用することができる(ETSI TS 103 197を参照されたい)。DVB SimulCryptの仕様では、2つ以上のCA/DRMシステムが1つの制御語CWを共通の鍵として共有することができる。デジタルTVのコンテンツストリームのスクランブル処理で使用されるCWストリームの共有を容易にする一般的なヘッドエンドシステムのプロトコルがDVB SimulCrypt仕様に記載される。
【0074】
したがって、
図6に、DVB SimulCryptを利用するコンテンツ配信ネットワークのそのようなヘッドエンドシステム4で使用する方法を概略的に示す。詳細には、
図6で、ヘッドエンドシステム4は2つのCA/DRMシステムを備え、各システムが個々のEMM生成器518(EMMG
1およびEMMG
2)およびECM生成器516(ECMG
1およびECMG
2)を有する。知られるように、SimulCryptシンクロナイザ530を使用して複数のECM生成器516を連携させる(例えばCW生成器506から出力されるCW*を取得し、CA/DRM固有のパラメータと共にCW*をECM生成器516に提供し、ECM生成器516からECMを得、ECMのタイミングとマルチプレクサ524へのそれらの提供を同期させることにより)。ETSI TS 103 197に記載されるような通常のDVBシステムでは、SimulCryptシンクロナイザ530がスクランブルモジュール526に制御語を渡すが、上記のように、コンテンツのスクランブルに使用される実際の制御語CWを生成してその制御語CWをスクランブルモジュール526に渡すのはHモジュール520である(ECMはCWを利用せず、CW*を利用するため)。したがって、
図6では、SimulCryptシンクロナイザ530がCW*をHモジュール520に提供するものとして図示している。したがって、標準的なSimulCryptシンクロナイザ530を使用することができ、唯一の違いは、その「制御語の出力」がスクランブルモジュール526に直接接続されるのではなく、Hモジュール520に接続されることである。
【0075】
図6の2つのCA/DRMシステムは、異なるCA/DRMシステムの運営者(すなわち提供者)によって運営または運用される可能性がある。ヘッドエンドシステム4には任意数のCA/DRMシステムを関連付けることができ、本発明の実施形態は2つのみのCA/DRMシステムに限定されないことは理解されよう。
【0076】
図6に示すシステムでは、関与するCA/DRMシステムが(SK、SVK)のペアを共有する。詳細には、第1のEMM生成器518(EMMG
1)および第2のEMM生成器518(EMMG
2)の両者が同じSKおよびSVKの知識を有し、同じSKおよびSVKを利用する。詳細には、両者が、共通のSKおよびSVKに基づいて、上記のように各自のCA/DRMシステムに関連付けられた受信機2のEMMを生成する。
【0077】
上記で述べた共通のSKおよびSVKの共有にはいくつかの欠点がある。すなわち、
・秘密鍵SKを移送し、共有するために各種CA/DRMシステム間の秘密性のある経路が必要とされる。しかし、種々のCA/DRMシステム間の秘密性のある電子インターフェースは存在しない可能性がある(特にCA/DRMシステムが複数の異なるCA/DRM供給者に関連付けられている場合)。したがって、各CA/DRMシステムに各自のSKを生成させ、それに関連付けられた(公開)署名検証鍵SVKのみを共有させることが望ましい。例えば、そのようなSKは、ヘッドエンドシステム4のCA/DRMシステムのハードウェアセキュリティモジュールの内部で生成することができ、どの時点でも無保護の状態で入手可能にする必要はない。
・例えば秘密の署名鍵SKが破られた後のペア(SK、SVK)の更新は、SimulCrypt動作に関係し、SKを利用するすべてのCA/DRMシステムに同様の動作上の影響を与える。詳細には、新しい署名鍵で署名された新しいCSLK-init EMMを生成し、すべての関係するCA/DRMシステムとそれらがサービスするすべての受信機2に配布しなければならない。ペア(SK、SVK)の更新が及ぼす動作上の影響を制限することが有益である。
【0078】
本発明の実施形態はこれらの問題に対処することを目的とする。したがって、
図7に、DVB SimulCryptを利用するコンテンツ配信ネットワークのヘッドエンドシステム4で使用する方法を概略的に説明する。詳細には、
図7で、ヘッドエンドシステム4は2つのCA/DRMシステムを備え、各システムは、個別のEMM生成器718(EMMG
1およびEMMG
2)およびECM生成器516(ECMG
1およびECMG
2)を有する。これは、EMM生成器718(EMMG
1およびEMMG
2)が、それぞれの署名鍵SK
1、SK
2およびそれに対応するそれぞれの署名検証鍵SVK
1、SVK
2を備え、利用する点を除いて
図6と同じアーキテクチャである。詳細には、第1のCA/DRMシステムは独自の署名鍵SK1とそれに対応する独自の署名検証鍵SVK1を有し、第2のCA/DRMシステムは独自の(第1のCA/DRMシステムとは異なる)署名鍵SK2とそれに対応する独自の署名検証鍵SVK2を有する。各CA/DRMシステムは独立して自身のペア(SK
i、SVK
i)を生成し、自身の署名鍵SK
iをすべての他のCA/DRMシステムに対して秘密に維持することができ、署名検証鍵SVK
iのみを公開すればよい。これは公開鍵であるため、その秘密性を保護する必要がないことを思い出されたい。これは、SimulCrypt動作時にCA/DRMシステム間に秘密性のある経路(または保護されたインターフェース)が必要でなくなることを意味する。
【0079】
図6と同様に、
図7の2つのCA/DRMシステムは、異なるCA/DRMシステム運営者(すなわち提供者)により運営または運用される可能性がある。
図7に示すシステムでは、任意数のCA/DRMシステムをヘッドエンドシステム4に関連付けることができ、本発明の実施形態は2つのみの条件付きアクセスヘッドエンドシステムに限定されないことは理解されよう。したがって、一般にはn個のCA/DRMシステム、およびしたがってn個の異なる個々のペア(SKi、SVKi)がある可能性がある。
【0080】
図6のHモジュール520が、
図7に示すシステムではHモジュール720に置き換えられる。詳細には、この場合は各CA/DRMシステムが独自の署名検証鍵SVKiを持つので、Hモジュール720は、CW生成器506から出力される署名検証鍵SVK1,..., SVK
nのセットおよびCW*を受け取るように構成される。Hモジュール720は、Hモジュール720が(複数の)署名検証鍵SVK1,..., SVK
nのセットに対して動作することを考慮するようにセキュリティ要件が変更される点を除いて、Hモジュール520と同様の関数Hを実装する。詳細には、Hモジュール720は、入力CW*、SVK1,..., SVK
nを合成し、合成した入力にハッシュ関数を適用して出力CWを生成することができる。関数Hは、任意の他の適切な暗号関数であってもよい(すなわち必ずしもハッシュ関数である必要はない)。関数Hの可能な実装は以下の特性を持つことが好ましい。出力CWを与えられたときに、求められた署名検証鍵SVK*が、求められたHへの入力にある署名検証鍵であり、かつCWがその入力に対するHの出力となるように(すなわち、その入力を関数Hに、またはHモジュール720への入力として提供すると結果として制御語CWが出力されるように)、鍵ペア(SK*、SVK*)および関数Hへの入力を見つける、または計算する、または求めることが難しい(例えば困難、計算的に困難、不可能、または計算的に不可能)。特定の実施形態では、「難しい」とは、攻撃者が、そのような入力を多項時間または空間内で導出することができない可能性があることを意味する。他の実施形態では、「難しい」とは、そのような入力を見つけるために必要とされる演算の回数またはメモリの大きさに下限を指定することと定義することができる。第3の例として、「難しい」とは、上記性質が満たされない確率の上限を指定することと定義することができる。
【0081】
上記の特性を持つ関数Hの一例は以下である。(1)入力CW*、SVK
1,..., SVK
nを、例えばそれらの値を連結することによって合成して中間結果Xを生成し、(2)第2原像の計算が困難なハッシュ関数を入力Xに適用して出力CWを生成する。1つのSVKのみを受け付ける関数Hの説明時に上記で提供した分析は、署名検証鍵のセットを受け付ける、この変更を加えた関数Hにも同様に当てはまる。
【0082】
図8に、DVB SimulCryptを利用するコンテンツ配信ネットワークのヘッドエンドシステム4で使用する別の方法を概略的に示す。
図8に示すシステムおよび方法は、CA/DRMシステムの1つが複数のペア(SK
i,j、SVK
i,j)を有することを除いて
図7に示すシステムおよび方法と同じである。詳細には、
図8において、第2のCA/DRMシステムは、第1のペア(SK
2,1、SVK
2,1)および第2のペア(SK
2,2、SVK
2,2)を有する。ただし、CA/DRMシステムが、署名鍵とそれに対応する署名検証鍵のペア(SK
i,j、SVK
i,j)を任意数有してよいことが理解されよう。第2のCA/DRMシステムのEMM生成器(EMMG
2)は、署名処理を実行してCSLK-init EMMを生成する際に使用する特定のSK
2,jを(そのCA/DRMシステムに関連付けられた署名鍵SK
2,1およびSK
2,2から)選択するためのスイッチ800(または何らかの他の決定手段)を備えることができる。
【0083】
ヘッドエンドシステム4に関連付けられた任意数のCA/DRMシステムが、署名鍵とそれに対応する署名検証鍵の関連付けられたペア(SK
i,j、SVK
i,j)を複数個有してよいことが理解されよう。したがって、一般に、ヘッドエンドシステム4に関連付けられたCA/DRMシステムがm個(m≧1)あり、i番目(i=1...m)のCA/DRMシステムが署名鍵とそれに対応する署名検証鍵のペア(SK
i,j、SVK
i,j)をn
i個(n
i≧1)を有する場合には、署名鍵とそれに対応する署名i=1のペア(SK
i,j、SVK
i,j)が
【0085】
個ある。Hモジュール720は、生成された仮想制御語CW*と共にCA/DRMシステムから入力としてn個の署名検証鍵SVK
i,jを受け取り、上記で
図7について説明したように制御語CWを生成する。
【0086】
図7および
図8の各CA/DRMシステムは、そのCA/DRMシステムに固有の署名鍵(およびそれに関連付けられた署名検証鍵)を使用する(すなわち2つのCA/DRMシステムが同じ署名鍵を使用することはない)ため、CA/DRMシステムの運営者(すなわち提供者)は、他のCA/DRMシステム(場合によっては別のCA/DRMシステム運営者に運用される)に大きな影響を及ぼすことなく、1つのCA/DRMシステムの鍵ペアを変更することができる。より具体的には、CA/DRMシステムがペア(SK
i,j、SVK
i,j)をペア(SK、SVK)に更新する場合、(a)そのCA/DRMシステムのEMM生成器は、そのCA/DRMシステムに関連付けられた受信機2に対して新しいCSLK-init EMM(CSLK値および更新された署名鍵SKに基づく署名を含む)を生成し、配布する必要があり、(b)その他のCA/DRMシステムは新しい署名検証鍵SVKを知らされる必要があり、(c)すべてのCA/DRMシステムは新しい署名検証鍵SVKを各自に関連付けられたすべての受信機に配布しなければならない(下記で説明するように、受信機は新しい署名検証鍵にアクセスする必要があるため)。放送網では、新しい署名検証鍵SVKを含むメッセージはすべての受信機に同一にすることができるため、この配布は一般に帯域幅的に非常に効率的である。
【0087】
したがって、1つのCA/DRMシステムが更新された(SK、SVK)のペアで鍵ペア(SK
i,j、SVK
i,j)を更新/書き換えた場合(例えば署名鍵SK
i,jが破られた後に)、SimulCrypt動作時のその他のCA/DRMシステムへの影響は最小に抑えられる。さらに、署名鍵SK
i,jが破られた場合、その他のCA/DRMシステムのヘッドエンドのセキュリティは、各自の署名鍵が破られた署名鍵と同じでないため、破られることはない。それらの他のCA/DRMシステムは単に新しい更新後の署名検証鍵SVKを知らされるだけでよく、それらの他のCA/DRMシステムは、サービスしている受信機2にも新しい更新された署名検証鍵SVKを知らせる必要があり、これはそれら他のCA/DRMシステムにとっては平易な動作である。署名鍵SK
i,jが破られた場合、受信機のセキュリティは、更新された署名検証鍵SVKが(SVK
i,jの代わりに)Hモジュールへの入力として使用されると直ちにSimulCrypt動作においてすべてのCA/DRMシステムについて回復され、破られた署名鍵SK
i,jを無効にする。
【0088】
CA/DRMシステムの運営者が鍵ペア(SK
i,j、SVK
i,j)を新しい鍵ペア(SK、SVK)に更新したい場合は、新しい鍵ペアへの切り替えは、運営者の受信機2の全保有数に含まれるすべての受信機2に同時に行われる(コンテンツにスクランブルをかけるために生成される制御語は新しい鍵ペアへの切り替え時に、Hモジュール720を介して更新後のSVKに基づくため)。運営上の観点からは、提供者が新しい鍵ペアを使用し始めるときに、それらの受信機2のすべてがすべての必要情報を(EMMを介して)受信していない恐れがある(より正確には、新しいSVKを使用して制御語を生成するときに、新しいSVK、新しいSKで署名した受信機の一意のCSLK-initパターン、またはCA/DRMクライアントのためのCSLKがEMMを介して受信機2に送信または受信されていない可能性がある)。それにより、その後コンテンツのスクランブル解除に成功することができないため、いくつかの受信機がしばらく「停止(black out)」する可能性がある(更新後のCSLKメッセージまたは更新後のSVKを使用することができないため)。ただし、関連付けられた(SK
i,j、SVK
i,j)ペアを複数有するCA/DRMシステムは以下のような利点を持つ。第1の(現在の)鍵ペア(SK
i,j、SVK
i,j)を使用してCSLK-initパターンメッセージを生成することができ、すなわち署名鍵SK
i,jを使用してCSLK-initパターンに署名する。第2の鍵ペア(SK
i,k、SVK
i,k)の署名鍵SK
i,kは将来の使用のために予約される(鍵SK
i,kをセキュアに記憶する)。第1および第2のペア(すなわちSVK
i,jおよびSVK
i,k)両方の署名検証鍵(すなわちSVK
i,jおよびSVK
i,j)をHモジュール720で使用して、コンテンツにスクランブルをかけるための制御語CWを生成する。運営者が(例えば署名鍵SK
i,jが破られた場合に)第1の鍵ペア(SK
i,j、SVK
i,j)を無効にしたいとする。はじめにCA/DRMシステムはセキュアな記憶域からSK
i,kを取り出す。次にCA/DRMシステムは、SK
i,kを署名鍵として使用して新しいCSLK-init EMMを生成する(CSLKも更新する場合は、CA/DRMクライアントのための新しいCSLK値を含むEMMも
生成する必要がある)。CA/DRMシステムはEMMを受信機2に配布する。CA/DRMシステムは第3の鍵ペア(SK
i,w、SVK
i,w)も生成し、公開署名検証鍵SVK
i,wをSimulCrypt動作を行っているすべてのCA/DRMシステムに配布する。すべてのCA/DRMシステムはSVK
i,wを各自の受信機に配布する(例えばEMMを使用する)。コンテンツにスクランブルをかけるための制御語CWを生成するためにHモジュール720でSVK
i,jおよびSVK
i,kが使用される限り、受信機2は、署名鍵SK
i,jまたはSK
i,kで署名されたCSLK-initメッセージを受け付け(または正しく動作して、CSLK-initメッセージによる正しいスクランブル解除を行い続ける)。すなわち、この時に、チップセット402は、すべての値を同時に強制的に切り替えるのではなく、SK
i,kで署名された新しい/更新後のCSLK-initメッセージを使用するように別個に切り替わることができる。例えば、CA/DRMシステムは、一度にCA/DRMクライアント404の群に対して新しいCSLK EMMを使用し始めるように要求することができる(新しいCSLK-initパターンはSK
i,kで署名されている)。これにより、同時に停止する可能性のある受信機2の数を制限する。CA/DRMシステムがすべての受信機2に新しいCSLK(EMM)を使用するよう要求すると、受信機のセキュリティは、SVK
i,jではなくSVK
i,wをHモジュール720への入力として使用することにより回復することができる。その後、第1の鍵ペア(SK
i,j、SVK
i,j)が第2の鍵ペア(SK
i,k、SVK
i,k)で更新され、チップセットが(破られた)SK
i,jで署名されたCSLK-initメッセージを受け付けないという意味で、受信機のセキュリティはSVK
i,wを使用して導出された制御語で暗号化されたコンテンツについて回復される。このプロセスは反復的に適用することができ、次の反復における鍵ペアは(SK
i,k、SVK
i,k)および(SK
i,w、SVK
i,w)になることに留意されたい。
【0089】
図9は、チップセットを使用する方法の例を概略的に説明する図である。これは
図4に示す方法と同じであり(したがって2つの図面の違いのみを以下で説明する)。
図9に示すシステムおよび方法は、
図7および
図8に示すシステムと互換性がある。
【0090】
詳細には、CA/DRMクライアント404に1つの署名検証鍵SVKが提供され、その鍵をチップセット402に提供する代わりに、CA/DRMクライアント404はn個の署名検証鍵SVK
1,..., SVK
nのセットを受け取り、そのn個の署名検証鍵SVK
1,..., SVK
nをチップセット402に提供する(一般性を失うことなく、1つの添え字を使用して異なる署名検証鍵を区別する。そのセットにある2つ以上の鍵を1つのCA/DRMシステムに関連付けてよい)。CA/DRMクライアント404は、CA/DRMクライアント404の対応するメモリ要素420(i)に各署名検証鍵SVK
iを記憶することができ、チップセット402は各署名検証鍵SVK
iを、チップセット402の対応するメモリ要素424(i)に記憶することができる。
【0091】
上記のように、CA/DRMクライアント404は、CA/DRMクライアント404の受信機2にサービスしているCA/DRMシステム(ヘッドエンドシステム4に関連付けられている)から署名検証鍵SVK
1,..., SVK
nのセットを通知される。
【0092】
また、
図4のHモジュール432が
図9ではHモジュール900に置き換えられている。Hモジュール900は、
図7および
図8に示すシステムのHモジュール720と同様に動作する。したがって、チップセット402に正当な/現在の署名検証鍵SVK
1,..., SVK
nが与えられ、正しい仮想制御語CW*を得ることに成功したとすると、Hモジュール900の出力は、ヘッドエンドシステム4のHモジュール720から出力される制御語CWと同じになり、したがってチップセット402はスクランブルがかけられたコンテンツストリームのスクランブル解除に成功する。
【0093】
好ましくは、チップセット実装のセキュリティ要件は、暗号化されたCW*に関連付けられたCSLK-initメッセージの真正性が署名検証鍵SVK
1,..., SVK
nのセットにある鍵の1つで検証され、かつCSLK-initメッセージが真正であることが判明した場合に、CW*および署名検証鍵SVK
1,..., SVK
nのセットがHモジュール900のみに提供されてCWを導出する(またはそのようにして導出されたCWがコンテンツのスクランブル解除のみに使用される)ことである。
【0094】
チップセット402は複数の署名検証鍵SVK
1,..., SVK
nを利用することができるため、署名検証モジュール426は、CA/DRMクライアント404から受け取るCSLK-initパターンに対応する署名検証鍵SVK
iを選択するように構成される。例えば、ヘッドエンドシステム4は、SVK
iに一意の鍵識別子ID
iを割り当て、ID
iを、SVKと、対応する署名鍵SK
iで署名されたCSLKパターンとに付加することができる。これにより署名検証モジュール426は、受け取った署名検証鍵SVK
1,..., SVK
nのセットから関連付けられた署名検証鍵SVK
iを選択することができる。他の機構を使用して、署名検証モジュール426が正しい署名検証鍵SVK
iを選択できるようにしてよいことが理解されよう。例えば、署名検証モジュール426は、そのうちの1つがCSLK-initパターンの署名の検証に合格するまで各署名検証鍵SVK
1,..., SVK
nを試すように構成することができ、どの鍵もその署名の検証に合格しない場合は署名検証プロセスは不合格であることになる。
【0095】
一部の実施形態では、署名検証鍵SVK
1,..., SVK
nのセットおよびCSLK-initメッセージが、すべての暗号化されたCW*と共にチップセット402に提供される。そのような実施形態では、署名検証鍵のセットは、チップセット402の内部に将来の使用のために記憶しておく必要がない。
【0096】
実践では、CA/DRMクライアント404およびチップセット402は、鍵CSLKを使用してCA/DRMクライアント404からチップセット402への複数の仮想制御語CW*の転送を保護する。すべてのCW*を導出するための時間を要する公開鍵演算(すなわちチップセット402のCSSKを使用して解読モジュール428で行われる公開鍵の解読、およびSVK
iを使用して署名検証モジュール426により行われる署名の検証)を避けるために、一部の実施形態では、鍵CSLKを得ると、チップセット402の内部に記憶し(維持する)(例えばメモリモジュール430に)。したがって、署名検証モジュール426および解読モジュール428の公開鍵演算は、チップセットがCA/DRMクライアント404から新しいCSLK-initパターンを受け取るときにのみ行えばよい。
【0097】
一部の実施形態では、Hモジュール900への入力として使用される署名検証鍵SVK
1,..., SVK
nのセットが、CA/DRMクライアント404からすべての暗号化されたCW*と共にチップセット402に提供される。そのような実施形態では、署名検証鍵のセットを将来の使用のためにチップセット402の内部に記憶しておく必要がない。セットSVK
1,..., SVK
nが暗号化されたCW*メッセージと共にCA/DRMクライアント404から提供されると、記憶されているCSLKを使用して暗号化されたCW*を解読する前に、本発明のいくつかの実施形態は、チップセット402が(メモリモジュール430に記憶された)CSLKが、受け取られたセットSVK
1,..., SVK
nにある鍵の1つを使用してロード/取得されたかどうか(すなわち、最初にCSLKを取得して記憶する処理で、署名検証モジュール426が受け取られた署名検証鍵SVK
1,..., SVK
nの1つを使用して受け取ったCSLK-initパターンに署名検証処理を行うことを要したかどうか)を検証するように構成される。これを実現する方法の1つは以下の通りである。CSLK-initメッセージ(関連付けられた署名検証鍵SVK
iと共に受信される)を処理した後、チップセット402は、署名検証鍵SVK
iの暗号ハッシュ値(CSLK-initパターンの真正性の検証に使用される)を計算し、チップセット402はそのハッシュ値をCSLKと共に記憶する。受け取られた署名検証鍵のセット(暗号化されたCW*と共に受信される)にあるすべての署名検証鍵について、チップセット402は、そのハッシュ値を計算し、計算したハッシュ値を、暗号化されたCW*を解読するために必要なCSLKと共に記憶されたハッシュ値と比較する。この検査で記憶されたCSLKが有効な署名検証鍵を使用してロードされていることが判明した場合は、記憶されたCSLKを解読モジュール434で使用して暗号化されたCW*を解読することができる。そのような実施形態では、CSLK-initメッセージは、(署名検証鍵のセットではなく)関連付けられた署名検証鍵SVK
iのみと共に提供されればよいことに留意されたい。すなわち、そのような実施形態では、署名検証モジュール426は、セットから署名検証鍵SVK
iを選択するように構成する必要がない。
【0098】
一部の実施形態では、鍵SVK
1,..., SVK
nのセット(およびそれらの鍵識別子ID
1,...,ID
n)を将来使用するためにチップセット402の内部に記憶することができる。すなわち、記憶された鍵のセット(およびそれらの鍵識別子)を使用して、CA/DRMクライアント404からチップセット402に提供されたCSLK-initメッセージおよび暗号化されたCW*メッセージを処理する。そのような実施形態では、1つまたは複数のCSLK-initパターンおよび1つまたは複数の暗号化されたCW*をチップセット402に提供することができる。チップセット402は、記憶された鍵のセットSVK
1,..., SVK
nおよび記憶された鍵識別子のセットを使用してCSLK-initメッセージからCSLKを導出することができる(記憶されたセットから正しい鍵を選択するために署名検証モジュール426で使用される)。チップセット402は、将来使用するためにCSLKを記憶することができる。チップセット402は、導出したCSLKを使用して暗号化されたCW*からCW*を取得する。次にチップセット402はCW*および記憶された鍵のセットSVK
1,..., SVK
nをHモジュール900への入力として提供して出力CWを生成することができる。このようにすると、CA/DRMクライアント404とチップセット402間の通信コストが低減し、全体的なシステム性能を向上させることができる。
【0099】
一部の実施形態では、(上記のように)複数のCSLK鍵が取得後にチップセット402内部に記憶(および維持)される。複数のCSLK鍵を記憶することにより、記憶されている現在のCSLKから別の記憶されたCSLKに切り替える際に公開鍵演算を行わずに済む。チップセット402は要求/必要時にCSLKの(高速の)切り替えを行うことができるため、これは特にチップセット402が、各CA/DRMクライアント404が異なるCSLK(および可能性としては異なる署名検証鍵のセット)を使用する可能性がある複数のCA/DRMクライアント404の同時使用をサポートする場合に有用である。
【0100】
鍵のセットSVK
1,..., SVK
n(およびそれらの鍵識別子ID
1,...,ID
nまたは鍵SVK
1,..., SVK
nの暗号ハッシュ値)が将来の使用のためにチップセット402内部に記憶されており、かつ署名検証鍵の新しいセットがチップセット402に提供され(鍵のセットSVK
1,..., SVK
nに代えてチップセット402内部に記憶される)場合は、チップセット402は、記憶されたCSLKの1つまたは複数が、新たに受け取られた署名検証鍵のセットに存在しない鍵を使用してロードされたかどうかを判定するように構成することができる。例えばCSLK-initメッセージの真正性を検証するために使用される署名検証鍵SVK
iの鍵識別子ID
i(または暗号ハッシュ値)をCSLKと共に記憶することができる。新たに受け取られた署名検証鍵のセット、記憶された署名検証鍵SVK
1,..., SVK
nのセット(およびそれらの鍵識別子またはそれらの暗号ハッシュ値)ならびにCSLKと共に記憶された鍵識別子(または暗号ハッシュ値)を使用して、記憶されたCSLKの1つまたは複数が、新たに受け取られた署名検証鍵のセットに存在しない鍵を使用してロードされたかどうかを判定することができる。そのようなCSLKがある場合は、そのようなCSLKを使用してCW*を導出することがないようにチップセット402を構成することができる(例えば、そのようなCSLKを非アクティブ化するか、または単にメモリモジュール430から削除する)。あるいは、新しい検証鍵のセットがロードされてチップセット402の内部に記憶されるたびにすべての記憶されたCSLKをメモリモジュール430から削除してもよい。さらに、記憶された(1つまたは複数の)CSLKが非アクティブ化された場合、チップセット402は、新しい検証鍵のセットがチップセット402に提供され、その新しいセットにある鍵の1つを使用してそれに関連付けられたCSLK-initパターンが検証された場合には、それらのCSLKを(再)アクティブ化するように構成することもできる。例えば、チップセット402は要求/必要時にCSLKの(高速の)切り替えを行うことができるため、(再)アクティブ化は、特にチップセット402が、各CA/DRMクライアント404が異なるCSLKおよび異なる署名検証鍵のセットを使用する可能性がある複数のCA/DRMクライアント404の同時使用をサポートする場合に有用である。
【0101】
図10〜
図12は、それぞれ
図7〜
図9に示すシステムおよび方法に変更を加えたバージョンを概略的に説明する図である。違いは、図示されるヘッドエンドシステム4およびチップセット402がhモジュール1000を含むことである。hモジュール1000は、署名検証鍵SVK
1,..., SVK
nのセットがそれぞれのHモジュール720、900に提供される代わりに、この署名検証鍵のセットを入力で受け取るように構成される。hモジュール1000は、その入力を使用して中間値Zを生成する(チップセット402はその値を将来使用するためにチップセット402のメモリモジュール1010に記憶することができる)。次いで、Hモジュール720、900が中間値Z(すなわち署名検証鍵SVK
1,..., SVK
nのセットから導出された値)および仮想制御語CW*を入力として受け取り、それに応じて制御語CWを出力する。この意味で、Hモジュール720、900は、
図4のHモジュール432(2つの入力を持ち、一方がCW*、他方が第2の値)と同様に動作する。hモジュール1000は、仮想制御語CW*を入力として受け取らない点を除いてHモジュール720、900と全く同様に動作することができる。例えば、hモジュール720は、入力SVK
1,..., SVK
nを合成し、次いで合成した入力に暗号ハッシュ関数hを適用して出力Zを生成することができる。関数hは、他の適切な暗号関数であってもよい(すなわち、必ずしもハッシュ関数である必要はない)。関数hの可能な実装は、好ましくは以下の特性を有する。Zを与えられたときに、求められた署名検証鍵SVK*が、求められたhへの入力にある署名検証鍵であり、かつZがその入力に対するhの出力となるように(すなわち、その入力を関数hに、またはhモジュール1000への入力として提供すると結果として値Zが出力されるように)鍵ペア(SK*、SVK*)およびhへの入力を見つける、または計算する、または求めることが難しい(例えば困難、計算的に困難、不可能、または計算的に不可能)。特定の実施形態では、「難しい」とは、攻撃者が、そのような入力を多項時間または空間内で導出することができない可能性があることを意味する。他の実施形態では、「難しい」とは、そのような入力を見つけるために必要とされる演算の回数またはメモリの大きさに下限を指定することと定義することができる。第3の例として、「難しい」とは、上記性質が満たされない確率の上限を指定することと定義することができる。関数hを実装する可能な方式には、関数Hを実装する各種方式(上記)が含まれる。
【0102】
ただし、一般に、そのような実施形態(hモジュール1000を利用する実施形態)では、関数Hと関数hを併用実装する場合には以下の性質を備えることが好ましい。CWを与えられたときに、求められた署名検証鍵SVK*が、求められた入力にある署名検証鍵であり、かつCWがその入力に対する関数Hと関数hの併用実装の出力となるように鍵ペア(SK*、SVK*)および関数Hと関数hの併用実装への入力を見つける、または計算する、または求めることが難しい(例えば困難、計算的に困難、不可能、または計算的に不可能)。特定の実施形態では、「難しい」とは、攻撃者が、そのような入力を多項時間または空間内で導出することができない可能性があることを意味する。他の実施形態では、「難しい」とは、そのような入力を見つけるために必要とされる演算の回数またはメモリの大きさに下限を指定することと定義することができる。第3の例として、「難しい」とは、上記性質が満たされない確率の上限を指定することと定義することができる。
【0103】
図13は、
図12のチップセット402の変形例を概略的に示し、ここではチップセット402は署名検証鍵SVK
1,..., SVK
nのセットを将来の使用のために記憶するようには構成されない。代わりに、チップセット402は単にhモジュール1000の出力、すなわち中間値Zを記憶し、その中間値ZをHモジュール900への入力として使用することができる。そのようにすると、一般に中間値Zの記憶に必要なメモリは署名検証鍵SVK
1,..., SVK
nのセットを記憶する場合に比べてはるかに少ないため、チップセット402の記憶要件を軽減することができる。また、CW*およびZからCWを導出する際の動作を向上させることができる。
【0104】
一部の実施形態では、CSLK-initメッセージ(関連付けられた署名検証鍵SVK
iと共に受け取られる)を処理した後に、チップセット402は署名検証鍵SVK
iの暗号ハッシュ値を計算し(CSLK-initパターンの真正性を検証するために使用した)、チップセット402はそのハッシュ値をCSLKと共に記憶する。署名検証鍵のセットがチップセット402に提供されると(hモジュール1000への入力として使用され、制御語を導出するためにチップセット402の内部に記憶される値Zを生成する)、チップセット402は、セットにある各署名検証鍵のハッシュ値を計算し、計算したハッシュ値と記憶されたハッシュ値(1つの記憶ハッシュ値とすべての記憶CSLK)を使用して、記憶されているCSLKの1つまたは複数が、受け取った署名検証鍵のセットにある鍵を使用してロードされたかどうかを判定することができる。先と同様に、受け取った署名検証鍵のセットに基づいてCSLKをアクティブ化、非アクティブ化、または削除するような機構を使用することができる。
【0105】
一部の実施形態では、チップセット402が署名検証鍵SVK
1,...,SVK
nのセットを受け取った後に、それら鍵各々の暗号ハッシュ値を計算し、それらの値を将来の使用のためにZの値と共に記憶する。例えば、CSLK-initメッセージが関連付けられた署名検証鍵SVK
iと共に受信された場合、チップセット402は署名検証鍵SVK
iの暗号ハッシュ値を計算することができる。次いでチップセットは計算したハッシュ値を記憶されたハッシュ値と比較し、記憶されたハッシュ値の(少なくとも)1つが計算されたハッシュ値と等しい場合のみ、CSLK-initメッセージを処理する。そのようにして、SVK
iが、記憶されたZの生成に使用された署名検証鍵SVK
1,...,SVK
nのセットの要素の1つである場合にのみCSLK-initメッセージが処理される。
【0106】
一部の実施形態では、署名検証鍵SVK
1,..., SVK
nのセットではなく、暗号ハッシュ値のセット(署名検証鍵SVK
1,..., SVK
nのセットにある鍵ごとに、その署名検証鍵から導出された対応する暗号ハッシュ値を含む)が関数H(または存在する場合は関数h)に提供される。そのような実施形態では、チップセット402は署名検証鍵のセットを受け取る(または記憶する)必要がなく、暗号ハッシュ値のセットおよびCSLK-initメッセージに関連付けられた署名検証鍵のみを受け取ればよい。チップセット402は、受け取った署名検証鍵(CSLK-initメッセージと共に受信される)の暗号ハッシュ値を計算し、そのハッシュ値を受け取った(または記憶された)暗号ハッシュ値のセットにある暗号ハッシュ値と比較して、CSLK-initメッセージと共に提供された署名検証鍵がセットSVK
1,..., SVK
nにある署名検証鍵の1つに関連付けられているかどうかを判定することができる。一実施形態では、CA/DRM(ヘッドエンド)システムは暗号ハッシュ値のセットを計算することができる。次いで、CA/DRM(ヘッドエンド)システムは暗号ハッシュ値のセットを自身のCA/DRMクライアントに送信することができる。そのような実施形態では、CA/DRMシステムは、そのCA/DRMシステムに関連付けられた署名検証鍵を、そのCA/DRMシステムに関連付けられたCA/DRMクライアント(そのCA/DRMシステムに関連付するCSLK-initメッセージを処理する)に提供するだけでよい。そのような実施形態では、通信費用、記憶費用、および計算費用を低減することができる。あるいは、暗号ハッシュ関数のセットを計算するのはCA/DRMクライアントであってもよい(署名検証鍵SVK
1,..., SVK
nのセットを受信している)。
【0107】
図14〜18はそれぞれ
図6、
図7、
図8、
図10、および
図11に対応する。ただし、
図14〜
図18に示すシステムでは、1つまたは複数のレガシーECM生成器1500および1つまたは複数のレガシーEMM生成器1550がある。レガシーECM生成器1500およびレガシーEMM生成器1550は、制御語の秘密性および真正性を保護するために上記の方法を利用しない、ヘッドエンドシステム4に関連付けられた1つまたは複数のCA/DRMシステムに対応する(すなわちそれらのCA/DRMシステムはCW*を利用しない)。したがって、レガシーECM生成器1500は、Hモジュール900により生成されたCWを受け取り、そのCWに基づいてECMを生成するように構成され、これは、仮想制御語CW*に基づくECMを生成するECM生成器516と対照的である。
図14〜
図18に示すシステムでは、レガシーECM生成器1500は、SimulCryptシンクロナイザ530を介してCWを受け取るように構成されるが、これが必須でないことは理解されよう。同様にレガシーEMM生成器1550はEMMを生成し、そのEMMをマルチプレクサ524に提供する。レガシーEMM生成器1550はHモジュール900またはhモジュール1000への入力は提供しない。
【0108】
一部の実施形態では、関数Hの出力は、コンテンツスクランブル(解除)機構で使用される2つ以上の値を含むことができる。例えば、Hモジュールの出力は、仮想制御語CW*と、CW*および鍵のセットSVK
1,..., SVK
nから導出された第2の鍵(またはhモジュール1000が使用される場合は値Z)とからなることができる。そしてこの2つの導出された鍵をスーパースクランブル(super-scrambling)の解決法で使用することができ、一方の鍵がヘッドエンドシステム4で第1のスクランブルステップで使用され、他方の鍵が第2のスクランブルステップで使用される。チップセット402は、1つではなく2つの対応するスクランブル解除ステップを行うように変更を加えることができる。一般に、Hモジュールの出力は、複数のコンテンツスクランブル(解除)ステップからなるスーパースクランブルの解決法で使用できる複数個のコンテンツスクランブル(解除)鍵を含むことができる。関数Hの出力は2つ以上の制御語も含むことができる。その制御語各々を関連付けられたコンテンツのスクランブル(解除)に使用することができる。例えば、Hモジュールの出力は2つの制御語からなることができる。第1の制御語は第1のコンテンツのスクランブル(解除)に使用することができ、第2の制御語は第2のコンテンツのスクランブル(解除)に使用することができる。関数Hの出力がコンテンツスクランブル(解除)機構で使用するための値を2つ以上含む実施形態では、関数Hの可能な実装は以下の性質を持つことが好ましい。出力Yを与えられたときに、求められた署名検証鍵SVK*が、求められたHへの入力にある署名検証鍵であり、かつYがその入力に対するHの出力となるように鍵ペア(SK*、SVK*)およびHへの入力を見つける、または計算する、または求めることが難しい(例えば困難、計算的に困難、不可能、または計算的に不可能)。(hモジュール1000を使用する場合は、上記の好ましい性質は先に述べたように適合することができる。)また、関数Hの好ましい性質が、出力の複数の部分、例えば1つのコンテンツに関連付けられたすべての鍵に独立して成立することを要求してもよい。弱い性質(すなわち出力Yに関して上記で述べた性質)が、すでに、Hの出力に関連付けられたコンテンツのうち少なくとも1つのスクランブル解除が失敗することを意味するため、これは有用であるが厳密に必要ではない、より強い性質であることに留意されたい。
【0109】
一部の実施形態では、署名検証鍵SVK
1,..., SVK
nのセット(またはそれらのハッシュ値)の第1のサブセットが関数hに提供され、関数hの入力は、関数hの出力と、署名検証鍵のセットSVK
1,..., SVK
n(またはそのハッシュ値)の第2のサブセットとを含む。それら2つのサブセットは各々、署名検証鍵SVK
1,..., SVK
nの1つまたは複数(またはすべて)を含むことができる。それら2つのサブセットの和集合が署名検証鍵のセットSVK
1,..., SVK
n全体となる。それら2つのサブセットは重複していても重複していないともよい。
【0110】
一部の実施形態では、例えばHモジュールの出力が2つ以上の制御語を含む場合は、仮想CW*の(ビット)長さがCWの(ビット)長さより大きくなる場合がある。
【0111】
一部の実施形態では、関数Hおよび/または関数hは、1つまたは複数の追加的な入力を受け取り、その1つまたは複数の追加的な入力に基づいて各自の出力を生成することができる。
【0112】
上記の本発明の実施形態では汎用的な公開鍵暗号モジュールを記載し、使用しているが、CWロードメッセージの真正性および秘密性が保護される限り、他の適切な暗号動作およびインフラストラクチャを使用してよいことが理解されよう。一例として、真正性機構は、SKとSVKの両方が秘密鍵である対称方式を使用することができる。そのようなシステムの公知の例は、無作為に選択された暗号化(または解読)指数を用いるRSAであり、その場合は両者が秘匿に保たれる。SVKが秘密鍵である真正性機構が使用される場合は、SVKは、例えば関連付けられたチップセット402のチップセットの秘密鍵CSSKを暗号鍵として使用して、暗号化した形態でチップセット402に送信されることが好ましい。ただし、対称の真正性機構が使用される場合には、本開示に記載される効果の一部は該当しないことに留意されたい。上記の方法およびシステムに追加的な鍵の層を挿入する、または上記の方法およびシステムで鍵の層を削除することも可能である。
【0113】
図19は、本発明の一実施形態に係るダウンロード可能な受信機ソフトウェア(SW)イメージを示す概略図である。
図19に示す例では、ソフトウェアイメージはチップセットではなく、受信機に内蔵された別個のチップまたは回路で実行されるものと想定する。
【0114】
図19では、コンテンツのスクランブル解除(
図19には図示せず)もCWをコンテンツ解読鍵として使用して受信機のチップセットの内部で行われるものとする。物理的なセキュリティ対策を実装して、受信機のチップセットを読み取り防止かつ耐改ざん性とすることができる。
【0115】
CA/DRMクライアントと受信機のチップセット間の経路は、欧州特許出願EP10193312.5に詳細に記載されるように保護することができる。同出願の全内容は参照により本明細書に援用される。ただし、この実施形態では関数Hが追加的な入力を有する。この追加的な入力は提供者の検証鍵PVKであり、受信機ソフトウェアイメージの真正性を保護するために使用される機構に関連付けられている。
図19では、一般性を失うことなく、この鍵は、(非対称)デジタル署名方式に関連付けられた公開鍵であると想定する。受信機ソフトウェアイメージは、1つの提供者に関連付けられたすべての受信機に同一であってもよい。あるいは、少数の異なるバージョンが存在してもよい。一例は、種々の受信機が提供者の運営において配備される場合に、各種別が異なるソフトウェアイメージを必要とするというものである。別の例は、機能的に同等な少数の異なるCA/DRMクライアントの実装を使用するものである(クライアントの多様化(diversification)とも呼ぶ)。多様化は、特定のセキュリティの侵害の影響を制限することを目的とする公知の技術である。提供者の公開鍵PVKには、提供者がソフトウェアイメージを署名するために使用する提供者の署名鍵PSKが関連付けられる(すなわちソフトウェアイメージの署名を生成し、それをソフトウェアイメージに付加してから受信機に配布する)。受信機ソフトウェアイメージの配布に必要とされる帯域幅の量を制限するために(すなわち提供者の受信機の全保有数にある異なる受信機ソフトウェアイメージの数を制限するために)、EMMチャネルを使用して、難読化したCA/DRMクライアントの個別化設定を行うことができる。
【0116】
提供者は、鍵ペア(PSK、PVK)を生成し、システムの運用段階、例えば提供者の秘密鍵PSKが破られた後にその鍵ペアを更新することができる。例えば、鍵ペア(PSK、PVK)は、提供者のヘッドエンドシステム内のCA/DRMシステムで生成することができる。あるいは、提供者は、別のシステムを使用してこの鍵ペアを生成することもできる。
図19では、一般性を失うことなく、鍵ペア(PSK、PVK)が(非対称)デジタル署名方式に関連付けられると想定する。秘密鍵PSKはどのCA/DRMシステム供給者にも知られる必要がない。
【0117】
受信機ソフトウェアイメージに付加された署名を検証した後、受信機はソフトウェアを実行することができる。Vモジュールの出力は、受信機ソフトウェアイメージが有効であるか無効であるかを知らせる。理解されるように、適切な措置をとって、真正でないソフトウェアイメージが有効になるのを阻止するべきである。これは、受信機のチップセットの外部で行うことも、受信機のチップセット内部で行うことも可能である(例えばPVKのロードを阻止することによる)。
【0118】
詳細には、一部の実施形態では、提供者は提供者の署名鍵PSK(およびそれに関連付けられた署名生成アルゴリズム)を使用して受信機ソフトウェアイメージに署名し、そのソフトウェアイメージ、署名、および対応するPVKを受信機に配布する。その3つのメッセージを受信すると、受信機はそれらメッセージを署名検証モジュールVへの入力として使用して、受け取った署名を検証する。署名検証モジュールVの出力は、受信機ソフトウェアイメージが有効であるか無効であるかを知らせる。出力が無効なソフトウェアイメージを示す場合、受信機はソフトウェアイメージを実行しない。また、チップセットは、PVKを関数Hへの入力として提供しない等のさらなる措置をとることができる。出力が署名が有効であることを示す場合、受信機はソフトウェアイメージを実行することができる。
【0119】
通例、この検証工程は受信機の電源が投入されるごとに行われる。
【0120】
PVKを署名検証鍵として使用するのに加えて、チップセットはPVKを入力として関数Hに提供する。関数Hは、PVKが真正でない場合にはコンテンツのスクランブル解除が失敗するという意味でPVKの真正性を保護する。すなわち、提供者の署名鍵PSKを知らない攻撃者によって求められた鍵ペア(PSK*、PVK*)の検証鍵PVK*がチップセットへの入力として提供されると(例えば不法な受信機ソフトウェアイメージを実行し、コンテンツのスクランブルを解除するために)、関数Hは正しいCWを出力せず、その結果コンテンツのスクランブル解除は失敗する。
【0121】
図19にはCA/DRMクライアントを含むソフトウェアイメージを示すが、ソフトウェアは、受信機の内部で実行されるソフトウェアのどの部分であってもよく、必ずしもCA/DRMクライアントを含まない(例えばCA/DRMクライアントは着脱可能なスマートカードを使用して実装してもよい)。CA/DRMクライアントが受信機ソフトウェアイメージに含まれる場合は、好ましくはソフトウェア難読化技術を使用してクライアントを読み取り防止かつ耐改ざん性とする。
図19に示す方式では、CA/DRMクライアントの個別化設定は、EMMチャネルを使用して行う(それにより帯域幅の使用量を制限する)ことができる。
【0122】
図19では、ソフトウェアの真正性の検証は受信機のチップセットの内部で行われる。この方式には種々の変種がある。一例として、受信機のチップセットは受信機のブートローダーソフトウェアの真正性を検証する機構を実装することができる。検証後に、受信機に内蔵された別のチップまたは回路を使用してブートローダーソフトウェアを実行することができる。ブートローダーはPVKを使用して受信機ソフトウェアの真正性を検証し、PVKをチップセットに提供する。次いで、受信機のチップセットはPVKを使用してCWを導出する。ソフトウェアイメージの真正性を保護するために、鍵の層を増やすことも可能である。
【0123】
一部の実施形態では、PVKをSVKと等しくすることができる。そのような実施形態では、その鍵の1つのインスタンスのみをHへの入力として提供することも可能である(EP10193312.5のように)。2つの異なる鍵(すなわち鍵ペア)を使用する利点の1つは以下である。関連付けられた秘密鍵(すなわちSKおよびPSK)が記憶され、使用されるシステムは異なる場合がある。そのような場合にそれらシステムの1つのみが破られた場合には、秘密鍵の一方のみが破られることになり、セキュリティの侵害の影響を制限する。一般に、異なる鍵を使用することは、異なる鍵の寿命を使用できることを意味する。例えば、提供者が鍵ペア(SK、SVK)を更新して破られた鍵または破られた受信機のチップセットを無効にする場合、別個の鍵ペア(PSK、PVK)を使用してソフトウェアイメージの真正性を保護していた場合には、受信機ソフトウェアイメージの保護および/または配布には影響が及ばない。鍵ペア(SK、SVK)の鍵SKが破られた場合には、保護のために別個の鍵ペア(PSK、PVK)が使用されていれば、受信機ソフトウェアイメージの真正性の保護には影響が及ばない。
【0124】
対称方式(例えばMAC)を使用して受信機ソフトウェアイメージの真正性を保護する場合、鍵ペア(PSK、PVK)の両方の鍵が秘密であり、ペアのうち一方の鍵はペアの他方の鍵から容易に導出することができる。提供者はCSPKを使用してPVKを暗号化し、得られた暗号文を受信機のチップセットに配布することによりPVKの秘密性を保護することができることに留意されたい。
【0125】
図20に本発明の別の実施形態を示す。この実施形態では、CA/DRMクライアントが受信機のチップセットにダウンロードされ、受信機のチップセットの内部で実行される。
【0126】
図20に示す実施形態では、チップセットの秘密鍵CSSK
1およびCSSK
2が公開鍵暗号化/解読方式に関連付けられ、それぞれチップセットの公開鍵CSPK
1およびCSPK
2に対応すると想定している。チップセット製造者は、それら公開鍵の真正なコピーをすべての提供者が入手できるようにすることができる。鍵CSSK
1およびCSSK
2は個別化設定段階時に受信機のチップセットにロードされる(例えば受信機のチップセットの製造者により)。一部の実施形態では、CSSK
1およびCSSK
2を関係づけることができる。例えば、2つの鍵ペア(CSSK
1、CSPK
1)と(CSSK
2、CSPK
2)を等しくすることができる。
【0127】
提供者は真正性鍵ペア(PSK、PVK)および(SK、SVK)を生成し、各ペアは提供者の署名鍵と提供者の検証鍵からなる。例えば、そのような鍵ペアは、提供者のヘッドエンドシステム内のCA/DRMシステムで生成することができる。あるいは、提供者は別のシステムを使用してそのような鍵ペアを生成することもできる。
図20では、一般性を失うことなく、PVKおよびSVKが1つまたは2つの(非対称)デジタル署名方式に関連付けられた公開鍵であるものとする。それら鍵ペアの秘密鍵は、どのCA/DRMシステム供給者にも知られる必要がない。
【0128】
検証鍵PVKおよびSVKの真正性を保護するために、それらの鍵は関数Hへの入力として提供される。特定の実施形態では、鍵ペア(SK、SVK)と(PSK、PVK)は等しい。そのような実施形態では、検証鍵の1つのみのインスタンスをHへの入力として提供することができる。検証鍵が秘密鍵である場合(すなわちMACを使用する場合)、提供者は、検証鍵を公開鍵CSPK
1またはCSPK
2で暗号化し、得られた暗号文を受信機のチップセットに配布することにより検証鍵の秘密性を保護することができる。
図20では、一般性を失うことなく、SVKおよびPVKが1つまたは2つの(非対称)デジタル署名方式に関連付けられた公開鍵であるものとする。
【0129】
図20に示す実施形態では、CA/DRMクライアントソフトウェアは、対称暗号化アルゴリズムおよび対称鍵Kを使用して暗号化される。提供者は、Kの生成とCA/DRMクライアントソフトウェアの暗号化を行う。
図20では、それにより生成された暗号文を{CA/DRM client SW}
Kと表す。次いで、提供者は、暗号化されたCA/DRMクライアントソフトウェアを受信機に配布する。実際には、いくつかの異なるバージョンのCA/DRMクライアントソフトウェアが1つの提供者に対して存在する場合がある(例えば異なる種類のチップセットが提供者の運用で使用され、各種類が異なるCA/DRMクライアントソフトウェアイメージを必要とする等)。通例、それらのバージョンはそれぞれ、一意に生成された対照鍵Kを使用して暗号化される。鍵Kは、EP10193312.5やEP11160417.9に詳細に記載される技術を使用して(また
図20に示すように)受信機のチップセットにロードすることができる。上記文献の全開示内容は参照により本明細書に援用される。Kを受信機にロードするために必要とされるメッセージを「K-init」と称する。このメッセージは、提供者で生成され、受信機のチップセットごとに一意である(CSSK
2がチップセットごとに一意に生成されるため)。より正確には、K-initを生成するには、提供者は、CSPK
2および関連する公開鍵暗号化アルゴリズムを使用して鍵Kを暗号化し、それにより得られた暗号文にPSK
2および関連する署名生成アルゴリズムを使用して署名して、K-initを生成する。CA/DRMクライアントソフトウェアイメージを直接CSPK
2で暗号化して、PSK
2で署名することにより保護することも可能であるが(そのような変形解決法では鍵KまたはK-initメッセージを必要としない点に留意されたい)、
図20の2つの鍵層を備えるアーキテクチャの方が使用する帯域幅が少なく、解読性能が高い。これを理解するために、K-initメッセージ(受信機ごとに一意のメッセージである)の大きさはCA/DRMクライアントソフトウェアイメージの大きさと比べて小さく、また、2層アーキテクチャでは、1つの提供者に関連付けられた受信機の全数に対して暗号化されたCA/DRMクライアントソフトウェアイメージ(すなわち、{CA/DRM client SW}
K)の数個のインスタンスのみが存在する(ソフトウェアイメージがCSPK
2を使用して暗号化される場合に受信機ごとに一意に暗号化されたCA/DRMクライアントソフトウェアイメージがあるのに対して)ことに注目されたい。さらに、一般に、対称暗号化/解読のプリミティブは、非対称のプリミティブよりも性能が高い。
【0130】
一部の実施形態では、CA/DRMクライアントソフトウェアイメージの真正性のみが保護される。そのような実施形態では、
図19に示すソフトウェア検証機構と同様のソフトウェア検証機構を使用することができ、違いは、その場合CA/DRMクライアントソフトウェアは真正性が検証された後に受信機のチップセットの内部に記憶され、実行される点である。
【0131】
CA/DRMクライアント個別化設定データは、CA/DRMクライアントの(1つまたは複数の)マスタ鍵を含み、
図20では「CA/DRMクライアント個別化データ」と表す。個別化設定データの大きさは、CA/DRMクライアントソフトウェアイメージの大きさと比べて小さく、このデータは受信機ごとに一意である。そのような理由から、
図20に示すように単一層の鍵アーキテクチャを使用してこのデータの(単一の供給元の)真正性と秘密性を保護することができる。例えば、提供者は、CSPK
1および関連する公開鍵暗号化アルゴリズムを使用して「CA/DRMクライアント個別化データ」を暗号化し、それにより得られた暗号文にPSK
1および関連する署名生成アルゴリズムを使用して署名して、「CA/DRMクライアント個別化init」メッセージを生成することができる。
【0132】
次いで、提供者は、{CA/DRM client SW}
K、K-init、「CAクライアント個別化init」、PVI
1およびPVK
2を受信機(チップセット)に配布する。
【0133】
これらのメッセージを受信すると、受信機のチップセットはPVK
2を使用してK-initの真正性を検証することができる。K-initが真正である場合、受信機のチップセットは(CSSK
2を解読鍵として使用して)K-initから鍵Kを導出することができる。受信機のチップセットは同様の処理を行って、受け取ったメッセージ「CA/DRMクライアント個別化init」およびPVK
1からCA/DRMクライアント個別化設定データを導出することができる(CSSK
1を解読鍵として使用する)。これらの処理については、EP10193312.5またはEP11160417.9(それらのすべての開示内容は参照により本明細書に援用される)に詳細に記載され、
図20に示される。次に受信機のチップセットは鍵Kを使用して{CA/DRM client SW}
Kを解読してCA/DRMクライアントソフトウェアを生成する。
【0134】
CA/DRMクライアントソフトウェアとCA/DRMクライアント個別化設定データを解読して合成すると、CA/DRMクライアントを受信機チップセットの内部で実行してECMおよびEMMを処理することができる。
【0135】
CA/DRMクライアントはCW*を出力し、それが関数Hに入力として提供される。受信機のチップセットは、提供者の検証鍵PVK
1およびPVK
2も関数Hへの入力として提供して、それらの真正性を保護する。関数Hの出力はCWであり、コンテンツのスクランブル解除に使用される。
【0136】
特定の実施形態では、鍵ペア(PSK
1、PVK
1)と(PSK
2、PVK
2)が等しい。そのような実施形態では、検証鍵の1つのインスタンスのみをHへの入力として提供することができる。
【0137】
ソフトウェア難読化技術を使用してCA/DRMクライアントソフトウェアおよびCA/DRMクライアント個別化設定データの実装をさらに保護することができる。そのような技術を使用して、受信機のチップセットの内部で実装される他のプリミティブのうち1つまたは複数の実装を保護することもできる。CA/DRMクライアントソフトウェアおよび/またはCA/DRMクライアント個別化設定データの真正性および秘密性を保護するために鍵の層を増やすことも可能である。
【0138】
提供者の検証鍵が秘密鍵である場合(すなわちMACを使用する場合)、提供者は、検証鍵を公開鍵CSPK
1またはCSPK
2で暗号化し、得られた暗号文を受信機のチップセットに配布することにより検証鍵の秘密性を保護することができる。
【0139】
上記で
図19を参照して説明した原理の応用を
図21および
図22に示す。詳細には、
図21は、
図21では受信機ソフトウェアイメージ(CA/DRMクライアントを含む)の認証が実施される点を除いて
図4に示す構成と同じ構成を示す。
図22は、
図22では受信機ソフトウェアイメージの認証が実施される点を除いて
図5と同じ構成を示す(受信機ソフトウェアイメージに署名する工程は
図22には示していない)。上記で
図20を参照して説明した原理の応用を
図21および
図22に同様に適用することができることは理解されよう。したがってそれらについては詳細には説明しない(ただし下記のように同様のH関数の変更を実施する)。
【0140】
各実施形態で、ソフトウェアイメージはCA/DRMクライアントである(CA/DRMクライアントソフトウェアおよびCA/DRMクライアント個別化設定データからなる)。
【0141】
図21では、受信機ソフトウェアイメージ(CA/DRMクライアントソフトウェア404を含む)はチップセットで実行されるのではなく、受信機に内蔵される別のチップまたは回路で実行されると想定するが、これは他の実施形態では必要でないことは理解されよう。
【0142】
図21で、チップセット402はさらに検証モジュール2100を備える。検証モジュール2100は、提供者から受信機に配布される提供者の検証鍵PVKを受信するように構成される(例えば、PVKはソフトウェアイメージ2102および/またはデジタル署名2104と共に配布されているか、または別個のCAデータとして提供することができる)。検証モジュール2100は、ソフトウェアイメージ2102(CA/DRMクライアントソフトウェア404を含む)およびソフトウェアイメージ2102のデジタル署名2104も受信するように構成される。上記のように、ソフトウェアイメージ2102のデジタル署名2104は、提供者の検証鍵PVKに対応する提供者の署名鍵PSKを使用して提供者で生成される。検証モジュール2100は、受け取った提供者の検証鍵PVKを使用して、入力として受け取るデジタル署名2104を、入力として受け取るソフトウェアイメージ2102に照らして検証するように構成される(当業者に公知の署名検証技術を使用する)。
【0143】
検証モジュール2100が、入力として受け取った署名が入力として受け取ったソフトウェアイメージに対応しないと判断した場合(この検証は受け取った提供者の検証鍵PVKに基づく)は、ソフトウェアイメージ2102の認証の第1段階は不合格であることになる。その場合、受信機またはチップセット402は、ブートアップを完了しない、またはそれ以上コンテンツのスクランブル解除もしくは復号を行わないなどのいくつかの選択肢をとることができる。
【0144】
検証モジュール2100が、入力として受け取った署名が入力として受け取ったソフトウェアイメージに対応すると判断した場合(この検証は受け取った提供者の検証鍵PVKに基づく)は、ソフトウェアイメージ2102の認証の第1段階が合格したことになる。その場合、受信機は、ソフトウェアイメージ(CA/DRMクライアントソフトウェア404を含む)にアクセス(または実行)して、その結果CA/DRMクライアントの機能が利用できるようになる(上記で述べたように、それにより仮想スクランブル解除情報、すなわちCW*およびSVKを得る)。ただし、上記ソフトウェアイメージ2102の認証の第1段階は、下記のように、ソフトウェアイメージ2102の供給元(または単一の供給元の)の完全な検証ではない。
【0145】
詳細には、
図21に示すチップセット402は、
図4のHモジュール432に代えてHモジュール2132を備える。Hモジュール2132は、提供者の検証鍵PVKも(すなわちCW*およびSVKという仮想スクランブル解除情報に加えて)入力として与えられる(すなわち、受け取る)点を除いて、
図4のHモジュール432と同じである。したがって、提供者の検証鍵PVKは、ソフトウェアイメージ2102のデジタル署名2104(または単一の供給元の真正性)の検証と、制御語438を生成するためのHモジュール2132への入力としての両方として使用される。
【0146】
同様に、
図22のシステムは、
図5のHモジュール520に代えてHモジュール2220を利用する。Hモジュール2220は、入力として提供者の検証鍵PVKを受け取るように構成される点を除いて
図5のHモジュール520と同じである。したがって、
図22のHモジュール2220で生成され、コンテンツのスクランブルに使用される制御語CWは、
図21のHモジュール2132が、Hモジュール2220が使用するものと同じ提供者の検証鍵PVKを入力として受け取る場合にのみ
図21のチップセット402で復元可能となる。
【0147】
上記のように、Hモジュール432および520は(およびしたがってHモジュール2132および2220も)関数Hを使用する。Hモジュール2132および2220は、各自の3つの入力(PVK、CW*、およびSVK)を合成してから、合成した入力にハッシュ関数を適用して出力CWを生成する。関数Hは任意の他の適切な暗号関数であってもよい(すなわち必ずしもハッシュ関数である必要はない)。関数Hの可能な実装は以下の特性を持つことが好ましい。出力CWを与えられたときに、PVK*およびスクランブル解除情報がCWに対応するように鍵ペア(PSK*、PVK*)およびスクランブル解除情報(鍵ペア(SK*、SVK*)のSVK*および仮想制御語CW**等)を見つけることが難しい(例えば困難、計算的に困難、不可能、または計算的に不可能)。この性質が満たされる場合、攻撃者は、SVK*が鍵ペア(SK*、SVK*)の鍵の1つであり、SK*が攻撃者に分かっていても、不法な(または不正または非合法の)ソフトウェアイメージを使用してコンテンツのスクランブルを解除することはできない。特定の実施形態では、「難しい」とは、攻撃者が、上記情報を多項時間または空間内で導出することができない可能性があることを意味する。他の実施形態では、「難しい」とは、そのような値を見つけるために必要とされる演算の回数またはメモリの大きさに下限を指定することと定義することができる。第3の例として、「難しい」とは、上記性質が満たされない確率の上限を指定することと定義することができる。
【0148】
この性質を備える関数Hの一例は以下である。(1)入力CW*、SVK、およびPVKを例えばそれらの値を連結することによって合成して、中間の結果Xを生成し、(2)第2原像の計算が困難なハッシュ関数を入力Xに適用して出力CWを生成する。1つのSVKのみを受け付ける関数Hの説明時に上記で提供した分析は、より大きな署名検証鍵のセットを受け付ける、この変更を加えた関数Hにも同様に当てはまる。
【0149】
上記で
図6〜
図18を参照して説明したシステムも、それぞれのHモジュールが入力として提供者の検証鍵PVKを受け取り、それに応じて制御語を生成するように同様に変更を加えてよいことは理解されよう。これは、Hモジュールへの直接の入力としても、中間のhモジュール(
図10〜
図13、
図17、および
図18のシステムで使用される)を介してもよい。同様に、上記で
図19〜
図22を参照して説明したHモジュールは、必ずしもSVKを入力として受け取るように構成する必要はない(したがって制御語の真正性が検証されず、ソフトウェアイメージの真正性が検証される)ことが理解されよう。
【0150】
一部の実施形態では、提供者の検証鍵PVKをSVKと等しくすることができる。
【0151】
一部の実施形態では、提供者が、自身がサービスする受信機の全数に含まれる異なる種類の受信機ソフトウェアイメージ各々の(暗号)ハッシュ値を計算し、計算したハッシュ値のセットを入力としてHモジュール2220に提供する(提供者の検証鍵PVKを入力としてHモジュール2220に提供するのではなく)。次いで、提供者は、受信機ソフトウェアイメージとハッシュ値のセットを自身がサービスしている受信機に配布する。各受信機は各自の受信機ソフトウェアイメージおよびその他の受信機ソフトウェアイメージのハッシュ値を自身のチップセットへの入力として提供する。チップセットは、自機の受信機ソフトウェアイメージのハッシュ値を計算し、ハッシュ値のセット(計算したハッシュ値および受け取ったその他の受信機ソフトウェアイメージのハッシュ値からなる)を入力としてHモジュール2132に提供する。Hモジュールは、Hモジュール2220および232に入力として提供されたハッシュ値のセットが異なる場合にはスクランブル解除が失敗するという意味でハッシュ値の真正性を保護する。そのような実施形態では鍵ペア(PSK、PVK)が必要ないことに留意されたい。
【0152】
受信機ソフトウェアイメージの真正性を保護する上記方法は望ましい特性を有する。詳細には、提供者の署名鍵がどのCA/DRM供給者にも知られず、受信機に関連付けられた秘密鍵を個別化設定の完了後に信頼機関により管理する必要がない(チップセットが個別化設定された後にチップセットの秘密鍵を削除できるため)。
【0153】
また、受信機ソフトウェアイメージの真正性を保護する新規の方法は、ソフトウェア真正性機構のルート鍵ペアが破られるセキュリティの侵害から回復することができ、これは既存の解決法では提供されないセキュリティ機能である。
【0154】
上記の各種対称および非対称暗号化/解読モジュールおよび方式は、現在知られている、または将来考案される対称または非対称暗号化/解読アルゴリズムを利用することができる。同様に、上記の各種署名生成および検証モジュールおよび方式は、現在知られている、または将来考案される署名生成および検証アルゴリズムを利用することができる。
【0155】
本発明の実施形態は、各種の情報処理システムを使用して実施できることが理解されよう。詳細には、図およびその説明で例示的なアーキテクチャを示したが、それらは単に本発明の各種態様を説明する際に有用な参考を提供するために提示されるものである。言うまでもなく、アーキテクチャの説明は説明のために簡略化しており、本発明の実施形態に使用することが可能な多くの種々のアーキテクチャの1つにすぎない。論理ブロック間の境界は例示的なものに過ぎず、代替実施形態では論理ブロックまたは要素を合併する、または各種の論理ブロックまたは要素に代替の機能の分割を行うことが可能であることを理解されよう。
【0156】
本発明の実施形態がコンピュータプログラムで実施される限り、コンピュータプログラムを担持する記憶媒体および伝送媒体は本発明の態様を形成することが理解されよう。コンピュータプログラムは、1つまたは複数のプログラム命令またはプログラムコードを有することができ、それらがコンピュータで実行されると本発明の一実施形態を実施する。本明細書で使用する用語「プログラム」とは、コンピュータシステムで実行されるように設計された一連の命令であり、サブルーチン、関数、プロシージャ、オブジェクトのメソッド、オブジェクトの実装、実行可能アプリケーション、アプレット、サーブレット、ソースコード、オブジェクトコード、共有ライブラリ、ダイナミックリンクライブラリ、および/またはコンピュータシステムで実行されるように設計された他の一連の命令を含むことができる。記憶媒体は、磁気ディスク(ハードドライブやフロッピー(登録商標)ディスクなど)、光ディスク(CD-ROM、DVD-ROM、もしくはBluRayディスクなど)、またはメモリ(ROM、RAM、EEPROM、EPROM、フラッシュメモリ、もしくは携帯可能/着脱可能メモリデバイスなど)等である。伝送媒体は、通信信号、データ放送、2つ以上のコンピュータ間の通信リンク等である。