JP2015528596A - 選択的ramスクランブリングのための方法およびデバイス - Google Patents

選択的ramスクランブリングのための方法およびデバイス Download PDF

Info

Publication number
JP2015528596A
JP2015528596A JP2015526532A JP2015526532A JP2015528596A JP 2015528596 A JP2015528596 A JP 2015528596A JP 2015526532 A JP2015526532 A JP 2015526532A JP 2015526532 A JP2015526532 A JP 2015526532A JP 2015528596 A JP2015528596 A JP 2015528596A
Authority
JP
Japan
Prior art keywords
data
memory
processor
computing device
information
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.)
Ceased
Application number
JP2015526532A
Other languages
English (en)
Other versions
JP2015528596A5 (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 JP2015528596A publication Critical patent/JP2015528596A/ja
Publication of JP2015528596A5 publication Critical patent/JP2015528596A5/ja
Ceased legal-status Critical Current

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/60Protecting data
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

データタギングに基づいてコンピューティングデバイスと関連付けられたメモリ内のデータを選択的にスクランブルするための方法。コンピューティングデバイスは、保護されるセキュリティドメインを規定する。アプリケーションによって生成されたデータは、アプリケーションおよび/またはデータを記述するタギング情報を有するデータバストランザクションとしてパッケージングされる。データバストランザクションは、内部メモリなどのメモリにコンピューティングデバイスのバスを介して送信され、コンピューティングデバイスは、タギング情報を、セキュリティドメインを記述する記憶された情報と比較する。タギング情報に基づいて、データが保護されるべきと判断されるとき、コンピューティングデバイスは、データに対してスクランブリング動作を実行する。

Description

選択的RAMスクランブリングのための方法およびデバイスに関する。
デジタル著作権管理(DRM)コンテンツ(たとえば、映画、音楽、およびゲーム)など、保護データのプロバイダが、貴重なコンテンツのセキュリティを確保するための追加の対策を求める要求はますます高まっている。そのような保護データのプロバイダは、ランダムアクセスメモリ(RAM)など、コンピューティングデバイスの揮発性メモリ内で暗号化またはスクランブリング保護方策を利用するために、コンテンツにアクセスするコンピューティングデバイス(たとえば、パーソナルコンピュータ、モバイルデバイス、およびセットトップディスプレイユニット)をしばしば必要とする。これは、RAMスクランブリングとして知られている。プロバイダは、最近、メモリコントローラが内部メモリに、データを送信する前/データを記憶する前にデータをスクランブルする、RAM(またはメモリ)スクランブリングアルゴリズムの実行を必要とする。コンテンツを平文で記憶するのではなく、RAM内に記憶される保護データを不明瞭化することで、内部メモリのコンテンツにアクセスする攻撃からコンテンツが保護される。
RAMスクランブリングアルゴリズムは、パフォーマンス上の理由でより簡単な暗号化技法を使用するので、RAMスクランブリングは、一般に、不揮発性ストレージおよび送信で使用されるより複雑な暗号化技法に比べてセキュアではない。AES暗号化など、より複雑な暗号化技法は、保護コンテンツにアクセスする多くのコンピューティングデバイスにおけるRAMスクランブリングに対して実行可能でないことがある。というのは、これらの技法は符号化/復号するためにより多くの時間を必要とし、リソース集約的であるからである。RAMスクランブリングは、メモリパフォーマンスへの影響を最小にするために、より簡単なアルゴリズム構造およびより小さい鍵を使用する。しかしながら、スクランブリング技法の複雑さがより小さいことで、攻撃者が、保護コンテンツを記憶する内部メモリに既知データを繰り返し挿入することによってブルートフォース攻撃を実行して、メモリのどのアドレスが挿入された既知データと関連付けられているかを判断することを許容する可能性がある。そのようなパターンマッチング攻撃によって、スクランブルされた結果を突き止めることによって、不正アプリケーションは、RAMスクランブリング遂行の鍵およびアルゴリズムを逆行分析して、DRMコンテンツなどの保護データへの自由アクセスを獲得することができる。
様々な実施形態は、保護コンテンツを含むデータに対する改良されたセキュリティをもたらす、電子デバイスのメモリ内の記憶のために、データを選択的にスクランブルする方法およびデバイスを提供する。パターンマッチング攻撃からデータを効果的に保護するために、コンピューティングデバイス内で選択的メモリスクランブリングを行うための実施方法は、メモリに記憶されるべきデータが保護コンテンツを含むかどうかを判断するステップと、データが保護コンテンツを含むときにデータをメモリに記憶することの一部としてスクランブリングルーチンをデータに適用するステップと、データが保護コンテンツを含まないときにスクランブリングルーチンをデータに適用することなくデータをメモリに記憶するステップとを含む。保護コンテンツは、デジタル著作権管理(DRM)下のデータ、個人情報、セキュリティ情報、バンキング情報、パスワード、認証情報、保護コンテンツアプリケーション情報、および医療データであってよい。メモリは、キャッシュメモリ、揮発性メモリ、不揮発性メモリ、およびオフチップストレージであってよい。一実施形態では、メモリに記憶されるべきデータが保護コンテンツを含むかどうかを判断するステップは、データのソースまたはコンテンツを識別するコンピューティングデバイスのバスを介して送信されたデータにタギング情報を付加するステップと、タギング情報に基づいてトランザクションのソースまたはコンテンツを決定するステップとを含み得、データが保護コンテンツを含むときにデータをメモリに記憶することの一部としてスクランブリングルーチンをデータに適用するステップは、決定されたソースまたはコンテンツに基づいてデータをスクランブルしてメモリに記憶するステップを含み得る。一実施形態では、データのソースまたはコンテンツを識別する情報を有するコンピューティングデバイスのバスを介して送信されたデータをタグ付けするステップは、データが記憶され得るセキュリティドメインに相関するデータに情報を付加するステップを含み得、タギング情報に基づいてトランザクションのソースまたはコンテンツを決定するステップは、タギング情報を、認可されたセキュリティドメインに相関する記憶された識別子と比較するステップを含み得る。様々な実施形態では、データに付加されたタギング情報は、仮想マシン識別(VMID)、バスマスター識別、宛先ストレージアドレス、データのソースまたはコンテンツの識別子、および/またはコンテンツ保護(CP)ビットであってよい。
他の実施形態は、少なくとも、データがスクランブルされる1つのセキュアドメインおよび1つの非セキュアドメインで構成されたメモリと、メモリに結合されたプロセッサとを有するコンピューティングデバイスを含み、プロセッサは、上記で説明した方法の動作を実行するためのプロセッサ実行可能命令をともなって、構成される。一実施形態では、プロセッサは、1つまたは複数のスタンドアロンプロセッサ、コンピューティングデバイス内の複数のプロセッサのうちの1つ、コンピューティングデバイス内のコプロセッサ、およびコンピューティングデバイス内のピアプロセッサであってよい。
他の実施形態は、上記で説明した方法の機能を実行するための手段を有するコンピューティングデバイスを含む。
他の実施形態は、上記で説明した方法の動作をプロセッサに実行させるように構成されたプロセッサ実行可能命令を記憶した非一時的プロセッサ可読記録媒体を含む。一実施形態では、非一時的プロセッサ可読記録媒体に記憶されたプロセッサ実行可能命令は、複数のプロセッサのうちの1つ、コプロセッサ、およびピアプロセッサのグループから選択されたプロセッサによって実行されるように構成される。
他の実施形態は、少なくとも、データがスクランブルされた1つのセキュアドメインおよび1つの非セキュアドメインで構成されたメモリと、メモリに結合されたメモリコントローラと、メモリおよびメモリコントローラに結合されたプロセッサとを含むコンピューティングデバイスを含み、プロセッサは、コンピューティングデバイスのバスを介して送信されたデータにタギング情報を付加するステップと、メモリに記憶されるべきデータが保護コンテンツを含むかどうかをタギング情報に基づいて判断するステップ、データが保護コンテンツを含むときにメモリ内のセキュアドメインにデータを記憶することの一部としてスクランブリングルーチンをデータに適用するステップ、およびデータが保護コンテンツを含まないときにスクランブリングルーチンをデータに適用することなく非セキュアドメインにデータを記憶するステップを含む動作を実行するようにメモリコントローラをプログラムするステップとを含む動作を実行するためのプロセッサ実行可能命令をともなって、構成される。保護コンテンツは、デジタル著作権管理(DRM)の下のデータ、個人情報、セキュリティ情報、バンキング情報、パスワード、認証情報、保護コンテンツアプリケーション情報、および医療データであってよい。メモリは、キャッシュメモリ、揮発性メモリ、不揮発性メモリ、およびオフチップストレージであってよい。一実施形態では、プロセッサは、コンピューティングデバイスのバスを介して送信されたデータにタギング情報を付加するステップが、データが記憶され得るセキュリティドメインに相関するデータに情報を付加するステップを含み得、かつメモリに記憶されるべきデータが保護コンテンツを含むかどうかをタギング情報に基づいて判断するステップが、タギング情報を、認可されたセキュリティドメインに相関する記憶された識別子と比較するステップを含み得るような動作を実行するように、プロセッサ実行可能命令で構成され得る。データに付加されたタギング情報は、仮想マシン識別(VMID)、バスマスター識別、宛先ストレージアドレス、データのソースもしくはコンテンツの識別子、および/またはコンテンツ保護(CP)ビットであってよい。他の実施形態は、前述の動作をそのようなコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能命令を記憶した非一時的記録媒体を含む。
他の実施形態は、コンピューティングデバイスのバスを介して送信されたデータにタギング情報を付加するための手段と、メモリに記憶されるべきデータが保護コンテンツを含むかどうかをタギング情報に基づいて判断するステップ、データが保護コンテンツを含むときにメモリ内のセキュアドメインにデータを記憶することの一部としてスクランブリングルーチンをデータに適用するステップ、およびデータが保護コンテンツを含まないときにスクランブリングルーチンをデータに適用することなく非セキュアドメインにデータを記憶するステップを含む動作を実行するようにメモリコントローラをプログラムするための手段とを含むコンピューティングデバイスを含む。一実施形態では、コンピューティングデバイスのバスを介して送信されたデータにタギング情報を付加するための手段が、データが記憶され得るセキュリティドメインに相関するデータに情報を付加するための手段を含み得、かつメモリに記憶されるべきデータが保護コンテンツを含むかどうかをタギング情報に基づいて判断するステップが、タギング情報を、認可されたセキュリティドメインに相関する記憶された識別子と比較するステップを含み得る。
本明細書に組み込まれ、本明細書の一部をなす添付の図面は、本発明の例示的な態様を示し、上記の全般的な説明および下記の発明を実施するための形態とともに、本発明の特徴を説明するのに役立つ。
様々な態様とともに使用するのに適した保護データを配信する様々なコンピューティングデバイスのコンポーネントの通信システムブロック図である。 セキュリティドメインを記述し、ハイパーバイザオペレーティングシステムルーチンによってアクセス可能な例示的なデータテーブルのコンポーネントブロック図である。 仮想マシン識別情報に基づいてメモリ内の保護コンテンツをスクランブルするための態様方法を示すプロセスフロー図である。 宛先メモリアドレスに基づいてメモリ内の保護コンテンツをスクランブルするための態様方法を示すプロセスフロー図である。 コンテンツ保護ビット情報に基づいてメモリ内の保護コンテンツをスクランブルするための態様方法を示すプロセスフロー図である。 様々な態様とともに使用するのに適した例示的なワイヤレスモバイルコンピューティングデバイスのコンポーネントブロック図である。 様々な態様とともに使用するのに適した例示的なラップトップコンピューティングデバイスのコンポーネントブロック図である。
様々な態様について添付の図面を参照して詳細に説明する。可能な場合はいつでも、同じ参照番号は、図面全体を通して同じまたは同様の部分を指すために使用される。特定の例および実装形態に行われる参照は、説明を目的とし、本発明の範囲または特許請求の範囲を限定するものではない。
「例示的な」という言葉は、例、事例、または例示として機能することを意味するように本明細書で使用される。本明細書に「例示的な」と記載されるいかなる実装形態も、必ずしも他の実装形態よりも好ましいか、または有利であると解釈されるべきではない。
「コンピューティングデバイス」という用語は、本明細書では、携帯電話と、スマートフォンと、パーソナルまたはモバイルのマルチメディアプレーヤと、携帯情報端末(PDA)と、ラップトップコンピュータと、デスクトップコンピュータと、タブレットコンピュータと、スマートブックと、パームトップコンピュータと、ワイヤレス電子メール受信機と、マルチメディアインターネット対応携帯電話と、テレビジョンと、スマートTVと、スマートTVセットトップバディボックスと、一体化スマートTVと、ストリーミングメディアプレーヤと、スマートケーブルボックスと、セットトップボックスと、デジタルビデオレコーダ(DVR)と、デジタルメディアプレーヤと、プログラマブルプロセッサ、メモリ、ならびに少なくともワイヤレスおよび/またはワイヤードデータ送信を送信することおよび/または受信すること、ローカルまたはリモートデータベース構造にアクセスすること、および様々な計算を実行することが可能な回路を含む同様のパーソナル電子デバイスとのうちのいずれか1つもしくは全部を指すために使用される。
様々な態様は、トランザクションタギングに基づくスクランブリングを用いる保護データの差動(または選択的)スクランブリングを利用することによって、より小さい複雑さのランダムアクセスメモリ(RAM)スクランブリング技法の引き下げられたセキュリティの問題を解決する。一般に、アプリケーションは、コンピューティングデバイス上で実行されるオペレーティングシステム内にロードされ、登録され得る。オペレーティングシステムまたはメモリコントローラは、セキュリティドメインを確立し、既知のアプリケーションを特定のドメインと関連付けることができる。オペレーティングシステム、メモリコントローラ、またはメモリへのアクセスを制御する他のユニットは、コンピューティングデバイス内のデータにアプリケーションがいかにアクセス(たとえば、記憶)し得るかを規定するパーミッションセットを利用し得る。たとえば、アプリケーションは、ダブルデータレート(DDR)メモリなど、ローカルメモリ内の特定のエリアに対応する特定のセキュリティドメインにアクセスすることを許されない。一態様では、コンピューティングデバイスは、オペレーティングシステム内のトップレベルルーチン、すなわちコンピューティングデバイス内でセキュリティドメインを管理する「ハイパーバイザ」を実行し得る。登録されたアプリケーションの規定されたパーミッションに基づいて、ハイパーバイザは、他のデータに対してではなく保護データに対してRAMスクランブリングをもたらすために、様々なアプリケーションに関連するデータを処理/記憶するように、メモリコントローラを指示または構成することができる。ハイパーバイザは、この決定を行うことの一部として全セキュリティドメインに対するコンテンツ、パーミッション、および登録されたアプリケーションを記述する情報にアクセスし得る。たとえば、ハイパーバイザは、様々なアプリケーションに対する識別情報または識別コードを特定のセキュリティドメインと関連付けるデータテーブルにアクセスし得る。
代替態様では、セキュリティドメインは、他のルーチンまたはハイパーバイザとは別個のクライアントソフトウェアによって管理され得る。たとえば、オペレーティングシステムのハイパーバイザから切り離されたファイアウォールマネージャルーチンが、セキュリティドメインを管理し得る。そのような場合、ハイパーバイザは、セキュリティドメインハードウェアへのアクセスを排除され、信頼されるコードとして認定されない。加えて、セキュリティドメイン管理は、メモリコントローラまたは別の記憶ユニットコントローラなどのハードウェアによって実行され得る。
コンピューティングデバイスのプロセッサによる実行の間、アプリケーションは、データバスを介して情報トランザクションを実行し得る。様々な態様では、バスは、コンピューティングデバイスの様々なコンポーネント間で物理的接続を生成する、内部バス(たとえば、システム、データなど)および/または外部バス(たとえば、シリアルバス)を含み得る。バスコントローラ(またはバスマスター)は、バスを介して進む情報トランザクションを管理し得る。様々な態様を説明するために、データバスを介して実行されるそのような情報トランザクションは、「データバストランザクション」と呼ばれる。バスマスターは、データバストランザクションに、ソースアプリケーションのインジケータ(すなわち、タグまたはタギング情報)および/または送信された情報の特性を与え得る。一態様では、バスマスターは、通信リンクまたは不揮発性ストレージからDRMコンテンツを受信するアプリケーションによるデータバストランザクションなど、保護コンテンツを含むデータバストランザクションにタグ付けすることができる。バスコントローラは、アプリケーションを実行し、バスを介して伝達されるデータを生成するために使用される仮想マシンID(VMID)を示すタギング情報を付与することができる。代替的に、タギング情報は、コンピューティングデバイスがアプリケーション間の動作区画を区別することを可能にするデータバストランザクションまたは他の識別コードにタギング情報を付与したバスマスター(すなわち、バスID)を識別し得る。一態様では、VMIDは、バスマスターIDのセットを表し得る。一態様では、バスコントローラはまた、DRMコンテンツデータを処理するために認可されたアプリケーションからのDRMコンテンツを含むデータバストランザクションに特定のタグを付与し得る。たとえば、バスコントローラは、保護コンテンツの存在を示すデータビットを設定することによって、DRMメディア読出しアプリケーションからのデータバストランザクションにタグ付けすることができる。
タグ付けされたデータバストランザクションは、コンピューティングデバイス内のまたはコンピューティングデバイスと関連付けられた様々な宛先コンポーネントに導かれ得る。第1に、データバストランザクションは、RAMなどの内部メモリユニットに送信され、そこで受信され得る。しかしながら、様々な態様では、データバストランザクションは、内部メモリユニット、および/またはPCI Express、PCI Express mobile、もしくは任意の他のワイヤプロトコルを介してコンピューティングデバイスに接続されたリモートのストレージまたはメモリユニットを含む任意のオフチップメモリに送信され得、それらの中でスクランブルされ得る。
タグ付けされたデータバストランザクションが、内部メモリなどの宛先コンポーネントに到達すると、ハイパーバイザソフトウェアは、データバストランザクションのタギング情報を使用して、データバストランザクションを開始するアプリケーションに対して、関連付けられたセキュリティドメインを決定することができる。たとえば、特定のセキュリティドメインと関連付けられたアプリケーションによって生成されたトランザクションは、特定のVMIDでタグ付けされ得る。決定されたセキュリティドメインの関連付けに基づいて、ハイパーバイザは、RAMユニットに対するコントローラなど、様々なコンポーネントコントローラに対して、コンポーネントコントローラによって受信されたデータがどのように処理され得るかを指示し得る。特に、ハイパーバイザは、アプリケーションによって生成されたデータを暗号化するために、メモリコントローラがRAMスクランブリングアルゴリズムを実行すべきかどうかを、メモリコントローラに教示し得る。たとえば、ハイパーバイザは、そのタグ付けされたVMIDに基づいて、受信されたデータをスクランブルして記憶するように、DDRメモリコントローラに指示し得る。一態様では、セキュリティドメインは、複数のVMID、バスID、および/またはメモリアドレスレンジのセットと関連付けられ得る。
データは、保護された(たとえば、保護コンテンツセキュリティドメインと関連付けられたVMIDによって生成された)セキュリティドメインと関連するときだけ、メモリコントローラによってスクランブルされるので、コンピューティングデバイスは、データ保護を必要としないアプリケーションからRAMに送信されたデータを含む、メモリユニットに記憶されたすべてのデータをスクランブルすることを回避するためにタギング情報を使用することができる。これによって、コンピューティングデバイスは、パターンマッチング攻撃を無力化すること、RAMスクランブリングのためにあまり複雑でない暗号化方式を使用すること、および暗号化動作を保護コンテンツデータにだけ適用することが可能になる。
一態様では、コンピューティングデバイスは、宛先メモリアドレスに基づいて選択的メモリスクランブリングを実行し得る。アプリケーションによって生成されたデータバストランザクションは、メモリアドレス(たとえば、メモリユニット内のいくつかの物理アドレス)の特定の範囲内のストレージに対して指示され得る。コンピューティングデバイスが、データバストランザクションの宛先メモリアドレスをメモリの所定の「保護」エリアに関連するものと認識する場合、コンピューティングデバイスは、ストレージプロセスの一部としてデータをスクランブルするようにメモリコントローラに指示し得る。
一態様では、コンピューティングデバイスは、メモリコントローラを介して、データバストランザクション内に含まれるかまたはデータバストランザクションと関連付けられたカスタムビットの値に基づいて、バストランザクションデータをスクランブルすることができる。たとえば、特定のデバイスに対するバスマスターは、データバストランザクションがRAMスクランブリングを受けるかどうかを制御する目的でデータバストランザクションの品質、性質またはコンテンツを規定するために、送信されたデータバストランザクションの各々における1つまたは複数のビットを利用し得る。データバストランザクションが保護コンテンツを含むことを、カスタムビットまたはコンテンツ保護(CP)ビットが示す場合、コンピューティングデバイス(たとえば、メモリコントローラ)は、データ記憶プロセスの一部としてデータをスクランブルすることができる。
一態様では、メモリコントローラは、セキュリティドメインを規定するデータを記憶し、そのデータに直接アクセスすることができる。たとえば、DDRコントローラは、受信されたデータバストランザクション内のタギング情報を、DDRコントローラによって維持される(またはDDRコントローラ内にプログラムされる)データテーブルと比較し得る。したがって、メモリコントローラは、ハイパーバイザルーチンまたはコンピューティングデバイスのオペレーティングシステムと関連付けられた同様のソフトウェアからの指示または入力なしに、データバストランザクションが保護データを含むかどうかを判断し得る。
様々な態様では、コンピューティングデバイスは、データバストランザクション特性(たとえば、トランザクションアイデンティティ、保護区分など)を規定するため、関連付けられたセキュリティドメインを識別するため、および/またはデータバストランザクションを生成するアプリケーションを識別するために、データテーブル、データベース要素、ハードコード化された定義、オペレーティングシステムコール、ならびに情報を参照するための他のメカニズムを互換的に利用し得る。データを分類するためにコンピューティングデバイスがデータテーブルを使用することの記述は、コンピューティングデバイスプロセッサまたはバスコントローラが、選択的RAMスクランブリングのためにデータをいかにして分類、識別、または参照し得るかの非限定的な例として提供されている。たとえば、データバストランザクション内のデータの性質を識別するために、コンピューティングデバイスは、ハイパーバイザを介して、オペレーティングシステムコールまたはデータバストランザクションをメモリに送信するために使用されるコンピューティングデバイス要素に基づいて、データバストランザクションの性質を決定し得る。
様々な態様では、スクランブリング動作を実行するためにハードウェアを構成し、ポリシーを設定する(たとえば、様々なセキュリティドメインと関連付けられたアプリケーションなどを規定する)ソフトウェアまたはコンポーネントは、メモリ内のデータをスクランブルしない。たとえば、コンピューティングデバイスと関連付けられたハイパーバイザ、ファイアウォールマネージャ、または他のソフトウェアは、データバストランザクションと関連付けられたタギング情報を評価し得るが、メモリ内の関連付けられたデータをスクランブルしない。加えて、バスコントローラは、メモリ内のデータをスクランブルせず、メモリコントローラなど、コンピューティングデバイス内の様々なコンポーネントにタギング情報を付与し、そうでなければデータバストランザクションをそれらのコンポーネントに導くことができるだけである。一般に、スクランブリングの動作およびアルゴリズムは、もっぱら、メモリコントローラのみによって実行され得る。
様々な態様では、コンピューティングデバイスは、暗号化(またはスクランブリング)鍵を回転することによってRAMスクランブリングのセキュリティをさらに増強し得る。コンピューティングデバイスによって実行されるメモリスクランブリングアルゴリズムは、コンピューティングデバイスの保護要素または信頼される要素にだけ知られている暗号化鍵、秘密の鍵または符号化キーを利用し得る。たとえば、メモリコントローラユニットおよびハイパーバイザは、メモリ内に記憶され、メモリから検索されるコンテンツをスクランブルおよび逆スクランブルするために使用される秘密の暗号化鍵を共有し得る。本明細書で説明するRAMスクランブリング方法(たとえば、仮想マシン識別、宛先メモリアドレス、および/またはコンテンツ保護ビット情報に基づく方法)に加えて、コンピューティングデバイスは、所定のスケジュールまたは周波数で暗号化鍵を回転(または修正)し得る。秘密の暗号化鍵を定期的に回転させることによって、コンピューティングデバイスは、スプーフィングされた証明書を使用してコンピューティングデバイス内に記憶されているデータへの不適切なアクセスを得ようとする不正なアプリケーションをさらに防ぐことができる。
一態様では、保護コンテンツはまた、保護コンテンツデータ(すなわち、保護コンテンツアプリケーション情報)にアクセスするか、それを変更するか、またはそうでなければ処理するアプリケーションのための動作命令またはプログラム命令を含み得る。たとえば、アプリケーションのコードまたは命令を含むDRMコンテンツレンダリングアプリケーションに関する情報は、保護コンテンツとしてメモリ内に記憶され得る。
図1Aは、コンピューティングデバイス100内のデータバストランザクションのフローを示す。コンピューティングデバイスのプロセッサまたは中央プロセッサユニット(CPU)101は、多数のソフトウェアアプリケーションを実行し、アプリケーションメモリまたはキャッシュストレージにアプリケーションデータを記憶することができる。たとえば、CPU 101は、インストールされたアプリケーションApp Z 106、App B 104、App A 102ならびにハイパーバイザ115ルーチンを含むオペレーティングシステムソフトウェアを同時に実行し得る。アプリケーション102、104および106は、インターネットブラウジングをイネーブルすること、リモートデータサーバと通信すること、およびハードドライブ上にローカルに記憶されているオーディオデータを表現する(render)ことなど、様々な機能をコンピューティングデバイス100内で実行し得る。CPU 101上で実行する間、アプリケーション102、104および106は、データバストランザクション111、112、114を生成し得る。たとえば、App Aは、内部メモリ120に一時的に記憶されるべきコンフィギュレーションデータ(たとえば、クッキー情報)を生成するインターネットブラウザアプリケーションであってよい。CPU 101は、バス126を横切るデータバストランザクション111、112、114を内部メモリ120に導くことができる。一態様では、データバストランザクション111、112、114は、代替的に、ワイヤプロトコル(たとえば、PCI Express、PCI Express Mobile)を介するリモートDDRなど、様々なオフチップメモリユニットに送信され得る。
バスコントローラ128は、データバストランザクション111、112、114の各々に識別情報をタグ付けすることができる。上記で説明したように、そのようなタギング情報は、データバストランザクションを作成するアプリケーションを記述するインジケータ(たとえば、VMID)、情報を識別するバスコントローラ128、データバストランザクション内のコンテンツの特性、および宛先メモリアドレスに関連する情報を含み得る。データバストランザクション111、112、114は、バス126を横切って進み、メモリコントローラユニット110によって処理され得る。たとえば、メモリコントローラユニット110は、データバストランザクション114内のデータをスクランブルすることができる。
メモリコントローラ110は、データバストランザクションのタギング情報をハイパーバイザ115ルーチンに伝達し、応答命令をハイパーバイザ115ルーチンから受信することができる。データバストランザクションのタギング情報を受信すると、ハイパーバイザ115は、データバストランザクション111、112、114の各々のタギング情報(たとえば、VMID)を評価し得る。一態様では、ハイパーバイザルーチン115は、図1Bを参照して以下で説明するように、データバストランザクションのタグの各々をセキュリティドメインのデータテーブルと比較し、テーブルから得られた各タグに対する適切な規則に従って記憶するためにデータバストランザクション111、112、114を処理するように、メモリコントローラ110に指示することができる。たとえば、タギング情報に基づいて、ハイパーバイザ115は、非保護コンテンツアプリケーション102、104からのデータバストランザクション111、112をスクランブルされないメモリ122の一部に導くように、メモリコントローラ110に教示し得る。しかしながら、App Z 106を識別するタギング情報と関連付けられたセキュリティドメインに基づいて、関連するデータバストランザクション114は、内部メモリ124のスクランブルされた部分に導かれ得る。言い換えれば、データバストランザクション114は、保護コンテンツアプリケーション106から来たものとして認識され、したがってスクランブルされ、RAM 124のセキュアな部分にセーブされ得る。一態様では、RAMスクランブリング(またはスクランブルされたデータ)は、メモリの特定のセグメントまたは区画に限定され得る。したがって、タギング情報に基づいてデータをメモリに導くプロセスは、非保護コンテンツアプリケーションデータをスクランブルされないセグメント/区画に送ることができる。このようにして、非保護コンテンツアプリケーションまたは保護コンテンツを記憶することを認可されないアプリケーション(たとえば、マルウェア)は、RAMスクランブリングを受けず、保護されないメモリの部分にのみアクセスすることができる。
図1Bは、コンピューティングデバイス100内で実行するハイパーバイザ115ルーチンによって利用される、簡略化された態様のセキュリティドメインのデータテーブル150を示す。上記で説明したように、ハイパーバイザ115は、データバストランザクションと関連付けられタギング情報を、セキュリティドメインのデータテーブル150との比較に基づいて処理し得る。セキュリティドメインのデータテーブル150は、各セキュリティドメインに対する記録152、154を含めて、コンピューティングデバイスによってサポートされる様々なセキュリティドメインを記述し得る。記録152、154は、様々なドメインと関連付けられたアプリケーションに対するアプリケーション識別情報を記憶し得る。たとえば、特定のセキュリティドメインに対する記録154は、特定のVMIDを有するアプリケーションがそのドメインと関連付けられていることを示す情報を含み得る。一態様では、セキュリティドメインのデータテーブル150は、メモリユニット内のアドレス、バスコントローラ識別、および/または様々なセキュリティドメインのアプリケーションと関連付けられた特別なビット値(たとえば、CPビット)を示す記録を含み得る。別の態様では、ハイパーバイザ115は、図1Aを参照して上記で説明したようなメモリコントローラを構成し得、かつ/またはメモリコントローラがハードウェア(HW)ルックアップ動作を使用してセキュリティドメインのデータテーブル150を利用し得るようにセキュリティドメインのデータテーブル150を記憶し得る。
図2は、仮想マシンID情報に基づいてデータバストランザクション内の保護データを処理してスクランブリングするための態様方法200を示す。仮想マシンは、当技術分野でよく知られており、一般に、仮想マシンが他のアプリケーションを実行し得るいくつかの実行環境(たとえば、エミュレートされたシステム)を確立するように構成されたソフトウェアとして定義され得る。コンピューティングデバイスは、そのオペレーティングシステムおよび/またはハイパーバイザルーチンを介して、コンピューティングデバイス上で実行する仮想マシンに一意の識別コードまたはVMIDを割り当て得る。VMIDは、上記で説明したように、システムデータの中に記憶され得、セキュリティドメインと関連付けられ得る。一態様では、コンピューティングデバイスは、コンピューティングデバイス内の単一のプロセッサ上で、コンピューティングデバイス内のコプロセッサ(またはピアプロセッサ)上で、またはコンピューティングデバイス内の様々なプロセッサの組合せの上で実行する仮想マシンに対するVMIDを記憶し、使用することができる。
ブロック202で、コンピューティングデバイス上で実行する仮想マシンは、1つのアプリケーションを実行し得る。たとえば、仮想マシンは、特定のハードウェア構成をエミュレートし、自動データ編集アプリケーションを実行することができる。別の例として、仮想マシンは、コンピューティングデバイスからのリソースを保存し、保存したリソースを使用してアプリケーションを実行することができる。仮想マシンは、共通の動作パラメータまたは機能特性を有する複数の個別のアプリケーションを実行し得る。たとえば、仮想マシンは、コンピューティングデバイスと似ていないハードウェア上で実行するために設計されたいくつかのアプリケーション(たとえば、ネイティブでないコンピュータアーキテクチャ上で実行するために移植されたアプリケーション)を実行し得る。一態様では、コンピューティングデバイスは、複数の仮想マシンを同時に実行し得る。
ブロック204で、仮想マシンは、アプリケーションの実行に基づいてデータを生成し得る。たとえば、仮想マシンによって実行されるアプリケーションは、システムデータ構造内に記憶される値を計算し得る。別の例として、ビデオプレーヤアプリケーションは、DRMビデオデータを生成し得る。仮想マシンは、生成されたデータを処理し、バスを横切って宛先メモリに送信されるようにデータを導くことができる。ブロック206で、バスマスター(またはコントローラ)は、生成されたデータを受信し、トランザクションが仮想マシンのVMIDを示すタギング情報を含むようなデータバストランザクションとしてパッケージングすることができる。たとえば、バスマスターは、ビデオプレーヤアプリケーションを実行する仮想マシンを表すコードで、(情報をデータに付加することなどによって)データバストランザクションをタグ付けし得る。別の態様では、バスマスターは、バスマスター識別(ID)、タイムスタンプ、アプリケーションメモリ情報、ユーザ情報、または任意の他の記述データなど、付加された情報でデータバストランザクションをタグ付けすることができる。
ブロック208で、仮想マシンによって与えられた宛先情報に基づいて、バスマスターは、バスを介して宛先メモリと関連付けられたコントローラユニットにデータバストランザクションを送信し得る。たとえば、データバストランザクションは、ローカルDDRメモリユニットに対するコントローラに導かれ得る。
ブロック210で、コンピューティングデバイスは、データバストランザクションのタギング情報内のVMIDに基づいて、データバストランザクションのデータの性質または保護区分を決定し得る。一態様では、保護区分は、バストランザクションデータを「保護された」または「保護されない」のいずれかとして定義し得る。たとえば、「保護された」保護区分を有するデータは、著作権付きメディア、セキュア情報(たとえば、バンキング情報)、個人情報、セキュリティ情報、バンキング情報、パスワード、認証情報、および医療データなどのDRMコンテンツ、ならびに制限された使用契約と関連付けられた他のデータを含み得る。一態様では、メモリコントローラは、送信されたデータバストランザクションの保護区分を決定するために、タギング情報をハイパーバイザルーチンに伝達し得る。代替態様では、ハイパーバイザは、データバストランザクションからタギング情報を直接抽出し得る。
一態様では、ハイパーバイザは、上記で説明したように、タギング情報内の仮想マシンのVMIDを識別し、VMIDを、セキュリティドメインを記述するデータテーブルと比較することができる。言い換えれば、データテーブルは、コンピューティングデバイス上で実行されるアプリケーションまたは仮想マシンへの参照を一緒に含み得る、複数のセキュリティドメインエントリを含み得る。ハイパーバイザは、VMIDと関連付けられるデータテーブル内のセキュリティドメインエントリ(たとえば、エントリはVMIDへの参照を含む)を発見し、セキュリティドメインエントリ内のデータ保護情報に基づいてデータバストランザクションの保護区分を決定することができる。たとえば、ハイパーバイザは、「保護されない」セキュリティドメインエントリ内で参照されたVMIDを発見するとき、「保護されない」保護区分を決定し得る。別の例として、ビデオアプリケーションストリーミングDRMコンテンツと関連付けられたセキュリティドメインの保護区分は、「保護される」であり得る。
代替態様では、ハイパーバイザは、上記で説明したように、タギング情報内の仮想マシンのVMIDを識別し、VMIDを、セキュリティドメインを記述するデータテーブルと比較するようにメモリコントローラ110をプログラムすることができる。言い換えれば、データテーブルは、コンピューティングデバイス上で実行されるアプリケーションまたは仮想マシンへの参照を一緒に含み得る、複数のセキュリティドメインエントリを含み得る。メモリコントローラ110は、VMIDと関連付けられるデータテーブル内のセキュリティドメインエントリ(たとえば、エントリはVMIDへの参照を含む)を発見し、そのセキュリティドメインエントリ内のデータ保護情報に基づいてデータバストランザクションの保護区分を決定することができる。たとえば、メモリコントローラ110は、「保護されない」セキュリティドメインエントリ内で参照されたVMIDを発見するとき、「保護されない」保護区分を決定し得る。別の例として、ビデオアプリケーションストリーミングDRMコンテンツと関連付けられたセキュリティドメインの保護区分は、「保護される」であり得る。
一態様では、VMIDがデータテーブル(またはコンピューティングデバイスにアクセスする他の参照知識ベース)内にない場合、ハイパーバイザは、データバストランザクションの保護区分を非保護コンテンツとして決定し得る。一態様では、データテーブルは、コンピューティングデバイスのオペレーティングシステムの一要素としてハードコード化され、コンテンツプロバイダによって供給され、かつ/またはコンピューティングデバイス上で様々なアプリケーションを実行中に更新される情報を含み得る。たとえば、データテーブルは、アプリケーションと関連付けられたコンテンツが、特定のコンテンツプロバイダからのDRM、または保護データと何らかの形で関連付けられたDRMであるとコンピューティングデバイスが判断するときに修正される、アプリケーションに対するデフォルトのデータ保護情報を含み得る。
代替態様では、VMIDがデータテーブル(またはコンピューティングデバイスにアクセスする他の参照知識ベース)内にない場合、メモリコントローラ110は、データバストランザクションの保護区分を非保護コンテンツとして決定し得る。一態様では、データテーブルは、コンピューティングデバイスのオペレーティングシステムの一要素としてハードコード化され、コンテンツプロバイダによって供給され、かつ/またはコンピューティングデバイス上で様々なアプリケーションを実行中に更新される情報を含み得る。たとえば、データテーブルは、アプリケーションと関連付けられたコンテンツが、特定のコンテンツプロバイダからのDRM、または保護データと何らかの形で関連付けられたDRMであるとコンピューティングデバイスが判断するときに修正される、アプリケーションに対するデフォルトのデータ保護情報を含み得る。
判断ブロック212で、コンピューティングデバイスは、バストランザクションデータが、決定された保護区分に基づいて保護されるかどうかを判断し得る。データが保護される場合(すなわち、判断ブロック212=「Yes」)、ブロック214で、メモリコントローラは、データバストランザクション内で送信されたデータを、メモリスクランブリングのルーチンまたはアルゴリズムを実行することによってスクランブルすることができる。様々な態様において使用され得る様々なメモリまたはRAMのスクランブリングアルゴリズムは、当技術分野でよく知られている。一方、データが保護されない場合(すなわち、判断ブロック212=「No」)、ブロック216で、メモリコントローラは、メモリ内で保護されないバストランザクションデータをスクランブルされないデータとして記憶し得る(すなわち、データを記憶することの一部としてメモリスクランブリングアルゴリズムを実行することはない)。
一態様では、データバストランザクション内のデータに付加されたタギング情報は、VMIDと、ハイパーバイザがRAMスクランブリングアルゴリズムを命令するために使用し得る追加のコード(たとえば、アプリケーションIDまたはコード)とを含み得る。たとえば、ハイパーバイザは、VMIDが、概して保護データに関するセキュリティドメインと関連付けられていると判断することがある。しかしながら、アプリケーションIDは、アプリケーションが、スクランブルされるべきデータを必要としないことを示し得る。アプリケーションIDに基づいて、ハイパーバイザは、バストランザクションデータをスクランブルしないようにメモリコントローラに指示し得る。一態様では、セキュリティドメインを規定するデータテーブルは、各仮想マシン(またはVMID)に対する一般的保護区分と、各仮想マシンによって実行されるアプリケーションに対する例外的保護区分とを含み得る。
図3は、宛先メモリアドレスに基づいてデータバストランザクション内の保護データを処理してスクランブルするための態様方法300を示す。メモリのいくつかのメモリアドレスは保護され得、認可されたアプリケーションによってのみアクセス可能である。たとえば、コンピューティングデバイスによって認可された(たとえば、保護コンテンツのセキュリティドメインエントリ内で参照された)アプリケーションは、保護メモリアドレスレンジ内にデータを書き込むことができる。別の例として、コンピューティングデバイスは、不正なまたは未確認のアプリケーションが、書き込まれるべきデータを保護メモリロケーション内に導くことを防止し得る。メモリアドレスの保護レンジ内に記憶されるデータは、メモリと関連付けられたメモリコントローラによってスクランブルされ得る。様々な態様では、宛先メモリアドレスは、メモリの特定のエリアであり得、物理メモリアドレスまたは仮想メモリアドレスによって規定され得る。一態様では、コンピューティングデバイスは、メモリまたはストレージユニットを区画化し、一定の区画、ブロック、または領域が保護データストレージのために使用されるべきであることを示すことができる。
一態様では、コンピューティングデバイスは、アプリケーションが保護メモリアドレスまたはロケーション内のデータにアクセスすることおよび/またはそのデータを記憶することを認可されているかどうかを、各アプリケーションがアクセスすることを認可されるセキュリティドメインを規定するデータテーブル内に記憶された情報に基づいて判断し得る。そのようなデータテーブルは、コンピューティングデバイス上にインストールされたアプリケーションに関連する情報、データタグ、およびアプリケーションがデータにアクセスすることおよびデータを記憶することを認可されているセキュリティドメインを含み得る。アプリケーション、データ識別子、およびセキュリティドメインに関連するそのようなデータテーブルは、データ(すなわち、データタグ)内の情報をテーブルルックアップルーチン内のルックアップ値として使用して、データタグに対応するソースまたはコンテンツを識別することによって、データのソースまたはコンテンツを決定することを容易にし得る。同様にして、アプリケーションによって生成されたデータのソースまたはコンテンツを識別するためのデータタグは、アプリケーションの名前または識別子をテーブルルックアップルーチン内のルックアップ値として使用して、対応するデータタグを識別することによって決定され得る。同じく、コンピューティングデバイスは、データ(すなわち、データタグ)内の情報をテーブルルックアップルーチン内のルックアップ値として使用して、データタグに対応するセキュリティドメインを識別することによって、データを記憶するために認可されたセキュリティドメインを識別し得る。
アプリケーションは、保護データに関連しないセキュリティドメインと関連付けられることがあり、したがって保護メモリロケーションにアクセスすることを認可されないことがある。認可されていないアプリケーションが保護メモリロケーション内にデータを記憶することを要求しているとコンピューティングデバイスが判断する場合、コンピューティングデバイスは、非保護メモリ内にデータを記憶し得る。代替として、コンピューティングデバイスは、識別情報を通知することまたはデータバストランザクションを再送信することをアプリケーションに促すことによって、アプリケーションアイデンティティ確認動作を実行し得る。一態様では、コンピューティングデバイスは、認可なしに保護メモリを要求するデータバストランザクションを無視し得る。
ブロック302で、コンピューティングデバイスは、DRMコンテンツレンダリングプログラムなどのアプリケーションを実行し得る。アプリケーションは、仮想マシンによって実行されてよく、実行されなくてもよい。ブロック304で、アプリケーションは、システムバスを介して配信するためのデータを生成し得る。アプリケーションは、生成されたデータがメモリ内の特定の宛先ストレージアドレス内に記憶されるべきであることを、バスコントローラに示し得る。たとえば、アプリケーションは、生成されたデータがメモリの特定の物理アドレスレンジに導かれるべきであることを、バスコントローラに示し得る。ブロック306で、バスコントローラは、少なくとも宛先メモリアドレスを示すタギング情報を含むデータバストランザクションとして、データをパッケージングすることができる。ブロック208で、バスコントローラは、トランザクションがメモリコントローラによって受信されるメモリに、データバストランザクションを送信し得る。
ブロック310で、ブロック210の動作を参照して上記で説明したものと同様に、コンピューティングデバイスは、宛先メモリアドレスに基づいてデータバストランザクション内の情報の保護区分を決定し得る。メモリコントローラは、データバストランザクション情報内の宛先メモリアドレスを識別し、アドレスを分析して、データバストランザクションが保護コンテンツに関連するかどうかを判断することができる。一態様では、DDRコントローラなどのメモリコントローラは、メモリの保護アドレスを用いてプログラムされ得る。別の態様では、メモリコントローラは、保護データおよび非保護データに関連するメモリアドレスを規定するデータテーブルにアクセスし得る。たとえば、データテーブルは、保護データ区分に対応するすべてのメモリアドレスを示すエントリを含み得る。代替として、データテーブルは、システムのすべてのセキュリティドメインに対するエントリを含み得、コンピューティングデバイスは、様々なセキュリティドメインエントリ内でデータバストランザクションの宛先メモリアドレスを探し出すことができる。宛先メモリアドレスと関連付けられたセキュリティドメインの特性に基づいて、コンピューティングデバイスは、データバストランザクションの保護区分を決定し得る。
判断ブロック212で、コンピューティングデバイスは、データバストランザクションの保護区分が、データがスクランブルされるべきであることを示しているかどうかを判断し得る。バストランザクションデータが保護されている場合(すなわち、判断ブロック212=「Yes」)、ブロック214で、コンピューティングデバイスは、メモリコントローラを介して、データをスクランブルし、それを、保護されたロケーションとしてあらかじめ決定されている宛先メモリアドレス内に記憶することができる。しかしながら、バストランザクションデータが保護されない場合(すなわち、判断ブロック212=「No」)、ブロック216で、コンピューティングデバイスは、スクランブリング動作を実行することなく、宛先メモリアドレス内にバストランザクションデータを記憶し得る。言い換えれば、データバストランザクションが保護されない宛先メモリアドレス内に記憶するためのデータを含むとき、データは、平文で記憶され得る。
図4は、コンテンツ保護(またはPC)ビット値に基づいてメモリ内の保護データをスクランブルするための態様方法400を示す。方法400は、方法400を使用するコンピューティングデバイスが、保護されたVMIDまたは宛先メモリアドレスを示す代わりに、CPビット値を設定することによってデータバストランザクション内のデータがスクランブルされることをもたらすことができること以外は、上記で説明した方法と同じである。一態様では、コンピューティングデバイスは、プロセッサ、モデムなど、様々なコンポーネントに対する保護インジケータを可能にするために、バス上に専用のピンまたは接続を含み得る。たとえば、モデムコンポーネントは、モデムからのデータバストランザクションが保護されたCPビットを含むことを可能にする専用ピンを含み得る。別の態様では、専用のピンを有するコンポーネントは、メモリスクランブリングのためにCPビット値を選択的に設定するように構成され得る。たとえば、保護されたCPビット値を設定するための専用のピンを有するコンポーネントは、メモリコントローラがトランザクションデータをスクランブルしないようなデータバストランザクションを送信し得る。
ブロック304で、コンピューティングデバイスは、ストレージユニットまたはメモリユニット内に記憶するためのデータを生成し得る。データは、ボイスオーバーインターネットプロトコルプログラムなど、プロセッサ上で実行するアプリケーションによって生成され得る。一態様では、データは、グラフィックスプロセッサ、周辺機器、またはモデムなど、コンピューティングデバイスを有するコンポーネントによって生成され得る。ブロック402で、コンピューティングデバイスプロセッサは、バス(たとえば、システムバス、シリアルバスなど)を介して送信するために、タギング情報を有するデータをパッケージングすることができる。データは、データが保護されているかどうかを示すCPビットを有するデータにCPビット値を付加することによって、データバストランザクションとしてパッケージングされ得る。ブロック208で、コンピューティングデバイスは、DDRコントローラなどのメモリコントローラにデータバストランザクションを送信し得る。ブロック404で、メモリコントローラは、データバストランザクションを評価(たとえば、データの保護区分を識別)し得、判断ブロック212で、データがCPビット値のタギング情報に基づいて保護されているかどうかを判断し得る。たとえば、コンピューティングデバイスは、CPビットが「1」の値を有する場合にデータが保護されるべきと判断し得、逆もまた同様に成立する。データが保護されている場合(すなわち、判断ブロック212=「Yes」)、コンピューティングデバイスは、メモリコントローラを介して、メモリ内のデータをスクランブルすることができる。代替として、データがCPビット値によって示されるように保護されない場合(すなわち、判断ブロック212=「No」)、コンピューティングデバイスは、スクランブルせず、代わりに、データバストランザクションのデータを平文で記憶し得る。
様々な態様は、種々のモバイルコンピューティングデバイス(たとえば、スマートフォン、フィーチャーフォンなど)のいずれにも実装することができ、その一例が図5に示される。たとえば、モバイルコンピューティングデバイス180は、内部メモリ502に結合されたプロセッサ501を含むことができる。内部メモリ502は、揮発性メモリまたは不揮発性メモリであり得、また、セキュアメモリおよび/もしくは暗号化メモリ、または非セキュアメモリおよび/もしくは非暗号化メモリ、またはそれらの任意の組合せであり得る。また、プロセッサ501は、抵抗性感知タッチスクリーン、静電容量感知タッチスクリーン、赤外線感知タッチスクリーンなどのタッチスクリーンディスプレイ506に結合することができる。しかしながら、モバイルコンピューティングデバイス180のディスプレイは、タッチスクリーン機能を有する必要はない。モバイルコンピューティングデバイス180は、1つまたは複数の短距離無線信号トランシーバ518(たとえば、Peanut、Bluetooth(登録商標)、Zigbee(登録商標)、RF無線)と、本明細書で説明するワイヤレス信号を送信および受信するためのアンテナ508とを有し得る。トランシーバ518およびアンテナ508は、様々なワイヤレス送信プロトコルスタック/インターフェースを実装するために、上記の回路とともに使用され得る。モバイルコンピューティングデバイス180は、セルラーネットワークを介する通信を可能にするセルラーネットワークワイヤレスモデムチップ520を含み得る。モバイルコンピューティングデバイス180はまた、ユーザ入力を受信するための物理ボタン512aおよび512bを含み得る。
パーソナルコンピュータおよびラップトップコンピュータを含む、コンピューティングデバイスの他の形態は、様々な態様を実装するために使用され得る。そのようなコンピューティングデバイスは、通常、例示的なラップトップコンピュータデバイス110を示す図6に示されたコンポーネントを含む。多くのラップトップコンピュータは、コンピュータのポインティングデバイスとして働くタッチパッドのタッチ面614を含み、したがって、タッチスクリーンディスプレイを備える上述のモバイルコンピューティングデバイスに実装されるものと同様のドラッグジェスチャ、スクロールジェスチャ、およびフリックジェスチャを受信することができる。そのようなラップトップコンピュータ110は、一般に、揮発性内部メモリ602、およびディスクドライブ606などの大容量不揮発性メモリに結合されたプロセッサ601を含む。ラップトップコンピュータ110はまた、プロセッサ601に結合されたコンパクトディスク(CD)および/またはDVDドライブ608を含む場合がある。ラップトップコンピュータ110はまた、プロセッサ601をネットワークに結合するためのネットワーク接続回路などの、データ接続を確立し外部メモリデバイスを受け入れるための、プロセッサ601に結合されたいくつかのコネクタポート610を含む場合がある。ラップトップコンピュータデバイス110は、1つまたは複数の短距離無線信号トランシーバ618(たとえば、Peanut(登録商標)、Bluetooth(登録商標)、Zigbee(登録商標)、RF無線)と、本明細書で説明するワイヤレス信号を送信および受信するためのアンテナ620とを有し得る。トランシーバ618およびアンテナ620は、様々なワイヤレス送信プロトコルスタック/インターフェースを実装するために、上記の回路とともに使用され得る。ラップトップまたはノートブック構成では、コンピュータのハウジングはタッチパッド614、キーボード612、およびディスプレイ616を含み、すべてはプロセッサ601に結合される。コンピューティングデバイスの他の構成は、よく知られているように、(たとえば、USB入力を介して)プロセッサに結合されたコンピュータマウスまたはトラックボールを含んでよく、それらはまた、様々な態様とともに使用され得る。
プロセッサ501および601は、上で説明された様々な態様の機能を含む、種々の機能を実行するためのソフトウェア命令(アプリケーション)によって構成され得る、任意のプログラマブルマイクロプロセッサ、マイクロコンピュータ、または1つもしくは複数の多重プロセッサチップであり得る。様々なデバイスでは、1つのプロセッサをワイヤレス通信機能専用とし、1つのプロセッサを他のアプリケーションの実行専用とするなど、複数のプロセッサが設けられてもよい。一般的には、ソフトウェアアプリケーションは、それらがアクセスされ、プロセッサ501および601にロードされる前に、内部メモリ502および602内に記憶され得る。プロセッサ501および601は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。多くのデバイスでは、内部メモリは、揮発性メモリ、もしくはフラッシュメモリなどの不揮発性メモリ、または両方の混合であり得る。本明細書では、メモリへの一般的な言及は、様々なデバイスに差し込まれる内部メモリまたはリムーバブルメモリと、プロセッサ501および601の中のメモリとを含む、プロセッサ501および601によってアクセス可能なメモリを指す。
上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供したものであり、様々な態様のステップを提示された順序で実施しなければならないことを要求または暗示するものではない。当業者が諒解するように、上記の態様におけるステップの順序は、どのような順序で実施されてもよい。「その後」、「次いで」、「次に」などの単語は、ステップの順序を限定するものではなく、これらの単語は、単に、方法の説明において読者を案内するために使用される。さらに、たとえば、冠詞「a」、「an」または「the」を使用する単数形での請求要素への任意の言及は、その要素を単数に限定するものとして解釈されるべきではない。
本明細書で開示された態様に関して記載された、様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装することができる。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップが、上記では概してそれらの機能に関して記載された。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
本明細書で開示された態様に関して記載された様々な例示的な論理、論理ブロック、モジュール、および回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別のハードウェアコンポーネント、または、本明細書に記載された機能を実行するように設計されたそれらの任意の組合せで、実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、そのプロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。代替的に、いくつかのステップまたは方法が、所与の機能に固有の回路によって実行され得る。
1つまたは複数の例示的な態様では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読記録媒体上に記憶され、または、コンピュータ可読記録媒体を介して送信され得る。本明細書で開示された方法またはアルゴリズムのステップは、有形の非一時的コンピュータ可読記録媒体上に存在し得るプロセッサ実行可能ソフトウェアモジュールにおいて具現化され得る。有形の非一時的コンピュータ可読記録媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのような非一時的コンピュータ可読記録媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザーで光学的にデータを再生する。上記の組合せも非一時的コンピュータ可読記録媒体の範囲内に含めるべきである。さらに、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれ得る、有形の非一時的機械可読記録媒体および/またはコンピュータ可読記録媒体上のコードおよび/または命令の1つまたは任意の組合せ、もしくはそのセットとして常駐し得る。
開示された態様の上記の説明は、任意の当業者が本発明を製作または使用できるようになされている。これらの態様への様々な修正が当業者には容易に明らかであり、本明細書で定義された一般的な原理は、本発明の趣旨または範囲を逸脱することなく、他の態様に適用することができる。したがって、本発明は、本明細書で示された態様に限定されるものではなく、以下の特許請求の範囲ならびに本明細書で開示された原理および新規の特徴に合致する、最も広い範囲を与えられるべきである。
100 コンピューティングデバイス
101 中央プロセッサユニット(CPU)
102 アプリケーションApp A
104 アプリケーションApp B
106 アプリケーションApp Z
110 メモリコントローラユニット、ラップトップコンピュータデバイス
111 データバストランザクション
112 データバストランザクション
114 データバストランザクション
115 ハイパーバイザ
120 内部メモリ
122 メモリ
124 内部メモリ、RAM
126 バス
128 バスコントローラ
150 セキュリティドメインのデータテーブル
152 記録
154 記録
180 モバイルコンピューティングデバイス
501 プロセッサ
502 内部メモリ
506 タッチスクリーンディスプレイ
508 アンテナ
512a、512b 物理ボタン
518 トランシーバ
520 セルラーネットワークワイヤレスモデムチップ
601 プロセッサ
602 揮発性内部メモリ
606 ディスクドライブ、大容量不揮発性メモリ
608 DVDドライブ
610 コネクタポート
612 キーボード
614 タッチパッド
616 ディスプレイ
618 短距離無線信号トランシーバ
620 アンテナ

Claims (54)

  1. データをパターンマッチング攻撃から効果的に保護するために、コンピューティングデバイス内で選択的メモリスクランブリングを行うための方法であって、
    メモリに記憶されるべきデータが保護コンテンツを含むかどうかを判断するステップと、
    前記データが保護コンテンツを含むときに、前記データを前記メモリに記憶することの一部としてスクランブリングルーチンを前記データに適用するステップと、
    前記データが保護コンテンツを含まないときに、前記スクランブリングルーチンを前記データに適用することなく前記データを前記メモリに記憶するステップとを含む、方法。
  2. 保護コンテンツが、デジタル著作権管理(DRM)下のデータ、個人情報、セキュリティ情報、バンキング情報、パスワード、認証情報、保護コンテンツアプリケーション情報、および医療データのグループから選択される、請求項1に記載の方法。
  3. 前記メモリが、キャッシュメモリ、揮発性メモリ、不揮発性メモリ、およびオフチップストレージのグループから選択される、請求項1に記載の方法。
  4. メモリに記憶されるべき前記データが保護コンテンツを含むかどうかを判断するステップが、
    前記データのソースまたはコンテンツを識別する前記コンピューティングデバイスのバスを介して送信されるデータにタギング情報を付加するステップと、
    前記タギング情報に基づいてトランザクションの前記ソースまたはコンテンツを決定するステップとを含み、
    前記データが保護コンテンツを含むときに、前記データを前記メモリに記憶することの一部としてスクランブリングルーチンを前記データに適用するステップが、前記決定されたソースまたはコンテンツに基づいて前記データをスクランブルし、前記メモリに記憶するステップを含む、請求項1に記載の方法。
  5. 前記コンピューティングデバイスのバスを介して送信されたデータを、前記データのソースまたはコンテンツを識別する情報でタグ付けするステップが、前記データが記憶され得るセキュリティドメインに相関する前記データに情報を付加するステップを含み、
    前記タギング情報に基づいて前記トランザクションの前記ソースまたはコンテンツを決定するステップが、前記タギング情報を、認可されたセキュリティドメインに相関する記憶された識別子と比較するステップを含む、請求項4に記載の方法。
  6. 前記データに付加された前記タギング情報が、仮想マシン識別(VMID)である、請求項4に記載の方法。
  7. 前記データに付加された前記タギング情報が、バスマスター識別である、請求項4に記載の方法。
  8. 前記データに付加された前記タギング情報が、宛先メモリアドレスであり、
    前記メモリが、保護コンテンツデータに対して特定のメモリアドレスを使用する、請求項4に記載の方法。
  9. 前記データに付加された前記タギング情報が、コンテンツ保護(CP)ビットである、請求項4に記載の方法。
  10. 前記コンピューティングデバイス内の第1のプロセッサ、前記コンピューティングデバイス内のコプロセッサ、および前記コンピューティングデバイス内のピアプロセッサのうちの少なくとも1つにおいて実行される、請求項1に記載の方法。
  11. 少なくとも、データがスクランブルされるセキュアドメインと非セキュアドメインとで構成されるメモリと、
    前記メモリに結合されたプロセッサとを備え、前記プロセッサが、
    前記メモリに記憶されるべきデータが保護コンテンツを含むかどうかを判断するステップと、
    前記データが保護コンテンツを含むときに、前記データを前記メモリ内の前記セキュアドメインに記憶することの一部としてスクランブリングルーチンを前記データに適用するステップと、
    前記データが保護コンテンツを含まないときに、前記スクランブリングルーチンを前記データに適用することなく前記データを前記非セキュアドメインに記憶するステップとを含む動作を実行するためのプロセッサ実行可能命令をともなって構成される、コンピューティングデバイス。
  12. 保護コンテンツが、デジタル著作権管理(DRM)下のデータ、個人情報、セキュリティ情報、バンキング情報、パスワード、認証情報、保護コンテンツアプリケーション情報、および医療データのグループから選択される、請求項11に記載のコンピューティングデバイス。
  13. 前記メモリが、キャッシュメモリ、揮発性メモリ、不揮発性メモリ、およびオフチップストレージのグループから選択される、請求項11に記載のコンピューティングデバイス。
  14. メモリに記憶されるべき前記データが保護コンテンツを含むかどうかを判断するステップが、
    前記データのソースまたはコンテンツを識別する前記コンピューティングデバイスのバスを介して送信されるデータにタギング情報を付加するステップと、
    前記タギング情報に基づいてトランザクションの前記ソースまたはコンテンツを決定するステップとを含むような動作を実行するように、前記プロセッサがプロセッサ実行可能命令で構成され、
    前記データが保護コンテンツを含むときに、前記データを前記メモリに記憶することの一部としてスクランブリングルーチンを前記データに適用するステップが、前記決定されたソースまたはコンテンツに基づいて前記データをスクランブルし、前記メモリに記憶するステップを含むような動作を実行するためのプロセッサ実行可能命令をともなって、前記プロセッサが構成される、請求項11に記載のコンピューティングデバイス。
  15. 前記コンピューティングデバイスのバスを介して送信されたデータを、前記データのソースまたはコンテンツを識別する情報でタグ付けするステップが、前記データが記憶され得るセキュリティドメインに相関する前記データに情報を付加するステップを含み、
    前記タギング情報に基づいて前記トランザクションの前記ソースまたはコンテンツを決定するステップが、前記タギング情報を、認可されたセキュリティドメインに相関する記憶された識別子と比較するステップを含むような動作を実行するためのプロセッサ実行可能命令をともなって、前記プロセッサが構成される、請求項14に記載のコンピューティングデバイス。
  16. 前記データに付加された前記タギング情報が、仮想マシン識別(VMID)である、請求項14に記載のコンピューティングデバイス。
  17. 前記データに付加された前記タギング情報が、バスマスター識別である、請求項14に記載のコンピューティングデバイス。
  18. 前記データに付加された前記タギング情報が、宛先ストレージアドレスであり、
    前記メモリが、保護コンテンツデータに対して特定のストレージアドレスを使用する、請求項14に記載のコンピューティングデバイス。
  19. 前記データに付加された前記タギング情報が、コンテンツ保護(CP)ビットである、請求項14に記載のコンピューティングデバイス。
  20. 前記プロセッサが、前記コンピューティングデバイス内の複数のプロセッサのうちの第1のプロセッサ、前記コンピューティングデバイス内のコプロセッサ、および前記コンピューティングデバイス内のピアプロセッサのうちの1つである、請求項14に記載のコンピューティングデバイス。
  21. 少なくとも、データがスクランブルされるセキュアドメインと非セキュアドメインとで構成されるメモリと、
    前記メモリに記憶されるべきデータが保護コンテンツを含むかどうかを判断するための手段と、
    前記データが保護コンテンツを含むときに、前記データを前記メモリに記憶することの一部としてスクランブリングルーチンを前記データに適用するための手段と、
    前記データが保護コンテンツを含まないときに、前記スクランブリングルーチンを前記データに適用することなく前記データを前記ストレージに記憶するための手段とを含む、コンピューティングデバイス。
  22. 保護コンテンツが、デジタル著作権管理(DRM)下のデータ、個人情報、セキュリティ情報、バンキング情報、パスワード、認証情報、保護コンテンツアプリケーション情報、および医療データのグループから選択される、請求項21に記載のコンピューティングデバイス。
  23. 前記メモリが、キャッシュメモリ、揮発性メモリ、不揮発性メモリ、およびオフチップストレージのグループから選択される、請求項21に記載のコンピューティングデバイス。
  24. メモリに記憶されるべき前記データが保護コンテンツを含むかどうかを判断するための手段が、
    前記データのソースまたはコンテンツを識別する前記コンピューティングデバイスのバスを介して送信されるデータにタギング情報を付加するための手段と、
    前記タギング情報に基づいてトランザクションの前記ソースまたはコンテンツを決定するための手段とを含み、
    前記データが保護コンテンツを含むときに、前記データを前記メモリに記憶することの一部としてスクランブリングルーチンを前記データに適用するための手段が、前記決定されたソースまたはコンテンツに基づいて前記データをスクランブルし、前記メモリに記憶するための手段を含む、請求項21に記載のコンピューティングデバイス。
  25. 前記コンピューティングデバイスのバスを介して送信されたデータを、前記データのソースまたはコンテンツを識別する情報でタグ付けするための手段が、前記データが記憶され得るセキュリティドメインに相関する前記データに情報を付加するための手段を含み、
    前記タギング情報に基づいて前記トランザクションの前記ソースまたはコンテンツを決定するための手段が、前記タギング情報を、認可されたセキュリティドメインに相関する記憶された識別子と比較するための手段を含む、請求項24に記載のコンピューティングデバイス。
  26. 前記データに付加された前記タギング情報が、仮想マシン識別(VMID)である、請求項24に記載のコンピューティングデバイス。
  27. 前記データに付加された前記タギング情報が、バスマスター識別である、請求項24に記載のコンピューティングデバイス。
  28. 前記データに付加された前記タギング情報が、宛先ストレージアドレスであり、
    前記メモリが、保護コンテンツデータに対して特定のストレージアドレスを使用する、請求項24に記載のコンピューティングデバイス。
  29. 前記データに付加された前記タギング情報が、コンテンツ保護(CP)ビットである、請求項24に記載のコンピューティングデバイス。
  30. 前記コンピューティングデバイス内の複数のプロセッサのうちの第1のプロセッサ、前記コンピューティングデバイス内のコプロセッサ、および前記コンピューティングデバイス内のピアプロセッサのうちの少なくとも1つを備えるアプリケーションを実行するための手段をさらに含む、請求項24に記載のコンピューティングデバイス。
  31. プロセッサ実行可能命令を記憶した非一時的プロセッサ可読記録媒体であって、前記プロセッサ実行可能命令が、
    メモリに記憶されるべきデータが保護コンテンツを含むかどうかを判断するステップと、
    前記データが保護コンテンツを含むときに、前記データを前記メモリ内のセキュアドメインに記憶することの一部としてスクランブリングルーチンを前記データに適用するステップと、
    前記データが保護コンテンツを含まないときに、前記スクランブリングルーチンを前記データに適用することなく前記データを非セキュアドメインに記憶するステップとを含む動作をプロセッサに実行させるように構成される、非一時的プロセッサ可読記録媒体。
  32. 保護コンテンツが、デジタル著作権管理(DRM)下のデータ、個人情報、セキュリティ情報、バンキング情報、パスワード、認証情報、保護コンテンツアプリケーション情報、および医療データのグループから選択されるような動作をプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項31に記載の非一時的プロセッサ可読記録媒体。
  33. 前記メモリが、キャッシュメモリ、揮発性メモリ、不揮発性メモリ、およびオフチップストレージのグループから選択されるような動作をプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項31に記載の非一時的プロセッサ可読記録媒体。
  34. メモリに記憶されるべき前記データが保護コンテンツを含むかどうかを判断するステップが、
    前記データのソースまたはコンテンツを識別する前記コンピューティングデバイスのバスを介して送信されるデータにタギング情報を付加するステップと、
    前記タギング情報に基づいてトランザクションの前記ソースまたはコンテンツを決定するステップとを含むような動作をプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成され、
    前記データが保護コンテンツを含むときに、前記データを前記メモリに記憶することの一部としてスクランブリングルーチンを前記データに適用するステップが、前記決定されたソースまたはコンテンツに基づいて前記データをスクランブルし、前記メモリに記憶するステップを含むような動作をプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項31に記載の非一時的プロセッサ可読記録媒体。
  35. 前記コンピューティングデバイスのバスを介して送信されたデータを、前記データのソースまたはコンテンツを識別する情報でタグ付けするステップが、前記データが記憶され得るセキュリティドメインに相関する前記データに情報を付加するステップを含み、
    前記タギング情報に基づいて前記トランザクションの前記ソースまたはコンテンツを決定するステップが、前記タギング情報を、認可されたセキュリティドメインに相関する記憶された識別子と比較するステップを含むような動作をプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項34に記載の非一時的プロセッサ可読記録媒体。
  36. 前記データに付加された前記タギング情報が、仮想マシン識別(VMID)であるような動作をプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項34に記載の非一時的プロセッサ可読記録媒体。
  37. 前記データに付加された前記タギング情報が、バスマスター識別であるような動作をプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項34に記載の非一時的プロセッサ可読記録媒体。
  38. 前記データに付加された前記タギング情報が、宛先ストレージアドレスであり、
    前記メモリが、保護コンテンツデータに対して特定のストレージアドレスを使用するような動作をプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項34に記載の非一時的プロセッサ可読記録媒体。
  39. 前記データに付加された前記タギング情報が、コンテンツ保護(CP)ビットであるような動作をプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項34に記載の非一時的プロセッサ可読記録媒体。
  40. 前記記憶されたプロセッサ実行可能命令が、複数のプロセッサのうちの1つ、コプロセッサ、およびピアプロセッサのグループから選択されたプロセッサによって実行されるように構成される、請求項34に記載の非一時的プロセッサ可読記録媒体。
  41. 少なくとも、データがスクランブルされるセキュアドメインと非セキュアドメインとで構成されるメモリと、
    前記メモリに結合されたメモリコントローラと、
    前記メモリおよび前記メモリコントローラに結合されており、動作を実行するようにプロセッサ実行可能命令で構成されたプロセッサとを備え、前記動作が、
    前記コンピューティングデバイスのバスを介して送信されるデータにタギング情報を付加するステップと、
    前記メモリに記憶されるべきデータが保護コンテンツを含むかどうかを前記タギング情報に基づいて判断するステップ、
    前記データが保護コンテンツを含むときに、前記データを前記メモリ内の前記セキュアドメインに記憶することの一部としてスクランブリングルーチンを前記データに適用するステップ、および
    前記データが保護コンテンツを含まないときに、前記スクランブリングルーチンを前記データに適用することなく前記データを前記非セキュアドメインに記憶するステップを含む
    動作を実施するように前記メモリコントローラをプログラムするステップとを含む、コンピューティングデバイス。
  42. 保護コンテンツが、デジタル著作権管理(DRM)下のデータ、個人情報、セキュリティ情報、バンキング情報、パスワード、認証情報、保護コンテンツアプリケーション情報、および医療データのグループから選択される、請求項41に記載のコンピューティングデバイス。
  43. 前記メモリが、キャッシュメモリ、揮発性メモリ、不揮発性メモリ、およびオフチップストレージのグループから選択される、請求項41に記載のコンピューティングデバイス。
  44. 前記コンピューティングデバイスのバスを介して送信されるデータにタギング情報を付加するステップが、前記データが記憶され得るセキュリティドメインに相関する前記データに情報を付加するステップを含み、
    前記メモリに記憶されるべきデータが保護コンテンツを含むかどうかを前記タギング情報に基づいて判断するステップが、前記タギング情報を、認可されたセキュリティドメインに相関する記憶された識別子と比較するステップを含むような動作を実行するためのプロセッサ実行可能命令をともなって、前記プロセッサが構成される、請求項41に記載のコンピューティングデバイス。
  45. 前記データに付加された前記タギング情報が、仮想マシン識別(VMID)、バスマスター識別、宛先ストレージアドレス、前記データのソースまたはコンテンツの識別子、およびコンテンツ保護(CP)ビットのうちの1つである、請求項41に記載のコンピューティングデバイス。
  46. 少なくとも、データがスクランブルされるセキュアドメインと非セキュアドメインとで構成されるメモリと、
    前記メモリに結合されたメモリコントローラと、
    前記コンピューティングデバイスのバスを介して送信されるデータにタギング情報を付加するための手段と、
    前記メモリに記憶されるべきデータが保護コンテンツを含むかどうかを前記タギング情報に基づいて判断するステップ、
    前記データが保護コンテンツを含むときに、前記データを前記メモリ内の前記セキュアドメインに記憶することの一部としてスクランブリングルーチンを前記データに適用するステップ、および
    前記データが保護コンテンツを含まないときに、前記スクランブリングルーチンを前記データに適用することなく前記データを前記非セキュアドメインに記憶するステップ
    を含む動作を実行するように前記メモリコントローラをプログラムするための手段とを含む、コンピューティングデバイス。
  47. 保護コンテンツが、デジタル著作権管理(DRM)下のデータ、個人情報、セキュリティ情報、バンキング情報、パスワード、認証情報、保護コンテンツアプリケーション情報、および医療データのグループから選択される、請求項46に記載のコンピューティングデバイス。
  48. 前記メモリが、キャッシュメモリ、揮発性メモリ、不揮発性メモリ、およびオフチップストレージのグループから選択される、請求項46に記載のコンピューティングデバイス。
  49. 前記コンピューティングデバイスのバスを介して送信されるデータにタギング情報を付加するための手段が、前記データが記憶され得るセキュリティドメインに相関する前記データに情報を付加するための手段を含み、
    前記メモリに記憶されるべきデータが保護コンテンツを含むかどうかを前記タギング情報に基づいて判断するステップが、前記タギング情報を、認可されたセキュリティドメインに相関する記憶された識別子と比較するステップを含む、請求項46に記載のコンピューティングデバイス。
  50. 前記データに付加された前記タギング情報が、仮想マシン識別(VMID)、バスマスター識別、宛先ストレージアドレス、前記データのソースもしくはコンテンツの識別子、およびコンテンツ保護(CP)ビットのうちの1つである、請求項46に記載のコンピューティングデバイス。
  51. プロセッサ実行可能命令を記憶した非一時的プロセッサ可読記録媒体であって、前記プロセッサ実行可能命令が、
    前記コンピューティングデバイスのバスを介して送信されるデータにタギング情報を付加するステップと、
    メモリに記憶されるべきデータが保護コンテンツを含むかどうかを前記タギング情報に基づいて判断するステップ、
    前記データが保護コンテンツを含むときに、前記データを前記メモリ内のセキュアドメインに記憶することの一部としてスクランブリングルーチンを前記データに適用するステップ、および
    前記データが保護コンテンツを含まないときに、前記スクランブリングルーチンを前記データに適用することなく前記データを非セキュアドメインに記憶するステップ
    を含む動作を実行するようにメモリコントローラをプログラムするステップとを含む動作をプロセッサに実行させるように構成される、非一時的プロセッサ可読記録媒体。
  52. 保護コンテンツが、デジタル著作権管理(DRM)下のデータ、個人情報、セキュリティ情報、バンキング情報、パスワード、認証情報、保護コンテンツアプリケーション情報、および医療データのグループから選択されるような動作をプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項51に記載の非一時的プロセッサ可読記録媒体。
  53. 前記コンピューティングデバイスのバスを介して送信されるデータにタギング情報を付加するステップが、前記データが記憶され得るセキュリティドメインに相関する前記データに情報を付加するステップを含み、
    前記メモリに記憶されるべきデータが保護コンテンツを含むかどうかを前記タギング情報に基づいて判断するステップが、前記タギング情報を、認可されたセキュリティドメインに相関する記憶された識別子と比較するステップを含むような動作をプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項51に記載の非一時的プロセッサ可読記録媒体。
  54. 前記データに付加された前記タギング情報が、仮想マシン識別(VMID)、バスマスター識別、宛先ストレージアドレス、前記データのソースもしくはコンテンツの識別子、およびコンテンツ保護(CP)ビットのうちの1つであるような動作をプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項51に記載の非一時的プロセッサ可読記録媒体。
JP2015526532A 2012-08-10 2013-06-13 選択的ramスクランブリングのための方法およびデバイス Ceased JP2015528596A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/571,671 2012-08-10
US13/571,671 US9400890B2 (en) 2012-08-10 2012-08-10 Method and devices for selective RAM scrambling
PCT/US2013/045681 WO2014025453A1 (en) 2012-08-10 2013-06-13 Method and devices for selective ram scrambling

Publications (2)

Publication Number Publication Date
JP2015528596A true JP2015528596A (ja) 2015-09-28
JP2015528596A5 JP2015528596A5 (ja) 2016-07-21

Family

ID=48699315

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015526532A Ceased JP2015528596A (ja) 2012-08-10 2013-06-13 選択的ramスクランブリングのための方法およびデバイス

Country Status (8)

Country Link
US (1) US9400890B2 (ja)
EP (1) EP2883186A1 (ja)
JP (1) JP2015528596A (ja)
KR (1) KR20150041095A (ja)
CN (1) CN104541281B (ja)
BR (1) BR112015002789A2 (ja)
IN (1) IN2014MN02611A (ja)
WO (1) WO2014025453A1 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286491B2 (en) 2012-06-07 2016-03-15 Amazon Technologies, Inc. Virtual service provider zones
US10075471B2 (en) 2012-06-07 2018-09-11 Amazon Technologies, Inc. Data loss prevention techniques
US9590959B2 (en) 2013-02-12 2017-03-07 Amazon Technologies, Inc. Data security service
US10084818B1 (en) 2012-06-07 2018-09-25 Amazon Technologies, Inc. Flexibly configurable data modification services
US10467422B1 (en) 2013-02-12 2019-11-05 Amazon Technologies, Inc. Automatic key rotation
US9367697B1 (en) 2013-02-12 2016-06-14 Amazon Technologies, Inc. Data security with a security module
US9705674B2 (en) 2013-02-12 2017-07-11 Amazon Technologies, Inc. Federated key management
US10210341B2 (en) 2013-02-12 2019-02-19 Amazon Technologies, Inc. Delayed data access
US10211977B1 (en) 2013-02-12 2019-02-19 Amazon Technologies, Inc. Secure management of information using a security module
US9608813B1 (en) 2013-06-13 2017-03-28 Amazon Technologies, Inc. Key rotation techniques
US9300464B1 (en) 2013-02-12 2016-03-29 Amazon Technologies, Inc. Probabilistic key rotation
US10185584B2 (en) * 2013-08-20 2019-01-22 Teleputers, Llc System and method for self-protecting data
US9397835B1 (en) 2014-05-21 2016-07-19 Amazon Technologies, Inc. Web of trust management in a distributed system
KR102218715B1 (ko) * 2014-06-19 2021-02-23 삼성전자주식회사 채널별로 데이터를 보호할 수 있는 반도체 장치
US9438421B1 (en) 2014-06-27 2016-09-06 Amazon Technologies, Inc. Supporting a fixed transaction rate with a variably-backed logical cryptographic key
US9646160B2 (en) * 2014-09-08 2017-05-09 Arm Limited Apparatus and method for providing resilience to attacks on reset of the apparatus
US9866392B1 (en) 2014-09-15 2018-01-09 Amazon Technologies, Inc. Distributed system web of trust provisioning
KR102485830B1 (ko) * 2015-02-13 2023-01-09 삼성전자주식회사 보안 정보의 처리
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
US10417458B2 (en) * 2017-02-24 2019-09-17 Microsoft Technology Licensing, Llc Securing an unprotected hardware bus
CN107562514B (zh) * 2017-08-03 2020-11-24 致象尔微电子科技(上海)有限公司 一种物理内存访问控制与隔离方法
US10901917B1 (en) * 2018-01-26 2021-01-26 Amazon Technologies, Inc. Address scrambling for storage class memory
KR102091524B1 (ko) 2018-07-23 2020-03-23 삼성전자주식회사 어드레스를 스크램블하는 메모리 장치
US11113422B2 (en) 2018-08-03 2021-09-07 Micron Technology, Inc. Data protection in computer processors
US11074198B2 (en) * 2018-09-18 2021-07-27 Micron Technology, Inc. Key management in computer processors
KR20200101049A (ko) * 2019-02-19 2020-08-27 삼성전자주식회사 어플리케이션 데이터를 관리하는 전자 장치 및 방법
CN110309678B (zh) * 2019-06-28 2021-03-19 兆讯恒达科技股份有限公司 一种内存加扰的方法
CN110309083B (zh) * 2019-06-28 2021-09-07 兆讯恒达科技股份有限公司 一种存储器数据加扰方法
US11645428B1 (en) 2020-02-11 2023-05-09 Wells Fargo Bank, N.A. Quantum phenomenon-based obfuscation of memory
CN115086017A (zh) * 2022-06-14 2022-09-20 杭州安恒信息安全技术有限公司 基于安全域的网络数据处理方法、装置、系统和电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005523519A (ja) * 2002-04-18 2005-08-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 要求元マスタidおよびデータ・アドレスを用いて統合システム内でのデータ・アクセスを限定する制御機能
JP2006155159A (ja) * 2004-11-29 2006-06-15 Fuji Electric Holdings Co Ltd 耐タンパ装置
JP2007310601A (ja) * 2006-05-18 2007-11-29 Renesas Technology Corp マイクロコンピュータおよびそのソフトウェア保護方法
JP2008040597A (ja) * 2006-08-02 2008-02-21 Sony Corp 記憶装置及び方法、並びに、情報処理装置及び方法
JP2010134572A (ja) * 2008-12-03 2010-06-17 Panasonic Corp セキュリティを実現する装置、および方法
US20120131481A1 (en) * 2010-11-22 2012-05-24 International Business Machines Corporation Dynamic De-Identification of Data

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002003604A2 (en) 2000-06-29 2002-01-10 Cachestream Corporation Digital rights management
US7567721B2 (en) 2002-01-22 2009-07-28 Digimarc Corporation Digital watermarking of low bit rate video
US7444523B2 (en) 2004-08-27 2008-10-28 Microsoft Corporation System and method for using address bits to signal security attributes of data in the address space
JP2007328619A (ja) 2006-06-08 2007-12-20 Toshiba Corp メモリシステム
US8423794B2 (en) * 2006-12-28 2013-04-16 Sandisk Technologies Inc. Method and apparatus for upgrading a memory card that has security mechanisms for preventing copying of secure content and applications
US20090292930A1 (en) 2008-04-24 2009-11-26 Marano Robert F System, method and apparatus for assuring authenticity and permissible use of electronic documents
US8179983B2 (en) 2008-05-20 2012-05-15 Broadcom Corporation Video processing system with layered video coding for fast channel change and methods for use therewith
US8583937B2 (en) * 2010-12-16 2013-11-12 Blackberry Limited Method and apparatus for securing a computing device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005523519A (ja) * 2002-04-18 2005-08-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 要求元マスタidおよびデータ・アドレスを用いて統合システム内でのデータ・アクセスを限定する制御機能
JP2006155159A (ja) * 2004-11-29 2006-06-15 Fuji Electric Holdings Co Ltd 耐タンパ装置
JP2007310601A (ja) * 2006-05-18 2007-11-29 Renesas Technology Corp マイクロコンピュータおよびそのソフトウェア保護方法
JP2008040597A (ja) * 2006-08-02 2008-02-21 Sony Corp 記憶装置及び方法、並びに、情報処理装置及び方法
JP2010134572A (ja) * 2008-12-03 2010-06-17 Panasonic Corp セキュリティを実現する装置、および方法
US20120131481A1 (en) * 2010-11-22 2012-05-24 International Business Machines Corporation Dynamic De-Identification of Data

Also Published As

Publication number Publication date
BR112015002789A2 (pt) 2018-05-22
EP2883186A1 (en) 2015-06-17
US20140047549A1 (en) 2014-02-13
CN104541281A (zh) 2015-04-22
WO2014025453A1 (en) 2014-02-13
IN2014MN02611A (ja) 2015-09-11
CN104541281B (zh) 2018-07-17
US9400890B2 (en) 2016-07-26
KR20150041095A (ko) 2015-04-15

Similar Documents

Publication Publication Date Title
US9400890B2 (en) Method and devices for selective RAM scrambling
EP3047375B1 (en) Virtual machine manager facilitated selective code integrity enforcement
RU2631136C2 (ru) Способ защищенного доступа и устройство защищенного доступа прикладной программы
US9582656B2 (en) Systems for validating hardware devices
KR100678927B1 (ko) 비보안 영역에 보안 영역을 할당하는 방법 및 이를제공하는 휴대용 저장 장치
JP2022533193A (ja) 統合された隔離されたアプリケーションにおけるランサムウェアの被害の軽減
KR20180124048A (ko) 가상 리소스 뷰들을 이용한 데이터 보호
US10897359B2 (en) Controlled storage device access
CN105408912A (zh) 处理认证和资源许可
US9977890B2 (en) Method and device for controlling access from the device to a card via a NFC interface
TW201025001A (en) Managing access to an address range in a storage device
US20170185790A1 (en) Dynamic management of protected file access
US8307181B2 (en) Apparatus and method for password protection of secure hidden memory
JP2018523208A (ja) オブジェクト指向コンテキストにおける推移問題を軽減するためのデータ監視のための技法
Atamli-Reineh et al. Analysis of trusted execution environment usage in samsung KNOX
US20150227755A1 (en) Encryption and decryption methods of a mobile storage on a file-by-file basis
US20170187527A1 (en) Obtaining A Decryption Key From a Mobile Device
US9819663B1 (en) Data protection file system
US9733852B2 (en) Encrypted synchronization
US11876835B2 (en) Techniques to enforce policies for computing platform resources
TWI501106B (zh) 保護儲存媒介資料的方法及其媒體存取裝置
Mohanty et al. Media data protection during execution on mobile platforms–A review
KR20090000566A (ko) 보안 영역을 제공하는 장치 및 그 방법
KR101776845B1 (ko) 키 조작에 대한 보호
US20130103953A1 (en) Apparatus and method for encrypting hard disk

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160530

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160530

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180612

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181203

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20190422