JP4980464B2 - 書込プロテクトされたメモリ管理ユニット・レジスタを備える論理デバイス - Google Patents

書込プロテクトされたメモリ管理ユニット・レジスタを備える論理デバイス Download PDF

Info

Publication number
JP4980464B2
JP4980464B2 JP2010504166A JP2010504166A JP4980464B2 JP 4980464 B2 JP4980464 B2 JP 4980464B2 JP 2010504166 A JP2010504166 A JP 2010504166A JP 2010504166 A JP2010504166 A JP 2010504166A JP 4980464 B2 JP4980464 B2 JP 4980464B2
Authority
JP
Japan
Prior art keywords
register
memory
management unit
module
logical device
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.)
Expired - Fee Related
Application number
JP2010504166A
Other languages
English (en)
Other versions
JP2010525456A (ja
Inventor
エス. グデス、ケビン
リドバン ユーナー、エリック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Solutions Inc
Original Assignee
Motorola Solutions Inc
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 Motorola Solutions Inc filed Critical Motorola Solutions Inc
Publication of JP2010525456A publication Critical patent/JP2010525456A/ja
Application granted granted Critical
Publication of JP4980464B2 publication Critical patent/JP4980464B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Description

コンピュータおよび他のデバイスのような、ネットワークに接続している論理デバイスに関する。
コンピュータおよび他のデバイスのような現代のネットワークに接続している論理デバイスは、本明細書においては攻撃者と呼ぶアングラ・ソース(clandestine source)からの侵入または攻撃に弱い。攻撃者は、攻撃したシステム上で自分自身のコードを実行するために、埋め込み型システムのソフトウェアの弱点を発見し、使用する。システムのデータ・インタフェースを使用してシステム内のどこかに位置するバッファ内に不正なコードを置く。次に、システムのソフトウェアの弱点を使用してコードの制御をバッファ内に転送する。多くの場合、バッファのオーバーフローまたはスタックのスマッシングを使用して、システム内にこっそり置かれた不正なコードのうちのあるものにあるシステム・コードの実行を指示する。
多くの埋め込み型論理デバイス・システムは、そのマイクロプロセッサ内に内蔵されているメモリ管理機能を使用する。この内蔵メモリ管理機能は、多くの場合、メモリ管理ユニット(MMU)である。通常、メモリ管理ユニットは、あるメモリ・アドレスの範囲を指定プロテクトを受けている範囲としてマークを付けるようにプログラムすることができる。メモリ・アドレスまたはメモリ・アドレスのある範囲にメモリ管理ユニットにより指定プロテクトを受けているアドレスとしてラベル付けされた後で、メモリ管理ユニットは、識別したアドレスのうちの1つまたは複数の何らかの無効な使用をチェックするためにこれらのメモリ・アドレスを監視する。あるアドレスの無効な使用が検出された場合には、メモリ管理ユニットは、マイクロプロセッサに警告を行い、マイクロプロセッサは適当な処置を行う。
メモリ管理ユニットが提供する1つの共通のプロテクトは、メモリの指定領域を実行可能コード専用とし、メモリの他の指定領域を非実行コード、すなわちデータ専用にすることである。攻撃者が実行しようとしている不正なコードが、アングラ・ソースからバッファに渡されると、そのコードは、メモリのデータ範囲内に書き込まれ、そのため実行することができない。しかし、その場合、攻撃者は、バッファ内でそのコードを実行しようと試みることもできる。このバッファは非実行メモリというマークが付けられているので、そこに書き込まれた攻撃者からのコードは実行されないが、メモリ管理ユニットに、マイクロプロセッサに警告を送るように指示する。
同様に、攻撃者も、メモリ管理ユニットが攻撃者のコードの実行を防止したことを知っている。この場合、攻撃者は、攻撃者のコードが実行できるように常駐しているバッファのメモリ領域に割り当てられているプロテクトを変更するために、メモリ管理ユニットを再プログラムしようと試みるかもしれない。通常、メモリ管理ユニットは、起動時にメモリ管理ユニットをプログラムするために使用するこれらのソフトウェア・ルーチンを使用して再プログラムすることができる。攻撃者がメモリ管理ユニットを再プログラムする方法を判別すると、そのバッファ内に位置する不正なコードを実行することができる。
従来の技術は、システムのメモリ内のメモリ・アドレス範囲を、データとしてまたは実行可能範囲として指定するという方法に依存してきた。この場合、システムは、外部のソースが、データ領域内に実行可能コードを格納するのを防止し、そのコードを実行するのを防止するものと見なされていた。何故なら、それは定義データによるものであるからである。しかし、頭の良い攻撃者であれば、データ・メモリの領域を実行可能領域として再定義することによりこのような技術を無効にすることができる。
攻撃者が、コンピュータのような論理デバイスにデータとして以前に表示されて、その後の攻撃者によりシステムのメモリ内に格納されたコードを実行するのを防止するための新規の技術が開示されている。 本明細書に開示する技術は、システムのメモリ管理ユニット(MMU)の再プログラミングを防止するので、アングラ・ソースは、予め指定されたメモリ・アドレス範囲を、データ・メモリから実行可能メモリに変更するために使用することができない。そのため、攻撃者が、システムに以前に表示され、実際には、実行可能コードであったシステムのメモリのデータ領域内に格納しているコードを実行するのを防止することができる。
添付の図面は、種々の例示的実施形態をより詳細に説明し、開示の例示的実施形態およびその固有の利点をよりよく理解してもらうために、当業者が使用することができる視覚的な表示である。これらの図面中、類似の参照番号は、対応する要素を示す。
種々の例示的実施形態に記載するプロテクト構成を備えるメモリ管理ユニットを有する論理デバイスである。 種々の例示的実施形態に記載するプロテクト構成を備えるメモリ管理ユニットを有する他の論理デバイスである。 種々の例示的実施形態に記載する論理デバイスのメモリ管理ユニットの構成をプロテクトするための方法のフローチャートである。 論理デバイス・プロセッサに、図1および図2のメモリ・モジュールのプロテクトされたメモリ領域に対する潜在的攻撃を通知するための方法のフローチャートである。 種々の例示的実施形態に記載するプロテクト構成を備えるメモリ管理ユニットを有するさらに他の論理デバイスである。 種々の例示的実施形態に記載する論理デバイスのメモリ管理ユニットの構成をプロテクトするための他の方法のフローチャートである。 論理デバイス・プロセッサに、図5のメモリ・モジュールのプロテクトされたメモリ領域に対する潜在的攻撃を通知するための方法のフローチャートである。 種々の例示的実施形態に記載するプロテクト構成を備えるメモリ管理ユニットを有するさらに他の論理デバイスである。 種々の例示的実施形態に記載する論理デバイスのメモリ管理ユニットの構成をプロテクトするためのさらに他の方法のフローチャートである。 論理デバイス・プロセッサに、図8のメモリ・モジュールのプロテクトされたメモリ領域に対する攻撃を通知するためのさらに他の方法のフローチャートである。 論理デバイス・プロセッサに、種々の例示的実施形態に記載するメモリ・モジュールのプロテクトされたメモリ領域に対する潜在的攻撃を通知するための方法のフローチャートである。 種々の例示的実施形態に記載するプロテクト構成を備えるメモリ管理ユニットを有するさらに他の論理デバイスである。 論理デバイス・プロセッサに、種々の例示的実施形態に記載するメモリ・モジュールのロックされているメモリ領域に対する潜在的攻撃を通知するための他の方法のフローチャートである。 プロセッサに、種々の例示的実施形態に記載するメモリ・モジュールのロックされているメモリ領域に対する潜在的攻撃を通知するための他の方法のフローチャートである。
以下の詳細な説明およびいくつかの図面においては、類似の参照番号は類似の要素を示す。
本明細書においては、「変換されたアドレス」という用語は、二次アドレスとなるおよび物理メモリを直接ポイントするメモリ・アドレスとなる、マッピング変換処理を受けたメモリ・アドレス値を意味する。変換されたアドレスの値は、物理メモリ・アドレスを表すこともできるし、または変換処理に対する入力として使用することもできる。同様に、「変換されたメモリ」は、変換されたアドレスによりアクセスされるメモリである。変換されたメモリのメモリ空間は、物理メモリを表す場合もあるし、表さない場合もある。
図1は、種々の例示的実施形態に記載するプロテクト構成を備えるメモリ管理ユニット105を有する論理デバイス100を示す。論理デバイス100は、本明細書においては、より一般的に制御モジュール110と呼ぶことができるプロセッサ110と、メモリ管理ユニット105と、メモリ管理ユニット・レジスタ・モジュール115と、メモリ・モジュール120とを備える。メモリ管理ユニット・レジスタ・モジュール115は、本明細書においては、レジスタ・モジュール115と呼ぶことができる。メモリ・モジュール120は、データ・メモリ・セクション130および実行可能メモリ・セクション135を備える。論理デバイス100は、さらに、本明細書においては、第1のインジケータ175と呼ぶことができる動作可能なインジケータ175を備える。レジスタ・モジュール115は、第1のレジスタ・ユニット140を備える。第1のレジスタ・ユニット140は、ハードウェアおよび/またはソフトウェアで実施することができる少なくとも1つの第1のレジスタ145を備える。図1の場合には、複数の第1のレジスタ145a、145b、145cを第1のレジスタ145として図示してある。図1の例示的実施形態の場合には、第1のレジスタ145は追記型レジスタである。
プロセッサ110は、第1の通信バス151を介してメモリ管理ユニット105と通信する。メモリ管理ユニット105は、メモリ・モジュール120と通信し、それにより第2の通信バス152を介して、データ・メモリ・セクション130および実行可能メモリ・セクション135の両方と通信する。プロセッサ110も、同様に、レジスタ・モジュール115内の第1のレジスタ・ユニット140と通信し、それにより第3の通信バス153を介して、第1のレジスタ・ユニット140内の第1のレジスタ145と通信する。メモリ管理ユニット105は、レジスタ・モジュール115内の第1のレジスタ・ユニット140と通信し、それにより、第4の通信バス154を介して第1のレジスタ・ユニット140内の第1のレジスタ145と通信する。プロセッサ110は、さらに、第6の通信バス156を介して動作可能なインジケータ175と通信する。
メモリ管理ユニット105は、プロセッサ110によりメモリ・アクセスを管理するために使用される。メモリ管理ユニット105は、通常、下記の機能を有する。すなわち、(1)仮想アドレスの変換されたアドレスへの変換、(2)メモリ・モジュール120のプロテクト、および(3)キャッシュ・メモリの制御である。この例示的実施形態の場合には、メモリ管理ユニット105は、通常、これらの機能を実行するためにハードウェアで実施される1つまたは複数の第1のレジスタ145により制御される。これらの第1のレジスタ145は、第3の通信バス153により第1のレジスタ145に送信された第1のレジスタ構成データ160を介して、プロセッサ110によりプログラムされる。その後で、第1の制御データ165が、第4の通信バス154により第1のレジスタ145のプログラムされた内容から入手される。第1のレジスタ構成データ160は、メモリ・モジュール120の種々のセクションを、非実行ソフトウェア・コードだけを含むことができるデータ・メモリ・セクション130として指定し、メモリ・モジュール120の種々の他のセクションを、実行可能ソフトウェア・コードを含むことができる実行可能メモリ・セクション135として指定する属性情報を有する。
起動が開始した後、メモリ管理ユニット105のレジスタ145を一度だけプログラムすることができる。初期化中、レジスタ145は、正常な実行時間の間に使用する保全性チェック値によりプログラムされる。プログラムされると、レジスタ145のいずれかをプログラムしようとすると、プロセッサ110に警告が送られる。メモリ管理ユニット105を動作可能にするために使用する動作可能なインジケータ175も、攻撃者がメモリ管理ユニット105を動作不能にし、それによりレジスタ145の書込プロテクトを動作不能にするのを防止するために、1回だけ書込ができるタイプのものでなければならない。
動作中、プロセッサ110は、第1の通信バス151を介してメモリ管理ユニット105に第1の通信信号181を送信する。メモリ管理ユニット105は、第2の通信バス152を介してメモリ・モジュール120に第2の通信信号182を送信する。第3の通信信号183は、第2の通信バス152を介して、メモリ管理ユニット105によりメモリ・モジュール120から受信される。第4の通信信号184は、第1の通信バス151を介して、メモリ管理ユニット105から受信される。
第1の通信信号181は、メモリ・モジュール120のデータ・メモリ・セクション130内に書き込まれるデータと、メモリ・モジュール120の実行可能メモリ・セクション135内に書き込まれる実行可能コードと、および/またはメモリ管理ユニット105への命令を含むことができる。第2の通信信号182は、メモリ・モジュール120のデータ・メモリ・セクション130内に書き込まれるプロセッサ110から受信したデータ、またはメモリ・モジュール120の実行可能メモリ・セクション135内に書き込まれる実行可能コードを含むことができる。第3の通信信号183は、メモリ・モジュール120のデータ・メモリ・セクション130から読み出したデータ、またはメモリ・モジュール120の実行可能メモリ・セクション135から読み出した実行可能コードを含むことができる。第4の通信信号184は、メモリ・モジュール120のデータ・メモリ・セクション130から読み出したデータ、メモリ・モジュール120の実行可能メモリ・セクション135から読み出した実行可能コード、またはプロセッサ110からメモリ管理ユニット105が受信した命令に対する応答を含むことができる。プログラムすると、レジスタ145のうちのいずれかを再プログラムしようとすると、メモリ管理ユニット105が、第1の通信バス151を介して、第4の通信信号184として、プロセッサ110に警告を送る。
図2は、種々の例示的実施形態に記載するプロテクト構成を備えるメモリ管理ユニット105を有する他の論理デバイス100を示す。上記の図1の代表的な実施形態の要素の他に、図2の例示的実施形態の場合には、レジスタ・モジュール115は、さらに、第2のレジスタ・ユニット240を備える。第2のレジスタ・ユニット240は、ハードウェアおよび/またはソフトウェアで実施することができる少なくとも1つの第2のレジスタ245を備える。図2の場合には、複数の第2のレジスタ245a、245b、245cを第2のレジスタ245として図示してある。図2の例示的実施形態の場合には、第2のレジスタ・ユニット240の第2のレジスタ245は、起動の開始の後で制限なくプログラムすることができる。
第2のレジスタ245は、第3の通信バス153により第2のレジスタ245に送信された第2のレジスタ構成データ260を介して、プロセッサ110によりプログラムされる。その後で、第2の制御データ265が、第4の通信バス254により第2のレジスタ245のプログラムされた内容から入手される。それ故、レジスタ・モジュール115は、二組のレジスタ・ユニット140、240を備える。すでに説明したように、第1のレジスタ・ユニット140内の第1のレジスタ145は、起動の開始の後で1回だけプログラムすることができる。一方、第2のレジスタ・ユニット240の第2のレジスタ245は、起動の開始の後で何回でもプログラムすることができる。レジスタ145、245内にはメモリの境界が構成されているので、変換されたメモリの一部を2つ以上のレジスタ145、245により構成することができる。しかし、変換されたメモリの同じ領域が2つ以上のレジスタ145、245内にプログラムされている場合には、レジスタ145のうちの1つだけを、起動の開始の後1回だけ書き込むことができる。すなわち、プロセッサ110に警告を送ることができるのは、第1のレジスタ・ユニット240内の第1のレジスタ145のうちの1つである。それ故、攻撃者は、メモリ管理ユニット105に関連する多重書込レジスタ245、すなわち第2のレジスタ245を再プログラムすることにより、追記型レジスタ145、すなわち、第1のレジスタ145をバイパスすることができない。図1の例示的実施形態の場合のように、動作可能なインジケータ175を、1回だけ書込可能にすることにより再プログラムされるのを防止しなければならない。
図3は、種々の例示的実施形態に記載する論理デバイス100のメモリ管理ユニット105の構成をプロテクトするための方法300のフローチャートを示す。ブロック310において、論理デバイス100の起動が開始する。次に、ブロック310において、制御がブロック320に渡される。
ブロック320において、論理デバイス100の起動手順が、起動の開始の後で自動的に開始する。用語「起動手順」が複数の形をしているのは、本明細書においては、1つまたは複数の手順を含んでいることを意味する。次に、ブロック320において、制御がブロック330に渡される。
ブロック330において、第1のレジスタ構成データ160が、追記型レジスタ145内に書き込まれる。同様に、レジスタ・モジュール115が多重書込レジスタ245を備えている場合には、第2のレジスタ構成データ260も、必要に応じて、多重書込レジスタ245内に書き込まれる。起動プロセス中は、ある種の追記型レジスタ145に書き込むことができない場合があることに留意されたい。この状況は、図4の一部であると見なされる。次に、ブロック330において、制御がブロック350に渡される。
ブロック350において、追記型インジケータでなければならない動作可能なインジケータ175は、メモリ管理ユニット105が現在能動状態にあることを表示するようにセットされる。動作可能なインジケータ175は、追記型インジケータでなければならないので、攻撃者がメモリ管理ユニット105を動作不能にすることが防止され、それにより追記型レジスタ145の書込プロテクトを動作不能にすることが防止される。次に、ブロック350において、制御がブロック360に渡される。
ブロック360において、論理デバイス100の起動手順が終了する。起動プロセスは、ブロック360において終了する。第1のレジスタ145には、現在書込プロテクトがかかっている。
図4は、論理デバイスのプロセッサ110に、図1および図2のメモリ・モジュール120のプロテクトされたメモリ領域に対する潜在的攻撃を通知するための方法400のフローチャートを示す。すべての追記型レジスタ145がプログラムされている場合には、ブロック405において、制御がブロック410に渡される。
1つまたは複数の追記型レジスタ145を再プログラムしようとする試みが行われた場合には、ブロック410において制御がブロック470に渡される。そうでない場合には、ブロック410において、制御がブロック420に渡される。
メモリ管理ユニット・レジスタ・モジュール115が、追記型レジスタ145のみを備えている場合には、ブロック420において、制御がブロック405に渡される。そうでない場合には、ブロック420において制御がブロック430に渡される。
1つまたは複数の多重書込レジスタ245が再プログラムされた場合には、ブロック430において、制御がブロック440に渡される。そうでない場合には、ブロック430において、制御がブロック405に戻される。
1つまたは複数の多重書込レジスタ245へのプログラミングの試みの変換されたメモリの領域が、追記型レジスタ145の1つ内にプログラムされた変換されたメモリと同じものである場合には、ブロック440において、制御がブロック470に渡される。そうでない場合には、ブロック440において、制御がブロック405に戻される。
1つまたは複数の追記型レジスタ145、または1つまたは複数の多重書込レジスタ245を再プログラムしようとした場合には、ブロック450において、制御がブロック460に渡される。そうでない場合には、ブロック450において、制御がブロック405に戻される。
1つまたは複数の追記型レジスタ145、または1つまたは複数の多重書込レジスタ245内にプログラミングしようという試みの変換されたメモリの領域が、追記型レジスタ145のうちの1つ内にすでにプログラムされている変換されたメモリと同じものである場合には、ブロック460において、制御がブロック470に渡される。そうでない場合には、ブロック460において、制御がブロック405に戻される。
ブロック470において、プロセッサ110は、レジスタ145、245内の構成データを介してメモリ・モジュール120のロックされている(プロテクトされた)メモリ領域に対する攻撃について通知を受ける。次に、ブロック470において、制御がブロック405に返される。
図5は、種々の例示的実施形態に記載するプロテクト構成を備えるメモリ管理ユニット05を有するさらに他の論理デバイス100を示す。図5の例示的実施形態の場合には、攻撃者によるメモリ管理ユニット105の構成の再プログラミングは、起動の開始後のプログラミング中に、ロック可能な多重書込レジスタである第1の各レジスタ145にロック・プロテクト・モード・オプションを提供することにより防止される。ロック・プロテクト・モードは、多重書込レジスタの最後のプログラミングの後に、各ロック可能な多重書込第1レジスタ145に一度だけ適用することができる。メモリ管理ユニット105に関連する各ロック可能な多重書込第1レジスタ145は、プロセッサ110がリセットされた後でロック・プロテクトがかけられるまで、すなわち、起動が再開始するまで、再プログラミング可能である。各ロック可能な多重書込第1レジスタ145は、メモリのある領域を非実行およびロック可能として指定するようにプログラムすることができる。この場合、メモリのこの領域は、任意の命令を実行するために使用することはできないし、メモリ管理ユニット105が使用するロック可能な多重書込第1レジスタ145は、一旦ロックすると再プログラムすることはできない。
図5の論理デバイス100は、プロセッサ110と、メモリ管理ユニット105と、メモリ管理ユニット・レジスタ・モジュール115と、メモリ・モジュール120とを備える。メモリ・モジュール120は、データ・メモリ・セクション130と、実行可能メモリ・セクション135とを備える。論理デバイス100は、動作可能なインジケータ175を備える。レジスタ・モジュール115は、ハードウェアおよび/またはソフトウェアで実施するすることができる少なくとも1つのロック可能な多重書込第1レジスタ145を備える。図5の場合、複数のロック可能な多重書込第1レジスタ145a、145b、145cが、第1のレジスタ145である。第1レジスタ145a、145b、145cそれぞれに対して、インジケータ・ユニット170は、本明細書においては、第2のインジケータ173とも呼ぶことができるプロテクト・インジケータ173を備える。図5は、3つのロック可能な多重書込第1レジスタ145a、145b、145cそれぞれに対する3つのプロテクト・インジケータ173a、173b、173cを示す。
プロセッサ110は、第1の通信バス151を介して、メモリ管理ユニット105と通信する。メモリ管理ユニット105は、メモリ・モジュール120と通信し、それにより第2の通信バス152を介して、データ・メモリ・セクション130および実行可能メモリ・セクション135の両方と通信する。プロセッサ110は、第3の通信バス153を介して、ロック可能な多重書込第1レジスタ145と通信する。メモリ管理ユニット105は、第4の通信バス154を介して、レジスタ・モジュール115内のロック可能な多重書込第1レジスタ145と通信する。プロセッサ110は、インジケータ・ユニット170と通信し、それにより、第5の通信バス155を介してプロテクト・インジケータ173と通信する。プロセッサ110は、第6の通信バス156を介して動作可能なインジケータ175と通信する。
ロック可能な多重書込第1レジスタ145は、第3の通信バス153により、ロック可能な多重書込第1レジスタ145に送信された第1のレジスタ構成データ160で、プロセッサ110によりプログラムされる。プロセッサ110の起動またはリセット後、その対応するプロテクト・インジケータ173が、そのロック可能な多重書込第1レジスタ145がロックされていることを表示するようにセットされるまで、各ロック可能な多重書込第1レジスタ145を、何回でもプログラムすることができる。このようなロックの後では、このロック可能な多重書込第1レジスタ145をさらにプログラムすることはできないし、メモリ・モジュール120内のその関連するデータ・メモリ・セクション130は、非実行として指定されるか、または実行可能として指定される。その後で、第1の制御データ165が、第4の通信バス154によりロック可能な多重書込第1レジスタ145のプログラムされた内容から入手される。ロックされた場合には、ロック可能な多重書込第1レジスタ145のいずれかを再プログラムしようとすると、プロセッサ110に警告が送られる。メモリ管理ユニット105を動作可能にするために使用される動作可能なインジケータ175は、 攻撃者が、メモリ管理ユニット105を動作不能にし、それによりロック可能な多重書込第1レジスタの書込プロテクトが作用しなくなるのを防止するために、(プロセッサ110がリセットされるまでは)1回だけ書込することができるタイプのものでなければならない。
動作中、プロセッサ110は、第1の通信バス151を介してメモリ管理ユニット105に、第1の通信信号181を送信する。メモリ管理ユニット105は、第2の通信バス152を介して、メモリ・モジュール120に、第2の通信信号182を送信する。第3の通信信号183は、第2の通信バス152を介して、メモリ管理ユニット105によりメモリ・モジュール120から受信される。第4の通信信号184は、第1の通信バス151を介して、プロセッサ110によりメモリ・モジュール120から受信される。ロック・プロテクト・モード・データ185は、第5の通信バス155を介してプロテクト・インジケータ173から受信される。第1の通信信号181は、メモリ・モジュール120のデータ・メモリ・セクション130内に書き込まれるデータ、メモリ・モジュール120の実行可能メモリ・セクション135内に書き込まれる実行可能コード、および/またはメモリ管理ユニット105への命令を含むことができる。第2の通信信号182は、メモリ・モジュール120のデータ・メモリ・セクション130に書き込まれるプロセッサ110から受信したデータ、またはメモリ・モジュール120の実行可能メモリ・セクション135内に書き込まれる実行可能コードを含むことができる。第3の通信信号183は、メモリ・モジュール120のデータ・メモリ・セクション130から読み出したデータ、またはメモリ・モジュール120の実行可能メモリ・セクション135から読み出した実行可能コードを含むことができる。第4の通信信号184は、メモリ・モジュール120のデータ・メモリ・セクション130から読み出したデータ、メモリ・モジュール120の実行可能メモリ・セクション135から読み出した実行可能コード、またはプロセッサ110からメモリ管理ユニット105が受信した命令に対する応答を含むことができる。ロック・プロテクト・モード・データ185は、各ロック可能な多重書込第1レジスタ145がロックされているか否かを表示するプロテクト・インジケータ173からのデータを含むことができる。
変換されたメモリのある領域が、ロックされているロック可能な多重書込第1レジスタ145のうちの1つ内、およびロックされていない他のロック可能な多重書込第1レジスタ145内でプログラムされている場合には、警告がプロセッサ110に送られる。その場合、攻撃者は、ロックされていないロック可能な多重書込第1レジスタ145を再プログラムすることにより、ロックされているロック可能な多重書込第1レジスタ145をバイパスすることはできない。ロック・プロテクト・モードによりロック可能な多重書込第1レジスタ145が、再プログラムすることができなくなると、メモリ管理ユニット105は動作不能にすることはできない。これにより、攻撃者は、メモリ管理ユニット105を完全に動作不能にし、次にプロテクトを動作不能にすることができなくなる。
図6は、種々の例示的実施形態に記載する論理デバイス100のメモリ管理ユニット105の構成をプロテクトするための他の方法600のフローチャートを示す。ブロック610において、論理デバイス100の起動が開始する。ブロック610において、制御がブロック620に渡される。
ブロック620において、論理デバイス100の起動手順が、起動の開始の後で自動的に開始する。用語「起動手順」が複数の形をしているのは、本明細書においては、1つまたは複数の手順を含んでいることを意味する。次に、ブロック620において、制御がブロック630に渡される。
少なくとも1つのロック可能な多重書込第1レジスタ145に書き込むデータがある場合には、ブロック630において、制御がブロック640に渡される。そうでない場合には、ブロック630において、制御がブロック650に渡される。
ブロック640において、第1のレジスタ構成データ160が、ロック可能な多重書込第1レジスタ145内に書き込まれる。次に、ブロック640において、制御がブロック650に渡される。
少なくとも1つのロック可能な多重書込第1レジスタ145をロックすることができる場合には、ブロック650において、制御がブロック660に渡される。そうでない場合には、ブロック650において、制御がブロック670に渡される。
ブロック660において、ロックすることができる適当なロック可能な多重書込第1レジスタ145がロックされ、いまロックされた第1の各レジスタ145に関連するプロテクト・インジケータ173がセットされる。次に、ブロック660において、制御がブロック670に渡される。
ロックされるすべてのロック可能な多重書込第1レジスタ145がロックされると、ブロック670において、制御がブロック680に渡される。そうでない場合には、ブロック670において、制御がブロック630に戻される。
ブロック680において、動作可能インジケータ175が、攻撃者がメモリ管理ユニット105を動作不能にし、それによりロック可能な多重書込第1レジスタ145の書込プロテクトを動作不能にするのを防止するようにセットされる。次に、ブロック680において、制御がブロック690に渡される。
ブロック690において、論理デバイス100の起動手順が終了する。起動プロセスはブロック690において終了する。
図7は、論理デバイス100のプロセッサ110に、図5のメモリ・モジュール120のプロテクトされたメモリ領域に対する潜在的攻撃を通知する方法700のフローチャートを示す。1つまたは複数のロック可能な多重書込第1レジスタ145を再プログラムしようとすると、ブロック710において、制御がブロック720に渡される。そうでない場合には、ブロック710において、その条件チェックを繰り返し行うために制御がブロック710に戻される。
ブロック720において、論理デバイス100のプロセッサ110は、ロック可能な多重書込第1レジスタ145内の構成データにより、メモリ・モジュール120のプロテクトされたメモリ領域に対する攻撃の通知を受ける。次に、ブロック720において、プロセスが終了する。
図8は、種々の例示的実施形態に記載するプロテクト構成を備えるメモリ管理ユニット105を有するさらに他の論理デバイス100を示す。図8の例示的実施形態の場合には、攻撃者によるメモリ管理ユニット105の構成の再プログラミングは、起動またはリセットの後のプログラミング中に、ロック可能な多重書込第1レジスタであるすべての第1のレジスタ145に、オプションであるロック・プロテクト・モードを提供することにより防止される。ロック・プロテクト・モードは、すべてのロック可能な多重書込第1レジスタ145に一度だけ適用することができる。メモリ管理ユニット105に関連するロック可能な多重書込第1レジスタ145は、プロセッサ110をリセットした後でロック・プロテクトがかかるまで再プログラミング可能である。各ロック可能な多重書込第1レジスタ145は、メモリのある領域を非実行およびロック可能として指定するためにプログラムすることができる。この場合、メモリのこの領域は、いずれの命令を実行するためにも使用することができないし、メモリ管理ユニット105が使用するロック可能な多重書込第1レジスタ145は、再プログラムすることはできない。
プロセッサ110の起動またはリセットの後では、各ロック可能な多重書込第1レジスタ145を、すべてのロック可能な多重書込第1レジスタ145がロックされていることを示すように、プロテクト・インジケータ173がセットされるまで、何回でもプログラムすることができる。このようなロックの後では、ロック可能な多重書込第1レジスタ145をそれ以上プログラムすることはできないし、メモリ・モジュール120内のその関連するデータ・メモリ・セクション130は、非実行およびロック可能として指定される。その後で、第1の制御データ165は、第4の通信バス154により、ロック可能な多重書込第1レジスタ145のプログラムされた内容から入手することができる。ロックされた場合には、ロック可能な多重書込第1レジスタ145のいずれかを再プログラムしようとすると、プロセッサ110に警告が送られる。メモリ管理ユニット105を動作可能にするために使用される動作可能なインジケータ175は、攻撃者が、メモリ管理ユニット105を動作不能にし、それによりロック可能な多重書込第1レジスタ145の書込プロテクトが機能しなくなるのを防止するために、1回だけ書込することができるタイプのものでなければならない。
他の実施形態の場合には、両方ともレジスタ内でビットとして実施することができるプロテクト・インジケータ173または同様に動作可能なインジケータ175は、ロック可能な多重書込第1レジスタ145の再プログラミングを阻止する機能、およびメモリ管理ユニット105を無効にする再プログラミングを阻止する機能の両方を実行することができる。
図8の他の例示的実施形態の場合には、図2に示すように、少なくとも1つの第2のレジスタ245を備える第2のレジスタ・ユニット240が追加される。1つのプロテクト・インジケータ173を、ロック可能な多重書込第1レジスタ145が再プログラムされるのを防止するために使用することができる。一方、その間、第2のレジスタ245はロックされていないままでいることができ、それ故、再プログラミング可能である。この実施形態の場合には、図2のところで説明したのと同様に、同じ変換されたメモリが、ロックされているレジスタ145およびロックされていないレジスタ245の両方内でプログラムされるのを防止するためにチェックを行う必要がある。このような試みを行おうとすると、プロセッサ110に警告が送られ、それにより攻撃者が、ロックされていない第2のレジスタ245を再プログラムすることにより、ロックされているロック可能な多重書込第1レジスタ145をバイパスするのを防止する。
図9は、種々の例示的実施形態に記載する論理デバイス100のメモリ管理ユニット105の構成をプロテクトするためのさらに他の方法900のフローチャートを示す。ブロック910において、論理デバイス100の起動が開始する。次に、ブロック910において、制御がブロック920に渡される。
ブロック920において、起動の開始後に論理デバイス100の起動手順が自動的に開始する。用語「起動手順」が複数の形をしているのは、本明細書においては、1つまたは複数の手順を含んでいることを意味する。次に、ブロック920において、制御がブロック930に渡される。
少なくとも1つのロック可能な多重書込第1レジスタ145に書き込むデータがある場合には、ブロック930において、制御がブロック940に渡される。そうでない場合には、ブロック930において、制御がブロック950に渡される。
ブロック940において、第1のレジスタ構成データ160が、ロック可能な多重書込第1レジスタ145に書き込まれる。次に、ブロック640において、制御がブロック930に戻される。
ブロック950において、ロック可能な多重書込第1レジスタ145がロックされ、プロテクト・インジケータ173がセットされる。次に、ブロック950において、制御がブロック960に渡される。
ブロック960において、攻撃者が、メモリ管理ユニット105を動作不能にし、それによりロック可能な多重書込第1レジスタ145の書込プロテクトを無効にするのを防止するように、動作可能インジケータ175がセットされる。ロック可能な多重書込第1レジスタ145およびメモリ管理ユニット105の両方がプロテクトされていること(すなわち、ロックされていること)を表示するように、プロテクト・インジケータ173または動作可能インジケータ175をセットすることにより、任意選択として、ブロック950および960を結合することができることに留意されたい。次に、ブロック960において、制御がブロック970に渡される。
ブロック970において、論理デバイス100の起動手順が終了する。この起動手順はブロック970において終了する。
図10は、論理デバイス100のプロセッサ110に、図8のメモリ・モジュール120のプロテクトされたメモリ領域に対する攻撃を通知するためのさらに他の方法1000のフローチャートである。1つまたは複数のロック可能な多重書込第1レジスタ145を再プログラムしようとすると、ブロック1010において、制御がブロック1050に渡される。そうでない場合には、ブロック1010において、制御がブロック1020に渡される。
メモリ管理ユニット・レジスタ・モジュール115のレジスタが、ロック可能な多重書込第1レジスタ145しか備えていない場合には、ブロック1020において、制御がブロック1010に戻される。そうでない場合には、ブロック1020において、制御がブロック1030に渡される。
1つまたは複数の第2のレジスタ245が再プログラムされていた場合には、ブロック1030において、制御がブロック1040に渡される。そうでない場合には、ブロック1030において、制御がブロック1010に戻される。
1つまたは複数の第2のレジスタ245内のプログラムされている変換されたメモリの領域が、1つまたは複数のロックされているロック可能な多重書込第1レジスタ145内のプログラムされている変換されたメモリと同じものである場合には、ブロック1040において、制御がブロック1050に渡される。そうでない場合には、ブロック1040において、制御がブロック1010に戻される。
ブロック1050において、論理デバイス100のプロセッサ110に、ロックされていない第2のレジスタ245および/またはロックされているロック可能な多重書込第1レジスタ145内の構成データにより、メモリ・モジュール120のロックされたメモリ領域に対する攻撃の通知が行われる。ブロック1050において、制御がブロック1010に戻される。
ある種のオペレーティング・システムが必要とする仮想メモリの動的割当ては、メモリ管理ユニット105の構成を制御するレジスタのロックに関していくつかの問題を抱えている場合がある。例えば、あるオペレーティング・システムが一度に2つのプロセスを稼働している場合には、オペレーティング・システムは、両方のプロセスを変換されたメモリの別々の領域内に置くことができるが、異なる時点では、プロセスを仮想メモリの同じ領域内に置く。オペレーティング・システムがコンテキストの切替を行う場合には、オペレーティング・システムは、現在のプロセス・マッピングに対するメモリ管理ユニット105の構成を制御するレジスタの内容と他のプロセスに対するメモリ管理ユニット105の構成を制御する内容とをスワップする。このスワップのために、1つまたは複数のレジスタをロックしていない状態に維持する必要がある。
攻撃者は、仮想メモリからロックされているレジスタによりプロテクトされた変換されたメモリにマッピングすることにより、ロックされていないレジスタをプログラムして、このレジスタを利用することができる。次に、攻撃者は、プロテクトされた変換されたメモリを変更するためにこの仮想メモリを修正することができる。すでに説明したように、メモリ管理ユニット105の構成に対するこのタイプの攻撃を防止するために、ロックしていないレジスタをプログラムする場合には、仮想メモリに関連するロックしていないレジスタ内の変換されたアドレスと変換されたメモリに関連するロックしてあるレジスタ内の変換されたアドレスとの比較が行われる。
図11は、論理デバイスのプロセッサ110に、種々の例示的実施形態に記載してあるメモリ・モジュール120のプロテクトされたメモリ領域130に対する潜在的攻撃を通知するための方法1100のフローチャートである。図11のブロック1110において、仮想メモリのある領域が、第1のプロセス1211(図12参照)と第2のプロセス1212(図12参照)とをスワップしている論理デバイス100のプロセッサ110に関連することができるような仮想メモリの他の領域とスワップされる。次に、ブロック1110において、制御がブロック1120に渡される。
ブロック1120において、例えば、仮想メモリ・レジスタ1245(図12参照)であってもよい仮想メモリと関連するレジスタの内容が、仮想メモリ内のスワッピングを反映するように更新される。次に、ブロック1120において、制御がブロック1130に渡される。
ブロック1130において、仮想メモリに関連する仮想メモリ・レジスタ1245の内容が、他の仮想メモリ・レジスタ1245の内容と比較される。次に、ブロック1130において、制御がブロック1140に渡される。
他の仮想メモリ・レジスタ1245内で同じ変換されたアドレスを発見した場合には、ブロック1140において、制御がブロック1150に渡される。そうでない場合には、ブロック1140において、制御がブロック1110に戻される。
ブロック1150において、論理デバイス100のプロセッサ110に、プロテクトされていない仮想メモリ・レジスタ1245内の構成データにより、メモリ・モジュール120のロックされているメモリ領域に対する攻撃の通知が行われる。次に、ブロック1150において、制御がブロック1110に戻される。数個のレジスタしか含んでいない小さなメモリ管理ユニット105のアーキテクチャにおいては、この比較は比較的簡単に迅速に行われる。しかし、多数のレジスタを備える論理デバイス100の場合には、この比較は多くのリソースを必要とする場合がある。
図12は、種々の例示的実施形態に記載するプロテクト構成を備えるメモリ管理ユニット105を有するさらに他の論理デバイス100である。今説明したメモリ管理ユニット105のレジスタの変換されたメモリの比較の代わりに、変換されたメモリ・レジスタ・ユニット1230内の一組の変換されたメモリ・レジスタ1235を、変換されたメモリをプロテクトするために使用することができる。仮想メモリ・レジスタ1245内の仮想メモリ・アドレスの属性が、変換されたメモリ・レジスタ1235内に位置する変換されたメモリに対するプロテクトと比較される。プロテクト違反が発見された場合には、プロセッサ110に警告が送られる。すでに説明したように、仮想メモリのスワッピングは、第1のプロセス1211に対する第2のプロセス1212のスワッピングと関連づけることができる。
変換されたメモリ・レジスタ1235は、変換されたメモリ・レジスタ1235がこのようにプロテクトされていることを示すために使用する1つまたは複数のプロテクト・インジケータ173を備えるインジケータ・ユニット170を正しくセットしてある上記方法により再プログラミングからプロテクトすることができる。プロテクト・インジケータ173は、変換されたメモリ・レジスタ1235の再プログラミングを防止するために、追記型のものでなければならない。メモリ管理ユニット105を動作可能にするために上記のように使用される動作可能なインジケータ175も、攻撃者がメモリ管理ユニット105を動作不能にし、それによりレジスタ145の書込プロテクトを不能にするのを防止するために、追記型のものでなければならない。さらに、タイミングの問題のために、変換されたメモリ・レジスタ1235および仮想メモリ・レジスタ1245内のデータが有効であるかないかを表示するために、一組のビットを使用する必要がある場合がある。
図13は、論理デバイス100のプロセッサ110に、種々の例示的実施形態に記載するメモリ・モジュール120のロックされたメモリ領域130に対する潜在的攻撃を通知するための他の方法1300のフローチャートである。図13のブロック1310において、仮想メモリのある領域が、例えば、第2のプロセス1212のための第1のプロセス1211をスワッピングしている論理デバイス100のプロセッサ110に関連づけることができる仮想メモリの他の領域とスワッピングされる。次に、ブロック1310において、制御がブロック1320に渡される。
ブロック1320において、例えば、図12の仮想メモリ・レジスタ1245であってもよい仮想メモリと関連するレジスタの内容が、仮想メモリ内のスワッピングを反映するように更新される。ブロック1320において、制御がブロック1340に渡される。
ブロック1340において、変換されたメモリ・レジスタ1235内に格納しているプロテクトされた変換されたアドレスの属性が、仮想メモリ・アドレスに対する仮想メモリ・レジスタ1245内に格納しているアドレスの属性と比較される。ブロック1340において、制御がブロック1350に渡される。
ブロック1340の比較の際にプロテクト違反が行われたことが分かった場合には、ブロック1350において、制御がブロック1360に渡される。そうでない場合には、ブロック1350において、制御がブロック1310に戻される。
ブロック1360において、論理デバイス100のプロセッサ110に、仮想メモリ・レジスタ1245内に格納しているスワッピングした仮想メモリに関連する構成データにより、メモリ・モジュール120のプロテクトされたメモリ領域に対する攻撃の通知が行われる。次に、ブロック1360において、制御がブロック1310に戻される。
図14は、プロセッサ110に、種々の例示的実施形態に記載するメモリ・モジュール120のロックされたメモリ領域130に対する潜在的攻撃を通知するための他の方法1400のフローチャートである。図14のブロック1410において、仮想メモリ・レジスタ1245により、仮想メモリ・アドレスが変換されたメモリ・アドレスに変換される。次に、ブロック1410において、制御がブロック1420に渡される。
ブロック1420において、変換されたメモリ・アドレスが、変換されたメモリ・レジスタ1235内に格納しているプロテクトされた変換されたアドレスの属性と比較される。次に、ブロック1420において、制御がブロック1430に渡される。
ブロック1420の比較の際にプロテクト違反が行われたことが分かった場合には、ブロック1430において、制御がブロック1440に渡される。そうでない場合には、ブロック1430において、制御がブロック1410に戻される。
ブロック1440において、プロセッサ110に、変換されたメモリ・レジスタ1235内に格納している変換されたメモリに関連する構成データにより、メモリ・モジュール120のプロテクトされたメモリ領域に対する攻撃の通知が行われる。次に、ブロック1440において、制御がブロック1410に戻される。
図示し、および/または本明細書に記載する実施形態以外のこれらの開示に一致する等価の実施形態も使用することができる。より詳細には、実施態様により、プロセッサ110は、制御モジュール110の種々のタイプのうちの任意のタイプのものであってもよい。他のデバイスの中で、制御モジュール110は、それに予めプログラムされた命令からの制御を実施するフラッシュ・メモリ・ユニットであってもよい。また、プロセッサ110または制御モジュール110は、すでに説明したように、1つのプロセッサとだけではなく、複数のメモリ管理ユニット105と相互作用を行うことができる。
今日使用しているある種のメモリ管理ユニットは、ユニットのレジスタのうちの1つを変更するために動作不能にする必要がある。メモリ管理ユニットが、最初に動作不能にされ、このレジスタが変更され、次にメモリ管理ユニットが再度動作可能にされる。本明細書に記載するいくつかの例示として実施形態は、二組のレジスタを備えていて、一方の組のレジスタはロックされ、他方の組のレジスタはロックされない。ロックされていないレジスタを変更するために、動作中、メモリ管理ユニットを動作不能にしなければならない場合には、攻撃者は、同じ時間中にロックされているレジスタを変更することができる。この状況は、2つのメモリ管理ユニットのイネーブル・ビットを提供することにより防止することができる。一方のビットは、ロックされているレジスタのためだけのものであり、他方のビットは、ロックされていないレジスタのためだけのものである。この場合、ロックされているレジスタに対するイネーブル・ビットがセットされると、ロックされているレジスタを変更することはできない。しかし、ロックしていないレジスタに対するメモリ管理ユニットのイネーブル・ビットは、ロックされていないレジスタを変更したい場合には、いつでも変更することができる。
通常の当業者であれば理解することができると思うが、実行および非実行以外のメモリ・アドレスの属性も本明細書に記載する実施形態によりプロテクトすることができる。より詳細には、読取専用、書込専用、読取および書込等の属性を有するメモリ・アドレスもプロテクトすることができる。
この場合のように、多くのデータ処理製品においては、上記システムをハードウェア構成要素およびソフトウェア構成要素の組合わせとして実施することができる。さらに、例示的実施形態を使用するために必要な機能を、上記の技術により実行するために情報処理装置(例えば、とりわけ、図1の要素を備える論理デバイス100など)をプログラミングする際に使用するコンピュータ読み取り可能媒体(フロッピー(登録商標)・ディスク、従来のハード・ディスク、DVD、CD−ROM、フラッシュROM、不揮発性ROMおよびRAMなど)内で実施することができる。
本明細書においては、「プログラム記憶媒体」という用語は、フロッピー(登録商標)・ディスク、従来のハード・ディスク、DVD、CD−ROM、フラッシュROM、不揮発性ROMおよびRAMのような任意のタイプの論理デバイス・メモリを含むが、これらに限定されないと広義に定義されている。
例示的実施形態において、攻撃者が、論理デバイスにデータとして以前に提示し、攻撃者によりシステムのメモリ内に後で格納されたコードを実行するのを防止するための技術を開示してきた。本明細書に記載する技術は、システムのメモリ管理ユニット105を再プログラミングするのを防止するので、予め指定されたメモリ・アドレス範囲を、データ・メモリから実行可能メモリに変更するために、アングラ・ソースにより使用することができない。そのため、攻撃者が、システムにデータとして以前に提示し、実際には実行可能コードであったシステムのメモリのデータ領域内に格納しているコードを実行することができない。
本明細書に詳細に説明した例示的実施形態は、単に例示としてのものであって、本発明を制限するためのものではない。当業者であれば、添付の特許請求の範囲内に依然として含まれる等価の実施形態になる上記実施形態の形状および詳細を種々に変更することができることを理解することができるだろう。

Claims (17)

  1. 論理デバイスであって、
    制御モジュールと、
    メモリ管理ユニットと、
    メモリ・モジュールであって、前記メモリ管理ユニットが、前記制御モジュールと前記メモリ・モジュールとの間のソフトウェア・コードの流れを制御するメモリ・モジュールと、
    第1のレジスタ・ユニットを備えるレジスタ・モジュールであって、前記第1のレジスタ・ユニットが、第1のレジスタを備え、前記制御モジュールが、前記メモリ・モジュール内のデータ・メモリ・セクションを指定するために、前記論理デバイスの起動手順中に前記第1のレジスタをプログラムし、前記メモリ管理ユニットが、前記指定されたデータ・メモリ・セクションを識別するために、前記第1のレジスタと通信し、前記メモリ管理ユニットが、前記指定されたデータ・メモリ・セクション内のストレージから実行可能コードを除外するレジスタ・モジュールと、
    第2のインジケータを備えるインジケータ・ユニットであって、前記起動手順が終了する前に、前記第2のインジケータが、前記第1のレジスタが書込プロテクトされていることを表示するために、前記制御モジュールによりセットされ、それにより前記第1のレジスタの以降のプログラミングが防止されるインジケータ・ユニットと、
    第1のインジケータであって、前記起動手順が終了する前に、前記第1のインジケータが、前記メモリ管理ユニットが動作可能であって、前記論理デバイスをシャットダウンさせずに動作不能にすることができないことを表示するように、前記制御モジュールによりセットされる第1のインジケータと、
    を備える論理デバイス。
  2. 前記第1のレジスタを、1回だけプログラムすることができる請求項1に記載の論理デバイス。
  3. 前記レジスタ・モジュールが第2のレジスタ・ユニットをさらに備え、第2のレジスタ・ユニットが第2のレジスタを備え、前記第2のレジスタを必要に応じて制限なく書き換えることができる請求項2に記載の論理デバイス。
  4. 同一のメモリ・アドレスが前記第1のレジスタ内および前記第2のレジスタ内に格納されている場合には、前記メモリ管理ユニットがこの状態を前記制御モジュールに通知する請求項3に記載の論理デバイス。
  5. 記第1のレジスタ、書込プロテクトされる前に複数回プログラムすることができ、前記起動手順が終了する前に、最後に前記第1のレジスタがプログラムされた後で、前記第2のインジケータが、前記第1のレジスタがロックされていることを表示するように前記制御モジュールによりセットされ、それにより前記第1のレジスタの以降のプログラミングが防止される請求項1に記載の論理デバイス。
  6. 前記レジスタ・モジュールが第2のレジスタ・ユニットをさらに備え、前記第2のレジスタ・ユニットが少なくとも1つの第2のレジスタを備え、前記制御モジュールが、前記起動手順の前および終了後の両方で、必要に応じて、前記第2のレジスタを複数回プログラムすることができる請求項5に記載の論理デバイス。
  7. 同一のメモリ・アドレスが前記第1のレジスタ内および前記第2のレジスタ内に格納されている場合には、前記メモリ管理ユニットがこの状態を前記制御モジュールに通知する請求項6に記載の論理デバイス。
  8. 論理デバイスであって、
    制御モジュールと、
    メモリ管理ユニットと、
    メモリ・モジュールであって、前記メモリ管理ユニットが、前記制御モジュールと前記メモリ・モジュールとの間のソフトウェア・コードの流れを制御するメモリ・モジュールと、
    換メモリ・レジスタを備える変換メモリ・レジスタ・ユニットであって、前記論理デバイスの起動手順中に、前記変換メモリ・レジスタが、前記メモリ・モジュール内のデータ・メモリ・セクションを指定するようにプログラムされ、前記データ・メモリ・セクションが、非実行ソフトウェア・コードだけを含むように指定され、前記変換メモリ・レジスタがプロテクトされる変換メモリ・レジスタ・ユニットと、
    仮想メモリ・レジスタを備える仮想メモリ・レジスタ・ユニットであって、前記制御モジュールが、前記メモリ・モジュール内のデータ・メモリ・セクションを指定するように前記仮想メモリ・レジスタをプログラムし、前記メモリ管理ユニットが、前記データ・メモリ・セクションを識別するために、前記仮想メモリ・レジスタと通信し、前記メモリ管理ユニットが、前記変換メモリ・レジスタ内に指定されているメモリ・ストレージ制限を、前記仮想メモリ・レジスタ内に指定されているメモリ・ストレージ制限と比較し、実行可能コードを、前記変換メモリ・レジスタ指定のデータ・メモリ・セクションでない前記仮想メモリ・レジスタ指定のデータ・メモリ・セクション内のストレージから除外する仮想メモリ・レジスタと、
    プロテクト・インジケータを備えるインジケータ・ユニットであって、前記起動手順が終了する前に、前記変換メモリ・レジスタが書込プロテクトされていることを表示するように、前記プロテクト・インジケータが前記制御モジュールによりセットされ、それにより前記変換メモリ・レジスタの以降のプログラミングが防止されるインジケータ・ユニットと、を備える論理デバイス。
  9. 動作可能インジケータであって、起動手順が終了する前に、前記メモリ管理ユニットが動作可能であって、前記論理デバイスをシャットダウンさせずに動作不能にすることができないことを表示するように、前記制御モジュールによりセットされる動作可能インジケータをさらに備える請求項8に記載の論理デバイス。
  10. 前記仮想メモリ・レジスタ指定のデータ・メモリ・セクションが、前記変換メモリ・レジスタ指定のデータ・メモリ・セクションでない場合に、前記メモリ管理ユニットがその状態を前記制御モジュールに通知する請求項8に記載の論理デバイス。
  11. 論理デバイスの起動を開始するステップと、
    前記論理デバイスに対して起動手順を開始するステップと、
    1のレジスタ内に第1のレジスタ構成データを書き込むステップであって、前記構成データが、メモリ・モジュールのあるセクションを、非実行ソフトウェア・コードだけを含むことができるデータ・メモリ・セクションとして指定するステップと、
    前記起動手順が終了する前に、前記第1のレジスタが書込プロテクトされていることを表示するように、プロテクト・インジケータをセットし、それにより前記第1のレジスタを以降のプログラミングからプロテクトするステップと、
    メモリ管理ユニットが能動状態であることを表示するように動作可能インジケータをセットするステップと、
    前記論理デバイスに対する前記起動手順を終了するステップと、
    前記メモリ管理ユニットを使用して、前記第1のレジスタ内に書き込まれている前記構成データに基づいて、制御モジュールから前記メモリ・モジュールへのソフトウェア・コードの流れを制限するステップと、
    を含む方法。
  12. 前記第1のレジスタが追記型レジスタである請求項11に記載の方法。
  13. 前記第1のレジスタが、ロック可能な多重書込レジスタである請求項11に記載の方法。
  14. 論理デバイスの起動を開始するステップと、
    前記論理デバイスに対する起動手順を開始するステップと、
    換メモリ・レジスタ内に適当な構成データを書き込むステップであって、前記構成データが、メモリ・モジュールのあるセクションを、非実行ソフトウェア・コードだけを含むことができるデータ・メモリ・セクションとして指定するステップと、
    前記起動手順が終了する前に、前記変換メモリ・レジスタが書込プロテクトされていることを表示するように、プロテクト・インジケータをセットし、それにより前記変換メモリ・レジスタを以降のプログラミングからプロテクトするステップと、
    前記論理デバイスに対する前記起動手順を終了するステップと、
    仮想メモリのある領域を仮想メモリの他の領域とスワッピングするステップと、
    仮想メモリ内のスワッピングを反映するように、前記仮想メモリに関連する前記仮想メモリ・レジスタを更新するステップと、
    前記変換メモリ・レジスタ内に格納しているアドレスの属性を、前記仮想メモリ・レジスタ内に格納しているアドレスの属性と比較するステップと、
    プロテクト違反を行おうとしたことを発見した場合に、メモリ管理ユニットを使用して、前記属性の比較の結果に基づいて、制御モジュールから前記メモリ・モジュールへのソフトウェア・コードの流れを制限するステップと、
    を含む方法。
  15. プロテクト違反を行おうとしたことを発見した場合に、前記制御モジュールに、前記仮想メモリ・レジスタ内に格納している前記スワッピングした仮想メモリに関連する前記構成データにより、前記メモリ・モジュールのプロテクトされたメモリ領域に対する潜在的攻撃を通知するステップをさらに含む、請求項14に記載の方法。
  16. 論理デバイスの起動を開始するステップと、
    前記論理デバイスに対する起動手順を開始するステップと、
    換メモリ・レジスタ内に適当な構成データを書き込むステップであって、前記構成データが、メモリ・モジュールのあるセクションを、非実行ソフトウェア・コードだけを含むことができるデータ・メモリ・セクションとして指定するステップと、
    起動手順が終了する前に、前記変換メモリ・レジスタが書込プロテクトされていることを表示するように、プロテクト・インジケータをセットし、それにより前記変換メモリ・レジスタを以降のプログラミングからプロテクトするステップと、
    前記論理デバイスに対する前記起動手順を終了するステップと、
    仮想メモリ・レジスタにより、仮想メモリ・アドレスを変換メモリ・アドレスに変換するステップと、
    前記変換アドレスを、前記変換メモリ・レジスタ内に格納しているアドレスの属性と比較するステップと、
    プロテクト違反を行おうとしたことを発見した場合に、メモリ管理ユニットを使用して、前記属性の比較の結果に基づいて、制御モジュールから前記メモリ・モジュールへのソフトウェア・コードの流れを制限するステップと、
    を含む方法。
  17. 前記プロテクトへの違反を行おうとしたことを発見した場合に、前記制御モジュールに、前記変換メモリ・レジスタに関連する前記構成データにより、前記メモリ・モジュールのプロテクトされたメモリ領域に対する潜在的攻撃を通知するステップをさらに含む、請求項16に記載の方法。
JP2010504166A 2007-04-20 2008-04-10 書込プロテクトされたメモリ管理ユニット・レジスタを備える論理デバイス Expired - Fee Related JP4980464B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/737,806 US20080263256A1 (en) 2007-04-20 2007-04-20 Logic Device with Write Protected Memory Management Unit Registers
US11/737,806 2007-04-20
PCT/US2008/059875 WO2008130857A1 (en) 2007-04-20 2008-04-10 Logic device with write protected memory management unit registers

Publications (2)

Publication Number Publication Date
JP2010525456A JP2010525456A (ja) 2010-07-22
JP4980464B2 true JP4980464B2 (ja) 2012-07-18

Family

ID=39873371

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010504166A Expired - Fee Related JP4980464B2 (ja) 2007-04-20 2008-04-10 書込プロテクトされたメモリ管理ユニット・レジスタを備える論理デバイス

Country Status (5)

Country Link
US (1) US20080263256A1 (ja)
EP (1) EP2156303A4 (ja)
JP (1) JP4980464B2 (ja)
KR (1) KR20090130189A (ja)
WO (1) WO2008130857A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7876621B2 (en) * 2007-04-23 2011-01-25 Sandisk Il Ltd. Adaptive dynamic reading of flash memories
US20140146067A1 (en) * 2011-12-29 2014-05-29 Daveen Doddapuneni Accessing Configuration and Status Registers for a Configuration Space
US9075751B2 (en) * 2012-08-09 2015-07-07 Intel Corporation Secure data protection with improved read-only memory locking during system pre-boot
KR102002900B1 (ko) * 2013-01-07 2019-07-23 삼성전자 주식회사 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법
DE102014201682A1 (de) * 2014-01-30 2015-07-30 Robert Bosch Gmbh Verfahren zur Koexistenz von Software mit verschiedenen Sicherheitsstufen in einem Multicore-Prozessorsystem
US9875358B2 (en) * 2014-06-20 2018-01-23 Microsoft Technology Licensing, Llc Preventing code modification after boot
KR102028704B1 (ko) * 2016-03-17 2019-10-07 한국전자통신연구원 전자기기에서 코드 삽입 공격으로부터 보호를 위한 메모리 운용 방법
GB2557305A (en) * 2016-12-05 2018-06-20 Nordic Semiconductor Asa Memory protection logic
CN109739673B (zh) * 2018-12-05 2023-05-09 新华三技术有限公司合肥分公司 一种寄存器写入保护方法、逻辑装置及通信设备
US10915329B2 (en) * 2019-02-24 2021-02-09 Winbond Electronics Corporation Delayed reset for code execution from memory device
US10839877B1 (en) * 2019-04-23 2020-11-17 Nxp Usa, Inc. Register protection circuit for hardware IP modules
US11809334B2 (en) * 2021-01-19 2023-11-07 Cirrus Logic Inc. Integrated circuit with asymmetric access privileges
WO2022157467A1 (en) * 2021-01-19 2022-07-28 Cirrus Logic International Semiconductor Limited Integrated circuit with asymmetric access privileges

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4038645A (en) * 1976-04-30 1977-07-26 International Business Machines Corporation Non-translatable storage protection control system
US4084226A (en) * 1976-09-24 1978-04-11 Sperry Rand Corporation Virtual address translator
US4727485A (en) * 1986-01-02 1988-02-23 Motorola, Inc. Paged memory management unit which locks translators in translation cache if lock specified in translation table
JPH05257815A (ja) * 1992-03-11 1993-10-08 Mitsubishi Electric Corp 中央処理装置
JPH0844628A (ja) * 1994-08-03 1996-02-16 Hitachi Ltd 不揮発性メモリ、およびそれを用いたメモリカード、情報処理装置、ならびに不揮発性メモリのソフトウェアライトプロテクト制御方法
US6026016A (en) * 1998-05-11 2000-02-15 Intel Corporation Methods and apparatus for hardware block locking in a nonvolatile memory
US6510508B1 (en) * 2000-06-15 2003-01-21 Advanced Micro Devices, Inc. Translation lookaside buffer flush filter
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US6813682B2 (en) * 2000-09-29 2004-11-02 Steven Bress Write protection for computer long-term memory devices
US20020129273A1 (en) * 2001-03-07 2002-09-12 Nightlight, Inc. Secure content server apparatus and method
JP2003242030A (ja) * 2001-12-14 2003-08-29 Matsushita Electric Ind Co Ltd メモリ管理装置及びメモリ管理方法
US7107459B2 (en) * 2002-01-16 2006-09-12 Sun Microsystems, Inc. Secure CPU and memory management unit with cryptographic extensions
US7069442B2 (en) * 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
KR100505106B1 (ko) * 2002-05-29 2005-07-29 삼성전자주식회사 강화된 보안 기능을 갖춘 스마트 카드

Also Published As

Publication number Publication date
JP2010525456A (ja) 2010-07-22
EP2156303A4 (en) 2011-05-04
KR20090130189A (ko) 2009-12-18
WO2008130857A1 (en) 2008-10-30
US20080263256A1 (en) 2008-10-23
EP2156303A1 (en) 2010-02-24

Similar Documents

Publication Publication Date Title
JP4980464B2 (ja) 書込プロテクトされたメモリ管理ユニット・レジスタを備える論理デバイス
CN103907098B (zh) 用于管理程序环境中的关键地址空间保护的系统和方法
JP6306578B2 (ja) メモリ保護装置及び保護方法
CN109918919B (zh) 认证变量的管理
CN107977573B (zh) 用于安全的盘访问控制的方法和系统
TWI655643B (zh) 用於辨識對應目標記憶體位址之記憶體屬性單元之區域之區域辨識操作
JP4872001B2 (ja) メモリ・アクセス安全性管理
JP3710671B2 (ja) 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法
JP5114617B2 (ja) 秘密鍵を保護する、セキュア端末、プログラム、および方法
CN109901911A (zh) 一种信息设置方法、控制方法、装置及相关设备
WO2019192344A1 (zh) 基于信任区的操作系统和方法
WO2009107330A1 (ja) 情報処理装置及びその制御方法
US8549325B2 (en) Reducing information leakage between processes sharing a cache
CN107092495A (zh) 平台固件铠装技术
CN111353162B (zh) 基于TrustZone分核异步执行的主动可信计算方法及系统
CN109739613B (zh) 嵌套页表的维护方法、访问控制方法及相关装置
JP2007501477A (ja) アクセス許可を決定するための方法および装置
US20090300370A1 (en) Enabling byte-code based image isolation
WO2011076464A1 (en) Method and system for protecting an operating system against unauthorized modification
JP4945053B2 (ja) 半導体装置、バスインターフェース装置、およびコンピュータシステム
CN112417470B (zh) 实现gpu数据安全访问的方法、装置、电子设备及存储介质
JP2017033149A (ja) 情報処理装置、コントローラ、及び、情報処理装置の制御方法
EP2062185A1 (en) System and method for securely saving a program context to a shared memory
WO2017188976A1 (en) Executing protected code
EP3440586B1 (en) Method for write-protecting boot code if boot sequence integrity check fails

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111101

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120201

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120224

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120321

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120418

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150427

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4980464

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees