(57)【特許請求の範囲】
【請求項１】
モバイルデバイスによって動画コンテンツを表示するように、ユーザオペレーションシステム（「ＯＳ」）およびＯＳページテーブルを有する仮想マシン（「ＶＭ」）からリクエストを受ける段階と、
前記動画コンテンツを仮想マシンモニタ（「ＶＭＭ」）に転送する段階と、
前記動画コンテンツを前記ＶＭＭによって解読し、解読された前記動画コンテンツを生成する段階と、
レンダリングされる前記解読された動画コンテンツを、前記ＶＭＭを用いてビデオメモリ内に格納する段階と、
前記ビデオメモリ内の前記解読された動画コンテンツに対応するポインタの示すアクセス先が、前記解読された動画コンテンツ以外のデータを保持するメモリロケーションとなるよう、前記ＶＭＭによって前記ＯＳページテーブルを更新する段階と
を備える方法。
【請求項２】
前記ＶＭＭによって前記ＶＭからのＤＭＡ（ダイレクトメモリアクセス）構成コマンドをモニタリングする段階と、
検知されたＤＭＡ構成コマンドが前記解読された動画コンテンツを保持する前記ビデオメモリ内のアドレスを含むかどうか、前記ＶＭＭを用いて決定する段階と、
前記アドレスが前記解読された動画コンテンツを保持する場合、前記ビデオメモリ内の前記アドレスへのアクセスを阻止する段階と
をさらに備える、請求項１に記載の方法。
【請求項３】
前記ビデオメモリ内の前記アドレスへのアクセスが阻止された場合、前記ＶＭに対しＤＭＡの失敗をシグナリングする段階をさらに備える、請求項２に記載の方法。
【請求項４】
前記動画コンテンツの表示が許可されているか保護ポリシーに基づいて決定する段階をさらに備える、請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記動画コンテンツが解読された動画コンテンツを有するかどうか決定する段階をさらに備える、請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記動画コンテンツを復号化し、前記モバイルデバイスによって前記復号化された動画コンテンツを表示する段階をさらに備える、請求項１から５のいずれか１項に記載の方法。
【請求項７】
前記ＶＭがＤＲＭフロントエンドを有し、前記ＶＭＭが動画保護モジュールおよびＤＲＭモジュールを有する、請求項１から６のいずれか１項に記載の方法。
【請求項８】
コンピュータに、
モバイルデバイスによって動画コンテンツを表示するように、ユーザオペレーションシステム（「ＯＳ」）およびＯＳページテーブルを有する仮想マシン（「ＶＭ」）からリクエストを受ける段階と、
前記動画コンテンツを仮想マシンモニタ（「ＶＭＭ」）に転送する段階と、
前記動画コンテンツを前記ＶＭＭによって解読し、解読された前記動画コンテンツを生成する段階と、
レンダリングされる前記解読された動画コンテンツを、前記ＶＭＭを用いてビデオメモリ内に格納する段階と、
前記ビデオメモリ内の前記解読された動画コンテンツに対応するポインタの示すアクセス先が、前記解読された動画コンテンツ以外のデータを保持するメモリロケーションとなるよう、前記ＶＭＭによって前記ＯＳページテーブルを更新する段階と
を実行させるためのプログラム。
【請求項９】
前記ＶＭＭによって前記ＶＭからのＤＭＡ（ダイレクトメモリアクセス）構成コマンドをモニタリングする段階と、
検知されたＤＭＡ構成コマンドが前記解読された動画コンテンツを保持する前記ビデオメモリ内のアドレスを含むかどうか、前記ＶＭＭを用いて決定する段階と、
前記アドレスが前記解読された動画コンテンツを保持する場合、前記ビデオメモリ内の前記アドレスへのアクセスを阻止する段階と
をさらに実行させる、請求項８に記載のプログラム。
【請求項１０】
前記ビデオメモリ内の前記アドレスへのアクセスが阻止された場合、前記ＶＭに対しＤＭＡの失敗をシグナリングする段階をさらに実行させる、請求項９に記載のプログラム。
【請求項１１】
前記動画コンテンツの表示が許可されているか保護ポリシーに基づいて決定する段階をさらに実行させる、請求項８から１０のいずれか１項に記載のプログラム。
【請求項１２】
前記動画コンテンツが解読された動画コンテンツを有するかどうか決定する段階をさらに実行させる、請求項８から１１のいずれか１項に記載のプログラム。
【請求項１３】
前記動画コンテンツを復号化し、前記モバイルデバイスによって前記復号化された動画コンテンツを表示する段階をさらに実行させる、請求項８から１２のいずれか１項に記載のプログラム。
【請求項１４】
プロセッサと、
ディスプレイと、
ユーザオペレーションシステム（「ＯＳ」）およびＯＳページテーブル、ならびに仮想マシンモニタ（「ＶＭＭ」）を有する仮想マシン（「ＶＭ」）を格納するメモリと
を備え、
前記ＶＭおよび前記ＶＭＭが前記プロセッサ上で実行され、前記ＶＭが動画コンテンツを表示するようリクエストを受けたとき、
前記ＶＭは前記プロセッサに、
前記動画コンテンツを前記ＶＭＭに転送する段階
を実行させ、
前記ＶＭＭは前記プロセッサに、
前記動画コンテンツを解読し、解読された前記動画コンテンツを生成する段階と、
レンダリングされる前記解読された動画コンテンツを、ビデオメモリ内に格納する段階と、
前記ビデオメモリ内の前記解読された動画コンテンツに対応するポインタの示すアクセス先が、前記解読された動画コンテンツ以外のデータを保持するメモリロケーションとなるよう、前記ＯＳページテーブルを更新する段階と
を実行させる、モバイルデバイス。
【請求項１５】
前記ＶＭＭは前記プロセッサに、
前記ＶＭからのＤＭＡ（ダイレクトメモリアクセス）構成コマンドをモニタリングする段階と、
検知されたＤＭＡ構成コマンドが前記解読された動画コンテンツを保持する前記ビデオメモリ内のアドレスを含むかどうか決定する段階と、
前記アドレスが前記解読された動画コンテンツを保持する場合、前記ビデオメモリ内の前記アドレスへのアクセスを阻止する段階と
をさらに実行させる、請求項１４に記載のモバイルデバイス。
【請求項１６】
前記ＶＭＭは前記プロセッサに、前記ビデオメモリ内の前記アドレスへのアクセスが阻止された場合、前記ＶＭに対しＤＭＡの失敗をシグナリングする段階をさらに実行させる、請求項１５に記載のモバイルデバイス。
【請求項１７】
前記ＶＭおよび前記ＶＭＭの少なくともいずれかが前記プロセッサに、前記解読されたコンテンツの表示が許可されているか保護ポリシーに基づいて決定する段階をさらに実行させる、請求項１４から１６のいずれか１項に記載のモバイルデバイス。
【請求項１８】
前記ＶＭが前記プロセッサに、前記動画コンテンツが解読された動画コンテンツを有するかどうか決定する段階をさらに実行させる、請求項１４から１７のいずれか１項に記載のモバイルデバイス。
【請求項１９】
前記ＶＭおよび前記ＶＭＭの少なくともいずれかが前記プロセッサに、
前記動画コンテンツを復号化する段階と、
前記ディスプレイに前記復号化された動画コンテンツを表示する段階と
をさらに実行させる、請求項１４から１８のいずれか１項に記載のモバイルデバイス。
【請求項２０】
前記ＶＭがＤＲＭフロントエンドを含み、前記ＶＭＭが動画保護モジュールおよびＤＲＭモジュールを含む、請求項１４から１９のいずれか１項に記載のモバイルデバイス。
【請求項２１】
前記モバイルデバイスが、モバイルインターネットデバイス、スマートフォン、携帯メディアプレーヤ、パーソナルデジタルアシスタント、携帯型ゲーム機、ウルトラモバイルＰＣ、ネットブック、およびノートブックコンピュータからなる群より選択される、請求項１から７のいずれか１項に記載の方法。
【請求項２２】
前記モバイルデバイスが、モバイルインターネットデバイス、スマートフォン、携帯メディアプレーヤ、パーソナルデジタルアシスタント、携帯型ゲーム機、ウルトラモバイルＰＣ、ネットブック、およびノートブックコンピュータからなる群より選択される、請求項８から１３のいずれか１項に記載のプログラム。
【請求項２３】
前記モバイルデバイスが、モバイルインターネットデバイス、スマートフォン、携帯メディアプレーヤ、パーソナルデジタルアシスタント、携帯型ゲーム機、ウルトラモバイルＰＣ、ネットブック、およびノートブックコンピュータからなる群より選択される、請求項１４から２０のいずれか１項に記載のモバイルデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、仮想化を用いた動画コンテンツの保護に関する。
【背景技術】
【０００２】
モバイルコンピューティングデバイスは、映画などの動画コンテンツを表示する。動画コンテンツは、プレミア動画コンテンツ（プレミア動画コンテンツ）を含み、暗号化などによって保護され得る。典型的には、保護された動画コンテンツは、表示の前に、解読される。解読された、すなわち保護を解除された動画コンテンツは、不正にコピーされ得る。
【図面の簡単な説明】
【０００３】
本願発明の特徴および利点は、添付の図面を参照し、以下の本願発明の実施形態の詳細な説明によって明らかになる。
【図１】図１は、本願発明と互換性のある、上位のシステムを示すブロック図である。
【図２】図２は、図１のシステムを示し、本願発明と互換性のある、仮想マシン、仮想マシンモニタ、および／または回路の構成要素を例示する。
【図３】図３は、本願発明と互換性のある、仮想マシンによる動画コンテンツへの不正アクセスを阻止する動作の例を示す、フローチャートである。
【図４】図４は、本願発明と互換性のある、動画コンテンツへのダイレクトメモリアクセスを阻止する動作の例を示す、フローチャートである。
【発明を実施するための形態】
【０００４】
コンピュータデバイスにおける、プレミア動画コンテンツの不正コピーの阻止における課題は、復号化および表示を目的として、解読などによって保護が解除された後に、プレミア動画コンテンツの不正コピーをいかに阻止するかということである。このような課題が存在する主な理由は、以下のとおりである。つまり、プレミア動画コンテンツは、暗号化などによって通常保護されているが、表示を目的として、解読などによって保護が解除され、表示される前に、その解読された動画コンテンツがデバイス内のメモリに存在するかもしれない、ということである。解読された動画コンテンツをコピーしようとする試みは、コンピュータデバイスのプロセッサ上で動作する悪意のある、および／または悪質なアプリケーションなどのソフトウェアに起因するかもしれず、および／または解読された動画コンテンツを保持するメモリロケーションへのダイレクトメモリアクセスに起因するかもしれない。
【０００５】
例えば、映画などの、プレミア動画コンテンツを表示するようコンピュータデバイスは構成されている。プレミア動画コンテンツは、不正コピーを阻止する目的で、暗号化などにより保護されている。プレミア動画コンテンツが選択され表示されるとき、解読などにより保護が解除され、表示の前にビデオメモリ、すなわちフレームバッファに格納される。追加的な阻止策がとられなければ、解読された動画コンテンツはビデオメモリから読み取られ、その後コピーされ得る。
【０００６】
映画、すなわち動画ファイルは、コンテンツフレームなどの１以上のフレーム内に配置されたコンテンツを含み得る。コンテンツフレームは、動画コンテンツフレームと音声コンテンツフレームとの両方を含む。動画ファイルは、ヘッダーなどのメタデータを含む。ここでメタデータは、動画ファイルを記述するべく構成されたものである。例えば、メタデータは、動画ファイル中の動画コンテンツフレームおよび音声コンテンツフレームのロケーションを示すインジケータを含む。さらにメタデータは、動画コンテンツフレームおよび音声コンテンツフレームの両方の同期情報を含んでもよい。例えば同期情報は、各音声フレームおよび各動画フレームに対応する時間情報を含む。一般的に、メタデータを保護する必要性はなく、むしろ保護の対象はコンテンツフレームである。
【０００７】
保護プロトコル、すなわち暗号化プロトコルおよび解読プロトコルは、ＤＥＳ、ＡＥＳ、ＷＡＰ、ＷＥＰおよび／またはＴＬＳを含むが、これらに限られるわけではない。他の保護プロトコルを用いることも出来る。ＤＥＳプロトコルは、Ｎａｔｉｏｎａｌ  Ｂｕｒｅａｕ  ｏｆ  Ｓｔａｎｄａｒｄｓ（現在の名称は、Ｎａｔｉｏｎａｌ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｓｔａｎｄａｒｄｓ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｙ（「ＮＩＳＴ」））によってＦＩＰＳ  ｓｔａｎｄａｒｄ  ＦＩＰＳ  ＰＵＢ  ４６と名付けられ、１９７６年に発行されたＤａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄに準拠しており、互換性がある。ＤＥＳプロトコルは、その後のバージョンにも準拠しており、互換性がある。ＡＥＳプロトコルは、ＮＩＳＴによってＵ．Ｓ．ＦＩＰＳ  ＰＵＢ  １９７（ＦＩＰＳ  １９７）と名付けられ、２００１年１１月２６日に発行されたＡｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄに準拠しており、互換性がある。ＡＥＳプロトコルは、その後のバージョンにも準拠しており、互換性がある。
【０００８】
本願発明は、モバイルデバイスによる、プレミア動画コンテンツの不正コピーを阻止するシステムおよび方法を提供する。当該方法は、仮想化技術を用い、プレミア動画コンテンツを（確実に）解読し、加えて、解読された動画コンテンツへの不正アクセスを阻止する。典型的に仮想化技術は、複数の処理が、すなわち複数の仮想マシン（「ＶＭ」）が、コンピュータデバイスを共有するのに用いられる。仮想マシンモニタ（「ＶＭＭ」）とも呼ばれるハイパーバイザーは、プロセッサおよび／または入出力装置などのコンピュータデバイス回路の共有を管理する。各ＶＭは、コンピュータデバイスを共有していることには気づかない。ＶＭＭは、あるＶＭが利用しているリソースに対し、同じコンピュータデバイス上で実行される他のＶＭがアクセス出来ないよう、隔離および／または保護を行う。ＶＭＭは、ＶＭと回路との間の「レイヤー」で動作する。
【０００９】
本明細書中で説明するように、ハイパーバイザーは、アプリケーション（有害な、若しくは悪質なアプリケーションなど）および／または悪質なＯＳが、解読された動画コンテンツをビデオメモリから読み出すのを阻止する。ハイパーバイザーは、ビデオメモリ内の解読された動画コンテンツへのダイレクトメモリアクセスを阻止する。利点の１つは、当該方法が、ハイパーバイザーを用いて保護を行い、当該保護に特別なハードウェアを要しないことである。モバイルデバイスの中には、ハードウェアを用いた保護を行わないものもある。ハードウェアによる保護としては、本願発明の出願人であるＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ（米国カリフォルニア州サンタクララ市）が提供するＩｎｔｅｌ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ  ｆｏｒ  Ｄｉｒｅｃｔｅｄ  Ｉ／Ｏ（「ＶＴ−ｄ」）がある。
【００１０】
ユーザオペレーションシステム（「ＯＳ」）は、モバイルデバイス上のＶＭで実行される。ハイパーバイザーは、ユーザＯＳおよびアプリケーションを含むＶＭによるモバイルデバイス内のリソースへのアクセスを管理するべく、モバイルデバイス上で実行される。動画コンテンツは、ユーザＯＳによってアクセス可能なメモリに格納されてよい。プレミア動画コンテンツがユーザによって選ばれたことに応答して、ハイパーバイザーは動画コンテンツを解読し、ビデオメモリへ解読された表示用の動画コンテンツを転送する。当業者によって理解されるように、ユーザＯＳは、ユーザＯＳが有するページテーブルを用いてメモリにアクセスする。仮想化システム内においてハイパーバイザーは、ユーザの仮想メモリを物理メモリにマッピングするページテーブルを有する。本明細書に説明するように、ハイパーバイザーは、ビデオメモリが解読された動画コンテンツを保持しているとき、解読された動画コンテンツ以外の（偽データなどの）他のデータがアクセス先となるよう、ＯＳページテーブルを書き換える。このようにして、ＶＭで実行されるユーザＯＳおよび／またはアプリケーションによる、ビデオメモリ内の解読された動画コンテンツへのアクセスが阻止される。よって、解読された動画コンテンツにアクセスしようとする試みによって得られるのは、解読された動画コンテンツ以外の偽データなどとなる。
【００１１】
さらにハイパーバイザーは、解読された動画コンテンツをダイレクトメモリアクセス（「ＤＭＡ」）からも保護し得る。本明細書に説明するように、ＤＭＡが開始されると、ＤＭＡ構成コマンドが、デバイスドライバなどユーザＯＳから、ＤＭＡを実行しようとするデバイスへと発行される。ＤＭＡ構成コマンドは、ＤＭＡが読み出そうとするデータに対応するアドレスなどを含む。本明細書に説明するように、ハイパーバイザーは、ＤＭＡコマンドをモニタリングし、解読された動画コンテンツを保持するビデオメモリへのＤＭＡアクセスを阻止する。このようにして、解読された動画コンテンツへのＤＭＡは、ハードウェアによるセキュリティを必要とせず、ハイパーバイザーによって阻止され得る。
【００１２】
図１および２は、本願発明と互換性のあるシステム１００を示す。例えば、システム１００は、モバイルデバイスであってよい。本明細書で用いられるように「モバイルデバイス」とは、インターネットを含むネットワークにアクセス可能なあらゆるモバイルデバイスを含む。例えば、モバイルデバイスは、インターネットへの無線アクセスを行う。当業者には理解されるように、以下に示すカテゴリは、互いに排他的なものではなく、重複するものもある。さらに、代表例のみを列挙しており、あらゆるものを網羅しているわけではない。例えば、モバイルデバイスは、一般的にインターネットへの無線アクセス、エンターテイメント、情報、および／またはロケーションベースのサービスをユーザに提供する「モバイルインターネットデバイス」であってよい。モバイルインターネットデバイスの例としては、Ａｐｐｌｅ  Ｃｏｒｐｏｒａｔｉｏｎが提供するｉＰａｄ、Ｎｏｋｉａから提供されるＮｏｋｉａ  ８１０  Ｉｎｔｅｒｎｅｔ  Ｔａｂｌｅｔ、Ｇｉｇａｂｙｔｅ  Ｔｅｃｈｎｏｌｏｇｙ  Ｃｏｒｐｏｒａｔｉｏｎから提供されるＧｉｇａｂｙｔｅ  Ｍ５２８  ＭＩＤ、およびＹｕｋｙｕｎｇ  Ｔｅｃｈｎｏｌｏｇｉｅｓ  Ｃｏｒｐｏｒａｔｉｏｎから提供されるＶｉｌｉｖ  ＭＩＤが挙げられる。他の例では、モバイルデバイスは、無線電話技術および／またはインターネットへの無線アクセス、情報、および／またはロケーションベースのサービスをユーザに提供する「スマートフォン」であってよい。スマートフォンの例としては、Ａｐｐｌｅ  Ｃｏｍｐｕｔｅｒ  Ｃｏｒｐｏｒａｔｉｏｎから提供されるｉＰｈｏｎｅ、Ｒｅｓｅａｒｃｈ  ｉｎ  Ｍｏｔｉｏｎから提供されるＢｌａｃｋｂｅｒｒｙ、ＨＴＣ  Ｃｏｒｐｏｒａｔｉｏｎから提供されるＨＴＣ  Ｔｏｕｃｈ、およびＭｏｔｏｒｏｌａ，Ｉｎｃ．から提供されるＭｏｔｏｒｏｌａ  Ｄｒｏｉｄなどが挙げられる。さらに他の例では、モバイルデバイスは、一般的に音声および／または動画コンテンツなどのメディアコンテンツをユーザに対し再生する「携帯メディアプレーヤ」であってよい。携帯メディアプレーヤの例としては、Ａｒｃｈｏｓ，Ｉｎｃ．から提供されるＡｒｃｈｏｓ「Ｇｅｎ  ５」携帯メディアプレーヤ、およびＣｒｅａｔｉｖｅ  Ｔｅｃｈｎｏｌｏｇｙ，ＬＴＤ．から提供されるＺｅｎ携帯メディアプレーヤが挙げられる。加えて、モバイルデバイスは、携帯電話、パーソナルデジタルアシスタント（「ＰＤＡ」）、携帯型ゲーム機（任天堂のＤＳ、ソニーのプレーステーションポータブル（「ＰＳＰ」）など）、「ウルトラモバイルＰＣ」、「ネットブック」（小型ノートブック、ウルトラポータブルノートブックおよび／またはサブノートブックなど）、ノートブックコンピュータ、および／または当業者に知られる他のデバイスを含む。モバイルデバイスは、映画などを含むがこれに限定されない動画コンテンツを表示、すなわち再生する。動画コンテンツは、保護された、プレミア（すなわち暗号化された）動画コンテンツであってよく、または、不正アクセスを阻止しなくてもよい（すなわち暗号化されていない）動画コンテンツ（ノンプレミア動画コンテンツ）であってよい。
【００１３】
図１は、上位のシステムとしてのシステム１００を示すブロック図である。図１は、ハイパーバイザーとしての「ＶＭＭ」１１０と仮想マシンとしての「ＶＭ」１１２との間の処理の分担を示す。システム１００は、システムメモリ１０４に接続された回路１０２を含む。ハイパーバイザー１１０は、ＶＭ１１２と回路１０２との間をインターフェース接続し、すなわちＶＭ１１２による回路１０２へのアクセスを管理する。システムメモリ１０４は、ハイパーバイザー１１０およびＶＭ１１２を含む。例えば、ハイパーバイザー１１０は、本明細書に説明するように、プレミア動画コンテンツの保護を解除する（解読などを行う）ＤＲＭモジュール１１４を含む。「ＤＲＭ」は、「デジタル著作権管理」を意味し、本明細書では、プレミアコンテンツを保護する、すなわちプレミアコンテンツ（動画および／または音声コンテンツなど）への不正アクセスおよびそれらコンテンツの不正コピーを阻止するアクセスコントロール技術に対応して使用される。ＶＭ１１２は、ユーザオペレーションシステムとしての「ユーザＯＳ」１１６および１以上のアプリケーション１１８を含んでよい。例えば、アプリケーション１１８は動画プレーヤを含んでよい。
【００１４】
図２は、本願発明における実施形態に係るシステム１００を示すブロック図である。回路１０２は、プロセッサ（「ＣＰＵ」）１２０、ディスプレイアダプタ１２２、およびディスプレイ１２４を含む。回路１０２は、入出力回路１２６および／または記憶装置１２８を含んでよい。ＣＰＵ１２０は、複数の中央演算処理装置（「コア」という場合がある）を含んでよく、各コアは、複数のスレッドを実行してよい。ＣＰＵ１２０は、ハイパーバイザー１１０を実行し、かつ／あるいはユーザＯＳ１１６および／またはアプリケーション１１８などのＶＭ１１２に含まれる処理を実行する。
【００１５】
ディスプレイアダプタ１２２は、ビデオメモリ１４２を含んでよく、かつ、グラフィック処理装置を含んでよい。ビデオメモリ１４２は、フレームバッファ１４３含んでよい。モバイルデバイスの実施形態は、ビデオメモリ１４２および／またはフレームバッファ１４３を、システムメモリ１０４に含めてもよい。ディスプレイアダプタ１２２は、ビデオメモリ１４２に格納される画像データを、ディスプレイ１２４への表示用の対応する動画データに変換する。本明細書において、「動画コンテンツ」は、画像データおよび動画データを含む。ビデオメモリ１４２は、ＶＭ１１２および／またはＶＭＭ１１０から画像データを受信し、格納する。例えば、ＶＭ１１２および／またはＶＭＭ１１０は、メモリマップドＩ／Ｏを用いてビデオメモリ１４２にアクセスしてよい。ディスプレイアダプタ１２２は、画像データを処理する。すなわち、ディスプレイアダプタ１２２は、ディスプレイ１２４に表示されるよう画像データを動画データに変換する。これは当業者の知るところである。ビデオメモリ１４２および／またはフレームバッファ１４３は、表示されるよう動画データを変換する前に、画像データを格納する。画像データは、本明細書に説明するように、不正コピーされ得る解読された動画コンテンツを含む。
【００１６】
少なくともいくつかの入出力回路１２６は、ダイレクトメモリアクセス（ＤＭＡ）を行う。すなわち、ＣＰＵ１２０を用いることなくメモリ内に格納されたデータにアクセスし、転送を行う。例えば、入出力回路１２６は、ネットワークアダプタおよび／またはシリアルポートを含んでよい。記憶装置１２８は、本明細書で説明するように、有形のコンピュータ読み取り可能媒体を含んでよい。図解を簡素化するため独立の構成要素として示されているが、記憶装置１２８は、メモリ１０４を含んでよい。
【００１７】
ＶＭ１１２は、ユーザＯＳカーネル１３０を含んでよい。カーネル１３０は、ビデオドライバ１３８を含んでよく、かつ、他のデバイスドライバ１４０を含んでよい。これは、当業者の知るところである。ＯＳカーネル１３０は、ＯＳページテーブル１３３を含む。ＯＳページテーブル１３３は、ＶＭ仮想メモリを実メモリにマッピングする。仮想化を行わないシステムにおいては、実メモリは物理メモリに対応する。仮想化を行うシステムにおいては、実メモリは物理メモリに対応しなくてよい。この場合、本明細書に説明するように、ＶＭＭはＶＭＭページテーブルを含み、ＶＭ仮想メモリから物理メモリへのマッピングを管理する。
【００１８】
ＶＭ１１２は、動画プレーヤ１３２を含んでよい。動画プレーヤ１３２は、実行されると、例えば選択された映画をディスプレイ１２４にてユーザに対して表示することにより、選択された動画コンテンツをユーザに対し「再生」するアプリケーションである。ＶＭ１１２は、動画コンテンツを格納する、すなわち１以上の映画および／または動画コンテンツを格納する１以上の動画ライブラリ１３４を含んでよい。これは、当業者の知るところである。例えば、ユーザは、動画ライブラリ１３４などから所望の動画コンテンツを選択し、かつ／あるいは動画プレーヤ１３２を起動することにより、動画コンテンツの表示を「リクエスト」する。ＶＭ１１２は、例えばＤＲＭフロントエンド１３６などのモジュールを含む。モジュールは、ＶＭ１１２とハイパーバイザー１１０との間の通信を可能にする。例えば、ＤＲＭフロントエンド１３６は、選択され、保護された、プレミア動画コンテンツを、ＶＭ１１２からハイパーバイザー１１０へと転送する。
【００１９】
ＯＳカーネル１３０は、ＯＳカーネル１３０とディスプレイアダプタ１２２との間をインターフェース接続するビデオドライバ１３８を含んでよい。ＯＳカーネル１３０は、さらに、ＶＭ１１２と、入出力回路１２６などの回路１０２との間をインターフェース接続する他のデバイスドライバ１４０を含んでよい。典型的な仮想化されたシステム、すなわちハイパーバイザーを含むシステムにおいては、ハイパーバイザーは、デバイスドライバと回路１０２との間を追加的にインターフェース接続してもよい。これにより、ハイパーバイザーは、複数のＶＭによる回路１０２の共有を管理する。
【００２０】
ＶＭＭ１１０は、ＶＭＭメモリマネージャ１５０、ＶＭＭページテーブル１５１、およびＤＲＭモジュール１５２を含んでよい。ＶＭＭページテーブル１５１は、ＶＭ仮想メモリをシステム物理メモリ１０４へマッピングする。例えば、ＶＭＭページテーブル１５１は、ＶＭ仮想メモリを直接物理メモリにマッピングするシャドウページテーブルであってよい。他の例では、本明細書に説明するように、ＯＳページテーブルは、ＶＭ仮想メモリを実メモリにマッピングしてよい。本実施形態について引き続き説明すると、ＶＭＭページテーブル１５１は、その後実メモリを物理メモリにマッピングする。
【００２１】
ＶＭＭメモリマネージャ１５０は、ＶＭ１１２などによるメモリ１０４への割り付けおよび／またはアクセスを管理する。ＤＲＭモジュール１５２は、解読などにより、ＤＲＭフロントエンド１３６から受信した、プレミア動画コンテンツの保護を解除する。解読された動画コンテンツは、その後、ビデオメモリ１４２に格納されてよい。ＤＲＭモジュール１５２は、動画コンテンツに関するポリシーを確認する。例えば、ポリシーは、動画の表示が許可されている回数、または、その回数に到達しているかどうかなどを含んでよい。他の例では、ポリシーは、「有効期限」、すなわち動画コンテンツの表示がそれ以降は許可されていない日時を含んでよい。
【００２２】
本願発明と互換性のあるＶＭＭ１１０は、動画保護モジュール１５４およびＤＭＡインターセプトモジュール１５６を含む。動画保護モジュール１５４は、例えばＤＲＭモジュール１５２から解読された動画コンテンツを受信し、ビデオメモリ１４２および／またはフレームバッファ１４３に解読された動画コンテンツを格納する。さらに動画保護モジュール１５４は、本明細書に説明するように、解読された動画コンテンツ以外の偽データなどを保持するメモリロケーションがアクセス先となるよう、ＯＳページテーブル１３３を更新する。ＤＭＡインターセプトモジュール１５６は、カーネル１３０などＶＭ１１２からのＤＭＡ構成コマンドをモニタリングする。さらにＤＭＡインターセプトモジュール１５６は、本明細書に説明するように、解読された動画コンテンツを保持するビデオメモリ１４２および／またはフレームバッファ１４３へのアクセスを阻止する。
【００２３】
図３は、動画コンテンツへの不正アクセスおよび／または動画コンテンツの不正コピーを阻止する動作のフローチャート２００を示す。例えば、フローチャート２００の動作は、有害および／または悪質なアプリケーション、および／またはユーザＯＳ１１６などのユーザＯＳが、ビデオメモリ１４２に格納された解読された動画コンテンツを読み出すのを阻止する。フローチャート２００の動作の第１部分は、ＶＭ１１２によって実行されてよい。この動作は、例えば、保護された、プレミア動画コンテンツおよび／またはノンプレミア動画コンテンツを含む動画コンテンツを対象とした動作であってよい。フローチャート２００の動作の第２部分は、ＶＭＭ１１０によって実行されてよい。この動作は、例えば、動画コンテンツの解読に関する動作、および／または解読された動画コンテンツに関する動作であってよい。
【００２４】
プログラムのフローは、動作２０２の動画プレーヤの起動から開始されてよい。例えば、ユーザが、映画などの動画コンテンツを表示するよう選択する。すなわち、ＶＭ１１２が、動画コンテンツの表示のリクエストを受信する。ユーザによる選択に応じ、動画プレーヤ１３２などの動画プレーヤが、実行を開始し、かつ／あるいは選択された動画コンテンツの表示に備える。動作２０４は、選択された動画コンテンツが保護された（暗号化などが行われている）動画コンテンツであるか、プレミア動画コンテンツであるか、の決定を含んでよい。選択された動画コンテンツが、暗号化された動画コンテンツでない場合、動画コンテンツは、動作２０６で復号化され、動作２０８においてビデオメモリ１４２に格納される。動作２０６は、記憶装置１２８からの動画コンテンツの読み出しを含んでよい。プログラムのフローはその後、動作２１８へ進む。
【００２５】
選択された動画コンテンツが保護された動画コンテンツである場合、動画コンテンツは、動作２１０において、ＶＭＭ１１０に提供されてよい。例えば、ＤＲＭフロントエンド１３６が、動画コンテンツをＶＭＭ１１０および／またはＤＲＭモジュール１５２へ提供する。動作２１０は、記憶装置１２８からの動画コンテンツの読み出しを含んでよい。動作２１０は、ＤＲＭフロントエンド１３６とＤＲＭモジュール１５２との間の通信を含んでよい。この通信において、保護された、プレミア動画コンテンツを表示するよう選択されたこと、および／または選択された動画コンテンツの識別子がやり取りされる。動作２１０は、動画コンテンツのＶＭＭ１１０と関連付けられたメモリ領域への格納を含んでよい。
【００２６】
動作２１２は、保護された、プレミア動画コンテンツの解読と復号化を含む。例えば、ＤＲＭモジュール１５２は、動画コンテンツの解読を行い、かつ、解読された動画コンテンツの復号化を行ってよい。解読され復号化された画像データなどの動画コンテンツは、動作２１４において、フレームバッファ１４３など、ビデオメモリ１４２内に格納される。例えば、動画保護モジュール１５４は、解読され復号化された画像データをビデオメモリ１４２に転送してよい。
【００２７】
動作２１６は、解読され復号化された動画コンテンツ以外の偽データなどがアクセス先となるよう、ＯＳページテーブル１３３の更新を含んでよい。例えば、ＶＭＭ１１０の動画保護モジュール１５４は、解読された動画コンテンツに対応するＯＳページテーブル１３３のエントリーのアクセス先が、解読された動画コンテンツ以外の偽データなどを保持するメモリロケーションとなるよう、ＯＳページテーブル１３３および／またはＶＭＭページテーブル１５１を書き換えてもよい。したがって、ＶＭＭ１１２内のアプリケーション１１８および／またはユーザＯＳ１１６によるビデオメモリ１４２から読み出す試みによって、解読された動画コンテンツではなく、偽データなどが読み出されることとなる。
【００２８】
動作２１８では、復号化された動画コンテンツのレンダリングが行われる。例えば、復号化された動画コンテンツは、ディスプレイアダプタ１２２によってレンダリングされる。復号化された動画コンテンツは、ＶＭ１１２によってビデオメモリ１４２および／またはフレームバッファ１４３に格納された、ノンプレミア動画コンテンツであってよく、若しくは、動画保護モジュール１５４によってビデオメモリ１４２および／またはフレームバッファ１４３に転送された解読された動画コンテンツであってよい。動作２２０は、レンダリングされたコンテンツの、ディスプレイ１２４などでの表示を含んでよい。
【００２９】
動作２２２において、動画コンテンツが終了したか決定される。動画コンテンツが終了した場合、プログラムのフローは終了２２４する。動画コンテンツが終了していなければ、プログラムフローは動作２０４へ進み、動画コンテンツが保護されているか決定する。
【００３０】
このようにして、解読された、プレミア動画コンテンツの不正コピーが阻止される。保護された（暗号化などを行われた）、プレミア動画コンテンツおよび（暗号化などの行われていない）ノンプレミア動画コンテンツを含む動画コンテンツは、ＶＭ１１２によってアクセスされ得、保護された、プレミア動画コンテンツに関する解読の処理がＶＭＭ１１０によって行われる。ＶＭＭ１１０によって、偽データを保持するメモリロケーションをアクセス先とするなど、ビデオメモリ１４２内の解読された動画コンテンツ以外のデータを保持するメモリロケーションがアクセス先となるよう、ＯＳページテーブル１３３を書き換えることにより、ＶＭ１１２は、ビデオメモリ１４２からの読み出しなどのアクセスを阻止される。ビデオメモリ１４２内の解読された動画コンテンツへの、ＤＭＡなど直接的なアクセスを阻止する追加的な策が所望され得る。
【００３１】
例えば、ユーザＯＳ１１６がＤＭＡ構成コマンドを生成し、入出力回路１２６などのデバイスによって、プロセッサの介在しない、データのＤＭＡ送信を開始する。本実施形態について引き続き説明すると、ＯＳカーネル１３０内の他のデバイスドライバ１４０のうちのデバイスドライバが、ＤＭＡ構成コマンドを開始する。ＤＭＡ構成コマンドは、１以上のアドレス、および／または、送信されるデータのロケーションを特定する、ポインタなどのアドレスインジケータを含んでよい。当業者には理解されるように、ＤＭＡ構成コマンドは、デバイス特有のパラメータを含んでよい。有害な、および／または悪質なデバイスドライバは、解読された動画コンテンツを保持するビデオメモリ１４２および／またはフレームバッファ１４３から読み出すＤＭＡ構成コマンドを生成するかもしれない。このことによって、解読された動画コンテンツへの不正アクセス、および、もしかするとその解読された動画コンテンツの不正コピーが可能となるかもしれない。
【００３２】
図４は、解読された動画コンテンツへの不正アクセスを阻止する動作の、図３とは異なるフローチャート２５０を示す。フローチャート２５０の動作は、ビデオメモリ１４２内の解読された動画コンテンツのＤＭＡを阻止する。フローチャート２５０の動作は、ＶＭＭ１１０によって行われてよい。例えば、フローチャート２５０の動作は、少なくとも部分的に、ＤＭＡインターセプトモジュール１５６によって行われてよい。
【００３３】
プログラムのフローは、開始２５２から始まってよい。開始２５２の前には、ユーザによって、表示する動画コンテンツの選択が済んでいる、すなわち映画などの動画コンテンツの表示のリクエストが済んでいることを前提としている。動作２５４は、ＶＭ１１２などＶＭからのＤＭＡ構成コマンドのモニタリングを含んでよい。例えば、ＤＭＡインターセプトモジュール１５６は、ＤＭＡ構成コマンドのモニタリングを行う。
【００３４】
ＤＭＡ構成コマンドが検知されたかどうかは、動作２５６で決定する。ＤＭＡ構成コマンドが検知されない場合、プログラムのフローは、動作２５４に進み、ＶＭからのＤＭＡ構成コマンドのモニタリングを行う。ＤＭＡ構成コマンドが検知された場合、ＤＭＡ構成コマンドが特定するアドレスが、解読された動画コンテンツを保持するビデオメモリを含んでいるかどうかが、動作２５８で決定される。ＤＭＡ構成コマンドが特定するアドレスが、解読された動画コンテンツを保持するビデオメモリを含まない場合、動作２６０でＤＭＡが許可される。プログラムのフローは、その後、動作２５４に進み、ＶＭからのＤＭＡ構成コマンドのモニタリングを行う。ＤＭＡ構成コマンドが特定するアドレスが、解読された動画コンテンツを保持するビデオメモリを含む場合、動作２６２で、解読された動画コンテンツへのＤＭＡのアクセスが、ＤＭＡインターセプトモジュール１５６などによって阻止される。動作２６４は、ＶＭ１１２に対するＤＭＡ失敗および／またはエラーのシグナリングを含んでよい。プログラムのフローは、その後、動作２５４に進み、ＶＭからのＤＭＡ構成コマンドのモニタリングを行う。
【００３５】
このようにして、ＤＭＡ送信による解読された動画コンテンツへの不正アクセス、および／または解読された動画コンテンツの不正コピーが阻止される。不正コピーの阻止は、ＶＭＭによって、ハードウェアによる保護を要さず、ＤＭＡインターセプトモジュール１５６などを介して行われ得る。
【００３６】
ＤＭＡ構成コマンドは、デバイス特有のものであってよい。例えば、本明細書に説明するように、入出力回路は、ネットワークアダプタおよび／またはシリアルポートを含んでよく、またこれらに限定されない。ネットワークアダプタおよび／またはシリアルポートなどの各デバイスは、関連付けられたＤＭＡ構成コマンドを有してよい。各ＤＭＡ構成コマンドのフォーマットは、関連付けられたデバイスに依存してよい。したがって、動作２５８は、関連付けられたデバイスの識別を含んでよい。この識別により、ＤＭＡ構成コマンドのフォーマットの識別がなされ、アドレスが解読された動画コンテンツを保持するビデオメモリのアドレスを含むかどうかの決定が促される。モバイルインターネットデバイスなどのモバイルデバイスは、一定数の入出力回路、すなわち一定数のデバイスを含んでよく、一般的にユーザは、デバイスを変更出来なくてよい。これは、当業者の知るところである。したがって、ＤＭＡインターセプトモジュール１５６は、モバイルデバイスにどのような入出力回路が存在するかについて「知識」を有した状態で構成されており、このことによって、ＤＭＡ構成コマンドのフォーマットの識別は、比較的単純なもので済む。
【００３７】
本願発明と互換性のあるシステムおよび方法は、モバイルデバイスによる動画コンテンツへの不正アクセスおよび／または動画コンテンツの不正コピーを阻止する。モバイルデバイスは、そのようなアクセスおよび／またはコピーを阻止するためにハードウェアによる保護を含まなくてよい。方法は、仮想化技術、すなわち仮想マシンおよびハイパーバイザーを用い、動画コンテンツ（暗号化された動画コンテンツおよび暗号化されていない動画コンテンツを含む）に関わる処理と、プレミア動画コンテンツの解読に関わる処理との分離を行う。ハイパーバイザーは、解読された動画コンテンツ以外の偽データなどがアクセス先となるよう、ＯＳページテーブルを書き換えることにより、ビデオメモリ内の解読された動画コンテンツへのアクセスを阻止する。ハイパーバイザーは、さらに、ＤＭＡ構成コマンドをモニタリングし、ビデオメモリ内の解読された動画コンテンツへのＤＭＡを阻止する。利点の１つは、本願発明のシステムおよび方法が、ハードウェアによる保護を用いることなく、不正コピーを阻止する点である。
【００３８】
当然ではあるが、図３および４はいくつかの実施形態の例示的な動作を示すが、図３および／または図４に示す動作が全て、他の実施形態においても必要となるわけではないことが理解されるであろう。実際、本願発明の他の実施形態では、図３および／または図４に示す動作の部分的な組み合わせ、および／または追加的な動作を含んでよいことが、十分に考慮されている。よって、１つの図面に正確に示されていない特徴および／または動作は、請求項に係る本願発明の範囲および内容に含まれる。
【００３９】
本明細書に説明される方法の実施形態は、プロセッサおよび／または他のプログラム可能なデバイスを用いて実施することが出来る。このことを目的とし、本明細書に説明する方法は、１以上のプロセッサによって実行されたときに当該方法を実施する命令を格納する、有形のコンピュータ読み取り可能媒体で実施されてもよい。記憶媒体の例として、あらゆる形態の有形媒体が含まれる。それらの例としては、フロッピー（登録商標）ディスク、光ディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、および光磁気ディスクなど、あらゆる形態のディスク、読み出し専用メモリ（ＲＯＭ）、動的ランダムアクセスメモリ（ＲＡＭ）および静的ＲＡＭなどのＲＡＭ、消去可能プログラム可能型ＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、磁気カード、光カードなどのあらゆる形態の半導体デバイス、ならびに、その他電気的命令の格納に適したあらゆる形態の媒体などが含まれる。
【００４０】
例えば、メモリ１０４および／または回路１０２に関連付けられたメモリは以下の形態のメモリの１以上を含んでよい。それらメモリの形態としては、半導体ファームウェアメモリ、プログラム可能メモリ、不揮発性メモリ、読み出し専用メモリ、電気的プログラム可能メモリ、ランダムアクセスメモリ、フラッシュメモリ、磁気ディスクメモリ、および／または光ディスクメモリが挙げられる。追加的に、あるいは、代替として、メモリ１０４および／または回路１０２に関連付けられたメモリは他の、および／または新たに開発された形態のコンピュータ読み取り可能なメモリを含んでよい。
【００４１】
特記しない限り、上述した説明から分かるように、「動作」、「処理」、「演算」、「計算」「決定」などの用語を用いた明細書中の説明は、コンピュータまたはコンピュータシステム、若しくは類似の電気コンピュータデバイスまたは装置による動作および／または処理を示す。これらコンピュータまたはコンピュータシステム、若しくは類似の電気コンピュータデバイスまたは装置は、コンピュータシステムのレジスタおよび／またはメモリ内に格納された電気量などの物理量で表されるデータを、コンピュータシステムのメモリ、レジスタ、若しくは他のそのような情報記憶装置、送信デバイス、またはディスプレイデバイス内で物理量として同様に表される他のデータへと処理および／または変換する。
【００４２】
本明細書中の実施形態で用いられる「回路」は、例えば、配線接続された回路、プログラム可能な回路、状態機械回路、および／またはプログラム可能な回路によって実行される命令を格納するファームウェアを、単独で、若しくはこれらを組み合わせた状態で、含んでよい。
【００４３】
本願発明の一態様は、方法を提供する。当該方法は、モバイルデバイスによって動画コンテンツを表示するように、ユーザオペレーションシステム（「ＯＳ」）およびＯＳページテーブルを有する仮想マシン（「ＶＭ」）からリクエストを受ける段階と、動画コンテンツを仮想マシンモニタ（「ＶＭＭ」）に転送する段階と、動画コンテンツをＶＭＭによって解読し、解読された動画コンテンツを生成する段階と、解読された動画コンテンツをＶＭＭを用いてビデオメモリ内に格納する段階と、ビデオメモリ内の解読された動画コンテンツに対応するポインタの示すアクセス先が、解読された動画コンテンツ以外のデータを保持するメモリロケーションとなるよう、ＶＭＭによってＯＳページテーブルを更新する段階とを備えてよい。
【００４４】
他の態様は、物品を提供する。当該物品は、モバイルデバイスによって動画コンテンツを表示するように、ユーザオペレーションシステム（「ＯＳ」）およびＯＳページテーブルを有する仮想マシン（「ＶＭ」）からリクエストを受ける段階と、動画コンテンツを仮想マシンモニタ（「ＶＭＭ」）に転送する段階と、動画コンテンツをＶＭＭによって解読し、解読された動画コンテンツを生成する段階と、解読された動画コンテンツをＶＭＭを用いてビデオメモリ内に格納する段階と、ビデオメモリ内の解読された動画コンテンツに対応するポインタの示すアクセス先が、解読された動画コンテンツ以外のデータを保持するメモリロケーションとなるよう、ＶＭＭによってＯＳページテーブルを更新する段階とを含む動作を、プロセッサに実行されたときに実施する命令を格納する有形記憶媒体を備えてよい。
【００４５】
さらに他の態様は、モバイルデバイスを提供する。モバイルデバイスは、プロセッサと、ディスプレイと、ユーザオペレーションシステム（「ＯＳ」）およびＯＳページテーブル、ならびに仮想マシンモニタ（「ＶＭＭ」）を有する仮想マシン（「ＶＭ」）を格納するメモリとを備え、ＶＭおよびＶＭＭがプロセッサ上で実行され、ＶＭが動画コンテンツを表示するようリクエストを受けたとき、ＶＭはプロセッサに、動画コンテンツをＶＭＭに転送する段階を実施させ、ＶＭＭはプロセッサに、ＶＭＭ内の動画コンテンツを解読し、解読された動画コンテンツを生成する段階と、解読された動画コンテンツをビデオメモリ内に格納する段階と、ビデオメモリ内の解読された動画コンテンツに対応するポインタの示すアクセス先が、解読された動画コンテンツ以外のデータを保持するメモリロケーションとなるよう、ＯＳページテーブルを更新する段階とを実施させてよい。
【００４６】
本明細書で用いる用語および表現は、説明を目的として用いられ、限定を目的としては用いられていない。そのような用語および表現の使用に関し、示され説明される特徴（もしくはその特徴の一部）と同等なものを排除することを意図されていない。特許請求項の範囲内で、様々な変更が可能であることが理解されるであろう。したがって、請求項はそのような同等物を全て網羅することを意図されている。
【図１】
0005572834.tif 000002
【図２】
0005572834.tif 000003
【図３】
0005572834.tif 000004
【図４】
0005572834.tif 000005