JP2005521943A - データプロセッサのセキュリティを改善させるための方法ならびに装置 - Google Patents

データプロセッサのセキュリティを改善させるための方法ならびに装置 Download PDF

Info

Publication number
JP2005521943A
JP2005521943A JP2003581029A JP2003581029A JP2005521943A JP 2005521943 A JP2005521943 A JP 2005521943A JP 2003581029 A JP2003581029 A JP 2003581029A JP 2003581029 A JP2003581029 A JP 2003581029A JP 2005521943 A JP2005521943 A JP 2005521943A
Authority
JP
Japan
Prior art keywords
memory
segment
protected data
preselected
recorded
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.)
Granted
Application number
JP2003581029A
Other languages
English (en)
Other versions
JP4399270B2 (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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2005521943A publication Critical patent/JP2005521943A/ja
Application granted granted Critical
Publication of JP4399270B2 publication Critical patent/JP4399270B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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
    • 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/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

セキュリティデータを記録しているメモリ(108)のセグメントへのアクセスを制御するための方法と装置が提供される。セキュリティ検査ユニット(304)は複数のメモリ(108)のセグメントに関し、これらの各々が保護されたデータを記録しているかを示す情報を維持する。ヒントディレクトリ(302)は、これらの複数のセグメントのいずれかのセグメントが保護されたデータを記録しているかどうかに関する情報を維持する。ヒントディレクトリ(302)は、保護されたデータを有さないとされる複数のセグメントの範囲に入るアドレス(402)を受け取ると、セキュリティ検査ユニット(304)をバイパスできる。ヒントディレクトリ(302)は、受け取ったアドレス(402)が保護されたデータを含む複数のセグメントのうちの1つに入ることを判定すると、アドレス(402)がセキュリティ検査ユニット(304)に渡され詳細に検査される。

Description

本発明は、一般にデータプロセッサに関し、本発明は、より詳細にはデータプロセッサのセキュアな動作、即ち安全な動作を保証するための方法ならびに装置に関する。
パーソナルコンピュータなどの汎用コンピューティングシステムは、シングルタスク装置からマルチタスク装置へと進化を遂げている。マルチタスク装置では、当該装置のオペレーティングシステムをユーザプロセスから保護すると共に、プロセス同士を保護する保護するため、セキュリティサービスおよび保護サービスが必要となる。保護を行わなければ、例えば悪意のあるプログラムが、記憶空間にあるオペレーティングシステムや別のプロセスが保有しているプログラムコードやデータを、故意にあるいは偶発的に破壊してしまう可能性がある。
通常、x86マイクロプロセッサ環境では、異なる種類のソフトウェアがさまざまな特権レベルで実行されており、このため、これらソフトウェアのコンピューティングシステムの資源へのアクセス権はさまざまに異なる。例えば、オペレーティングシステムは最高の特権レベル(リング0:ring 0)で実行されており、オペレーティングシステムはどのシステム資源にもほぼ無制限にアクセスできる。また、ソフトウェアドライバも比較的高い特権レベルを有しており、コンピューティングシステムの資源に通常は無制限にアクセスできる。
マイクロソフト社のWindowsオペレーティングシステムの最新バージョン、Windows 2000(登録商標)では、カーネルおよび関連するカーネルモードドライバのコードの量が100万行を越えている。つまり、100万行以上のコードが、システム資源に通常は無制限にアクセスできる。この膨大な量のプログラムに、何らかのセキュリティ上の欠陥やその他のバグが潜んでいる可能性は高い。このため、比較的低い特権レベルで実行されているアプリケーションプログラムが、このようなバグまたはセキュリティ上の欠陥の1つ以上を利用して、オペレーティングシステムが提供するセキュリティを破る可能性がある。あるいは、悪意のあるドライバが、システム資源に記録されているデータにアクセスして、このデータを変更する可能性もある。このようなアプリケーションプログラムは、ページテーブルなどの通常は利用できない資源に対するアクセスを許可されると、メモリに記録されているページテーブルなどのデータを故意に変更する可能性がある。ページテーブルが変更されてしまうと、コンピュータシステムの操作を転送(redirect)して、本来実行できないコードをメモリから実行できるようになる。あるいは、ページテーブルが偶発的に変更された場合であっても、アプリケーションプログラム、時にはオペレーティングシステムが、本来は権限がないかアクセスを禁止されているメモリ部分に転送されることがある。権限がないメモリ部分へのアクセスが行われると、あるアプリケーションプログラムが、別のプログラムが使用している重要なデータを上書きしてしまう可能性がある。
一部のシステムでは、メモリを、ページなどの複数のセグメントに分割することが有用な場合がある。これらのセグメントは、セグメントに対応するセキュリティ情報を有している。この情報のデータの粒度(granurality)が増大するのに伴って、セキュリティデータの分量が増大し、セキュリティデータの管理およびアクセスが困難となる。例えば、粒度の非常に小さいセキュリティ方式ではアクセスに時間を要し、その結果システムの実行速度が大きく低下し、システムが実行不能に陥る。
本発明は、上記の問題の1つ以上を解決するか少なくとも軽減することを狙ったものである。
本発明の一態様において方法が提供される。この方法は、第1の予め選択されたメモリのセグメントのいずれかのロケーション(場所)に保護されたデータが記録されているかどうかを示す第1の情報を記録するステップと、第2の複数の予め選択されたメモリのセグメントの各々のいずれかのロケーションに、保護されたデータが記録されているかどうかを示す第2の情報を記録するステップと、を有する。第2の予め選択されたメモリのセグメントは、第1の予め選択されたメモリのセグメントより小さい。その後、アドレスが受信されて、受信したアドレスの少なくとも一部が第1の予め選択されたメモリのセグメント内にあるかどうかが判定される。記録された第1の情報が、第1の予め選択されたメモリのセグメントが保護されたデータを有さないことを示す場合、このアドレスへのアクセスが許可される。第1の予め選択されたメモリのセグメントが保護されたデータを有すると判定された場合、第2の予め選択されたメモリのセグメントのうち、受け取ったアドレスが存在する少なくとも1つのセグメントが識別される。識別された第2の予め選択されたセグメントに対応する記録された第2の情報が、第2の予め選択されたメモリのセグメントが保護されたデータを有さないことを示す場合、受け取ったアドレスへのアクセスが許可される。
本発明の別の態様において、メモリのセグメントに記録されている保護されたデータに対するアクセスを制御する装置が提供される。この装置は、セキュリティ検査ユニット及びヒントディレクトリを備える。セキュリティ検査ユニットは、第1の複数の予め選択されたメモリのセグメントの各々のいずれかのロケーションに保護されたデータが記録されているかどうかを示す第1の情報にアクセスするように適合されている。ヒントディレクトリは、第1の複数の予め選択されたメモリのセグメントのいずれかの1つに保護されたデータが記録されているかどうかを示す第2の情報を記録するように適合されている。ヒントディレクトリは、受け取ったアドレスの少なくとも一部が第1の予め選択されたメモリのセグメントの少なくとも1つにあり、かつ第2の情報が、第1の予め選択されたメモリのセグメントの各々が保護されたデータを有さないことを示していると判定するとセキュリティ検査ユニットをバイパスする。
本発明は、添付の図面と併せて下記の説明を参照することで理解できるであろう。図面において、参照符号の一番左の数字は、それぞれの参照符号が最初に記載された図面を示している。
本発明は、種々の変形および代替形態を取り得るが、その特定の実施形態が、図面に例として図示され、ここに詳細に記載されているに過ぎない。しかし、この詳細な説明は、本発明を特定の実施形態に限定することを意図するものではなく、反対に、添付の特許請求の範囲によって規定される本発明の趣旨ならびに範囲に含まれる全ての変形例、均等物および代替例を含むことを理解すべきである。
本発明の例示的な実施形態を下記に記載する。簡潔を期すために、実際の実装の特徴を全て本明細書に記載することはしない。当然、実際の実施形態の開発においては、システム上の制約およびビジネス上の制約に適合させるなど、開発の具体的な目的を達成するために、実装に固有の判断が数多く必要とされ、この判断は実装によって変わるということが理解される。さらに、この種の開発作業は複雑かつ時間がかかるものであるが、本開示による利益を受ける当業者にとって日常的な作業であるということが理解されよう。
最初に、図1にコンピュータシステム100の概略ブロック図を示す。コンピュータシステム100は、ホストバス104に結合されたマイクロプロセッサなどのプロセッサ102を備えており、プロセッサ102は複数のプロセッサ(図示せず)を有することがある。システムメモリコントローラ106が、ホストバス104とメモリデバイス108とに結合されている。ホストブリッジ110は、ホストバス104を、周辺機器相互接続(peripheral component interconnect:PCI)バス(PCI仕様、レビジョン2.1)などのプライマリバス112に結合している。プライマリバス112には、ビデオコントローラ114やその他のデバイス116(PCIデバイスなど)が結合されている。コンピュータシステム100は、セカンダリPCIバス(図示せず)や当業界で公知のその他の周辺デバイス(図示せず)など、ほかのバスを備えていてもよい。
プロセッサ102は、システムメモリコントローラ106を介してメモリデバイス108と通信している。システムメモリコントローラ106は従来の構成を有するものであり、所望のメモリトランザクションを指定(characterize)するために、メモリデバイス108にメモリのアドレスと論理信号とを渡す。メモリデバイス108は、本発明の趣旨および範囲から逸脱することなく、さまざまな方式のものであり得、例えば同期型ダイナミックランダムアクセスメモリ(SDRAM)、2倍速ダイナミックランダムアクセスメモリ(DDRAM)などである。
図2に、プロセッサ100に関連付けられた物理メモリ108へのアクセスを制御するためにコンピュータシステム100で使用され得るセキュリティシステム200のアーキテクチャの例示的な一実施形態を示す。システム200は、仮想アドレス指定方式によるメモリアクセスを使用しているプロセッサに有用である。例えば、システム200は、x86タイプのマイクロプロセッサで用いられているようなページング方式を使用してメモリのアドレス指定を行うプロセッサで有用である。さらに、システム200は、ページレベルでセキュリティ属性を割り当てるプロセッサに特に利用される。この例に、2001年12月5日に出願された米国特許出願番号第10/005271号「メモリ管理システムならびにメモリアクセスのセキュリティを向上させる方法(MEMORY MANAGEMENT SYSTEM AND METHOD PROVIDING INCREASED MEMORY ACCESS SECURITY)」に記載したものがある。同出願は本出願の譲受人に譲渡されており、その全てがここに援用される。
図2に示す実施形態において、システム200は、マイクロソフトコーポレーションが製造しているWindows(登録商標)などの従来のオペレーティングシステム202に追加される。従来、オペレーティングシステム202およびドライバ204は特権レベル(CPL)=0が割り当てられていた。つまり、オペレーティングシステム202およびドライバ204は、従来、コンピュータシステム100の資源に対しほぼ無制限のアクセス権を有していた。これに対し、アプリケーションプログラム206はCPL=3が割り当てられていた。つまり、アプリケーションプログラム206は、従来、コンピュータシステム100の資源に対して大幅に制限されたアクセス権しか有していなかった。本発明の一実施形態においては、セキュアモード208が、オペレーティングシステム202、ドライバ204およびアプリケーションプログラム206と機能的に対応するように配置されている。すなわち、セキュリティカーネル210はCPL=0を割り当てられ、保護された(セキュアな)アプリケーションプログラム206はCPL=3を割り当てられる。上記に加え、オペレーティングシステム202、ドライバ204、アプリケーションプログラム206、セキュリティカーネル210、および保護されたアプリケーションプログラム212にはセキュリティ特権レベル(SP)が割り当てられる。SPは、セキュアモード208のアクセス権と従来のモードのアクセス権とを分けるように機能する。すなわち、CPLとSPとの組み合せにより、セキュリティカーネルは最高の特権を有するようになる。
このため、セキュリティカーネル210は、さまざまな責任を果たし得るが、本発明にとって重要な機能は、メモリデバイス108の保護された領域(セキュアな領域)にデータ/情報/コードを記録する能力である。すなわち、セキュリティカーネル210は、高い特権レベルを有しているため、メモリの選択した領域へのアクセスを制限し得る。典型的には、セキュリティカーネル210は、起動段階中または起動後に、メモリデバイス108のセクションにデータ/情報/コードを記録し、次にこのセクションが保護されたセクションであることをマークあるいは識別する。メモリのセクションが保護されたセクションであると識別されると、特権レベルの低いプログラムはこれらにアクセスすることもこれらを変更することもできなくなる。例えば、セキュリティカーネル210によって書き込まれ、保護されたセクションとして識別されたメモリのセクションは、オペレーティングシステム202、ドライバ204、保護されたアプリケーションプログラム212またはアプリケーションプログラム206からアクセスできなくなる。このような保護されたメモリのセクションはセキュリティレベル210によってしかアクセスできない。
同時係属中の米国特許出願番号第10/005271号に記載されているように、CPUセキュリティ検査ユニット(SCU)は、CPUがメモリにアクセスする度に検査を行い、そのメモリアクセスが、セキュリティカーネル210によって保護された領域として指定されているメモリ領域内に入るかどうかを判定する。なお、下記に詳述するように、セキュリティカーネル210によって保護された領域として指定されているメモリ領域は、ヒントディレクトリによって分析されるメモリのセグメントよりも小さい。メモリ領域が保護された領域として指定されていない場合、CPU SCUは、メモリアクセスを、ページングユニットなどのアドレス変換メカニズムに渡すことを許可する。これに対し、このメモリアクセスが保護された領域に位置している場合、CPU SCUは、メモリアクセスを分析して、要求側のエージェントが、この要求を開始できるだけの高い特権レベルを有しているかどうかを判定する。CPU SCUの動作に関する詳細な説明は、上記で既に援用した同時継続中の米国特許出願番号第10/005271号に記載されている。
図3に示すように、本発明は、機能的にはCPU SCU 304の前に位置するヒントディレクトリ302を対象としている。ヒントディレクトリ302によって、システム100は、あるメモリアクセスの対象が、保護されたメモリのセクションにないことを比較的迅速に判断して、このメモリアクセスをページングメカニズム306に直接送り、CPU SCU 304をバイパスできるようになる。ページングメカニズム306では、このメモリアクセスの仮想アドレスまたはリニアアドレスが、物理アドレスに翻訳され得る。ヒントディレクトリは、比較的大きなメモリのセクションが、保護されたセクションを有しているかどうかを記録している。すなわち、ヒントディレクトリは、メモリを、1つ以上のページなどの比較的大きなセクションに細分化し、このセクションが保護されたセクションに指定されているかどうかを示すビットを設定する。あるメモリのセクションが保護された部分を有さない場合、このセクションには保護された部分が存在しないため、CPU SCU304は、問い合わせを行って、アクセスしようとしているロケーションが保護された領域に位置しているかどうかを判定する必要がない。
図4に、ヒントディレクトリ400を模式的に示す。ヒントディレクトリ400は、メモリデバイス108に記録されたエントリのディレクトリまたはテーブルであり、先頭はベースアドレス402である。各エントリは、選択されたメモリのセグメントに対応した1つのビットである。各エントリに記録されている値は、セキュリティカーネルが、そのエントリに対応する選択されたメモリのセグメントのいずれかの部分に何らかのデータ/情報/コードを記録しているかどうかを示す。すなわち、このエントリは、対応するメモリのセグメントが保護されており、CPU SCU 304による分析を行う必要があるかどうかを示す。本発明の趣旨および範囲から逸脱することなく、ヒントディレクトリのデータの粒度を変更することができる。すなわち、各エントリがメモリの各ページに対応していることが有用である用途もあれば、各エントリがメモリの複数のページに対応している用途もある。
ヒントディレクトリ400の動作を説明するには、具体例を採り上げることが有用であろう。例えば、32ビットのアドレスと、データ粒度が2キロビットのページのヒントディレクトリを使用するシステム100を考える。図5に示したこの例示的な実施形態において、各2キロビットのページのセルは32ビットアドレスの下位10ビットによって表され、残る上位22ビットはヒントディレクトリ内で各ページと各ロケーションとを識別している。すなわち、ベースアドレス402の上位10ビットは、セキュリティカーネル210によって選択されたメモリの先頭アドレスを識別しており、アクセス要求の上位22ビットはヒントディレクトリ内で特定のビットを識別している。例えば、22ビットアドレス「0000000000000000000000」はヒントディレクトリのロケーション500を識別し、22ビットアドレス「0000000000000000000001」はヒントディレクトリのロケーション502を識別し、22ビットアドレス「0000000000000000000010」はヒントディレクトリのロケーション504を識別するというようになる。
さらに、図5の代表的な実施形態において、ロケーション500,504は論理低値を記録しており、対応する保護された2キロビットロケーションが存在しないことを示す。しかし、ロケーション502は論理的高値を記録しており、対応する保護された2キロビットロケーションが1つ以上存在することを示す。このため、ロケーション500またはロケーション504に対応するロケーションの範囲に入るメモリアクセスが発生すると、ヒントディレクトリによってCPU SCU 304がバイパスされ、変換処理(translation process)が直ちに開始されるようになる。これに対して、ロケーション502に対応するロケーションの範囲に入るメモリアクセスが発生すると、ヒントディレクトリによって、CPU SCU 304がそのメモリアクセス要求を受け取ってこれを分析し、保護されたメモリロケーションにアクセスしようとしているかどうかを判定する。
当業者であれば、明らかにメモリアクセスが保護されたロケーションを対象としていないか、あるいは保護されたロケーションを対象としていない可能性があることを示す指示をヒントディレクトリ302が提供することが理解されよう。ヒントディレクトリ302は、保護されたロケーションを対象としてない可能性があるメモリアクセスをCPU SCU 304に送り、さらに解析させる。
上記に記載した特定の実施形態は例に過ぎず、本発明は、本開示の教示から利益を得る当業者にとって自明の、同等の別法によって変更および実施されてもよい。さらに、ここに記載した構成または設計の詳細が、添付の特許請求の範囲以外によって制限を受けることはない。このため、上記に記載した特定の実施形態を変形または変更することが可能であり、この種の変形例の全てが本発明の範囲ならびに趣旨に含まれることが意図されることが明らかである。したがって、ここに保護を請求する対象は、添付の特許請求の範囲に記載したとおりである。
本発明が使用され得るコンピュータシステムの上位レベルブロック図の一実施形態を模式的に示す図である。 図1のコンピュータシステムにおいて使用され得る、改良されたセキュリティシステムの最上位レベル図の一実施形態を模式的に示す図である。 図1のコンピュータシステムの保護されたメモリ領域へのアクセスを制御するシステムの一部の一実施形態を模式的に示す図である。 コンピュータシステムによって使用される物理メモリのさまざまな部分へのアクセスを制御するための、メモリベースのテーブルの一実施形態を示す図である。 図4のメモリベースのテーブルのより詳細な実施形態を示す図である。

Claims (10)

  1. 第1の予め選択されたメモリ(108)のセグメントのいずれかのロケーションに保護されたデータが記録されているかどうかを示す第1の情報を記録するステップと、
    前記第1の予め選択されたメモリ(108)のセグメントのサブセットである、第2の複数の予め選択されたメモリ(108)のセグメントについて、各々のいずれかのロケーションに保護されたデータが記録されているかどうかを示す第2の情報を記録するステップと、
    アドレス(402)を受け取るステップと、
    受け取った前記アドレス(402)の少なくとも一部が前記第1の予め選択されたメモリ(108)のセグメント内にあるかどうかを判定するステップと、
    記録された前記第1の情報が、前記第1の予め選択されたメモリ(108)のセグメントが保護されたデータを有さないことを示す場合、前記アドレス(402)へのアクセスを許可するステップと、
    記録された前記第1の情報から、前記第1の予め選択されたメモリ(108)のセグメントが保護されたデータを有すると判定した場合、前記第2の予め選択されたメモリ(108)のセグメントのうち、受け取った前記アドレス(402)が位置する少なくとも1つのセグメントを識別するステップと、
    識別された前記第2の予め選択されたメモリ(108)のセグメントに対応する記録された前記第2の情報が、その第2の予め選択されたメモリ(108)のセグメントが保護されたデータを有さないことを示す場合、受け取った前記アドレス(402)へのアクセスを許可するステップと、を有する方法。
  2. 第1の予め選択されたメモリ(108)のセグメントのいずれかのロケーションに保護されたデータが記録されているかどうかを示す第1の情報を記録するステップは、前記第2の複数のメモリ(108)のセグメントのいずれかが保護されたデータを記録している場合に情報の単一のビットを記録するステップをさらに有する請求項1に記載の方法。
  3. 第2の複数の予め選択されたメモリ(108)のセグメントの各々のいずれかのロケーションに保護されたデータが記録されているかどうかを示す第2の情報を記録するステップは、隣接する複数の第2の予め選択されたセグメントの各々のいずれかのロケーションに保護されたデータが記録されているかどうかを示す第2の情報を記録するステップをさらに有する請求項1に記載の方法。
  4. 受け取った前記アドレス(402)の少なくとも一部が前記第1の予め選択されたメモリ(108)のセグメント内にあるかどうかを判定するステップは、受け取った前記アドレス(402)の少なくとも一部が前記隣接する複数の第2の予め選択されたセグメント内にあるかどうかを判定するステップをさらに有する請求項3に記載の方法。
  5. 記録された前記第1の情報から、前記第1の予め選択されたメモリ(108)のセグメントが保護されたデータを有すると判定した場合、前記第2の予め選択されたメモリ(108)のセグメントのうち、受け取った前記アドレス(402)が位置する少なくとも1つのセグメントを識別するステップは、受け取った前記アドレス(402)と、この第2の予め選択されたメモリ(108)のセグメントの少なくとも1つに対応するアドレス範囲と、を比較するステップをさらに有する請求項1に記載の方法。
  6. メモリ(108)のセグメントに記録されている保護されたデータに対するアクセスを制御する装置であって、
    アドレス(402)を受け取ると、第1の複数の予め選択されたメモリ(108)のセグメントの各々のいずれかのロケーションに保護されたデータが記録されているかどうかを示す第1の情報にアクセスするように適合されたセキュリティ検査ユニット(304)と、
    前記第1の複数の予め選択されたメモリ(108)のセグメントのいずれかの1つに保護されたデータが記録されているかどうかを示す第2の情報を記録すると共に、受け取ったアドレス(402)の少なくとも一部が前記第1の予め選択されたメモリ(108)のセグメントのうちの少なくとも1つにあり、かつ前記第2の情報が、前記第1の予め選択されたメモリ(108)のセグメントの各々が保護されたデータを有さないことを示していると判定すると前記セキュリティ検査ユニット(304)をバイパスするためのものであるヒントディレクトリ(302)と、を備えた装置。
  7. 前記ヒントディレクトリ(302)は、前記第2の情報が、前記第1の予め選択されたメモリ(108)のセグメントの少なくとも1つが保護されたデータを有することを示していると判定すると、前記セキュリティ検査ユニット(304)に前記アドレス(402)を提供するものである、請求項6に記載の装置。
  8. 前記ヒントディレクトリ(302)は、前記第1の予め選択されたメモリ(108)のセグメントのうちの第1の複数のセグメントと対応している1つのエントリを含むテーブルを有し、前記エントリは、前記第1の予め選択されたメモリ(108)のセグメントのうちの前記第1の複数のセグメントのいずれかが保護されたデータを有する場合、保護されたデータの存在を示すようにセットされる請求項6に記載の装置。
  9. 前記テーブルは、受け取った前記アドレス(402)の少なくとも一部によって示されるメモリ(108)内のロケーションに記録される請求項8に記載の装置。
  10. 前記テーブルは、受け取った前記アドレス(402)の上位ビットの少なくとも一部によって示されるメモリ(108)内のロケーションに記録される請求項8に記載の装置。
JP2003581029A 2002-03-27 2002-12-20 データプロセッサのセキュリティを改善させるための方法ならびに装置 Expired - Lifetime JP4399270B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/107,633 US7571318B2 (en) 2002-03-27 2002-03-27 Method and apparatus for improved security in a data processor
PCT/US2002/041663 WO2003083673A1 (en) 2002-03-27 2002-12-20 Method and apparatus for improved security in a data processor

Publications (2)

Publication Number Publication Date
JP2005521943A true JP2005521943A (ja) 2005-07-21
JP4399270B2 JP4399270B2 (ja) 2010-01-13

Family

ID=28452679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003581029A Expired - Lifetime JP4399270B2 (ja) 2002-03-27 2002-12-20 データプロセッサのセキュリティを改善させるための方法ならびに装置

Country Status (8)

Country Link
US (1) US7571318B2 (ja)
JP (1) JP4399270B2 (ja)
KR (1) KR101000543B1 (ja)
CN (1) CN1315061C (ja)
AU (1) AU2002359879A1 (ja)
DE (1) DE10297688B4 (ja)
GB (1) GB2402782B (ja)
WO (1) WO2003083673A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050033979A1 (en) * 2003-08-08 2005-02-10 Hyser Chris D. Method and system for secure direct memory access
US7454787B2 (en) * 2004-01-13 2008-11-18 Hewlett-Packard Development Company, L.P. Secure direct memory access through system controllers and similar hardware devices
US7457832B2 (en) * 2004-08-31 2008-11-25 Microsoft Corporation Verifying dynamically generated operations on a data store
EP1742152B1 (en) * 2005-07-07 2012-09-12 Texas Instruments Inc. Method and system for a multi-sharing memory access control
US7752444B2 (en) * 2005-12-21 2010-07-06 Nortel Networks Limited System and method for providing identity hiding in a shared key authentication protocol
CN101079083B (zh) * 2006-05-25 2010-05-12 中国科学院计算技术研究所 一种对访存操作进行权限检查的系统、装置及方法
US9129071B2 (en) * 2012-10-24 2015-09-08 Texas Instruments Incorporated Coherence controller slot architecture allowing zero latency write commit
US9378152B2 (en) * 2014-05-09 2016-06-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for I/O processing using out-of-band hinting to block driver or storage controller
US9507722B2 (en) 2014-06-05 2016-11-29 Sandisk Technologies Llc Methods, systems, and computer readable media for solid state drive caching across a host bus
US9563382B2 (en) 2014-06-05 2017-02-07 Sandisk Technologies Llc Methods, systems, and computer readable media for providing flexible host memory buffer
US10228854B2 (en) 2014-08-20 2019-03-12 Sandisk Technologies Llc Storage devices and methods for optimizing use of storage devices based on storage device parsing of file system metadata in host write operations
US10268584B2 (en) 2014-08-20 2019-04-23 Sandisk Technologies Llc Adaptive host memory buffer (HMB) caching using unassisted hinting
US10007442B2 (en) * 2014-08-20 2018-06-26 Sandisk Technologies Llc Methods, systems, and computer readable media for automatically deriving hints from accesses to a storage device and from file system metadata and for optimizing utilization of the storage device based on the hints
US9927997B2 (en) 2015-12-21 2018-03-27 Sandisk Technologies Llc Methods, systems, and computer readable media for automatically and selectively enabling burst mode operation in a storage device
US10521118B2 (en) 2016-07-13 2019-12-31 Sandisk Technologies Llc Methods, systems, and computer readable media for write classification and aggregation using host memory buffer (HMB)
US10936826B2 (en) 2018-06-14 2021-03-02 International Business Machines Corporation Proactive data breach prevention in remote translation environments
US10884920B2 (en) 2018-08-14 2021-01-05 Western Digital Technologies, Inc. Metadata-based operations for use with solid state devices
CN109033775A (zh) * 2018-09-03 2018-12-18 东莞华贝电子科技有限公司 一种访问权限的远程控制方法及系统
US11340810B2 (en) 2018-10-09 2022-05-24 Western Digital Technologies, Inc. Optimizing data storage device operation by grouping logical block addresses and/or physical block addresses using hints
US11249664B2 (en) 2018-10-09 2022-02-15 Western Digital Technologies, Inc. File system metadata decoding for optimizing flash translation layer operations

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0481735A3 (en) * 1990-10-19 1993-01-13 Array Technology Corporation Address protection circuit
US6003117A (en) * 1997-10-08 1999-12-14 Vlsi Technology, Inc. Secure memory management unit which utilizes a system processor to perform page swapping
US6154818A (en) * 1997-11-20 2000-11-28 Advanced Micro Devices, Inc. System and method of controlling access to privilege partitioned address space for a model specific register file
US6516395B1 (en) * 1997-11-20 2003-02-04 Advanced Micro Devices, Inc. System and method for controlling access to a privilege-partitioned address space with a fixed set of attributes
US6748592B1 (en) * 2000-02-14 2004-06-08 Xoucin, Inc. Method and apparatus for protectively operating a data/information processing device
US7216345B1 (en) * 2000-04-07 2007-05-08 Hall Aluminum Llc Method and apparatus for protectively operating a data/information processing device
GB2381626B (en) * 2000-07-18 2005-02-09 Intel Corp Controlling access to multiple isolated memories in an isolated execution environment
CN1291747A (zh) * 2000-11-24 2001-04-18 李楠甍 高速缓存设备及其使用方法
US7073059B2 (en) * 2001-06-08 2006-07-04 Hewlett-Packard Development Company, L.P. Secure machine platform that interfaces to operating systems and customized control programs
US6745307B2 (en) * 2001-10-31 2004-06-01 Hewlett-Packard Development Company, L.P. Method and system for privilege-level-access to memory within a computer

Also Published As

Publication number Publication date
DE10297688B4 (de) 2006-12-14
US20030188184A1 (en) 2003-10-02
CN1315061C (zh) 2007-05-09
CN1623142A (zh) 2005-06-01
KR101000543B1 (ko) 2010-12-14
KR20040101310A (ko) 2004-12-02
GB2402782A (en) 2004-12-15
GB2402782B (en) 2005-11-02
DE10297688T5 (de) 2005-06-30
WO2003083673A1 (en) 2003-10-09
JP4399270B2 (ja) 2010-01-13
AU2002359879A1 (en) 2003-10-13
GB0420638D0 (en) 2004-10-20
US7571318B2 (en) 2009-08-04

Similar Documents

Publication Publication Date Title
JP4399270B2 (ja) データプロセッサのセキュリティを改善させるための方法ならびに装置
US6678825B1 (en) Controlling access to multiple isolated memories in an isolated execution environment
US7127579B2 (en) Hardened extended firmware interface framework
US5657445A (en) Apparatus and method for limiting access to mass storage devices in a computer system
US6633963B1 (en) Controlling access to multiple memory zones in an isolated execution environment
US6986006B2 (en) Page granular curtained memory via mapping control
US6934817B2 (en) Controlling access to multiple memory zones in an isolated execution environment
EP2537097B1 (en) Storing secure mode page table data in secure and non-secure regions of memory
US7043616B1 (en) Method of controlling access to model specific registers of a microprocessor
KR100975981B1 (ko) 보안 실행 모드 하에서 보안 커넬을 사용하는 트러스트된클라이언트
JP3982687B2 (ja) 分離実行環境での複数の分離メモリへのアクセスの制御
US20070220276A1 (en) Managing access to content in a data processing apparatus
US6785790B1 (en) Method and apparatus for storing and retrieving security attributes
KR100931706B1 (ko) 타겟 보안을 결정하기 위한 물리적 어드레스-기반 보안에관한 방법 및 장치
US10467410B2 (en) Apparatus and method for monitoring confidentiality and integrity of target system
JP2005512228A (ja) 強化されたメモリアクセスセキュリティを提供する、メモリに対するデバイスのアクセスを制御するシステムおよび方法
JP2023526811A (ja) タグチェック装置及び方法
JP2008234248A (ja) プログラム実行装置及びプログラム実行方法
US7089418B1 (en) Managing accesses in a processor for isolated execution
KR100939328B1 (ko) 보안민감명령들의 제한실행을 위한 방법 및 장치
JP4478458B2 (ja) 所望のセキュリティを用いた入出力デバイスにアクセスするための方法及び装置
JP2001249848A (ja) 先行特権レベルに基づく特権昇格
US6889308B1 (en) Method and apparatus for protecting page translations
JPH07302227A (ja) メモリ保護方法およびその装置
US7698522B1 (en) Method and apparatus for linear address based page level security scheme to determine current security context

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090526

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090826

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: 20090929

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: 20091026

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

Free format text: PAYMENT UNTIL: 20121030

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4399270

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121030

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131030

Year of fee payment: 4

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

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term