(57)【特許請求の範囲】
【請求項１】
ハードウェアで実装された、バッファメモリからのデータを処理するためのプロセッサであって、
前記バッファメモリのセキュアなアドレス範囲に関連する少なくとも1つのセキュアなロケーションからの入力データに基づいて処理された出力データを、前記セキュアなアドレス範囲に関連する1つまたは複数のセキュアなロケーションに書き込むことを許可することと、
前記セキュアなアドレス範囲に関連する少なくとも1つのセキュアなロケーションからの入力データに基づいて処理された出力データを、前記バッファメモリの非セキュアなアドレス範囲に関連する1つまたは複数の非セキュアなロケーションに書き込むことを阻止することとを行うように構成された保護ユニット
を備え、
前記セキュアなアドレス範囲は、異なるセッションまたはストリームに共通のセキュアなアドレス範囲として構成され、
前記セキュアなアドレス範囲のアドレスは、仮想アドレスを含み、
前記セキュアなアドレス範囲は、前記バッファメモリのページを含み、
前記仮想アドレスは、ページテーブルによって前記バッファメモリ中の物理アドレスにマッピングされ、
前記出力データを、前記セキュアなロケーションに書き込むことを許可することは、前記出力データを、前記入力データと同じページに書き込むことを許可することを含み、
前記出力データを、前記非セキュアなロケーションに書き込むことを阻止することは、前記出力データを、前記入力データと別のページに書き込むことを阻止することを含む、プロセッサ。
【請求項２】
前記保護ユニットは、前記非セキュアなアドレス範囲に関連する少なくとも1つの非セキュアなロケーションからの入力データに基づいて処理された出力データを、前記非セキュアなアドレス範囲に関連する1つまたは複数の非セキュアなロケーションに書き込むことを許可するようにさらに構成される、請求項1に記載のプロセッサ。
【請求項３】
入力データは、保護ソースからの保護コンテンツから抽出されたデータに基づく、請求項1に記載のプロセッサ。
【請求項４】
前記出力データは、ディスプレイハードウェアによって前記バッファメモリから読み出すためのものである、請求項1に記載のプロセッサ。
【請求項５】
バッファメモリからのデータを処理するための装置であって、
前記バッファメモリのセキュアなアドレス範囲に関連する少なくとも1つのセキュアなロケーションからの入力データに基づいて処理された出力データを、前記セキュアなアドレス範囲に関連する1つまたは複数のセキュアなロケーションに書き込むことを許可するための手段と、
前記セキュアなアドレス範囲に関連する少なくとも1つのセキュアなロケーションからの入力データに基づいて処理された出力データを、前記バッファメモリの非セキュアなアドレス範囲に関連する1つまたは複数の非セキュアなロケーションに書き込むことを阻止するための手段とを備え、
前記セキュアなアドレス範囲は、異なるセッションまたはストリームに共通のセキュアなアドレス範囲として構成され、
前記セキュアなアドレス範囲のアドレスは、仮想アドレスを含み、
前記セキュアなアドレス範囲は、前記バッファメモリのページを含み、
前記仮想アドレスは、ページテーブルによって前記バッファメモリ中の物理アドレスにマッピングされ、
前記出力データを、前記セキュアなロケーションに書き込むことを許可するための手段は、前記出力データを、前記入力データと同じページに書き込むことを許可するための手段を含み、
前記出力データを、前記非セキュアなロケーションに書き込むことを阻止するための手段は、前記出力データを、前記入力データと別のページに書き込むことを阻止するための手段を含む、装置。
【請求項６】
前記非セキュアなアドレス範囲に関連する少なくとも1つの非セキュアなロケーションからの入力データに基づいて処理された出力データを、前記非セキュアなアドレス範囲に関連する1つまたは複数の非セキュアなロケーションに書き込むことを許可するための手段をさらに備える、請求項5に記載の装置。
【請求項７】
入力データは、保護ソースからの保護コンテンツから抽出されたデータに基づく、請求項5に記載の装置。
【請求項８】
前記出力データは、ディスプレイハードウェアによって前記バッファメモリから読み出すためのものである、請求項5に記載の装置。
【請求項９】
コンピュータに、バッファメモリのセキュアなアドレス範囲に関連する少なくとも1つのセキュアなロケーションからの入力データに基づいて処理された出力データを、前記セキュアなアドレス範囲に関連する1つまたは複数のセキュアなロケーションに書き込むことを許可させるためのコードと、
コンピュータに、前記セキュアなアドレス範囲に関連する少なくとも1つのセキュアなロケーションからの入力データに基づいて処理された出力データを、前記バッファメモリの非セキュアなアドレス範囲に関連する1つまたは複数の非セキュアなロケーションに書き込むことを阻止させるためのコードとを備え、
前記セキュアなアドレス範囲は、異なるセッションまたはストリームに共通のセキュアなアドレス範囲として構成され、
前記セキュアなアドレス範囲のアドレスは、仮想アドレスを含み、
前記セキュアなアドレス範囲は、前記バッファメモリのページを含み、
前記仮想アドレスは、ページテーブルによって前記バッファメモリ中の物理アドレスにマッピングされ、
コンピュータに、前記出力データを、前記セキュアなロケーションに書き込むことを許可させるためのコードは、コンピュータに、前記出力データを、前記入力データと同じページに書き込むことを許可させるためのコードを含み、
コンピュータに、前記出力データを、前記非セキュアなロケーションに書き込むことを阻止させるためのコードは、コンピュータに、前記出力データを、前記入力データと別のページに書き込むことを阻止させるためのコードを含む、コンピュータプログラム。
【請求項１０】
コンピュータに、前記非セキュアなアドレス範囲に関連する少なくとも1つの非セキュアなロケーションからの入力データに基づいて処理された出力データを、前記非セキュアなアドレス範囲に関連する1つまたは複数の非セキュアなロケーションに書き込むことを許可させるためのコードをさらに備える、請求項9に記載のコンピュータプログラム。
【請求項１１】
入力データは、保護ソースからの保護コンテンツから抽出されたデータに基づく、請求項9に記載のコンピュータプログラム。
【請求項１２】
前記出力データは、表示のために前記バッファメモリから読み出すためのものである、請求項9に記載のコンピュータプログラム。
【請求項１３】
バッファメモリからのデータを処理するための方法であって、
ハードウェアで実装されたプロセッサが、前記バッファメモリのセキュアなアドレス範囲に関連する少なくとも1つのセキュアなロケーションからの入力データに基づいて処理された出力データを、前記セキュアなアドレス範囲に関連する1つまたは複数のセキュアなロケーションに書き込むことを許可するステップと、
前記セキュアなアドレス範囲に関連する少なくとも1つのセキュアなロケーションからの入力データに基づいて処理された出力データを、前記バッファメモリの非セキュアなアドレス範囲に関連する1つまたは複数の非セキュアなロケーションに前記プロセッサが書き込むことを阻止するステップとを備え、
前記セキュアなアドレス範囲は、異なるセッションまたはストリームに共通のセキュアなアドレス範囲として構成され、
前記セキュアなアドレス範囲のアドレスは、仮想アドレスを含み、
前記セキュアなアドレス範囲は、前記バッファメモリのページを含み、
前記仮想アドレスは、ページテーブルによって前記バッファメモリ中の物理アドレスにマッピングされ、
前記プロセッサが、前記出力データを、前記セキュアなロケーションに書き込むことを許可するステップは、前記プロセッサが、前記出力データを、前記入力データと同じページに書き込むことを許可するステップを含み、
前記プロセッサが、前記出力データを、前記非セキュアなロケーションに書き込むことを阻止するステップは、前記プロセッサが、前記出力データを、前記入力データと別のページに書き込むことを阻止するステップを含む、方法。
【請求項１４】
前記プロセッサが、前記非セキュアなアドレス範囲に関連する少なくとも1つの非セキュアなロケーションからの入力データに基づいて処理された出力データを、前記非セキュアなアドレス範囲に関連する1つまたは複数の非セキュアなロケーションに書き込むことを許可するステップをさらに備える、請求項13に記載の方法。
【請求項１５】
入力データは、保護ソースからの保護コンテンツから抽出されたデータに基づく、請求項13に記載の方法。
【請求項１６】
前記出力データは、表示のために前記バッファメモリから読み出すためのものである、請求項13に記載の方法。
【請求項１７】
セキュアなアドレス範囲に関連するセキュアなロケーションと、非セキュアなアドレス範囲に関連する非セキュアなロケーションとを備える複数のアドレス可能なロケーションを有するバッファメモリと、
ハードウェアで実装された、前記セキュアなロケーションからのデータおよび前記非セキュアなロケーションからのデータを処理するためのプロセッサであって、
前記セキュアなアドレス範囲に関連する前記セキュアなロケーションの少なくとも1つからの入力データに基づいて処理された出力データを、前記セキュアなアドレス範囲に関連する1つまたは複数の前記セキュアなロケーションに書き込むことを許可することと、
前記セキュアなアドレス範囲に関連する前記セキュアなロケーションの少なくとも1つからの入力データに基づいて処理された出力データを、前記非セキュアなアドレス範囲に関連する1つまたは複数の前記非セキュアなロケーションに書き込むことを阻止することとを行うように構成されたプロセッサとを備え、
前記セキュアなアドレス範囲は、異なるセッションまたはストリームに共通のセキュアなアドレス範囲として構成され、
前記セキュアなアドレス範囲のアドレスは、仮想アドレスを含み、
前記セキュアなアドレス範囲は、前記バッファメモリのページを含み、
前記仮想アドレスは、ページテーブルによって前記バッファメモリ中の物理アドレスにマッピングされ、
前記出力データを、前記セキュアなロケーションに書き込むことを許可することは、前記出力データを、前記入力データと同じページに書き込むことを許可することを含み、
前記出力データを、前記非セキュアなロケーションに書き込むことを阻止することは、前記出力データを、前記入力データと別のページに書き込むことを阻止することを含む、装置。
【請求項１８】
前記プロセッサは、前記非セキュアなアドレス範囲に関連する少なくとも1つの前記非セキュアなロケーションからの入力データに基づいて処理された出力データを、前記非セキュアなアドレス範囲に関連する1つまたは複数の前記非セキュアなロケーションに書き込むことを許可するようにさらに構成される、請求項17に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、参照によって全体が本明細書に組み込まれている、2011年5月10日に出願された米国仮出願第61/484,575号の利益を主張するものである。
【０００２】
本発明は一般に、コンピュータやリモートステーションなどの装置におけるセキュアなデータ処理に関する。
【背景技術】
【０００３】
装置は、オープンソースのカーネルおよび/またはアクセス性の高い低レベルソフトウェアを有し得るオペレーティングシステムを使用し得る。残念ながら、カーネル中のセキュリティ実装は、DRM(デジタル著作権管理)を使用して保護されたマルチメディアコンテンツなどの保護コンテンツを抽出する目的で変更され得る。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
したがって、セキュアなデータ処理のための効果的な技法が必要とされている。
【課題を解決するための手段】
【０００５】
本発明の態様は、ハードウェアで実装された、バッファメモリからのデータを処理するためのプロセッサに存在し得る。このプロセッサは保護ユニットを含む。この保護ユニットは、バッファメモリのセキュアなアドレス範囲に関連する少なくとも1つのセキュアなロケーションからの入力データに基づいて処理された出力データを、セキュアなアドレス範囲に関連する1つまたは複数のセキュアなロケーションに書き込むことを許可するように構成される。この保護ユニットは、セキュアなアドレス範囲に関連する少なくとも1つのセキュアなロケーションからの入力データに基づいて処理された出力データを、バッファメモリの非セキュアなアドレス範囲に関連する1つまたは複数の非セキュアなロケーションに書き込むことを阻止するようにさらに構成される。
【０００６】
本発明のより詳細な態様では、保護ユニットは、非セキュアなアドレス範囲に関連する少なくとも1つの非セキュアなロケーションからの入力データに基づいて処理された出力データを、非セキュアなアドレス範囲に関連する1つまたは複数の非セキュアなロケーションに書き込むことを許可するようにさらに構成され得る。セキュアなアドレス範囲のアドレスは仮想アドレスを備え得る。セキュアなアドレス範囲はバッファメモリのページを備え得る。仮想アドレスは、ページテーブルによって、バッファメモリ中の物理アドレスにマッピングされ得る。あるいは、セキュアなアドレス範囲のアドレスは物理アドレスを備え得る。
【０００７】
本発明の他のより詳細な態様では、入力データは、保護ソースからの保護コンテンツから抽出されたデータに基づき得る。出力データは、表示のためのディスプレイハードウェアによってバッファメモリから読み出すためのものであり得る。
【０００８】
本発明の別の態様は、バッファメモリのセキュアなアドレス範囲に関連する少なくとも1つのセキュアなロケーションからの入力データに基づいて処理された出力データを、セキュアなアドレス範囲に関連する1つまたは複数のセキュアなロケーションに書き込むことを許可するための手段と、セキュアなアドレス範囲に関連する少なくとも1つのセキュアなロケーションからの入力データに基づいて処理された出力データを、バッファメモリの非セキュアなアドレス範囲に関連する1つまたは複数の非セキュアなロケーションに書き込むことを阻止するための手段とを備える、バッファメモリからのデータを処理するための装置に存在し得る。
【０００９】
本発明の別の態様は、コンピュータに、バッファメモリのセキュアなアドレス範囲に関連する少なくとも1つのセキュアなロケーションからの入力データに基づいて処理された出力データを、セキュアなアドレス範囲に関連する1つまたは複数のセキュアなロケーションに書き込むことを許可させるためのコードと、コンピュータに、セキュアなアドレス範囲に関連する少なくとも1つのセキュアなロケーションからの入力データに基づいて処理された出力データを、バッファメモリの非セキュアなアドレス範囲に関連する1つまたは複数の非セキュアなロケーションに書き込むことを阻止させるためのコードとを備えるコンピュータ可読媒体を備える、コンピュータプログラム製品に存在し得る。
【００１０】
本発明の別の態様は、バッファメモリからのデータを処理するための方法に存在し得る。本方法は、ハードウェアで実装されるプロセッサが、バッファメモリのセキュアなアドレス範囲に関連する少なくとも1つのセキュアなロケーションからの入力データに基づいて処理された出力データを、セキュアなアドレス範囲に関連する1つまたは複数のセキュアなロケーションに書き込むことを許可するステップを含み得る。本方法は、プロセッサが、セキュアなアドレス範囲に関連する少なくとも1つのセキュアなロケーションからの入力データに基づいて処理された出力データを、バッファメモリの非セキュアなアドレス範囲に関連する1つまたは複数の非セキュアなロケーションに書き込むことを阻止するステップをさらに含み得る。
【００１１】
本発明の別の態様は、バッファメモリとプロセッサとを含む装置に存在し得る。このバッファメモリは、セキュアなアドレス範囲に関連するセキュアなロケーションと、非セキュアなアドレス範囲に関連する非セキュアなロケーションとを備える複数のアドレス可能なロケーションを有する。このプロセッサは、セキュアなロケーションからのデータおよび非セキュアなロケーションからのデータを処理するためのハードウェアで実装される。このプロセッサは、セキュアなアドレス範囲に関連するセキュアなロケーションの少なくとも1つからの入力データに基づいて処理された出力データを、セキュアなアドレス範囲に関連する1つまたは複数のセキュアなロケーションに書き込むことを許可するように構成される。このプロセッサはまた、セキュアなアドレス範囲に関連するセキュアなロケーションの少なくとも1つからの入力データに基づいて処理された出力データを、非セキュアなアドレス範囲に関連する1つまたは複数の非セキュアなロケーションに書き込むことを阻止するように構成される。
【図面の簡単な説明】
【００１２】
【図１】本発明による、セキュアなアドレス範囲に関連するロケーションと非セキュアなアドレス範囲に関連するロケーションとを備える複数のアドレス可能なロケーションを有するバッファメモリからのデータを処理するための方法のフロー図である。
【図２】本発明による、バッファメモリと、保護ユニットを有するプロセッサとを含む装置のブロック図である。
【図３】プロセッサとメモリとを含むコンピュータのブロック図である。
【図４】ワイヤレス通信システムの一例のブロック図である。
【図５】保護領域を有する装置を通るデータの1つのフローのブロック図である。
【図６】保護領域を有する装置を通るデータのフローのブロック図である。
【図７】保護バッファを有するハードウェアを通るデータのフローのブロック図である。
【発明を実施するための形態】
【００１３】
「例示的な」という語は、「一例、実例または例として」を意味するために本明細書で使用される。「例示的な」として本明細書で説明する任意の実施形態は、必ずしも他の実施形態よりも好ましいまたは有利であると解釈されるべきではない。
【００１４】
図1および図2を参照すると、本発明の態様は、ハードウェアで実装された、バッファメモリ220からのデータを処理するためのプロセッサ210に存在し得る。プロセッサ210は保護ユニット230を含む。プロセッサ210は、データバス245を介して、バッファメモリ220中のメモリロケーション240から事前処理されたデータを読み出す。さらなる処理の後に、プロセッサ210は、バッファメモリ220中のメモリロケーションに処理されたデータをまた書き込む。バッファメモリ220に記憶されたデータは、DRMなどを使用して保護されたマルチメディアコンテンツなどの保護コンテンツから抽出されていてもよい。そのようなデータを、それが処理されバッファメモリ220を通って「流れる」ときに、安全に保つことが有利である。したがって、保護コンテンツから抽出されたデータは、バッファメモリ220のセキュアなアドレス範囲250に関連するロケーション240に記憶される。保護ユニット230は、いくつかの実施形態では、データフローおよび関連するセッション、ならびにセッションのための特権を追跡する必要なしに、バッファメモリ220を通るデータフローのハードウェア保護を提供する。
【００１５】
図1に示したセキュリティルールに従って、保護ユニット230は、出力データがバッファメモリ220のセキュアなアドレス範囲250に関連する少なくとも1つのセキュアなロケーション240からの入力データに基づいて処理された場合、セキュアなアドレス範囲250に関連する1つまたは複数のセキュアなロケーション240に出力データを書き込むことを許可するように構成される。保護ユニット230は、出力データがセキュアなアドレス範囲250に関連する少なくとも1つのセキュアなロケーション240からの入力データに基づいて処理された場合、バッファメモリ220の非セキュアなアドレス範囲260に関連する1つまたは複数の非セキュアなロケーション240に出力データを書き込むことを阻止するようにさらに構成される。
【００１６】
本発明のより詳細な態様では、保護ユニット230は、非セキュアなアドレス範囲260に関連する少なくとも1つの非セキュアなロケーションからの入力データに基づいて処理された出力データを、非セキュアなアドレス範囲260に関連する1つまたは複数の非セキュアなロケーションに書き込むことを許可するようにさらに構成され得る。したがって、安全に記憶された保護コンテンツのセキュリティに影響を与えることなく、非保護コンテンツを処理することができる。
【００１７】
セキュアなアドレス範囲250のアドレスは仮想アドレスを備え得る。あるいは、セキュアなアドレス範囲のアドレスは物理アドレスを備え得る。保護メモリ方式では、バッファメモリ220中のメモリロケーション240の物理アドレスは、たとえばページテーブルによって仮想アドレスにマッピングされ、それぞれの独立した仮想アドレス空間を使用する異なるプロセスおよび/またはセッションによって物理メモリを共有することを可能にし得る。一般に、物理アドレスは4キロバイトのページとしてマッピングされるが、他のページサイズが使用されてもよい。したがって、(図7に示す)保護バッファメモリ730のセキュアなアドレス範囲250は、メモリロケーションの1ページを備え得る。一実施形態では、プロセッサ210は、出力データを入力データと同じページに書き込むことを要求することによって、図1のセキュリティルールを実施する。そのような実施形態では、プロセッサ210は出力データを別のページに書き込むことを阻止する。セキュアなアドレス範囲250が複数のページを備える場合、そのページはバッファメモリ220の中で連続していても、していなくてもよい。
【００１８】
メモリロケーション240は、ブロック、セグメント、部分などの他の構成でグループ化され得る。バッファメモリ220のセキュアなアドレス範囲250は、そのようなブロック、セグメント、部分などを包含し得る。
【００１９】
セキュアなアドレス範囲(SAR)レジスタ270などのデータストアは、セキュアなアドレス範囲250を記憶し得る。レジスタ270は、悪意のあるソフトウェアによる改竄やハッキングを防止するために安全に保護された領域中にあってもよい。入力データが読み出される場合、セキュアなアドレス範囲レジスタ270は、入力データがセキュアなロケーションからのものであるかどうかを決定するために、保護ユニット230によってチェックされ得る。同様に、出力データを書き込むべきである場合、セキュアなアドレス範囲レジスタ270は、出力データをセキュアなロケーションに書き込むべきであるかどうかを決定するために、保護ユニット230によってチェックされ得る。
【００２０】
本発明の別の態様は、バッファメモリ220のセキュアなアドレス範囲250に関連する少なくとも1つのセキュアなロケーション240からの入力データに基づいて処理された出力データを、セキュアなアドレス範囲250に関連する1つまたは複数のセキュアなロケーション240に書き込むことを許可するための手段(230)と、セキュアなアドレス範囲250に関連する少なくとも1つのセキュアなロケーションからの入力データに基づいて処理された出力データを、バッファメモリ220の非セキュアなアドレス範囲260に関連する1つまたは複数の非セキュアなロケーションに書き込むことを阻止するための手段(230)とを備える、バッファメモリ220からのデータを処理するための装置200に存在し得る。
【００２１】
本発明の別の態様は、コンピュータ300に、バッファメモリ220のセキュアなアドレス範囲250に関連する少なくとも1つのセキュアなロケーション240からの入力データに基づいて処理された出力データを、セキュアなアドレス範囲250に関連する1つまたは複数のセキュアなロケーションに書き込むことを許可させるためのコードと、コンピュータに、セキュアなアドレス範囲250に関連する少なくとも1つのセキュアなロケーションからの入力データに基づいて処理された出力データを、バッファメモリ220の非セキュアなアドレス範囲260に関連する1つまたは複数の非セキュアなロケーションに書き込むことを阻止させるためのコードとを備える、コンピュータ可読媒体320(図3)を備えるコンピュータプログラム製品に存在し得る。
【００２２】
本発明の別の態様は、バッファメモリ220からのデータを処理するための方法100に存在し得る。方法100は、ハードウェアで実装されたプロセッサ210が、バッファメモリ220のセキュアなアドレス範囲250に関連する少なくとも1つのセキュアなロケーション240からの入力データ(ステップ110)に基づいて処理された出力データを、セキュアなアドレス範囲250に関連する1つまたは複数のセキュアなロケーションに書き込むことを許可するステップ(ステップ120およびステップ130)を含み得る。方法100は、プロセッサ210が、セキュアなアドレス範囲250に関連する少なくとも1つのセキュアなロケーションからの入力データに基づいて処理された出力データを、バッファメモリ220の非セキュアなアドレス範囲260に関連する1つまたは複数の非セキュアなロケーションに書き込むことを阻止するステップ(ステップ140)をさらに含み得る。方法100は、プロセッサ210が、非セキュアなアドレス範囲260に関連する少なくとも1つの非セキュアなロケーションからの入力データに基づいて処理された出力データを、非セキュアなアドレス範囲260に関連する1つまたは複数の非セキュアなロケーションに書き込むことを許可するステップ(ステップ150)をさらに含み得る。
【００２３】
本発明の別の態様は、バッファメモリ220とプロセッサ210とを含む装置200に存在し得る。バッファメモリ220は、セキュアなアドレス範囲250に関連するセキュアなロケーションと、非セキュアなアドレス範囲260に関連する非セキュアなロケーションとを備える複数のアドレス可能なロケーション240を有する。プロセッサ210は、セキュアなロケーションからのデータおよび非セキュアなロケーションからのデータを処理するためのハードウェアで実装される。プロセッサ210は、セキュアなアドレス範囲250に関連するセキュアなロケーションの少なくとも1つからの入力データに基づいて処理された出力データを、セキュアなアドレス範囲250に関連する1つまたは複数のセキュアなロケーションに書き込むことを許可するように構成される。プロセッサ210はまた、セキュアなアドレス範囲250に関連するセキュアなロケーションの少なくとも1つからの入力データに基づいて処理された出力データを、非セキュアなアドレス範囲260に関連する1つまたは複数の非セキュアなロケーションに書き込むことを阻止するように構成される。
【００２４】
装置200は、プロセッサ210などのプロセッサ310と、メモリ220およびディスクドライブなどの記憶媒体320と、ディスプレイ340と、キーボード350などの入力デバイスと、マイクロホンと、スピーカと、カメラなどを含むコンピュータ300を備えるリモートステーションであり得る。この局は、たとえば、ワイヤレス接続360とともに使用するためのアンテナおよび/またはモデムおよび/またはトランシーバなどのインターフェースを含み得る。いくつかの実施形態では、この局はセキュアなモジュール330をさらに備え得る。セキュアなモジュール330は、いくつかの実施形態では、プロセッサ310とは別個の保護ユニット230および/またはSARレジスタ270を実装するために使用され得る。他の実施形態では、セキュアなモジュール330は、他のセキュリティおよび/または書込み保護機能を実装し得る。いくつかの実施形態では、セキュアなモジュール330は省略されてもよい。保護ユニット230とSARレジスタ270がプロセッサ310で実装される一実施形態例では、セキュアなモジュール330は省略される。さらに、この局はUSB、イーサネット(登録商標)、および/または類似のインターフェースも含み得る。
【００２５】
図5を参照すると、ビデオデータなどのコンテンツは、ダウンロード、ブロードキャスト、httpストリーム、DLNA(Digital Living Network Alliance)、HDMI(高解像度マルチメディアインターフェース)(登録商標)、USB AV(ユニバーサルシリアルバスオーディオ/ビジュアル)などの様々なソースから装置200に入力され得る。保護コンテンツ(CAS(Conditional Access System)、HDCP(High-bandwidth Digital Content Protection)、DRM(デジタル著作権管理)など)は装置によって実装される保護領域に向けられている。より高いレベルのオペレーティングシステム(またはカーネル)は、保護領域に直接アクセスすることができない。装置は、セキュリティルール(図1)に従って、セキュアなアドレス範囲250に関連する、またはセキュアなアドレス範囲250内のアドレス可能なメモリロケーション240に処理された出力データ(ワード)を提供する。出力データは、ディスプレイ340に直接転送された保護コンテンツ(DTCP+(Digital Transmission. Content Protection Plus)、HDCP、HDCP 2.0など)であり得る。出力ビデオデータは、ワイヤレスHD(高品位)、DLNA、HDMI(登録商標)アウト、USB AVなどに従ったものであり得る。
【００２６】
保護領域は、1つまたは複数の機能を実現するための処理ユニットの配列と関連し得る。処理ユニットの配列は、ビデオデコーダ、モバイルデータプロセッサなどを含んでもよい。
【００２７】
図6を参照すると、たとえば、装置200の実装形態、および/またはコンピュータ300を備え得る装置600は、コンテンツ保護領域610と、より高いレベルのオペレーションシステム(HLOS)コンテンツ領域620とを有し得る。いくつかの実施形態では、保護領域610は、上記で説明した保護領域の実装形態を備え得る。装置は、コンテンツソース630とコンテンツ変換640とコンテンツシンク650とを有し得る。コンテンツソースは非コンテンツ保護ファイルストリーム655であってもよく、セキュアな領域660(セキュアな実行環境)および暗号エンジンハードウェア665に関連する保護コンテンツであってもよい。保護コンテンツは、たとえば、DRMを使用して保護されたマルチメディアコンテンツであってもよい。保護コンテンツソースからのデータはコンテンツ保護領域610内にとどまり、非保護コンテンツソースからのデータはHLOSコンテンツ領域620内にとどまる。コンテンツ変換は、ビデオコーデックハードウェア670とグラフィックス処理ユニット(GPU)675によって達成され得る。GPUは非保護コンテンツ上でだけ動作することができるが、ビデオコーデックハードウェアは保護コンテンツ上と非保護コンテンツ上で動作することができる。ビデオコーデックハードウェアは、図1に示すセキュリティルールに従って、解読および/または復号データがアドレス可能なメモリロケーション240にだけ書き込まれることを確実にするために、保護ユニット230とSARレジスタ270とを含み得る。コンテンツシンク650は、マルチメディアコンテンツをデバイス画面685もしくは340に、またはHDMI(登録商標)リンク690などに出力するために、モバイルディスプレイプラットフォーム(MDP)ハードウェア680を含み得る。
【００２８】
図7を参照すると、複数のコンテンツソース630から複数のコンテンツシンク650へのバッファメモリ220を通るデータフローが複数のコンテンツ変換640に関して示されている。非保護バッファ710はバッファメモリの非セキュアなアドレス範囲260に関連するメモリロケーション240に対応し、保護バッファ730はバッファメモリのセキュアなアドレス範囲250に関連するメモリロケーション240に対応する。バッファメモリを通るデータのフローを示すために、非保護バッファ710と保護バッファ730とをハードウェア要素間のいくつかの事例において示す。しかしながら、いくつかの保護バッファと非保護バッファとは、たとえば、バス245によってハードウェア要素に接続されたバッファメモリ220の単一のアドレス可能なメモリ空間であってもよい。コンテンツソースの例として、非保護ソース705からのフリーコンテンツは非セキュアなアドレス範囲260に関連する非保護バッファ710のメモリロケーションに配置されてもよく、一方で保護ソース715からのプレミアムコンテンツは、セキュアな領域720(セキュアな実行環境)および暗号エンジンハードウェア725に入力され、その後セキュアなアドレス範囲250に関連する保護バッファ730のメモリロケーションに出力されてもよい。ブロードキャストコンテンツ735は、ブロードキャスト＋暗号ハードウェア740によって、入来するブロードキャスト信号が暗号化されているかどうかによって、受信され、必要な場合に復号され、非保護バッファ710か、または保護バッファ730に配置されてもよい。同様に、ビデオキャプチャハードウェア750によってキャプチャされたビデオ信号745は、入来するビデオ信号が保護されているかどうかによって、非保護バッファ710か、または保護バッファ730に配置されてもよい。たとえば、HDCPがHDMI(登録商標)入力で有効になっている場合、コンテンツは保護されたものとして扱われてもよい。また、Macrovision(登録商標)/CGMS-A(Copy Generation Management System - Analog)がアナログ入力で検出される場合も、コンテンツは保護されたものとして扱われてもよい。デジタル(TTL)入力の場合、コンテンツはデフォルトとして、保護されたものとして扱われてもよい。コンテンツ変換の例として、ビデオハードウェア755は、図1のセキュリティルールに従って、非保護バッファ710および/または保護バッファ730からのデータ上で動作し、出力データを非保護バッファ710か、または保護バッファ730に配置することができる。同様に、ビデオプロセッサユニット(VPU)ハードウェア760は、図1のセキュリティルールに従って、非保護バッファ710および/または保護バッファ730からのデータ上で動作し、出力データを非保護バッファ710に、または保護バッファ730に配置することができる。グラフィックス処理ユニット(GPU)765は、非保護バッファ710からのデータ上でだけ動作することができ、出力データを非保護バッファ710にだけ配置することができる。コンテンツシンクの例として、MDPハードウェア770は非保護バッファ710および/または保護バッファ730からのデータを読み出し、そこで動作し、データをマルチメディアコンテンツの形でデバイス画面780へ、またはHDMI(登録商標)リンク790などへ出力することができる。
【００２９】
複数のセッションおよび/またはコンテンツストリームは同時に存在し得る。各セッションまたはストリームは、メモリロケーションの共通のセキュアなアドレス範囲250またはそれ自体のセキュアなアドレス範囲250もしくはページに関連してもよい。たとえば、第1のセッションまたはストリームのための第1のセキュアなアドレス範囲またはページは、第2のセッションまたはストリームのためのセキュアなアドレス範囲とみなされないことがある。第1のセキュアなアドレス範囲またはページは第2のセッションに関して非セキュアなメモリロケーションとみなされ得るので、プロセッサハードウェアは、第2のセッションまたはストリームに関連する出力データを第1のセキュアなアドレス範囲またはページに書き込むことを阻止することがある。しかしながら、共通のセキュアなアドレス範囲250が実装されている場合、異なるアドレス範囲は異なるセッションまたはストリームに関して個々に追跡されないことがあるが、むしろ単一のアドレス範囲はすべてまたは特定の保護コンテンツに適用され得るので、いくつかの実施形態では、データ保護を簡略化することができる。いくつかの実施形態では、セッションまたはストリームは異なるプロセッサに関連し得る。いくつかの実施形態では、これらのプロセッサの各々はそれ自体のセキュアなアドレス範囲および/またはメモリバッファに関連し得る。他の実施形態では、プロセッサのうちの2つ以上はメモリバッファ、またはそのメモリバッファのセキュアなアドレス範囲を共有し得る。
【００３０】
上記で説明した実施形態は、データフローおよび関連するセッション、ならびにセッションのための特権を追跡する必要なしに、バッファメモリ220を通るデータフローのハードウェア保護を提供することができる。したがって、異なるソースからの保護コンテンツと非保護コンテンツとは、処理または変換したデータをバッファメモリに書き込む際に関連するセッションの特権を追跡する必要なしに、コンテンツ変換ハードウェアによって処理され得る。図1のセキュリティルールがハードウェアで実施される場合、悪意のあるソフトウェアは、ハードウェアが悪意のあるリダイレクトをブロックするので、保護コンテンツを非保護のメモリロケーションにリダイレクトすることができない。
【００３１】
図4を参照すると、ワイヤレスリモートステーション(RS)402(装置200など)は、ワイヤレス通信システム400の1つまたは複数の基地局(BS)404と通信することができる。ワイヤレス通信システム400は、1つまたは複数の基地局コントローラ(BSC)406と、コアネットワーク408とをさらに含んでもよい。コアネットワークは、適切なバックホールを介して、インターネット410および/または公衆交換電話網(PSTN)412に接続されてもよい。典型的なワイヤレスリモートステーションは、ハンドヘルド電話またはラップトップコンピュータなどの移動局を含み得る。ワイヤレス通信システム400は、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、周波数分割多元接続(FDMA)、空間分割多元接続(SDMA)、偏波分割多元接続(PDMA)、または当技術分野で知られている他の変調技法など、いくつかの多元接続技法のうちのいずれか1つを採用してもよい。
【００３２】
情報および信号は、様々な異なる技術および技法のいずれかを使用して表され得ることを当業者であれば理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【００３３】
さらに、本明細書で開示した実施形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることが当業者には理解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【００３４】
本明細書で開示した実施形態に関連して説明した様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または、本明細書で説明する機能を実行するように設計されたそれらの任意の組合せで、実装または実行することができる。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
【００３５】
本明細書で開示した実施形態に関連して説明した方法またはアルゴリズムのステップは、直接ハードウェアで実施されるか、プロセッサによって実行されるソフトウェアモジュールで実施されるか、またはその2つの組合せで実施され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、取外し可能ディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体中に常駐し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体はASIC中に常駐し得る。ASICはユーザ端末中に常駐し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末中に個別構成要素として常駐し得る。
【００３６】
1つまたは複数の例示的な実施形態では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。コンピュータプログラム製品としてソフトウェア中で実装した場合、機能は、1つもしくは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または、命令もしくはデータ構造の形態の所望のプログラムコードを搬送もしくは記憶するために使用でき、コンピュータによってアクセスできる、任意の他の媒体を含み得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザーで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。コンピュータ可読媒体は、一時的な伝搬信号を含まないように非一時的であってよい。
【００３７】
開示される実施形態の上記の説明は、いかなる当業者も本発明を作成または使用できるようにするために提供される。これらの実施形態への様々な修正が当業者には容易に明らかになることになり、本明細書に定義する一般原理は、本発明の趣旨または範囲を逸脱することなしに他の実施形態に適用され得る。したがって、本発明は、本明細書に示す実施形態に限定されるものではなく、本明細書で開示する原理および新規の特徴に一致する最大の範囲を与えられるものである。
【符号の説明】
【００３８】
100  方法
200  装置
210  プロセッサ
220  バッファメモリ
230  保護ユニット
240  メモリロケーション
245  データバス
250  セキュアなアドレス範囲
260  非セキュアなアドレス範囲
270  セキュアなアドレス範囲(SAR)レジスタ
300  コンピュータ
310  プロセッサ
320  コンピュータ可読媒体
330  セキュアなモジュール
340  ディスプレイ
350  キーボード
360  ワイヤレス接続
【図１】
0006049702.tif 000002
【図２】
0006049702.tif 000003
【図３】
0006049702.tif 000004
【図４】
0006049702.tif 000005
【図５】
0006049702.tif 000006
【図６】
0006049702.tif 000007
【図７】
0006049702.tif 000008