説明

暗号化されたプログラムを実行するシステムおよび方法

【課題】安全なプログラムを実行するシステムおよび方法を提供する。
【解決手段】ソフトウェアを安全に実行し、ホストを具備しているシステムであって、ホストは、アクセスされる暗号化されたコンテンツを含んでいるディスクを受け入れ、ディスク上のコンテンツにアクセスするために使用される暗号化されたプログラムを記憶させるように構成されている。システムは、安全なコプロセッサをさらに具備している。安全なコプロセッサは、ホストに通信可能に結合され、暗号化されたプログラムを受け取り、暗号化されたプログラムを解読して実行し、プログラムによって発生された出力をホストに返信するように構成されている。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般的に、暗号化されたデータの処理に関する。
【背景】
【0002】
年々、消費者の間でデジタルビデオコンテンツの人気が高まっている。ブロードキャスト、ケーブル、オンデマンド方式、固定媒体、およびマルチメディアコンテンツの他の利用可能なソースを通して消費者にとって利用可能なオーディオコンテンツおよびビデオコンテンツの量が増加しており、消費者が容易にアクセスおよびプログラミングできるコンテンツの量が増加している。さらに、簡単に利用可能である多くのデバイス(例えば、PC、DVDレコーダ)およびサービスによって、消費者は、オンデマンドビデオおよびオーディオコンテンツを記録、タイムシフト、または表示させることができる。さらに、ビデオサービスを配信するIPTV(インターネットプロトコルテレビ)のような、ダウンロード可能なコンテンツの形態でインターネットおよび他のデータサービスを通して利用可能になっているビデオコンテンツの量も増加している。
【0003】
一般的に、ビデオコンテンツは、例えば、MPEG−1、MPEG−2、またはDV(デジタルビデオ)のような任意の数の一般的なフォーマットで記憶される。同様に、オーディオコンテンツは、例えば、MP3、WAV、またはMPEGオーディオのような任意の数の一般的なデジタルフォーマットで記憶される。非常に数多くのデジタルフォーマットでマルチメディアコンテンツを利用可能にすると、可搬性の度合いが高いことからマルチメディアコンテンツの配布がより容易になる。
【0004】
ビデオ再生システムはよく知られており、さまざまなビデオ再生システムに関連するフォーマットおよび他の属性を管理する現在の標準規格にはさまざまなものがある。今日、DVD(デジタルビデオディスク)標準規格は高記憶容量であることから高品質のビデオおよびオーディオを記憶できるため、光ディスクの記憶に利用される主流のフォーマットである。結果的に、映画、テレビショーおよび音楽ビデオのようなメディアコンテンツは、DVDフォーマットで幅広く利用可能になった。
【0005】
今日、DVDの標準規格に取って代わるものになることを考慮したさまざまな標準規格がある。次世代の光ディスク標準規格になるように競合している2つのフォーマットは、ブルーレイディスクおよびHD DVD(高精細デジタルビデオディスク)である。他のより新しい標準規格と同様に、ブルーレイディスクは、増加した記憶容量と向上した対話性(ディスクコンテンツのオーサリング、シームレスメニューのナビゲーション、ネットワーク/インターネットの接続性等)とを含むさまざまな方法で、DVDおよび他の以前の光ディスクの標準規格を越える利点を提供する。ブルーレイディスクフレームワークは、対話型タイトルを生成するときに、コンテンツプロバイダにほぼ制限のない機能を提供する。製作者は、ユーザインターフェイスの設計において完全に自由であるが、ユーザインターフェイスは、遠隔制御装置上の標準規格のナビゲーションボタンを使用することによって制御可能である。ブルーレイディスクおよびHD DVDのような、これらのより新しい世代のビデオ標準規格は、基礎となるビデオコンテンツとのより高いレベルの対話およびユーザ制御を提供している。
【0006】
残念なことに、技術によってマルチメディアコンテンツの配布が容易になることが続くと、マルチメディアコンテンツの配布、オーディオ/ビジュアルの作品の著作権侵害もまた年々急増する。例えば、DVD上に記憶されているマルチメディアコンテンツへのアクセスおよびマルチメディアコンテンツのコピーの機能によって、ビデオおよびオーディオの著作権侵害は、継続的な問題であり続ける。このような著作権侵害は、DVDが一般的に用いている、コピーを制限するメカニズムの観点で、さらに問題であり続ける。向上した対話型機能を提供するHD DVDおよびブルーレイディスクのような、より新しい標準規格によって、ビデオおよびオーディオの著作権侵害は、さらに継続的な問題になると思われる。
【0007】
マルチメディアコンテンツの認証されていないコピーおよび配布に対応するために、オーディオ/ビジュアル作品の発行元および製作者は、デジタルコンテンツへのアクセスを制御する技術に頼っている。用語、デジタル権利マネンジメント(DRM)は、一般的に、マルチメディアコンテンツに対する制限されたアクセスを実現するために使用される技術を表している。このようなDRM技術は、暗号化を用いて、コンテンツへのアクセスを制御するマルチメディアプレイヤーソフトウェアを含む多くのさまざまな技術に基づいている。しかしながら、ソフトウェアアプリケーションを使用して、暗号化されたコンテンツへのアクセスを制御する1つの明らかな欠点は、多くのケースにおいて、このソフトウェアがアクセスされてリバースエンジニアリングされることである。保護メカニズムがDVD上に存在するにもかかわらず、これらの保護メカニズムをあざむく方法をユーザは発見する。1つの方法は、解読されてデコードされたマルチメディアストリームをコンピュータ上のハードディスクに直接書き込むことによって、商業的なDVD再生ソフトウェアに変更を加えることによるものである。
【0008】
一般的に、パーソナルコンピュータがオープンな環境で動作すると仮定すると、DVD再生ソフトウェアのようなアプリケーションを保護することが課題である。いくつかの例では、保護されたエリアのメモリから保護されていないエリアのメモリにソフトウェアコードを移動することができ、保護されていないエリアのメモリにおいて、コードは詳細に分析され、解析される。この結果、プログラム内に埋め込まれている感知可能なデータを露呈することになる。このことによって、DRMを組み込んでいるコンテンツを配布するために使用される解読キーといったこのようなデータを取得して再利用することは非常にコストがかかることが証明される。適切なツールにより、これらのキーを保持しているメモリのブロックを調べると、保護されたコンテンツへの認証されていないアクセスを獲得することが可能である。したがって、オープンメモリ中に記憶されているソフトウェアアプリケーションを含んでいる従来のアプローチには、依然として、さまざまな明らかな欠点がある。
【概要】
【0009】
安全なプログラムを実行するシステムおよび方法を記述する。少なくとも1つの実施形態は、ソフトウェアを安全に実行し、ホストを具備しているシステムを含む。ホストは、アクセスされる暗号化されたコンテンツを含むディスクを受け入れて、ディスク上のコンテンツにアクセスするために使用される暗号化されたプログラムを記憶させるように構成されている。システムは、安全なコプロセッサをさらに具備している。安全なコプロセッサは、通信可能にホストに結合されており、暗号化されたプログラムを受け取って、暗号化されたプログラムを解読して実行して、プログラムによって発生された出力をホストに返信するように構成されている。
【0010】
別の実施形態は、暗号化されたソフトウェアを実行する方法を含む。方法は、暗号化されたプログラムを記憶させるように構成され、暗号化されたコンテンツを記憶しているディスクを受け入れるようにさらに構成されているホストから暗号化されたプログラムを受け取ることと、ディスク上に含まれている情報を受け取ることと、処理ユニットによって、安全なコプロセッサ上で、暗号化されたプログラムを解読することと、処理ユニットに結合され、処理ユニットによってのみアクセス可能である制限されたアクセスRAM中に解読されたプログラムを記憶させることと、プライベートRAMの中に記憶された解読されたプログラムを実行し、出力を発生させることと、出力をホストに送ることとを含む。
【0011】
さらに別の実施形態は、コンピュータ実行可能な方法を実行させるためのコンピュータプログラムが記憶されているコンピュータ読取可能な媒体を含む。コンピュータ実行可能な方法は、暗号化されたプログラムを記憶させるように構成され、暗号化されたコンテンツを記憶しているディスクを受け入れるようにさらに構成されているホストから暗号化されたプログラムを送ることと、ディスク上に含まれているコンテンツを送ることと、処理ユニットによって、暗号化されたプログラムを解読することと、処理ユニットに結合され、処理ユニットによってのみアクセス可能である制限されたアクセスRAMの中に解読されたプログラムを記憶させることと、プライベートRAM中に記憶された解読されたプログラムを実行して、出力を発生させることと、出力をホストに通信することとを含む。
【0012】
本開示の他のシステム、方法、機能および効果は、図面および詳細な説明を考察すると、当業者に明らかであり、または明らかになるだろう。すべてのこのような付加的なシステム、方法、機能、および効果は、本開示の範囲内である詳細な説明内に含まれ、そして、添付した特許請求の範囲によって保護されることを意図している。
【0013】
本開示の多くの観点は、図面を参照すると、よりよく理解することができる。必ずしも図面中のコンポーネントはスケーリングされていないが、代わりに、本開示の原理を明瞭に図示する際に強調がなされている。さらに、図面における同じ参照符号は、いくつかの図面にわたって対応している部分を示している。
【詳細な説明】
【0014】
本開示のさまざまな観点を要約して、図面で図示しているような開示の説明をこれから詳細に参照する。これらの図面に関連して本開示を記述するが、ここで開示する1つ以上の実施形態に開示を限定する意図はない。反対に、添付した特許請求の範囲によって規定されているような本開示の精神および範囲内に含まれているすべての代替実施形態、修正および均等物を対象とすることを意図している。
【0015】
暗号化されたプログラムを実行するシステムおよび方法の実施形態を開示する。背景において説明したように、ソフトウェアを使用する従来のアプローチで見出された1つの明らかな欠点は、コンピュータが動作するのはオープンな環境であることから、保護されているエリアのメモリから保護されていないエリアのメモリにソフトウェアコードが移動され、保護されていないエリアのメモリにおいて、コードは詳細に分析され、解析されることである。したがって、多くの場合、一般的に、コンピュータメモリ自体へのアクセスが制限されていないことから、DVDコンテンツへのアクセスに必要な解読キーのような感知可能なデータは、認証されていないアクセスおよび不正操作に対して脆弱である。コンピュータメモリ中に存在するマルチメディアソフトウェアアプリケーションを解析すると、暗号化キーが記憶されている正確なメモリの位置を決定することがさらに可能である。適切なツールにより、保護されたコンテンツへのアクセスを獲得するためにこれらのキーを保持しているメモリのブロックを解析するソフトウェアプロセスを停止することが可能である。
【0016】
ここで開示したある実施形態のシステムでは、マルチメディアの再生ソフトウェアのようなプログラムを暗号化してから、一時的な記憶および実行のために、暗号化されたプログラムを安全なコプロセッサに転送することによって、これらの認識されている欠点に取り組んでいる。1つの実施形態は、ソフトウェアを安全に実行し、ホストを具備しているシステムを含む。ホストは、アクセスされる暗号化されたコンテンツを含んでいるディスクを受け入れ、ディスク上のコンテンツにアクセスするために使用される暗号化されたプログラムを記憶させるように構成されている。システムは、安全なコプロセッサをさらに具備している。安全なコプロセッサは、ホストに通信可能に結合され、暗号化されたプログラムを受け取り、暗号化されたプログラムを解読して実行し、プログラムによって発生された出力をホストに返信するように構成されている。
【0017】
いくつかの実施形態では、プログラムの一部分またはプログラム全体は、安全なコプロセッサ上で実行される。例えば、光ディスク上のコンテンツを解読するためのキーを発生させる再生アプリケーションの一部分は、安全なプロセッサ上で実行されてもよい。プログラムの出力の構成要素となるキーは、ホストに返信され、ホストにおいて、ディスク上に記憶されているコンテンツが解読されるとディスプレイに出力される。他の実施形態では、キーの計算/発生、解読およびデコードを含む再生アプリケーションのこのような機能は、すべて安全なコプロセッサによって実行されてもよい。これらの実施形態では、発生された出力は、ディスプレイに送られるビデオ/オーディオコンテンツを含んでいてもよい。デコードされたコンテンツの安全な送信を確実なものにするために、デジタルビジュアルインターフェイス(DVI)接続または高精細マルチメディアインターフェイス(HDMI)接続のような接続を通して、感知可能なデータの安全な送信を提供するHDCP(広帯域デジタルコンテンツ保護)のようなDRM標準規格に準拠しているデバイスのみに、出力を選択的に送ってもよい。
【0018】
ここで説明する実施形態では、コプロセッサは、認証されていないアクセスおよび不正操作を防ぐ安全機能を備えていることを正しく認識すべきである。いくつかの実施形態では、プロセッサは、プロプラエタリ命令セットを実行する処理ユニットを備えている。すなわち、命令セットは、一般的に知られないものであり、人々によって使用されないものである。しかしながら、処理ユニットは、プロプラエタリ命令セットを実行するプロセッサに限定されないことに留意すべきである。最後に、安全なコプロセッサは、安全なコプロセッサの処理ユニットのみとインターフェイスするように構成されている制限されたアクセスRAMを含んでいてもよい。
【0019】
図1を参照すると、図1は、暗号化されたプログラムを安全に実行するシステムの実施形態の高レベルな図を図示している。再生システム100は、マルチメディアコンテンツを含んでいるディスク150を受け入れる。ディスク150は、DVD、HD DVD、またはブルーレイディスクのような高精細ビデオ、およびデータを含んでいる任意のディスクであってもよい。さらに、ディスクは、ディスクのタイトルコンテンツの認証されていないコピーおよび配布を防ぐいくつかのタイプの保護スキームを組み込んでいてもよい。例えば、ブルーレイディスクおよびHD DVDは、コンテンツを配布するために、制限されたアクセスを提供するAACS LA(アドバンスドアクセスコンテンツシステムライセンス局)によって規定されているDRM仕様のもとで保護されており、その全体は参照によりここに組み込まれている。ビデオコンテンツの暗号化および解読に関するさらなる情報は、AACSのウェブサイト、http://www.aacsla.com.に記載されている。本開示は、他の高密度光ディスクフォーマットに適用されてもよいが、ここで記述する実施形態は、一般的に、コンテンツを配布するためのAACS標準規格を組み込んでいるディスクに適用される。
【0020】
ディスク150上のコンテンツは、一般的に、2つのカテゴリー、すなわち、主マルチメディアコンテンツ自体とディスクに関連するボリューム情報とに分類されてもよい。AACS標準規格にしたがうと、このボリューム情報は、メディアキーブロック(MKB)と呼ばれている。MBKによって、対応プレイヤー(すなわち、AACS LAによるライセンスが組み込まれているプレイヤー)は、プレイヤーの中に埋め込まれているデバイスキーを使用して、「シークレット」キーを計算することができる。本発明の目的のうちの1つは、ソフトウェアの中に埋め込まれている、これらのデバイスキーの認証されていないアクセスを防ぐことである。AACSライセンス局は、含まれているデバイスキーを取り消してもよいが、AACSライセンス局は、どのキーが損われているかを実際に把握している必要がある。多くのケースにおいて、攻撃者は、他者が使用するキーを発行することではなく、単に、デバイスキーを使用することを選んでもよい。
【0021】
高いレベルから、システム100は、2つの主なコンポーネント、すなわち、ホスト120と安全なコプロセッサ140とに分けられてもよい。ホスト120は、CPU122と、メモリ124と、解読されたコンテンツをデコードするデコーダブロック126とを備えている。デコーダブロック126はホスト中に示されているが、他の実施形態では、安全なコプロセッサ140もデコーダブロックを含んでいてもよいことに留意すべきである。HD DVDおよびブルーレイディスクソフトウェアプレイヤーのようなソフトウェアアプリケーションの一部分は、解読および実行のために安全なコプロセッサに送られる前に、暗号化され、ホストのメモリ124中に記憶される。ソフトウェアアプリケーションのこのような部分は、キーの発生を取り扱うコードの部分を含んでいてもよい。コードのこれらの部分は、安全性を確実なものにするために、安全なコプロセッサによって実行される。
【0022】
安全なコプロセッサ140は、CPU142と、解読器ブロック144と、制限されたアクセスRAM146とを備えている。CPU142は、当業者によって知られている任意の中央処理ユニットであってもよい。代わりに、CPU142は、例えば、データタイプ、命令、レジスタ、アドレッシングスキームといった観点および当業者によって知られている他の観点に関連するプロプラエタリ命令セットを実行するカスタム処理ユニットであってもよい。プロプラエタリ命令セットは公衆によって知られていない。このことは、CPU142によって実行されているプロセスを停止させるような認証されていないアクションを実行するために、CPU142の中に侵入することをより困難にする。CPU142が実行される前に、解読器ブロック144は、暗号化されたプログラムを解読して、制限されたアクセスRAM146の中に解読されたプログラムを記憶させる。認証されていないユーザによって、解読されたプログラムがRAM146から取り出されないようにするために、RAM146はCPU142によってのみアクセスが可能であり、CPU142の専用リソースである。最後に、安全なコプロセッサ140内のプログラムによって発生された出力がホスト120に返信されるように、ホスト120および安全なコプロセッサ140は通信可能に結合されている。
【0023】
図2をこれから参照すると、図2は、暗号化されたプログラムを安全に実行するシステムの例示的な実施形態を図示しているブロック図である。いくつかの実施形態では、ホストシステム202は、いくつかのタイプのコンピューティングデバイスの中に組み込まれていてもよい。または、図1に示した安全なコプロセッサは、ホストシステム202の中に組み込まれていてもよい。例えば、いくつかの実施形態では、ホストおよび安全なコプロセッサの両者は、PCの同一のマザーボード上に設置されてもよい。しかしながら、他の実施形態では、安全なコプロセッサは、PC内のスロットに差し込むグラフィックカードのような、別のボード上に設置されてもよい。安全なコプロセッサは、バスを通して、ホストと通信する。安全なコプロセッサおよびホストは、安全性を確実なものにするために、データをやり取りするときに暗号化プロトコルを使用するといった安全対策を組み込んでいてもよい。
【0024】
一般的に述べると、ホストシステム202は、デスクトップコンピュータ、ポータブルコンピュータ、専用サーバコンピュータ、マルチプロセッサコンピューティングデバイス等のような、幅広いさまざまなワイヤおよび/またはワイヤレスコンピューティングデバイスのうちのいずれか1つを含んでいてもよい。その特定の配置に関係なく、ホスト202は、数ある中のコンポーネント、例えば、データバス212に並列に接続されているプロセッサ204、入力/出力インターフェイス206、ネットワークインターフェイス208、およびディスプレイ210を備えていてもよい。一般的に、ホストシステム202は、簡略する目的で省略されている他のコンポーネントを含むことができ、そして含むことになることを当業者は正しく認識するだろう。ディスプレイ210は、例えば、コンピュータモニタまたはPC向けのプラズマスクリーン、あるいは液晶ディスプレイ(LCD)を含むことが可能である。さらなる安全性のために、ディスプレイ210は、さまざまなタイプの接続を通して、デジタルビデオ/オーディオコンテンツの安全な送信を提供するHDCP標準規格のような、何らかのタイプのDRMスキームに準拠しているデバイスであってもよい。
【0025】
プロセッサ204は、カスタムメードまたは商業的に入手可能なプロセッサ、中央処理ユニット(CPU)またはホスト202に関係付けられているいくつかのプロセッサのうちの補助プロセッサ、(マイクロチップの形態の)半導体ベースのマイクロプロセッサ、マクロプロセッサ、1つ以上の特定用途向け集積回路(ASIC)、複数の適切に構成されているデジタルロジックゲート、ならびにコンピューティングシステムの全体的な動作を個々に、およびさまざまな組み合わせで調整するディスクリート素子を含む他の周知の電気構成を含むことが可能である。
【0026】
メモリ214は、揮発性メモリ素子(例えば、ランダムアクセスメモリ(DRAMおよびSRAM等のようなRAM))と不揮発性メモリ素子(例えば、ROM、ハードドライブ、テープ、CDROM等)との組み合わせのうちのいずれか1つを含むことができる。メモリ214は、一般的に、ネイティブオペレーティングシステム216、1つ以上のネイティブアプリケーション、エミュレーションシステム、あるいはさまざまなオペレーティングシステムおよび/またはエミュレートされたハードウェアプラットフォームのうちのいずれかのもののためのエミュレートされたアプリケーション、エミュレートされたオペレーティングシステム等を記憶してもよい。例えば、アプリケーションは、安全なコプロセッサ222とインターフェイスするための特定用途向けプログラム218を含んでいてもよい。さらに、一般的に、メモリ214は、簡略する目的で省略されている他のコンポーネントを含むことができ、そして含むことになることを当業者は正しく認識するだろう。
【0027】
図2に示しているアプリケーション218は、HD DVDおよびブルーレイディスクのようなさまざまなディスクフォーマットを再生するために使用されるソフトウェアプレイヤーのアプリケーションであってもよい。アプリケーション218がソフトウェアで実現されたときに、アプリケーション218が、さまざまなコンピュータ関連システムまたは方法によって使用される、あるいはこれらに関連して使用されるさまざまなコンピュータ読取り可能な媒体上に記憶できることに留意すべきである。この文書の状況では、コンピュータ読取り可能な媒体は、電子、磁気、光、あるいは他の物理的デバイスまたは装置を構成してもよく、これは、コンピュータ関連システムまたは方法によって使用される、あるいはこれらに関連して使用されるコンピュータプログラムを含むまたは記憶できる。インターフェイスは、命令実行システム、装置またはデバイスによる使用のために、あるいは、命令実行システム、装置またはデバイスとともに使用するために、さまざまなコンピュータ読取可能な媒体に埋め込むことができる。命令実行システム、装置またはデバイスは、命令実行システム、装置またはデバイスからの命令をフェッチして、その命令を実行できるコンピュータベースシステム、プロセッサ搭載システムのようなものである。
【0028】
この開示の状況では、「コンピュータ読取り可能な媒体」は、命令実行システム、装置またはデバイスによって使用されるプログラムを、またはこれらに関連して使用されるプログラムを記憶、通信、伝搬または移動させる。コンピュータ読取り可能な媒体は、例えば、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、デバイス、あるいは伝搬媒体であってもよいが、これらのものに限定されるものではない。コンピュータ読取可能な媒体のさらなる特定の例(網羅されていないリスト)には、1以上のワイヤを持つ電気接続(電子)、ポータブルコンピュータディスケット(磁気)、ランダムアクセスメモリ(RAM)(電子)、リードオンリーメモリ(ROM)(電子)、消去可能プログラマブルリードオンリーメモリ(EPROM、EEPROM、またはフラッシュメモリ)(電子)、光ファイバ(光学)、およびポータブルコンパクトディスクリードオンリーメモリ(CDROM)(光学)が含まれていてもよい。
【0029】
入力/出力インターフェイス206は、データを入力および出力する任意の数のインターフェイスを含む。例えば、ホスト202がパーソナルコンピュータを構成する場合、システム内のコンポーネントは、キーボードまたはマウスのような、ユーザ入力デバイスとインターフェイスしてもよい。ホスト202は、ネットワークを通して、暗号化されたマルチメディアコンテンツのようなデータを送信および/または受信するネットワークインターフェイス208も含んでいてもよい。非限定的な例として、ネットワークインターフェイス208は、変調器/復調器(例えば、モデム)、ワイヤレス(例えば、無線周波数(RF))トランシーバ、電話のインターフェイス、ブリッジ、ルーター、ネットワークカード等を含んでいてもよい。
【0030】
図2は、暗号化されたプログラム220を含んでいるアプリケーション218を図示している。暗号化されたプログラム220は、アプリケーション216の一部分であってもよく、アプリケーション216は、デバイスキーを含み、ディスク上に記憶されている暗号化されたコンテンツを解読するためのボリュームキーを計算する。この暗号化されたプログラム220は、プログラム220の安全な解読および実行のために、安全なコプロセッサ222に送られてもよい。上記で述べたように、安全なコプロセッサ224は、ホストシステム202と通信するためにPCスロットに差し込むグラフィックカードのような、別のボード上に設置されていてもよい。図2に示したように、安全なコプロセッサ222は、データバス212によって、ホストシステム202とインターフェイスしてもよい。安全なコプロセッサ222とホスト202との間の安全な通信を確実なものにするために、暗号化プロトコルが組み込まれていてもよい。
【0031】
安全なコプロセッサ222は、プロセッサ224を備えている。プロセッサ224は、カスタムメードまたは商業的に入手可能なプロセッサ、中央処理ユニット(CPU)またはいくつかのプロセッサのうちの補助プロセッサ、(マイクロチップの形態の)半導体ベースのマイクロプロセッサ、マクロプロセッサ、1つ以上の特定用途向け集積回路(ASIC)、複数の適切に構成されているデジタルロジックゲート、ならびにコンピューティングシステムの全体的な動作を個々に、およびさまざまな組み合わせで調整するディスクリート素子を含む他の周知の電気構成を含んでいてもよい。いくつかの実施形態では、不正操作の可能性を減少させるために、プロセッサ224はプロプラエタリ命令セットを実行してもよいことに留意すべきである。
【0032】
安全なコプロセッサ222は、制限されたアクセスメモリ226をさらに備えている。メモリ226は、揮発性メモリ素子(例えば、ランダムアクセスメモリ(DRAMおよびSRAM等のようなRAM))と不揮発性メモリ素子(例えば、ROM、ハードドライブ、テープ、CDROM等)との組み合わせのうちのいずれか1つを含むことができる。安全なメモリ226は、プログラム220が解読された後に、プログラム220を記憶する。好ましい実施形態では、制限されたメモリ226は、安全なコプロセッサ222内のプロセッサ224によってのみアクセスされてもよい。
【0033】
図3をこれから参照すると、図3は、暗号化されたプログラムを安全に実行する方法の実施形態のトップレベルのフロー図を図示している。ステップ310では、暗号化されたプログラムを記憶させるように構成されているホストから暗号化されたプログラムが受け取られる。このホストは、暗号化されたコンテンツを記憶しているディスクを受け入れるようにさらに構成されている。次に、ステップ320において、ディスク上に含まれている情報が受け取られる。この情報は、キーを計算するといったあるタスクのために後に利用されてもよい。いくつかの実施形態では、この情報は、ディスクに特有な情報を含んでいてもよい。さらに他の実施形態では、情報は、ビデオ上に記憶されている実際のマルチメディアコンテンツ(例えば、高精細ビデオ)をさらに含んでいてもよい。ステップ330では、ステップ310において受け取られた、暗号化されたプログラムが安全なコプロセッサ上で解読される。実行される前に、ステップ340において、解読されたプログラムは、制限されたアクセスRAMの中に記憶される。制限されたアクセスRAMの使用は、プログラム内に組み込まれている感知可能な情報の認証されていないアクセスを防ぐために実現されるさまざまな安全対策のうちの1つである。次に、ステップ350において、解読されたプログラムが、出力を発生させるために実行される。いくつかの実施形態では、この出力は、単に、プログラムの実行中に計算されたキーを含んでいてもよい。他の実施形態では、出力は、ディスク上に記憶されている実際のビデオ/オーディオコンテンツを含んでいてもよい。最後に、この出力は、ホストに返信される(ステップ360)。ディスク上に記憶されているタイトルコンテンツの解読を行うために、出力は、ホストが利用するキーを含んでいてもよい。出力がビデオ/オーディオコンテンツを含む場合、デジタルデータの安全な送信のために、HDCP標準規格のようなDRM安全対策を組み込んでいるデバイスに、コンテンツが出力されてもよいことに留意すべきである。
【0034】
これから図4を参照すると、図4は、図2中の代替実施形態の方法を実行する図1中のシステムの実施形態を図示している詳細なデータフロー図を図示している。図4から図6において説明した実施形態は単なる実行可能なインプリメンテーションの例であり、多くの変更および修正は、本開示の原理から逸脱することなく、これらの実施形態に対して行われてよいことを強調する。410におけるホストは、表示されるコンテンツを含むディスク(例えば、ブルーレイディスク、HD DVD、DVD)を受け入れる。ディスクコンテンツ420は、ディスク情報424、および高精細ビデオのようなビデオ/オーディオコンテンツ422の双方を含んでいてもよい。ホスト410上に記憶されている暗号化されたプログラム414は、プログラムの安全な解読および実行のために、安全なコプロセッサ412に転送される(ブロック418)。いくつかの実施形態では、AACSキー416のような感知可能な情報が、暗号化されたプログラム414の中に埋め込まれていてもよい。AACSキーは、AACSライセンス局によって与えられたキーであってもよい。マルチメディアコンテンツの認証されていない配布の可能性を仮定して、AACSキー416を送るプログラム414は、暗号化されていることを強調する。
【0035】
解読プロセスは、図1に示した処理ユニット142によって実行されてもよい。プログラムが解読されると、プログラムは、制限されたアクセスRAN146中に記憶される。プログラムが実行される前に、ディスク情報424は、安全なコプロセッサ412に送られて、出力を発生させるためにプログラムによって利用されてもよい。いくつかの実施形態では、ディスク情報424は、AACS標準規格のもとで規定されているMKBを含んでいてもよい。上記に説明したように、MKB、すなわちメディアキーブロックによって、対応プレイヤー(すなわち、AACS LAによるライセンスが組み込まれているプログラム)は、プログラム中に埋め込まれているキーを使用して、「シークレット」キーを計算することができる。
【0036】
図5を簡単に参照すると、図5は、AACS保護スキームの高レベルな図を図示している。AACSスキームは、アドバンスド暗号化標準規格(AES)を使用して、1つ以上のタイトルキーに基づいてコンテンツを暗号化する。これらのタイトルキーは、メディアキーと、ディスクに関係するボリュームIDを含む他の情報の部分との組み合わせから得られる。たとえ、認証されていないユーザがシステムに不正変更を加えて、タイトルキーのうちの1つをなんとか取り出したとしても、ユーザは、コンテンツの一部分しか解読することができない。AACS標準規格にしたがった実際の解読プロセスは本開示の範囲から逸脱しているが、AACSにしたがってキーの計算を行うプログラムは、完全に暗号化されており、認証されていない不正操作および監視に対して保護されるように設計されていることを強調する。
【0037】
図4に戻って参照すると、プログラムを実行して、キーを発生させる(ブロック428)。次に、キー430は、ディスク上でタイトルコンテンツを解読するために、ホスト410に返信される。以下で記述するように、コンテンツ自体の解読およびデコード(ブロック434)は、インプリメンテーションに基づいて、安全なコプロセッサまたはホスト410のいずれによって行われてもよい。この複雑性を最小限にするために、安全なコプロセッサ412は、コンテンツの解読およびデコードをホスト410にオフロードしてもよく、ホスト410は、より多くのコンピューティングリソースを含んでいてもよい。最後に、コンテンツ436は、モニタ438のようなディスプレイに出力されてもよい。
【0038】
図6は、図2中のさらに別の代替実施形態の方法を実行する図1中のシステムの実施形態を図示しているデータフロー図である。さらなる安全対策として、いくつかの実施形態は、プログラムが実行される前に行われる中間ステップを必要とするかもしれない。解読のために、暗号化されたプログラムが安全なコプロセッサ612に送られた後に、データ614が、ホスト610から安全なコプロセッサ612に送られる。安全なコプロセッサ612が解読されたプログラムを実行する前に、安全なコプロセッサ612において、データは、有効性の確認がされている必要がある。いくつかの実施形態では、データ614は、例えば、約100MBの多量の予め規定されたデータを含んでいてもよい。データが多量のデータを含んでいることによって、ユーザは多量のデータをダウンロードする必要があるので、認証されていないユーザが再生システムに不正操作をすることに対し、さらなる抑止力として機能する。多くのブロックのデータ614が受け取られたとき、安全なコプロセッサ612が、データの有効性確認プロセス616を実行してもよい。非限定的な例として、データの有効性確認プロセス616は、データ614のチェックサムを計算することと、計算したチェックサム値を暗号化されたプログラム中に記憶されている値と比較することとを単に含んでいてもよい。2つの値の整合がとれない場合に、安全なコプロセッサ612は、プログラムを実行しない。
【0039】
暗号化されたプログラムが解読されている間に、および多くのブロックのデータ614が安全なコプロセッサによって受け取られている間に、さらなる安全対策として、バックグラウンドでプロセスが実行している間、サイバーリンクマークのような透かし模様618が、ディスプレイ620上で表示されてもよい。認証されていないユーザがプログラムになんとかアクセスして、プログラムを配布しようとした場合、この透かし模様は、プログラムのオーナーが誰であるかを公衆に通知する。
【0040】
図7は、図2中のさらなる別の実施形態の方法を実行する図1中のシステムの実施形態を図示しているデータフロー図である。先に簡単に説明したように、コンテンツ自体の解読およびデコードは、望みのインプリメンテーションに基づいて、安全なコプロセッサ712またはホスト710のいずれかによって行われてもよい。この複雑性を最小限にするために、安全なコプロセッサ712は、コンテンツの解読およびデコードをホスト710にオフロードしてもよく、ホスト710は、より多くのコンピューティングリソースを含んでいてもよい。いくつかの実施形態では、安全なコプロセッサ712は、ホスト710に差し込むグラフィックカードのような、別のボード上で実現されてもよい。設計のコストおよび複雑性を減少させるために、コンテンツの解読およびデコードは、例えば、PCのようなホスト710上で行われてもよい。しかしながら、安全性を最大限にするために、コンテンツの最終的な解読およびデコードは、安全なコプロセッサ712によって行われ、モニタのようなディスプレイに出力されてもよい。ディスプレイは、例えば、HDCP標準規格に準拠している安全なインターフェイスを通して、安全なコプロセッサ712に直接結合されていてもよい。コンテンツの解読およびデコードがホスト710によって行われる実施形態では、安全なコプロセッサ712は、認証されていないアクセスに対してホストを監視するようにさらに構成されていてもよい。
【0041】
他の安全対策が、安全なコプロセッサの中で同様に実現されてもよい。例えば、安全なコプロセッサは、プログラムの実行を監視するために使用される独立した外部クロックを備えていてもよい。いくつかのケースでは、認証されていないユーザが、データを読もうとして、プログラムの実行を停止させることによって、保護されたプログラムにアクセスしようと試みる可能性がある。実行中にプログラムが使用するクロックが何らかの方法で変更された場合、独立したクロックは参照として機能し、そして何らかのプロセスの停止を検出するために使用される。
【0042】
安全なコプロセッサは、プログラムのコード/データを変更させないようにするメモリ監視機能も実現してもよい。認証されていないアクセスが検出された場合、安全なコプロセッサは、プログラムによって発生されている何らかの出力(例えば、キー)を自動的に削除するように構成されていてもよい。
【0043】
最後に、先に記述した実施形態は、可能性あるインプリメンテーションの単なる例であることを改めて強調する。本開示の原理から逸脱することなく、先に記述した実施形態に対して多くの変更および修正を実行してもよい。すべてのこのような変更および修正は、本開示の範囲内であるここに含まれ、特許請求の範囲によって保護されるべきであることが意図されている。
【図面の簡単な説明】
【0044】
【図1】図1は、暗号化されたプログラムを安全に実行するシステムの実施形態の高レベルな図を図示している。
【図2】図2は、暗号化されたプログラムを安全に実行させる方法の実施形態のトップレベルのフロー図を図示している。
【図3】図3は、暗号化されたプログラムを安全に実行するシステムの例示的な実施形態を図示しているブロック図である。
【図4】図4は、図2中の方法の代替実施形態を実行する図1中のシステムの実施形態を図示しているデータフロー図である。
【図5】図5は、AACS保護システムの高レベルな図である。
【図6】図6は、図2中の代替実施形態の方法を実行する図1中のシステムの実施形態を図示しているデータフロー図である。
【図7】図7は、図2中の代替実施形態の方法を実行する図1中のシステムの実施形態を図示しているデータフロー図である。

【特許請求の範囲】
【請求項1】
暗号化されたソフトウェアを実行する方法において、
暗号化されたプログラムを記憶させるように構成され、暗号化されたコンテンツを記憶しているディスクを受け入れるようにさらに構成されているホストから暗号化されたプログラムを受け取ることと、
ディスク上に含まれている情報を受け取ることと、
処理ユニットによって、安全なコプロセッサ上で、暗号化されたプログラムを解読することと、
処理ユニットに結合され、処理ユニットによってのみアクセス可能である制限されたアクセスRAM中に解読されたプログラムを記憶させることと、
プライベートRAM中に記憶された解読されたプログラムを実行して、出力を発生させることと、
出力をホストに送ることとを含む方法。
【請求項2】
出力を利用して、ディスク上に記憶されている暗号化されたコンテンツを解読することをさらに含む請求項1記載の方法。
【請求項3】
出力を発生させることは、プログラム中に埋め込まれているデバイスキーを使用して、ディスク上に埋め込まれているデータからキーを計算することを含む請求項1記載の方法。
【請求項4】
出力を発生させることは、
予め定められた量のデータをホストから受け取ることと、
データの有効性を確認するために、受け取ったデータに関係するチェックサムを計算することと、
データの有効性が確認された場合のみに、プログラム中に埋め込まれているデバイスキーを使用して、ディスク上に埋め込まれているデータからキーを計算することとを含む請求項1記載の方法。
【請求項5】
出力を発生させることは、予め定められた量のデータをホストから受け取っている間に、および受け取ったデータに関係するチェックサムを計算している間に、透かし模様をディスプレイ上に表示することをさらに含む請求項4記載の方法。
【請求項6】
出力を発生させることは、キーを使用して、ディスク上に記憶されているコンテンツを解読することをさらに含む請求項3記載の方法。
【請求項7】
出力を使用して、ディスク上に記憶されている暗号化されたコンテンツを解読するステップが停止された場合に、出力が自動的に削除されるように、出力を使用して、ディスク上に記憶されている暗号化されたコンテンツを解読するステップを監視することをさらに含む請求項2記載の方法。
【請求項8】
コンピュータ実行可能な方法を実行するためのコンピュータプログラムが記憶されているコンピュータ読取可能な媒体において、
コンピュータ実行可能な方法は、
暗号化されたプログラムを記憶させるように構成され、暗号化されたコンテンツを記憶しているディスクを受け入れるようにさらに構成されているホストから暗号化されたプログラムを送ることと、
ディスク上に含まれているコンテンツを送ることと、
処理ユニットによって、暗号化されたプログラムを解読することと、
処理ユニットに結合され、処理ユニットによってのみアクセス可能である制限されたアクセスRAM中に解読されたプログラムを記憶させることと、
プライベートRAM中に記憶された解読されたプログラムを実行して、出力を発生させることと、
出力をホストに通信することとを含むコンピュータ読取可能な媒体。
【請求項9】
ソフトウェアを安全に実行するシステムにおいて、
アクセスされる暗号化されたコンテンツを含んでいるディスクを受け入れ、ディスク上のコンテンツにアクセスするために使用される暗号化されたプログラムを記憶させるように構成されているホストと、
ホストに通信可能に結合され、暗号化されたプログラムを受け取り、暗号化されたプログラムを解読して実行し、プログラムによって発生された出力をホストに返信するように構成されている安全なコプロセッサとを具備するシステム。
【請求項10】
出力は、ディスク上に記憶されている暗号化されたコンテンツを解読するためにホストによって使用される少なくとも1つのキーを含む請求項9記載のシステム。
【請求項11】
出力は、ディスクのコンテンツを含み、コンテンツは安全なコプロセッサによって解読されてデコードされている請求項9記載のシステム。
【請求項12】
暗号化されたプログラムは、少なくとも1つのキーを計算するために使用されるデバイスキーを含み、少なくとも1つのキーは、ホストに送られるボリュームキーを含み、ホストは、ボリュームキーを使用して、ディスク上に記憶されている暗号化されたコンテンツを解読する請求項9記載のシステム。
【請求項13】
安全なコプロセッサは、処理ユニットと、処理ユニットに結合されているプライベートRAMとからなり、プライベートRAMは、解読されたプログラムを記憶するように動作し、処理ユニットによってのみアクセス可能である請求項9記載のシステム。
【請求項14】
安全なコプロセッサの処理ユニットは、プロプラエタリ命令セットを実行する請求項13記載のシステム。
【請求項15】
暗号化されたプログラムは、コンテンツを配布するためのアドバンスドアクセスコンテンツシステム(AACS)標準規格を組み込んでおり、デバイスキーは、暗号化されたプログラムの中に埋め込まれ、ディスクから情報を取り出し、暗号化されたボリュームキーを発生させるために安全なプロセッサによって使用され、ボリュームキーは、ディスクのコンテンツを解読するために使用される請求項9記載のシステム。
【請求項16】
安全なコプロセッサは、予め定められた量のデータをホストから受け取るように構成され、
プログラムは、データの有効性を確認するために、受け取ったデータに関係するチェックサムを計算するように構成され、
暗号化されたプログラムの中に埋め込まれているチェックサムとチェックサムが整合する場合のみに、暗号化されたプログラムは実行を継続し、
暗号化されたプログラムの中に埋め込まれているチェックサムとチェックサムが整合しない場合、ディスク上に記憶されているコンテンツへのアクセスが拒否されるように、暗号化されたプログラムは実行を中止する請求項9記載のシステム。
【請求項17】
予め定められた量のデータを受け取って、ホストから受け取った予め定められた量のデータの有効性の確認をしている間、予め定められた透かし模様をディスプレイ上に発生させるようにプログラムが構成されている請求項16記載のシステム。
【請求項18】
ホストが広帯域デジタルコンテンツ保護(HDCP)標準規格に準拠していることを安全なコプロセッサが検出した場合のみに、安全なコプロセッサがボリュームキーを発生させる請求項15記載のシステム。
【請求項19】
安全なプロセッサは、ディスク上に記憶されている暗号化されたコンテンツを解読し、コンテンツをディスプレイに送信するようにさらに構成され、コンテンツの送信はHDCP標準規格にしたがって実行される請求項9記載のシステム。
【請求項20】
データを解読している間にホストが停止されるか否かを安全なプロセッサが検出するように、安全なプロセッサは、ディスク上に記憶されているコンテンツを解読するホストを監視し、ホストが停止されていることが検出されると、安全なプロセッサは、コンテンツを解読するためにホストによって使用される出力を消去する請求項12記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2008−263577(P2008−263577A)
【公開日】平成20年10月30日(2008.10.30)
【国際特許分類】
【外国語出願】
【出願番号】特願2007−200808(P2007−200808)
【出願日】平成19年8月1日(2007.8.1)
【出願人】(505187699)サイバーリンク・コーポレーション (6)
【Fターム(参考)】