JP2005521935A - System and method for controlling access between devices in a computer system - Google Patents
System and method for controlling access between devices in a computer system Download PDFInfo
- Publication number
- JP2005521935A JP2005521935A JP2003580989A JP2003580989A JP2005521935A JP 2005521935 A JP2005521935 A JP 2005521935A JP 2003580989 A JP2003580989 A JP 2003580989A JP 2003580989 A JP2003580989 A JP 2003580989A JP 2005521935 A JP2005521935 A JP 2005521935A
- Authority
- JP
- Japan
- Prior art keywords
- access
- signal
- memory
- bus
- address
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1483—Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
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)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Accommodation For Nursing Or Treatment Tables (AREA)
- Aiming, Guidance, Guns With A Light Source, Armor, Camouflage, And Targets (AREA)
- Credit Cards Or The Like (AREA)
Abstract
対象となるデバイス(414A〜414D)に対してアクセスセキュリティを提供する装置及び方法である。この装置は伝送媒体(408,412)に接続されるように構成されたセキュリティチェックユニット(416,418)を含む。セキュリティチェックユニット(416,418)は、伝送媒体(408,412)上の信号を監視し、伝送媒体(408,412)に接続された第1のデバイス(414A〜414D)によって伝送媒体(408,412)に接続された第2のデバイス(414A〜414D)へアクセスする試行を信号に基づいて検出するように構成されている。セキュリティチェックユニット(416,418)はまた、信号に基づいて第1のデバイス(414A〜414D)を識別し、第1のデバイス(414A〜414D)による第2のデバイス(414A〜414D)へのアクセスを第1のデバイス(414A〜414D)の識別結果に従って制御するように構成されている。An apparatus and a method for providing access security to a target device (414A to 414D). The apparatus includes a security check unit (416, 418) configured to be connected to a transmission medium (408, 412). The security check unit (416, 418) monitors a signal on the transmission medium (408, 412) and is transmitted by the first device (414A to 414D) connected to the transmission medium (408, 412). 412) is configured to detect an attempt to access a second device (414A-414D) connected to 412) based on the signal. The security check unit (416, 418) also identifies the first device (414A-414D) based on the signal and accesses the second device (414A-414D) by the first device (414A-414D). Are controlled according to the identification result of the first device (414A to 414D).
Description
本発明は、概して、コンピュータシステムに関し、特にコンピュータシステム要素に対するアクセス保護を行う構造及び方法に関する。 The present invention relates generally to computer systems, and more particularly to structures and methods for providing access protection to computer system elements.
なお、本願は、2001年12月5日出願の同時係属出願番号10/011,151「メモリへのアクセスセキュリティを高めたメモリへのデバイスアクセスの処理システム及び方法(System and Method for Handling Device Accesses to a Memory Providing Increased Memory Access Security)」及び同時係属出願番号10/005,271(代理人ドケットNo.2000.055900(TT4079))「メモリへのアクセスセキュリティを高めたメモリ管理システム及び方法(Memory Management System and Method Providing Increased Memory Access Security)」、並びに本願と同一日に出願の同時係属出願番号10/108,253「領域が粒度化されており、ハードウェアが制御するメモリの暗号化を行う方法(Method Providing Region−Granular, Hardware−Controlled Memory Encryption)」に関連している。 In addition, this application is a copending application number 10 / 011,151 filed on Dec. 5, 2001, “System and Method for Handling Device Access to Memory and Device Access Processing System with Improved Access Security to Memory”. a Memory Providing Incremented Memory Access Security ”and co-pending application No. 10 / 005,271 (Attorney Docket No. 2000.055900 (TT4079))“ Memory Management System and Method for Improving Access Security to Memory (Memory Management System and Method Providing Increased Memory Access Security) ”, and co-pending application No. 10 / 108,253, filed on the same day as the present application,“ Method Providing Region-Granular, Hardware ” -Controlled Memory Encryption) ".
一般的なコンピュータシステムには、比較的低コストで比較的高レベルの性能を得るために、メモリ階層が導入されている。数種の異なるソフトウェアプログラムの命令は、通常比較的大容量であるが速度の遅い不揮発性記憶ユニット(例えばディスクドライブユニット)上に記憶されている。ユーザーがそのプログラムのうちの1つを選択して実行すると、選択されたプログラムの命令がメインメモリユニットにコピーされ、中央演算処理装置(CPU)がメインメモリユニットから選択されたプログラムの命令を得る。周知の仮想メモリ管理技術によって、CPUは、任意の時間にメインメモリユニット内のデータ構造の一部分のみを記憶することにより、メインメモリユニットよりもサイズが大きいデータ構造へのアクセスが可能になる。データ構造の残りの部分は比較的大容量であるが速度の遅い不揮発性記憶ユニット内に記憶され、必要時のみメインメモリユニットへコピーされる。 In general computer systems, a memory hierarchy is introduced to obtain a relatively high level of performance at a relatively low cost. The instructions of several different software programs are typically stored on a non-volatile storage unit (eg, disk drive unit) that is relatively large in capacity but slow. When the user selects and executes one of the programs, the instructions of the selected program are copied to the main memory unit, and the central processing unit (CPU) gets the instructions of the selected program from the main memory unit. . A well-known virtual memory management technique allows the CPU to access a data structure that is larger in size than the main memory unit by storing only a portion of the data structure in the main memory unit at any given time. The rest of the data structure is stored in a relatively large but slow-speed non-volatile storage unit and is copied to the main memory unit only when necessary.
仮想メモリは、通常、CPUのアドレス空間をページフレームまたは「ページ」と呼ばれる複数のブロックに分割することにより実施される。ページの一部分に相当するデータのみが、任意の時間にメインメモリユニットに記憶される。CPUがあるページ内においてアドレスを生成し、そのページのコピーがメインメモリユニット内に位置していない場合、データの必要なページは比較的大容量であるが速度の遅い不揮発性記憶ユニットからメインメモリユニットへコピーされる。この処理において、データの別のページをメインメモリユニットから不揮発性記憶ユニットにコピーして必要なページのための空間を空けておいてもよい。 Virtual memory is typically implemented by dividing the CPU address space into a plurality of blocks called page frames or “pages”. Only data corresponding to a portion of the page is stored in the main memory unit at any time. If the CPU generates an address in a page and the copy of the page is not located in the main memory unit, the page that requires data is a relatively large capacity but slow speed nonvolatile storage unit to main memory Copied to the unit. In this process, another page of data may be copied from the main memory unit to the non-volatile storage unit to free up space for the required page.
一般に普及している80x86(x86)プロセッサアーキテクチャには、保護されている仮想アドレスモード(つまり、プロテクトモード)をサポートする専用のハードウェア要素が含まれている。ここで、図1〜3を用いて、x86プロセッサが仮想メモリ及びメモリ保護の両機能をいかに実施するかについて説明する。図1は、x86プロセッサアーキテクチャの周知のリニア‐物理アドレス変換機構100の図である。アドレス変換機構100はx86プロセッサに組み込まれており、x86プロセッサ内で生成されたリニアアドレス102、ページテーブルディレクトリ(つまり、ページディレクトリ)104、ページテーブル106を含む複数のページテーブル、ページフレーム108を含む複数のページフレーム、及び制御レジスタ3(CR3)110を含む。ページディレクトリ104及び複数のページテーブルは、オペレーティングシステムソフトウェア(つまり、オペレーティングシステム)により生成され維持されているページングされたメモリデータ構造である。ページディレクトリ104は常にメモリ(例えばメインメモリユニット)内に位置している。説明を簡単にするために、ページテーブル106とページフレーム108もまたメモリ内にあると想定する。
The popular 80x86 (x86) processor architecture includes dedicated hardware elements that support a protected virtual address mode (ie, protected mode). Here, how the x86 processor performs both virtual memory and memory protection functions will be described with reference to FIGS. FIG. 1 is a diagram of a well-known linear-to-physical
図1に示すように、リニアアドレス102は、リニア‐物理アドレス変換を実現するために3つの部分に分割されている。CR3 110の最高位ビットはページディレクトリベースレジスタを格納するのに用いられる。ページディレクトリベースレジスタとは、ページディレクトリ104が含まれているメモリページのベースアドレスである。ページディレクトリ104は、ページディレクトリエントリ112を含む複数のページディレクトリエントリを含む。リニアアドレス102の上位にある「ディレクトリインデックス」部分はリニアアドレス102の最高位ビット、つまり最上位ビットを含み、ページディレクトリ104へのインデックスとして用いられる。ページディレクトリエントリ112は、CR3 110のページディレクトリベースレジスタ及びリニアアドレス102の上位にある「ディレクトリインデックス」部分を用いて、ページディレクトリ104内から選択される。
As shown in FIG. 1, the linear address 102 is divided into three parts in order to realize linear-physical address conversion. The most significant bit of
図2はx86プロセッサアーキテクチャのページディレクトリエントリフォーマット200の図である。図2に示すように、あるページディレクトリエントリの最高位(つまり、最上位)ビットにはページテーブルベースアドレスが含まれている。ここで、ページテーブルベースアドレスとは、対応するページテーブルが含まれているメモリページのベースアドレスである。ページディレクトリエントリ112のページテーブルベースアドレスは、対応するページテーブル106を選択するのに用いられる。
FIG. 2 is a diagram of a page directory entry format 200 for the x86 processor architecture. As shown in FIG. 2, the most significant (that is, most significant) bit of a page directory entry includes a page table base address. Here, the page table base address is a base address of a memory page including a corresponding page table. The page table base address of the
再度図1において、ページテーブル106はページテーブルエントリ114を含む複数のページテーブルエントリを含む。リニアアドレス102の中位にある「テーブルインデックス」部分をページテーブル106へのインデックスとして用いることにより、ページテーブルエントリ114を選択する。図3はx86プロセッサアーキテクチャのページテーブルエントリフォーマット300の図である。図3に示すように、あるページテーブルエントリの最高位(つまり、最上位)ビットには、ページフレームベースアドレスが含まれている。ここで、ページフレームベースアドレスとは対応するページフレームのベースアドレスである。 Referring back to FIG. 1, the page table 106 includes a plurality of page table entries including a page table entry 114. The page table entry 114 is selected by using the “table index” portion at the middle of the linear address 102 as an index to the page table 106. FIG. 3 is a diagram of a page table entry format 300 for the x86 processor architecture. As shown in FIG. 3, the most significant (that is, most significant) bit of a page table entry includes a page frame base address. Here, the page frame base address is the base address of the corresponding page frame.
再度図1において、ページテーブルエントリ114のページフレームベースアドレスは、対応するページフレーム108を選択するのに用いられる。ページフレーム108は複数のメモリ位置を含む。リニアアドレス102の下位にある部分、つまり「オフセット」部分はページフレーム108へのインデックスとして用いられる。ページテーブルエントリ114のページフレームベースアドレスとリニアアドレス102のオフセット部分は、結合するとリニアアドレス102に相当する物理アドレスになり、ページフレーム108内のメモリ位置116を表している。メモリ位置116はリニア‐物理アドレス変換に起因する物理アドレスを有する。
Again in FIG. 1, the page frame base address of the page table entry 114 is used to select the
メモリ保護機能に関しては、図2のページディレクトリエントリフォーマット200及び図3のページテーブルエントリフォーマット300は、ユーザー/管理者(U/S:user/supervisor)ビット及び読み出し/書き込み(R/W)ビットを含む。U/Sビット及びR/Wビットの各内容をオペレーティングシステムが使用することにより、認証されていないアクセスから対応するページフレーム(つまり、メモリページ)を保護する。U/S=0はオペレーティングシステムメモリページを示すのに用いられ、オペレーティングシステムの「管理者」レベルに相当する。このオペレーティングシステムの管理者レベルは、x86プロセッサが実行するソフトウェアプログラム及びルーチンの現行の特権レベル0(CPL0)に相当する(管理者レベルはまた、x86プロセッサのCPL1及び/またはCPL2レベルに相当していてもよい)。U/S=1はユーザーメモリページを示すのに用いられ、オペレーティングシステムの「ユーザー」レベルに相当する。このオペレーティングシステムのユーザーレベルは、x86プロセッサのCPL3に相当する(ユーザーレベルもまた、x86プロセッサのCPL1及び/またはCPL2レベルに相当していてもよい)。 Regarding the memory protection function, the page directory entry format 200 of FIG. 2 and the page table entry format 300 of FIG. 3 have a user / administrator (U / S) bit and a read / write (R / W) bit. Including. The contents of the U / S bit and the R / W bit are used by the operating system to protect the corresponding page frame (ie, memory page) from unauthorized access. U / S = 0 is used to indicate an operating system memory page and corresponds to the “administrator” level of the operating system. The administrator level of this operating system corresponds to the current privilege level 0 (CPL0) of software programs and routines executed by the x86 processor (the administrator level also corresponds to the CPL1 and / or CPL2 level of the x86 processor). May be). U / S = 1 is used to indicate a user memory page and corresponds to the “user” level of the operating system. The user level of the operating system corresponds to CPL3 of the x86 processor (the user level may also correspond to the CPL1 and / or CPL2 level of the x86 processor).
R/Wビットは、対応するメモリページに許可されているアクセスの種類を示すのに用いられる。R/W=0は、対応するメモリページには読み出しアクセスしか許可されていないことを示している(つまり、対応するメモリページは「読み出し専用」である)。R/W=1は、対応するメモリページには読み出しアクセスと書き込みアクセスの両方が許可されていることを示している(つまり、対応するメモリページは「読み出し書き込み可能」である)。 The R / W bit is used to indicate the type of access permitted for the corresponding memory page. R / W = 0 indicates that only the read access is permitted to the corresponding memory page (that is, the corresponding memory page is “read only”). R / W = 1 indicates that both the read access and the write access are permitted for the corresponding memory page (that is, the corresponding memory page is “read / write enabled”).
図1に示すリニア‐物理アドレス変換動作中には、ページフレーム108に相当するページディレクトリエントリ112とページテーブルエントリ114の各U/Sビットの内容に対して論理積演算が行われ、それによりページフレーム108へのアクセスが認証されているかどうかを判断する。同様に、ページディレクトリエントリ112とページテーブルエントリ114の各R/Wビットの内容に対して論理積演算が行われ、それによりページフレーム108へのアクセスが認証されているかどうかを判断する。U/Sビット及びR/Wビットの各論理結合がページフレーム108へのアクセスが認証されていると示している場合、物理アドレスを用いてメモリ位置116へのアクセスが行われる。一方、U/Sビット及びR/Wビットの各論理結合がページフレーム108へのアクセスが認証されていないと示している場合、メモリ位置116へのアクセスは行われず、保護違反を示す信号が発生する。
During the linear-physical address conversion operation shown in FIG. 1, a logical product operation is performed on the contents of each U / S bit of the
残念ながら、上述のx86プロセッサアーキテクチャのメモリ保護機構は、メモリ内に格納したデータを保護するには十分なものではない。例えば、管理者レベル(例えば、CPL値が0)で実行する任意のソフトウェアプログラムまたはルーチンは、メモリのあらゆる部分へのアクセスが可能であると共に、メモリの「読み出し専用」(R/W=0)と標示されていない部分のいずれに対しても変更(つまり、書き込み)が可能である。さらに、管理者レベルで実行することにより、ソフトウェアプログラムまたはルーチンはメモリのあらゆる部分の属性(つまり、U/Sビット及びR/Wビット)を変えることができる。従って、ソフトウェアプログラムまたはルーチンによって、メモリの「読み出し専用」と標示されている部分のいずれに対しても「読み出し書き込み可能」(R/W=1)への変更が可能になり、さらにメモリの当該部分の変更を続けて行うことが可能になる。 Unfortunately, the memory protection mechanism of the x86 processor architecture described above is not sufficient to protect the data stored in memory. For example, any software program or routine that executes at an administrator level (eg, CPL value of 0) can access any part of the memory and “read only” (R / W = 0) of the memory. It is possible to change (that is, write) any part that is not marked with. Furthermore, by executing at the administrator level, a software program or routine can change the attributes (ie, U / S bit and R / W bit) of any part of the memory. Therefore, any part of the memory labeled “Read Only” can be changed to “Read / Write” (R / W = 1) by the software program or routine, and the memory It becomes possible to continue to change the part.
x86プロセッサアーキテクチャの保護機構はまた、メモリに動作可能に接続されたハードウェアデバイスによるメモリへの誤ったアクセス、つまり不正アクセスの防止においても不十分である。実際、ハードウェアデバイスが起動した(メモリにおける始めに上述のように変更される部分の属性を持たない)書き込みアクセスでは、メモリの「読み出し専用」と標示された部分は変更できない。また、ハードウェアデバイスとメモリ間のデータ転送を扱うソフトウェアプログラムまたはルーチン(例えば、デバイスドライバ)は、通常ユーザーレベル(例えば、CPL3)で実行し、メモリにおける管理者レベル(U/S=0)と標示された部分へのアクセスは許可されていないことも事実である。しかし、x86プロセッサアーキテクチャの保護機構は、命令を実行した結果行われたメモリへのデバイスアクセス(つまり、プログラミングされた入力/出力)のみを対象としている。デバイスドライバは、ハードウェアデバイスからメモリにおけるハードウェアデバイスがアクセス可能なあらゆる部分へデータを転送するバスマスタリング機能もしくはDMA機能を有するハードウェアデバイスをプログラミングすることができる。例えば、フロッピーディスクコントローラに対して、フロッピーディスクからメモリにおけるオペレーティングシステムを格納するのに用いられる部分へ直接データを転送するようにプログラミングすることは比較的易しい。 The protection mechanism of the x86 processor architecture is also inadequate in preventing erroneous access to the memory, ie unauthorized access, by a hardware device operably connected to the memory. In fact, in a write access initiated by the hardware device (without the attribute of the portion that is changed at the beginning in the memory), the portion of the memory labeled “Read Only” cannot be changed. Also, a software program or routine (for example, a device driver) that handles data transfer between a hardware device and a memory is normally executed at a user level (for example, CPL3), and an administrator level (U / S = 0) in the memory. It is also true that access to the marked part is not permitted. However, the protection mechanism of the x86 processor architecture covers only device accesses to memory (ie, programmed inputs / outputs) that result from executing instructions. The device driver can program a hardware device having a bus mastering function or a DMA function that transfers data from the hardware device to any part of the memory accessible by the hardware device. For example, it is relatively easy to program a floppy disk controller to transfer data directly from a floppy disk to the portion of the memory used to store the operating system.
さらに、x86プロセッサアーキテクチャの保護機構はデバイス間アクセスのアドレス指定を行わない。ハードウェアデバイスを含むコンピュータシステムの全ての構成要素は、通常、通信を容易に行うために、互いに動作可能に結合している。システムの初期化(つまり、「ブートアップ」)中、CPUは、所望の機能を行うように各ハードウェアデバイスを構成する命令(つまり、プログラム)を実行する。コンピュータシステムの通常動作中、CPUと各ハードウェアデバイスは既定のプロトコルを用いて互いへのアクセスを行う。しかし、第2のハードウェアデバイスから機密情報を得るために、または第2のハードウェアデバイスにおいてプログラミングされている機能を変更するために、不正なデバイスドライバソフトウェアが、バスマスタリング機能やDMA機能を有する第1のハードウェアデバイスを第2のハードウェアデバイスにアクセスするようにプログラミングする場合がある。このようなアクセスが、結果的に、物理的なダメージを第2のハードウェアデバイスにもたらすような動作をするように第2のハードウェアデバイスをプログラミングしてしまう場合もある。 In addition, the x86 processor architecture protection mechanism does not address inter-device access. All components of a computer system, including hardware devices, are typically operably coupled to one another for easy communication. During system initialization (ie, “boot-up”), the CPU executes instructions (ie, programs) that configure each hardware device to perform a desired function. During normal operation of the computer system, the CPU and each hardware device access each other using a predetermined protocol. However, in order to obtain confidential information from the second hardware device or to change the function programmed in the second hardware device, the unauthorized device driver software has a bus mastering function or a DMA function. A first hardware device may be programmed to access a second hardware device. Such an access may result in programming the second hardware device to operate in such a way as to cause physical damage to the second hardware device.
本発明のある態様において、ある装置が提供されている。この装置は、伝送媒体に接続するように構成されたセキュリティチェックユニット(SCU)を含む。このSCUは、伝送媒体上の信号を監視し、伝送媒体に接続された第1のデバイスによって伝送媒体に接続された第2のデバイスへアクセスする試行を信号に基づいて検出するように構成されている。このSCUはまた、信号に基づいて第1のデバイスを識別し、第1のデバイスによる第2のデバイス(414A〜414D)へのアクセスを第1のデバイスの識別結果に従って制御するように構成されている。 In certain aspects of the invention, an apparatus is provided. The apparatus includes a security check unit (SCU) configured to connect to a transmission medium. The SCU is configured to monitor a signal on the transmission medium and detect based on the signal an attempt to access a second device connected to the transmission medium by a first device connected to the transmission medium. Yes. The SCU is also configured to identify the first device based on the signal and control access to the second device (414A-414D) by the first device according to the identification result of the first device. Yes.
本発明の他の態様では、別の装置が提供されている。この装置は、伝送媒体に接続するように構成されたセキュリティチェックユニット(SCU)を含む。このSCUは、伝送媒体上の信号を監視し、伝送媒体に接続された第1のデバイスによって伝送媒体に接続された第2のデバイスへアクセスする試行を信号に基づいて検出するように構成されている。このSCUはまた、信号に基づいて第1のデバイスを識別し、第1のデバイスが第2のデバイスへアクセスすることを認証されているかどうかを第1のデバイスの識別結果に基づいて判定するように構成されている。このSCUはまた、第1のデバイスが第2のデバイスへアクセスすることを認証されている場合、第1のデバイスによるアクセス試行を許可するように第2のデバイスを構成する構成を有する。 In another aspect of the invention, another apparatus is provided. The apparatus includes a security check unit (SCU) configured to connect to a transmission medium. The SCU is configured to monitor a signal on the transmission medium and detect based on the signal an attempt to access a second device connected to the transmission medium by a first device connected to the transmission medium. Yes. The SCU also identifies the first device based on the signal and determines whether the first device is authorized to access the second device based on the identification result of the first device. It is configured. The SCU also has a configuration that configures the second device to allow an access attempt by the first device if the first device is authorized to access the second device.
本発明のさらに別の態様では、対象となるデバイスに対してアクセスセキュリティを提供する方法を提供する。この方法は、信号を監視し、信号に基づいて対象となるデバイスへの別のデバイスによるアクセスの試行を検出する方法である。この方法はまた、信号を用いて別のデバイスを識別し、対象となるデバイスへのアクセスを別のデバイスの識別結果に従って制御する方法である。 In yet another aspect of the present invention, a method for providing access security to a target device is provided. This method is a method of monitoring a signal and detecting an access attempt by another device to the target device based on the signal. This method is also a method of identifying another device using a signal and controlling access to the target device according to the identification result of the other device.
本発明は、添付の図面に関連付けて行われる以下の説明を参照することにより理解されるであろう。以下の説明において、同等な参照符号は類似の要素を示す。 The present invention will be understood by reference to the following description taken in conjunction with the accompanying drawings. In the following description, equivalent reference numerals indicate similar elements.
本発明は様々な変更や代替形態が可能であるが、本発明の個別の実施形態は、各図面において例示として示されたものであり、ここでは詳細に説明されている。しかしながら、ここで行われている実施形態の説明は、本発明を開示された特定の形態に限定することを意図するものではなく、逆に、本発明は、添付請求項により定義されるような本発明の精神や範囲の範疇である全ての変更、均等物、及び代替物を含むものであることは理解すべきである。 While the invention is susceptible to various modifications and alternative forms, specific embodiments of the invention have been shown by way of example in the drawings and are herein described in detail. However, the description of the embodiments provided herein is not intended to limit the invention to the particular forms disclosed, but on the contrary, the invention is as defined by the appended claims. It should be understood that all modifications, equivalents, and alternatives falling within the spirit and scope of the present invention are included.
以下に、本発明の例証となる実施形態を説明する。簡明化のため、本明細書では、実際の実施例の全ての特徴を説明してはいない。勿論、このような実際の実施形態のいずれにおける開発でも、システムや業務に関連する制約の遵守といった、実施例ごとに変わる開発者独自の目標を達成するために、各実施例に特有の決定を数多く行わなければならないことは理解されよう。さらに、このような開発の労力は、複雑で時間を消費するものであるが、それでも、本発明の開示の恩恵を受ける一般的な当業者が請け負うルーチンであろうことは理解されよう。 In the following, exemplary embodiments of the present invention will be described. For the sake of simplicity, this description does not describe all the features of the actual embodiment. Of course, development in any of these actual embodiments will require specific decisions for each example in order to achieve developer-specific goals that vary from example to example, such as compliance with system and business constraints. It will be appreciated that many things must be done. Further, it will be appreciated that such development efforts are complex and time consuming, but may still be routines undertaken by those of ordinary skill in the art to benefit from the present disclosure.
図4はコンピュータシステム400の一実施形態の図であり、コンピュータシステム400には、CPU402、システムすなわち「ホスト」ブリッジ404、メモリ406、第1のデバイスバス408(例えば、周辺機器接続すなわちPCIバス)、デバイスバスブリッジ410、第2のデバイスバス412(例えば、業界標準アーキテクチャすなわちISAバス)、及び4個のデバイスハードウェアユニット414A〜414Dが含まれている。ホストブリッジ404はCPU402、メモリ406、及びデバイスバス408に接続されている。ホストブリッジ404はCPU402とデバイスバス408との間の信号を変換し、メモリ406をCPU402とデバイスバス408に動作可能に接続する。デバイスバスブリッジ410はデバイスバス408とデバイスバス412との間に接続されており、デバイスバス408とデバイスバス412との間の信号を変換する。図4の実施形態では、デバイスハードウェアユニット414A,414Bはデバイスバス408に、デバイスハードウェアユニット414C,414Dはデバイスバス412にそれぞれ接続されている。デバイスハードウェアユニット414A〜414Dのうちの1つ以上が、例えば、記憶デバイス(例えば、ハードディスクドライブ、フロッピーディスクドライブ、CD−ROMドライブ)、通信デバイス(例えば、モデムやネットワークアダプタ)、もしくは、入出力デバイス(例えば、ビデオデバイス、オーディオデバイス、プリンタ)であってもよい。
FIG. 4 is a diagram of one embodiment of a
図4の実施形態において、CPU402はCPUセキュリティチェックユニット(SCU)416を含み、ホストブリッジ404はホストブリッジSCU418を含む。以下に詳しく述べるように、CPUSCU416は、CPU402が生成したアクセス(つまり、「ソフトウェアが起動したアクセス」)であるとともに認証されていないものからメモリ406を保護し、ホストブリッジSCU418は、デバイスハードウェアユニット414A〜414Dが起動したアクセス(つまり、「ハードウェアが起動したアクセス」)であるとともに認証されていないものからメモリ406を保護する。なお、他の実施形態において、ホストブリッジ404は図4に示すようにCPU402の一部であってもよい。
In the embodiment of FIG. 4,
図5は、図4のコンピュータシステム400の様々なハードウェア要素及びソフトウェア要素の間の関係を示す図である。図5の実施形態において、複数のアプリケーションプログラム500、オペレーティングシステム502、セキュリティカーネル504、及びデバイスドライバ506A〜506Dがメモリ406に格納されている。アプリケーションプログラム500、オペレーティングシステム502、セキュリティカーネル504、及びデバイスドライバ506A〜506Dは、CPU402により実行される命令を含む。オペレーティングシステム502は、ユーザーインターフェイスやソフトウェア「プラットフォーム」を提供し、これらの上で、アプリケーションプログラム500が動作する。オペレーティングシステム502はまた、例えば、ファイルシステム管理、プロセス管理、入出力(I/O)制御等の基本的なサポート機能を提供してもよい。
FIG. 5 is a diagram illustrating the relationship between the various hardware and software elements of the
オペレーティングシステム502はまた、基本的なセキュリティ機能を提供してもよい。例えば、CPU402(図4)は、x86の命令一式の中の命令を実行するx86プロセッサであってもよい。この場合に、CPU402は、専用のハードウェア要素を備えることにより、上述のようなプロテクトモードにおいて仮想メモリとメモリ保護の特徴を両方提供してもよい。オペレーティングシステム502は、例えば、プロテクトモードでCPU402を動作させ、CPU402の専用のハードウェア要素を使用してプロテクトモードで仮想メモリとメモリ保護の両方を行うウィンドウズ(登録商標:マイクロソフト社 ワシントン州レッドモンド)系のオペレーティングシステムの一つであってもよい。
The
以下に詳細に述べるように、セキュリティカーネル504は、メモリ406に格納されたデータを、認証されていないアクセスから保護するために、オペレーティングシステム502が提供したセキュリティ機能を超える追加のセキュリティ機能を提供する。図5の実施形態では、デバイスドライバ506A〜506Dはそれぞれ対応するデバイスハードウェアユニット414A〜414Dに操作可能に関連付けられ、かつ接続されている。デバイスハードウェアユニット414A,414Dは「セキュリティ保護された」デバイス[あるいは、セキュアなデバイス(secure device)]であり、対応するデバイスドライバ506A,506Dは「セキュリティ保護された」デバイスドライバである。セキュリティカーネル504はオペレーティングシステム502とセキュリティ保護されたデバイスドライバ506A,506Dの間に接続されており、アプリケーションプログラム500及びオペレーティングシステム502によるセキュリティ保護されたデバイスドライバ506A,506D及び対応するセキュリティ保護されたデバイス414A,414Dへの全てのアクセスを監視する。セキュリティカーネル504は、アプリケーションプログラム500及びオペレーティングシステム502によるセキュリティ保護されたデバイスドライバ506A,506D及び対応するセキュリティ保護されたデバイス414A,414Dへの認証されていないアクセスを防止する。
As described in detail below, the
図5に示すように、セキュリティカーネル504は、(例えば、一つ以上のデバイスドライバを介して)CPUSCU416及びホストブリッジSCU418に接続されている。以下に詳細に述べるように、CPUSCU416とホストブリッジSCU418はメモリ406へのアクセスを制御する。CPUSCU416はソフトウェアが起動したメモリ406へのアクセスを全て監視し、ホストブリッジSCU418はハードウェアが起動したメモリ406へのアクセスを全て監視する。CPUSCU416及びホストブリッジSCU418は、セキュリティカーネル504によって一旦構成されてしまうと、認証されているメモリ406へのアクセスしか許可しない。
As shown in FIG. 5, the
図5の実施形態では、デバイスドライバ506B,506Cは「セキュリティ保護されていない」デバイスドライバであり、対応するデバイスハードウェアユニット414B,414Cは「セキュリティ保護されていない」デバイスハードウェアユニットである。デバイスドライバ506B,506C及び対応するデバイスハードウェアユニット414B,414Cは各々、例えば、「レガシー」なデバイスドライバ及びデバイスハードウェアユニットであってもよい。
In the embodiment of FIG. 5,
なお、他の実施形態において、セキュリティカーネル504はオペレーティングシステム502の一部であってもよい。さらに別の実施形態において、セキュリティカーネル504、デバイスドライバ506A,506D、及び/またはデバイスドライバ506B,506Cはオペレーティングシステム502の一部であってもよい。
Note that in other embodiments, the
図6は、図4のコンピュータシステム400のCPU402の一実施形態を示す図である。図6の実施形態において、CPU402は、実行ユニット600、メモリ管理ユニット(MMU)602、キャッシュユニット604、バスインターフェイスユニット(BIU)606、一組の制御レジスタ608、及び一組のセキュリティ保護実行モード(SEM)レジスタ610を含む。CPUSCU416はMMU602内に位置している。以下に詳細に述べるように、一組のSEMレジスタ610は図4のコンピュータシステム400内のセキュリティ保護実行モード(SEM)を実施するために用いられており、CPUSCU416とホストブリッジSCU418の各動作は一組のSEMレジスタ610の内容によって管理されている。SEMレジスタ610へのアクセス(例えば、書き込み及び/または読み出し)はセキュリティカーネル504(図5)によって行われる。(i)CPU402がx86プロテクトモードで動作するx86プロセッサである (ii)メモリページングが可能である (iii)SEMレジスタ610の内容によってSEMの動作が規定される場合には、図4のコンピュータシステム400は、例えば、SEMで動作してもよい。
FIG. 6 is a diagram illustrating one embodiment of the
一般に、一組の制御レジスタ608の内容によって、CPU402の動作は管理されている。つまり、一組の制御レジスタ608の内容によって、実行ユニット600、MMU602、キャッシュユニット604、及び/またはBIU606の動作が管理されている。一組の制御レジスタ608は、例えば、x86プロセッサアーキテクチャの制御レジスタを複数含んでいてもよい。
In general, the operation of the
CPU402の実行ユニット600は、命令(例えば、x86の命令)やデータを取り出し、取り出された命令を実行し、命令の実行中に信号(例えば、アドレス、データ、制御信号)を生成する。実行ユニット600は、キャッシュユニット604に接続されているが、メモリ406(図4)からキャッシュユニット604やBIU606を介して命令を受け取ってもよい。
The
コンピュータシステム400のメモリ406(図4)は、各々が固有の物理アドレスを有する複数のメモリ位置を含む。CPU402のアドレス空間は、ページングが可能な状態でプロテクトモードで動作すると、ページフレームまたは「ページ」と呼ばれる複数のブロックに分割される。上述のように、ページの一部分に相当するデータのみが、任意の時間においてメモリ406内に格納される。図6の実施形態では、命令実行中に実行ユニット600が生成したアドレス信号は、セグメント化された(つまり、「論理」)アドレスを表している。以下に述べるように、MMU602は、実行ユニット600が生成したセグメント化されたアドレスを、メモリ406における対応する物理アドレスに変換する。MMU602は、キャッシュユニット604に物理アドレスを供給する。キャッシュユニット604は、実行ユニット600によって取り出されたばかりの命令やデータを格納するのに用いられる比較的小容量の記憶ユニットである。BIU606はキャッシュユニット604とホストブリッジ404の間に接続されており、キャッシュユニット604には存在していない命令やデータをメモリ406からホストブリッジ404を介して取り出すのに用いられる。
The memory 406 (FIG. 4) of the
図7は、図6のMMU602の一実施形態を示す図である。図7の実施形態において、MMU602は、セグメント化ユニット700、ページングユニット702、及び、セグメント化ユニット700とページングユニット702の両出力の間で選択して物理アドレスを生成する選択ロジック704を含む。図7に示すように、セグメント化ユニット700は、実行ユニット600からセグメント化されたアドレスを受け取り、x86プロセッサアーキテクチャにおける周知のセグメント‐リニアアドレス変換機構を用いて、対応するリニアアドレスを出力に生成する。図7に示すように、ページングユニット702は、「ページング」信号によって可能となる場合には、セグメント化ユニット700が生成したリニアアドレスを受け取り、対応する物理アドレスを出力に生成する。このページング信号は、x86プロセッサアーキテクチャに属し、かつ一組の制御レジスタ608(図6)にも属する制御レジスタ0(CR0)内に、ページングフラグ(PG)ビットをミラーリングしてもよい。ページング信号をディアサートすると、メモリページングは不可能となり、選択ロジック704はセグメント化ユニット700から受け取ったリニアアドレスを物理アドレスとして生成する。
FIG. 7 is a diagram illustrating an embodiment of the
ページング信号をアサートすると、メモリページングが可能となり、ページングユニット702は、上述のx86プロセッサアーキテクチャ(図1)のリニア‐物理アドレス変換機構100を用いて、セグメント化ユニット700から受け取ったリニアアドレスを対応する物理アドレスに変換する。上述のように、リニア‐物理アドレス変換動作中、選択されたページディレクトリエントリと選択されたページテーブルエントリの各U/Sビットの内容に対して論理積演算が行われ、それによってページフレームへのアクセスが認証されているかどうかを判定する。同様に、選択されたページディレクトリエントリと選択されたページテーブルエントリの各R/Wビットの内容に対して論理積演算が行われ、それによってページフレームへのアクセスが認証されているかどうかを判定する。U/Sビット及びR/Wビットの各論理結合がページフレームへのアクセスが認証されていると示している場合、ページングユニット702はリニア‐物理アドレス変換動作に起因する物理アドレスを生成する。選択ロジック704は、ページングユニット702が生成した物理アドレスを受け取り、ページングユニット702から受け取った物理アドレスを物理アドレスとして生成し、その物理アドレスをキャッシュユニット604に供給する。
Asserting the paging signal enables memory paging, and the paging unit 702 corresponds to the linear address received from the
一方、U/Sビット及びR/Wビットの各論理結合がページフレーム108へのアクセスが認証されていないと示している場合、ページングユニット702はリニア‐物理アドレス変換動作中に物理アドレスを生成しない。その代わり、ページングユニット702は一般保護違反(GPF)信号をアサートし、MMU602はGPF信号を実行ユニット600に送信する。GPF信号を受けて、実行ユニット600は例外ハンドラルーチンを実行してもよく、最終的にはGPF信号をアサートした時に動作しているアプリケーションプログラム500(図5)のうちの一つの実行を停止してもよい。
On the other hand, if each logical combination of the U / S bit and the R / W bit indicates that access to the
図7の実施形態において、CPUSCU416はMMU602のページングユニット702内に位置している。ページングユニット702はまた、決定されたばかりのリニア‐物理アドレス変換を比較的少数格納する変換索引バッファ(TLB)を含んでいてもよい。
In the embodiment of FIG. 7, the
図8は、図7のCPUSCU416の一実施形態を示す図である。図8の実施形態において、CPUSCU416は、一組のSEMレジスタ610(図6)と接続するセキュリティチェックロジック800及びセキュリティ属性テーブル(SAT)エントリバッファ802を含む。以下に述べるように、SATエントリは、メモリページに相当するページディレクトリエントリとページテーブルエントリとのU/Sビット及びR/Wビットを越える追加セキュリティ情報を含む。セキュリティチェックロジック800は、あるSATエントリ内に格納されたこの追加セキュリティ情報を用いることにより、対応するメモリページに対するソフトウェアが起動した認証されていないアクセスを防止する。SATエントリバッファ802は、アクセスされたばかりのメモリページのSATエントリを比較的少数格納するために用いられる。
FIG. 8 is a diagram illustrating an embodiment of the
上述のように、一組のSEMレジスタ610を用いて、図4のコンピュータシステム400内においてセキュリティ保護実行モード(SEM)を実施する。一組のSEMレジスタ610の内容により、CPUSCU416の動作が管理される。セキュリティチェックロジック800は、MMU602から図8に示す通信バスを介して、SATエントリバッファ802に格納される情報を受け取る。セキュリティチェックロジック800はまた、ページングユニット702が生成した物理アドレスも受け取る。
As described above, a set of SEM registers 610 are used to implement a security protection execution mode (SEM) within the
ここで、図9〜11を利用して、図4のコンピュータシステム400内において、図1のアドレス変換機構100を用いて選択されたメモリページの追加セキュリティ情報を得る方法について説明する。図9は、選択されたメモリページの追加セキュリティ情報を得るために、その選択されたメモリページのSATエントリへのアクセスを行う機構900の一実施形態を示す図である。図9の機構900は、図8のセキュリティチェックロジック800内に組み込まれていてもよく、図4のコンピュータシステム400がSEMにおいて動作中に実施されてもよい。機構900は、図1のアドレス変換機構100を用いてページング機構702(図7)が生成した物理アドレス902、SATディレクトリ904、SAT906を含む複数のSAT、及び一組のSEMレジスタ610のSATベースアドレスレジスタ908を含む。SATディレクトリ104及びSAT906を含む複数のSATは、セキュリティカーネル504(図5)が生成し維持しているSEMデータ構造である。以下に述べるように、SATディレクトリ104(存在する場合)と任意の必要なSATは、アクセスされる前のメモリ406にコピーされる。
A method for obtaining additional security information of a memory page selected using the
SATベースアドレスレジスタ908は、SATベースアドレスレジスタ908内に有効なSATディレクトリベースアドレスが存在することを意味する存在(P)ビットを含む。SATベースアドレスレジスタ908の最高位(つまり、最上位)ビットはSATディレクトリベースアドレスのために確保されている。SATディレクトリベースアドレスとは、SATディレクトリ904を含むメモリページのベースアドレスである。P=1の場合、SATディレクトリベースアドレスは有効であり、SATテーブルは各メモリページのセキュリティ属性を指定する。P=0の場合には、SATディレクトリベースアドレスは有効ではないので、SATテーブルは存在せず、各メモリページのセキュリティ属性はSATデフォルトレジスタによって決定される。
The SAT base address register 908 includes a presence (P) bit which means that there is a valid SAT directory base address in the SAT base address register 908. The most significant (ie, most significant) bit of the SAT base address register 908 is reserved for the SAT directory base address. The SAT directory base address is a base address of a memory page including the
図10は、SATデフォルトレジスタ1000の一実施形態を示す図である。図10の実施形態において、SATデフォルトレジスタ1000はセキュリティ保護されたページ(SP)ビットを含む。このSPビットは全てのメモリページがセキュリティ保護されたページかどうかを表している。例えば、SP=0ならば、全てのメモリページがセキュリティ保護されたページではないであろう。また、SP=1ならば、全てのメモリページはセキュリティ保護されたページであろう。 FIG. 10 is a diagram illustrating an embodiment of the SAT default register 1000. In the embodiment of FIG. 10, the SAT default register 1000 includes secure page (SP) bits. The SP bit indicates whether all memory pages are secure pages. For example, if SP = 0, not all memory pages will be secure pages. Also, if SP = 1, all memory pages will be secure pages.
再度図9においてSATベースアドレスレジスタ908のPビットが「1」であると仮定すると、ページングロジック702(図7)が生成した物理アドレス902は、選択されたメモリページのSATエントリにアクセスするために、3つの部分に分割される。上述のように、SATベースアドレスレジスタ908のSATディレクトリベースアドレスは、SATディレクトリ904が含まれるメモリページのベースアドレスである。SATディレクトリ904は、SATディレクトリエントリ910を含む複数のSATディレクトリエントリを含む。各SATディレクトリエントリはメモリ406における対応するSATを有していてもよい。物理アドレス902の「上位」にある部分は、物理アドレス902の最高位、つまり最上位ビットを含んでおり、SATディレクトリ904へのインデックスとして用いられる。SATディレクトリエントリ910は、SATベースアドレスレジスタ908のSATディレクトリベースアドレスと物理アドレス902の上位にある部分を用いて、SATディレクトリ904内から選択される。
9 again, assuming that the P bit of the SAT base address register 908 is “1”, the physical address 902 generated by the paging logic 702 (FIG. 7) is used to access the SAT entry of the selected memory page. Divided into three parts. As described above, the SAT directory base address of the SAT base address register 908 is the base address of the memory page in which the
図11は、SATディレクトリエントリフォーマット1100の一実施形態を示す図である。図11によれば、各SATディレクトリエントリは、SATディレクトリエントリ内に有効なSATベースアドレスが存在することを意味する存在(P)ビットを含む。図11の実施形態において、各SATディレクトリエントリの最高位(つまり、最上位)ビットはSATベースアドレスのために確保されている。SATベースアドレスとは、対応するSATが含まれるメモリページのベースアドレスである。P=1の場合、SATベースアドレスは有効であるので、対応するSATはメモリ406に格納される。
FIG. 11 is a diagram illustrating one embodiment of a SAT directory entry format 1100. According to FIG. 11, each SAT directory entry includes a presence (P) bit which means that there is a valid SAT base address in the SAT directory entry. In the embodiment of FIG. 11, the most significant (ie, most significant) bit of each SAT directory entry is reserved for the SAT base address. The SAT base address is a base address of a memory page including a corresponding SAT. When P = 1, the SAT base address is valid, so the corresponding SAT is stored in the
P=0の場合には、SATベースアドレスは有効ではないので、対応するSATはメモリ406には存在せず、記憶デバイス(例えばディスクドライブ)からメモリ406にコピーされねばならない。P=0の場合、セキュリティチェックロジック800はページ違反の信号をページングユニット702内のロジックに送信してもよく、MMU602はこのページ違反信号を実行ユニット600(図6)に転送することもできる。ページ違反信号を受けて、実行ユニット600は、記憶デバイスから必要なSATを検索してメモリ406に格納するページ違反ハンドラルーチンを実行してもよい。メモリ406に必要なSATを格納した後、対応するSATディレクトリエントリのPビットは「1」に設定され、機構900での処理が続行される。
When P = 0, the SAT base address is not valid, so the corresponding SAT does not exist in the
再度図9において、物理アドレス902の「中位にある」部分はSAT906へのインデックスとして用いられる。SATエントリ906はSAT906内でこのようにして選択され、その際には、SATディレクトリエントリ910のSATベースアドレスと物理アドレス902の中位にある部分が用いられる。図12はSATエントリフォーマット1200の一実施形態を示す図である。図12の実施形態において、各SATエントリはセキュリティ保護されたページ(SP)ビットを含む。SPビットは選択されたメモリページがセキュリティ保護されたページかどうかを表している。例えば、SP=0ならば、選択されたメモリページがセキュリティ保護されたページではない可能性があり、また、SP=1ならば、選択されたメモリページはセキュリティ保護されたページである可能性がある。
In FIG. 9 again, the “middle” part of the physical address 902 is used as an index to the
BIU606(図6)は、メモリ406から必要なSEMデータ構造エントリを検索して、そのSEMデータ構造エントリをMMU602に供給する。再度図8において、セキュリティチェックロジック800は、SEMデータ構造エントリを、MMU602及びページングユニット702から通信バスを介して受け取る。上述のように、SATエントリバッファ802は、アクセスされたばかりのメモリページのSATエントリを比較的少数格納するのに用いられる。セキュリティチェックロジック800は、対応する物理アドレスの「タグ」部分と共に、SATエントリバッファ802内のある特定のSATエントリを格納する。
BIU 606 (FIG. 6) retrieves the required SEM data structure entry from
後続のメモリページアクセス中に、セキュリティチェックロジック800によって、ページングユニット702が生成した物理アドレスの「タグ」部分とSATエントリバッファ802に格納されている各SATエントリに相当する物理アドレスのタグ部分とを比較してもよい。物理アドレスのタグ部分がSATエントリバッファ802に格納されているSATエントリに相当する物理アドレスのタグ部分と一致した場合、セキュリティチェックロジック800はSATエントリバッファ802内のSATエントリにアクセスしてもよく、それによってメモリ406からSATエントリを得るために図9のプロセスを行う必要がなくなる。セキュリティカーネル504(図5)はCPU402内のSATベースアドレスレジスタ908の内容を(例えば、コンテキストスイッチ中に)変更する。SATベースアドレスレジスタ908の変更を受けて、CPUSCU416のセキュリティチェックロジック800はSATエントリバッファ802を一括で消去してもよい。
During the subsequent memory page access, the
図4のコンピュータシステム400がSEMで動作中の場合、セキュリティチェックロジック800は、現在実行中のタスク(つまり、現在実行中のの命令)の現行の特権レベル(CPL)を、中に物理アドレスがある選択されたメモリページのページディレクトリエントリ(PDE)U/Sビット、PDE R/Wビット、ページテーブルエントリ(PTE)U/Sビット、及びPTE R/Wビットと共に受け取る。セキュリティチェックロジック800は、上記の情報を、選択されたメモリページに相当するSATエントリのSPビットと共に使用して、メモリ406へのアクセスが認証されているかどうかを判定する。
If the
図6のCPU402はx86プロセッサであってもよく、コードセグメント(CS)レジスタ、すなわちx86プロセッサアーキテクチャの16ビットセグメントレジスタの一つを含んでいてもよい。各セグメントレジスタは、セグメントと呼ばれる、メモリの64Kブロックを選択する。ページングが可能な状態でのプロテクトモードにおいて、CSレジスタは、メモリ406の実行可能なセグメントを示すセグメントセレクタを用いてロードされる。セグメントセレクタの最高位(つまり、最上位)ビットは、CPU402(図6)の実行ユニット600が次に実行する命令を含むメモリのセグメントを示す情報を格納するのに用いられる。命令ポインタ(IP)レジスタは、オフセットをCSレジスタが示したセグメントに格納するのに用いられる。この一対のCS:IPは、次の命令のセグメント化されたアドレスを表す。CSレジスタの最低位(つまり、最下位)にある2つのビットは、実行ユニット600が現在実行中のタスクの現行の特権レベル(CPL)を示す値(つまり、現行のタスクのCPL)を格納するのに用いられる。
The
以下の表1に、図4のコンピュータシステム400がSEMで動作中における、CPUが起動した(つまり、ソフトウェアが起動した)メモリアクセスに対する規則の一例を示す。オペレーティングシステム502(図5)が提供したデータセキュリティを超える追加セキュリティをメモリ406に格納されたデータに対して提供するために、CPUSCU416(図4〜8)とセキュリティカーネル504(図5)が協働して、図4のコンピュータシステム400がSEMで動作中に表1の規則を実施する。
Table 1 below shows an example of a rule for memory access activated by the CPU (ie, activated by software) while the
上記の表1において、現在実行中の命令のSPビットは、現在実行中の命令が含まれるメモリページに相当するSATエントリのSPビットである。選択されたメモリページのU/Sビットは、選択されたメモリページのPDE U/SビットとPTE U/Sビットとの論理積である。選択されたメモリページのR/Wビットは、選択されたメモリページのPDE R/WビットとPTE R/Wビットとの論理積である。符号「X」は「どちらでもよい」、つまり、論理値が「0」と「1」のいずれでもよいことを意味する。 In Table 1 above, the SP bit of the currently executing instruction is the SP bit of the SAT entry corresponding to the memory page including the currently executing instruction. The U / S bit of the selected memory page is the logical product of the PDE U / S bit and the PTE U / S bit of the selected memory page. The R / W bit of the selected memory page is a logical product of the PDE R / W bit and the PTE R / W bit of the selected memory page. The symbol “X” means “any”, that is, the logical value may be “0” or “1”.
再度図8において、CPUSCU416のセキュリティチェックロジック800は一般保護違反(「GPF」)信号及び「SEMセキュリティ例外」信号を生成し、そしてこれらのGPF信号及びSEMセキュリティ例外信号をページングユニット702内のロジックに供給する。セキュリティチェックロジック800がGPF信号をアサートすると、MMU602はGPF信号を実行ユニット600(図6)に転送する。GPF信号を受けて、実行ユニット600はx86プロセッサアーキテクチャの周知の割り込みディスクリプタテーブル(IDT)ベクタリング機構を用いてGPFハンドラルーチンへアクセスして実行してもよい。
Referring again to FIG. 8, the
セキュリティチェックロジック800がSEMセキュリティ例外信号をアサートすると、MMU602はそのSEMセキュリティ例外信号を実行ユニット600に転送する。x86プロセッサアーキテクチャのIDTベクタリング機構を用いる通常のプロセッサ例外とは違い、別のベクタリング方法を用いてSEMセキュリティ例外に対処してもよい。SEMセキュリティ例外は、x86の「SYSENTER」命令及び「SYSEXIT」命令が動作する方法と同様に、一対のレジスタ(例えば、モデル固有レジスタまたはMSRS)を介し迅速に送信されてもよい。この一対のレジスタは「セキュリティ例外エントリポイント」レジスタであってもよく、SEMセキュリティ例外発生時には命令実行用の分岐先アドレスを規定してもよい。このセキュリティ例外エントリポイントレジスタは、SEMセキュリティ例外ハンドラへのエントリ時に使用されるコードセグメント(CS)、命令ポインタ(IP、もしくは64ビット版RIP)、スタックセグメント(SS)、及びスタックポインタ(SP、もしくは64ビット版RSP)の各値を規定してもよい。ソフトウェア制御下では、実行ユニット600(図6)は上述のSS、SP/RSP、EFLAGS、CS、及びIP/RIPの各値を例外の発生場所を示す新しいスタック上に送り出してもよい。また、実行ユニット600は、そのスタック上にエラーコードを送り出してもよい。なお、CPLの変化が起こらなくても、上記のSS及びSP/RSPの各値は常にセーブされ、スタックの切換えが常に達成されているので、割り込み(IRET)命令からの通常のリターンを用いることはないであろう。したがって、新しい命令を規定することによりSEM例外ハンドラからのリターンを達成してもよい。
When
図13は、図4のホストブリッジ404の一実施形態を示す図である。図13の実施形態において、ホストブリッジ404は、ホストインターフェイス1300、ブリッジロジック1302、ホストブリッジSCU418、メモリコントローラ1304、デバイスバスインターフェイス1306、及びバスアービター1308を含む。ホストインターフェイス1300はCPU402に、デバイスバスインターフェイス1306はデバイスバス408にそれぞれ接続されている。ブリッジロジック1302はホストインターフェイス1300とデバイスバスインターフェイス1306の間に接続されている。メモリコントローラ1304はメモリ406に接続され、メモリ406への全てのアクセスを行う。ホストブリッジSCU418はブリッジロジック1302とメモリコントローラ1304の間に接続されている。上述のように、ホストブリッジSCU418は、デバイスバスインターフェイス1306を介してメモリ406へのアクセスを制御する。ホストブリッジSCU418は、デバイスバスインターフェイス1306を介してメモリ406へのアクセスを監視し、メモリ406へのアクセスが認証されているものだけを許可する。
FIG. 13 is a diagram illustrating an embodiment of the
図13の実施形態において、バスアービター1308はデバイスバスインターフェイス1306、ブリッジロジック1302、及びホストブリッジSCU418に接続されている。バスアービター1308は、ブリッジロジック1302、デバイスハードウェアユニット414A,414B(図4)、及びデバイスバス408(図4)を制御するためのデバイスバスブリッジ410(図4)の間を調整する(図4のデバイスハードウェアユニット414C,414Dはデバイスバスブリッジ410を介してデバイスバス408にアクセスする)。普通、デバイスバス408は許可信号を伝送する1つ以上の信号線を含む。ここで、許可信号は、デバイスバス408に接続するデバイスのうちどれがデバイスバス408の制御を行えるかを表している複数の状態の中の1つの状態となっている。バスアービター1308は、許可信号を伝送する1つ以上の信号線上にある許可信号を流す。バスアービター1308は、通常のように、デバイスハードウェアユニット414A,414B及びデバイスバスブリッジ410から別々の要求信号を受け取る。ここで、各要求信号は、対応するデバイスがデバイスバス408を制御する必要がある場合には、その対応するデバイスによってアサートされている。バスアービター1308は、デバイスハードウェアユニット414A,414B及びデバイスバスブリッジ410に別々の許可信号を送出してもよい。ここで、許可信号のうち所定の1つをアサートして、対応するデバイスがデバイスバス408を制御することを許可されていることを示す。以下に詳細に述べるように、バスアービター1308とホストブリッジSCU418は協働して、コンピュータシステム400内のデバイス間アクセスセキュリティを提供する。
In the embodiment of FIG. 13, the
図14は図13のホストブリッジSCU418の一実施形態を示す図である。図14の実施形態において、ホストブリッジSCU418は、一組のSEMレジスタ1402に接続されたセキュリティチェックロジック1400及びSATエントリバッファ1404を含む。一組のSEMレジスタ1402は、セキュリティチェックロジック1400の動作を管理し、図9の第2のSATベースアドレスレジスタ908を含む。一組のSEMレジスタ1402の第2のSATベースアドレスレジスタ908は、アドレス指定が可能なレジスタであってもよい。セキュリティカーネル504(図5)が(例えば、状況を切り替えている最中に)CPU402の一組のSEMレジスタ610の中のSATベースアドレスレジスタ908の内容を変更した時は、セキュリティカーネル504は、同じ値をホストブリッジSCU418の一組のSEMレジスタ1402内の第2のSATベースアドレスレジスタ908にも書き込んでもよい。第2のSATベースアドレスレジスタ908の変更を受けて、ホストブリッジSCU418のセキュリティチェックロジック1400はSATエントリバッファ1404を一括で消去してもよい。
FIG. 14 is a diagram illustrating an embodiment of the
セキュリティチェックロジック1400は、ハードウェアデバイスユニット414A〜414D(図4)が起動したメモリアクセスのメモリアクセス信号を、デバイスバスインターフェイス1306及びブリッジロジック1302(図13)を介して受け取る。このメモリアクセス信号は、ハードウェアデバイスユニット414A〜414Dからの物理アドレスと、関連する制御信号及び/またはデータ信号を伝送する。セキュリティチェックロジック1400は、対応するメモリページのSATエントリを得るための機構900(図9)を組み込んでいてもよく、図4のコンピュータシステム400がSEMで動作中には機構900を実施してもよい。SATエントリバッファ1404は上述のCPUSCU416(図8)のSATエントリバッファ802と類似しており、最近のアクセスされたメモリページのSATエントリを比較的少数格納するのに用いられる。
The
図4のコンピュータシステム400がSEMで動作中、図14のセキュリティチェックロジック1400は、選択されたメモリページに関連したSATエントリの追加セキュリティ情報を用いて、ハードウェアが起動した所定のメモリアクセスが認証されているかどうかを判定する。このハードウェアが起動した所定のメモリアクセスが認証されている場合、セキュリティチェックロジック1400によって、メモリアクセスのメモリアクセス信号(つまり、物理アドレスを伝送するアドレス信号と関連する制御信号及び/またはデータ信号)がメモリコントローラ1304に供給される。メモリコントローラ1304は、物理アドレスと関連する制御信号及び/またはデータ信号を用いてメモリ406にアクセスする。メモリ406へのアクセスが書き込みアクセスの場合、データ信号が伝送するデータはメモリ406に書き込まれる。メモリ406へのアクセスが読み出しアクセスの場合、メモリコントローラ1304はメモリ406からデータを読み出し、セキュリティチェックロジック1400に読み出したデータを供給する。セキュリティチェックロジック1400は読み出したデータをブリッジロジック1302に転送し、ブリッジロジック1302はそのデータをデバイスバスインターフェイス1306に供給する。
While the
一方、ハードウェアが起動した所定のメモリアクセスが認証されていない場合、セキュリティチェックロジック1400による、メモリ406へのアクセスの物理アドレスや関連する制御信号及び/またはデータ信号のメモリコントローラ1304への供給は行われない。ハードウェアが起動した認証されていないメモリアクセスがメモリ書き込みアクセスである場合、セキュリティチェックロジック1400はメモリ406には変更を加えずに、書き込みアクセス完了の信号を出して書き込みデータを破棄してもよい。セキュリティチェックロジック1400はまた、セキュリティアクセス違反を記録に残すために、ログの中にログエントリを形成(例えば、状態レジスタの1つ以上のビットを設定もしくはクリアする)してもよい。セキュリティカーネル504は、ログに周期的にアクセスして、そのようなログエントリがあるかどうかをチェックしてもよい。ハードウェアが起動した認証されていないメモリアクセスがメモリ読み出しアクセスの場合、セキュリティチェックロジック1400は、ブリッジロジック1302を介してデバイスバスインターフェイス1306に、違反であるという結果(例えば、全て「F」)を読み出しデータとして返す。セキュリティチェックロジック1400は同様に、上述のようなログエントリを、セキュリティアクセス違反を記録に残すために形成してもよい。
On the other hand, if the predetermined memory access activated by the hardware is not authenticated, the
図15は、複数のメモリページ内に配置されたデータを記憶するのに用いられるメモリに対してアクセスセキュリティを提供する方法1500の一実施形態を示すフローチャートである。方法1500は、図4のコンピュータシステム400がSEMで動作中にCPUが起動した(つまり、ソフトウェアが起動した)メモリアクセスに対する表1に示した規則の一例を反映したものである。方法1500はMMU602(図6〜7)内に組み込まれていてもよい。方法1500のステップ1502において、命令実行中に生成されたリニアアドレスを、命令のセキュリティ属性(例えば、この命令を含むタスクのCPL)とともに受け取る。この命令はメモリページ内にある。ステップ1504において、選択されたメモリページのベースアドレス及びセキュリティ属性を得るために、リニアアドレスを用いて、メモリ内に位置する少なくとも1つのページングされたメモリデータ構造(例えば、ページディレクトリやページテーブル)にアクセスする。選択されたメモリページのセキュリティ属性は、例えば、ページディレクトリエントリのU/SビットやR/Wビット及びページテーブルエントリのU/SビットやR/Wビットを含んでいてもよい。
FIG. 15 is a flowchart illustrating one embodiment of a
判定ステップ1506において、命令のセキュリティ属性及び選択されたメモリページのセキュリティ属性を用いて、上記アクセスが認証されているかどうかを判定する。アクセスが認証されている場合には、ステップ1508において選択されたメモリページのベースアドレスとオフセットを合体することにより、選択されたメモリページ内に物理アドレスを生成する。アクセスが認証されていない場合には、ステップ1510において違反信号(例えば、一般保護違反信号またはGPF信号)を生成する。
In
ステップ1508の後に続くステップ1512において、第1のメモリページの追加セキュリティ属性及び選択されたメモリページの追加セキュリティ属性を得るために、選択されたメモリページの物理アドレスを用いて、メモリ内に位置する少なくとも1つのセキュリティ属性データ構造(例えば、図9のSATディレクトリ904やSAT)へのアクセスが行われる。この第1のメモリページの追加セキュリティ属性は、例えば、上述のようなセキュリティ保護されたページ(SP)ビットを含んでいてもよい。ここで、SPビットは、第1のメモリページがセキュリティ保護されたページかどうかを表している。同様に、選択されたメモリページの追加セキュリティ属性はセキュリティ保護されたページ(SP)ビットを含んでいてもよい。ここで、SPビットは、選択されたメモリページがセキュリティ保護されたページかどうかを表している。
In
ステップ1514において、命令のセキュリティ属性、第1のメモリページの追加セキュリティ属性、選択されたメモリページのセキュリティ属性、及び選択されたメモリページの追加セキュリティ属性に従って、違反信号を生成する。なお、方法1500のステップ1512,1514はCPUSCU416(図4〜8)内に組み込まれていてもよい。
In
以下の表2に、図4のコンピュータシステム400がSEMで動作中における、デバイスハードウェアユニット414A〜414Dが起動したメモリページアクセス(つまり、ハードウェアが起動したメモリアクセス)に対する規則の一例を示す。このようなハードウェアが起動したメモリアクセスは、デバイスハードウェアユニット414A〜414D内のバスマスタリング回路によって起動されてもよいし、また、デバイスハードウェアユニット414A〜414Dの要求によりDMAデバイスによって起動されてもよい。セキュリティチェックロジック1400は、メモリ406に格納されたデータに対してオペレーティングシステム502(図5)が提供したデータセキュリティを超える追加セキュリティを提供するために、図4のコンピュータシステム400がSEMで動作中において表2の規則を実行してもよい。以下の表2において、「対象となる」メモリページとは、メモリアクセスのメモリアクセス信号によって伝送された物理アドレスが中にあるメモリページである。
Table 2 below shows an example of a rule for a memory page access activated by the
上記の表2において、対象となるメモリページのSPビットは、メモリアクセスの物理アドレス及び図9に示す対応するメモリページのSATエントリを得るための上記機構900を用いて、ホストブリッジSCU418によって得られる。
In Table 2 above, the SP bit of the target memory page is obtained by the
図2に示すように、対象となるメモリページがセキュリティ保護されたページであることを表しているSP=1の場合、メモリアクセスは認証されていない。この状況において、セキュリティチェックロジック1400(図14)は、メモリアクセス信号をメモリコントローラに供給しない。メモリアクセス信号(例えば制御信号)のある部分はメモリアクセスの種類を表し、ここでメモリアクセスの種類とは、読み出し信号か書き込み信号のいずれかである。SP=1でメモリアクセス信号がメモリアクセスの種類が読み出しアクセスであることを示している場合、そのメモリアクセスは認証されていない読み出しアクセスであり、セキュリティチェックロジック1400は、認証されていない読み出しアクセスに対して、実際のメモリの内容ではなく全て「F」(つまり、偽りの読み出しデータ:bogus read data)を供給することにより応答する。セキュリティチェックロジック1400はまた、認証されていない読み出しアクセスに対して、上述のような認証されていない読み出しアクセスのログを記録することによって応答してもよい。
As shown in FIG. 2, when SP = 1 indicating that the target memory page is a secure page, the memory access is not authenticated. In this situation, the security check logic 1400 (FIG. 14) does not supply a memory access signal to the memory controller. A portion of the memory access signal (for example, control signal) represents the type of memory access, where the type of memory access is either a read signal or a write signal. When SP = 1 and the memory access signal indicates that the type of memory access is read access, the memory access is an unauthenticated read access, and the
SP=1でメモリアクセス信号がメモリアクセスの種類が書き込みアクセスであることを示している場合には、そのメモリアクセスは認証されていない書き込みアクセスである。このような状況では、セキュリティチェックロジック1400は、認証されていない書き込みアクセスに対して、メモリアクセス信号が伝送した書き込みデータを破棄することによって応答する。セキュリティチェックロジック1400はまた、認証されていない書き込みアクセスに対して、上述のような認証されていない書き込みアクセスのログを記録することによって応答してもよい。
If SP = 1 and the memory access signal indicates that the type of memory access is write access, the memory access is an unauthenticated write access. In such a situation, the
図16は、複数のメモリページ内に配置されたデータを記憶するのに用いられるメモリにアクセスセキュリティを提供する方法1600の一実施形態を示すフローチャートである。方法1600は、図4のコンピュータシステム400がSEMで動作中にハードウェアが起動したメモリアクセスに対する表2に示した規則の一例を反映したものである。方法1600はホストブリッジ404(図4,13,14)内に組み込まれていてもよい。方法1600のステップ1602において、あるメモリアクセスのメモリアクセス信号を受け取る。ここで、メモリアクセス信号は、対象となるメモリページ内の物理アドレスを伝送している。上述のように、メモリアクセス信号はデバイスハードウェアユニットによって生成されていてもよい。ステップ1604において対象となるメモリページのセキュリティ属性を得るために、物理アドレスを用いて、メモリ内に位置する少なくとも1つのセキュリティ属性データ構造にアクセスする。この少なくとも1つのセキュリティ属性データ構造は、例えば、SATディレクトリ(例えば、図9のSATディレクトリ904)や少なくとも1つのSAT(例えば、図9のSAT906)を含んでいてもよく、対象となるメモリページの追加セキュリティ属性は、対象となるメモリページがセキュリティ保護されたページかどうかを表している上述のようなセキュリティ保護されたページ(SP)ビットを含んでいてもよい。ステップ1606において、対象となるメモリページのセキュリティ属性に従ったメモリアクセス信号を用いて、メモリにアクセスする。なお、方法1600のステップ1600,1602は、ホストブリッジSCU418(図4,13,14)内に組み込まれていてもよい。
FIG. 16 is a flowchart illustrating an embodiment of a
上述のように、バスアービター1308(図13)及びホストブリッジSCU418(図4,13,14)が協働して、コンピュータシステム400内においてデバイス間アクセスセキュリティを提供する。バスアービター1308は、上述のようなデバイスバス408の制御を行うためにデバイスバス408(図4)に接続されたデバイス間を調整し、かつ、デバイスバス408の1つ以上の信号線に許可信号を流す。この許可信号の状態は、デバイスバス408に接続されたデバイスのうちどれがデバイスバス408の制御を行うかを示すものである。
As described above, the bus arbiter 1308 (FIG. 13) and the host bridge SCU 418 (FIGS. 4, 13, and 14) cooperate to provide inter-device access security within the
ここで、デバイスバス408が周辺機器接続(PCI)バスである場合におけるバスアービター1308及びホストブリッジSCU418の動作の一例を説明する。バスアービター1308は、デバイスバス408に接続されておりデバイスバス408を流れることが可能なn個のデバイス(例えば、図13のブリッジロジック1302、図4のデバイスハードウェアユニット414A,414B、図4のデバイスバスブリッジ410)から1つずつ、全部でn個の要求信号REQ#1〜REQ#n(記号「#」は、信号が低電圧レベル時に、その信号のアクティブな、すなわちアサートされた状態が発生していることを示す)を受け取る。あるデバイスmがデバイスバス408を制御する必要があるときには、デバイスmによって対応するREQ#m信号がアサートされる。バスアービター1308は許可信号GNT#1〜GNT#nを生成し、許可信号のうちの1つをn個のデバイスの各々に供給する。GNT#m信号がアサートされると、デバイスmはデバイスバス408を制御することを許可される。以下の例において、信号REQ#1,GNT#1はデバイスハードウェア414A(図4)に関連付けられており、信号REQ#2,GNT#2はデバイスハードウェア414B(図4)に関連付けられている。
Here, an example of operations of the
図17は図4のホストブリッジSCU418の一実施形態を示す図であり、この中でホストブリッジSCU418はアクセス認証テーブル1700を含む。一般に、アクセス認証テーブル1700は、デバイスバス408に接続されておりデバイスバス408を使用可能なデバイス(つまり、関連する信号REQ#,GNT#を有するデバイス)ごとに異なるエントリの組を有する。デバイスハードウェア414Aに対応する第1のエントリの組とデバイスハードウェア414Bに対応する第2のエントリの組を図17に示す。
FIG. 17 is a diagram illustrating an embodiment of the
アクセス認証テーブル1700の各エントリは、デバイスバス408に接続されておりデバイスバス408の使用が可能なデバイスに対応する。例えば、図17では、デバイスハードウェア414Aに対応する第1のエントリの組の中の第1のエントリは、デバイスハードウェア414Bに向けられている。この第1のエントリは、「GNT#2 アサート」というフレーズが含まれた「許可信号状態」フィールドを含み、これはGNT#2信号がアサートされた時に第1のエントリが該当することを示している。第1のエントリはまた、デバイスハードウェア414Bに対応するとともにデバイスハードウェア414Bがデバイスハードウェア414Aへアクセスすることを認証されているどうかを示す「アクセスを認証する」値を含む。アクセス認証テーブル1700はセキュリティカーネル504(図5)によって生成され維持されてもよい。
Each entry in the access authentication table 1700 corresponds to a device that is connected to the device bus 408 and can use the device bus 408. For example, in FIG. 17, the first entry in the first set of entries corresponding to
PCIバスのプロトコルによれば、「起動」デバイスが「対象となる」デバイスにアクセスすることにより、バスの転送、すなわち「トランザクション」が起動される。対象となるデバイスは、STOP#信号をアサートすることにより、そのトランザクションを終了させてもよい。起動デバイスがアサートされたSTOP#信号を検出すると、起動デバイスは、トランザクションを完了させるために、トランザクションを終了させてPCIバスの制御を再度調整しなければならない。対象となるデバイスが任意のデータが転送される前にSTOP#信号をアサートする場合、この終了は「再試行」と呼ばれる。 According to the PCI bus protocol, the bus activation, that is, the “transaction” is activated when the “activation” device accesses the “target” device. The target device may end the transaction by asserting the STOP # signal. When the activation device detects the asserted STOP # signal, the activation device must terminate the transaction and re-adjust control of the PCI bus to complete the transaction. If the target device asserts the STOP # signal before any data is transferred, this termination is called “retry”.
デバイスバス408はPCIバスなので、デバイスバス408は多重化されたアドレス及びデータ(A/D)信号線を含む。デバイスバス408に接続された起動デバイスは、対象となるデバイスに割り当てられたアドレスを伝送するアドレス信号をデバイスバス408の多重化A/D信号線に流すことによって、デバイスバス408に接続された対象となるデバイスへのアクセスを行う。例えば、デバイスバス408に接続されたデバイスハードウェア414Bへのアクセスを制御するためには、ホストブリッジSCU418はまずPCIバスを介してデバイスハードウェア414Bをプログラミングして、STOP#信号をアサートすることによって全てのアクセス試行に応答するように(つまり、PCIバスの再試行を起動させることによって全てのアクセス試行を阻止するように)デバイスハードウェア414Bを構成する。
Since the device bus 408 is a PCI bus, the device bus 408 includes multiplexed address and data (A / D) signal lines. The activation device connected to the device bus 408 sends the address signal for transmitting the address assigned to the target device to the multiplexed A / D signal line of the device bus 408, thereby causing the target connected to the device bus 408. Access to the device. For example, to control access to
ホストブリッジSCU418は、デバイスバスインターフェイス1306(図13)を介してデバイスバス408の信号線に接続されており、デバイスバス408のGNT#信号とA/D信号線を監視してデバイスへのアクセス試行を検出する。例えば、デバイスハードウェア414Aがデバイスハードウェア414Bへのアクセス試行を行うと想定する。「起動」デバイスハードウェア414Aが「対象となる」デバイスハードウェア414Bへのアクセスを試行すると、デバイスハードウェア414BはPCIバス再試行を起動することによって(つまり、デバイスバス408のA/D信号線上にあるデバイスハードウェア414Bに割り当てられたアドレスを検出した後にSTOP#信号をアサートすることによって)そのアクセス試行を阻止する。この措置によって、デバイスハードウェア414Aは、後に続くアクセス試行によってアクセス試行を強制的に再試行することになる。
The
デバイスハードウェア414Bがアクセス試行を阻止している間、ホストブリッジSCU418は、デバイスバス408のA/D信号線上で駆動されたデバイスハードウェア414Bに割り当てられたアドレスを介して、そのアクセス試行を検出する。デバイスハードウェア414Aがデバイスバス408の制御を行っているので、GNT#1信号がアサートされ、そして、ホストブリッジSCU418がアサートされたGNT#1信号を介して、デバイスハードウェア414Aを起動デバイスとして認識される。
While the
次に、ホストブリッジSCU418は、デバイスハードウェア414Aによる次のアクセス試行を許可すべきかどうかを判定する。ホストブリッジSCU418はデバイスハードウェア414Bに対応するアクセス認証テーブル1700(図17)の第2のエントリの組にアクセスし、許可信号状態フィールド内に「(GNT#1 アサート)」を有する第2の組の第1のエントリを選択する。第1のエントリのアクセスを認証する値は「1」であり、これは、デバイスハードウェア414Aによるデバイスハードウェア414Bへのアクセスが認証されているとともに、デバイスハードウェア414Aによる次のアクセス試行が許可されることを表している。
The
このアクセスを認証する値がデバイスハードウェア414Aによる次のアクセス試行が許可されること示しているので、ホストブリッジSCU418は、デバイスハードウェア414Aを認識するバスアービター1308(図13)に信号を送信する。続いて行われるデバイスバス408のデバイスハードウェア414Aへの制御に対する許可の直前に、バスアービター1308はデバイスバス408のホストブリッジSCU418への制御を許可する。ホストブリッジSCU418は、デバイスハードウェア414Aによる次のアクセス試行を許可するようにデバイスハードウェア414Bを構成するデバイスバス408の信号線上に信号を流す。
Since the value authenticating this access indicates that the next access attempt by the
デバイスハードウェア414Aによる次のアクセス試行の直後に、バスアービター1308は、デバイスバス408のホストブリッジSCU418への制御を再び許可する。ホストブリッジSCU418は、PCIバスの再試行を起動することによって全てのアクセス試行に応答するように(つまり、デバイスバス408のA/D信号線上にあるデバイスハードウェア414Bに割り当てられたアドレスを検出した後にSTOP#信号をアサートすることによって、全てのアクセス試行を阻止するように)デバイスハードウェア414Bを構成するPCIバスの信号線上に信号を流す。
Immediately following the next access attempt by
アクセス認証テーブル1700の選択されたエントリ内のアクセスを認可する値が、起動デバイスが対象となるデバイスへのアクセスを認証されていないとともに起動デバイスによる次のアクセス試行が許可されないことを表す「0」の場合、ホストブリッジSCU418は、起動デバイスによる次のアクセス試行を許可するように対象となるデバイスを構成しておらず、対象となるデバイスは、PCIバスの再試行を起動することによって、起動デバイスによるアクセス試行を阻止し続ける。なお、上述の構成‐アクセス‐構成を行うアトミックなメカニズムは、存在するPCIデバイスが保護されるためにPCIバスの再試行を起動するようにプログラム可能であることしか必要としない。
The value for authorizing access in the selected entry of the access authentication table 1700 is “0” indicating that the boot device is not authorized to access the target device and that the boot device is not allowed to access the next time. In this case, the
図18は、バスに接続された第1のデバイスと第2のデバイスを含むシステム内において適用可能な方法1800の一実施形態を示すフローチャートであり、ここで方法1800は第2のデバイスにアクセスセキュリティを提供する。方法1800はホストブリッジSCU418(図4,13,14,17)内に組み込まれていてもよい。方法1800のステップ1802において、バスの信号線を流れる信号を監視する。ステップ1804において、第1のデバイスによる第2のデバイスへのアクセスの試行を、その信号に基づいて検出する。ステップ1806において、信号を用いて第1のデバイスのアイデンティティを決定する、即ち第1のデバイスを識別する。ステップ1808において、第2のデバイスへのアクセスを、第1のデバイスのアイデンティティ、即ち識別結果に従って制御する。ステップ1808における第2のデバイスへのアクセスの制御を、(i)第1のデバイスが第2のデバイスへアクセスすることを認証されているかどうかを第1のデバイスのアイデンティティ、即ち識別結果に基づいて判定することと、(ii)第1のデバイスが第2のデバイスへアクセスすることを認証されているならば、第1のデバイスによるアクセス試行を許可するように第2のデバイスを構成することによって達成してもよい。
FIG. 18 is a flowchart illustrating one embodiment of a
バスの構造に関して本発明の様々な態様をここに説明してきたが、本発明は以上のものに限定されない。バス構造は、例えば、デバイス間を直接接続するポイント間接続、もしくはブリッジまたは他の場所を介して供給するポイント間接続に置き換えられてもよい。 Although various aspects of the present invention have been described herein with respect to bus structures, the present invention is not limited to the foregoing. The bus structure may be replaced with, for example, point-to-point connections that connect devices directly, or point-to-point connections that feed through a bridge or other location.
上記で開示されたような本発明の態様の中には、ハードウェアまたはソフトウェア内で実施されるものがあってもよい。従って、これまでの詳細な説明の中には、ハードウェアが実施するプロセスの観点から結果として提起されたものもあり、また、計算処理システムまたは計算処理デバイスのメモリ内のデータバス上での動作の記号表現を伴った、ソフトウェアが実施するプロセスの観点から提起されたものもある。これらの記述や表現は、当業界で用いられる、当業者に各態様の作用の趣旨をハードウェアとソフトウェアの両方を使用して最も効果的に伝える手段である。両者のプロセス及び動作には、物理量の物理的な操作が必要である。ソフトウェアでは、通常、必要であるとは限らないが、これらの量は、格納、転送、結合、比較、及びその他の操作が可能な電気、磁気、もしくは光の各信号の形を採っている。場合によっては、主に共用するという理由から、これらの信号を、ビット、値、要素、符号、文字、語、数等として表すと便利であることがわかっている。 Some aspects of the invention as disclosed above may be implemented in hardware or software. Thus, some of the detailed descriptions so far have been raised as a result in terms of the processes performed by the hardware and also operate on the data bus in the memory of the computing system or computing device. Some have been proposed in terms of the process performed by the software, with a symbolic representation of. These descriptions and expressions are the means used in the art to most effectively convey the purpose of the operation of each aspect to those skilled in the art using both hardware and software. Both processes and operations require physical manipulation of physical quantities. In software, though not necessarily required, these quantities take the form of electrical, magnetic, or optical signals that can be stored, transferred, combined, compared, and otherwise manipulated. In some cases, it has proven convenient to represent these signals as bits, values, elements, codes, characters, words, numbers, etc. primarily because they are shared.
しかしながら、これらの語句及び類似の語句は全て適当な物理量に関連するものであり、これらの物理量に適用された便利なラベルにしか過ぎないことは留意すべきである。明らかなもの以外は特に断らない限り、本開示を通じて、これらの説明は、ある電子デバイスの記憶装置の中にある物理(電気、磁気、もしくは光)量で表されたデータに対して、記憶装置内、または転送装置やディスプレイ装置内の物理量で同様に表された他のデータへの操作や変換を行う電子デバイスの動作及びプロセスについて言及しているものである。このような説明を示す語句の例としては、制限はないが、「プロセス処理」「計算処理」「計算」「判定」「表示」等の語句がある。 However, it should be noted that these phrases and similar phrases are all related to appropriate physical quantities and are merely convenient labels applied to these physical quantities. Throughout this disclosure, unless otherwise specified, these descriptions are based on physical (electrical, magnetic, or optical) quantities stored in a storage device of an electronic device. Or the operation and process of an electronic device that performs operations or conversions to other data similarly represented by physical quantities in the transfer device or display device. Examples of the phrase indicating such explanation include, but are not limited to, phrases such as “process process”, “calculation process”, “calculation”, “determination”, and “display”.
また、本発明のソフトウェアによって実施された態様は、通常、プログラム記憶媒体のフォーム上に符号化されているか、またはある種の伝送媒体上で実施されている。プログラム記憶媒体は磁気方式(例えば、フロッピーディスクやハードディスク)でも光方式(例えば、コンパクトディスク読み出し専用メモリ、つまり「CD‐ROM」)でもよいし、読み出し専用でもランダムアクセス可能でもよい。同様に、伝送媒体は、撚線対、同軸ケーブル、光ファイバー、または当業界では既知の他の適当な伝送媒体のいずれでもよい。本発明は、これら任意の実施態様には制限されない。 Also, aspects implemented by the software of the present invention are typically encoded on a form of program storage medium or implemented on some type of transmission medium. The program storage medium may be a magnetic system (for example, a floppy disk or a hard disk) or an optical system (for example, a compact disk read-only memory, that is, “CD-ROM”), or may be read-only or randomly accessible. Similarly, the transmission medium may be any twisted pair, coaxial cable, optical fiber, or other suitable transmission medium known in the art. The present invention is not limited to these optional embodiments.
本発明は、ここにある教示の恩恵を受ける当業者には明らかである様々かつ同等な方法で変更及び実現されてもよいので、上述の個別の実施形態は単に例示的なものである。さらに、以下の請求項に記述されているようなことを除いて、ここに示した構造または設計の詳細に限定することを意図するものではない。従って、上記に開示された個別の実施形態は変形や変更を加えられてもよく、このような変形例の全ては本発明の範囲と精神の範疇にあるとみなされることは明らかである。すなわち、ここに求められている保護は、以下の請求項に記載されているものである。 The above-described individual embodiments are merely exemplary, as the invention may be modified and implemented in various and equivalent ways that will be apparent to those skilled in the art having the benefit of the teachings herein. Furthermore, no limitations are intended to the details of construction or design herein shown, other than as described in the following claims. It is therefore evident that the individual embodiments disclosed above may be altered or modified and all such variations are considered within the scope and spirit of the invention. That is, the protection sought here is that described in the following claims.
Claims (10)
前記セキュリティチェックユニット(416,418)は、
前記伝送媒体(408,412)上の信号を監視し、
前記伝送媒体(408,412)に接続された第1のデバイスによって前記伝送媒体(408,412)に接続された第2のデバイス(414A〜414D)へアクセスする試行を前記信号に基づいて検出し、
前記信号に基づいて前記第1のデバイス(414A〜414D)を識別し、
前記第1のデバイス(414A〜414D)による前記第2のデバイス(414A〜414D)へのアクセスを前記第1のデバイス(414A〜414D)の識別結果に従って制御するように構成された、装置。 An apparatus comprising a security check unit (416, 418) configured to be connected to a transmission medium (408, 412),
The security check unit (416, 418)
Monitor signals on the transmission medium (408, 412);
Based on the signal, an attempt is made to access a second device (414A to 414D) connected to the transmission medium (408, 412) by a first device connected to the transmission medium (408, 412). ,
Identifying the first device (414A-414D) based on the signal;
An apparatus configured to control access to the second device (414A-414D) by the first device (414A-414D) according to the identification result of the first device (414A-414D).
前記エントリ(912)は、許可信号の第1の状態及びそれに対応すると共に前記第1のデバイス(414A〜414D)が前記第2のデバイス(414A〜414D)へアクセスすることを認証されているかどうかを表すアクセス認証値を含み、
前記セキュリティチェックユニット(416,418)は、前記第1のデバイス(414A〜414D)が前記第2のデバイス(414A〜414D)へアクセスすることを認証されているかどうかを前記許可信号の第1の状態を用いてアクセス認証テーブル(906)へアクセスして前記アクセス認証値を得ることによって判定するように構成されており、前記アクセス認証値が前記第1のデバイス(414A〜414D)が前記第2のデバイス(414A〜414D)へアクセスすることを認証されている場合、前記セキュリティチェックユニット(416,418)は、前記バス(408,412)の信号線に、前記第1のデバイス(414A〜414D)による全てのアクセス試行を許可するように前記第2のデバイス(414A〜414D)を構成する信号を流す、請求項1記載の装置。 The security check unit (416, 418) includes an access authentication table (906) having an entry (912) corresponding to the second device (414A-414D),
The entry (912) corresponds to the first state of the permission signal and whether or not the first device (414A to 414D) is authorized to access the second device (414A to 414D). Including an access authorization value that represents
The security check unit (416, 418) determines whether the first device (414A-414D) is authorized to access the second device (414A-414D) in the first signal of the permission signal. The access authentication table (906) is accessed using a state to determine the access authentication value, and the access authentication value is determined by the first device (414A to 414D). The security check unit (416, 418) is connected to the signal line of the bus (408, 412), the first device (414A-414D). ) To allow all access attempts by the second device (414A- Flowing a signal constituting the 14D), apparatus according to claim 1.
前記複数のデバイス(414A〜414D)は、少なくとも前記第1のデバイス(414A〜414D)と前記第2のデバイス(414A〜414D)を含み、
前記アービター(1308)は、さらに前記複数のデバイス(414A〜414D)のうち制御が許可されている1つのデバイスの信号を送るように構成されており、
前記アービター(1308)は、バスアービター(1308)を備え、
前記伝送媒体(408,412)はバス(408,412)を備え、
前記バス(408,412)は、複数のアドレス線及び許可信号を伝送する少なくとも1つの信号線を備え、
前記バスアービター(1308)は、前記複数のデバイス(414A〜414D)のうちの前記1つのデバイスが前記バス(408,412)の制御を許可されていることを表す状態となっている許可信号を、前記少なくとも1つの信号線に流すように構成されており、
前記セキュリティチェックユニット(416,418)は、前記アドレス線及び前記許可信号を伝送する前記少なくとも1つの信号線に接続されており、
更に、前記セキュリティチェックユニット(416,418)は、
前記バス(408,412)のアドレス線上を流れるアドレス信号と前記許可信号を監視し、
前記第1のデバイス(414A〜414D)による前記第2のデバイス(414A〜414D)へのアクセスの試行を前記アドレス信号に基づいて検出し、
前記第1のデバイス(414A〜414D)を前記許可信号に基づいて識別し、
前記第1のデバイス(414A〜414D)が前記第2のデバイス(414A〜414D)へアクセスすることを認証されているかどうかを前記第1のデバイス(414A〜414D)の識別結果に基づいて判定し、
前記第1のデバイス(414A〜414D)が前記第2のデバイス(414A〜414D)へアクセスすることを認証されている場合、前記第1のデバイス(414A〜414D)によるアクセス試行を許可するように前記第2のデバイス(414A〜414D)を構成する構成を有する請求項1記載の装置。 The apparatus further comprises an arbiter (1308) configured to coordinate control between a plurality of devices (414A-414D) connected to the transmission medium (408, 412);
The plurality of devices (414A to 414D) include at least the first device (414A to 414D) and the second device (414A to 414D),
The arbiter (1308) is further configured to send a signal of one of the plurality of devices (414A to 414D) that is allowed to be controlled,
The arbiter (1308) includes a bus arbiter (1308),
The transmission medium (408, 412) includes a bus (408, 412),
The bus (408, 412) includes a plurality of address lines and at least one signal line for transmitting a permission signal,
The bus arbiter (1308) outputs a permission signal indicating that the one device of the plurality of devices (414A to 414D) is permitted to control the bus (408, 412). , Configured to flow through the at least one signal line,
The security check unit (416, 418) is connected to the address line and the at least one signal line for transmitting the permission signal;
Furthermore, the security check unit (416, 418)
Monitor the address signal and the permission signal flowing on the address line of the bus (408, 412),
Detecting an attempt to access the second device (414A-414D) by the first device (414A-414D) based on the address signal;
Identifying the first device (414A-414D) based on the permission signal;
Whether the first device (414A to 414D) is authenticated to access the second device (414A to 414D) is determined based on the identification result of the first device (414A to 414D). ,
If the first device (414A-414D) is authorized to access the second device (414A-414D), allow an access attempt by the first device (414A-414D) The apparatus according to claim 1, wherein the apparatus comprises the second device (414 </ b> A to 414 </ b> D).
信号を監視し、
前記信号に基づいて、前記対象となるデバイス(414A〜414D)への別のデバイス(414A〜414D)によるアクセスの試行を検出し、
前記信号を用いて前記別のデバイス(414A〜414D)を識別し、
前記対象となるデバイス(414A〜414D)へのアクセスを前記別のデバイス(414A〜414D)の識別結果に従って制御する、アクセスセキュリティを提供する方法。 A method of providing access security to a target device (414A to 414D),
Monitor the signal,
Based on the signal, an attempt to access the target device (414A to 414D) by another device (414A to 414D) is detected,
Using the signal to identify the other device (414A-414D);
A method for providing access security, wherein access to the target device (414A to 414D) is controlled according to an identification result of the other device (414A to 414D).
前記別のデバイス(414A〜414D)は前記対象となるデバイス(414A〜414D)へアクセスすることを認証されているかどうかを前記別のデバイス(414A〜414D)の識別結果に基づいて判定し、
前記別のデバイス(414A〜414D)が前記対象となるデバイス(414A〜414D)へアクセスすることを認証されている場合、前記別のデバイス(414A〜414D)によるアクセス試行を許可するように前記対象となるデバイス(414A〜414D)を構成する制御がなされる、請求項9記載の方法。 In the control performed according to the identification result of the another device (414A to 414D) for the access to the target device (414A to 414D) by the another device (414A to 414D),
The other device (414A to 414D) determines whether it is authenticated to access the target device (414A to 414D) based on the identification result of the other device (414A to 414D),
If the other device (414A-414D) is authorized to access the target device (414A-414D), the target is allowed to allow an access attempt by the other device (414A-414D). The method according to claim 9, wherein control is performed to configure the devices (414 </ b> A to 414 </ b> D).
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/107,776 | 2002-03-27 | ||
US10/107,776 US7383584B2 (en) | 2002-03-27 | 2002-03-27 | System and method for controlling device-to-device accesses within a computer system |
PCT/US2002/040742 WO2003083628A2 (en) | 2002-03-27 | 2002-12-18 | System and method for controlling device-to-device accesses within a computer system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005521935A true JP2005521935A (en) | 2005-07-21 |
JP4799822B2 JP4799822B2 (en) | 2011-10-26 |
Family
ID=28452711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003580989A Expired - Lifetime JP4799822B2 (en) | 2002-03-27 | 2002-12-18 | System and method for controlling access between devices in a computer system |
Country Status (7)
Country | Link |
---|---|
US (1) | US7383584B2 (en) |
JP (1) | JP4799822B2 (en) |
KR (1) | KR100972635B1 (en) |
AU (1) | AU2002357923A1 (en) |
DE (1) | DE10297686B4 (en) |
GB (1) | GB2402783B (en) |
WO (1) | WO2003083628A2 (en) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7334123B2 (en) * | 2003-05-02 | 2008-02-19 | Advanced Micro Devices, Inc. | Computer system including a bus bridge for connection to a security services processor |
US7617534B1 (en) | 2005-08-26 | 2009-11-10 | Symantec Corporation | Detection of SYSENTER/SYSCALL hijacking |
US7685638B1 (en) | 2005-12-13 | 2010-03-23 | Symantec Corporation | Dynamic replacement of system call tables |
US8214296B2 (en) * | 2006-02-14 | 2012-07-03 | Microsoft Corporation | Disaggregated secure execution environment |
US8276201B2 (en) * | 2007-03-22 | 2012-09-25 | International Business Machines Corporation | Integrity protection in data processing systems |
US20080235422A1 (en) * | 2007-03-23 | 2008-09-25 | Dhinesh Sasidaran | Downstream cycle-aware dynamic interconnect isolation |
US8935775B2 (en) * | 2012-06-28 | 2015-01-13 | Intel Corporation | Method and apparatus for dishonest hardware policies |
CN102915417A (en) * | 2012-09-18 | 2013-02-06 | 鸿富锦精密工业(深圳)有限公司 | Application monitoring system and application monitoring method |
US20140297910A1 (en) * | 2013-03-29 | 2014-10-02 | Hewlett-Packard Development Company, L.P. | Sas expander |
WO2017028309A1 (en) | 2015-08-20 | 2017-02-23 | 华为技术有限公司 | File data access method and computer system |
CN108062486B (en) | 2017-12-15 | 2020-09-15 | 杭州中天微系统有限公司 | Storage protection device for indirect access storage controller |
US10831679B2 (en) * | 2018-03-23 | 2020-11-10 | Intel Corporation | Systems, methods, and apparatuses for defending against cross-privilege linear probes |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4882659A (en) * | 1988-12-21 | 1989-11-21 | Delco Electronics Corporation | Vacuum fluorescent display having integral backlit graphic patterns |
US4970441A (en) * | 1989-08-04 | 1990-11-13 | Delco Electronics Corporation | Brightness stabilizing control of a VF display |
US5652837A (en) * | 1993-03-22 | 1997-07-29 | Digital Equipment Corporation | Mechanism for screening commands issued over a communications bus for selective execution by a processor |
US5469026A (en) * | 1993-11-09 | 1995-11-21 | Delco Electronics Corporation | Method and apparatus for VF tube power supply |
ATE278218T1 (en) * | 1994-05-26 | 2004-10-15 | Commw Of Australia | SECURE COMPUTER ARCHITECTURE |
US5473222A (en) * | 1994-07-05 | 1995-12-05 | Delco Electronics Corporation | Active matrix vacuum fluorescent display with microprocessor integration |
US5459374A (en) * | 1994-07-05 | 1995-10-17 | Delco Electronics Corporation | Combination fixed segment and active matrix vacuum fluorescent display |
US5613750A (en) * | 1994-11-07 | 1997-03-25 | Delco Electronics Corporation | Fluorescent backlighting device for an instrument panel |
US5477430A (en) * | 1995-03-14 | 1995-12-19 | Delco Electronics Corporation | Fluorescing keypad |
US5521449A (en) * | 1995-08-28 | 1996-05-28 | Delco Electronics Corporation | Method and circuitry for reducing radiated noise in a strobed load driver circuit for a vacuum fluorescent display |
US5856811A (en) * | 1996-01-31 | 1999-01-05 | Delco Electronics Corp. | Visual display and helmet assembly |
US6098133A (en) * | 1997-11-28 | 2000-08-01 | Motorola, Inc. | Secure bus arbiter interconnect arrangement |
US6061753A (en) | 1998-01-27 | 2000-05-09 | Emc Corporation | Apparatus and method of accessing target devices across a bus utilizing initiator identifiers |
US6428174B1 (en) * | 2001-04-27 | 2002-08-06 | Delphi Technologies, Inc. | Vacuum fluorescent display panel with integral illumination of panel indicia |
US6996750B2 (en) * | 2001-05-31 | 2006-02-07 | Stratus Technologies Bermuda Ltd. | Methods and apparatus for computer bus error termination |
US7277972B2 (en) * | 2002-03-08 | 2007-10-02 | Freescale Semiconductor, Inc. | Data processing system with peripheral access protection and method therefor |
-
2002
- 2002-03-27 US US10/107,776 patent/US7383584B2/en active Active
- 2002-12-18 WO PCT/US2002/040742 patent/WO2003083628A2/en active Application Filing
- 2002-12-18 DE DE10297686.4T patent/DE10297686B4/en not_active Expired - Lifetime
- 2002-12-18 AU AU2002357923A patent/AU2002357923A1/en not_active Abandoned
- 2002-12-18 KR KR1020047015524A patent/KR100972635B1/en active IP Right Grant
- 2002-12-18 JP JP2003580989A patent/JP4799822B2/en not_active Expired - Lifetime
- 2002-12-18 GB GB0420728A patent/GB2402783B/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
GB0420728D0 (en) | 2004-10-20 |
GB2402783B (en) | 2005-12-14 |
JP4799822B2 (en) | 2011-10-26 |
US7383584B2 (en) | 2008-06-03 |
AU2002357923A1 (en) | 2003-10-13 |
KR20040102363A (en) | 2004-12-04 |
WO2003083628A3 (en) | 2004-07-08 |
DE10297686B4 (en) | 2017-09-28 |
AU2002357923A8 (en) | 2003-10-13 |
US20030188169A1 (en) | 2003-10-02 |
GB2402783A (en) | 2004-12-15 |
WO2003083628A2 (en) | 2003-10-09 |
DE10297686T5 (en) | 2005-05-12 |
KR100972635B1 (en) | 2010-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6854039B1 (en) | Memory management system and method providing increased memory access security | |
US8135962B2 (en) | System and method providing region-granular, hardware-controlled memory encryption | |
US5835594A (en) | Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage | |
TWI705353B (en) | Integrated circuit, method and article of manufacture for allowing secure communications | |
US7366849B2 (en) | Protected configuration space in a protected environment | |
JP4688490B2 (en) | Trusted client using high security kernel in high security execution mode | |
KR940003325B1 (en) | Virtual input/output commands | |
US8051301B2 (en) | Memory management system and method providing linear address based memory access security | |
JP4945053B2 (en) | Semiconductor device, bus interface device, and computer system | |
JP4799822B2 (en) | System and method for controlling access between devices in a computer system | |
KR100995146B1 (en) | System and method for handling device accesses to a memory providing increased memory access security | |
KR100831468B1 (en) | Nodma cache | |
US20060136634A1 (en) | Data address security device and method | |
EP1862908B1 (en) | Integrated circuit arrangement, a method for monitoring access requests to an integrated circuit arrangement component of an integrated circuit arrangement and a computer program product | |
JP5380392B2 (en) | Semiconductor device, bus interface device, and computer system | |
JP5324676B2 (en) | Processor, bus interface device, and computer system | |
TW202418133A (en) | Integrated circuit, method and computer system for allowing secure communications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051205 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080523 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080701 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081001 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090526 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090928 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20091008 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20100108 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20100421 |
|
RD05 | Notification of revocation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7425 Effective date: 20100902 |
|
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: 20110803 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140812 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4799822 Country of ref document: JP 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 |
|
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 |