(57)【要約】【課題】  一回の視聴をするようにデータ・ストリームを保護するため、およびデータ・ストリームの著作権を保護するために、データ・ストリームを暗号化するプロセスを提供する。【解決手段】  ネットワーク通信におけるストリーミングのマルチメディア、エンターテイメント、および通信を保護するプロセスを開示する。更に、ストリーミング・サーバと接続されるストリーミング・サーバ・コンポーネントを開示する。ストリーミング・サーバは、本発明のプロセスを行うために、バーチャル・スマートカードを含むクライアント・システムと対話する。【選択図】  図７
2006109391.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを通してデータ・ストリームを通信するシステムであって、
前記データ・ストリームを要求することを可能にすることを含むアクションを実行するように構成されたクライアント・デバイスと、
前記クライアント・デバイスに結合された仮想スマートカードであって、
要求された前記データ・ストリームに関連するトークンを送信すること、
暗号化されている、要求された前記データ・ストリームを受信すること、および
前記データ・ストリームに関連するフロー制御計量を提供すること
を含むアクションを実行するように構成されたスマートカードと、
ストリーミング・サーバであって、
要求された前記データ・ストリームに関する前記トークンを検証すること、および前記トークンが、要求された前記データ・ストリームに関して有効である場合、
暗号化された前記データ・ストリームを前記仮想スマートカードへ流すこと、および
前記仮想スマートカードからの前記フロー制御計量を部分的に使用して、前記ネットワークを通される暗号化された前記データ・ストリームの流れを制御して、前記仮想スマートカードに関連するバッファを実質的に満杯に維持すること
を含むアクションを実行するように構成されたサーバと
を備えるシステム。
【請求項２】
請求項１に記載のシステムであって、前記仮想スマートカードが、前記トークンに関して前記ストリーミング・サーバとネゴシエーションするように構成されたトークン・マネージャを更に含む、システム。
【請求項３】
請求項１に記載のシステムであって、要求された前記データ・ストリームに関する前記トークンを検証することが、提供された前記トークンを用いて前記データ・ストリームの場所に関連する識別子を検証することを更に含む、システム。
【請求項４】
請求項１に記載のシステムであって、前記仮想スマートカードが、ネットワーク統計およびバッファ特性の少なくとも１つを監視して、前記フロー制御計量を決定するように構成されたフロー制御モジュールを更に含む、システム。
【請求項５】
請求項１に記載のシステムであって、前記仮想スマートカードが、前記仮想スマートカードと前記クライアント・デバイスを一意に関連付けるように構成されたバインド・モジュールを更に含む、システム。
【請求項６】
請求項１に記載のシステムであって、前記ストリーミング・サーバが、要求された前記データ・ストリームの暗号化に使用するために暗号化キーを前記仮想スマートカードとネゴシエーションすることを含む更なるアクションを行うように構成された、システム。
【請求項７】
請求項６に記載のシステムであって、前記仮想スマートカードが、前記ストリーミング・サーバと対話して前記暗号化キーをネゴシエーションするように構成されたトークン・マネージャを更に含む、システム。
【請求項８】
請求項７に記載のシステムであって、前記仮想スマートカードが、ユーザ情報、前記トークン、ＵＲＩ、および前記暗号化キーの少なくとも１つを格納するように構成されたトークン記憶モジュールを更に含む、システム。
【請求項９】
請求項１に記載のシステムであって、前記トークンがデジタル証明書を更に含む、システム。
【請求項１０】
請求項１に記載のシステムであって、前記データ・ストリームが、前記クライアント・デバイスへ提供されて所定の閲覧回数だけ閲覧可能になる、システム。
【請求項１１】
ネットワークを通されるデータ・ストリームを管理するための変調されたデータ信号であって、
仮想スマートカードを有するクライアントから前記データ・ストリームを要求することと、
前記仮想スマートカードにより、要求された前記データ・ストリームと関連するトークンを提供することと、
要求された前記データ・ストリームに関する前記トークンの有効性の判定を可能にすることと、
前記トークンが、要求された前記データ・ストリームに関して有効であった場合に、
前記仮想スマートカードを用いて暗号化キーに関するネゴシエーションを可能にすることと、
前記データ・ストリームが前記クライアントへストリーミングされる際に前記データ・ストリームの暗号化を可能にすることであって、前記データ・ストリームが、ネゴシエーションされた前記暗号化キーを用いて暗号化されることと、
前記仮想スマートカードにより、暗号化された前記データ・ストリームに関連するフロー制御計量を提供することと、
サーバにより、前記ネットワークを介して前記クライアントへの暗号化された前記データ・ストリームの流れのレートを制御することであって、前記サーバが、前記フロー制御計量を部分的に用いて、暗号化された前記データ・ストリームの流れのレートを制御して、クライアント・バッファを実質的に満杯に維持することと、
を含むデータ信号。
【請求項１２】
請求項１１に記載の変調されたデータ信号であって、前記データ・ストリームが単一回の閲覧用にコンフィギュレーションされる、データ信号。
【請求項１３】
請求項１１に記載の変調されたデータ信号であって、前記の流れの速度を制御することが、暗号化された前記データ・ストリームを、その暗号化された前記データ・ストリームが前記クライアントによって受信されるのと実質的に同じレートで、前記クライアントへ伝送することを更に含む、データ信号。
【請求項１４】
請求項１１に記載の変調されたデータ信号であって、前記のフロー制御計量を提供することが、ネットワーク統計およびクライアント・バッファ特性の少なくとも１つを監視することを更に含む、データ信号。
【請求項１５】
ネットワークを通してデータ・ストリームを受信する際に用いるクライアント・デバイスであって、
前記データ・ストリームの要求を可能にすることを含むアクションを実行するように構成されたユーザ・インタフェースと、
前記ユーザ・インタフェースに結合された仮想スマートカードであって、
要求された前記データ・ストリームに関連するトークンをネゴシエーションすること、
前記トークンを用いて、前記データ・ストリームの前記要求を検証することを可能にすること、
前記要求が有効であった場合、前記クライアント・デバイス内のクライアント・バッファを実質的に満杯に維持する流れのレートで前記データ・ストリームを配信するように構成されたサーバから、前記データ・ストリームを受信すること、および
前記クライアント・バッファを実質的に満杯に維持するように前記データ・ストリームの流れの前記レートを制御するために前記サーバによって使用可能であるように、前記サーバへ計量を提供すること
を含むアクションを実行するように構成されたスマートカードと
を備えるクライアント・デバイス。
【請求項１６】
請求項１５に記載のクライアント・デバイスであって、
前記ユーザ・インタフェースは、前記データ・ストリームへのアクセスに関してのユーザによって選択された制限時間が前記サーバへ提供されることを可能にし、前記ユーザによって選択された制限時間は、ネゴシエーションされた前記トークンに関連付けられ、それにより、前記制限時間が満了すると前記データ・ストリームへのアクセスが拒否されるようにすることを含む更なるアクションを実行するように構成された、
クライアント・デバイス。
【請求項１７】
請求項１５に記載のクライアント・デバイスであって、前記トークンが、要求された前記データ・ストリームに関するユーザ許可を含む、クライアント・デバイス。
【請求項１８】
請求項１７に記載のクライアント・デバイスであって、前記ユーザ情報がユーザ・アカウント情報を含む、クライアント・デバイス。
【請求項１９】
請求項１５に記載のクライアント・デバイスであって、前記トークンが、前記データ・ストリームへアクセスすることに関するユーザによって選択された制限時間を含み、前記データ・ストリームへのアクセスが、前記ユーザによって選択された前記制限時間が満了すると拒否される、クライアント・デバイス。
【請求項２０】
請求項１５に記載のクライアント・デバイスであって、受信される前記データ・ストリームが、ＤＥＳ、トリプルＤＥＳ、およびＡＥＳの暗号化の少なくとも１つを使用して暗号化される、クライアント・デバイス。
【請求項２１】
請求項１５に記載のクライアント・デバイスであって、前記仮想スマートカードが前記クライアント・デバイスと一意的にバインドされる、クライアント・デバイス。
【請求項２２】
請求項１５に記載のクライアント・デバイスであって、前記仮想スマートカードが、前記仮想スマートカードに対するタンパーの検出及びタンパーからの保護を行うように構成されたタンパー保護モジュールを更に含む、クライアント・デバイス。
【請求項２３】
請求項１５に記載のクライアント・デバイスであって、前記仮想スマートカードが前記クライアント・バッファを含む、クライアント・デバイス。
【請求項２４】
ネットワークを通してデータ・ストリームを通信する方法であって、
前記データ・ストリームを要求するステップと、
クライアント・デバイスにバインドされた仮想スマートカードを用いて、要求された前記データ・ストリームに関連するトークンをネゴシエーションするステップと、
ネゴシエーションされた前記トークンを用いて、前記データ・ストリームを求める前記要求の検証を可能にするステップと、
前記要求が有効であった場合に、クライアント・バッファを実質的に満杯に保つ流れのレートで前記データ・ストリームを配信するように構成されたサーバから、前記データ・ストリームを受信するステップと、
前記仮想スマートカードにより、前記サーバへ、前記クライアント・バッファを実質的に満杯に維持するように前記データ・ストリームの流れの前記レートを制御するために前記サーバによって部分的に使用可能であるように、計量を提供するステップと
を含む方法。
【請求項２５】
請求項２４に記載の方法であって、
前記仮想スマートカードと関連するトークン・マネージャを用いて前記サーバと対話して、前記データ・ストリームが前記クライアント・デバイスへストリーミングされる際に前記データ・ストリームを暗号化するために使用可能な暗号化キーを、ネゴシエーションするステップ
を更に含む方法。
【請求項２６】
請求項２４に記載の方法であって、前記仮想スマートカードが、前記ユーザの情報、前記トークン、ＵＲＩ、および前記暗号化キーの少なくとも１つを格納するように構成されたトークン記憶モジュールを更に含む、方法。
【請求項２７】
ネットワークを通してデータ・ストリームを受信する装置であって、
前記データ・ストリームを要求する手段と、
要求された前記データ・ストリームに関連するトークンをネゴシエーションする手段であって、前記トークンが、前記データ・ストリームを受信するために前記要求が検証されることを可能にするように使用可能である、手段と、
前記要求が有効であった場合に、暗号化されている要求された前記データ・ストリームを受信する手段と、
受信される前記データ・ストリームに関連するフロー制御計量を提供する手段と、
サーバから、制御された流れで暗号化された前記データ・ストリームを受信する手段であって、前記サーバは、部分的に前記フロー制御計量を用いて、前記ネットワークを通される暗号化された前記データ・ストリームの流れを制御して、前記装置においてバッファを実質的に満杯に維持するように構成される、手段と
を含む装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、単一回の閲覧のためにデータ・ストリームをセキュリティ保護するため、およびデータ・ストリームの著作権を保護するためにデータ・ストリームを暗号化するためのプロセスを提供する。具体的には、本発明は、ネットワーク伝送においてストリーミングのマルチメディア、エンターテイメント、および通信を保護するためのプロセスを提供する。本発明は、更に、ストリーミング・サーバのコンポーネントと対話して本発明のプロセスを実施するクライアント・システム内部の仮想スマートカードを提供する。
【背景技術】
【０００２】
本出願は、３５  Ｕ．Ｓ．Ｃ．  セクション１２０および３７  Ｃ．Ｆ．Ｒ．  セクション１．５３（ｂ）の下で２００２年３月２９日に出願された「データ・ストリームを暗号化するためのプロセスおよびストリーミング・サーバ（Process and Streaming Server for Encrypting a Data Stream）」という名称の米国特許出願第１０／１０９９６３号の一部継続出願であり、これを参照により本明細書に組み込むものとする。
【０００３】
インターネットは、データをサーバからクライアントへストリーミングすることができる別の通信手段を提供している。クライアントは、ストリーミングされたデータ、好ましくはストリーミングされたメディア、をユーザにディスプレイする責務を担う。サーバは、データ・ストリームをクライアントへ配信する責務を担う。リアル・ネットワークス（Ｒ）（Real Networks）のソリューションおよびマイクロソフト（Ｒ）のソリューションは、データ・ストリームを、ＵＤＰ（コネクションレス・インターネット・プロトコル）を介して、ストリーミングされたデータの伝送を制御するクライアントとサーバとの間の別の接続とともに、送信する。制御接続エレメントは、バッファ・オーバーランを止めるように機能し、また、帯域幅待ち時間を補償するようにストリームの伝送を調整することができる。しかし、この構成が抱える１つの問題は、サーバからクライアントへストリーミングされるデータが保護されておらず、ネットワーク上の誰にでも利用可能なことである。従って、インターネットなどのワイド・エリア・ネットワークにわたって傍受から保護する必要性が、当技術分野に存在する。具体的には、この必要性は、不適切な傍受に対して保護する能力、およびインターネットにわたってストリーミング・データをコピーする能力を提供することに関する。現在、著作権で保護されたデータを保護する保護機構は全く配備されていない。
【０００４】
ひとたびサーバによってデータがリリースされ、ユーザによって受信されるか又はユーザによって受信される前に傍受されると、そのようなデータがネットワーク上でリリースされた後には、そのデータの再伝送を制限する方法は全く存在しない。データ・ストリームが著作権で保護されていても、ストリーミングされたデータの著作権を保護する手段または保護を実施する手段は全く存在しない。コンテンツの著作権を所有し、そのようなコンテンツをストリーミングするエンティティは、コンテンツがリリースされた後にそのようなコンテンツに何が行われるかに対するコントロールは全く存在しないことに気付く。従って、ネットワーク上でコンテンツがストリーミングされた後に、そのコンテンツの著作権を保護するための手段を提供する必要性が、当技術分野に存在する。本発明は、両方の必要性に対処するように設計された。
【０００５】
現在、何れのストリーミング・メディア・ソリューションも、サーバからクライアントへ送信されているデータを実際に暗号化しない。１つのソリューションは、ＳＳＬセキュアＨＴＴＰソケットを、Ｑｕｉｃｋｔｉｍｅ（Ｒ）のようなストリーミング・ソフトウェア・パッケージと結合することなどにより、既存の技術でこれを達することができる。残念ながら、Ｑｕｉｃｋｔｉｍｅ（Ｒ）は、フルスクリーン・ディスプレイ・オプションを有さない。従って、ビデオ・データをストリーミングするためのより良い方法を開発する必要性が、当技術分野に存在する。
【発明の開示】
【課題を解決するための手段】
【０００６】
本発明は、データ・ストリームを暗号化して、一回のみの閲覧を可能にするようにデータ・ストリームをセキュリティ保護するためのプロセスを提供するものであり、このプロセスは、
（ａ）ストリーミング・データ伝送に関するクライアント選択を提供するステップと、
（ｂ）ストリーミング・サーバへの接続を開き、ＵＲＩ、トークン、およびユーザ情報をストリーミング・サーバへ送信するステップであって、ストリーミング・サーバが、データ・パケットをクライアントへ送信するクライアント・データ接続モジュールと、クライアント・データ接続モジュールと接続され、クライアントとネゴシエーションされる暗号化キーを使用してデータ・ストリームを暗号化する暗号化モジュールと、データ・ストリーム・フローのレートを制御して、クライアント・バッファのフル状態を維持するためのフロー制御モジュールとを含むものである、ステップと、
（ｃ）トランザクション・サーバ上で有効なＵＲＩとトークンとの組み合わせを承認するか、または無効なＵＲＩとトークンとの組み合わせを承認しないステップであって、前記のトランザクション・サーバが、ユーザをトランザクション・サーバ・コンポーネントに接続するためのクライアント対話モジュールと、ユーザ・データベース有し、クライアント対話モジュールにリンクされ且つ有効なユーザに関しての検査を行うユーザ検証モジュールと、ユーザ検証モジュールにリンクされ、ユーザ要求に応答して新たなＵＲＩおよびトークンを作成するためのＵＲＩ／トークン作成モジュールとを含むものである、ステップと、
（ｄ）有効なＵＲＩとトークンとの組み合わせが見つかった場合に、連続的に暗号化されたデータ・ストリームをクライアントへ提供するステップと
を含む。
【０００７】
ストリーミング・サーバのコンポーネントは、フロー制御モジュールと接続され、記憶メディア上の場面ソースからデータを読み込むための読み取りバッファ・モジュールを更に含むことが可能である。しかしながら、データはこの構成に限定されるものではなく、マルチキャスト・サービスやユニキャスト・サービスなどを含めての対話型テレビジョン・ソースや電子商取引トランザクションを含む様々な他のソースからのデータを含むことが可能である。ストリーミング・サーバのコンポーネントは、ファイル・システム・モジュールまたはフロー制御モジュールに接続され、サーバ・オプションを設定するためのユーザ・インタフェース・モジュールを更に含むことが可能である。ストリーミング・サーバは、クライアント・サーバ・コンポーネント更に含むことが可能であり、クライアント・サーバ・コンポーネントは、ストリーミング・サーバ・コンポーネントへの初期接続をもたらすデータ・ストリーム制御プロトコル・モジュールと、着信するデータ・ストリームを解読する解読モジュールと、着信するデータ・ストリームをバッファする入力バッファ・モジュールと、ストリーミング・データのディスプレイを制御するディスプレイ制御モジュールとを含む。クライアント・サーバ・コンポーネントは、オーディオ・データおよびビデオ・データを表現するディスプレイ・モジュールを更に含むことが可能である。
【０００８】
連続的に暗号化されたデータ・ストリームを提供するステップ（ｄ）は、データ・ストリームを一時停止すること、停止すること、再生すること、および再スタートすること、またはデータ・ストリームおよび／またはデータ・ストリーム・ソースと対話することを可能にする、ストリーミング・サーバ内部のユーザ・インタフェース・モジュールを更に含むことが可能である。一実施形態では、トランザクション・サーバは、暗号化用のＡＳＰスクリプトを使用して実装される。
【０００９】
本発明は、データ・ストリームを暗号化して、一回のみの閲覧を可能にするようにデータ・ストリームをセキュリティ保護するためのストリーミング・サーバを更に備え、ストリーミング・サーバは、
（ａ）データ・パケットをクライアントへ送信するクライアント・データ接続モジュールと、クライアント・データ接続モジュールと接続され、クライアントとネゴシエーションされる暗号化キーを使用してデータ・ストリームを暗号化する暗号化モジュールと、データ・ストリーム・フローのレートを制御して、実質的にクライアント・バッファのフル状態を維持するためのフロー制御モジュールとを含むストリーミング・サーバ・コンポーネントと、
（ｂ）ユーザをトランザクション・サーバ・コンポーネントへ接続するためのクライアント対話モジュールと、ユーザ・データベースを有し、クライアント対話モジュールとリンクされ且つ有効なユーザに関しての検査を行うユーザ検証モジュールと、ユーザ検証モジュールとリンクされ、ユーザ要求に応答して新たなＵＲＩおよびトークンを作成するためのＵＲＩ／トークン作成モジュールとを含むトランザクション・サーバ・コンポーネントと
を含む。
【００１０】
ストリーミング・サーバ・コンポーネントは、記憶メディア上の映画場面ソースからデータを読み込むための、フロー制御モジュールに接続された読み取りバッファ・モジュールを更に含むことが可能である。しかしながら、このデータは、対話型テレビジョン・サービスのようなソースである対話型ソースや他のソースなどからのデータも含むことが可能である。ストリーミング・サーバ・コンポーネントは、サーバ・オプションを設定するための、ファイル・システム・モジュールまたはフロー制御モジュールに接続されたユーザ・インタフェース・モジュールを更に含むことが可能である。ストリーミング・サーバはクライアント・サーバ・コンポーネントを更に含むことが可能であり、クライアント・サーバ・コンポーネントは、ストリーミング・サーバ・コンポーネントへの初期接続をもたらすデータ・ストリーム制御プロトコル・モジュールと、着信するデータ・ストリームを解読する解読モジュールと、着信するデータ・ストリームをバッファする入力バッファ・モジュールと、ストリーミング・データを表現することを制御するディスプレイ制御モジュールとを含む。クライアント・サーバ・コンポーネントは、オーディオ・データおよびビデオ・データを表現するディスプレイ・モジュールを更に含むことが可能である。
【発明を実施するための最良の形態】
【００１１】
本発明は、インターネットなどのネットワークを介するマルチメディアのエンターテイメントおよび通信などのデータ・ストリームを暗号化するプロセスを提供する。暗号化されたデータ・ストリームは、セキュリティ保護されたペイ・パー・ビュー制などで、著作権保護された素材およびマルチメディアの通信（例えば、アナリストの会議、対話型テレビジョン、映画）を可能にする。データ・ストリームは、将来の再生又は再伝送を行うためにクライアント・マシンに格納することができない。しかし、クライアントは、指定された時間枠内で所望に応じて何回でもデータ・ストリームを閲覧することができる。
【００１２】
暗号化プロトコルは、例えば、１９２ビット・キーの暗号化アルゴリズム（例えば、トリプルＤＥＳ）、ＵＤＰパケット・プロトコル、ＲＴＳＰ（ｒｆｃ２３２６）パケット伝送プロトコル、ＲＴＰ（ｒｆｃ１８８９）パケット伝送制御プロトコル、およびＭＰＥＧＩビデオ記憶圧縮を提供する。しかしながら、好ましい暗号化プロトコルの上記の例は、そのような技術が時とともに向上するにつれ、変化する。例えば、一実施形態は、高度暗号化標準（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）（ＡＥＳ）、または同様の暗号化アルゴリズムを使用することが可能である。
【００１３】
本発明のストリーミング・サーバおよびトランザクション・サーバを使用する本発明のプロセスの１つの利点は、クライアントが、完全に最適化された機器を所有している必要がないことである。１つのクライアントは、通常、任意の一時点で任意の１つのマシン上で実行されている。クライアントは、例えば、３０ｆｐｓの３２０×２４０のビデオとオーディオをジッタなしに再生するようにコンフィギュレーションされることができる。これは、約２５０〜３００ｋｐａのデータ・ストリーム、大容量のデータ・バッファ（少なくとも数メガバイト）、ならびにＷｉｎｄｏｗｓ９８（Ｒ）またはＷｉｎｄｏｗｓ  ＮＴ（Ｒ）を実行する３５０ＭＨｚのＰｅｎｔｉｕｍ  ＩＩ（Ｒ）プロセッサ以上のプロセッサを可能とする。しかしながら、クライアント・システムはそのように制約されるものではなく、実質的にあらゆるクライアント・システム構成を用いることが可能である。例えば、クライアント・システムは、セットトップ・ボックス、対話型テレビジョン能力などを含むことが可能である。
【００１４】
サーバは、例えば、完全に最適化されたマルチスレッド（スレッド・プール）型のＷｉｎｄｏｗｓ  ＮＴ（Ｒ）サービスであることが可能である。これは、ＨＴＴＰサーバとは異なり、クライアント群とのセッションをキャッシュすることを可能にし、サーバは、すべてのクライアントに関する状態を保持する必要があろう。
【００１５】
定義
下記の用語はここに定義する意味で使用される。クライアントまたはクライアント・システムは、データ・ストリームの送信を受けるコンピュータを含む。ユーザは、クライアント上で命令を実行する個人を含む。
【００１６】
「モジュール」は、特定の機能、または機能のセットを実行するように設計されたコンパイル済みのコードの集合を含む。
「ＵＲＩ（ユニバーサル・リソース・アイデンティファイア）」は、ストリームのサーバ上の場所に関連する識別子を表す。
【００１７】
「トークン」は、特定のデータ・ストリームに関してユーザが有する許可を含む２進の情報を含む。
「認証」は、コンポーネント、デバイス、個人、または他のエンティティが自称するとおりの人／物であることの信頼性のレベルを提供することが含まれる。一部の状況では、認証は、ときとして、ＩＤと同義であるものとして扱われることが可能である。
【００１８】
「許可」は、アクセス制御のレベルを提供することを含み、何れのアクションを実行する資格をエンティティが有することができるかという質問に答えることに向けられるものである。例えば、許可は、選定されたデータにアクセスする許可をエンティティが有するかどうか、いつできるか、どれだけの期間にわたってできるか、という質問に対応することが可能である。
【００１９】
「ＣＡＳ（条件付きアクセス・システム）」。ＣＡＳは、伝送される番組を暗号化することにより、デジタル・テレビジョン・サービスその他などへのアクセスを制御することに向けられた技術を含む。しかしながら、ＣＡＳは、テレビジョンだけに向けられている訳ではない。デジタル・ラジオ・ブロードキャスト、デジタル・データ・ブロードキャスト、非ブロードキャスト情報、対話型サービスその他も含むことが可能である。従って、ＣＡＳは、本明細書で説明するようなストリーミング・データ・アクセスも含むことも可能である。
【００２０】
「高速更新」は、キー生成、新たなキー、および新たなセキュリティの機構をクライアント・デバイス、システムその他へ提供することを含む。一実施形態では、動的な高速更新は、更新されたセキュリティ機構をランダムに提供して、予測できない環境を作り出し、ハッカなどのような他のものを標的にする。
【００２１】
「ＤＲＭ（デジタル権利管理）」は、メディアの保護のためのファイル・ベースの代替の機構を含む。ＤＲＭは、例えば、ストリーミング・データなどのようなコンテンツ自体の保護を含む。一実施形態では、ライセンス・ファイルなどが発行されて、ユーザが、コンテンツと一緒にか、またはユーザがコンテンツを再生しようと試みた際に、コンテンツを再生することができるようにする。ストリーミング・データなどのようなコンテンツは、暗号化され、暗号化プロパティは、コンテンツがネットワーク、サーバ、およびクライアントの間で伝送されるなかで持続することが可能である。本明細書で説明するＤＲＭは、仮想スマートカードを使用して、コンテンツの管理および保護を可能にする。
【００２２】
「ＥＣＭ（資格制御メッセージ）」は、トークン、アクセス制約、コンテンツ／暗号化キーなどのような資格に関連した暗号化されたデータを含む。
「ＥＭＭ（資格管理メッセージ）」は、トークン、コンテンツ／暗号化キーなどのような資格などの暗号化されたデータを含む。
【００２３】
「侵入検出」は、セキュリティ・ポリシーおよび他の保護に違反する可能性がある状況を検出するための機構を含む。
「非拒絶」は、ユーザ、消費者、クライアントなどが、自身のデジタル署名の有効性を否認することができないことを確実にすることに向けられた機構を含む。一実施形態は、２つの別個のキーを使用する。１つのキーは、第三者にエスクローとして供託され、署名が行われないアクションのために使用されることが可能である。第２のキーは、回復機構を有さず、署名のために利用されることが可能である。ユーザだけが署名キーを制御できるこの実施形態では、非拒絶は、単独で所有されるが検証可能な秘密を用いて達成することができる。署名の有効性が重要である場合は、別個のキーを用いることができ、そのキーは、キー保持者に単独で所有されるがキー保持者の検証可能な秘密である。別の実施形態では、キー保持者は、秘密キーを複製する十分な特権を有するエンティティの能力に基づいて、署名の有効性を拒否することができる。
【００２４】
本発明のプロセスおよびストリーミング・サーバの一実施形態では、ビデオは、サーバ・マシンへ暗号化されずに格納されることが可能であり、ファイルは、サーバ・ソフトウェアを介してのみ取り出し可能である。本発明のサーバは、（１）暗号化キーのセットをネゴシエーションすること、および（２）データ・ストリームを「オン・ザ・フライ」で暗号化して、ネットワークを実際に伝送されているデータ・パケットを、宛先のマシン以外の何れのコンピュータにも役立たなくすることを担う。１つの暗号化標準は、１６８ビット・キーを用いるトリプルＤＥＳである。サーバは、データの伝送のためにＵＤＰを使用する。このプロトコルは、他のＴＣＰプロトコル（例えば、ｈｔｔｐ）よりも使用するネットワーク・リソースがかなり少ない。
【００２５】
クライアント・ソフトウェアは、データ・ストリームの解読および再生を担う。使用される暗号化キーは、データ・ストリームがアクセスされるたびに異なるようにすることが可能である。クライアントが実行される毎に異なる暗号化キーが作成され、それによって、以前のデータ・ストリームが何らかの形でディスクに保存されている場合には、クライアントはそのストリームを再生することができないようにする。
【００２６】
例示的な実施形態
図１に関して、この図は、暗号化されたデータ・ストリームを受信および表示すること、および／またはアクセスすることができるようにされた本発明のプロセスおよびストリーミング・サーバのクライアント・コンポーネントの一実施形態の概略を示している。クライアントは、すべての現行のデータ・ストリームおよび対応するトークンのリストを保持する。この情報は、トークン記憶モジュール１００に格納される。このリストは、次の３つの項目、即ち、（１）ＵＲＩ、（２）そのＵＲＩのトークン、および（３）サーバによって与えられた有効期限日を含む。一実施形態では、トークンが有効か否かを判定する何れの方法もクライアントが有さないことが望ましい。このため、および期限切れのトークンを削除する必要性から、サーバは有効期限日を戻す。この情報は、クライアントによって、情報をディスプレイするために使用される。有効期限日自体は、サーバへ送り返されないが、サーバは、送られてきたトークンが有効であることを検証する。トークン記憶モジュールとして使用することができるモジュール・デバイスの例には、例えば、ランダム・アクセス・メモリ、２次ストレージ（ハードディスク）が含まれ、トークン記憶インベントリおよび有効期限日の追跡を提供するソフトウェアが組み込まれる。
【００２７】
クライアントはユーザ・インタフェース１１０と通信する。クライアントは、適切なユーザ体験を供与する標準のユーザ・インタフェースを有することが可能である。インタフェースは、現在の有効なストリームを通して見るための能力、またはサーバに接続して、閲覧することが可能な他のストリームを探索する能力を有する。クライアント・ユーザ・インタフェース１１０は、ローカル・ディスプレイ制御モジュール１３０およびストリーム制御プロトコル・モジュール１２０と通信する。クライアントは、サーバとの通信セッションをセットアップすること、およびストリームが閲覧されはじめるとサーバからのデータの流れを制御することができなければならない。ストリーム制御プロトコル・モジュール１２０は、サーバに接続し、要求されたＵＲＩ、トークン、およびユーザ情報を送ることによって、初期接続をもたらす。次に、ストリーム制御プロトコル・モジュール１２０は、暗号化キーのセットをネゴシエーションし、サーバからのデータの流れを制御する。暗号化キーのセットをネゴシエーションし、サーバからのデータの流れを制御するために使用できるクライアント・コンポーネント内のストリーム制御プロトコル・モジュール・デバイス１２０の例には、例えば、ランダム・アクセス・メモリ、およびネットワーク・インタフェース・カードまたはモデムが含まれる。ソフトウェアは、ネットワーク統計と、満杯に対するパーセント、残りのパーセントなどを含むバッファに関連する情報と、他のクライアント特性とをストリーミング・サーバへ送ることにより、受信されているデータのレートを監視することができる。ディスプレイ制御モジュール１３０は、データのディスプレイを制御するものであり、データ・ストリームを一時停止、停止、または再スタートする能力を有する。クライアント・コンポーネント内で使用するのに適したディスプレイ制御モジュールの例には、ランダム・アクセス・メモリおよびビデオ・カードが含まれる。このモジュールにおいて実行されるソフトウェアは、サーバから送信されているデータを、ユーザにディスプレイすることができるフォーマットへと変換する。
【００２８】
ディスプレイ・モジュール１４０は、ビデオおよびオーディオのデータをディスプレイする。入力バッファ・モジュール１５０は、ストリーム・バッファを含むモジュールである。ストリーム・バッファは、ディスプレイ制御モジュールが読み取り、解読モジュールが書き込む、解読済みのデータのサーキュラー・バッファを含むことが可能である。解読済みのデータのサーキュラー・バッファを含むように使用できるストリーム・バッファ・モジュール・デバイスの例には、例えば、ランダム・アクセス・メモリが含まれる。サーバからパケットが受信されるにつれ、入力バッファへデータが入れられる前に、トランスポート・パケット内のデータが、ストリーム制御プロトコル・モジュール１２０によってネゴシエーションされたキーを使用して解読モジュール１６０によって解読される。
【００２９】
解読モジュール１６０は、市販用も含めて実質的に何れの解読機構を使用しても実施することができる。例えば、ＳＳＬモジュール、ＤＥＳモジュール、およびＲＳＡモジュールが、解読モジュールとして使用すために利用可能であり適切であり得る。最後に、クライアント・コンポーネント側には、データ・ストリーム受信モジュール１７０がある。このモジュールは、サーバによって送信されたデータ・パケットの受信を取り扱う。
【００３０】
クライアント・コンポーネント内のデータ・ストリーム受信モジュールとして使用できる適切なモジュール・デバイスには、例えば、ランダム・アクセス・メモリが含まれる。このモジュールに含まれるソフトウェアは、クライアントによって受信されているデータを、後続のモジュール群が使用できるフォーマットで保存することができる。
【００３１】
図２に関して、クライアント制御接続モジュール２００は、クライアントとサーバとの間の制御通信を取り扱う。クライアントとサーバは、暗号化キーのセットをネゴシエーションする。クライアントは、クライアント制御接続モジュール２００を介して、ユーザ情報、ＵＲＩ、およびトークンをストリーミング・サーバへ送信する。このモジュール２００から、クライアントへストリーミングされるデータが、制御される（即ち、一時停止、停止、または再スタートされる）。ストリーミング・サーバ内のクライアント制御接続モジュールとして使用するのに適したハードウェア・デバイスには、ランダム・アクセス・メモリが含まれる。そのようなハードウェア・コンポーネントは、ハードウェアに固有ではない動作の実行を可能とする。そのようなソフトウェアは、クライアント制御接続モジュールに組み込まれるか、またはクライアント制御接続モジュールへアップロードされる。ソフトウェアはプロセスを作成するように機能するものであり、そのプロセスにおいて、クライアントとサーバとが現在のネットワーク状態を通信し、それに相応してデータ・ストリームを変更する。
【００３２】
クライアント・データ接続モジュール２１０は、サーバ・オーバーヘッドを減らすようにコネクションレス・プロトコルを使用してデータ・パケットをクライアントへ送信するように機能する。ストリーミング・サーバ内のクライアント・データ接続モジュールとして使用するのに適したハードウェア・デバイスには、ランダム・アクセス・メモリおよびネットワーク・インタフェース・カードが含まれる。そのようなソフトウェアは、クライアント・データ接続モジュールに組み込まれるか、またはクライアント・データ接続モジュールへアップロードされる。ソフトウェアはプロセスを作成するように機能するものであり、そのプロセスにおいて、暗号化されたデータがネットワーク・パケットを介してクライアント・マシンへ送信される。
【００３３】
暗号化モジュール２２０は、クライアント／サーバによってネゴシエーションされたキーを使用して、データ・ストリームがクライアントに送信される際にそのデータ・ストリームを暗号化する。これは「オン・ザ・フライ」の暗号化を可能にするものであり、暗号化キーは、すべてのクライアント／サーバ接続に固有である。これは、ソース映画場面が、適宜、暗号化されずにサーバに格納されることを可能にする。ストリーミング・サーバ内の暗号化モジュールとして使用するのに適したハードウェア・デバイスには、ランダム・アクセス・メモリ、およびプロプライエタリ・ハードウェア暗号化デバイスが含まれる。そのようなハードウェア・コンポーネントは、データの実際の暗号化を行うように機能するソフトウェアを含む。そのようなソフトウェアは、暗号化モジュールに組み込まれるか、または暗号化モジュールへアップロードされることが可能である。ソフトウェアはプロセスを作成するように機能するものであり、そのプロセスにおいて、デバイスへ送信されているデータは、クライアントと最初にネゴシエーションされたキーで暗号化され、出力データは、クライアントによって解読された後にのみ読み取られることが可能なフォーマットである。
【００３４】
フロー制御モジュール２３０は、クライアントがデータを使用しているレートで、データ・ストリームがサーバによって送信されていることを確実にする。クライアントにおけるバッファは常時フルである必要があるが、ストリーミング・データが上書きされることもあってはならない。従って、フロー制御モジュールは、暗号化モジュール２２０と通信し、クライアント制御接続モジュール２００から得たフィードバックを使用する。ストリーミング・サーバ内でフロー制御モジュールとして使用するのに適したハードウェア・デバイスには、ランダム・アクセス・メモリが含まれる。そのようなソフトウェアは、フロー制御モジュールに組み込まれるか、またはフロー制御モジュールへアップロードされる。ソフトウェアはプロセスを作成するように機能するものであり、そのプロセスにおいて、サーバからクライアントへのデータの流れが調整される。
【００３５】
ファイル・システム読み取りバッファ２４０は、サーバ・パフォーマンスのためのものである。ファイルから読み込まれた少量のデータは、ファイル・システム上に常時開いたファイルを有する代りに、メモリに格納される。ファイル・システム・モジュール２５０は、記憶メディアまたは他の場所のソース映画場面からデータを読み込む責務を担う。ファイル・システム・モジュールは、クライアント制御接続モジュール２００と通信して、ファイル・パス構成に対してのＵＲＩおよびユーザ・インタフェース・モジュール２６０を開く。ストリーミング・サーバ内でのファイル・システム・モジュールとして使用するのに適したハードウェア・デバイスには、ランダム・アクセス・メモリが含まれる。そのようなハードウェア・コンポーネントは、データ・ストリームへのアクセスを可能とするように機能するソフトウェアを含む。そのようなソフトウェアは、ファイル・システム・モジュールに組み込まれるか、またはファイル・システム・モジュールへアップロードされることが可能である。ソフトウェアはプロセスを作成するように機能するものであり、そのプロセスにおいて、２次記憶デバイスに格納されたデータが、ランダム・アクセス・メモリへロードされ、暗号化モジュールへ送られる。
【００３６】
ストリーミング・サーバは、何れのネットワーク・ポートをバインドするかや、ソース映画場面の場所などのサーバ・オプションを設定するための簡単なユーザ・インタフェース・モジュール２６０を更に提供する。ストリーミング・サーバ内でファイル・システム・モジュールとして使用するのに適したハードウェア・デバイスには、ランダム・アクセス・メモリが含まれる。そのようなソフトウェアは、ファイル・システム・モジュールに組み込まれるか、ファイル・システム・モジュールへアップロードされる。ソフトウェアはプロセスを作成するように機能するものであり、そのプロセスにおいて、サーバ・ソフトウェアのユーザは、データ・ストリームを見つけるのに何処に行くべきかをファイル・システム・モジュールに指示することができる。
【００３７】
図３に関して、トランザクション・サーバは４つのモジュール・コンポーネントを含む。ビデオ・ストリームにアクセスするために、クライアントはまずトランザクション・トークンを獲得しなければならない。トランザクション・トークンはペイ・パー・ビュー制に基づいており、トークンはある期間にわたって有効である。トークンが有効な期間は、ユーザが何を選択するかや、選択されたストリームに関してどのようなオプションが使用可能であるかに依存する。ユーザは、ユーザ情報およびＵＲＩを用いて、クライアント対話モジュール３００を介してトランザクション・サーバに接触する。トランザクション・サーバは、そのトークンに関してどのような時間オプションが使用可能であるかを特定し、そのオプションをユーザに呈示する。ユーザが要求した制限時間を選択した後、その要求はユーザ検証モジュール３１０へ転送される。トランザクション・サーバ内でクライアント対話モジュールとして使用するのに適したハードウェア・デバイスには、ランダム・アクセス・メモリが含まれる。そのようなソフトウェアは、クライアント対話モジュールに組み込まれるか、またはクライアント対話モジュールへアップロードされることが可能である。ソフトウェアはプロセスを作成するように機能するものであり、そのプロセスにおいて、ユーザ情報がデータベースに照らして検証され、有効なトークンが、ユーザによって要求されたオプションに部分的に基づいて、作成される。
【００３８】
ユーザ検証モジュール３１０は、渡されたユーザ情報をユーザ・データベースに照らして調べて、ユーザが有効であるか否かを確かめる。ユーザ・データベースは、ユーザ検証モジュールのメモリに存在する。トランザクション・サーバ内でユーザ検証モジュールとして使用するのに適したハードウェア・デバイスには、ランダム・アクセス・メモリが含まれる。そのようなソフトウェアは、ユーザ検証モジュールに組み込まれるか、またはユーザ検証モジュールにアップロードされる。ソフトウェアは、送られてきたトークンが検証されるプロセスを作成するように機能する。ＵＲＩ作成モジュール３２０とトークン作成モジュール３３０は結びつけられ、トークンは、部分的に、要求されたＵＲＩに基づく。これは、トークンが要求のＵＲＩに固有であり、他の何れのストリーム用にも使用できない、ということを意味する。次に、この情報は、モジュール３００を介してクライアントへ送り返される。トランザクション・サーバ内にそれぞれ配されるＵＲＩ作成モジュールおよびトークン作成モジュールとして使用するのに適したハードウェア・デバイスには、ランダム・アクセス・メモリが含まれる。そのようなハードウェア・コンポーネントには、ランダム・アクセス・メモリ内で機能するソフトウェアが含まれる。そのようなソフトウェアは、ＵＲＩ作成モジュールまたはトークン作成モジュールに組み込まれるか、またはアップロードされることが可能である。ソフトウェアは、ユーザが選択したメディア・ストリームに対する有効なＵＲＩが作成されるプロセスを作成するように機能する。
【００３９】
例示的な動作
図４に関しては、クライアント４００が実行され、クライアントにＵＲＩおよびトークンがロードされる（４１０）。クライアントは、クライアントのアイコン上でダブルクリックするか（いいえ）、またはメディア・サーバによって実行開始される（はい）。メディア・サーバがクライアントに実行を開始させた場合、クライアントのコマンドライン・パラメータの中に、要求されたＵＲＩおよびトークンが存在する。ディスプレイ・ウインドウ（４２０）は、閲覧できるすべての購入済みの（および現行の）データ・ストリームをリストするか又はそれと対話する。ユーザは、ストリームの題名上でダブルクリックすることにより、アクセスするデータ・ストリームを選択することができる。スクリーンはユーザからの入力を待ち（４３０）、ユーザは、データ・ストリームまたは別のハウスキーピング・オプションを選択する（４４０）。ハウスキーピング・オプションが選択された場合、ユーザ要求を実行し（４５０）、そして、モジュール４２０を使用してビデオ・ストリームをディスプレイすることに戻る。
【００４０】
ユーザがデータ・ストリームを実行開始（４１０から「はい」を選択）した場合、ＵＲＩおよびトークンが、購入済みストリーム・リストに保存されて、それを後の時点で再び閲覧されることが可能になる（４６０）。ストリーミング・サーバへの接続が開かれ、ＵＲＩ、トークン、およびユーザ情報がストリーミング・サーバへ送信される（４７０）。ストリーミング・サーバは、有効（または無効）のＵＲＩとトークンの組み合わせを承認する（４８０）。トークンが無効であるか又は有効期限切れである場合、サーバは接続を閉じ、クライアントは戻って閲覧可能なすべてのデータ・ストリームをディスプレイする。サーバが有効なＵＲＩとトークンの組み合わせを承認した場合、クライアントは、ストリーミング・サーバからデータを受信することを開始し、そのデータをディスプレイする（４９０）。
【００４１】
データ・ストリームが終了するか、又はユーザが一時停止、停止、再生、または再スタートなどの使用可能なストリーム・オプションの何れかを選択した場合（５００）、ストリームは停止し、更なるユーザ入力を待つ。ストリームの再生が終わった場合（５１０）、プロセスは、使用可能なストリームのリスト（４２０）に戻るか、またはユーザ要求を処理して（５２０）次にストリームをディスプレイすること（４９０）に戻ることにより、データ・ストリームをディスプレイすること（４９０）を続ける。
【００４２】
図５およびストリーミング・サーバによって実行されるプロセスに関して、クライアント制御モジュール２００に対する接続がまず存在して（６００）、クライアントがストリーミング・サーバとの接続を確立できるようにする。クライアントは、ユーザからのＵＲＩ、トークン、およびユーザ情報（６１０）を提供する（４７０）。ストリーミング・サーバは、トークンおよびＵＲＩが有効であるかどうかを判定する（６２０）。トークンが無効または有効期限切れである場合、クライアントに対する接続は、適切なエラー・メッセージを伴って閉じられる（６３０）。トークンが有効である場合、固有の暗号化キーのセットが、クライアントとネゴシエーションされる（６４０）。ＵＲＩが開かれ、ストリーミング・データがバッファに読み込まれる（６５０）。
【００４３】
クライアント・フロー制御モジュール２３０は、クライアントとストリーミング・サーバにフロー制御接続を確立されるようにして、データ・ストリームが、クライアント端で使用されているのと実質的に同じレートでストリーミング・サーバから出ることを確実にする（６６０）。これは、帯域幅の問題に対処するとともに、クライアント再生バッファが上書きされないことを確実にする。従って、クライアント・フロー制御機構（６６０）は、クライアント・フロー制御モジュール２３０を使用して、クライアント内のデータ・バッファからフィードバックを獲得し（７１０）、データ・ストリームのレートを制御して、クライアント・バッファを可能な限り満杯に保つ。クライアントが、その時点でそれ以上のデータを受け入れられない場合、それを示すようにフロー制御モジュールに戻り（６７０）、ストリーミング・データを遅くするか又は一時停止する。クライアントが更なるデータを受け入れることができる場合（６８０）、クライアント・フロー制御は、まず、ストリーミングする更なるデータが存在するかどうかを判定する（６８０）。ストリーミングする更なるデータが無い場合、データ・ストリームは完了であり、クライアント接続が閉じられる（６９０）。送信されるべき更なるデータが存在する場合、送信バッファで待機しているデータが暗号化され（７００）、暗号化済みのデータがクライアントへ送信される（７１０）。
【００４４】
トランザクション・サーバにおいての図６に関して、クライアントはまず、例えば、Ｗｅｂページを介して、トランザクション・サーバに接続する（８００）。一実施形態では、トランザクション・サーバは、ＡＳＰスクリプトを使用して実施される。しかしながら、本発明はそのように限定されるものではなく、本発明の範囲または趣旨を逸脱することなく、実質的にあらゆる機構を使用することができる。クライアントは、ＡＳＰコマンドライン・アーギュメントを介して要求ＵＲＩおよびユーザ情報を送信し（８１０）、トランザクション・サーバ・ユーザ検証モジュール３１０が、利用可能なトークンの制限時間を特定し、それらを選択のためにユーザにディスプレイする。トランザクション・サーバは、ユーザ検証モジュール３１０内のデータベースのユーザ情報をルックアップする（８２０）。ユーザ情報をルックアップすることの例は、ユーザがアカウントを有するか否かである（例えば、トランザクション・サーバによればアカウントが存在する）（８３０）。ユーザがアカウントを有さない場合（８４０）、トランザクションが開かれて、新たなアカウント・ページが作成され、ユーザから情報が獲得される（８４０）。更に、トランザクション・サーバ・ユーザ検証モジュール３１０は、要求されたＵＲＩが無料でるかどうかを判定する（８５０）。ＵＲＩが有料である場合（８６０）、トランザクション・サーバ・ユーザ検証モジュール３１０は、ユーザ・データベース内にあるクレジットカードの借方に記入する。このプロセスが、トランザクション・サーバのＵＲＩ作成モジュール３２０においてＵＲＩを作成する。
【００４５】
ＵＲＩが提供され、代価が支払われるか又は無料で提供されると、トークン作成モジュール３３０においてトークンが作成される（８７０）。今作成されたトークンはＵＲＩとリンクされ、制限時間が選択される（８８０）。最後に、クライアント・マシンでビューアが始動され、ＵＲＩおよび作成済みのトークンとともにクライアントへ送り返される。
【００４６】
例示的な仮想スマートカード内のクライアント・コンポーネント
図１に関連して述べたクライアント・コンポーネントは、様々なクライアント・システムにおいて使用することができる。そのようなクライアント・システムには、パーソナル・コンピュータ、マルチプロセッサ・システム、マイクロプロセッサ・ベースの又はプログラマブルの家庭用電化製品、セットトップ・ボックス、対話型テレビジョン・デバイス、ポイント・オブ・ディプロイメントのインタフェースおよびモジュール、ネットワークＰＣなどのような、通常は有線通信媒体を使用して接続されるデバイス群が含まれ得る。また、そのようなデバイスには、セル式電話機、スマートホン、ページャ、トランシーバ、無線周波数（ＲＦ）デバイス、赤外線（ＩＲ）デバイス、ＣＢ、前述のデバイスの１または複数のものを組み合わせた統合デバイス、あるいは実質的にあらゆるモバイル・デバイスなどのような、無線通信媒体を使用するデバイスも含まれ得る。同様に、図１のクライアント・コンポーネントを使用することが可能なクライアント・システムは、ＰＤＡ、ポケットＰＣ、ウェアラブル・コンピュータ、ならびに有線および／または無線の通信媒体を介して通信するように装備された他の任意のデバイスなどのような、有線または無線の通信媒体を使用して接続することができる任意のデバイスであることも可能である。
【００４７】
また、そのようなクライアント・システムは、映画、オーディオ・クリップなどを鑑賞することを含めた様々な理由で、ストリーミングされたデータを使用するように構成されることも可能である。一実施形態では、ストリーミングされるデータは、対話型テレビジョン・サービスに関連するデータの少なくとも一部を含む。ストリーミングされるデータは、銀行業務活動、電子商取引活動などに関連することさえ可能である。
【００４８】
更に、図１のクライアント・コンポーネントは、様々なコンフィギュレーションに配することが可能であり、様々なアーキテクチャに関連することが可能である。例えば、一実施形態では、図１のクライアント・コンポーネントは、仮想スマートカード（ＶＳＣ）を有するクライアント・システム内に配されることが可能である。更に、クライアント・コンポーネントは、ＶＳＣを使用する対話型テレビジョン環境と関連して使用されることも可能である。
【００４９】
図７は、図２〜６に関連して述べたものと実質的に同様の様式でトランザクション・サーバと対話するように構成された、クライアント・デバイス内のＶＳＣに関するそのような構成の一実施形態を示している。図７のクライアント・システム７０００は、図示したコンポーネントよりも多くのコンポーネントを含む。しかしながら、図示したコンポーネントは、本発明を実施するための例示的な実施形態を開示するのには十分であり、本発明の趣旨または範囲を逸脱することなく、コンポーネントの配置およびタイプの変更を行うことができる。
【００５０】
前述したＶＳＣの使用により、プライバシー（機密性）、完全性、適時性、アクセス制御（許可）、および認証（ＩＤ）、ならびに高速更新、相互リンク・コピー保護、またはデジタル権利管理、ならびに、より高い能力、柔軟性、およびデバイスへバインドしてより高いセキュリティを提供する能力が可能になる。
【００５１】
図に示すとおり、クライアント・システム７０００は、クライアント・デバイス７００２を含む。クライアント・デバイス７００２は、ＶＳＣ７００４、タンパー検出７００６、データ・ストリーム受信モジュール７１７０、ディスプレイ・モジュール７１４０、ローカル・ディスプレイ制御モジュール７１３０、およびユーザ・インタフェース７１１０を含む。ＶＳＣ７００４は、通信／フロー制御モジュール７０１０、セキュア・メッセージ・マネージャ７０１２、タンパー保護７０１４、クライアント入力バッファ７１５０、トークン・マネージャ７０１６、暗号化モジュール群７０６０、トークン記憶モジュール７１００、キー・ジェネレータ７０１８、およびバインド・モジュール７０２０を含む。
【００５２】
ユーザ・インタフェース７１１０は、図１のユーザ・インタフェース１１０と実質的に同様に動作する。ユーザ・インタフェース７１１０は、データ・ストリームを選択する能力を提供するように、および情報を提供するように構成された様々なクライアント入力デバイスを含み、それらには、マウス、キーボード、マイクロフォン、タッチスクリーン、遠隔制御デバイスなどが含まれ得る。
【００５３】
ローカル・ディスプレイ制御モジュール７１３０は、図１のローカル・ディスプレイ制御モジュール１３０と実質的に同様に動作する。即ち、ローカル・ディスプレイ制御モジュール７１３０は、データのディスプレイの制御、ならびにデータ・ストリームを一時停止、停止、開始、および再スタートする能力を可能にする、実質的に任意のデバイス、ソフトウェア、ソフトウェアとハードウェアの組み合わせなどであることが可能である。
【００５４】
ディスプレイ・モジュール７１４０は、図１のディスプレイ・モジュール１４０と実質的に同様に動作する。即ち、ディスプレイ・モジュール７１４０は、ユーザに対して、ビデオ・データ、オーディオ・データなどを含むデータ・ストリームを呈示することを可能にする。ディスプレイ・モジュール７１４０は、例えば、対話型テレビジョン・データ・ストリームの呈示を可能にする。
【００５５】
データ・ストリーム受信モジュール７１７０は、図１のデータ・ストリーム受信モジュール１７０と実質的に同様に動作する。即ち、データ・ストリーム受信モジュール７１７０は、サーバによって送信されたデータ・ストリームと関連するデータ・パケットの受信を管理するように構成される。データ・ストリーム受信モジュール７１７０は、更に、受信されたデータ・パケットを通信／フロー制御モジュール７０１０へ提供するように構成される。
【００５６】
トークン記憶モジュール７１００は、図１００のトークン記憶モジュール１００と実質的に同様に動作するように構成される。即ち、トークン記憶モジュール７１００は、ＵＲＩ、格納されたＵＲＩに関連するトークン、トークンに関連する有効期限日などのためのセキュリティ保護されたストレージを提供するように構成される。更に、トークン記憶モジュール７１００は、クライアント・デバイス７００２に緊密にバインドされたセキュリティ保護されたローカル・ストアを提供するように構成される。トークン記憶モジュール７１００は、ファイル、フォルダ、データベースなどとして実施することができる。クライアント・システムに対するバインドは、バインド・モジュール７０２０を使用して行われる。ローカル・セキュリティは、様々な暗号化、不明瞭化の何れかを使用し、様々なネットワーク・リソースの使用を介して、提供することができる。
【００５７】
バインド・モジュール７０２０は、クライアント・デバイス７００２、サーバ・システムなどを一意に特定するように構成される。一実施形態では、これは、フィンガープリントを用いることによって達成される。フィンガープリントは、各フィンガープリントに固有の幾つかの要素から成る。そのような要素を本明細書ではリッジと呼ぶ。各リッジは、フィンガープリントに情報を与えるフィンガープリント要素を含み、フィンガープリントを他のフィンガープリントとは異なるものにする。リッジの幾つかの例には、ハードウェア・シリアル番号、オペレーティング・システム・バージョン番号、インターネット・プロトコル・アドレス、物理メモリ・サイズなどが含まれる。フィンガープリントに含まれる各リッジがシステムの識別性を精密にし、それをシステム内で一意に特定できるようにする。すべてのフィンガープリントの組み合わせが、ハンドプリントまたはシステム・フィンガープリントを生成し、それが、パーソナル・コンピュータ、サーバ、クライアント・デバイス、セットトップ・ボックス、またはシステム内の同様のデバイスを一意に特定する。フィンガープリント・グループおよび個々のリッジのそれぞれのものの順序が、結果としてのシステム・フィンガープリントまたはハンドプリントに影響を与える。即ち、バインド・モジュール７０２０の各ユーザは、用いられている中核のリッジ情報が同一であっても、一意のフィンガープリントおよびそれに続く一意のハンドプリントを生成することができる。
【００５８】
生成されたフィンガープリントの使用は、ＶＳＣ７００４を、クライアント・デバイス７００２のような特定のデバイスにバインドするものであり、もしそれが複製されて別のデバイス上で実行を試みられた場合には適切に機能しない。この手法により、物理的スマートカード違法コピーの一般的なハッカのアプローチが排除される。
【００５９】
一実施形態では、ＶＳＣ７００４を、物理的スマートカードなどの別のデバイスと組み合わせて、デバイス・フィンガープリントに対する物理的カードのセキュリティ保護されたＩＤ特性を更に向上させ、なおも、ＶＳＣ７００４の柔軟性および能力を維持する。これは、例えば、デバイスＩＤが本来脆弱であり、物理的カードまたは他のデバイスの費用および／または利便性が問題ではないシステムにおいて、行うことができる。
【００６０】
通信／フロー制御モジュール７０１０は、ＶＳＣ７００４と、トランザクション・サーバおよびストリーミング・サーバとの間におけるデータの通信およびフローの制御を可能にするように構成される。このため、通信／フロー制御モジュール７０１０は、図１のストリーム制御プロトコル・モジュール１２０によって実行される幾つかのアクションと実質的に同様のアクションを実行することができる。即ち、通信／フロー制御モジュール７０１０は、サーバへの初期接続を可能にし、要求されたＵＲＩ、トークン、およびユーザ情報を送ることを可能にする。
【００６１】
また、通信／フロー制御モジュール７０１０は、サーバからのデータのフローの制御を可能にして、図１のストリーム制御プロトコル・モジュール１２０と実質的に同様に、フローのレートによって、クライアント・バッファ（例えば、クライアント入力バッファ７１５０）が実質的に満杯に維持されることを確実にする。通信／フロー制御モジュール７０１０は、それを行うために、例えば、データが受信されているレート、ネットワークの統計、入力バッファの統計などのような様々な特性を監視する。このため、通信／フロー制御モジュール７０１０は、入力バッファ７１５０のクエリを可能して、満杯に対するパーセンテージ、満たすレート、残りのバッファ空間のパーセンテージなどを判定する。次に、通信／フロー制御モジュール７０１０は、監視された特性に基づき、フロー制御の計量を、暗号化された形または暗号化されていない形で、サーバに提供することができる。情報が暗号化された形で提供される場合、通信／フロー制御モジュール７０１０は、セキュア・メッセージ・マネージャ７０１２を使用して、情報がセキュリティ保護されることを確実にする。
【００６２】
セキュア・メッセージ・マネージャ７０１２は、メッセージ交換のためのセキュリティ保護された媒体を提供するように構成される。図示していないが、セキュア・メッセージ・マネージャ７０１２は、必要に応じてＶＳＣ７００４の様々な他のコンポーネントと対話して、エンド・パーティの相互認証が達成されること、およびメッセージのプライバシーが保たれることを確実にする。
【００６３】
トークン・マネージャ７０１６は、トークンおよび同様の資格の受信、格納、送信、および解釈を管理するように構成される。このため、トークン・マネージャ７０１６は、図１のストリーム制御プロトコル・モジュール１２０に関連する様々なアクションを実行する。例えば、トークン・マネージャ７０１６は、要求されたＵＲＩ、トークン、およびユーザ情報をサーバに送ることができる。また、トークン・マネージャ７０１６は、暗号化モジュール群７０６０および／またはキー・ジェネレータ７０１８を用い、サーバと暗号化キーのセットをネゴシエーションする。更に、トークン・マネージャ７０１６は、セキュア・メッセージ・マネージャ７０１２を用いて、サーバとクライアント・デバイス７００２との間でセキュリティ保護された通信を可能にする。
【００６４】
トークンについて上記で簡単に説明した。しかしながら、一実施形態では、トークンは、証明機関などに関連するＩＤ情報や暗号化キーなどを含むデジタル証明書を含むこともできる。ＶＳＣ７００４によって使用されるそのようなトークン構造は、資格チェーンの独自の概念を提供し、それは、従来の証明機関モデルによってサポートされる典型的なモデルを超えてビジネス・モデルを拡張することができる。しかしながら、本発明はそれに制約されるものではなく、トークン構造は、ユーザ許可を特定のデータ・ストリームに関連付けるように構成された実質的にあらゆる構造を用いることができる。
【００６５】
暗号化モジュール７０６０は、暗号化、解読、デジタル署名、キー生成その他などを実行するための暗号化機構を提供することに向けらたものである。例えば、暗号化モジュール７０６０は、暗号化アクションに基づいて公開キー／秘密キーを提供するように構成された非対称暗号化機構を含む。公開キー／秘密キー暗号化アクションには、キー生成、デジタル署名、暗号化、解読、および完全性検査が含まれる。また、暗号化モジュール７０６０は、トークン・マネージャ７０１６およびセキュア・メッセージ・マネージャ７０１２を介して、暗号化キーのセキュリティ保護された交換も可能にする。
【００６６】
暗号化モジュール７０６０は、通信／フロー制御モジュール７０１０からセキュリティ保護されたコンテンツを受信すること、セキュリティ保護されたコンテンツを解読すること、および解読されたコンテンツをクライアント入力バッファ７１５０へ送ることが更にできるようにされている。
【００６７】
クライアント入力バッファ７１５０は、図１のクライアント入力バッファ１５０と実質的に同様に動作する。即ち、クライアント入力バッファ７１５０は、ストリーム・バッファを含むように構成される。クライアント入力バッファ７１５０をＶＳＣ７００４内に示しているが、本発明はそのような構成に限定されないことに留意することが重要である。例えば、クライアント入力バッファ７１５０は、クライアント・デバイス７００２内部でＶＳＣ７００４の外部に存在してもよい。
【００６８】
暗号化モジュール７０６０は、対称キーまたは秘密キー、非対称キーまたは公開キーなどを含めた様々な暗号化キーを提供するように構成される。暗号化モジュール７０６０は実質的にあらゆる暗号化機構を用いることができるが、一実施形態では、暗号化モジュール７０６０は、対称暗号化のためにＡＥＳを使用する。別の実施形態では、暗号化モジュール７０６０は、非対称暗号化アクションのためにＲＳＡを使用する。
【００６９】
キー・ジェネレータ７０１８は、暗号化モジュール７０６０を使用して暗号化キーの生成を可能にするように構成される。そのような生成には、例えば、高速更新機構を使用することができ、それにより、キーの新たな生成が、従来の物理的スマートカード・キー置換機構と比べて、短い期間内に実行される。一実施形態では、キー・ジェネレータ７０１８は、数日間内や数週間内や数ヶ月間内ではなく、数時間内での新たなキーの生成を可能にする。一実施形態では、攻撃の可能な点を更に不明瞭にするために動的な高速更新が用いられ、その動的な高速更新では、キーなどの再生成がランダムに実行されて予測できない環境を作り出す。別の実施形態では、そのような動的な高速更新を使用して様々なソフトウェア・コンポーネントを置き換えることもでき、攻撃を更に最小限に抑えることができる。そのような高速更新を用いるということは、ＶＳＣ７００４を、銀行業務、企業セキュリティ、電子商取引を含む様々な他の状況において、およびコンテンツ配信のためのスタジオにおいて、使用することを可能にする。
【００７０】
タンパー検出７００６およびタンパー保護７０１４をクライアント・システム７０００内の様々なポイントで適用して、高いセキュリティ保護されたインフラストラクチャを確実にすることができる。典型的には、何らかのレベルの耐タンパー性またはタンパーからの保護をＶＳＣ７００４のソフトウェアおよび／またはハードウェアの一部として提供することができる。示したように、ＶＳＣ７００４は、タンパーおよび類似のハッキングのアプローチに対する保護または抵抗を提供するタンパー保護７０１４を含む。この保護は、様々なアクションを実行するように構成されたエージェントを更に含み、そのアクションには、回路内エミュレータ検出、デバッガ検出、デバッガ抵抗、メモリ空間の違反検出および保護、ならびに類似のアプリケーション・レベルの海賊行為動作の検出および保護を含む。
【００７１】
タンパー検出７００６は、クライアント・デバイス７００２上のシステムなどのような他のシステムからのタンパーを特定するように構成される。例えば、対話型テレビジョン環境では、ネットワーク内にタンパー検出を配備して、仮想スマートカードおよび／または仮想スマートカードの様々なコンポーネントを複製しようとする試みを監視することができる。タンパー検出７００６は、信頼されたタイム・ソースを更に提供して、リプレイ・アタックを防止することができる。
【００７２】
動作上、ＶＳＣ７００４は、図４に示したものと実質的に同様に動作することができる。例えば、図４に示すとおり、クライアントにＵＲＩおよびトークンが読み込まれる（図４のブロック４００を参照）。このアクションは、図７において、通信／フロー制御モジュール７０１０、およびユーザ・インタフェース７１１０、ディスプレイ・モジュール７１４０などとの対話を介して行われる。
【００７３】
ユーザが、図４の判定ブロック４１０でデータ・ストリームを実行開始した場合、プロセスは、ブロック４６０に進み、トークン・マネージャ７０１６およびトークン記憶モジュール７１００を使用してＵＲＩおよびトークンが保存される。次に、ブロック４７０に進み、通信／フロー制御モジュール７０１０が、トークン・マネージャ７０１６と連携して、ＵＲＩ、トークン、およびユーザ情報をストリーミング・サーバへ送る。
【００７４】
判定ブロック４８０で、サーバが、有効なＵＲＩとトークンの組み合わせを承認した場合、処理は図４のブロック４９０に進み、データがストリーミング・サーバからストリーミングされる。データのそのようなストリーミングは、データ・ストリーム受信モジュール７１７０によって受信され、通信／フロー制御モジュール７０１０へ送られ、そこで、暗号化モジュール群７０６０を使用して、受信されたストリームの解読が行われる。次に、解読されたデータ・ストリームが、クライアント・バッファを実質的に満杯に保つことを目的とする速度で、クライアント入力バッファ７１５０へ入れられる。通信／フロー制御モジュール７０１０は、データのストリーミング中にフロー制御情報を提供して、クライアント・バッファが実質的に満杯であることを確実にする。
【００７５】
以上の仕様、例、およびデータは、本発明の構成の製造および使用の完全な説明を提供する。本発明の趣旨および範囲を逸脱することなく、本発明の多数の実施形態を実施することができるため、本発明は添付の特許請求の範囲に存する。
【図面の簡単な説明】
【００７６】
【図１】図１は、暗号化されたデータ・ストリームを受信し、見ることができるようにされたクライアントのコンポーネントの概略図を示し、クライアントのコンポーネントは、トークン記憶モジュール１００、ストリーム制御プロトコル・モジュール１２０、および解読モジュール１６０を含む。
【図２】図２は、少なくとも暗号化モジュール２２０と、キー・ネゴシエーションおよびトークン検証のためのクライアント制御接続モジュール２００とを有するストリーミング・サーバのコンポーネントの概略図を示す。
【図３】図３は、トークン作成モジュール３３０とユーザ検証モジュール３１０とを有するトランザクション・サーバ・コンポーネントの概略図を示す。
【図４】図４は、閲覧のためにデータ・ストリームをロック解除（解読）するためのトークンの必要性を示す様々なクライアントのシナリオの概略を示す。
【図５】図５は、データ・ストリームの閲覧および受信を可能にする暗号化キーのネゴシエーションをトリガするクライアント・トークンの受信を示すストリーミング・サーバに関するプロセスの概略を示す。
【図６】図６は、クライアント・アカウントのセットアップおよびトークン作成を提供するトランザクション・サーバ・プロセスの概略を示す。
【図７】図７は、本発明による、トランザクション・サーバと対話してデータ・ストリームを管理するように構成されたクライアント・デバイス内部の仮想スマートカード（ＶＳＣ）の実施形態を示す。
【図１】
2006109391.tif 000003
【図２】
2006109391.tif 000004
【図３】
2006109391.tif 000005
【図４】
2006109391.tif 000006
【図５】
2006109391.tif 000007
【図６】
2006109391.tif 000008
【図７】
2006109391.tif 000009
【外国語明細書】
2006109391000001.pdf