JP5532291B2 - プロセッサのバーチャルマシン内で機密コンテンツをセキュアに処理するための方法及び装置 - Google Patents

プロセッサのバーチャルマシン内で機密コンテンツをセキュアに処理するための方法及び装置 Download PDF

Info

Publication number
JP5532291B2
JP5532291B2 JP2009242567A JP2009242567A JP5532291B2 JP 5532291 B2 JP5532291 B2 JP 5532291B2 JP 2009242567 A JP2009242567 A JP 2009242567A JP 2009242567 A JP2009242567 A JP 2009242567A JP 5532291 B2 JP5532291 B2 JP 5532291B2
Authority
JP
Japan
Prior art keywords
content
processor
program
entity
virtual machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009242567A
Other languages
English (en)
Other versions
JP2010140470A5 (ja
JP2010140470A (ja
Inventor
ワイアット デイヴィッド
シ ハイシア
スコット タッキー ジェフリー
Original Assignee
エヌヴィディア コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エヌヴィディア コーポレイション filed Critical エヌヴィディア コーポレイション
Publication of JP2010140470A publication Critical patent/JP2010140470A/ja
Publication of JP2010140470A5 publication Critical patent/JP2010140470A5/ja
Application granted granted Critical
Publication of JP5532291B2 publication Critical patent/JP5532291B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/84Protecting input, output or interconnection devices output devices, e.g. displays or monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Description

[0001]本発明は、プレミアムオーディオ/ビデオコンテンツの処理に係り、より詳細には、コンテンツプレーヤアプリケーションが実行されるプロセッサコンテクスト以外でのコンテンツ処理に係る。
[0002]従来のコンピューティング環境では、コンテンツの処理がしばしば個別プロセッサによって実行される。例えば、高鮮明度コンテンツをデコードするためのハードウェアプロセッサを設けることができる。今日まで、必要な全てのコンテンツ処理を単一チップに統合することは困難であった。更に、完全に実施するには、典型的に、実施者が、第3当事者コンテンツの認可された採用者となって、認可されたコンテンツを処理するアルゴリズムを使用するための権利を得、且つ暗号化されたコンテンツを抽出するための認可保持者キーを得ることが必要である。このような認可は、典型的に、実施上の不備が機密情報又はコンテンツを危うくする場合に、認可発行者シークレットの機密性、責務及び法的改善を保証するための応諾性及び頑健性ルールを含む。従って、第2当事者認可保持者のソフトウェアアプリケーションは、典型的に、再暗号化されたビデオコンテンツをグラフィックス又はビジュアルプロセッサへより一般的なフォーマットで転送する前に中央処理ユニット等を使用してコンテンツを少なくとも部分的に処理することに依存している。
[0003]不都合なことに、中央処理ユニットに依存することは、幾つかの制約を表す。例えば、CPUで実行されるアプリケーション内で認可保持者キー及びアルゴリズムをハンドリングする場合、処理中のある点で、プロセッサ内部にこの機密情報を露呈することを必然的に伴う。前記機密プロセスやシークレットを使用してコンテンツを処理する場合、このようなユニットへの及びユニットからの伝送を伴い、セキュリティの弱点になり得る。更に、不正変更防止技術を使用しても、バーチャル化のために設計された中央プロセッサ内での実行は、例えば、ハイパーバイザー、又は実行中のバーチャルマシンよりプライオリティの高い実行コンテクストから、頑健な不正変更防止実行環境を保証できない事態を招く。更に、中央処理ユニットは、コンピュータアーキテクチャーの汎用性のために、幾つかの形式の処理(例えば、暗号化、等)については、効率が悪い。付加的な不正変更防止及び再暗号化プロセスは、CPUの過剰利用や、不経済なほどの過度の利用を招き、コンテンツ再生中にバッテリ寿命の短縮を招く。従って、従来技術に関連したこれら及び/又は他の問題に対処することが必要となる。
[0004]出力用にコンテンツを処理するためにプロセッサにおいて実施されるセキュアなバーチャルマシンシステム、方法及びコンピュータプログラム製品が提供される。少なくとも1つのプロセッサが設けられる。更に、第3当事者のコンテンツを処理して出力する第2当事者のプログラムを解釈するためにプロセッサにおいて実施される少なくとも1つのセキュアなバーチャルマシンが設けられる。バーチャルマシンシステムは、同じプログラムを同一に実行するために、製品にわたる実施変更を許すように基礎的なプロセッサハードウェアを抽象化する。更に、プログラムによる潜在的なセキュリティ漏洩を軽減すると共に、第2当事者のシークレットの機密性、及び第2当事者のプログラムにより管理される第3当事者のコンテンツを確保するために、プログラム可能なオペレーションの範囲、入力及び出力変数の形式、並びにプロセッサ内でのプログラムの実行がバーチャルマシン環境内で慎重に制限される。
一実施形態によりコンテンツを解読するキーを生成するためにプロセッサを使用してプログラムを実行する方法を示す図である。 一実施形態により出力のコンテンツを処理するためにプロセッサにおいて実施されるセキュアなバーチャルマシンを示す図である。 一実施形態によりコンテンツを解読するキーを生成するためにプロセッサを使用してプログラムを生成し、セキュア化し、実行するシステムを示す図である。 一実施形態によりインタープリターを使用して受け取ったプログラム及びコンテンツを解釈する方法を示す図である。 一実施形態により受け取ったプログラム及びコンテンツを解釈するためにプロセッサ及びセキュアなバーチャルマシンを含むシステムを示す図である。 一実施形態によりセキュアなバーチャルマシンを使用してタイトルキーを抽出する方法を示す図である。 一実施形態によりセキュアなバーチャルマシンを使用してコンテンツストリームを解読する方法を示す図である。 一実施形態によりセキュアなバーチャルマシンを使用してコンテンツストリームをパッチし再暗号化する方法を示す図である。 一実施形態によりコンテンツを解読するキーを生成するためのプログラムを生成する方法を示す図である。 一実施形態によりコンテンツを解読するキーを生成するためのプログラムをセキュア化するシステムを示す図である。 一実施形態によりコンテンツを解読するキーを生成するためのプログラムを生成してセキュア化する方法を示す図である。 種々の先行する実施形態の種々のアーキテクチャー及び/又は機能を実施できる例示的システムを示す図である。
[0017]図1Aは、一実施形態によりコンテンツを解読するキーを生成するためにプロセッサを使用してプログラムを実行する方法100を示す。図示されたように、コンテンツを解読するプログラムが生成される。オペレーション102を参照されたい。プログラムが生成されると、プログラムがセキュア化される。オペレーション104を参照されたい。一実施形態では、プログラムは、暗号化されることでセキュア化されてもよい。
[0018]本説明の文脈において、プログラムとは、プロセッサを使用して実行できるプログラムを指す。一実施形態では、プログラムは、コンテンツを解読するキーを生成することのできるプログラムを含み、ここで、コンテンツとは、暗号化することのできるデータを指す。オプションとして、コンテンツは、専有情報を含んでもよい。
[0019]この場合、コンテンツと、コンテンツを解読するキーを生成するためのプログラムとが、プロセッサに受け取られる。オペレーション106を参照されたい。更に、コンテンツを解読するためにプロセッサを使用してプログラムを実行することができる。オペレーション108を参照されたい。
[0020]本説明の文脈において、プロセッサとは、表示用のデータを処理することのできるプロセッサを指す。例えば、種々の実施形態において、プロセッサは、グラフィックプロセッサ及びビデオプロセッサの少なくとも1つを含むことができる。一実施形態では、プロセッサは、出力のコンテンツを処理するためにプロセッサにおいて実施される少なくとも1つのセキュアなバーチャルマシンを含んでもよい。
[0021]図1Bは、一実施形態により出力のコンテンツを処理するためにプロセッサ152において実施されるセキュアなバーチャルマシン150を示す。図示されたように、少なくとも1つのプロセッサ152が設けられる。更に、このプロセッサにおいて実施される少なくとも1つのセキュアなバーチャルマシン150が、出力のコンテンツを処理するために設けられる。
[0022]オペレーションにおいて、プログラム及びコンテンツをプロセッサ152により入力として受け取ることができる。一実施形態では、バーチャルマシン150は、コンテンツを処理するプログラムを実行することができる。例えば、コンテンツは、バーチャルマシン150により処理される前に暗号化されてもよい。この場合、処理は、コンテンツの解読を含んでもよい。
[0023]処理は、更に、コンテンツを再暗号化してもよい。オプションとして、再暗号化は、コンテンツがプロセッサ152から出力される前に行われてもよい。オプションとして、再暗号化は、コンテンツがプロセッサから出力された後に行われてもよい。
[0024]一実施形態では、プロセッサ152において複数のセキュアなバーチャルマシン150を実施することができる。この場合に、バーチャルマシン152との間での情報の共有が制約されることがある。例えば、バーチャルマシン152により処理される情報が制約を受ける。一実施形態では、この情報は、キーを含んでもよい。
[0025]ユーザの希望で、以上のフレームワークと共に実施してもしなくてもよい種々の任意のアーキテクチャー及び特徴に関して更に例示的な情報を以下に述べる。以下の情報は例示の目的で述べるもので、何ら限定するものと解釈されるべきでないことを強く注意されたい。以下のいずれかの特徴を、他に述べる特徴を除外して合体するか除外せずに合体するかは任意でよい。
[0026]図2は、一実施形態によりコンテンツを解読するキーを生成するためにプロセッサを使用してプログラムを生成し、セキュア化し、実行するシステム200を示す。オプションとして、このシステム200は、図1A及び図1Bの状況及び詳細において実施されてもよい。しかしながら、当然、システム200は、いかなる望ましい環境において実施されてもよい。又、この説明の間に前記定義を適用できることにも注意されたい。
[0027]オペレーションにおいて、媒体202からコンテンツを受け取ることができる。この場合、コンテンツは、暗号化されてもよい。例えば、コンテンツは、キーを使用して暗号化されてもよい。図示されたように、コンテンツは、認可されたプレーヤベンダー又は他の独立したソフトウェアベンダー(ISV)であるベンダー204のCPUにより受け取られる。更に、ベンダー204のCPUは、コンテンツを処理するためにプロセッサ(例えば、グラフィックプロセッサ、等)250において実行するためのプログラム206を受け取ることができる。オプションとして、プログラム206は、アプリケーションを実行する結果としてメモリ228からベンダー204のCPUによりフェッチされてもよい。
[0028]プログラムをフェッチした後、ベンダー204のCPUは、プログラム206をグラフィックプロセッサ250へ送り出すことができる。一実施形態では、プログラム206は、これがプロセッサ250へ送り出される前に、ベンダー204のCPUにより暗号化されてもよい。
[0029]例えば、プログラム206は、ベンダー204のCPUにより生成され、次いで、暗号化されることでセキュア化されてもよい。一実施形態では、プログラム206は、プロセッサ250がコンテンツを受け取れるようにするアプリケーション(例えば、コンテンツプレーヤ、等)によって使用される。この場合に、プログラム206は、アプリケーションによりセキュア化することができる。従って、プログラム206は、コンテンツに基づき、アプリケーションによってメモリ228から検索されてもよい。
[0030]一実施形態では、プログラム206は、アプリケーションにより検索される前に暗号化することができる。例えば、プログラム206は、アプリケーションにより検索される前に、パブリックキーを使用して暗号化することができる。この場合に、パブリックキー206は、プロセッサ250の製造者により準備されてもよい。
[0031]別のオプションとして、プログラム206は、アプリケーションにより検索された後に暗号化されてもよい。この場合、プログラム206は、ランタイム中にアプリケーションにより検索された後に暗号化されてもよい。更に、プログラム206は、エフェメラルキーを使用して暗号化されてもよい。例えば、このエフェメラルキーは、プロセッサ250のみに記憶される情報を使用して生成されてもよい。一実施形態では、プログラム206は、アプリケーションとプロセッサ250との間で交換される少なくとも1つの証明書を使用して暗号化されてもよい。
[0032]プロセッサ250により受け取られると、インタープリター208は、コンテンツからタイトルキー210を導出するのに使用される。この場合、インタープリター208は、タイトルキー210を導出するためにプロセッサ250により受け取られたプログラム206を実行できるセキュアなバーチャルマシン(VM)の一部分であるとみなされてもよい。従って、プログラム206は、バーチャルマシンがコンテンツを処理し、タイトルキー210を導出し、コンテンツをハンドリングし(例えば、コンテンツをオーディオ及びビデオストリーム、等に分割することにより)、そしてコンテンツを再暗号化するのを許す情報を含むことができる。
[0033]一実施形態では、バーチャルマシンにより処理されるコンテンツは、処理の前に暗号化されてもよい。この場合に、処理は、コンテンツを解読することを含んでもよい。更に、処理は、コンテンツを再暗号化することを含んでもよい。例えば、再暗号化は、コンテンツがプロセッサ250から出力される前に行われてもよい。
[0034]上述したように、プログラムは、アプリケーションから受け取られてもよい。この場合、プロセッサ250とアプリケーションとの間の通信チャンネルをセキュア化することができる。例えば、少なくとも1つの証明書を使用して、プロセッサ250とアプリケーションとの間の通信チャンネルをセキュア化することができる。
[0035]一実施形態では、セキュアなバーチャルマシンは、コンテンツをオーディオ及びビデオストリームへ分割するのに使用できる逆多重化部212を含むことができる。更に、プログラム206は、バーチャルマシンに関連した再暗号化ビデオモジュール220及び再暗号化オーディオモジュール214が、コンテンツを、出力(例えば、表示、等)の前に、再暗号化するのを許す情報を含むことができる。ビデオ及びオーディオストリームの再暗号化は、任意であることに注意されたい。
[0036]システム200を使用して、コンテンツと、コンテンツを解読する暗号キーを生成するのに使用されるプログラム206をプロセッサ250により受け取ることができ、このプログラム206は、コンテンツの解読に使用することができる。更に、プロセッサ250を使用してキーを解読することもできる。
[0037]一実施形態では、キーは、コンテンツに関連した少なくとも1つのコンテンツキーと、コンテンツ及びプログラム206が受け取られるようにするアプリケーションに関連した少なくとも1つのアプリケーションキーとを含むことができる。次いで、プロセッサ250は、コンテンツキー及びアプリケーションキーを処理して、タイトルキー210を生成することができる。この場合、タイトルキー210は、コンテンツを解読するのに使用できる。従って、ベンダー204に関連した中央処理ユニット(CPU)へのキーの露呈を防止することができる。
[0038]コンテンツが分割されると、ビデオコンテンツは、デコーディングのためにビデオデコードモジュール222へ送られ、フレームバッファ224にピクセルとして記憶され、次いで、ディスプレイ226へ出力される。オーディオコンテンツは、PCIEバスを経て解読モジュール216(例えば、ベンダー204に関連した)へ送られ、最終的に、出力のためにオーディオスタック218へ送られる。
[0039]このように、グラフィック処理ユニット(GPU)と、このGPUにおいてセキュアな埋設バーチャルマシンを実行できるセキュアなマイクロコード(即ち、ファームウェア)と、ソフトウェアプレーヤベンダーが媒体に対する処理(例えば、AACS処理、等)をセキュアにオフロードするのを集合的に許すプレーヤISVのCPUにおいて実行されるグラフィックドライバソフトウェアとを含むシステムを実施することができる。(例えば、AACSに使用されるもののような)キーハンドリング、コンテンツストリーム解読及び構文解析、並びにコンテンツストリーム変更プロセスの処理ステップをGPUにおけるセキュアな埋設プロセッサへ移動し、そしてこれらのステップを、複数のコンテンツ形式に適用するように抽象化することにより、装置キー及びシーケンスキー、媒体、並びにプレーヤISVに関連したタイトルキーに対する保護を与えることができる。更に、プレミアムビデオコンテンツを、圧縮、非デコード及び非暗号化形態で与えることができる。
[0040]加えて、プレーヤISVは、オーディオ/ビデオ(AV)コンテンツ(例えば、AACS保護のAVストリームデータ、等)の処理に関連したCPU利用及び電力消費の大半を構成し得る、ビデオ基本的ストリームの解読及び再暗号化タスクを軽減することができる。更に、システム200を使用して、複数のコンテンツ形式、暗号化、及びキー認可モデルを実施しサポートすることができる。
[0041]従って、CPUにおける及びバスを横切る非保護のコンテンツ及びキーの流れを回避することができる。例えば、セキュアなプロセスがGPUにおいて実行されるコンテクストは、ハードウェアによりセキュア化することができ、そしてプレーヤISVにより検証できるチッププライベート/パブリックキーを使用して、バーチャルマシンに使用されるメモリをセキュア化し、プログラムに署名することができる。
[0042]図3は、一実施形態によりインタープリターを使用して、受け取ったプログラム及びコンテンツを解釈する方法300を示す。オプションとして、この方法300は、図1〜図2の機能及びアーキテクチャーに関して実施することができる。例えば、一実施形態では、方法300は、図2のインタープリター208の細部に関して実施される。しかしながら、当然、方法300は、いかなる望ましい環境において実施されてもよい。この場合も、この説明の間に前記定義が適用される。
[0043]図示されたように、バイトコードイメージが受け取られる。オペレーション302を参照されたい。一実施形態では、バイトコードイメージは、プレーヤISVからGPUにより受け取ることができる。この場合、バイトコードイメージは、プレーヤISVにより送られたプログラムに関連したコードを含むことができる。
[0044]バイトコードイメージが受け取られると、バイトコードイメージの署名がチェックされる。オペレーション304を参照されたい。この場合、チェックは、信頼性のあるソースに関連した署名を検証することを含む。次いで、バイトコードイメージを解読することができる。オペレーション306を参照されたい。バイトコードイメージが解読されると、バイトコードを解釈することができる。オペレーション308を参照されたい。
[0045]図4は、一実施形態により、受け取ったプログラム及びコンテンツを解釈するためにプロセッサ402及びセキュアなバーチャルマシン404を含むシステム400を示す。オプションとして、システム400は、図1から3の機能及びアーキテクチャーに関して実施することができる。しかしながら、当然、システム400は、いかなる望ましい環境において実施されてもよい。更に、この説明の間に前記定義が適用される。
[0046]図示されたように、システム400は、1つ以上のセキュアな埋設プロセッサ406と、この埋設プロセッサ406によりホストされるセキュアなバーチャルマシン404とを含むGPU402を備えている。セキュアなバーチャルマシン404は、署名されたセキュアなマイクロコードのインタープリターを備え、これは、暗号プリミティブと、ビデオストリームハンドリング及びパッチングにおけるプリミティブとを遂行できるバイトコードインストラクションをサポートする。このインタープリターを使用して、バーチャルマシン404は、プレーヤISVにより与えられるプログラムを解釈するためのインタープリターとして働くことができる。
[0047]セキュアなバーチャルマシン404は、更に、ハードウェア暗号エンジン、例えば、AES又はSHA−1プリミティブ、等を含むことができる。加えて、セキュアなバーチャルマシン404は、機密メモリのセキュアなサンドボックスを含むこともでき、これは、エンジンに対してはアクセス不能であるが、バーチャルマシン404の外部から(例えば、CPU又はGPUレンダラー、等から)アクセスすることができる。
[0048]更に、バーチャルマシン404において実行するためのセキュアなバイトコードが設けられる。この場合、セキュアなバイトコードは、ISVによりGPU402へ与えられるプログラムに関連したバイトコードである。例えば、バイトコードは、認可されたコンテンツメカニズムのコアワークを遂行するために、認可されたプレーヤISVにより生成することができる。従って、バイトコードを使用して、バーチャルマシン404内でコンテンツ及びキーの処理を遂行することができ、コンテンツ及びキーは、GPU402により受け取られる。
[0049]又、セキュアなバーチャルマシン404は、チッププライベート及びパブリックキーと、承認された当局により署名された証明書とにアクセスすることができ、これは、署名されたISVコードをセキュアなバーチャルマシン404内で実行するのを許す。更に、これらのキーは、プレーヤISVが、ISVシークレットを安全に暗号化するのを許すと共に、それらシークレットを、信頼性のあるバーチャルマシン404内で使用された状態で一度しか見られないことを保証する。これらのキーは、更に、プレーヤISVが、有能なGPUを、コンテンツデコードの実行をなすための信頼性のあるエンドポイントとして確認するのを許す。
[0050]又、セキュアなバーチャルマシン404は、そのセキュアなバーチャルマシン404のキー部分を暗号化する能力を許し、実行の後にそれをメモリへページアウトして、異なるコンテンツストリームをサポートするセキュアなバーチャルマシン404の別のコンテンツに置き換えることができる。更に、セキュアなバーチャルマシン404のコンテンツを消去して、シークレットが後に残らないようにすることもできる。例えば、バーチャルマシン404により処理されている情報は、処理後に削除されることもある。
[0051]セキュアなバーチャルマシン404は、更に、CPUにおいて実行されるグラフィックドライバ(例えば、ソフトウェア)であって、ソフトウェアコンテンツプレーヤベンダーが、バーチャルマシン404へのセキュアなバイトコードのロード動作をネゴシエーションするのを集合的に許すようなグラフィックドライバを含むことができる。更に、セキュアなバーチャルマシン404は、ISV認可保持者のポーティングタイトル解読をサポートし、プログラム(例えば、アッセンブリ又はC、等で書かれた)をコンパイルし、そしてインタープリターによりサポートされるバイトコードを放出するのに必要なコンパイラー及びツールを含むことができる。
[0052]図5は、一実施形態によりセキュアなバーチャルマシンを使用してタイトルキーを抽出する方法500を示す。オプションとして、この方法500は、図1から図4の機能及びアーキテクチャーに関して実施することができる。しかしながら、当然、方法500は、いかなる望ましい環境において実施されてもよい。この場合も、この説明の間に前記定義が適用される。
[0053]オペレーションにおいて、プレーヤISVコード又はプログラムは、機密キーグループを解読するプロセスを記述することができる。このコードは、コンテンツストリームを解読するタイトルキーを形成するために他のコンテンツキー及びポリシーと共に使用される。この場合、ISVプログラムは、解読を許すために識別されたランタイム変数(例えば、即時間接的変数、ローカル変数、ストリーム及びバッファポインタ、等)を使用するインタープリターのためのコマンドを含むことができる。このプログラムは、GPU及びISVが信頼できるものとして確認するキーを使用して署名される。
[0054]タイトルキーが抽出されると、セキュアなバーチャルマシンを使用してコンテンツストリームを解読することができる。図6は、一実施形態によりセキュアなバーチャルマシンを使用してコンテンツストリームを解読する方法600を示す。オプションとして、この方法600は、図1から図5の機能及びアーキテクチャーに関して実施することができる。しかしながら、当然、方法600は、いかなる望ましい環境において実施されてもよい。この説明の間には、前記定義が適用される。
[0055]ISVコードは、ディスク、ネットワーク又は他の媒体からコピーされるストリームのコンテンツを解読するためにタイトルキー抽出中に記憶されるタイトルキーを使用してプロセスを記述することができる。その出力は、その後のプロセスのためにバーチャルマシン内に留めることができる。
[0056]コンテンツストリームが解読されると、セキュアなバーチャルマシンを使用してコンテンツストリームをパッチ及び再暗号化することができる。図7は、一実施形態によりセキュアなバーチャルマシンを使用してコンテンツストリームをパッチし再暗号化する方法700を示す。オプションとして、この方法700は、図1から図6の機能及びアーキテクチャーに関して実施することができる。しかしながら、当然、方法700は、いかなる望ましい環境において実施されてもよい。この場合も、この説明の間に前記定義が適用される。
[0057]オペレーションにおいて、ISVプログラムは、変換記述子に基づきコンテンツストリームをパッチするのに必要なコマンドをカプセル化することができる。コンテンツストリームは、オーディオを付加的な処理のためにプレーヤISVへ又はオフチップオーディオデコーダへ返送するために分割され再暗号化される。
[0058]オプションとして、コンテンツストリームは、その後のオンチップビデオデコーダにおいて消費されるべくビデオポートへと分割されてもよい。この場合に、コンテンツは、非暗号化形態のままとされ、コンテンツは、ビデオデコーダ以外のものにはアクセス不能である特別扱いのメモリに機密裡にセーブすることができる。
[0059]一実施形態では、プレーヤISVにより与えられるプログラムは、インタープリターが1つの個別のオペレーションとして完了するための個別のコマンドを含むことができる。例えば、種々の実施形態において、これらのコマンドは、表1に示す共通オペレーションのための暗号プリミティブを含むことができる。
[0060]
Figure 0005532291

[0061]一実施形態では、これらのプリミティブは、GPUの埋設コントローラにおいて実行されるように最適化された予めコード化されたルーチンを含むことができる。別の実施形態では、これらのプリミティブは、性能に敏感なオペレーションを直接的に加速するハードウェアエンジンにより実行を抽象化するインターフェイスラッパーでよい。
[0062]別のオプションでは、これらプリミティブは、セキュアなバーチャルマシンにおけるハウスキーピングオペレーションを含むことができる。表2は、一実施形態による幾つかのハウスキーピングオペレーションを示す。
[0063]
Figure 0005532291

[0064]一実施形態では、バーチャルマシンによりディフィー・ヘルマンのキー交換を行うことができる。解釈されたコードで書かれたステップごとのディフィー・ヘルマンのキー交換が、一実施形態により、表3に示されている。
[0065]
Figure 0005532291

[0066]別の実施形態では、プログラムは、中間アキュムレータを使用してバイトごとに繰り返しオペレーションを遂行して全体的なプロセスサブルーチンを形成するための1組の複雑なオペレーションを表現することができる。このようなループが生じる場合には、サブルーチンは、実行時に再解釈を要求しないプロセッサマイクロコードで作られた固有のオペレーションを使用して、より効率的な形態へと最適に再コンパイルすることができる。次いで、宣言がなされると、サブルーチンは、マクロレベルにおいて個別のステップとして遂行することができる。
[0067]バーチャルマシンのサブルーチンとして書かれたRC4暗号化アルゴリズムの一例が、一実施形態により、表4に示されている。
[0068]
Figure 0005532291

[0069]セキュアなバーチャルマシンをバーチャルプロセスと共に使用することで、ビデオデコーダハードウェアが既に(例えば、GPU、等に)存在する場合にキーの処理及びストリームの構文解析をハンドリングするためのセキュアな実行環境を提供し、これにより、非保護のコンテンツ及びキーがCPU内に及びバスを横切って流れるのを回避することに注意されたい。更に、セキュアなバーチャルマシンを使用することで、バーチャルマシンへのコンテンツを解読するキーを生成するプログラムを送出することによりGPUが認可された装置となることを必要とせずに、第3当事者の認可保持者がGPUの認可されたコンテンツに対するセキュアな準拠デコーダを生成するという能力を提供する。
[0070]図8は、一実施形態によりコンテンツを解読するキーを生成するためのプログラムを生成する方法800を示す。オプションとして、この方法800は、図1から図7の機能及びアーキテクチャーに関して実施することができる。しかしながら、当然、方法800は、いかなる望ましい環境において実施されてもよい。この説明の間に前記定義が適用される。
[0071]図示されたように、解釈言語仕様が与えられる。オペレーション802を参照されたい。この場合、プレーヤISVには、プロセッサの製造者により解釈言語仕様を与えることができる。例えば、この言語仕様は、インタープリターを含むセキュアなバーチャルマシンのための仕様を含む。一実施形態では、この仕様は、コンテンツを解読するキーを生成するプログラムの生成に使用されるべきプログラミング言語を含むことができる。
[0072]次いで、プログラムが書き込まれる。オペレーション804を参照されたい。例えば、プログラムは、解釈言語仕様に基づき、プレーヤISVによりソースコードで書き込まれてもよい。次いで、プログラムは、処理のためにコンパイラー及び/又はインタープリターのようなツールを通して実行される。オペレーション806を参照されたい。
[0073]処理の結果として、バイトコードが生成される。オペレーション808を参照されたい。このバイトコードは、ランタイム中にバーチャルマシンにより処理するために使用されるべきコードを含んでもよい。
[0074]次いで、バイトコードは、暗号署名プロセスに入力される。オペレーション810を参照されたい。一実施形態では、暗号署名プロセスは、プロセッサの製造者によって与えられるプロセスでよい。暗号署名プロセスを実施した後、埋設可能な暗号イメージが与えられる。この暗号イメージは、次いで、ISVプレーヤのプログラムへ埋設されて、プレーヤがランタイムオペレーション中に処理のためにGPUのバーチャルマシンへプログラムを与えることができるようにする。
[0075]図9は、一実施形態によりコンテンツを解読するキーを生成するためのプログラムをセキュア化するシステム900を示す。オプションとして、このシステム900は、図1から図7の機能及びアーキテクチャーに関して実施することができる。しかしながら、当然、システム900は、いかなる望ましい環境において実施されてもよい。更に、この説明の間に前記定義が適用される。
[0076]オペレーションにおいて、このシステム900は、図10の方法100として示された、コンテンツを暗号化するキーを生成するためのプログラムをセキュア化する方法を実施するのに使用できる。図10に示すように、アプリケーションは、署名のための一対のキーP及びpを生成する。更に、GPUは、署名のための一対のキーP及びp及び暗号化のためのキーPを生成する。
[0077]次いで、GPUは、GPUの署名シークレットキーを使用してアプリケーションの署名パブリックキーに署名して、アプリケーションへ送られる証明書(例えば、CERT、等)を生じさせることができる。次いで、アプリケーションは、バーチャルマシンプログラムを暗号化することができる。そのプログラムに署名し、コンパイルすることができる。
[0078]ランタイムに、アプリケーションは、エフェメラルキーシークレット(例えば、KSK、等)を確立することができる。GPUも、エフェメラルキーシークレット(例えば、K’SK、等)を導出することができる。次いで、暗号化されたプログラム及びキーがアプリケーションからGPUへ通過される。次いで、インタープリターは、アプリケーションの証明書を解読して検証し、そしてバーチャルマシンプログラムが実行される。
[0079]この技術を使用して、GPUプロバイダーにより署名するために一対のプライベートキー及びパブリックキーを生成することができる。プライベートキーは、内部署名サーバーに入れられる。パブリックキーは、API仕様において発行されて、セキュアなインタープリターマイクロコードに埋設される。次いで、ハードウェアシークレット、又はその導出値をチップシークレットキーとして使用し、そしてそれに対応するパブリックキーを暗号化のために導出することができる。
[0080]アプリケーションプロバイダーは、署名のためのプライベートキー及びパブリックキーのそれ自身の対をプライベートに生成することができる。アプリケーションプロバイダーは、e−メール又はftpを経てGPUプロバイダーへパブリックキーを送出することができる。GPUプロバイダーは、それらの署名シークレットキーを使用して、アプリケーションプロバイダーの署名パブリックキーに署名することができる。それにより得られる署名は、GPUプロバイダーによって生成されるアプリケーションプロバイダーの署名パブリックキーのための証明書である。この証明書は、アプリケーションプロバイダーへ返送することができる。
[0081]アプリケーションプロバイダーは、幾つかのインタープリタープログラム及び高機密性の認可シークレット(例えば、プレーヤ/装置キーのような)をプライベートに書き込み、そしてそれをバイナリーへとコンパイルすることができる。アプリケーションプロバイダーは、GPUプロバイダーのチップパブリックキーのもとでバイナリープログラムをプライベートに暗号化することができる。アプリケーションプロバイダーは、アプリケーションプロバイダーの署名シークレットキーのもとで、暗号化されたバイナリープログラムにプライベートに署名することができる。
[0082]暗号化されたプログラムは、署名及びアプリケーションプロバイダーの証明書と共に、アプリケーションプロバイダーのプレーヤ実行部にスタティックに埋設することができる。ランタイムにおいて、アプリケーションプロバイダーは、GPU内のオンチップランダムナンバージェネレータ(RNG)を使用してエフェメラルセッションキーシークレットを確立し、そしてこれを使用して、既にスタティックに暗号化されたプログラムをランタイム暗号化ペイロードへと付加的に再暗号化することができる。
[0083]ランタイムに、GPUのインタープリターは、二重暗号化のペイロード、署名、及び証明書をロードすることができる。インタープリターは、GPUプロバイダーの署名パブリックキーを使用して、アプリケーションプロバイダーの証明書を検証することができる。又、インタープリターは、アプリケーションプロバイダーの署名パブリックキーを使用して、暗号化されたプログラムを検証することもできる。インタープリターは、ネゴシエーション中にGPU内部に生成されたエフェメラルセッションキーシークレットを使用してランタイム暗号化ペイロードを解読し、それにより、スタティックに暗号化されたプログラム(まだ暗号化された形態にある)を抽出することができる。
[0084]次いで、インタープリターは、ハードウェアシークレットからGPUプロバイダーのチップシークレットキーを導出し、そして解釈されたプログラムのシークレット及びコンテンツ/プレーヤのシークレットを含むスタティックに暗号化されたプログラムを解読することができる。次いで、インタープリターは、プログラムを安全に実行し、GPU内部のセキュアなバーチャルマシン内の高気密性コンテンツシークレットをデリファレンスすることができる。
[0085]エフェメラルセッションキーを生成するのに使用されるシークレットは、ランダムナンバージェネレータから導出されて、GPU内にセキュアに保持されるので、GPUプロバイダーのチップシークレット及び他の署名キーの知識をもつ個人でも、ペイロードを解読することはあり得ない。ISVがGPUの署名を確認し、インタープリターがISVのコードを実行するとすれば、ISVがインタープリター及びセキュアなバーチャルマシンの環境を信頼すると仮定することができ、ISVは、それが機密情報を漏洩しないと信じるようになる。加えて、バーチャルマシンで実行されるべきコードがISVにより書き込まれ、実行の前に署名/検証されるとすれば、ISVは、コンテンツ又は機密シークレットがGPUプロバイダーにも漏れないことを保証する環境を生成することができる。
[0086]ペイロード暗号化プロセスに使用されるシークレットを露呈するリスクを更に軽減するために、第2当事者又は第3当事者、例えば、ISV認可保持者、製品認可保持者又はシステムベンダーにより付加的な認可保持者シークレットをGPUへ直接融合することができる。シークレットがGPUプロバイダーでも未知であることを更に保証するために、プログラミングプロセスは、GPUがGPUプロバイダーの製造及び在庫プロセスを退出した後にいつでもシークレットをセットできるようにする。GPUベンダーは、例えば、システムベンダーのファシリティにおいてアッセンブル中にGPUがボードに載せられた後に、GPUへのシークレットの独立したプログラミングを許すためのアクセスを与える。例えば、一実施形態では、シークレットが一回限りのチップヒューズに収容され、これらヒューズは、認可保持者シークレットの値ビットに一致するビットパターンでGPUパッケージの特定ピンに高い電圧を印加することにより切れる。又、一実施形態では、GPUから読み取ることができず、GPUの暗号及び他の内部暗号プロセスによりキーとして又は他のキーとの組合せでしか使用できない書き込み専用レジスタに前記ヒューズを適用することによりシークレットが機密裡に保持される。又、一実施形態では、設計上、平易テキスト入力と暗号テキスト出力が外部から見える場合でもキー値の回復を許さないAES暗号のキー値として認可保持者シークレットが使用される。
[0087]加えて、ヒューズシークレットのプログラミングは、シークレットを危うくするために既知のものへ再プログラムするその後の変更や攻撃から保護するために、一回限りの設定に制限することができる。一実施形態では、まさにGPUにより使用されるべくシークレットをプログラムできるヒューズは、認可保持者シークレットをプログラミングし終えると、それ自身で切れ、又、いったん切れると、前記ヒューズは、認可保持者シークレットヒューズのその後のプログラミングを許さない。
[0088]認可保持者シークレットは、他の(読み取り不能の)GPUシークレットと間接的に組み合わせて、ペイロードの生成及び抽出に使用される暗号及び解読キーを形成することができる。認可保持者シークレットを独立してプログラムすることができ、GPUプロバイダーがそのようなシークレットの知識をもたず、且つシークレットがランタイムにセキュアなバーチャルマシン内のGPUハードウェアにより間接的に結合されるだけであるとすれば、第2当事者の機密プログラム、アルゴリズム及びキーは、機密チップシークレットの詳細な知識をもつ個人に対して更に強化される。
[0089]従って、一実施形態によれば、少なくとも1つのプロセッサと、第2当事者のプログラムを処理するためにプロセッサにおいて実施される第1当事者の少なくとも1つのセキュアなバーチャルマシンと、第3当事者のコンテンツを出力のために処理する少なくとも1つのプログラムとを備えた装置が提供される。この場合、第1当事者は、セキュアなバーチャルマシン及び又はプロセッサを備えたエンティティ又は個人を含み、第2当事者は、ソフトウェアを認可するエンティティ又は個人(例えば、独立したソフトウェアベンダー認可保持者、等)を含み、そして第3当事者は、コンテンツを認可するエンティティ又は個人を含むことができる。もちろん、種々の実施形態では、第1、第2及び第3の当事者は、同じ当事者でも異なる当事者でもよく、いずれの個人又はエンティティでもよい。
[0090]この装置を使用すると、残留機密プログラム情報、処理されている情報、及び少なくとも1つのバーチャルマシンの各々により生成されるエフェメラル変数は、処理後に削除することができる。一実施形態では、複数のセキュアなバーチャルマシンを個々のコンテクスト内でプロセッサにおいて実施することができる。この場合、複数のセキュアなバーチャルマシン間での情報の共有は、制限されることがある。
[0091]例えば、エフェメラル情報の形式及び複数のセキュアなバーチャルマシンにより処理されている情報の記憶が制限されることがある。又、情報は、保護されたコンテンツの解読に使用されるキー及び中間暗号値を含んでもよい。
[0092]別の実施形態では、クライアント供給プログラム(例えば、第2当事者のプログラム、等)を実行して、保護されたコンテンツを処理するために、少なくとも1つのバーチャルマシンを設けることができる。この場合に、クライアント供給プログラムは、第3当事者のコンテンツを処理する際にそのクライアント供給プログラムによって使用されるアルゴリズム詳細、シークレット、及びキーの機密性を確保するために、第2当事者により暗号化することができる。クライアント供給プログラムは、更に、そのクライアント供給プログラムの完全性を検証できるように第2当事者により署名できると共に、そのクライアント供給プログラムのソースの真正性を検証できる証明書を含むことができる。
[0093]一実施形態では、第3当事者のコンテンツは、少なくとも1つのバーチャルマシンにより処理される前に第3当事者により別々に暗号化されてもよい。この場合に、クライアント供給プログラム、機密のアルゴリズム、及びシークレットは、少なくとも1つのバーチャルマシン内での実行を許す前に、含まれた署名及び証明書を検証することにより解読され、認証されてもよい。
[0094]別のオプションとして、クライアント供給プログラムを処理することは、第3当事者のコンテンツを解読することを含んでもよい。この処理は、更に、第3当事者のコンテンツ又は第3当事者のコンテンツ内のストリームの1つ以上の部分のうちの少なくとも1つを再暗号化することを含んでもよい。あるケースでは、再暗号化は、第3当事者のコンテンツが少なくとも1つのバーチャルマシンから出る前に行われる。別のケースでは、再暗号化は、第3当事者のコンテンツがプロセッサから出力された後に行われてもよい。
[0095]一実施形態では、クライアント供給プログラムは、アプリケーションから受け取られ、そしてクライアント供給プログラムは、プロセッサとアプリケーションとの間にセキュアな通信チャンネルを確立することができる。この場合、プロセッサとアプリケーションとの間の通信チャンネルは、プロセッサにおいて導出される暗号値及び少なくとも1つの証明書を使用してセキュア化することができる。
[0096]別の実施形態では、少なくとも1つのバーチャルマシンは、アプリケーションにより与えられる保護コンテンツ処理プログラムのインタープリターとして働くことができる。更に、プロセッサは、少なくとも1つのセキュリティプロセッサを含み、又、グラフィックプロセッサ、ビデオプロセッサ、又はオーディオプロセッサの少なくとも1つに、処理されたコンテンツを与えるように構成できる。
[0097]更に別の実施形態では、プロセッサは、パッケージから解かれたコンテンツキー及びプログラム実行中に導出される中間暗号値のためのセキュアな機密記憶部を含むことができる。いずれにせよ、プロセッサの少なくとも1つのバーチャルマシン内で第2当事者のプログラムにより第3当事者のコンテンツを処理するのに、プロセッサが、認可されたシークレットを含むことも、以前に実施された認可アルゴリズムを有することも要求されない。少なくとも1つのバーチャルマシンの設計、及び少なくとも1つのバーチャルマシン内の第2当事者のプログラムによる第3当事者のコンテンツの処理は、認可応諾及び頑健性ルールに関して第2当事者により再検討され、これにより、第3当事者のコンテンツに対する適合性を決定できることに注意されたい。
[0098]加えて、この装置を使用することにより、第3当事者のコンテンツと、この第3当事者のコンテンツを解読する機密キーを生成するのに使用される第2当事者のプログラムが(例えば、第1当事者、等により製造された)プロセッサに受け取られ、そして第3当事者のコンテンツを解読するためにそのプロセッサを使用して第2当事者のプログラムを実行することができる。この場合、第3当事者のコンテンツを解読するには、第2当事者に与えられる機密アルゴリズム及びキー情報を使用することが要求される。オプションとして、第3当事者のコンテンツを解読するのに使用される機密キー及びアルゴリズムは、第2当事者により再暗号化されてもよい。又、機密キーは、プロセッサを使用して解読されてもよい。
[0099]一実施形態では、第2当事者のプログラムから生成される機密ランタイム値、中間暗号値、及び機密キーは、プロセッサのオペレーションで間接的にのみデリファレンスされるように構成され且つ読み取り不能に構成された機密の書き込み専用プロセッサレジスタ及び/又はインデックス付きバッファに記憶することができる。この場合に、書き込み専用プロセッサレジスタ及びインデックス付きバッファは、第2当事者のプログラムが終了した後に消去することができ、これにより、その後のバーチャルマシンセッションが残留シークレットへアクセスしないように保証する。
[00100]オプションとして、機密キーは、第3当事者のコンテンツに関連した少なくとも1つのコンテンツキーと、第3当事者のコンテンツ及び第2当事者のプログラムをプロセッサで受け取るときに経由する第2当事者のアプリケーションに関連した少なくとも1つのアプリケーションキーとを含むことができる。一実施形態では、第2当事者のアプリケーションは、コンテンツプレーヤを含むことができる。
[00101]更に、プロセッサは、第3当事者の少なくとも1つのコンテンツキー及び第2当事者の少なくとも1つのアプリケーションキーを処理して、少なくとも1つのタイトルキーを生成することができる。この場合に、タイトルキーは、第3当事者のコンテンツを解読するのに使用することができる。
[00102]一実施形態では、第2当事者のプログラムは、第3当事者のコンテンツ及び第2当事者のプログラムを受け取るときに経由する第2当事者のアプリケーションによって使用することができる。この場合、第2当事者のプログラムは、第3当事者のコンテンツを解読するのに適用できると共に、第3当事者のコンテンツに基づいて第2当事者のアプリケーションにより検索することができる。
[00103]ある場合には、第2当事者のプログラム及びコンテンツキーは、第2当事者のアプリケーションにより検索される前に暗号化されることがある。これらの場合に、第2当事者のプログラム及びコンテンツキーは、第2当事者のアプリケーションにより検索される前に、パブリックキーを使用して暗号化することができる。オプションとして、第2当事者のプログラム及びコンテンツキーを暗号化する1つ以上のキーがプロセッサの製造者(例えば、第1当事者、等)によって準備されてもよい。別のオプションとして、第2当事者のプログラムは、第2当事者のアプリケーションに関連した配布バイナリー内のパッケージに合成される前に暗号化されてもよい。
[00104]一実施形態では、第2当事者のアプリケーションは、更に、プロセッサへ通される前に、第2当事者のプログラム及び機密キーを含むパッケージを再暗号化することができる。一実施形態では、機密アルゴリズム及び機密キーを中央処理ユニットに露呈することは、プロセッサ内部のバーチャルマシン内で実行されるまで解読されない暗号プログラムパッケージ内に機密アルゴリズム及び機密キーを含ませることにより防止することができる。この場合、機密アルゴリズム及び機密キーシークレットの潜在的な露呈は、第2当事者のプログラムが解読されるプロセッサにおいて、第2当事者のアプリケーションとの間でのパブリックキー交換で生成されるエフェメラル値を使用してパッケージを暗号化することにより防止することができる。
[00105]更に、機密アルゴリズム及び機密キーの露呈は、第2当事者のプログラムの暗号化によりプロセッサベンダーに露呈されずに使用され且つプロセッサに入れられる第2当事者認可シークレット又は第3当事者認可保持者シークレットを使用することで防止することができる。この場合、第2当事者認可シークレット及び第3当事者認可保持者シークレットのプログラミングは、一回限りのプログラミングメカニズム(例えば、コンピュータコード、等)の使用によりプロセッサへいったんプログラムされると、変更から保護することができる。
[00106]更に別の実施形態では、この装置を使用することにより、第3当事者のコンテンツを暗号化し処理するためのパッケージを第2当事者により生成することができ、このパッケージは、プロセッサを使用して実行できるプログラムを含む。加えて、そのプログラムは、それに関連したシークレットの機密性を保証するために暗号化を使用してセキュア化することができる。更に、そのプログラムは、プログラムのソースの真正性を保証するために署名することができる。更に、プログラムのソースの証明書、及びプログラムをセキュア化したエンティティを検証することもできる。
[00107]プロセッサは、グラフィックプロセッサ、ビデオプロセッサ、及び/又はオーディオプロセッサ、等を含むことができる。更に、プロセッサは、第2当事者のアプリケーションで準備されたパッケージ、プログラム、機密アルゴリズム、コンテンツキー及び専有シークレットをセキュアに解読できるセキュアなプロセッサコンテクストを含むことができる。
[00108]ある場合には、第3当事者コンテクストは、傍受及び複写から保護されねばならないように第3当事者にとって価値のあるものである。種々の実施形態では、パッケージは、第3当事者のコンテンツを解読し処理するのに必要なプログラム、機密アルゴリズム、コンテンツキー、及び専有シークレットを含むことができる。更に、オプションとして、パッケージは、暗号化によりセキュア化することができる。
[00109]一実施形態では、プログラム、機密アルゴリズム、コンテンツキー、及び専有シークレットは、プロセッサが第3当事者のコンテンツを受け取るところの第2当事者のコンテンツ認可保持者プレーヤアプリケーションにより準備することができる。この場合に、プログラム、機密アルゴリズム、コンテンツキー、及び専有シークレットを含むパッケージを、第2当事者のアプリケーションプロバイダーによりセキュア化し、アプリケーションに埋め込むことができる。
[00110]一実施形態では、アプリケーションは、ユーザ選択コンテンツを処理して出力するために、少なくとも1つのプレーヤ及びパッケージ、又は少なくとも1つの他のパッケージを含むことができる。更に、第3当事者のコンテンツを解読し処理するのに使用されるパッケージは、第3当事者のコンテンツの形式及びフォーマットに基づいて、アプリケーション内から検索することができる。加えて、パッケージ、プログラム、機密アルゴリズム、コンテンツキー、及び専有シークレットは、アプリケーションにより検索される前に、暗号化することができる。
[00111]この場合に、パッケージ、プログラム、機密アルゴリズム、コンテンツキー、及び専有シークレットは、アプリケーションに埋め込まれる前に、1つ以上のパブリック及びプライベートキーを使用して、暗号化し署名することができる。第2当事者のアプリケーションベンダーとプロセッサのベンダーとの間でパブリックキー及び証明書を交換することができる。オプションとして、プログラムは、プロセッサに埋め込まれた認可保持者シークレットを使用して暗号化することができる。
[00112]一実施形態では、パッケージは、ランタイムに、アプリケーションにより抽出された後に、暗号化することができる。この場合、プログラムは、擬似ランダムナンバージェネレータと、プロセッサのみに記憶されたシークレットとを使用して生成されるエフェメラルキーを使用して、暗号化することができる。加えて、プログラムは、擬似ランダムナンバージェネレータと、アプリケーションのみに記憶された情報とを使用して生成されるエフェメラルキーを使用して、暗号化することもできる。
[00113]別のオプションとして、プログラムは、アプリケーションとプロセッサベンダーとの間で交換される少なくとも1つの証明書の少なくとも1つのキーを使用して暗号化することもできる。一実施形態では、プログラムは、アプリケーションとプロセッサとの間で交換される少なくとも1つの証明書の少なくとも1つのキーを使用して署名することができる。この場合、プロセッサベンダーにとって未知のプロセッサに認可保持者シークレットを埋め込むことができ、認可保持者シークレットは、プロセッサベンダーによって推定し及び/又はプロセッサから読み戻すことができない。ある場合には、認可保持者シークレットは、一度しか書き込むことができず、又、攻撃者がシークレットを導出したり又はプロセッサに記憶されたシークレットを変更することでそれを危うくしたりできないよう保証するために、プログラミングの後に変更やその他修正ができないようにされる。
[00114]図11は、種々の先行する実施形態の種々のアーキテクチャー及び/又は機能を実施できる例示的システム1100を示す。図示されたように、通信バス1102に接続された少なくとも1つのホストプロセッサ1101を含むシステム1100が提供される。このシステム1100は、メインメモリ1104も備えている。ランダムアクセスメモリ(RAM)の形態をとるメインメモリ1104には、制御ロジック(ソフトウェア)及びデータが記憶される。
[00115]また、システム1100は、グラフィックプロセッサ1106と、ディスプレイ1108、即ちコンピュータモニタも備えている。一実施形態では、グラフィックプロセッサ1106は、複数のシェーダーモジュール、ラスタ化モジュール、等を含むことができる。以上のモジュールの各々は、単一の半導体プラットホームに位置させて、グラフィック処理ユニット(GPU)を形成することもできる。
[00116]この説明では、単一の半導体プラットホームは、単独の一体的半導体ベースの集積回路又はチップと称される。又、単一の半導体プラットホームという語は、オンチップオペレーションを模擬すると共に、従来の中央処理ユニット(CPU)及びバス実施を利用するものに勝る実質的な改善をなす増加接続性のマルチチップモジュールとも称されることに注意されたい。もちろん、種々のモジュールは、ユーザの希望で、半導体プラットホームに別々に位置させてもよいし、又は半導体プラットホームの種々の組合せに位置させてもよい。
[00117]また、システム1100は、二次記憶装置1110も備えることができる。この二次記憶装置1110は、例えば、ハードディスクドライブ及び/又は取り外し可能な記憶ドライブを含み、これは、フロッピーディスクドライブ、磁気テープドライブ、コンパクトディスクドライブ、等を表す。取り外し可能な記憶ドライブは、良く知られた仕方で取り外し可能な記憶ユニットからの読み取り及びそこへの書き込みを行う。
[00118]コンピュータプログラム又はコンピュータ制御ロジックアルゴリズムは、メインメモリ1104及び/又は二次記憶装置1110に記憶することができる。このようなコンピュータプログラムは、実行時に、システム1100が種々の機能を遂行できるようにする。メモリ1104、記憶装置1110、及び/又は他の記憶装置は、コンピュータ読み取り可能な媒体の考えられる例である。
[00119]一実施形態では、種々の先行する図面のアーキテクチャー及び/又は機能は、ホストプロセッサ1101、グラフィックプロセッサ1106、これらホストプロセッサ1101及びグラフィックプロセッサ1106の両方の能力の少なくとも一部分を遂行できる集積回路(図示せず)、チップセット(即ち、関連機能、等を遂行するユニットとして作用し且つ販売するように設計された集積回路のグループ)、及び/又はそのことに対する他の集積回路に関して実施することができる。
[00120]更に、種々の先行する図面のアーキテクチャー及び/又は機能は、汎用コンピュータシステム、回路ボードシステム、娯楽目的専用のゲームコンソールシステム、アプリケーション指向のシステム、及び/又は他の望ましいシステムに関して実施することができる。例えば、システム1100は、デスクトップコンピュータ、ラップトップコンピュータ、及び/又は他の形式のロジックの形態をとることができる。更に、システム1100は、これに限定されないが、パーソナルデジタルアシスタント(PDA)装置、移動電話装置、テレビジョン、等を含む種々の他の装置の形態をとることができる。
[00121]更に、図示されていないが、システム1100は、通信目的で、ネットワーク(例えば、テレコミュニケーションネットワーク、ローカルエリアネットワーク(LAN)、ワイヤレスネットワーク、インターネットのようなワイドエリアネットワーク(WAN)、ピア・ツー・ピアネットワーク、ケーブルネットワーク、等)に結合することができる。
[00122]種々の実施形態を以上に述べたが、それらは単なる例示に過ぎず、それに限定されるものではないことを理解されたい。従って、好ましい実施形態の広がり及び範囲は、上述した実施形態のいずれに限定されるものでもなく、特許請求の範囲及びその等効物のみによって定義されるものとする。
150…セキュアなバーチャルマシン、152…プロセッサ、200…システム、202…媒体、204…ベンダー、206…プログラム、208…インタープリター、210…タイトルキー、212…逆多重化部、214…再暗号化オーディオモジュール、216…解読モジュール、218…オーディオスタック、220…再暗号化ビデオモジュール、222…ビデオデコードモジュール、224…フレームバッファ、228…メモリ、250…プロセッサ、400…システム、402…プロセッサ、404…セキュアなバーチャルマシン、406…セキュアな埋設プロセッサ、1101…中央プロセッサ、1102…バス、1104…メインメモリ、1106…グラフィックプロセッサ、1108…ディスプレイ、1110…二次記憶装置。

Claims (21)

  1. グラフィックプロセッサ、ビデオプロセッサ及びオーディオプロセッサの少なくとも1つのプロセッサと、
    第2エンティティのプログラムを処理するために前記プロセッサ上で具現化される第1エンティティの少なくとも1つのセキュアなバーチャルマシンと、
    第3エンティティのコンテンツを出力用に処理するためにコンピュータ読み取り可能な媒体上で実施される少なくとも1つのプログラムと、
    を備え、
    第1エンティティは、セキュアなバーチャルマシンとしてのエンティティである場合を含み、
    第2エンティティは、ソフトウェアを認可するエンティティである場合を含み、
    第3エンティティは、コンテンツを認可するエンティティである場合を含み、
    前記少なくとも1つのセキュアなバーチャルマシンは、当該少なくとも1つのセキュアなバーチャルマシン内で第2エンティティのプログラムにより第3エンティティのコンテンツを処理
    前記少なくとも1つのセキュアなバーチャルマシンは、アプリケーションによって供給される保護コンテンツ処理プログラムのインタープリターとして働く、
    装置。
  2. 残留する機密プログラム情報、処理されている情報、及び前記少なくとも1つのバーチャルマシンの各々により生成されるエフェメラル変数は、処理後に削除される、請求項1に記載の装置。
  3. 個々のコンテクスト内において前記プロセッサ上で複数のセキュアなバーチャルマシンが具現化される、請求項1に記載の装置。
  4. 前記複数のセキュアなバーチャルマシン間での情報の共有が制限される、請求項3に記載の装置。
  5. エフェメラル情報の形式、及び前記複数のセキュアなバーチャルマシンにより処理されている情報の記憶が制限される、請求項4に記載の装置。
  6. 前記情報は、保護されたコンテンツの解読に使用されるキー及び中間暗号値を含む、請求項4に記載の装置。
  7. クライアント供給プログラムを実行して前記保護されたコンテンツを処理するために前記少なくとも1つのバーチャルマシンが設けられる、請求項1に記載の装置。
  8. 前記クライアント供給プログラムは、第3エンティティのコンテンツを処理する際に前記クライアント供給プログラムによって使用されるアルゴリズム詳細、シークレット及びキーの機密性を保証するために第2エンティティにより暗号化される、請求項7に記載の装置。
  9. 前記クライアント供給プログラムは、更に、そのクライアント供給プログラムの完全性を検証できるように第2エンティティにより署名されると共に、そのクライアント供給プログラムのソースの真正性を検証できるようにする証明書を含む、請求項8に記載の装置。
  10. 第3エンティティのコンテンツは、前記少なくとも1つのバーチャルマシンにより処理される前に第3エンティティにより別々に暗号化される、請求項7に記載の装置。
  11. 前記クライアント供給プログラム、機密アルゴリズム及びシークレットは、前記少なくとも1つのバーチャルマシン内での実行を許す前に、含まれた署名及び証明書を検証することで、解読され認証される、請求項10に記載の装置。
  12. 前記クライアント供給プログラムの処理は、第3エンティティのコンテンツを解読することを含む、請求項10に記載の装置。
  13. 前記処理は、更に、第3エンティティのコンテンツ又は第3エンティティのコンテンツ内のストリームの1つ以上の部分のうちの少なくとも1つを再暗号化することを含む、請求項12に記載の装置。
  14. 前記再暗号化は、第3エンティティのコンテンツが前記少なくとも1つのバーチャルマシンから退出する前に行われる、請求項13に記載の装置。
  15. 前記再暗号化は、第3エンティティのコンテンツが前記プロセッサから出力された後に行われる、請求項13に記載の装置。
  16. 前記クライアント供給プログラムは、アプリケーションから受け取られ、前記クライアント供給プログラムは、前記プロセッサとアプリケーションとの間にセキュアな通信チャンネルを確立する、請求項7に記載の装置。
  17. 前記プロセッサとアプリケーションとの間の前記通信チャンネルは、前記プロセッサにおいて導出された暗号値及び少なくとも1つの証明書を使用してセキュア化される、請求項16に記載の装置。
  18. 前記プロセッサは、少なくとも1つのセキュリティプロセッサを含み、そして処理されたコンテンツを、グラフィックプロセッサ、ビデオプロセッサ又はオーディオプロセッサの少なくとも1つに与えるように構成される、請求項1に記載の装置。
  19. 前記プロセッサは、パッケージから解かれたコンテンツキー、及びプログラム実行中に導出される中間暗号値のためのセキュアな機密記憶部を含む、請求項1に記載の装置。
  20. 前記プロセッサの少なくとも1つのバーチャルマシン内で第2エンティティのプログラムにより第3エンティティのコンテンツを処理するのに、前記プロセッサが、認可されたシークレットを含むことも、以前に実施された認可アルゴリズムを有することも要求されない、請求項1に記載の装置。
  21. 前記少なくとも1つのバーチャルマシンの設計、及び前記少なくとも1つのバーチャルマシン内の第2エンティティのプログラムによる第3エンティティのコンテンツの処理は、認可応諾及び頑健性ルールに関して第2エンティティにより再検討され、これにより、第3エンティティのコンテンツに対する適合性を決定できる、請求項1に記載の装置。
JP2009242567A 2008-12-09 2009-10-21 プロセッサのバーチャルマシン内で機密コンテンツをセキュアに処理するための方法及び装置 Active JP5532291B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/331,295 US8868925B2 (en) 2008-12-09 2008-12-09 Method and apparatus for the secure processing of confidential content within a virtual machine of a processor
US12/331,295 2008-12-09

Publications (3)

Publication Number Publication Date
JP2010140470A JP2010140470A (ja) 2010-06-24
JP2010140470A5 JP2010140470A5 (ja) 2014-02-27
JP5532291B2 true JP5532291B2 (ja) 2014-06-25

Family

ID=42232519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009242567A Active JP5532291B2 (ja) 2008-12-09 2009-10-21 プロセッサのバーチャルマシン内で機密コンテンツをセキュアに処理するための方法及び装置

Country Status (5)

Country Link
US (1) US8868925B2 (ja)
JP (1) JP5532291B2 (ja)
KR (1) KR101091465B1 (ja)
CN (1) CN101751529B (ja)
TW (1) TWI423136B (ja)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266448B2 (en) * 2008-12-09 2012-09-11 Nvidia Corporation Apparatus, system, method, and computer program product for generating and securing a program capable of being executed utilizing a processor to decrypt content
US8135964B2 (en) * 2008-12-09 2012-03-13 Nvidia Corporation Apparatus, system, method, and computer program product for executing a program utilizing a processor to generate keys for decrypting content
US9137050B2 (en) * 2009-07-17 2015-09-15 Honeywell International Inc. Demand response system incorporating a graphical processing unit
US9818073B2 (en) 2009-07-17 2017-11-14 Honeywell International Inc. Demand response management system
US9124535B2 (en) 2009-07-17 2015-09-01 Honeywell International Inc. System for using attributes to deploy demand response resources
US8402280B1 (en) 2009-10-15 2013-03-19 Nvidia Corporation System, method, and computer program product for buffering in association with audio/video digital rights management (DRM) processing
TW201201037A (en) 2010-06-22 2012-01-01 Novatek Microelectronics Corp Electronic apparatus, display driving apparatus, and digital content displaying method
JP2012084071A (ja) 2010-10-14 2012-04-26 Toshiba Corp デジタルコンテンツの保護方法、復号方法、再生装置、記憶媒体、暗号装置
US9053339B2 (en) 2010-10-27 2015-06-09 Hytrust, Inc. System and method for secure storage of virtual machines
TWI453624B (zh) * 2010-11-09 2014-09-21 Inst Information Industry 資訊安全防護主機
WO2012082411A2 (en) * 2010-12-17 2012-06-21 Intel Corporation Audio content protection
US8705729B2 (en) 2010-12-17 2014-04-22 Intel Corporation Audio content protection
US8625788B2 (en) 2011-01-05 2014-01-07 Intel Corporation Method and apparatus for building a hardware root of trust and providing protected content processing within an open computing platform
US9153001B2 (en) 2011-01-28 2015-10-06 Honeywell International Inc. Approach for managing distribution of automated demand response events in a multi-site enterprise
US8661527B2 (en) 2011-08-31 2014-02-25 Kabushiki Kaisha Toshiba Authenticator, authenticatee and authentication method
JP5275432B2 (ja) 2011-11-11 2013-08-28 株式会社東芝 ストレージメディア、ホスト装置、メモリ装置、及びシステム
SG189388A1 (en) * 2011-11-16 2013-05-31 V Key Inc Cryptographic system and methodology for securing software cryptography
JP5204291B1 (ja) 2011-12-02 2013-06-05 株式会社東芝 ホスト装置、装置、システム
JP5100884B1 (ja) 2011-12-02 2012-12-19 株式会社東芝 メモリ装置
JP5204290B1 (ja) 2011-12-02 2013-06-05 株式会社東芝 ホスト装置、システム、及び装置
JP5112555B1 (ja) 2011-12-02 2013-01-09 株式会社東芝 メモリカード、ストレージメディア、及びコントローラ
JP5275482B2 (ja) 2012-01-16 2013-08-28 株式会社東芝 ストレージメディア、ホスト装置、メモリ装置、及びシステム
CN102722678B (zh) * 2012-05-31 2016-06-15 北京朋创天地科技有限公司 一种虚拟桌面可执行程序保护机制
US9646153B2 (en) * 2012-08-08 2017-05-09 Intel Corporation Securing content from malicious instructions
US8656482B1 (en) * 2012-08-20 2014-02-18 Bitdefender IPR Management Ltd. Secure communication using a trusted virtual machine
US20140081704A1 (en) 2012-09-15 2014-03-20 Honeywell International Inc. Decision support system based on energy markets
US9389850B2 (en) 2012-11-29 2016-07-12 Honeywell International Inc. System and approach to manage versioning of field devices in a multi-site enterprise
US9201811B2 (en) 2013-02-14 2015-12-01 Kabushiki Kaisha Toshiba Device and authentication method therefor
US8984294B2 (en) 2013-02-15 2015-03-17 Kabushiki Kaisha Toshiba System of authenticating an individual memory device via reading data including prohibited data and readable data
US9052740B2 (en) * 2013-03-12 2015-06-09 Qualcomm Incorporated Adaptive data path for computer-vision applications
US9989937B2 (en) 2013-07-11 2018-06-05 Honeywell International Inc. Predicting responses of resources to demand response signals and having comfortable demand responses
US9691076B2 (en) 2013-07-11 2017-06-27 Honeywell International Inc. Demand response system having a participation predictor
US10346931B2 (en) 2013-07-11 2019-07-09 Honeywell International Inc. Arrangement for communicating demand response resource incentives
DE102014204417A1 (de) * 2014-03-11 2015-09-17 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Detektieren einer Manipulation an einem Programmcode
US9665078B2 (en) 2014-03-25 2017-05-30 Honeywell International Inc. System for propagating messages for purposes of demand response
US20150278512A1 (en) * 2014-03-28 2015-10-01 Intel Corporation Virtualization based intra-block workload isolation
US20170132430A1 (en) * 2014-07-15 2017-05-11 Neil Sikka Apparatus for and Method of Preventing Unsecured Data Access
CN105760719B (zh) * 2014-12-19 2019-11-15 深圳市中兴微电子技术有限公司 一种密文数据解密方法及系统
US10205710B2 (en) * 2015-01-08 2019-02-12 Intertrust Technologies Corporation Cryptographic systems and methods
FR3038404B1 (fr) * 2015-07-02 2019-04-26 Viaccess Procede et systeme d'execution securisee de machines virtuelles par un ensemble de dispositifs programmables interconnectes
US10616184B2 (en) * 2016-06-30 2020-04-07 Intel Corporation Wireless display streaming of protected content
US10338951B2 (en) 2017-03-01 2019-07-02 Red Hat, Inc. Virtual machine exit support by a virtual machine function
US10541556B2 (en) 2017-04-27 2020-01-21 Honeywell International Inc. System and approach to integrate and manage diverse demand response specifications for multi-site enterprises
US10685106B2 (en) * 2018-03-10 2020-06-16 International Business Machines Corporation Protecting cognitive code and client data in a public cloud via deployment of data and executables into a stateless secure partition
US11068607B2 (en) * 2018-03-10 2021-07-20 International Business Machines Corporation Protecting cognitive code and client data in a public cloud via deployment of data and executables into a secure partition with persistent data
US10999304B2 (en) 2018-04-11 2021-05-04 Palo Alto Networks (Israel Analytics) Ltd. Bind shell attack detection
US11443072B2 (en) * 2018-06-29 2022-09-13 Microsoft Technology Licensing, Llc Peripheral device with resource isolation
US11126757B2 (en) 2018-10-19 2021-09-21 Microsoft Technology Licensing, Llc Peripheral device
US11184377B2 (en) 2019-01-30 2021-11-23 Palo Alto Networks (Israel Analytics) Ltd. Malicious port scan detection using source profiles
US11184378B2 (en) 2019-01-30 2021-11-23 Palo Alto Networks (Israel Analytics) Ltd. Scanner probe detection
US11184376B2 (en) * 2019-01-30 2021-11-23 Palo Alto Networks (Israel Analytics) Ltd. Port scan detection using destination profiles
KR20210016764A (ko) * 2019-08-05 2021-02-17 삼성전자주식회사 시스템 온 칩
JP7416480B2 (ja) * 2019-08-16 2024-01-17 フィドゥシアエッジ テクノロジーズ カンパニー リミテッド オープンインターコネクトを介してヘテロジニアスプロセッサ上でリモート認証及び情報分離を備えた信頼できるコンピューティングを実行するためのシステム及び方法
US11841961B2 (en) 2020-07-02 2023-12-12 International Business Machines Corporation Management of computing secrets
US11799865B2 (en) * 2020-12-18 2023-10-24 Microsoft Technology Licensing, Llc Multi-chamber hosted computing environment for collaborative development between untrusted partners
US11308226B1 (en) * 2021-02-22 2022-04-19 CipherMode Labs, Inc. Secure collaborative processing of private inputs
US12066898B2 (en) * 2021-03-30 2024-08-20 Acronis International Gmbh System and method for distributed-agent restoration of virtual machines
EP4145762B1 (en) 2021-09-06 2023-10-25 Axis AB Method and system for enabling secure processing of data using a processing application
US12039017B2 (en) 2021-10-20 2024-07-16 Palo Alto Networks (Israel Analytics) Ltd. User entity normalization and association
US11799880B2 (en) 2022-01-10 2023-10-24 Palo Alto Networks (Israel Analytics) Ltd. Network adaptive alert prioritization system

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1312549C (zh) 1995-02-13 2007-04-25 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US5825879A (en) 1996-09-30 1998-10-20 Intel Corporation System and method for copy-protecting distributed video content
US7200842B1 (en) * 1999-02-02 2007-04-03 Sun Microsystems, Inc. Object-oriented instruction set for resource-constrained devices
GB9922665D0 (en) 1999-09-25 1999-11-24 Hewlett Packard Co A method of enforcing trusted functionality in a full function platform
US6598032B1 (en) 2000-03-10 2003-07-22 International Business Machines Corporation Systems and method for hiding from a computer system entry of a personal identification number (pin) to a smart card
US6961858B2 (en) 2000-06-16 2005-11-01 Entriq, Inc. Method and system to secure content for distribution via a network
US20020073025A1 (en) 2000-12-08 2002-06-13 Tanner Robert G. Virtual experience of a mobile device
EP1323018A4 (en) 2001-06-07 2004-07-07 Contentguard Holdings Inc PROTECTED CONTENT DELIVERY SYSTEM
MXPA03002097A (es) 2001-07-13 2003-06-19 Sony Corp Dispositivo de grabacion de informacion de video y dispositivo de reproduccion.
US7272858B2 (en) 2002-04-16 2007-09-18 Microsoft Corporation Digital rights management (DRM) encryption and data-protection for content on a relatively simple device
JP4675031B2 (ja) 2002-04-23 2011-04-20 パナソニック株式会社 サーバ装置及びプログラム管理システム
US20030217258A1 (en) 2002-05-16 2003-11-20 International Business Machines Corporation Apparatus and method of using ephemeral asymmetric keys to exchange security data between hardware security modules
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US7174021B2 (en) 2002-06-28 2007-02-06 Microsoft Corporation Systems and methods for providing secure server key operations
US7440574B2 (en) 2003-06-11 2008-10-21 Hewlett-Packard Development Company, L.P. Content encryption using programmable hardware
US8838950B2 (en) 2003-06-23 2014-09-16 International Business Machines Corporation Security architecture for system on chip
KR100950007B1 (ko) 2003-06-27 2010-03-29 디즈니엔터프라이지즈,인크. 차세대 미디어 플레이어층에 대한 이중 가상 머신 및 신뢰플랫폼 모듈 아키텍쳐
US8055910B2 (en) 2003-07-07 2011-11-08 Rovi Solutions Corporation Reprogrammable security for controlling piracy and enabling interactive content
US7389273B2 (en) 2003-09-25 2008-06-17 Scott Andrew Irwin System and method for federated rights management
US7539307B2 (en) 2003-11-26 2009-05-26 International Business Machines Corporation System, method, and service for delivering enhanced multimedia content on physical media
JP4629416B2 (ja) 2003-11-28 2011-02-09 パナソニック株式会社 データ処理装置
US7552419B2 (en) 2004-03-18 2009-06-23 Intel Corporation Sharing trusted hardware across multiple operational environments
US7401230B2 (en) * 2004-03-31 2008-07-15 Intel Corporation Secure virtual machine monitor to tear down a secure execution environment
KR20060081337A (ko) 2005-01-07 2006-07-12 엘지전자 주식회사 비밀키를 이용한 암호화 및 복호화 방법
US7587595B2 (en) 2005-05-13 2009-09-08 Intel Corporation Method and apparatus for providing software-based security coprocessors
WO2007116835A1 (ja) * 2006-04-03 2007-10-18 Panasonic Corporation 通信システム間の共存を可能にする通信装置
US7971018B2 (en) 2006-05-01 2011-06-28 Mediatek Inc. Method and apparatus for secure context switching in a system including a processor and cached virtual memory
JP4765812B2 (ja) 2006-07-28 2011-09-07 日本電気株式会社 情報処理システム、クライアント装置、プログラム、及びファイルアクセス制御方法
KR101504647B1 (ko) * 2006-08-08 2015-03-30 샌디스크 테크놀로지스, 인코포레이티드 가상 머신 활성화를 갖는 휴대용 대량 저장장치
US7860246B2 (en) 2006-11-01 2010-12-28 International Business Machines Corporation System and method for protecting data in a secure system
US20080262968A1 (en) 2007-03-26 2008-10-23 Infosys Technologies Ltd. Software licensing control via mobile devices
ES2632958T3 (es) 2007-06-14 2017-09-18 Intrinsic Id B.V. Método y dispositivo para proporcionar seguridad digital
US8639949B2 (en) * 2007-07-20 2014-01-28 Nxp B.V. Device with a secure virtual machine
US8266448B2 (en) 2008-12-09 2012-09-11 Nvidia Corporation Apparatus, system, method, and computer program product for generating and securing a program capable of being executed utilizing a processor to decrypt content
US8135964B2 (en) 2008-12-09 2012-03-13 Nvidia Corporation Apparatus, system, method, and computer program product for executing a program utilizing a processor to generate keys for decrypting content
US8402280B1 (en) 2009-10-15 2013-03-19 Nvidia Corporation System, method, and computer program product for buffering in association with audio/video digital rights management (DRM) processing

Also Published As

Publication number Publication date
KR101091465B1 (ko) 2011-12-07
US8868925B2 (en) 2014-10-21
CN101751529A (zh) 2010-06-23
TW201023047A (en) 2010-06-16
US20100146501A1 (en) 2010-06-10
CN101751529B (zh) 2014-01-08
TWI423136B (zh) 2014-01-11
KR20100066404A (ko) 2010-06-17
JP2010140470A (ja) 2010-06-24

Similar Documents

Publication Publication Date Title
JP5532291B2 (ja) プロセッサのバーチャルマシン内で機密コンテンツをセキュアに処理するための方法及び装置
US8266448B2 (en) Apparatus, system, method, and computer program product for generating and securing a program capable of being executed utilizing a processor to decrypt content
US8135964B2 (en) Apparatus, system, method, and computer program product for executing a program utilizing a processor to generate keys for decrypting content
JP5670578B2 (ja) 機密コードおよびデータを保護するためのアーキテクチャを含む方法および装置
US20240126930A1 (en) Secure Collaboration Between Processors And Processing Accelerators In Enclaves
US8014530B2 (en) Method and apparatus for authenticated, recoverable key distribution with no database secrets
US11929995B2 (en) Method and apparatus for protecting confidential data in an open software stack
TW201723920A (zh) 硬體強制單向密碼學
US20150178481A1 (en) Platform-hardened digital rights management key provisioning
US8245307B1 (en) Providing secure access to a secret
US7970133B2 (en) System and method for secure and flexible key schedule generation
CN105468940B (zh) 软件保护方法及装置
US20100241855A1 (en) Systems and Methods for Secure Execution of Code Using a Hardware Protection Module
US20190044709A1 (en) Incorporating software date information into a key exchange protocol to reduce software tampering
CN112115491A (zh) 一种对称加密密钥保护方法、装置、设备及存储介质
US20210026935A1 (en) High performance compute ip encryption using unique set of application attributes
KR20120068543A (ko) 화이트박스 암호를 이용한 소프트웨어 설치 장치 및 방법
CN116680755A (zh) Gpu固件的保护方法、装置、电子设备和存储介质
CN114556344A (zh) 在加密协同处理器中执行针对实体特定的加密代码
Schaumont et al. Demonstrating end point security in embedded systems

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111003

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120223

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120229

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20120502

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20140108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140409

R150 Certificate of patent or registration of utility model

Ref document number: 5532291

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250