説明

プロセッサメインメモリのメモリコンテンツのセキュリティ保護

【課題】メモリコンテンツが署名確認(validation)処理を通過することなく改変され、及び/又は読み出されることを防ぐために、メモリデバイスの動作を認証する技術を含んだメモリデバイスを提供する。
【解決手段】メモリデバイス220はメモリセルアレイ260と、メモリセルアレイ内に設置された第1のコントローラ215とを備え、第1のコントローラは、メモリセルアレイにアクセスする書き込みコマンドを第2のメモリコントローラ212から受信し、書き込みコマンドの認証を決定し、かつ、前記決定された認証に少なくとも一部分的に基づいて、メモリセルアレイのコンテンツを改変するかどうかを決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本明細書に開示される主題は、メモリデバイス及びメモリデバイスのセキュリティに関する。
【背景技術】
【0002】
益々、メモリデバイスは、例えば、金融、医療、及び/又は履歴等の機密情報を記憶するために組み込まれ得る。更に、そのようなメモリデバイスは、実行可能なコード、システムオペレーティングパラメータ、及びその他等のコンピュータシステムを動作するために用いられた情報を記憶してもよい。あいにく、そのような重要情報及び/又は機密情報は、益々精巧なセキュリティ攻撃によって標的にされ得る。例えば、このような攻撃は、財務記録のデータベースの不正な改変(モディファイ,modify)、読み込み、及び/又は、ダウンロードを含むことがあり、識別性盗難をもたらす場合がある。
【0003】
セキュリティ技術は、例えば、メモリコンテンツが署名確認(validation)処理を通過することなく改変され、及び/又は読み出されることを防ぐために、メモリデバイスの動作を認証する技術を含んでもよい。
【発明の概要】
【0004】
非限定的かつ非網羅的な実施形態について、以下に図を参照して記載する。特に明示がない限り、類似の番号は様々な図を通して類似の部分を示す。
【図面の簡単な説明】
【0005】
【図1】図1は、実施形態に係るシステム構成を概略的に示す図である。
【図2】図2は、実施形態に係るプロセッサ‐メモリシステムを概略的に示す図である。
【図3】図3は、他の実施形態に係るプロセッサ‐メモリシステムを概略的に示す図である。
【図4】図4は、実施形態に係る、メインメモリの認証部分の処理を説明するために概略的に示す図である。
【図5】図5は、実施形態に係る、メインメモリの書き込みコマンドを認証する処理のフローチャートである。
【図6】図6は、安全なメモリ測定(measure)コマンドを実行する処理のフローチャートである。
【図7】図7は、実施形態に係る、コンピュータシステム及びメモリデバイスの概要を示す図である。
【発明を実施するための形態】
【0006】
本明細書全体を通して、「一実施形態」又は「実施形態」を参照することは、特別な特色、構造、特徴が、請求項に記載された主題の少なくとも一実施形態に含まれることを意味する。それゆえ、本明細書を通して様々な箇所における「一実施形態において」又は「実施形態」という語句の出現は、必ずしも全てが同一の実施形態を参照しているものではない。更に、特定の特色、構造、又は特徴は、1つ又は複数の実施形態において組み合わされてもよい。
【0007】
本明細書に開示された実施形態は、持続性(persistent)メモリを備えるメインメモリを含んでもよい。例えば、持続性メモリは、相変化メモリ(PCM)、NORフラッシュ、及びNANDフラッシュ等の不揮発性メモリを備えてもよい。従って、持続性メインメモリは、不揮発性メモリを含むメモリアレイを備えてもよい。一実装において、持続性メインメモリは、以下に記載するように、一部分が1つ又は複数のタイプの不揮発性メモリから構成されるとともに、他の部分は揮発性メモリから構成されるメモリアレイを含んでもよい。他の実装において、持続性メインメモリは、不揮発性メモリのみから構成されるメモリアレイを含んでもよいが、請求項の主題はそのように限定されるものではない。ここで、メインメモリとは、処理エンティティによって実行可能な1つ又は複数のアプリケーションを保持する処理エンティティによって用いられ得るメモリを指すが、請求項の主題はこの点に限定されるものではない。実装において、メインメモリの特定部分は、例えば、このような特定部分を直接アドレスすることにより、処理エンティティ(主体)によってアクセスされてもよい。直接アドレスすることは、処理エンティティがメモリの特定位置を読み出すアドレスを出してもよく、特定位置が続いて読み出される。対照的に、間接的にメモリにアドレスすることは、処理エンティティが、メモリの特定位置を読み出すアドレスを出し得る入力/出力(I/O)デバイスを伴う処理を含んでもよい。この場合、I/Oデバイスは、その特定位置にある(読み出し)データを提供することによって応答してもよい。例えば、基本入力/出力システム[バイオス(BIOS)]ソフトウェアは、処理エンティティによって直接アドレスすることによりアクセス可能ではない不揮発性メモリ、リード・オンリ・メモリ(ROM)、及び/又はフラッシュメモリ上に記憶されてもよい。
【0008】
実施形態において、メモリシステムを動作する方法は、プロセッサのメインメモリにロードされた対象のセキュリティをチェックする技術を含んでもよい。このような対象は、例えば、メインメモリに書き込まれる書き込みコマンド及び/又は書き込みコマンドに関連した情報を含んでもよい。対象のセキュリティをチェックするこのような技術は、メモリデバイス内の認証された動作を実行する機能を持つメモリデバイスを含んでもよい。例えば、セキュリティ署名を確認する処理は、メモリデバイスのコンテンツが改変(モディファイ,modify)される前に実行されてもよい。対象のセキュリティをチェックすることは、安全なハッシュアルゴリズム(SHA)測定及び/又は他の暗号測定(measurement)を実行することを含んでもよい。このような測定は、比較的時間を消費する可能性があるが、本明細書に開示される実施形態は、このような暗号測定を実行する効率を改良する方法及び/又はメモリデバイスを含む。例えば、効率は、このような暗号測定を実行するのに掛かる時間を減少させること、及び/又はプロセッサメモリ上に置かれた動作要求を減少させることによって改良されてもよい。例えば、メインメモリが持続性メモリを備える場合、このような測定が不揮発性メモリに記憶される間、暗号測定は比較的頻繁に実行されない可能性がある。
【0009】
実施形態において、中央処理装置(CPU)等の処理エンティティを備えるシステムは、持続性メインメモリを含んでもよい。例えば、持続性メインメモリは、CPUによって用いられるメインメモリ及び/又はキャッシュメモリの少なくとも一部を備えてもよい。このようなシステムは、いくつか例を挙げると、例えば、コンピュータ、携帯電話、PDA、データロガー、及びナビゲーション装置等の多数の環境において、アプリケーションを実行するコンピュータシステムを備えてもよい。実装において、このようなシステムは、例えば、ハイパーバイザー等の仮想化のためのリソースマネージャーを含んでもよい。いくつかの実施例において、メインメモリ及び/又はキャッシュメモリは、持続性メモリの一部及び他のタイプのランダムアクセスメモリ(RAM)の一部を備えてもよい。特定の実施例において、メインメモリは、少なくともPCM及びダイナミック・ランダム・アクセス・メモリ(DRAM)の一部を含んでもよい。このようなメモリ構成は、例えば、不揮発性の比較的高いプログラム/読み出し速度、及び/又は長くなったPCM使用期間等の利益を提供する。
【0010】
一実装において、持続性メインメモリは、他の事柄もある中で、持続性メインメモリに記憶されたコンテンツのセキュリティ保護に関係する情報を再決定する必要を避ける利益を提供してもよい。このような情報は、以下に記載するように、例えば、SHA測定、暗号キー、及び/又は、署名、その他を含んでもよい。他の実装において、持続性メインメモリは、以下に詳細に記載するように、外部不揮発性メモリから揮発性DRAMにそのようなセキュリティ情報をリロードする必要を避ける利益を更に提供してもよい。そうでなければ、このようなセキュリティ情報を再決定すること及び/又はリロードすることは、セキュリティ情報が、例えば、持続性メモリに保持されない場合、プロセッサのリブート処理中に生じてもよい。従って、改良されたセキュリティ保護は、持続性メインメモリによって提供された多数の利点に含まれる。勿論、PCM又は他の持続性メモリをメインメモリとして含む実施形態のこのような特色及び詳細は単に例示であって、請求項の主題はそのように限定されるものではない。
【0011】
コンピュータシステムの実施形態において、プロセッサは、持続性メインメモリに情報を書き込んでもよい。しかしながら、持続性メインメモリに書き込まれることが許可される前に、このような情報が認証されていない部分を含むかについてこのような情報が分析されてもよい。例えば、コンピュータウィルス、マルウェア、及びその他等のこのような認証されていない情報部分は、持続性メインメモリに既に記憶された情報の保全に対して有害である虞がある。従って、情報が認証されていない部分を含むか決定する分析は、セキュリティチェック処理を必要としてもよい。例えば、セキュリティチェック処理は、このような情報が持続性メインメモリにロードされる前に、情報のSHA測定及び/又は他の暗号セキュリティ測定(例えば、いくつか例を挙げると、MD5、SHA−1、SHA−256)を実行することを含んでもよい。このような情報が認証されていない部分を含んでいないと決定される場合、このような情報は、メインメモリRAMにロードされるように許可されてもよい。このような情報が、認証されていない部分を含むと決定される場合、このような情報はメインメモリRAMにロードされることが許可されなくてもよい。セキュリティチェック処理は、比較的時間が掛かり得る。持続性メインメモリを伴う実装において、このようなセキュリティチェック処理は、例えば、コンピュータシステムのリブート時で、又は、ユーザー特権からスーパーバイザー/安全な特権までのプロセッサジャンプに実行される必要はない。特に、セキュリティチェック処理に用いられたSHA測定及び/又は他の暗号測定等のセキュリティ情報は、持続性メインメモリに記憶されてもよい。プロセッサ及び/又は持続性メインメモリは、電力消失又は他の破壊的事象を経験する場合、このような測定は、持続性メインメモリから失なわれる必要はない。従って、このような測定及び/又は関連したセキュリティ情報が、次の再初期化(例えば、リブート)に続いて、又はユーザー特権からスーパーバイザー/安全な特権までのプロセッサジャンプ時に利用可能であってもよい。
【0012】
実施形態において、メモリシステムを動作する方法は、プロセッサによってアクセス可能なメインメモリに書き込みコマンドを受信することと、メインメモリ内で書き込みコマンドの認証を決定することとを含んでもよい。すなわち、書き込みコマンド及び/又は書き込みコマンドに関連した情報は、以下に詳細に記載されるように、メインメモリ内に置かれた1つ又は複数の電子コンポーネントによって実行されてもよい。例えば、メインメモリ内の位置は、単一チップ内の位置、ダイ上の位置、積層チップ内の位置、及び/又はICパッケージ内の位置を含んでもよい。実装において、「メインメモリ内」とは、例えば、メインメモリとコントローラへの外部インターフェースを持つ認証ロジックとを含む物理的境界内を意味してもよい。
【0013】
メインメモリは持続性メモリを備えてもよいが、このようなメインメモリは、不揮発性メモリを備える必要はない。例えば、このようなメインメモリはDRAM又は他の揮発性メモリを備えてもよい。特定の実装において、メモリシステムを動作する方法は、メインメモリ内で、書き込みコマンド及び/又は書き込みコマンドに関連した情報の決定された認証の少なくとも一部に基づいて、メインメモリのコンテンツを改変するかどうかを決定することを含んでもよい。例えば、メインメモリは、メインメモリを1つ又は複数のプロセッサへ動作的に接続するシステムバスから書き込みコマンドを受信してもよい。このような書き込みコマンドは、メインメモリ又はメインメモリの一部を改変するように認証されないと決定されるか、又そうでなければ、非認証と決定される場合、書き込みコマンドはメインメモリによって無視されてもよい。勿論、メモリシステムを動作する方法のこのような詳細は単に例示であって、請求項の主題はこの点に限定されるものではない。
【0014】
実施形態において、メモリデバイスは、メモリセルアレイ及びメモリデバイス内に配置されたコントローラを備えてもよい。このようなコントローラメモリセルアレイにアクセスする書き込みコマンドを受信するとき、コントローラは書き込みコマンドの認証を決定してもよい。メモリセルアレイは、持続性メモリを備えてもよいが、このようなメモリセルアレイは、持続性メモリを備える必要はない。例えば、このようなアレイは、DRAM又は他の揮発性メモリを備えてもよい。特定の実装において、コントローラは、書き込みコマンド及び/又は書き込みコマンドに関連した情報の決定された認証の少なくとも一部に基づいて、メモリセルアレイのコンテンツを改変するかどうかを更に決定してもよい。例えば、コントローラは、コントローラを含むメモリデバイスを1つ又は複数のプロセッサへ動作的に接続するバスから書き込みコマンドを受信してもよい。このような書き込みコマンドがメモリデバイス又はメモリデバイスの一部を改変するように認証的であるか、又あるいは認証されていると決定される場合、コントローラは、書き込みコマンドを実行してもよい。持続性メインメモリを含む実施形態において、このようなメモリデバイスは、例えば、書き込みコマンドの認証に関連した情報、及び/又は、メインメモリ及び/又はプロセッサの電力消失中の書き込みコマンドに関連した情報を保持すること等の利益を提供してもよい。このような場合、例えば、書き込みコマンドが同じプロセッサからのものであるとき、認証に関連した暗号測定が繰り返される必要はない。勿論、メモリデバイスのこのような詳細は単に例示であって、請求項の主題はこの点に限定されるものではない。
【0015】
図1は、実施形態に掛かる処理システム100を概略的に示す図である。処理システム100はCPU110、メインメモリ120、及び/又はキャッシュ130を備えてもよい。特に、CPU110は、メインメモリ120に保持された1つ又は複数のアプリケーションをホストしてもよい。図1には示していないが、処理システム100は、追加のCPU又は他のこのような処理エンティティ、追加のメインメモリ、及び/又は追加のキャッシュを備えてもよい。例えば、CPU110、メインメモリ120、及び/又はキャッシュ130は、集約的に大きなマルチプロセッサシステムのブロックを構築することを含んでもよい。一実装において、処理システム100は、1つ又は複数のレベルのキャッシュメモリを含むメモリ階層を用いて動作してもよい。任意のこのようなレベルは、複数のCPUに共有された持続性メモリを備えてもよい。例えば、キャッシュメモリは、どちらも少なくとも一部が持続性メモリを備え得る第1のレベルのキャッシュ及び第2のレベルのキャッシュを備えてもよい。他の実装において、処理システム100は、複数のオペレーティングシステムを同時に走らせるようにする(例えば、ハードウェア仮想化)リソースマネージャーを含んでもよい。このようなリソースマネージャーは、例えば、ハイパーバイザーを備えてもよい。勿論、処理システム及びキャッシュメモリのこのような詳細は単に例示であって、請求項の主題はそのように限定されるものではない。実施形態において、メインメモリ110の少なくとも一部は、持続性メモリを備えてもよい。特定の実装において、メインメモリ110の他の部分は、揮発性DRAM等の他のタイプのメモリを備えてもよい。持続性メモリの一部は、例えば、1つ又は複数のダイ構造を備え得るメインメモリ210に連続して配列される必要はない。
【0016】
図2は、実施形態に係るプロセッサ‐メモリシステム200の概観を示す図である。このようなプロセッサ‐メモリシステム200は、例えば、携帯情報端末(PDA)、携帯電話機、コンピュータデバイス、及び/又は、他の電子でバイアス等のホストデバイス(図示せず)に含まれてもよい。ホストプロセッサ210は、メモリコントローラ212を経由してメインメモリ220に通信可能に接続されてもよい。実装において、メモリコントローラ212は、例えば、メインメモリ220を備えるIC又はICパッケージの外部の単一のダイ又はICパッケージ等上のメインメモリ220の外部に配置されてもよい。例えば、ホストプロセッサ210は、メインメモリ220に情報を書き込むように、又はメインメモリ220から情報を読み出すように、メインメモリ220にアクセスしてもよい。一実装において、プロセッサ‐メモリシステム200の外部にある外部エンティティ205は、ホストプロセッサ210に通信可能に接続されてもよい。特定の実装において、外部エンティティ205は、例えば、ホストプロセッサ210にワイヤレスに通信してもよい。外部エンティティ205は、インターネットを介して、アクセス可能なサーバー又は類似のコンピュータデバイス、又は、例えば、フラッシュメモリ、光学コンピュータディスク、又は類似物等のメモリデバイスを備えてもよい。外部エンティティ205はまた、電子メールアプリケーション等の実行可能なコードを備えてもよい。ホストプロセッサ210及び外部エンティティ205は、互いに独立して、かつ/又は、異なる時間に、メインメモリ220と通信してもよいが、請求項の主題はそのように限定されるものではない。更に以下に詳細に説明されるように、外部エンティティ205は、メインメモリ220にアクセスするように試みる認証されていないコマンドを備え得るコンピュータウィルス、マルウェア、その他のソースであってもよいが、請求項の主題はこの点に限定されるものではない。例えば、外部エンティティ205は、トロイの木馬のソースであり得るインターネット上のウェブサイトのサーバーを備えてもよい。他の実施例において、外部エンティティ205は、コンピュータウィルスを含む電子メールを予期せずに開くように用いられ得る電子メールアプリケーションを備えてもよい。更に他の実施例において、外部エンティティ205は、コンピュータウィルスを疑いなしで記憶し得る携帯型フラッシュメモリデバイスを備えてもよい。このような場合、トロイの木馬、コンピュータウィルス、及び/又は、他のマルウェアの存在は、メインメモリ220にアクセスすることが認証されていない試みに終わってもよい。
【0017】
メインメモリ220は、メモリアレイ260、マイクロコントローラ215、及び/又は、セキュリティ部分240を備えてもよい。一実装において、メモリアレイ260は、データが書き込まれ得る、及び/又は、データが読み出され得るアドレス可能なメモリセルアレイを備えてもよい。メモリアレイ260は、例えば、セキュリティ部分240によって与えられたセキュリティ情報を保持することに留保され得るサブ部分等の1つ又は複数の部分270に分割されてもよい。一実装において、サブ部分270は、暗号ハッシュ値、署名、キー、及び類似のもの等のセキュリティ情報を記憶してもよい。サブ部分270の特定のメモリ位置は、例えば、メモリアレイ260の特定のメモリ位置に記憶された情報に対応するこのようなセキュリティ情報を保持するように用いられてもよい。例えば、受信された書き込みコマンドを認証するために用いられ得るこのような暗号ハッシュ値、署名、キー、及び類似のものの決定は、例えば、メインメモリ220内で実行されてもよい。メモリアレイ260は、単にいくつか例を挙げると、フラッシュメモリ、PCM、及び/又は、他の持続性メモリを備えてもよい。他の実施形態において、メモリアレイ260は、例えば、DRAM等の揮発性メモリ、又は、持続性メモリ及び揮発性メモリの組み合わせを備えてもよい。
【0018】
セキュリティ部分240は、論理回路要素、及び/又は、メインメモリ260内に保持された実行可能なコードを備えてもよい。セキュリティ部分240は、ホストプロセッサ210及び/又は外部エンティティ205から受信されたコマンドを認証してもよく、及び/又は、確認してもよい。このような認証は、例えば、セキュリティキーを用いる技術を伴ってもよい。一実装において、マイクロコントローラ215は、ホストプロセッサ210からの書き込みコマンドを(例えば、メモリコントローラ212を介して)受信してもよく、かつ、続いてこのような受信された書き込みコマンドを認証及び/又は確認するために、セキュリティ部分240を呼び出してもよい。このような認証において、マイクロコントローラ215は、例えば、適切なメモリアドレシングを用いてメモリアレイ260にアクセスすることを許可してもよい。一実装において、マイクロコントローラ215は、セキュリティ部分240からのセキュリティ情報を取り出してもよく、かつ、メモリアレイ260にそのような情報を記憶してもよい。特に、上に説明されたように、セキュリティ情報は、セキュリティ情報を記憶するために留保されたメモリアレイ260の一部を備え得るサブ部分270に記憶されてもよい。勿論、プロセッサ‐メモリシステム200のこのような詳細は単に例示であって、請求項の主題はそのように限定されるものではない。
【0019】
図3は、実施形態に係るプロセッサ‐メモリシステム300を概略的に示すブロック図である。このようなプロセッサ‐メモリシステムは、任意の数の処理エンティティを含んでもよいが、そのようなエンティティは1つだけ図3に示されている。特定の実施例において、このような処理エンティティCPU310を備えてもよい。一実装において、CPU310は、例えば、組み込まれた持続性メモリを備えるローカルメモリ(図示せず)を含んでもよい。他の実装において、CPU310は、持続性メモリを含むメインメモリ320にアクセスしてもよい。特に、持続性メモリは、キャッシュ(例えば、様々なレベルのキャッシュ)及びメインメモリを備えるメモリ階層に含まれてもよい。このようなメインメモリの少なくとも一部は、例えば、PCMを備えてもよい。このようなメモリ階層は、キャッシュ及びメインメモリを備える分散メモリを管理するように用いられてもよい。CPU310(及び、例えば、コンピュータプラットフォームに存在し得る他のCPUは、このような分散メモリを共有してもよい。単にいくつか例を挙げると、フラッシュメモリ、ハードドライブ、及び、光学コンピュータディスクを備え得る外部メモリ330は、CPU310を介してメインメモリ320に通信可能に接続されてもよい。ここで、CPU310は、外部メモリ330からメインメモリ320に情報を転送するようにメインメモリ210に書き込みコマンドを送信してもよい。残念なことに、いくつかの場合において、このような情報は、例えば、コンピュータウィルス、トロイの木馬、及び他のマルウェア等の認証されていない、恐らく悪意のあるコードを備え得る。上で言及されたように、図2を参照すると、外部エンティティは、このような認証されていないコードの他のソースを備えてもよい。本明細書に記載されたように、しかしながら、メインメモリ320は、このような認証されていない情報をメインメモリ320に書き込むことを避ける技術を実装することが可能であってもよい。
【0020】
一実装において、プロセッサ‐メモリシステム300は、コンピュータプラットフォームの一部を備えてもよい。このような実装において、CPU310は、メインメモリ320の1つ又は複数の個々のページを順番に指定し得る特定のページテーブルを指定し得るトランスレーション・ルックアサイド・バッファ(TLB)を備えるキャッシュメモリ(図示せず)を備えてもよい。メインメモリ320が、例えばDRAM等の揮発性メモリを備える実施形態において、CPU310及び/又はメインメモリ320への電力が中断される、及び/又は、中止される場合、メインメモリ320のメモリコンテンツは消失し得る。他方で、メインメモリ320が、例えばPCM等の持続性メモリを備える実施形態において、CPU及び/又はメインメモリが、中断された電源、及び/又は中止された電源を経験する場合でさえ、メインメモリ320のメモリコンテンツは保持されてもよい。このような場合、例えばページ370等のメインメモリ320の一部に保持されたセキュリティ情報は、消失される必要はなく、以下に詳細に議論するように、続く認証処理に利用可能であってもよい。勿論、プロセッサシステムのこのような詳細は単に例示であって、請求項の主題はそのように限定される必要はない。
【0021】
実施形態において、メインメモリ320は、メモリアレイ360、メモリコントローラ315、及び、セキュリティ部分340を備えてもよい。メモリアレイ360は、例えば、ページ368及びページ370を含むページ等の1つ又は複数の部分を備えてもよい。特定の実装において、ページ370は、以下に詳細に記載されるように、セキュリティ情報の少なくとも一部が記憶され得るメモリ位置を備えてもよい。セキュリティ部分340は、セキュリティ論理ブロック346、暗号キー記憶装置344、及び、メモリ範囲識別子342を含んでもよい。例えば、セキュリティ論理ブロック346は、SHA論理ブロック等の任意の多数の公知の暗号論理ブロックを備えてもよい。暗号キー記憶装置344は、情報を認証する処理のために用いた1つ又は複数のキーを記憶するレジスタ又はメモリアレイ360の他のメモリ部分を備えてもよい。従って、このようなキーは、メインメモリ320の内部の情報を備えてもよい。更に、このようなキーは、一度供給されたメインメモリ320に対して非公開であってもよい。暗号キー記憶装置344は、ユーザー、及び/又は、プロセッサ‐メモリシステム300の外部の電子エンティティに対して秘密を守り得る値であるキーを保持するために持続性メモリを備えてもよい。一実装において、プロセッサ210(図2)は、このようなキーを知る必要はない。このような場合、外部の処理又は外部のプロセッサは、ローカルプロセッサがコマンドを通過してもよく、かつ、キーを知らなくてもよいように、例えば、書き込み動作を管理していてもよい。ローカルプロセッサ210が安全な領域を更新している場合、ローカルプロセッサ210は、キーを知ってもよい。しかしながら、ローカルプロセッサが、ローカルメモリキーを知ることは比較的安全性が低い。外部の権限がキーを知るとともにコマンドを生成するほうが、安全性は高い。他の実装において、プロセッサ210は、キーを知ってもよい。このような場合、例えば、ハッカー又は潜在的なセキュリティ違反の他のエンティティがプロセッサ210へのアクセスを得ると、そのようなハッカー又は他のエンティティは、キーを取得し得るとともに、メモリに書き込んでもよい。セキュリティ論理ブロック346は、以下に詳細に議論されるように、暗号キー記憶装置344に保持されたキーを利用してもよい。メモリ範囲識別子342は、レジスタ、又は、メモリアレイ360の他のメモリ部分を備えてもよい。メモリ範囲識別子342は、セキュリティ保護されるメモリアレイ360の1つ又は複数の部分を記述する、及び/又は、識別する情報を保持する持続性メモリを備えてもよい。例えば、メモリ範囲識別子342は、認証処理を実行することなしに書き込まれることはないページ範囲を記述する情報を記憶しているレジスタを備えてもよい。
【0022】
実装において、メモリコントローラ315は、メインメモリ320の安全な部分に書き込むために用いられ得る安全な書き込みコマンドを認識するように構成されてもよい。メモリコントローラ315はまた、以下に議論されるように、メモリコンテンツの少なくとも一部の認証を再測定及び/又は再確認するために、プロセッサによって用いられ得るメモリ測定コマンドを認識するように構成されてもよい。
【0023】
メインメモリ320は、メインメモリで受信された書き込みコマンドを確かめてもよい。メインメモリ320は、このようなメモリコンテンツが、有効かつ完全に保護され続け得るように、メインメモリ320のコンテンツに対する認証されない改変を防いでもよい。メインメモリ320が持続性メモリを備える場合、書き込みコマンドの認証を決定するのに伴う1つ又は複数の処理は、プロセッサ‐メモリシステム300の再初期化において繰り返される必要はない。例えば、一度、データオブジェクトが、安全な書き込みコマンドを用いて持続性メインメモリに書き込まれると、そのメモリオブジェクトは、上書きされるまで、安全かつ完全に保護され得る。
【0024】
図4は、実施形態に係る、プロセッサ‐メモリシステム400に生じ得る処理を概略的に示す図である。プロセッサ‐メモリシステム400は、プロセッサ‐メモリシステム400が持続性メインメモリ420を含み得ることを除いて、上記のプロセッサ‐メモリシステム300と同様であってもよい。持続性メインメモリ420は、例えば、図3に示したようなCPU310と同様であり得るCPU410によってアクセス可能であってもよい。実施形態において、メインメモリ420は、メモリアレイ460、メモリコントローラ415、及び、セキュリティ部分440を備えてもよい。メモリアレイ460は、例えば、ページ468及びページ470を含むページ等の1つ又は複数の部分を備えてもよい。特定の実装において、ページ470は、以下に詳細に記載されるように、セキュリティ情報の少なくとも一部が記憶され得るメモリ位置を備えてもよい。セキュリティ部分440は、上記のセキュリティ論理ブロック346、暗号キー記憶装置344、及び、メモリ範囲識別子342と同様であり得るセキュリティ論理ブロック446、暗号キー記憶装置444、及び、メモリ範囲識別子442を含んでもよい。
【0025】
特定の実装において、かつ、以下の記載において、持続性メインメモリ420は、ページを備えてもよいが、請求項の主題はそのように限定されるものではない。例えば、持続性メインメモリ420は、ページ470及びページ468を含む複数のページを備えてもよい。特に、ページ470は、持続性メインメモリ420の特定の個々のページに対応する暗号ハッシュ値を備え得るインデックステーブルを含んでもよい。実装において、このようなインデックステーブルは、例えば、メモリコントローラ415にメモリオブジェクトを再確認する処理を実行させるように、持続性メインメモリ420の特定のページに置かれてもよい。このような再確認処理は、CPU410によるリクエスト上で実行されてもよく、CPU410は持続性メインメモリ420にメモリ測定コマンドを送信してもよい。例えば、ページ470は、ページ468に対応するハッシュ値472、ページ466に対応するハッシュ値474、ページ469に対応するハッシュ値476等を含んでもよい。このようなハッシュ値は、より早いエポック中に計算されてもよく、例えば、パワーダウン中にでさえ持続性メインメモリ420に保持されている。再確認処理の実施例は、ページ470からページ466,468及び469に延びる縦方向の矢印によって図4に示されている。図4は、ハッシュ値等の暗号情報がページ470に記憶され得ること示すが、請求項の主題はこのような相対的位置関係に限定されるものではない。例えば、ハッシュ値は、ページ468又は他のページに置かれていてもよい。勿論、持続性メインメモリのこのような詳細は単に例示であって、請求項の主題はそのように限定されるものではない。
【0026】
図5は、安全な書き込みコマンドを認証する処理500を示すフローチャート図である。このような処理は、上記のように、例えば、プロセッサ‐メモリシステム300又は400によって実行されてもよい。ブロック510において、上記のような暗号値を備える秘密キーは、メインメモリの1つ又は複数の部分に記憶されてもよい。例えば、このような秘密キーは、図3に示した暗号キー記憶装置344に記憶されてもよい。メインメモリ内にこのような秘密キーを保持することは、秘密キーがメインメモリの外部に記憶されている場合と比較して、メモリコンテンツのセキュリティを改善する利益を提供し得る。例えば、一実装において、このような秘密キーは、改変されなくてもよく、知られているソースからの認証論理に利用可能であってもよい。他の実装において、このような秘密キーは、秘密キーを更新する安全なプロトコルがある場合において改変されてもよい。ブロック520において、メインメモリは、安全な書き込みコマンドを受信してもよい。実装において、このようなコマンドは、例えば、メインメモリの外部にあるプロセッサ又はメモリコントローラからバスを介して受信されてもよい。ブロック530において、メインメモリ内のメモリコントローラは、受信された安全な書き込みコマンドを認証する処理を実行してもよい。例えば、メインメモリ内のこのようなメモリコントローラは、図3に示したメモリコントローラ315と類似のものであってもよい。実施形態において、受信された安全な書き込みコマンドを認証するこのような処理は、安全な書き込みコマンド及び/又は安全な書き込みコマンドに関連する情報にSHAエンジンを適用することを含んでもよい。一実装において、マイクロコントローラは、このようなSHAエンジンを適用するために用いられるが、請求項の主題はそのように限定されるものではない。メインメモリ内に記憶された秘密キーはまた、SHAエンジンによって実行された動作に含まれてもよい。一実装において、図3に示した安全な論理ブロック346は、このようなSHAエンジンの動作を実行するマイクロコントローラ及び/又はソフトウェアを備えてもよいが、請求項の主題はそのように限定されるものではない。従って、SHAエンジンは、例えば、ハッシュ値等の暗号署名を生成してもよい。その間に、ブロック540において、このようなハッシュ値は、例えば、ハッシュ値のインデックスを備えるページ470等メインメモリの一部に記憶されてもよい。ひし形550において、メモリコントローラ315は、安全な書き込みコマンドが信頼できるものであるか否かを決定してもよい。もしそうでなければ、処理500は、書き込みコマンドが無視されるブロック555に進んでもよい。このような場合、例えば、保護されたメインメモリに記憶されたコンテンツは、改変されなくてもよい。メモリコントローラ315が、安全な書き込みコマンドが信頼できるものであるかを決定する場合、処理500は、書き込みコマンドがメインメモリに記憶されたコンテンツを改変するように実行され得るブロック560に進んでもよい。勿論、処理500のこのような詳細は単に例示であって、請求項の主題はそのように限定されるものではない。
【0027】
図6は、安全なメモリ測定コマンドを実行する処理600を示すフローチャート図である。このような処理は、例えば、上記のプロセッサ‐メモリシステム300又は400によって実行されてもよい。ブロック610において、上記のような前の暗号計算の取得を含むハッシュ値は、メインメモリの1つ又は複数の部分に記憶されてもよい。例えば、このようなハッシュ値は、図4に示したメインメモリ420の特定のページに対応するこのようなハッシュ値のインデックスを含むページ470に記憶されてもよい。メインメモリ内のこのようなハッシュ値を保持することは、メインメモリに記憶されたオブジェクトを再認証する効率(例えば、速度)を改良する利益を提供し得る。ブロック620において、メインメモリは、安全なメモリ測定コマンドを受信してもよい。実装において、このように安全なメモリ測定コマンドは、例えば、メインメモリ外部のプロセッサ又はメモリコントローラからバスを介して受信されてもよい。ひし形630において、メインメモリ内のメモリコントローラは、安全なメモリ測定コマンドによって指定された特定のオブジェクトに対応するハッシュ値がメインメモリに既に記憶されているか否かを決定してもよい。例えば、上で言及したように、メモリコントローラは、図4に示したメインメモリ420のページ470内のハッシュ値のインデックスを検索してもよい。このようなハッシュ値が既に記憶されている場合、処理600は、既に記憶されたハッシュ値がメインメモリ内に記憶されるとともに安全なメモリ測定コマンドに指定されたオブジェクトを再認証するために用いられ得るブロック640に進んでもよい。他方で、このようなハッシュ値が利用可能でない場合、処理600は、エラー返送が生成され得るブロック635に進んでもよい。勿論、処理600のこのような詳細は単に例示であって、請求項の主題はそのように限定されるものではない。
【0028】
図7は、メモリデバイス710を含むコンピュータシステム700の実施形態例を概略的に示す図である。コンピュータデバイス704は、メモリデバイス710を管理するように構成可能な任意のデバイス、装置、又は機械を表すものとすることができる。メモリデバイス710は、マイクロコントローラ715及びメモリ722を含んでもよい。一実装において、マイクロコントローラ715は、メモリ722内に物理的に置かれてもよい。例示であって限定されるものではないが、コンピュータデバイス704は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、ワークステーション、サーバデバイス等の1つ又は複数のコンピュータデバイス及び/又はプラットフォームと、例えば、携帯情報端末(PDA)、モバイル通信デバイス等の1つ又は複数のパーソナルコンピュータデバイスもしくは装置又は1つ又は複数の通信デバイスもしくは装置と、例えば、データベース又はデータ記憶サービスプロバイダ/システムのようなコンピュータシステム及び/又は関連サービスプロバイダ性能とを含み、かつ/又はこれらの任意の組み合わせを含んでもよい。
【0029】
一実施形態において、コンピュータデバイス704は、バス740と、ホスト又はメモリコントローラ712とを通してメモリ722に動作可能に結合された1つ又は複数の処理ユニット720を備えてもよい。処理ユニット720は、データ計算手順又はデータ計算処理の少なくとも一部を実行するように構成可能な1つ又は複数の回路を表す。例示であって限定されるものではないが、処理ユニット720は、複数1つ又は複数のプロセッサ、コントローラ、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路、デジタル信号プロセッサ、プログラマブル論理デバイス、フィールド・プログラマブル・ゲートアレイ等を含んでもよく、あるいは、これらの任意の組み合わせを含んでもよい。処理ユニット720は、例えば、上で議論したメモリパーティション処理と、読み出し、書き込み、及び/又は消去等のメモリ関連動作とを処理するように、メモリコントローラ715と通信してもよい。処理ユニット720は、メモリコントローラ715と通信するように適合されたオペレーティングシステムを含んでもよい。このようなオペレーティングシステムは、例えば、バス740上でメモリコントローラ715に送信されるコマンドを生成することができる。このようなコマンドは、例えば、読み出し/書き込みコマンドを含んでもよい。一実装において、ハイパーバイザーは、1つ又は複数の追加のオペレーティングシステムを同時に走らせてもよい。例えば、このようなハイパーバイザーは、仮想環境を許すリソース(例えば、メモリ722、処理ユニット720、及び、入力/出力732)マネージャーを備えてもよい。
【0030】
メモリ722は、任意のデータストレージ機構を表す。メモリ722は、例えば、DRAM724及び/又は持続性メモリ726を含んでもよい。特定の実施形態において、メモリ722は、上に記載したように、持続性メモリの少なくとも一部を含むメインメモリから構成されてもよい。メモリ722はまた、持続性メモリの少なくとも一部を同様に含むことのあるキャッシュメモリから構成されてもよい。この例示は処理ユニット720から離れて説明したが、DRAM724の全部又は一部は処理ユニット720内に備えられていてもよく、あるいは処理ユニット720と同じ場所に設置されているか、又は処理ユニット720に結合されてもよいと理解されるべきである。
【0031】
一実施形態によれば、メモリ722の1つ又は複数の部分は、メモリ722の特定の状態によって表わされるデータ及び/又は情報を表す信号を記憶してもよい。例えば、データ及び/又は情報を表す電子信号は、データ及び/又は情報をバイナリ情報(例えば、1及び0)として表すように、メモリ722のこうした部分の状態に影響を与えるか、又は、メモリ722のこうした部分の状態を変化させることによって、メモリ722の一部分に「記憶」されてもよい。このように、特定の実装において、データ及び/又は情報を表す信号を記憶するためにメモリ部分の状態をこのように変化させることにより、メモリ722が異なる状態又は異なるものに変換される。
【0032】
1つの実施形態において、システム700は、メモリデバイス内に置かれたメモリセルアレイ及びマイクロコントローラ715を含むメモリデバイス722を備えてもよい。このようなマイクロコントローラは、例えば、図2に示したマイクロコントローラ215と類似していてもよい。システム700はまた、1つ又は複数のアプリケーションをホストするとともに、メモリセルアレイ及び書き込みコマンドを受信するメモリコントローラ712にアクセスするように書き込みコマンドを出すプロセッサ720を備えてもよい。一実装において、メモリコントローラ712は、メモリデバイスの外部に置かれ、プロセッサ720及びメモリデバイス間に配置されてもよい。マイクロコントローラ715は、メモリセルアレイにアクセスする書き込みコマンドを受信し、書き込みコマンドの認証を決定し、かつ、書き込みコマンドの決定された認証の少なくとも一部に基づいてメモリセルアレイのコンテンツを改変するかどうかを決定してもよい。このようなメモリセルアレイは、例えば、PCM等の持続性メモリを備えてもよい。
【0033】
コンピュータデバイス704は、例えば、入力/出力732を含んでもよい。入力/出力732は、人及び/又は機械の入力を受入れるように構成可能な、又は導入するように構成可能な1つ又は複数のデバイス又は機能、及び/又は、人及び/又は機械の出力を届けるように構成可能な、又は提供するように構成可能な1つ又は複数のデバイス又は機能を表すものである。例示であって限定されるものではないが、入力/出力デバイス732は、動作可能に構成されたディスプレイ、スピーカー、キーボード、マウス、トラックボール、タッチスクリーン、データポート等を含んでもよい。
【0034】
現時点で考えられる実施形態例について説明して述べてきたが、請求項の主題から逸脱することなく、他の様々な変形がなされてもよく、均等なものに置換されてもよいと当業者に理解され得るものである。加えて、本明細書に開示された主要概念から逸脱することなく、特定の状況を請求項の主題の教示に適用するように多くの変形がなされてもよい。それゆえ、請求項の主題が開示された特定の実施形態に限定されることはないと示され、そのような請求項の主題はまた、添付の特許請求の範囲に含まれる全ての実施形態及びそれらの均等物を包含するものであると示されている。

【特許請求の範囲】
【請求項1】
プロセッサによってアクセス可能なメインメモリによって書き込みコマンドを受信することであって、この書き込みコマンドは、第1のメモリコントローラを介して受信されたものであることと、
前記書き込みコマンドの認証を決定することであって、前記決定は、前記メインメモリ内に置かれた第2のコントローラによって実行されることと、
前記書き込みコマンドの前記決定された認証に少なくとも一部分は基づいて前記メインメモリのコンテンツを改変するかどうかを決定することと、
を含むことを特徴とする方法。
【請求項2】
更に、前記メインメモリ内に暗号キーを保持することを含み、前記書き込みコマンドの認証を前記決定することは、前記暗号キーに少なくとも一部分は基づいて暗号署名を生成することを含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記メインメモリは、持続性メモリを備えることを特徴とする請求項1に記載の方法。
【請求項4】
前記メインメモリは、ダイナミック・ランダム・アクセス・メモリ(DRAM)を備えることを特徴とする請求項1に記載の方法。
【請求項5】
更に、電力消失中に前記メインメモリに記憶された対応するメモリオブジェクトに対して、特定のハッシュ値を保持することを含む請求項1に記載の方法。
【請求項6】
前記メインメモリは、相変化メモリ(PCM)を備えることを特徴とする請求項1に記載の方法。
【請求項7】
メモリセルアレイと、
前記メモリセルアレイ内に設置された第1のコントローラとを備え、前記第1のコントローラは、
前記メモリセルアレイにアクセスする書き込みコマンドを第2のメモリコントローラから受信し、
前記メインメモリデバイス内に置かれた前記第1のコントローラによって実行されて前記書き込みコマンドの認証を決定し、かつ、
前記書き込みコマンドの前記決定された認証に少なくとも一部分的に基づいて、前記メモリセルアレイのコンテンツを改変するかどうかを決定することを特徴とするメモリデバイス。
【請求項8】
更に、安全なハッシュアルゴリズム(SHA)を実行するために電子コンポーネントを備えるセキュリティブロックを備えることを特徴とする請求項7に記載のメモリデバイス。
【請求項9】
更に、前記安全なハッシュアルゴリズムに用いられる暗号キーを記憶する特定のメモリ位置を備えることを特徴とする請求項8に記載のメモリデバイス。
【請求項10】
更に、安全であり得る前記メモリセルアレイの1つ又は複数の位置を表す情報を記憶する特定のメモリ位置を備えることを特徴とする請求項7に記載のメモリデバイス。
【請求項11】
前記メモリセルアレイは、持続性メモリを備えることを特徴とする請求項7に記載のメモリデバイス。
【請求項12】
前記メモリセルアレイは、ダイナミック・ランダム・アクセス・メモリ(DRAM)を備えることを特徴とする請求項7に記載のメモリデバイス。
【請求項13】
前記メモリセルアレイは、相変化メモリ(PCM)を備えることを特徴とする請求項7に記載のメモリデバイス。
【請求項14】
メモリセルアレイと、前記メモリデバイス内に設置された第1のコントローラとを備えるメモリデバイスと、
1つ又は複数のプリケーションをホストするとともに、前記メモリセルアレイにアクセスする書き込みコマンドを出すプロセッサと、
前記書き込みコマンドを受信する第2のメモリコントローラとを具備してなり、前記第2のメモリコントローラは、前記プロセッサ内に、又は前記プロセッサと前記メモリデバイス間に配置され、かつ、前記第1のコントローラは、
前記メモリセルアレイにアクセスする前記書き込みコマンドを受信し、
前記第1のコントローラによって実行されて前記書き込みコマンドの認証を決定し、かつ、
前記書き込みコマンドの前記決定された認証に少なくとも一部分的に基づいて、前記メモリセルアレイのコンテンツを改変するかどうかを決定することを特徴とするシステム。
【請求項15】
前記メモリデバイスは更に、前記安全なハッシュアルゴリズム(SHA)を実行するために電子コンポーネントを備えるセキュリティブロックを備えることを特徴とする請求項14に記載のシステム。
【請求項16】
前記メモリデバイスは更に、前記安全なハッシュアルゴリズムに用いられる1つ又は複数の暗号キーを記憶する特定のメモリ位置を備えることを特徴とする請求項15に記載のシステム。
【請求項17】
前記メモリセルアレイは、持続性メモリを備えることを特徴とする請求項14に記載のシステム。
【請求項18】
前記メモリセルアレイは、ダイナミック・ランダム・アクセス・メモリ(DRAM)を備えることを特徴とする請求項14に記載のシステム。
【請求項19】
前記メモリセルアレイは、相変化メモリ(PCM)を備えることを特徴とする請求項14に記載のシステム。
【請求項20】
前記メモリセルアレイは更に、安全であり得る前記メモリセルアレイの1つ又は複数の位置を表す情報を記憶する特定のメモリ位置を備えることを特徴とする請求項14に記載のシステム。
【請求項21】
更に、仮想環境を提供するハイパーバイザーを備えることを特徴とする請求項14に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−89108(P2012−89108A)
【公開日】平成24年5月10日(2012.5.10)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−175264(P2011−175264)
【出願日】平成23年8月10日(2011.8.10)
【出願人】(595168543)マイクロン テクノロジー, インク. (444)
【Fターム(参考)】