JP2020508499A - Hacking resistant computer design - Google Patents
Hacking resistant computer design Download PDFInfo
- Publication number
- JP2020508499A JP2020508499A JP2017540073A JP2017540073A JP2020508499A JP 2020508499 A JP2020508499 A JP 2020508499A JP 2017540073 A JP2017540073 A JP 2017540073A JP 2017540073 A JP2017540073 A JP 2017540073A JP 2020508499 A JP2020508499 A JP 2020508499A
- Authority
- JP
- Japan
- Prior art keywords
- partition
- computer
- data
- cpu
- memory
- 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
Classifications
-
- 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/78—Protecting 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
-
- 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/1416—Protection 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/1425—Protection 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 physical, e.g. cell, word, block
- G06F12/1441—Protection 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 physical, e.g. cell, word, block for a range
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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
- G06F21/53—Monitoring 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 by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- 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/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- 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/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- 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/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
ハッキング耐性のあるコンピューティング・デバイスを実施するためのコンピュータ・アーキテクチャが、開示される。メインフレーム・コンピュータ、パーソナル・コンピュータ、スマートフォン、又はネットワーク通信に適した他の任意のコンピューティング・デバイスとすることができる、コンピューティング・デバイスは、第1のパーティションと、第2のパーティションを備える。第2のパーティションは、インターネットなどのネットワーク上で通信することができる。対照的に、第1のパーティションは、インターネットに接続することはできず、第2のパーティションと、又は第1のパーティションに直接的に接続された入力/出力デバイスとだけ直接的に通信することができる。さらに、第1のパーティションは、プログラム・コード用のそれのメモリ・アドレッシングを区分し、それを改変からハードウェア的に保護する。第2のパーティションは、第1のパーティションのメモリ・アドレッシングを読み取ること、又はそれに書き込むことを、ハードウェア的に制限される。結果として、第1のパーティション上に記憶された重要なデータ・ファイル及びプログラム・コードは、第2のパーティションに悪影響を及ぼす悪意あるコードから保護される。A computer architecture for implementing a hack-resistant computing device is disclosed. The computing device, which may be a mainframe computer, a personal computer, a smartphone, or any other computing device suitable for network communication, comprises a first partition and a second partition. The second partition can communicate over a network such as the Internet. In contrast, the first partition cannot connect to the Internet and can only directly communicate with the second partition or with input / output devices directly connected to the first partition. it can. Further, the first partition partitions its memory addressing for program code and protects it hardware from modification. The second partition is hardware restricted from reading or writing to the first partition's memory addressing. As a result, important data files and program code stored on the first partition are protected from malicious code that can adversely affect the second partition.
Description
ハッキング耐性のあるコンピューティング・デバイスを実施するためのコンピュータ・アーキテクチャが、開示される。 A computer architecture for implementing a hack-resistant computing device is disclosed.
コンピュータに侵入するための一般的な方法は、インターネット又は他のネットワーク接続を通して、悪意のあるコンピュータ実行可能コード(マルウェア)をコンピュータに入れることによる。そのようなハッキングは、大きな脅威になっており、ハッキングの重大な事例が、広く報告されている。そのようなハッキングを阻止するための広く普及している手法は、マルウェアを識別し、無効化又は除去するためのソフトウェアに依存している。しかしながら、ハッカは、ますます巧妙になっており、一般に行われている保護は、十分ではない。 A common way to break into a computer is by putting malicious computer-executable code (malware) into the computer through the Internet or other network connection. Such hacking has become a major threat, and serious cases of hacking have been widely reported. A popular approach to thwart such hacks relies on software to identify, neutralize, or remove malware. However, mint is becoming more and more sophisticated, and the general protection provided is not enough.
したがって、当技術分野には、ハードウェア手法を利用するハッキング耐性のあるコンピュータ・システム・アーキテクチャに対する必要性が存在する。そのようなハードウェア手法は、様々なアプリケーションのために様々なコンピュータから利用可能である。例えば、本明細書で開示されるようなハードウェア手法を使用する銀行、企業、政府機関、又は個人は、それらのコンピュータの制御権を握って、コンピュータ上に記憶された機密データ、個人情報、又はパスワードを盗み、又は改ざんしようと試みることがあるハッカからかなりよく保護される。本明細書で開示されるハードウェア手法は、現在のソリューションでは可能でない程度まで、ハッカを防御する。 Thus, there is a need in the art for a hack-resistant computer system architecture that utilizes a hardware approach. Such hardware approaches are available from various computers for various applications. For example, banks, businesses, government agencies, or individuals using hardware approaches as disclosed herein may take control of their computers and provide confidential data, personal information, Or fairly well protected from hackers who may try to steal or tamper with your password. The hardware approach disclosed herein protects hackers to an extent not possible with current solutions.
ハッキング耐性のあるコンピューティング・デバイスを実施するためのコンピュータ・システム・アーキテクチャが、開示される。コンピュータ・システム・アーキテクチャは、インターネットから受け取った悪意あるコンピュータ実行可能コードが、重要なデータ・ファイルにアクセスすること、又は悪影響を及ぼすことを、重要なデータ・ファイルのインターネットへの直接アクセスをハードウェア的に制限することによって防止する。メインフレーム・コンピュータ、パーソナル・コンピュータ、スマートフォン、又はネットワーク通信に適した他の任意のコンピューティング・デバイスとすることができる、コンピューティング・デバイスは、第1のパーティションと、第2のパーティションとを備える。第2のパーティションは、インターネットなどのネットワーク上で通信することができる。対照的に、第1のパーティションは、第2のパーティションと、又は第1のパーティションに直接的に接続された入力/出力デバイスと直接的に通信することができる。結果として、第1のパーティションは、インターネット、及びインターネットに接続されたサーバなどの他の任意のデバイスに接続することをハードウェア的に制限される。第1のパーティションによるインターネットへのすべてのアクセスは、第1のパーティションと第2のパーティションとの間のハードウェア接続に限定され、その後、第2のパーティションが、インターネットに接続することができる。 A computer system architecture for implementing a hack-resistant computing device is disclosed. Computer system architecture indicates that malicious computer-executable code received from the Internet can access or adversely affect sensitive data files. Prevent by limiting to The computing device, which may be a mainframe computer, a personal computer, a smartphone, or any other computing device suitable for network communication, comprises a first partition and a second partition. . The second partition can communicate over a network such as the Internet. In contrast, the first partition can communicate directly with the second partition or with input / output devices directly connected to the first partition. As a result, the first partition is hardware restricted from connecting to the Internet and any other device, such as a server connected to the Internet. All access to the Internet by the first partition is limited to the hardware connection between the first partition and the second partition, after which the second partition can connect to the Internet.
さらに、第1のパーティションは、オペレーティング・システムを利用して、第1のパーティションのメモリ・アドレスをセクションに区分する、ハードウェア回路を含む。コンピュータ実行可能コード及び関連する非常に重要なデータを含む、プログラム・コードのためのメモリ・アドレッシングは、区分され、改変からハードウェア的に保護される。この手法は、第1のパーティション内の別個のメモリ・ユニットを使用することによって
も、達成され得る。重要なデータ・ファイルを保護するために、第2のパーティションは、第1のパーティションのメモリ・アドレッシングから読み取る、又は第1のパーティションのメモリ・アドレッシングに書き込むことを、ハードウェア的に制限される。第2のパーティションのデータは、第1のパーティションのオペレーティング・システムによって実行される「プル」コマンドを通して、第1のパーティションに転送される。さらに、第2のパーティションは、第1のパーティションにデータを「プッシュ」すること、又は「プル」コマンドを送るように第1のパーティションを制御することはできない。第1のパーティションによって第2のパーティションからプルされるすべてのデータは、ハードウェア設計によって、第2のパーティションから読み取られたデータ・ファイル専用の第1のパーティションのメモリ・セクション内に記憶される。さらに、第1のパーティションは、ハードウェア制限によって、第2のパーティションから読み取られたデータ・ファイルが実行されることを防止する。結果として、第1のパーティション上に記憶された重要なプログラム及び重要なデータ・ファイルは、第2のパーティションに悪影響を及ぼすインターネット又は他の任意のソースからの悪意あるコードから保護される。
Further, the first partition includes hardware circuitry that utilizes the operating system to partition the memory address of the first partition into sections. Memory addressing for program code, including computer executable code and associated very important data, is partitioned and hardware protected from modification. This approach can also be achieved by using a separate memory unit in the first partition. To protect important data files, the second partition is hardware restricted from reading from or writing to the first partition's memory addressing. The data of the second partition is transferred to the first partition through a "pull" command executed by the operating system of the first partition. Further, the second partition cannot “push” data to the first partition or control the first partition to send a “pull” command. All data that is pulled from the second partition by the first partition is stored by hardware design in a memory section of the first partition dedicated to data files read from the second partition. Further, the first partition prevents data files read from the second partition from being executed due to hardware limitations. As a result, important programs and important data files stored on the first partition are protected from malicious code from the Internet or any other source that adversely affects the second partition.
詳細な説明は、添付の図を参照する。 The detailed description refers to the accompanying figures.
他の目的、特徴、及び特性、ならびに構造及び部分の組み合わせの関連要素の動作及び機能の方法は、添付の図面を参照して以下の詳細な説明を検討することでより明らかになるであろう。添付の図面のすべては、本明細書の一部を形成する。 Other objects, features, and characteristics, as well as methods of operation and function of related elements of the combination of structures and portions, will become more apparent from a consideration of the following detailed description when taken in conjunction with the accompanying drawings. . All of the accompanying drawings form a part of the specification.
詳細で説明的な実施形態が、本明細書で開示される。しかしながら、開示される原理による技法、方法、工程、システム、及び動作構造は、多種多様な形態及び様式で具体化さ
れてよく、それらのいくつかは、開示された実施形態におけるそれらと全く異なってよい。結果として、本明細書で開示される特定の構造的及び機能的詳細は、代表的なものにすぎないが、それでも、その点において、それらは、開示の目的で最良の実施形態を提供すると見なされる。
Detailed and illustrative embodiments are disclosed herein. However, the techniques, methods, processes, systems, and operating structures in accordance with the disclosed principles may be embodied in a wide variety of forms and manners, some of which are quite different from those in the disclosed embodiments. Good. As a result, the specific structural and functional details disclosed herein are merely representative, but nonetheless, in that respect they are deemed to provide the best embodiment for the purposes of disclosure. It is.
文脈が明らかに別のことを要求していない限り、本説明及び特許請求の範囲のどこにおいても、「comprise(含む/備える)」及び「comprising(含む/備える)」などの語は、排他的又は網羅的ではなく、包含的な意味に、すなわち、「including, but not limited to(限定することなく、〜を含む)」の意味に解釈されるべきである。本明細書で使用される場合、「connected(接続される)」、「coupled(結合される)」という用語、又はそれらのいずれの変化形も、2つ以上の要素間の、直接的又は間接的な、電子的又は非電子的な、任意の接続又は結合を意味し、要素間の接続の結合は、物理的、論理的、又はそれらの組み合わせとすることができる。加えて、「herein(本明細書で)」、「above(上で)」、「below(下で)」という語、及び同様の趣旨の語は、本明細書で使用される場合、本明細書のいずれか特定の部分ではなく、本明細書を全体として参照するものとする。文脈が許す場合、単数形又は複数形で使用される「発明を実施するための形態」内の語は、それぞれ、複数又は単数を含んでもよい。2つ以上の項目からなるリストに関する「or(又は)」という語は、この語についての以下の解釈のすべて、すなわち、リスト内の項目のいずれか、リスト内の項目のすべて、及びリスト内の項目の任意の組み合わせを包含する。以下に、図を参照する、詳細な説明を提示する。 Unless the context clearly requires otherwise, words such as "comprise" and "comprising" are used exclusively in the present description and in the claims. Or, it should be interpreted in an inclusive, rather than exhaustive, sense, ie, "including, but not limited to". As used herein, the term “connected”, “coupled”, or any variation thereof, is directly or indirectly between two or more elements. Means any connection or connection, whether electronic, electronic or non-electronic, and the connection of the connections between the elements can be physical, logical, or a combination thereof. In addition, the terms “herein”, “above”, “below”, and words of a similar meaning, as used herein, may be used herein to refer to Reference is made to this specification in its entirety, and not to any particular part of the book. Where the context permits, words in the Detailed Description that are used in the singular or plural number may each include the plural number or the singular number. The term "or" with respect to a list of two or more items refers to all of the following interpretations of the word: any of the items in the list, all of the items in the list, and Includes any combination of items. The following provides a detailed description with reference to the figures.
最初に図1を参照すると、ハッキング耐性のあるコンピューティング・デバイスの例示的なネットワーク図が、示されている。コンピューティング・デバイス300は、任意の大規模商用又は政府コンピュータ又は「メインフレーム」、タンデムで動作する1組のリンクされたコンピュータ、限定することなく、モバイル電話、セルラ電話、スマート電話、ラップトップ・コンピュータ、ネットブック、パーソナル・デジタル・アシスタント(PDA)、家電、住宅用もしくは商用建物コントローラ、又はネットワーク通信に適した他の任意のコンピューティング・デバイスを含む、単一のパーソナル・コンピュータ(PC)又はモバイル通信デバイスを含むことができる。コンピューティング・デバイス300は、第1のパーティション100と、第2のパーティション200とを備える。第1のパーティション100は、キーボード、データ記憶デバイス、及びプリンタなどの、入力/出力デバイスに直接的に相互接続される。大規模使用のための実施形態では、第1のパーティションは、コンピューティング・デバイスのユーザの制御下にある物理的ロケーション内に存在する、より小型のコンピュータ又はPCに直接的な配線によって接続され得る。この実施形態では、ユーザは、より小型のコンピュータ又はPCが、ワイヤ、ケーブル、又はWi−Fiを含む任意の形態のインターネット接続を行えないようにすることができる。第2のパーティション200は、ネットワーク500上で端末600と通信する。図2Aを参照して以下で詳細に説明されるように、第1のパーティション100は、バスを使用して、第2のパーティション200と直接的に通信することができるが、第1のパーティション100は、ネットワーク500と通信することを、ハードウェア的に制限される。好適な実施形態では、第1のパーティションのCPUは、第2のパーティションのメモリ及び第2のパーティションのCPUに直接的にアクセスすることができるが、第2のパーティションのCPUは、第1のパーティションのメモリ及び第1のパーティションのCPUにアクセスすることを、ハードウェア的に制限される。例えば、第2のパーティションのCPUは、バスのインターフェースに結合される。インターフェースは、第1のパーティションのCPUを第2のパーティションのCPU及びメモリに相互接続するための物理的ワイヤを備える、物理的ポートである。しかしながら、いくつかの実施形態では、インターフェースは、第2のパーティションのCPUが、第1のパーティションのメモリ又は第1のパーティションのCPUにアクセスするための、物理的ワイヤを含まない
。
Referring initially to FIG. 1, an exemplary network diagram of a hack-resistant computing device is shown. Computing device 300 may be any large commercial or government computer or “mainframe”, a set of linked computers operating in tandem, without limitation, mobile phones, cellular phones, smart phones, laptops, A single personal computer (PC) or including a computer, netbook, personal digital assistant (PDA), household appliance, residential or commercial building controller, or any other computing device suitable for network communication A mobile communication device can be included. The computing device 300 includes a first partition 100 and a second partition 200. First partition 100 is directly interconnected with input / output devices, such as a keyboard, a data storage device, and a printer. In embodiments for large-scale use, the first partition may be connected by direct wiring to a smaller computer or PC located in a physical location under the control of the user of the computing device. . In this embodiment, the user can prevent a smaller computer or PC from making any form of Internet connection, including wire, cable, or Wi-Fi. The second partition 200 communicates with the terminal 600 on the network 500. As described in detail below with reference to FIG. 2A, the first partition 100 can communicate directly with the second partition 200 using a bus, but the first partition 100 Is restricted in terms of hardware from communicating with the network 500. In a preferred embodiment, the CPU of the first partition has direct access to the memory of the second partition and the CPU of the second partition, while the CPU of the second partition has the first partition. Access to the memory and the CPU of the first partition is restricted by hardware. For example, the CPU of the second partition is coupled to a bus interface. The interface is a physical port comprising physical wires for interconnecting the CPU of the first partition to the CPU and memory of the second partition. However, in some embodiments, the interface does not include a physical wire for the CPU of the second partition to access the memory of the first partition or the CPU of the first partition.
ネットワーク500は、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、セルラ・ネットワーク、衛星ネットワーク、それらの組み合わせ、又はコンピューティング・デバイス300へのデータの転送、及び/もしくはコンピューティング・デバイス300からのデータの受信を可能にする他の任意のネットワークとすることができる。ネットワーク500を通してコンピューティング・デバイス300に送信されたデータ、又はコンピューティング・デバイス300又は端末600に送信されたデータは、標準的な電気通信プロトコル又は標準的なネットワーキング・プロトコルを利用して、送信及び/又は受信され得る。好適な実施形態では、システムは、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)を利用し、ネットワーク500は、インターネット及び/又はイントラネットである。データを送信及び/又は受信するためのプロトコルの他の例は、限定することなく、ボイス・オーバ・インターネット(VOIP)プロトコル、ショート・メッセージ・サービス(SMS)、Bluetooth無線送信、及び移動体通信用グローバルシステム(GSM)を含む。ネットワーク500は、コンピューティング・デバイス300及び端末600の1つ又は複数のプロトコルを利用することが可能である。さらに、ネットワーク500は、他のプロトコルに変換すること、又は他のプロトコルから端末600の1つもしくは複数のプロトコルに変換することができる。いくつかの状況では、第2のパーティション200は、コンピューティング・デバイス300上に記憶された重要なデータ・ファイルにアクセスしようと、又は悪影響を及ぼそうと試みる、悪意あるコンピュータ実行可能コードにさらされる。図2A及び図3Aを参照して以下で説明されるように、好適な実施形態は、そのようなマルウェアが、第1のパーティション100の重要なデータ・ファイル及びメモリにアクセスすること、又は悪影響を及ぼすことを防止する。 Network 500 may be a local area network (LAN), a wide area network (WAN), the Internet, a cellular network, a satellite network, a combination thereof, or transfer of data to computing device 300, and / or It can be any other network that allows for receiving data from the computing device 300. Data transmitted to the computing device 300 over the network 500, or to the computing device 300 or terminal 600, may be transmitted and transmitted using standard telecommunications or networking protocols. And / or may be received. In a preferred embodiment, the system utilizes Transmission Control Protocol / Internet Protocol (TCP / IP) and network 500 is the Internet and / or an intranet. Other examples of protocols for transmitting and / or receiving data include, but are not limited to, Voice over Internet (VOIP) protocol, Short Message Service (SMS), Bluetooth wireless transmission, and mobile communications. Includes Global System (GSM). Network 500 may utilize one or more protocols of computing device 300 and terminal 600. Further, network 500 may convert to other protocols, or convert from other protocols to one or more protocols of terminal 600. In some situations, the second partition 200 is exposed to malicious computer-executable code that attempts to access or adversely affect critical data files stored on the computing device 300. . As will be described below with reference to FIGS. 2A and 3A, the preferred embodiment prevents such malware from accessing, or adversely affecting, critical data files and memory of the first partition 100. Prevent from exerting.
ここで図2Aを参照すると、インターネットからの、及びネットワーク500を通して通信することができる他の任意のソースからの悪意あるコンピュータ実行可能コードの感染からハードウェア的に保護された、コンピューティング・デバイス300を実施するための、コンピュータ・システム・アーキテクチャを示すブロック図が、示されている。コンピューティング・デバイス300は、第1のパーティション100を備える。第1のパーティション100は、第1のパーティションのバス102に相互接続されたコンピュータ処理ユニット(CPU)104を備える。第1のパーティションのメモリ106が、第1のパーティションのバス102を通して、CPU104に相互接続される。図1を参照して上で説明されたように、第1のパーティション100は、入力/出力モジュール110を通して、1つ又は複数の入力/出力デバイスに相互接続される。好適な実施形態では、パーティション100は、データ・ストア107、108をさらに備える。重要なデータ・ファイルは、メモリ106及び/又はデータ・ストア107上に記憶される。データ・ストア108は、第1のパーティションが処理した第2のパーティション200からのデータを含む、他のデータを記憶するために、第1のパーティションによって使用される。第1のパーティション100は、コンピュータ実行可能コードを実行するためのオペレーティング・システムを含む。図3Aを参照して以下で詳細に説明されるように、CPU104は、メモリ106のプログラム・コード用アドレス範囲上に記憶されたコンピュータ実行可能コードだけを実行することができる。これは、(この実施形態によって、それ自体がマルウェアから保護された)CPU104のオペレーティング・システムによる、及びハードウェア回路による制御を通して達成される。現在のコンピュータ・システム・アーキテクチャの根本的な弱さは、インターネットを通してコンピュータに達した悪意あるコンピュータ実行可能コードに、しばしば実行制御が引き渡されることである。本実施形態は、インターネットから第2のパーティションにダウンロードされた悪意あるコンピュータ実行可能コードのいかなる実行も制限する。 Referring now to FIG. 2A, a computing device 300 that is hardware protected from infection of malicious computer-executable code from the Internet and from any other source that can communicate over network 500. A block diagram illustrating a computer system architecture for implementing is shown. Computing device 300 includes first partition 100. The first partition 100 includes a computer processing unit (CPU) 104 interconnected to a bus 102 of the first partition. The memory 106 of the first partition is interconnected to the CPU 104 through the bus 102 of the first partition. As described above with reference to FIG. 1, the first partition 100 is interconnected through an input / output module 110 to one or more input / output devices. In the preferred embodiment, partition 100 further comprises data stores 107,108. Important data files are stored on memory 106 and / or data store 107. The data store 108 is used by the first partition to store other data, including data from the second partition 200 processed by the first partition. First partition 100 contains an operating system for executing computer-executable code. As will be described in more detail below with reference to FIG. 3A, CPU 104 can execute only computer-executable code stored on a memory 106 on a program code address range. This is achieved through control by the operating system of the CPU 104 (which itself is protected from malware by this embodiment) and by hardware circuits. A fundamental weakness in current computer system architecture is that execution control is often passed to malicious computer-executable code that has reached the computer through the Internet. This embodiment restricts any execution of malicious computer executable code downloaded from the Internet to the second partition.
コンピューティング・デバイス300は、第2のパーティション200をさらに備える。第2のパーティション200は、第2のパーティションのバス202に相互接続されたCPU204を備える。少なくとも1つのメモリ206が、第2のパーティションのバス202を通して、CPU204に相互接続される。通信モジュール210は、第2のパーティション200が、ネットワークを通して端末と通信することを可能にする。コンピュータ・システム・アーキテクチャは、少なくとも1つのデータ・ストア208をさらに含む。データ・ストア208は、重要であると見なされないデータ・ファイルの記憶用である。第2のパーティション200は、コンピュータ実行可能コードを実行するためのオペレーティング・システムを含む。図3Aを参照して以下で詳細に説明されるように、CPU204は、メモリ206のアドレス範囲全体及びデータ・ストア208からのコンピュータ実行可能コードを実行することができる。 Computing device 300 further comprises second partition 200. The second partition 200 includes a CPU 204 interconnected to a bus 202 of the second partition. At least one memory 206 is interconnected to the CPU 204 through the second partition bus 202. The communication module 210 enables the second partition 200 to communicate with the terminal through a network. The computer system architecture further includes at least one data store 208. Data store 208 is for storage of data files that are not considered important. Second partition 200 contains an operating system for executing computer-executable code. As described in detail below with reference to FIG. 3A, the CPU 204 can execute computer-executable code from the entire address range of the memory 206 and the data store 208.
図2Aに示されるように、第1のパーティション100は、バス302を通して、第2のパーティション200に直接的に相互接続される。バス302は、制御線304、アドレス線306、及びデータ線308を含む、複数の物理的ワイヤを備える。データ線308は、バス302を通して、パーティション間で送信される情報を運ぶ。アドレス線306は、データのアドレス、及びデータを送るアドレスを含む。最後に、制御線304は、限定することなく、転送の方向を含む、アドレス及びデータの転送を管理する。例示的な制御線は、限定することなく、読み取り、書き込み、クロック、肯定応答、及びリセットを含む。そのような実施形態では、CPU104からバス302への制御線は、単方向である。さらに、CPU204からバス302への制御線は、もっぱらデータを受け取るように構成され、それによって、CPU104がCPU204を制御することを可能にするが、CPU204は、CPU104を制御することはできない。図2Aに示されるように、メモリ106及びデータ・ストア107、108は、バス302に直接的に接続されない。したがって、CPU204は、第1のパーティション100のメモリを制御することはできない。対照的に、第2のパーティションのメモリ206及びデータ・ストア208は、バス302に接続される。好適な実施形態では、CPU104は、制御線304、アドレス線306、及びデータ線308を利用して、第2のパーティション200のメモリ206及びデータ・ストア208のアドレス範囲全体に書き込むことができる。この設計の1つの利点は、悪意あるコンピュータ実行可能コードによって悪影響を及ぼされた第2のパーティション200のオペレーティング・システム及びデータ・ファイルを、第1のパーティション100が回復できることである。加えて、CPU104は、メモリ206のアドレス範囲全体及びデータ・ストア208からデータを読み取ることができるが、CPU104による「読み取り」コマンド(プル)だけによって、それを行うことができる。CPU104からバス302への制御線は、単方向であるので、CPU104は、ハードウェア制限によって、第2のパーティション200によってそれにプッシュされたいかなるデータ又は他のファイルも受け入れることはできない。加えて、CPU204は、CPU104の制御線に接続されないので、第2のパーティション200は、いかなるデータも第1のパーティション100からプルすることはできない。さらに、第1のパーティション100のオペレーティング・システム及びサポーティング・プログラムは、CPU104が第2のパーティション200から受け入れるデータのフォーマット及び他のファイル特性を定義する。適切な予想された形式を取らないファイルを第1のパーティション100に提供しようとする、第2のパーティション200によるいずれの試みも、CPU104によって拒否される。図3Aを参照して以下で詳細に説明されるように、CPU104によって第2のパーティション200から読み取られるすべてのデータ・ファイルは、メモリ106の第2のパーティション用アドレス範囲及び/又はデータ・ストア108に書き込まれる。CPU104は、メモリ106のプログラム・コード用アドレス範囲上に記憶されたコンピュータ実行可能コードだけしか実行できないので、第1のパーティション100は、第2のパーティション200上に記憶されたいかなる悪意あるコンピュータ実行可能コードからも保護される。 As shown in FIG. 2A, first partition 100 is directly interconnected to second partition 200 via bus 302. Bus 302 includes a plurality of physical wires, including control lines 304, address lines 306, and data lines 308. Data line 308 carries information transmitted between partitions over bus 302. The address line 306 includes an address of data and an address to send data. Finally, control line 304 manages the transfer of addresses and data, including, but not limited to, the direction of the transfer. Exemplary control lines include, but are not limited to, read, write, clock, acknowledge, and reset. In such an embodiment, the control lines from CPU 104 to bus 302 are unidirectional. Further, the control lines from CPU 204 to bus 302 are configured to exclusively receive data, thereby allowing CPU 104 to control CPU 204, but CPU 204 cannot control CPU 104. As shown in FIG. 2A, memory 106 and data stores 107, 108 are not directly connected to bus 302. Therefore, the CPU 204 cannot control the memory of the first partition 100. In contrast, the second partition's memory 206 and data store 208 are connected to the bus 302. In a preferred embodiment, the CPU 104 can write to the entire address range of the memory 206 and data store 208 of the second partition 200 using the control line 304, the address line 306, and the data line 308. One advantage of this design is that the first partition 100 can recover the operating system and data files of the second partition 200 that have been adversely affected by malicious computer executable code. In addition, the CPU 104 can read data from the entire address range of the memory 206 and from the data store 208, but can do so only by a "read" command (pull) by the CPU 104. Because the control line from CPU 104 to bus 302 is unidirectional, CPU 104 cannot accept any data or other files pushed to it by second partition 200 due to hardware limitations. In addition, since the CPU 204 is not connected to the control line of the CPU 104, the second partition 200 cannot pull any data from the first partition 100. In addition, the operating system and supporting programs of the first partition 100 define the format of data and other file characteristics that the CPU 104 accepts from the second partition 200. Any attempt by the second partition 200 to provide a file that does not take the appropriate expected format to the first partition 100 will be rejected by the CPU 104. As will be described in detail below with reference to FIG. 3A, all data files read from the second partition 200 by the CPU 104 are stored in the address range for the second partition in the memory 106 and / or the data store 108. Is written to. Because CPU 104 can only execute computer-executable code stored on the address range for program code in memory 106, first partition 100 will not be able to execute any malicious computer-executable code stored on second partition 200. Also protected from code.
図2Bは、メモリ・コントローラ410を利用して、第2のパーティションの第1のパーティションのメモリ及びデータ・ストアへのアクセスを制限する、ハードウェアの例示的なブロック図を示している。示されるように、第1のパーティション400のCPU404は、バス416を通して、第2のパーティション418のCPU422、メモリ424、及びデータ・ストア426を直接的に制御することができる。第1のパーティション400は、メモリ・コントローラ410を備える。メモリ・コントローラ410は、第1のパーティション400のメモリ406及びデータ・ストア407、408へのデータの流れ、ならびにそれらからのデータの流れを管理する。この実施形態では、メモリ・コントローラ410は、フロントエンド412と、バックエンド414とを備える。フロントエンド412は、第1のパーティションのバス402と、バス416とに結合される。フロントエンド412は、第2のパーティション418から発生したアドレスを有する、読み取り及び書き込み制御線を無視するように構成されたハードウェアである。フロントエンド412は、発生アドレスを、リード・オンリ・メモリ(ROM)又は消去可能プログラム可能リード・オンリ・メモリ(EEPROM)内に記憶されたアドレスと比較する、比較器を備える。ROM又はEEPROMは、第1のパーティション400のメモリ406及びデータ・ストア407、408にアクセスすることを制限された、デバイスのアドレスを含む。フロントエンド412は、制限されていない要求を、バックエンド414に渡す。この実施形態では、バックエンド414は、要求を、メモリ406及びデータ・ストア407、408に送信する。メモリ・コントローラ410は、別個のコンポーネントとして示されているが、それは、CPU404を有するメモリ・コントローラと統合されてもよい。 FIG. 2B shows an exemplary block diagram of hardware that utilizes memory controller 410 to limit access to memory and data stores of a first partition of a second partition. As shown, the CPU 404 of the first partition 400 can directly control the CPU 422, the memory 424, and the data store 426 of the second partition 418 via the bus 416. The first partition 400 includes a memory controller 410. The memory controller 410 manages the flow of data to and from the memory 406 and data stores 407, 408 of the first partition 400. In this embodiment, the memory controller 410 includes a front end 412 and a back end 414. Front end 412 is coupled to bus 402 and bus 416 of the first partition. The front end 412 is hardware configured to ignore read and write control lines having addresses originating from the second partition 418. The front end 412 includes a comparator that compares the generated address to an address stored in a read only memory (ROM) or an erasable programmable read only memory (EEPROM). The ROM or EEPROM contains the addresses of the devices that have restricted access to the memory 406 and data stores 407, 408 of the first partition 400. The front end 412 passes the unrestricted request to the back end 414. In this embodiment, backend 414 sends the request to memory 406 and data stores 407,408. Although the memory controller 410 is shown as a separate component, it may be integrated with a memory controller having a CPU 404.
また別の実施形態では、第1のパーティションは、比較器を利用して、第2のパーティションによって伝達されたメッセージをハードウェア的に制限する。第1のパーティションは、第2のパーティションのCPUのアドレスを含む、リード・オンリ・メモリ(ROM)を含む。好適には、ROMは、再プログラム可能ではない。この実施形態では、第2のパーティションのCPUは、送信先アドレス、CPUのアドレス、及びメッセージとして送られるデータのバイトを含むメッセージ・フレームを有するメッセージを、バスを通して送る。例示的なメッセージは、情報に対するプッシュ又はプル要求である。第1のパーティションのCPU及び第1のパーティションのメモリは、比較器を含む。比較器は、バスを通して送られるメッセージの送信元のアドレスとROMとを比較する。比較器は、送信元のアドレスがROM内のアドレスと一致した場合、制御信号を送って、第1のパーティションのCPU及びメモリが、メッセージ・フレームの実行を行えないようにする。したがって、第1のパーティションのCPUは、第2のパーティションのCPUからのプッシュ又はプル・コマンドを受け入れることを、ハードウェア的に制限される。 In yet another embodiment, the first partition utilizes a comparator to hardware limit the messages conveyed by the second partition. The first partition contains a read only memory (ROM) that contains the address of the CPU of the second partition. Preferably, the ROM is not reprogrammable. In this embodiment, the CPU in the second partition sends a message over the bus having a destination address, an address of the CPU, and a message frame including bytes of data to be sent as the message. An exemplary message is a push or pull request for information. The CPU of the first partition and the memory of the first partition include a comparator. The comparator compares the source address of the message sent over the bus with the ROM. The comparator sends a control signal when the source address matches the address in the ROM, so that the CPU and the memory in the first partition cannot execute the message frame. Therefore, the CPU of the first partition is hardware restricted from accepting push or pull commands from the CPU of the second partition.
図2Cは、バス・コントローラを利用して、第2のパーティションが第1のパーティションにアクセスすることを制限する、ハードウェアの例示的なブロック図を示している。第1のパーティションと第2のパーティションとを相互接続するために汎用バスを利用する、図2A及び図2Bに示された実施形態とは異なり、バス・コントローラ512が、バス510に結合された第1のパーティションのコンポーネントと、バス510に結合された第2のパーティションのコンポーネントとの間の、要求及びデータの流れを管理する。示されるように、第1のパーティション502のCPU504が、バス510に結合され、一方、第2のパーティションのCPU518、メモリ520、及びデータ・ストア522が、バス510に結合される。バス・コントローラ512は、少なくとも1つのメッセージ待ち行列514を備える。メッセージ待ち行列514は、第2のパーティション516に送る、第1のパーティション502からの複数のメッセージを含む。この実施形態では、バス・コントローラ512は、第1のパーティション502上に存在するコンポーネントの識別アドレスを有する、リード・オンリ・メモリ内に記憶されたルックアップ・テ
ーブルを含む。したがって、バス・コントローラ512は、比較器を利用して、バス510を通してメッセージを送るコンポーネントのアドレスを比較して、メッセージの発生元を決定することができる。第1のパーティション502から発生したことが認証されたメッセージだけが、メッセージ待ち行列514内に記憶される。バス・コントローラ512は、メッセージ待ち行列514内に待ち行列化されたメッセージを送信するように構成される。結果として、バス・コントローラ512は、第2のパーティション516のコンポーネントが、メッセージ待ち行列514にメッセージを追加することを防止するので、バス・コントローラ512のハードウェア回路は、第2のパーティション516のコンポーネントが、第1のパーティション502のコンポーネント(例えば、CPU504及びメモリ506)と通信すること、又はそれらにアクセスすることを制限する。
FIG. 2C illustrates an exemplary block diagram of hardware that utilizes a bus controller to restrict a second partition from accessing a first partition. Unlike the embodiment shown in FIGS. 2A and 2B, which utilizes a universal bus to interconnect the first partition and the second partition, a bus controller 512 includes a second bus coupled to bus 510. Manages the flow of requests and data between components of one partition and components of a second partition coupled to bus 510. As shown, CPU 504 of first partition 502 is coupled to bus 510, while CPU 518, memory 520, and data store 522 of the second partition are coupled to bus 510. Bus controller 512 includes at least one message queue 514. Message queue 514 includes a plurality of messages from first partition 502 that are sent to second partition 516. In this embodiment, the bus controller 512 includes a look-up table stored in read-only memory having the identification address of the component residing on the first partition 502. Accordingly, the bus controller 512 can utilize a comparator to compare the addresses of the components sending the message over the bus 510 to determine the origin of the message. Only messages that have been authenticated to have originated from the first partition 502 are stored in the message queue 514. Bus controller 512 is configured to send the queued messages in message queue 514. As a result, the bus controller 512 prevents the components of the second partition 516 from adding messages to the message queue 514, so that the hardware circuitry of the bus controller 512 Restricts communicating with or accessing components of the first partition 502 (eg, CPU 504 and memory 506).
図2Aで説明されたコンピュータ・システム・アーキテクチャは、限定することなく、大型メインフレーム・コンピュータ、パーソナル・コンピュータ、パッド、タブレット、及びスマートフォンを含む、様々なコンピューティング・デバイスに適用され得る。さらに、コンピュータ・システム・アーキテクチャは、新しい製品に適用され得、又は既存のコンピュータ設計に適合させ得る。図2Aで説明されたコンピュータ・アーキテクチャは、1組のチップとして開示されるが、その技法は、コンピュータ・システムが、本明細書で開示される原理に従って設計されるならば、2つの別個のコンピュータ・システムを有するシステムに適用されてよい。2つの別個のコンピュータ・システムを有する実施形態では、(第1のパーティションのそれと同様の役割を有する)第1のコンピュータ・システムは、悪意あるコードから保護される重要なデータ・ファイルを記憶し、一方、(第2のパーティションのそれと同様の役割を有する)第2のコンピュータ・システムは、リモート端末と通信する。さらに、第1のコンピュータ・システムは、第2のコンピュータ・システムに直接的に接続される。 The computer system architecture described in FIG. 2A may be applied to a variety of computing devices, including, without limitation, large mainframe computers, personal computers, pads, tablets, and smartphones. Further, the computer system architecture can be applied to new products or adapted to existing computer designs. Although the computer architecture described in FIG. 2A is disclosed as a set of chips, the technique is based on two separate computers if the computer system is designed according to the principles disclosed herein. -It may be applied to a system having a system. In embodiments having two separate computer systems, the first computer system (having a role similar to that of the first partition) stores important data files that are protected from malicious code; On the other hand, a second computer system (having a role similar to that of the second partition) communicates with the remote terminal. Further, the first computer system is directly connected to the second computer system.
次に図3Aを参照すると、第1のパーティション及び第2のパーティションのメモリ・アドレッシングが、示されている。(図2Aに示されるメモリ106における)第1のパーティションのメモリ・アドレッシング700は、少なくとも1つのプログラム・コード用アドレス・ブロック702と、少なくとも1つの第1のパーティション・データ用アドレス・ブロック704と、少なくとも1つの第2のパーティション・データ用アドレス・ブロック706とを含む。好適な実施形態では、第1のパーティションのメモリ・アドレッシング700の各アドレス・ブロックに対するデータの書き込み及び読み取りは、使用可能なメモリ・アドレッシング空間を物理的に限定するように、第1のパーティションのCPUを設計することによって制限される。例えば、32ビット又は64ビット・アドレッシングをサポートするCPUは、コンピュータ実行可能コードを実行するためのオペレーティング・システムのアクセスを、プログラム・コード用アドレスにマッピングされたビットに限定することができる。結果として、第1のパーティション・データ用アドレス・ブロック704及び第2のパーティション・データ用アドレス・ブロック706上に配置された悪意あるコンピュータ実行可能コードは、そのようなデータ・ファイルのいくつかに、有効なコンピュータ実行可能コードであることを示すフラグが立てられていることがあっても、オペレーティング・システムによって実行されない。さらに、第1のパーティションのCPUは、第2のパーティションから読み取られたいかなるデータも、第2のパーティション・データ用アドレス・ブロック706にだけ書き込み、それは、実行のために使用され得ない。この設計は、第2のパーティション内の悪意あるコンピュータ実行可能コードが、第1のパーティションのメモリ・アドレッシング700のプログラム・コード用アドレス・ブロック702に書き込まれることを防止する。ハードウェア設計のさらなる利点は、書き込みコマンド及び読み取りコマンドのアドレス範囲が、悪意あるコンピュータ実行可能コードによって悪影響を及ぼされ得ないことであるが、その理由は、メモリ・アドレス範囲に悪影響を及ぼすためには、第1のパーティションのCPUが、物理的に変更される必要があるからである。第1のパーティションのアドレッシングを分離す
るために、3つの別個のメモリを利用することも可能であることは、当業者に明らかである。
Referring now to FIG. 3A, the memory addressing of a first partition and a second partition is shown. The memory addressing 700 of the first partition (in the memory 106 shown in FIG. 2A) includes at least one address block 702 for program code, at least one address block 704 for first partition data, And at least one second partition data address block 706. In a preferred embodiment, writing and reading data to and from each address block of the first partition's memory addressing 700 is such that the CPU of the first partition is physically limited to the available memory addressing space. Is limited by the design. For example, a CPU that supports 32-bit or 64-bit addressing may limit operating system access to execute computer-executable code to bits mapped to addresses for program code. As a result, malicious computer-executable code located on the first partition data address block 704 and the second partition data address block 706 may cause some such data files to contain: The flag may indicate that it is valid computer-executable code, but will not be executed by the operating system. Further, the CPU in the first partition writes any data read from the second partition only to the second partition data address block 706, which cannot be used for execution. This design prevents malicious computer-executable code in the second partition from being written into the program code address block 702 of the first partition's memory addressing 700. A further advantage of the hardware design is that the address ranges of write and read commands cannot be adversely affected by malicious computer-executable code because memory address ranges are adversely affected. This is because the CPU of the first partition needs to be physically changed. It will be apparent to those skilled in the art that three separate memories could be utilized to separate the addressing of the first partition.
また別の程度のハードウェア保護が、プログラム・コード用アドレス・ブロック702内のプログラムに対して実施され得る。これは、頻繁には更新されず、プログラム・コード用アドレス・ブロック702内のプログラムと関連付けられた、非常に重要なデータ・ファイルを含むことができる。プログラム・コード用アドレス・ブロック702の内容を更新するためのアクセスは、第1のパーティション100に直接的に接続されたデバイスに限定される。CPU104、バス102、及びI/Oモジュール110の組み合わせは、オプションのハードウェア・スイッチを用いて、プログラム・コード用アドレス・ブロック702の内容を変更できるようになるには、権限を与えられた人員によってスイッチをオンにする必要があるように、制御され得る。結果として、プログラム・コード用アドレス・ブロック702に対するいかなる更新も、更新を提供する直接的に接続されたデバイスにおける権限を与えられた人員によるアクセスと、スイッチをオンにする権限を与えられた人員による独立したアクションとの両方を必要とする。非常に安全なシステムのために、この設計は、権限を与えられた直接的に接続されたユーザであっても、プログラム・コード用アドレス・ブロック702内に記憶されたプログラム又は非常に重要なデータを変更しようと不適切に(不注意から、又は意図的に)試みる場合には、それを防止する、より高い程度の保護を提供する。 Yet another degree of hardware protection may be implemented for programs in the address block 702 for program code. This may include very important data files that are not updated frequently and are associated with the program in the address block 702 for program code. Access to update the contents of the program code address block 702 is limited to devices directly connected to the first partition 100. The combination of CPU 104, bus 102, and I / O module 110 may be switched by authorized personnel to allow the contents of program code address block 702 to be changed using optional hardware switches. Can be controlled to need to be turned on. As a result, any updates to the address block 702 for the program code will be accessed by authorized personnel at the directly connected device providing the updates and by authorized personnel to switch on. Requires both independent actions. For a very secure system, this design ensures that even authorized and directly connected users, programs or very important data stored in the program code address block 702 can be used. Provide a higher degree of protection to prevent inadvertent (inadvertent or intentional) attempts to change
対照的に、第2のパーティションのCPUは、第2のパーティションのメモリ・アドレス800を対象にした読み取り及び書き込みに限定される。例示的なハードウェア制限は、第2のパーティションのCPUの物理的制御ワイヤを、第2のパーティションのメモリ・アドレス800を備える物理的メモリ・コンポーネントに制限することを含む。図3Aに示されるように、データ又はプログラム・コードは、当技術分野において知られた技法を利用して、第2のパーティションのメモリ・アドレス800のアドレス範囲全体を対象にして読み取られ得、又は書き込まれ得る。しかしながら、第2のパーティションのCPUは、第1のパーティションのメモリ・アドレスにアクセスすること、又はそれを変更することを、ハードウェア的に制限される。上で説明されたように、第2のパーティションのCPUは、メモリ・コントローラを利用して、ハードウェア的に制限され得る。メモリ・コントローラは、メモリ内に記憶された第1のパーティションのメモリにアクセスすること、又はそれを変更することを制限された、デバイスのアドレスを含む。例えば、第2のパーティションのCPUのデバイス・アドレスが、記憶され得る。結果として、メモリ・コントローラは、比較器又は当技術分野において知れた他の技法を使用して、第1のパーティションのメモリが、制限されたデバイス・アドレスからの要求に応答できないようにすることができる。この設計は、第2のパーティションのCPUが、インターネットを通してリモート端末から来た第2のパーティションに悪影響を及ぼした悪意あるコンピュータ実行可能コードを、第1のパーティションに書き込むことを防止する。さらに、第1のパーティションのCPUは、第2のパーティションのメモリ・アドレス800に直接的にアクセスすることができ、それは、第1のパーティションと第2のパーティションとを相互接続するバス上でのアクティビティによって引き起こされる遅延を回避することによって、第1のパーティションのCPUの読み取り及び書き込み性能を向上させる。第1のパーティションのCPUは、メモリ・アドレス800から読み取って、第2のパーティションから読み取られたデータに専用される第2のパーティション・データ用アドレス・ブロック706にだけ入れることができる。 In contrast, the CPU in the second partition is limited to reading and writing to memory address 800 in the second partition. Exemplary hardware limitations include limiting the physical control wires of the second partition's CPU to the physical memory component comprising the second partition's memory address 800. As shown in FIG. 3A, data or program code may be read across the address range of the second partition memory address 800 using techniques known in the art, or Can be written. However, the CPU in the second partition is hardware restricted from accessing or changing the memory address of the first partition. As explained above, the CPU of the second partition may be hardware limited using a memory controller. The memory controller includes an address of the device that is restricted from accessing or modifying the memory of the first partition stored in the memory. For example, the device address of the CPU of the second partition may be stored. As a result, the memory controller may use comparators or other techniques known in the art to prevent the memory of the first partition from responding to requests from a restricted device address. it can. This design prevents the CPU in the second partition from writing to the first partition malicious computer executable code that has adversely affected the second partition coming from a remote terminal through the Internet. Further, the CPU of the first partition has direct access to the memory address 800 of the second partition, which is the activity on the bus that interconnects the first and second partitions. By improving the read and write performance of the CPU in the first partition by avoiding the delay caused by the first partition. The CPU in the first partition can read from memory address 800 and enter only into the second partition data address block 706 dedicated to data read from the second partition.
図3Aに関して、アドレス範囲は、1つ又は複数のメモリ・ユニットの一部に割り当てられ得、又はメモリ・ユニットの全体を含むことができる。プログラム・コード702は、コンピュータ実行可能コードと、関連する非常に重要なデータとを含む。プログラム・コード702へのアクセスは、メモリ・コントローラを利用して、制限され得る。メモリ
・コントローラは、制限された動作の送信先メモリ・アドレスへのマッピングを用いて、送信元アドレスと要求された動作(読み取り、書き込み、読み取り、リセット)とを比較することができる。結果として、メモリ・コントローラは、制限された動作が要求された場合、プログラム・コード・アドレスにマッピングするメモリ・ユニット又はメモリ・ユニットの一部を無効化することができる。プログラム・コード・アドレスが、単一のメモリ・ユニットにマッピングされる、実施形態では、メモリ・ユニットの書き込み制御線は、その線をグランド又はスイッチに接続することによって、無効化され得る。
Referring to FIG. 3A, the address range may be assigned to a portion of one or more memory units, or may include the entire memory unit. Program code 702 includes computer-executable code and associated critical data. Access to program code 702 may be restricted using a memory controller. The memory controller can use the mapping of the restricted operation to the destination memory address to compare the source address with the requested operation (read, write, read, reset). As a result, the memory controller can invalidate a memory unit or a portion of a memory unit that maps to a program code address if limited operation is required. In embodiments where the program code address is mapped to a single memory unit, the write control line of the memory unit can be disabled by connecting that line to ground or a switch.
図3Aは、3つのアドレス範囲を含む、第1のパーティションのメモリ・アドレスを示しているが、2つ以上のアドレス範囲が、使用されてよい。図3Bは、第1のパーティションのメモリ・アドレッシング708が、プログラム・コード用アドレス範囲710と、第1のパーティション・データ用アドレス・ブロック712との、2つのアドレス・ブロックを含む、構成を示している。この構成では、プログラム・コード用アドレス・ブロック710は、第1のパーティションのCPUによって実行されてよいコードを記憶するために使用される。第1のパーティション・データ用アドレス・ブロック712は、第1のパーティションのCPUによる実行用ではない他のデータを記憶するために使用される。第1のパーティション・データ用アドレス・ブロック712は、第2のパーティションから第1のパーティション上に読み取られるデータを記憶するためにも使用される。 Although FIG. 3A shows the memory addresses of the first partition, including three address ranges, more than one address range may be used. FIG. 3B shows a configuration in which the memory addressing 708 of the first partition includes two address blocks: an address range 710 for program code and an address block 712 for the first partition data. I have. In this configuration, the program code address block 710 is used to store code that may be executed by the CPU in the first partition. The first partition data address block 712 is used to store other data that is not intended for execution by the CPU of the first partition. The first partition data address block 712 is also used to store data read from the second partition onto the first partition.
図4は、第1のパーティション上に配置されたデータ・ファイルを獲得する、第2のパーティションの方法を表す、フローチャートを示している。最初に、工程902において、第1のパーティションのCPUは、第2のパーティションのCPUを用いて、現在のデータ要求を定期的にチェックする。データ要求は、データのアイテムを獲得するための要求、データのアイテムを更新するための要求、又は第1のパーティションによるアクション、例えば、1つの口座から別の口座への資金の送金、もしくは建物内における温度設定の変更を要求するための要求とすることができる。次に、工程904において、第1のパーティション上に存在するプログラムが、データ要求の正当性を検証する。上で説明されたように、第1のパーティション上に存在するプログラムは、インターネット及び他の任意のネットワークからの悪意あるコンピュータ実行可能コードによる感染から、ハードウェア的に保護される。第1のパーティション上に存在するプログラムによって検証されたデータ要求の場合、方法は、工程910に進む。そうではなく、検証が失敗した場合、方法は、工程906に進む。工程906において、第1のパーティションのCPUは、工程904において検出されたいずれかの疑わしいアクティビティに起因して、第1のパーティションに直接的に接続された権限を与えられた個人による確認を要求することができる。第1のパーティションに直接的に接続された権限を与えられた個人が、データ要求を確認した場合、方法は、工程910に進む。そうではない場合、方法は、工程908に進む。工程908において、第1のパーティションのCPUは、データ要求が拒否されたことを、権限を与えられた個人に警告し、別のデータ要求に着手する。検証及び/又は確認に続いて、工程910において、第1のパーティションのCPUは、データ・ファイルにアクセスし、データの適用可能な要素を第2のパーティションに提供する。この設計下では、第2のパーティションは、第1のパーティション上のいかなる重要なデータ・ファイルに対する直接アクセスも獲得することはできない。上で説明されたように、好適な実施形態において開示されるコンピュータ・システム・アーキテクチャのハードウェアは、データ・ファイルを第1のパーティションから送るためのコマンドが、第2のパーティションによって制御され得ないように構築される。結果として、第2のパーティション上に配置されたいかなる悪意あるコードも、悪意あるコードを第1のパーティションの実行可能コード内に入れることはできず、したがって、いかなる重要なデータ・ファイルにもアクセスすることができず、又はそれらに悪影響を及ぼすことができない。 FIG. 4 shows a flow chart depicting a second partition method of obtaining a data file located on a first partition. First, in step 902, the CPU in the first partition periodically checks for current data requests with the CPU in the second partition. The data request may be a request to obtain an item of data, a request to update an item of data, or an action by a first partition, such as remittance of funds from one account to another, or in a building. For requesting a change in the temperature setting in. Next, in step 904, the program residing on the first partition verifies the validity of the data request. As described above, the programs residing on the first partition are hardware protected from infection by malicious computer-executable code from the Internet and any other networks. For a data request verified by a program residing on the first partition, the method proceeds to step 910. Otherwise, if the verification fails, the method proceeds to step 906. In step 906, the CPU of the first partition requests confirmation by an authorized individual directly connected to the first partition due to any suspicious activity detected in step 904. be able to. If the authorized individual directly connected to the first partition confirms the data request, the method proceeds to step 910. If not, the method proceeds to step 908. In step 908, the CPU in the first partition alerts the authorized individual that the data request has been denied and initiates another data request. Following verification and / or verification, at step 910, the CPU of the first partition accesses the data file and provides the applicable elements of the data to the second partition. Under this design, the second partition cannot gain direct access to any important data files on the first partition. As described above, the hardware of the computer system architecture disclosed in the preferred embodiment is such that commands for sending data files from the first partition cannot be controlled by the second partition. To be built. As a result, any malicious code located on the second partition cannot put the malicious code inside the executable code of the first partition, and therefore has access to any important data files. Or cannot adversely affect them.
第1のパーティションを保護するのに加えて、好適な本実施形態は、第1のパーティシ
ョンが、悪意あるコンピュータ実行可能コードによって悪影響を及ぼされた第2のパーティションのデータ・ファイルを回復することを可能にすることができる。悪意あるコンピュータ実行可能コードは、第2のパーティション、ならびにスクリーン及びキーボードに対するそれの制御を混乱させることができ、それによって、ユーザが、第2のパーティションを通してリモート端末にアクセスすることを妨げる。1実施形態では、第1のパーティションは、キーストローク・シーケンスを利用して、第1のパーティションに直接的に接続されたユーザが、悪意あるコンピュータ実行可能コードによって悪影響を及ぼされたセカンダリ・パーティションのスクリーン及びキーボードの制御ならびにプログラム制御を行うように、第1のパーティションのCPUに命令することを可能にする、ハードウェア機能を含む。第1のパーティションに直接的に接続された権限を与えられたユーザは、第1のパーティションを通して、第2のパーティション上の保護ソフトウェアを開始することができる。ユーザは、第2のパーティションのメモリ及び/もしくはデータ・ファイルを完全に消去して、悪意あるコンピュータ実行可能コードを削除するように、又は第2のパーティションを、そのような悪意あるコードのない以前にセーブされた状態に回復するように、第1のパーティションに命令することもできる。この実施形態では、第2のパーティションのオペレーティング・システム及びアプリケーションは、第1のパーティションによって記録される。結果として、第1のパーティションは、悪意あるコンピュータ実行可能コードを削除した後、第2のパーティションのオペレーティング・システム及びアプリケーションを回復することができる。第2のパーティションは、悪意あるコードの削除後、動作可能になり、それによって、コンピューティング・デバイスのための、リモート端末へのアクセスを可能にする。
In addition to protecting the first partition, the preferred embodiment provides that the first partition recovers data files of the second partition that have been adversely affected by malicious computer executable code. Can be made possible. Malicious computer-executable code can disrupt the second partition and its control over the screen and keyboard, thereby preventing a user from accessing a remote terminal through the second partition. In one embodiment, the first partition utilizes a keystroke sequence to prevent a user directly connected to the first partition from accessing a secondary partition affected by malicious computer executable code. Includes hardware features that allow the CPU of the first partition to be commanded to perform screen and keyboard control as well as program control. Authorized users directly connected to the first partition can start the protection software on the second partition through the first partition. The user may completely erase the memory and / or data files of the second partition to remove malicious computer-executable code, or change the second partition to a location free of such malicious code. The first partition may be instructed to recover to the state saved in the first partition. In this embodiment, the operating system and applications of the second partition are recorded by the first partition. As a result, the first partition can recover the operating system and applications of the second partition after removing malicious computer executable code. The second partition becomes operational after removal of the malicious code, thereby allowing access to a remote terminal for the computing device.
加えて、好適な実施形態は、様々なタイプの保護ソフトウェアを導入することを現実的にする。上で説明されたように、好適な実施形態は、悪意あるコンピュータ実行可能コードが、第1のパーティションのプログラム・コード又はデータ・ファイルにアクセスし、悪影響を及ぼすことを防止するために、様々なハードウェア方法を利用する。そのような方法は、限定することなく、第1のパーティションのインターネットを通したリモート端末への直接アクセスを防止すること、及び第1のパーティションのメモリ・アドレッシングを制限することを含む。この設計は、第2のパーティションからの第1のパーティションのデータ・ファイルを求める要求を制限するが、コンピューティング・デバイスの他の態様は、当技術分野において知られた通常のコンピュータ・システムのように動作する。例えば、第1のパーティションのCPUが、第2のパーティションからデータを読み取ったとき、第1のパーティションのCPUは、データの個々のアイテムが第2のパーティションに送り戻されることを求める要求をしばしば受け取る。この要求された情報は、その後、第2のパーティションによって、ネットワーク上でリモート端末に転送され得る。好適な実施形態は、そのようなデータ要求が、個別に、又はある期間にわたるまとまりとして、疑わしくないかどうかをチェックするために、保護プログラムが第1のパーティションのCPUによって実行されることを可能にする。例示的な疑わしいデータ要求は、第1のパーティション上のソフトウェアによって財務情報にマッピングされた重要なデータ・ファイルを第2のパーティション上のプログラムが要求するものである。結果として、第1のパーティションのCPUは、疑わしいアクティビティが検出された場合、第1のパーティションに直接的に接続された権限を与えられた個人の介入を求める要求を含む、適切な検証の手段を開始することができる。さらなる例では、第1のパーティションのハードウェア保護されたプログラム・コードは、ファイル全体又は重要なデータ・ファイルのフル・セットの代わりに、データの特定のアイテムだけを第2のパーティションに送るようにプログラムされる。例示的なプログラムは、パスワード及びクレジットカードのセキュリティ・コードなどの機密データを第2のパーティションに送ることを、拒否することもできる。知られたシステムでは、悪意あるコンピュータ実行可能コードは、重要なデータ・ファイルに直接的にアクセスすることができ、保護プログラムを改変することができるので、そのようなプログラムは、現実的ではない。 In addition, the preferred embodiments make it practical to implement various types of protection software. As described above, the preferred embodiment employs various methods to prevent malicious computer executable code from accessing and adversely affecting program code or data files in the first partition. Utilize hardware methods. Such methods include, without limitation, preventing direct access of a first partition to a remote terminal through the Internet, and limiting memory addressing of the first partition. While this design limits requests for data files in the first partition from the second partition, other aspects of the computing device are similar to ordinary computer systems known in the art. Works. For example, when a CPU in a first partition reads data from a second partition, the CPU in the first partition often receives requests for individual items of data to be sent back to the second partition. . This requested information can then be transferred over the network to the remote terminal by the second partition. The preferred embodiment allows a protection program to be executed by the CPU in the first partition to check whether such data requests are suspicious, individually or as a unit over a period of time. I do. An exemplary suspicious data request is one in which a program on a second partition requests an important data file mapped to financial information by software on a first partition. As a result, the CPU of the first partition may take appropriate verification measures, including a request for the involvement of an authorized individual directly connected to the first partition, if suspicious activity is detected. You can start. In a further example, the hardware protected program code of the first partition may send only specific items of data to the second partition instead of the entire file or a full set of important data files. Be programmed. The example program may also refuse to send sensitive data, such as passwords and credit card security codes, to the second partition. In known systems, such computer programs are not realistic because malicious computer-executable code has direct access to important data files and can modify protected programs.
本明細書で開示される原理は、アプリケーションのためのハードウェア「サンドボックス」を生成することによって、モバイル・デバイスのアーキテクチャに組み込まれてもよい。現在、いくつかのセルフォン用オペレーティング・システム上で使用されている、ソフトウェア「サンドボックス」と同様に、これは、他の重要なメモリへのアクセスを制限しながら、いくつかの機能及びデータへのアクセスをアプリケーションに許可する。それら既存の方法とは異なり、この実施形態は、悪意あるコンピュータ実行可能コードのアクセスに対するハードウェア制限を提供する。すべての補助プログラムは、セカンダリ・パーティション内にロードされるので、重要なデータ及びオペレーティング・システム自体は、いかなるアプリケーションによる改変からも保護され得る。 The principles disclosed herein may be incorporated into the architecture of a mobile device by creating a hardware “sandbox” for the application. Similar to the software "sandbox" currently used on some cellphone operating systems, this provides access to some functions and data while limiting access to other critical memory. Grant access to the application. Unlike those existing methods, this embodiment provides a hardware restriction on the access of malicious computer executable code. Since all auxiliary programs are loaded into the secondary partition, important data and the operating system itself can be protected from modification by any application.
加えて、本明細書で開示される原理は、それのプライマリ・インターフェースが、コンピューティング以外の機能用である、ネットワーク接続されたデバイスを保護するために使用され得る。冷蔵庫及びエアコンなどの家電は、インターネットに接続するように設計されることが増えている。そのようなデバイスも、インターネット上で、又はネットワークを通して受け取られた、悪意あるコンピュータ実行可能コードから、プライマリ・パーティションの機能を遮蔽するために、好適な実施形態のコンピュータ・システム・アーキテクチャを用いるように設計され得る。他の「スマート・ホーム」及び「スマート・ビルディング」デバイス、ならびに乗物内のコンピュータ対応のコンソールも、対応するコンピュータ・システム・アーキテクチャの使用を行ってよい。 In addition, the principles disclosed herein may be used to protect a networked device whose primary interface is for functions other than computing. Home appliances such as refrigerators and air conditioners are increasingly being designed to connect to the Internet. Such devices also use the preferred embodiment computer system architecture to shield the function of the primary partition from malicious computer executable code received over the Internet or over a network. Can be designed. Other "smart home" and "smart building" devices, as well as computer-enabled consoles in vehicles, may make use of corresponding computer system architectures.
好適な実施形態は、統合された新しいコンピュータ・システム・アーキテクチャに関連して説明されたが、本明細書で開示される原理は、好適な実施形態の主要な機能を利用するハードウェア及びソフトウェアの組み合わせと併せて、既存のアーキテクチャを利用する、コンピューティング・デバイスに適合され得る。そのような実施形態は、既存のコンピュータに大きな投資を行っており、それらを使用し続けたいが、ハッキングに対する改善された保護を望んでいるユーザに対して、有益なことがある。1実施形態では、統合されたシステムの第1のパーティションは、重要なファイル及びプログラムのほとんどを保有することができる、既存のコンピュータに接続され得る。結果として、そのコンピュータは、統合されたシステムの第1のパーティションについて上で説明されたように、インターネット及び他の外部ソースから隔離される。第1のパーティションは、バス又はI/Oモジュールを通して、コンピュータと通信し、それに対する読み取り及び書き込みを行うことができ、コンピュータは、ハードウェア及びオペレーティング・システムによって、マルウェアから保護される。 Although the preferred embodiment has been described with reference to an integrated new computer system architecture, the principles disclosed herein are not limited to hardware and software that utilize key features of the preferred embodiment. It can be adapted to computing devices that utilize existing architectures, in conjunction with combinations. Such embodiments may be beneficial for users who have invested heavily in existing computers and want to keep using them, but want improved protection against hacking. In one embodiment, the first partition of the integrated system can be connected to an existing computer that can hold most of the important files and programs. As a result, the computer is isolated from the Internet and other external sources, as described above for the first partition of the integrated system. The first partition can communicate with and read from and write to the computer through the bus or I / O module, and the computer is protected from malware by the hardware and operating system.
第1のコンピュータ1300及び第2のコンピュータ1400を備える、別の代替的実施形態が、図5に示されている。第1のコンピュータ1300及び第2のコンピュータ1400は、当技術分野において知られたコンピュータ・アーキテクチャ、例えば、x86、ARM、及びPowerPCを利用する。そのため、第1のコンピュータ1300及び第2のコンピュータ1400は、コンピュータ実行可能コードを実行するためのオペレーティング・システムを含む。上で説明されたように、これらの知られたアーキテクチャの不都合は、第1のコンピュータ1300及び第2のコンピュータ1400のプロセッサが、重要なデータ・ファイルにアクセスし、悪影響を及ぼすことができる、インターネットから受け取った悪意あるコンピュータ実行可能コードの実行を許しやすいことである。さらに、そのような悪意あるコンピュータ実行可能コードは、知られたソフトウェア・ソリューションの裏をかくことができる。本実施形態では、第2のコンピュータ1400は、インターネットに接続することができる。結果として、第2のコンピュータ1400は、インターネットからの悪意あるコンピュータ実行可能コードの影響を受けやすい。しかしながら、第1のコンピュータ1300は、インターネットに接続されず、コンピューティング・デバイス1000を通して、第2のコンピュータ1400に相互接続される。第1
のコンピュータ1300は、図6Aを参照して以下で詳細に説明されるように、オペレーティング・システム手法の使用を通して、ある程度の保護を達成することができる。しかしながら、そのような保護は、限定的であり、巧妙なハッカによるセキュリティ侵害を受けやすい。好適な本実施形態のハードウェア設計及び技法を使用して、第2のコンピュータ1400に悪影響を及ぼすいかなる悪意あるコンピュータ実行可能コードからも第1のコンピュータ1300を保護する、コンピューティング・デバイス1000も利用したほうが、はるかに高度な保護が得られる。コンピューティング・デバイス1000は、上で説明された完全に統合されたシステムのアーキテクチャの多くを具体化して、第1のコンピュータ1300が、第2のコンピュータ1400によってインターネットから受け取られたデータ及び要求を、第1のコンピュータ1300上でのハッキングの試みに耐える方法で、取り扱うことを可能にする。
Another alternative embodiment comprising a first computer 1300 and a second computer 1400 is shown in FIG. First computer 1300 and second computer 1400 utilize computer architectures known in the art, for example, x86, ARM, and PowerPC. As such, first computer 1300 and second computer 1400 include an operating system for executing computer-executable code. As explained above, the disadvantages of these known architectures are that the processors of the first computer 1300 and the second computer 1400 can access and adversely affect important data files on the Internet. To allow the execution of malicious computer-executable code received from Microsoft. Moreover, such malicious computer-executable code can outwit known software solutions. In this embodiment, the second computer 1400 can connect to the Internet. As a result, the second computer 1400 is susceptible to malicious computer executable code from the Internet. However, first computer 1300 is not connected to the Internet, but is interconnected to second computer 1400 through computing device 1000. First
Computer 1300 can achieve some protection through the use of operating system techniques, as described in detail below with reference to FIG. 6A. However, such protection is limited and susceptible to security breaches by sophisticated hackers. Utilizing the computing device 1000 to protect the first computer 1300 from any malicious computer-executable code that adversely affects the second computer 1400 using the hardware design and techniques of the preferred embodiment. This gives you a much higher level of protection. Computing device 1000 embodies many of the fully integrated system architectures described above, in which first computer 1300 transmits data and requests received by the second computer 1400 from the Internet. It can be handled in a manner that withstands hacking attempts on the first computer 1300.
図5に示されるように、コンピューティング・デバイス1000は、第1のパーティション1100と、第2のパーティション1200とを備える。第2のパーティション1200は、CPU1204と、メモリ1206と、データ・ストア1208と、I/Oモジュール1212とを備え、それらは、バス1202によって相互接続される。CPU1204は、データ・ストア1208及び/又はメモリ1206上に配置されたオペレーティング・システムを実行して、I/Oモジュール1212を通して、第2のコンピュータ1400と通信する。I/Oモジュール1212は、USBポート、eSATA、WiFi、又はコンピューティング・デバイス1000を第2のコンピュータ1400に接続するための他の任意の知られた通信インターフェースとすることができる。この実施形態では、ソフトウェアは、第2のコンピュータ1400上で動作しており、それは、CPU1204が、第2のコンピュータ1400からデータを受け取ることを可能にする。CPU1204によって第2のコンピュータ1400から読み取られたデータ・ファイルは、メモリ1206及び/又はデータ・ストア1208上に記憶される。CPU1204は、第1のコンピュータ1300と直接的に通信することを、ハードウェア的に制限される。1実施形態では、バス1002は、図3Cを参照して上で説明されたバス・コントローラ技法を利用して、第2のコンピュータ1400が、第1のコンピュータ1300のCPU及びメモリにアクセスすることを制限することができる。第2のパーティション1200は、通信モジュール1210をさらに備える。通信モジュール1210は、第2のパーティション1200が、インターネットなどのネットワークを通して通信することを可能にする。結果として、通信モジュール1210は、インターネットからのデータにアクセスするために、第2のコンピュータ1400を利用する代わりに、インターネットからのデータにアクセスするために、第1のコンピュータ1300によって利用され得る。 As shown in FIG. 5, the computing device 1000 includes a first partition 1100 and a second partition 1200. The second partition 1200 comprises a CPU 1204, a memory 1206, a data store 1208, and an I / O module 1212, which are interconnected by a bus 1202. CPU 1204 executes an operating system located on data store 1208 and / or memory 1206 to communicate with second computer 1400 through I / O module 1212. I / O module 1212 may be a USB port, eSATA, WiFi, or any other known communication interface for connecting computing device 1000 to second computer 1400. In this embodiment, the software is running on a second computer 1400, which allows the CPU 1204 to receive data from the second computer 1400. Data files read from second computer 1400 by CPU 1204 are stored on memory 1206 and / or data store 1208. The CPU 1204 is limited in hardware from directly communicating with the first computer 1300. In one embodiment, the bus 1002 uses the bus controller technique described above with reference to FIG. 3C to allow the second computer 1400 to access the CPU and memory of the first computer 1300. Can be restricted. The second partition 1200 further includes a communication module 1210. Communication module 1210 enables second partition 1200 to communicate over a network such as the Internet. As a result, communication module 1210 may be utilized by first computer 1300 to access data from the Internet, instead of utilizing second computer 1400 to access data from the Internet.
コンピュータ1300及びコンピューティング・デバイス1000は、キーボード、データ記憶デバイス、及びプリンタなどの入力/出力デバイスに直接的に相互接続される。大規模使用のための実施形態では、コンピュータ1300及びコンピューティング・デバイス1000は、直接的な配線によって、コンピューティング・デバイスのユーザの制御下にある物理的ロケーションに存在する、より小型のコンピュータ又はPCに接続され得る。この実施形態では、ユーザは、より小型のコンピュータ又はPCが、ワイヤ、ケーブル、又はWi−Fiを含む任意の形態のインターネット接続を行えないようにすることができる。コンピューティング・デバイス1000は、ネットワーク上でリモート端末と通信することを、ハードウェア的に制限される。コンピュータ1300は、好適には、他の手段によって、例えば、コンピュータ1300のオペレーティング・システムにおいてリモート接続を行えないようにすることによって、ネットワーク上でリモート端末と通信することを制限される。 Computer 1300 and computing device 1000 are directly interconnected with input / output devices such as a keyboard, data storage device, and printer. In an embodiment for large-scale use, the computer 1300 and the computing device 1000 are connected by direct wiring to a smaller computer or PC located at a physical location under the control of the user of the computing device. Can be connected to In this embodiment, the user can prevent a smaller computer or PC from making any form of Internet connection, including wire, cable, or Wi-Fi. Computing device 1000 is hardware restricted from communicating with remote terminals over a network. Computer 1300 is preferably restricted from communicating with remote terminals over a network by other means, such as by disabling remote connections in the operating system of computer 1300.
第1のコンピュータ1300は、第1のパーティション1100のI/Oモジュール1110に直接的に接続される。I/Oモジュール1110は、USBポート、eSATA
、又はコンピューティング・デバイス1000を第1のコンピュータ1300に接続するための任意の知られた通信インターフェースとすることができる。第1のパーティション1100は、CPU1104と、メモリ1106と、少なくとも1つのデータ・ストア1108とをさらに備え、それらは、バス1102によって相互接続される。図3Aを参照して上で詳細に説明されたように、CPU1104は、メモリ1106のプログラム・コード用アドレス範囲、及びデータ・ストア1108上に記憶されたコンピュータ実行可能コードだけを実行することができる。これは、(本実施形態によって、それ自体がマルウェアから保護された)CPU1104のオペレーティング・システムによる、及びハードウェア回路による制御を通して達成される。
The first computer 1300 is directly connected to the I / O module 1110 of the first partition 1100. The I / O module 1110 is a USB port, eSATA
, Or any known communication interface for connecting the computing device 1000 to the first computer 1300. First partition 1100 further comprises a CPU 1104, a memory 1106, and at least one data store 1108, which are interconnected by a bus 1102. As described in detail above with reference to FIG. 3A, CPU 1104 can execute only the address ranges for program codes in memory 1106 and computer-executable code stored on data store 1108. . This is achieved through the control of the operating system of the CPU 1104 (which is itself protected from malware by this embodiment) and by hardware circuits.
この実施形態では、ソフトウェアは、第1のコンピュータ1300上で動作しており、それは、CPU1104が、データを送り、第1のコンピュータ1300からデータを受け取ることを可能にする。ソフトウェアは、第1のコンピュータ1300のユーザが、第1のコンピュータ1300のためのメモリのエリアを、重要なプログラムと、重要なデータ・ファイルと、コンピューティング・デバイス1000から受け取ったデータ及び要求とに区分することを可能にする。加えて、ソフトウェアは、第1のコンピュータ1300のCPUが、コンピューティング・デバイス1000から受け取ったファイルを有するメモリ・セグメントに対する実行制御を引き渡すことを防止する。実行制御からメモリ・セグメントを分離するためのコンピュータ・セキュリティの1例は、サンドボックス・セキュリティ・メカニズムの使用である。第1のパーティション1100は、バス1002を通して、第2のパーティション1200に直接的に相互接続される。CPU1104は、第2のパーティション1200のメモリ1206のアドレス範囲全体及びデータ・ストア1208に書き込むことができる。加えて、CPU1104は、メモリ1206のアドレス範囲全体及びデータ・ストア1208からデータを読み取ることができるが、CPU1104による「読み取り」コマンド(プル)だけによって、それを行うことができる。CPU1104は、ハードウェア制限によって、第2のパーティション1200によってそれにプッシュされた、いかなるデータ又は他のファイルも受け入れることはできない。この実施形態では、第1のパーティション1100に直接的に接続された第1のコンピュータ1300上で動作するソフトウェアは、第2のパーティション1200からいずれかのデータをプルするように、CPU1104に要求することができる。CPU1104は、メモリ1106のプログラム・コード用アドレス範囲及びデータ・ストア1108上に記憶されたコンピュータ実行可能コードだけしか実行できないので、コンピューティング・デバイス1000の第1のパーティション1100は、第2のコンピュータ1400又はメモリ1206上に記憶されたいかなる悪意あるコンピュータ実行可能コードからも保護される。 In this embodiment, the software is running on a first computer 1300, which allows the CPU 1104 to send data and receive data from the first computer 1300. The software allows the user of the first computer 1300 to allocate an area of memory for the first computer 1300 to important programs, important data files, and data and requests received from the computing device 1000. Enables segmentation. In addition, the software prevents the CPU of the first computer 1300 from passing execution control over the memory segment containing the file received from the computing device 1000. One example of computer security for separating memory segments from execution control is the use of a sandbox security mechanism. First partition 1100 is interconnected directly to second partition 1200 via bus 1002. The CPU 1104 can write to the entire address range of the memory 1206 and the data store 1208 of the second partition 1200. In addition, the CPU 1104 can read data from the entire address range of the memory 1206 and from the data store 1208, but can do so only by a “read” command (pull) by the CPU 1104. CPU 1104 cannot accept any data or other files pushed into it by second partition 1200 due to hardware limitations. In this embodiment, software running on first computer 1300 directly connected to first partition 1100 may request CPU 1104 to pull any data from second partition 1200. Can be. Since the CPU 1104 can only execute the computer code executable address range stored on the data store 1108 and the program code address range in the memory 1106, the first partition 1100 of the computing device 1000 Or, it is protected from any malicious computer-executable code stored on the memory 1206.
この実施形態では、第1のパーティション1100は、書き込みモジュール1112を利用して、コンピューティング・デバイス1000から受け取ったデータ・ファイルのための、第1のコンピュータ1300上で動作するソフトウェアによって選択されたメモリのセグメントに、データを書き込む。書き込みモジュール1112は、コンピューティング・デバイス1000から受け取ったデータ・ファイルとして区分された、第1のコンピュータ1300のメモリのセグメントをマッピングするための、ハードウェア回路を備える。例示的なハードウェア回路は、コンピューティング・デバイス1000に直接的に接続された権限を与えられたスタッフの制御によってプログラムされ得る、フィールド・プログラマブル・ゲート・アレイ(FPGA)を含む。この実施形態では、コンピューティング・デバイス1000は、イネーブル更新スイッチ1004を備える。イネーブル更新スイッチ1004は、オン位置と、オフ位置とを含む。イネーブル更新スイッチ1004のオン位置は、コンピューティング・デバイス1000から受け取ったデータ・ファイルのためのメモリのセグメントについての、書き込みモジュール1112のハードウェア回路のプログラミングを可能にする。加えて、イネーブル更新スイッチ1004のオン位置
は、コンピューティング・デバイス1000が、データを第1のコンピュータ1300に送ることを防止する。対照的に、イネーブル更新スイッチ1004のオフ位置は、コンピューティング・デバイス1000が、第1のコンピュータ1300上で動作するソフトウェアにデータを送ることを許可する。イネーブル更新スイッチ1004のオフ位置は、書き込みモジュール1112のハードウェア回路に対する権限なしの変更を防止する。コンピューティング・デバイス1000及びコンピュータ1300は、上で説明された追加の保護スイッチ及び保護ソフトウェアも利用することができる。
In this embodiment, the first partition 1100 utilizes the write module 1112 to store memory selected by software running on the first computer 1300 for data files received from the computing device 1000. Write data to the segment. The writing module 1112 includes hardware circuitry for mapping segments of the memory of the first computer 1300 that have been partitioned as data files received from the computing device 1000. Exemplary hardware circuits include a field programmable gate array (FPGA) that can be programmed under the control of authorized staff directly connected to the computing device 1000. In this embodiment, the computing device 1000 includes an enable update switch 1004. Enable update switch 1004 includes an on position and an off position. The on position of the enable update switch 1004 enables programming of the hardware circuitry of the write module 1112 for segments of memory for data files received from the computing device 1000. In addition, the on position of the enable update switch 1004 prevents the computing device 1000 from sending data to the first computer 1300. In contrast, the off position of the enable update switch 1004 allows the computing device 1000 to send data to software running on the first computer 1300. The off position of the enable update switch 1004 prevents unauthorized changes to the hardware circuitry of the write module 1112. Computing device 1000 and computer 1300 may also utilize the additional protection switches and software described above.
いくつかの実施形態では、図5を参照して上で説明された機能に加えて、更新中に第1のパーティションを第2のパーティションのデータから保護するためのさらなる安全機能を開始するために、スイッチが使用される。スイッチがアクティブ化されると、第1のパーティションが、更新工程中に、第2のパーティション上のデータへのアクセスを行わず、第1のパーティションが、第2のパーティションにデータを送ること、又は第2のパーティションからデータを読み取ることができないように、2つのパーティション間の接続が、やはり無効化され得る。通常の動作状態にある通常の動作中、第1のパーティションは、第1のパーティションから第2のパーティションへのフローに対するコマンドを許可するように設定された、論理ゲート又はトランジスタを利用するスイッチを使用し、ハードウェア回路を用いて実施される直接接続を通して、又はバスを通して、第2のパーティションにアクセスすることができる。しかし、更新モード中は、そのアクセスは、(トライステート・ゲート又は任意の種類の切り換え可能バスなどの)スイッチ又はバスを選択し、それを「オフ」位置に動かすことによって、行えないようにされ、したがって、更新工程中、第1のパーティションに追加の保護を提供する。「AND」ゲートは、それの論理条件が満たされた場合、通信を許可する(「TRUE」を読み取る)スイッチ位置によって、トリガされ得る。加えて、第1のパーティションのCPUが、モニタ、キーボード、入力デバイス、プリンタ、及び他の周辺機器などの、任意の接続されたデバイスを制御することを可能にするために、第1のパーティションに直接的に接続された外部デバイスが、利用され得る。これは、「KVM」スイッチの形態を通して実施され得、2つのパーティションが周辺デバイスの使用を共有している場合に、特に有益なことがあり、例えば、第2のパーティション内にマルウェア問題が存在する場合、アクションが第1のパーティション上で独立に行われ得るように、ユーザは、イネーブリング・デバイスをオンにして、第1のパーティションが、マルウェアを避けて、モニタ及びキーボードの制御を行うことを可能にする。 In some embodiments, in addition to the functions described above with reference to FIG. 5, to initiate additional security features to protect the first partition from data in the second partition during an update. , A switch is used. When the switch is activated, the first partition does not access data on the second partition during the update process, and the first partition sends data to the second partition, or The connection between the two partitions may still be invalidated so that data cannot be read from the second partition. During normal operation, in a normal operating state, the first partition uses a logic gate or transistor-based switch set to allow commands for flow from the first partition to the second partition. However, the second partition can be accessed through a direct connection implemented using hardware circuits or through a bus. However, during the update mode, its access is disabled by selecting a switch or bus (such as a tri-state gate or any type of switchable bus) and moving it to the "off" position. , Thus providing additional protection to the first partition during the update process. An "AND" gate may be triggered by a switch position that permits communication (reads "TRUE") if its logical condition is met. In addition, to allow the CPU of the first partition to control any connected devices, such as monitors, keyboards, input devices, printers, and other peripherals, the first partition Externally connected external devices may be utilized. This may be implemented through the form of a “KVM” switch, which may be particularly beneficial if two partitions share the use of peripheral devices, for example, where a malware problem exists in the second partition If so, the user can turn on the enabling device so that the first partition can avoid malware and take control of the monitor and keyboard so that actions can be performed independently on the first partition To
多くの使用について、図5を参照して上で説明されたスイッチは、更新システムにとって重要であり、スイッチがオンでない限り、プログラム・コード・メモリに書き込むことが可能でないように、プログラム・コード用メモリは、論理ゲートなどのデジタル回路を利用して、そのメモリを読み取り専用にする。しかしながら、更新が予想されない、いくつかの使用が存在することがあるが、プログラム・コード用メモリ・アドレス範囲は、改変からハードウェア的に保護されるべきである。代替的実施形態が、利用され得、その中では、スイッチは、省かれ得る。プログラム・コード用メモリ範囲は、製造の工程においてロードされ、その後、ハードウェア回路を用いて、改変から永遠に制限され得る。これは、ハードウェア回路内の論理ゲートなど、当技術分野において知られた様々な技法を通して達成され得る。したがって、基本的な実施形態は、スイッチを参照することなく、プログラム・コード用メモリ・アドレス範囲をハードウェア的に保護し、スイッチを追加する能力は、潜在的な追加機能とすることができる。 For many uses, the switches described above with reference to FIG. 5 are important for the update system, so that the program code memory cannot be written to unless the switch is on. The memory uses digital circuits such as logic gates to make the memory read-only. However, although there may be some uses where updates are not expected, the memory address range for the program code should be protected from modification by hardware. Alternative embodiments may be utilized, in which the switch may be omitted. The memory area for the program code can be loaded during the manufacturing process and then permanently restricted from modification using hardware circuits. This can be achieved through various techniques known in the art, such as logic gates in hardware circuits. Thus, the basic embodiment hardware protects the memory address range for program code without reference to the switch, and the ability to add a switch can be a potential additional function.
第1のパーティションのためのオペレーティング・システム及び/又は主要なアプリケーションを更新する際の便利さ及び安全を促進するために、別個のユニットが使用され得る。このユニットは、物理的に別個であることができ、又はそれは、異なる別個のハードウェア回路を有して、システムのための全体的な筐体内に組み込まれ、第1のパーティシ
ョンに接続され得る。ユニットは、新しい重要なアプリケーションのダウンロード、又は既存のアプリケーションの更新という特定の目的のために、イーサネット・ケーブル、Wi−Fi、又は類似の手段を通して、インターネットに接続されることが可能である。ユニットは、それが、この目的のために、1つ又は複数の事前に定められたサービスだけにインターネットを通して接続することを可能にする、固定されたハードウェア又はファームウェアを有することができる。そのような事前に設定されたアドレスは、例えば、コンピュータ及びソフトウェアの主要なサプライヤの公式な更新アドレスを含んでよい。インターネット・アドレスがタイプ入力されること、又はソフトウェアによって設定されることを許可する、通常のコンピュータと対照的に、このデバイスは、それのハードウェア又はファームウェアで事前に設定されたもの以外の、いかなるインターネット・アドレスに対しても、接続要求を送ることはできない。これは、デバイスによるアクセスを、事前に承認されたアドレスだけに制限する。
A separate unit may be used to facilitate convenience and security in updating the operating system and / or key applications for the first partition. This unit can be physically separate, or it can be integrated into the overall enclosure for the system, with different and separate hardware circuits, and connected to the first partition. The unit can be connected to the Internet through an Ethernet cable, Wi-Fi, or similar means for the specific purpose of downloading new important applications or updating existing applications. The unit may have fixed hardware or firmware that allows it to connect only one or more predefined services for this purpose through the Internet. Such preset addresses may include, for example, official update addresses of major computer and software suppliers. In contrast to a regular computer, which allows an Internet address to be typed in or set by software, this device has any other configuration than its hardware or firmware. Connection requests cannot be sent to Internet addresses. This limits access by the device to only pre-approved addresses.
通常の動作では、第1のパーティションは、この方式では、いかなるデータを受け入れることも可能にされない。更新時に、ユーザは、図5を参照して上で説明されたスイッチをオンにして、ユニットをインターネットに接続し、ユニットは、この目的のために、事前に定められたインターネット・アドレスだけに直接的に接続して、適用可能な更新をダウンロードする。 In normal operation, the first partition is not allowed to accept any data in this manner. At the time of the update, the user turns on the switch described above with reference to FIG. 5 and connects the unit to the Internet, which for this purpose only sends directly to the predetermined Internet address only Connect and download applicable updates.
ユニットが、スタンドアロンである場合、それは、更新データを、フラッシュ・ドライブなどの不揮発性メモリ上に書き込むことができる。図5を参照して説明されたスイッチは、第1のパーティションが、第1のパーティションに接続されたUSBドライブ又は類似の設備を通して、そのような更新データを受け入れることを可能にする。その場合、フラッシュ・ドライブ又は類似のデバイスは、USBドライブ内に挿入され得、更新が、完了され得、ユーザは、デバイスを取り外し、スイッチをオフにし、通常の動作に着手することができる。 If the unit is stand-alone, it can write update data to non-volatile memory, such as a flash drive. The switch described with reference to FIG. 5 allows the first partition to accept such updated data through a USB drive or similar facility connected to the first partition. In that case, a flash drive or similar device can be inserted into the USB drive, the update can be completed, and the user can remove the device, switch it off, and begin normal operation.
ユニットが、全体的なシステム筐体内に組み込まれる場合、図5で説明されたスイッチは、スイッチがオンにされた場合に、それの使用を可能にする。更新が、完了され得、ユーザは、スイッチをオフにし、通常の動作に着手することができる。 If the unit is incorporated into the overall system housing, the switch described in FIG. 5 allows its use when the switch is turned on. The update can be completed and the user can switch off and undertake normal operation.
本明細書で開示される原理は、いずれのコンピューティング・デバイスにも製造時に、又はそのようなデバイスがサプライヤによって出荷準備されるときにインストールされるものである、セキュリティ・キーを保護することによって、リモート・ロケーションからの安全な更新を可能にするために使用されてもよい。ほとんどの現代の暗号化システムは、実際的に安全であり続ける数学的アルゴリズムを使用するが(AES−256規格は、一般に、破るのに標準的な処理能力で数百万年を必要とすると見なされている)、理論的には依然として破られ得、暗号学会は、ある者達が2048ビット長までのキーを破ることができると主張している。ランダムな数字からなるセキュリティ・キーは、キーを所有する任意の2つの当事者間で完全に安全なメッセージについてのより高い標準を提供する。2回以上の通信を望んでいる当事者は、第2次世界大戦においてスパイがしたように、複数のバージョンの使い捨てキーを持っていることができ、コンピューティング・デバイスは、メモリ内に多くのバージョンを保持することができる。しかし、本明細書で開示されるハードウェア保護を用いなければ、そのようなキーのいかなるファイルも、それ自体が、改ざんに対して脆弱である。そのようなファイルを第1のパーティションの保護されたメモリ内に置くことによって、離れた当事者どうしが、安全に繰り返し通信することができる。 The principles disclosed herein are based on protecting a security key that is installed on any computing device at the time of manufacture or when such a device is ready for shipment by a supplier. May be used to allow secure updates from remote locations. Although most modern cryptographic systems use mathematical algorithms that remain practically secure (the AES-256 standard generally requires millions of years with standard processing power to break). Done), but in theory could still be broken, and the cryptographic society claims that some can break keys up to 2048 bits long. A security key consisting of random numbers provides a higher standard for completely secure messages between any two parties that own the key. A party who wants to communicate more than once can have multiple versions of a disposable key, as spies in World War II, and the computing device may have many versions in memory. Can be held. However, without the hardware protection disclosed herein, any file of such a key is itself vulnerable to tampering. By placing such files in the protected memory of the first partition, distant parties can communicate securely and repeatedly.
図6Aは、ソフトウェア・ソリューションとともに既存のアーキテクチャを利用するコンピューティング・デバイスに適合された、実施形態を示している。ソフトウェア・ソリ
ューションは、悪意ある実行可能コンピュータ・コードの影響を受けやすいことがあるが、それは、重要なデータ・ファイルへのアクセスを制限すること、第1のコンピュータへのプログラム実行アクセスを制限すること、及び第2のコンピュータからのいかなる入力にもプログラム制御を与えないようにすることを含む、上で説明されたハードウェア・ソリューションの有益性のいくつかを提供することができる。この実施形態では、第1のコンピュータ1500は、知られた通信インターフェース、例えば、USB、eSATA、WiFi、又はイーサネットを利用して、第2のコンピュータ1600に接続される。第1のコンピュータ1500及び第2のコンピュータ1600は、当技術分野において知られたコンピュータ・アーキテクチャ、例えば、x86、ARM、及びPowerPCを利用する。そのため、第1のコンピュータ1500及び第2のコンピュータ1600は、コンピュータ実行可能コードを実行するためのオペレーティング・システムを含む。重要なファイル及びシステムは、第1のコンピュータ1500上に存在し、一方、第2のコンピュータ1600は、インターネットに接続するために使用される。この設計は、第1のコンピュータ1500のソフトウェアが、第1のコンピュータ1500のハッキングのリスクを低減する方法で、第2のコンピュータ1600と対話することを可能にする。第2のコンピュータ1600によってインターネットから受け取られることがあるマルウェアは、第1のコンピュータ1500上で動作するソフトウェアによって、第1のコンピュータ1500上の実行可能コードのポイントに達することを阻止される。
FIG. 6A illustrates an embodiment adapted to a computing device that utilizes an existing architecture with a software solution. Software solutions may be susceptible to malicious executable computer code, which limits access to critical data files, restricts program execution access to the first computer , And providing no program control to any input from the second computer, may provide some of the benefits of the hardware solution described above. In this embodiment, the first computer 1500 is connected to the second computer 1600 using a known communication interface, for example, USB, eSATA, WiFi, or Ethernet. First computer 1500 and second computer 1600 utilize computer architectures known in the art, for example, x86, ARM, and PowerPC. As such, first computer 1500 and second computer 1600 include an operating system for executing computer-executable code. The important files and systems reside on the first computer 1500, while the second computer 1600 is used to connect to the Internet. This design allows the software of the first computer 1500 to interact with the second computer 1600 in a manner that reduces the risk of hacking of the first computer 1500. Malware that may be received from the Internet by the second computer 1600 is prevented from reaching the point of executable code on the first computer 1500 by software running on the first computer 1500.
第1のコンピュータ1500は、第1のコンピュータ1500上で動作する仮想パーティション1510を備える。仮想パーティション1510は、第1のコンピュータ1500のコンピューティング・リソース(すなわち、CPU及びストレージ)のいくつかを利用することができるが、仮想パーティション1510は、当技術分野において知られた技法、例えば、ソフトウェア「サンドボックス」を使用して、第1のコンピュータ1500のオペレーティング・システムにアクセスすることから隔離される。結果として、仮想パーティション1510は、仮想パーティション1510が、第2のコンピュータ1600の仮想パーティション1606から受け取った悪意あるコンピュータ実行可能コードによって悪影響を及ぼされた場合に、第1のコンピュータ1500のオペレーティング・システムに悪影響を及ぼすことを制限される。さらに、仮想パーティション1510は、第1のコンピュータ1500に直接的に接続された入力デバイス、及び第2のコンピュータ1600の仮想パーティション1606からのデータだけにアクセスするように制限される。結果として、仮想パーティション1510は、ネットワーク上でリモート端末に接続することができる、第1のコンピュータ1500のコンピューティング・リソースにアクセスすることを制限される。 The first computer 1500 includes a virtual partition 1510 operating on the first computer 1500. Although virtual partition 1510 may utilize some of the computing resources (ie, CPU and storage) of first computer 1500, virtual partition 1510 may be implemented using techniques known in the art, such as software The use of a “sandbox” is isolated from accessing the operating system of the first computer 1500. As a result, the virtual partition 1510 may be affected by the operating system of the first computer 1500 if the virtual partition 1510 is adversely affected by malicious computer executable code received from the virtual partition 1606 of the second computer 1600. Restricts adverse effects. Further, virtual partition 1510 is restricted to access only data from input devices directly connected to first computer 1500 and virtual partition 1606 of second computer 1600. As a result, the virtual partition 1510 is restricted from accessing the computing resources of the first computer 1500, which can connect to remote terminals on the network.
この実施形態では、第1のコンピュータ1500のオペレーティング・システムは、第1のコンピュータ1500のメモリの一部を、仮想パーティション1510に割り当てる。仮想パーティション1510のオペレーティング・システム1502は、仮想パーティション1510のプログラム・コード用アドレス・ブロック1504に配置されたプログラム・コードだけを実行するようにプログラムされる。第2のコンピュータ1600の仮想パーティション1606から受け取られたすべてのデータは、第2のパーティション・データ用アドレス・ブロック1508に記憶される。最後に、仮想パーティション1510の重要なデータ・ファイルは、第1のパーティション・データ用アドレス・ブロック1506内に記憶される。この設計では、第1のコンピュータ1500の重要なデータ・ファイルは、第2のコンピュータ1600内に配置されることがあるマルウェアによるアクセスから保護される。仮想パーティション1510は、図4を参照して上で詳細に説明された方法を使用して、第1のコンピュータ1500上に記憶されたデータ・ファイルにアクセスするように、第1のコンピュータ1500のオペレーティング・システムに要求することができる。第1のコンピュータ1500のオペレーティング・システムは、仮想パーティション1510に割り当てられたメモリのアドレス範囲全体にアクセスすることが
できる。しかしながら、第2のコンピュータ1600から読み取られたいかなるデータも、第1のコンピュータ1500の第2のパーティション・データ用アドレス・ブロック1508内に記憶され、第1のコンピュータ1500のオペレーティング・システムは、第2のパーティション・データ用アドレス・ブロック1508上に記憶されたデータ・ファイルを実行することを制限されるので、第1のコンピュータ1500は、第2のコンピュータ1600から転送されたいかなる悪意ある実行可能コードも実行しない。
In this embodiment, the operating system of the first computer 1500 allocates a portion of the memory of the first computer 1500 to the virtual partition 1510. The operating system 1502 of the virtual partition 1510 is programmed to execute only the program code located in the program code address block 1504 of the virtual partition 1510. All data received from the virtual partition 1606 of the second computer 1600 is stored in the second partition data address block 1508. Finally, important data files of the virtual partition 1510 are stored in the first partition data address block 1506. In this design, important data files of the first computer 1500 are protected from access by malware that may be located within the second computer 1600. Virtual partition 1510 operates on first computer 1500 to access data files stored on first computer 1500 using the method described in detail above with reference to FIG.・ It can be requested from the system. The operating system of the first computer 1500 can access the entire address range of the memory allocated to the virtual partition 1510. However, any data read from the second computer 1600 is stored in the second partition data address block 1508 of the first computer 1500, and the operating system of the first computer 1500 Is restricted from executing data files stored on the partition data address block 1508 of the first computer 1500 so that any malicious executable code transferred from the second computer 1600 is Do not execute.
第2のコンピュータ1600は、第2のコンピュータ1600上で動作する常駐ソフトウェアによって生成された、仮想パーティション1606を備える。この実施形態では、第2のコンピュータ1600は、ネットワークを通して、リモート端末に接続される。仮想パーティション1606は、第2のコンピュータ1600のコンピューティング・リソース(すなわち、CPU及びストレージ)のいくつかを利用することができる。第2のコンピュータ1600のオペレーティング・システムは、第2のコンピュータ1600のメモリの一部を、仮想パーティション1606に割り当てる。さらに、第2のコンピュータ1600のオペレーティング・システムは、仮想パーティション1606が、ネットワークを通してリモート端末と通信するためのリソースにアクセスすることを可能にする。仮想パーティション1606は、オペレーティング・システム1602を備え、それは、第2のコンピュータ1600のオペレーティング・システムによって仮想パーティション1606に割り当てられた、プログラム・コード/データ用アドレス・ブロック1604のアドレス範囲全体にアクセスし、実行することができる。仮想パーティション1510のオペレーティング・システム1502は、プログラム・コード/データ用アドレス・ブロック1604のアドレス範囲全体から、プル・コマンドを使用して、データを読み取るようにプログラムされる。しかしながら、オペレーティング・システム1502は、ソフトウェア制限によって、第2のコンピュータ1600の仮想パーティション1606によって、それにプッシュされたいかなるデータ又は他のファイルも受け入れることはできない。第2のコンピュータ1600内のソフトウェアは、第1のコンピュータ1500によって読み取られるデータを、オペレーティング・システム1502によって必要とされる形式でフォーマットする。第2のコンピュータ1600は、インターネット・ハッカによって侵入され得る。マルウェアが、第1のコンピュータ1500に提供されるデータのフォーマットを改変した場合、オペレーティング・システム1502は、不適切にフォーマットされたデータを受け入れない。加えて、ソフトウェアは、第1のコンピュータが第2のコンピュータからデータを獲得するための、図4を参照して上で詳細に説明された方法を利用することができる。 The second computer 1600 includes a virtual partition 1606 generated by resident software running on the second computer 1600. In this embodiment, the second computer 1600 is connected to a remote terminal via a network. Virtual partition 1606 may utilize some of the computing resources (ie, CPU and storage) of second computer 1600. The operating system of the second computer 1600 allocates a portion of the memory of the second computer 1600 to the virtual partition 1606. Further, the operating system of the second computer 1600 allows the virtual partition 1606 to access resources for communicating with a remote terminal over a network. Virtual partition 1606 comprises an operating system 1602, which accesses the entire address range of program code / data address block 1604 assigned to virtual partition 1606 by the operating system of second computer 1600; Can be performed. The operating system 1502 of the virtual partition 1510 is programmed to read data from the entire address range of the program code / data address block 1604 using a pull command. However, operating system 1502 cannot accept any data or other files pushed to it by virtual partition 1606 of second computer 1600 due to software restrictions. Software in the second computer 1600 formats data read by the first computer 1500 in a format required by the operating system 1502. The second computer 1600 can be hacked by an internet hacker. If the malware alters the format of the data provided to the first computer 1500, the operating system 1502 will not accept the improperly formatted data. In addition, the software can utilize the method described in detail above with reference to FIG. 4 for a first computer to obtain data from a second computer.
図6Aは、3つのアドレス・ブロックを含む、第1のコンピュータを示しているが、2つ以上のアドレス・ブロックが、使用されてよい。図6Bは、第1のコンピュータ1520が、プログラム・コード用アドレス・ブロック1524と、第1のパーティション・データ用アドレス・ブロック1526との、2つのアドレス・ブロックを含む、構成を示している。この構成では、プログラム・コード用アドレス・ブロック1524は、オペレーティング・システム1522によって実行されてよいコードを記憶するために使用される。第1のパーティション・データ用アドレス・ブロック1526は、オペレーティング・システム1522による実行用ではない他のデータを記憶するために使用される。第1のパーティション・データ用アドレス・ブロック1526は、第2のコンピュータ1620から第1のコンピュータ1520上に読み取られるデータを記憶するためにも使用される。 While FIG. 6A shows a first computer including three address blocks, more than one address block may be used. FIG. 6B shows a configuration in which the first computer 1520 includes two address blocks, an address block 1524 for program code and an address block 1526 for first partition data. In this configuration, the program code address block 1524 is used to store code that may be executed by the operating system 1522. First partition data address block 1526 is used to store other data not intended for execution by operating system 1522. The first partition data address block 1526 is also used to store data that is read from the second computer 1620 onto the first computer 1520.
図6A及び図6Bで開示された実施形態は、第1のコンピュータのプログラム及びデータを、悪意あるコンピュータ実行可能コードから保護するために、仮想パーティションを利用するが、開示された技法(すなわち、重要なデータ・ファイルへのアクセスを制限し、第1のコンピュータへのプログラム実行アクセスを制限し、第2のコンピュータからの
いかなる入力にもプログラム制御を与えないようにするソフトウェア)は、仮想パーティションを使用せずに、第1及び第2のコンピュータのオペレーティング・システムに直接的に適用されてよい。いずれのケースでも、そのような実施形態は、ハッキングのリスクを低減することができるが、ソフトウェア保護ばかりでなくハードウェアも利用することができる、好適な実施形態における完全に統合されたシステムによって与えられる、より高度な保護を提供することはできない。
Although the embodiments disclosed in FIGS. 6A and 6B utilize virtual partitions to protect the first computer's programs and data from malicious computer-executable code, the disclosed techniques (ie, important Software that restricts access to secure data files, restricts program execution access to the first computer, and does not provide program control to any input from the second computer). Instead, it may be applied directly to the operating systems of the first and second computers. In either case, such an embodiment can reduce the risk of hacking, but is provided by a fully integrated system in the preferred embodiment, which can utilize hardware as well as software protection. Cannot provide a higher degree of protection.
図2Aを参照して上で説明されたコンピュータ・システム・アーキテクチャは、第1のパーティション及び第2のパーティションの各々の上で、仮想環境を利用することもできる。これらのパーティションは、様々なオペレーティング・システム及びプログラムのアクティビティを分割する目的で、使用され得る。図6Aを参照して上で説明されたソフトウェア・ソリューションとは異なり、第1のパーティション上で実施される仮想環境は、図2Aを参照して上で説明されたように、第2のパーティションからハードウェア的に保護される。 The computer system architecture described above with reference to FIG. 2A may also utilize a virtual environment on each of the first and second partitions. These partitions can be used to divide the activities of various operating systems and programs. Unlike the software solution described above with reference to FIG. 6A, the virtual environment implemented on the first partition, as described above with reference to FIG. Hardware protected.
別の実施形態では、既存のアーキテクチャを利用するコンピューティング・デバイスは、広範な本発明の開示の趣旨から逸脱することなく、2つの物理的に別個のパーティションの代わりに、仮想パーティションを利用することができる。仮想パーティションを利用するそのような実施形態は、インターネット・ハッキングを妨げること、重要なデータ・ファイルへのアクセスを制限すること、プログラム実行アクセスを制限すること、及びプログラム制御を制限することを含む、上で説明されたハードウェア・ソリューションの有益性のいくつかを提供することができる。 In another embodiment, a computing device that utilizes an existing architecture may utilize a virtual partition instead of two physically separate partitions without departing from the spirit of the broad inventive disclosure. Can be. Such embodiments utilizing virtual partitions include preventing Internet hacking, restricting access to critical data files, restricting program execution access, and restricting program control, Some of the benefits of the hardware solution described above can be provided.
そのような実施形態は、仮想マシン能力を有する、当技術分野において知られたコンピュータ・アーキテクチャ、例えば、x86、ARM、及びPowerPCを利用することができ、仮想パーティション・システム内で仮想パーティショニング及び処理の主要な態様を管理するための「ハイパーバイザ」(又は変更された「カーネル」もしくは「コンテナ」システム)を備える。第1の仮想パーティションと、第2の仮想パーティションとの、2つの主要な仮想パーティションが存在し、それらは、上で詳細に説明された、物理的に別個の第1のパーティションと、第2のパーティションとに対応する。仮想パーティションは、通常の動作の前に、ハイパーバイザ又は同等物を用いて作業する、仮想パーティショニング構成工程を使用して、管理者によって構成される。各仮想パーティションは、コンピュータの能力に応じて、メモリ、ネットワーク接続性、入力/出力接続性、CPU、及び様々な他の特徴を含む、コンピュータのハードウェア・リソースに対するアクセス可能性を割り当てられる。さらに、ハイパーバイザは、仮想パーティションを再割り当てすること、又は動的に変更することができる。 Such embodiments may utilize computer architectures known in the art with virtual machine capabilities, such as x86, ARM, and PowerPC, and virtual partitioning and processing within a virtual partition system. A "hypervisor" (or modified "kernel" or "container" system) for managing the main aspects of There are two main virtual partitions, a first virtual partition and a second virtual partition, which are physically separate first partitions, described in detail above, and second virtual partitions. Corresponding to the partition. The virtual partition is configured by the administrator before normal operation using a virtual partitioning configuration process that works with a hypervisor or the like. Each virtual partition is assigned access to the computer's hardware resources, including memory, network connectivity, input / output connectivity, CPU, and various other features, depending on the capabilities of the computer. In addition, the hypervisor can reassign virtual partitions or change dynamically.
第1の仮想パーティション(FVP)は、コンピュータ実行可能コードを実行するための、CPUと、少なくとも1つのオペレーティング・システムとを備え、FVPに属する仮想パーティションのサブパーティションを有してよい。参照を容易にするため、FVP及びそれのサブパーティションは、仮想パーティションのFVP「ファミリ」と呼ばれる。 The first virtual partition (FVP) comprises a CPU and at least one operating system for executing computer-executable code, and may have a subpartition of a virtual partition belonging to the FVP. For ease of reference, FVPs and their subpartitions are referred to as FVP "families" of virtual partitions.
少なくとも1つの第2の主要な仮想パーティション(SVP)は、コンピュータ実行可能コードを実行するための、CPUと、少なくとも1つのオペレーティング・システムとを備え、少なくとも1つのサブパーティションを有してよい。参照を容易にするため、SVP及びそれのサブパーティションは、仮想パーティションのSVP「ファミリ」と呼ばれる。 At least one second primary virtual partition (SVP) comprises a CPU and at least one operating system for executing computer-executable code and may have at least one sub-partition. For ease of reference, SVPs and their subpartitions are referred to as SVP "families" of virtual partitions.
FVPファミリ及びSVPファミリは、ともに、メモリ及びI/Oモジュールを含む、
コンピュータにとって一般的な追加の機能性を有してよい。重要なファイル及びシステムは、FVPファミリ内に存在し、一方、SVPファミリは、インターネットなどのネットワーク上で通信することができる。対照的に、FVPファミリは、SVPファミリ、又はFVPファミリに直接的に接続されたI/Oデバイスとだけ、直接的に通信することができる。仮想パーティショニングは、FVPファミリが、インターネット、又はインターネットに接続されたサーバなどの他の任意のデバイスに接続されないように構成される。重要なデータ・ファイルを保護するために、SVPファミリ全体は、FVPファミリのいかなるメモリからの読み取りも、又はそれへの書き込みも禁止されるように構成される。
The FVP and SVP families both include memory and I / O modules,
It may have additional functionality common to computers. Important files and systems reside within the FVP family, while the SVP family can communicate over a network such as the Internet. In contrast, the FVP family can only communicate directly with the SVP family, or with I / O devices directly connected to the FVP family. Virtual partitioning is configured such that the FVP family is not connected to the Internet or any other device such as an Internet-connected server. To protect critical data files, the entire SVP family is configured such that reading from or writing to any memory in the FVP family is prohibited.
この設計は、FVPファミリが、FVPファミリのインターネット・ハッキングのリスクを低減する方法で、SVPファミリと対話することを可能にする。SVPファミリの任意の部分によってインターネットから受け取られることがあるマルウェアは、FVPファミリ上で実行されることを妨げられる。さらに、FVPファミリの重要なファイルは、SVPファミリ上に存在すること、又はSVPファミリに書き込まれていることがあるマルウェアによって、改変されること、又は読み取られることを妨げられる。 This design allows the FVP family to interact with the SVP family in a way that reduces the risk of Internet hacking of the FVP family. Malware that may be received from the Internet by any part of the SVP family is prevented from running on the FVP family. In addition, important files of the FVP family are prevented from being altered or read by malware that may be present on or written to the SVP family.
FVPファミリは、それのメモリ・アドレスが、コンピュータ実行可能コード及び非常に重要なデータのための1つを含む、少なくとも2つのセクションに区分されるように構成される。他の構成は、少なくとも3つのメモリ範囲又はパーティション、すなわち、コンピュータ実行可能コード及び非常に重要なデータのための1つと、SVPファミリから読み取られたデータのための1つと、他のFVPファミリ・データのための少なくとも1つとを含んでよい。 The FVP family is configured such that its memory address is partitioned into at least two sections, one for computer-executable code and one for very important data. Other configurations include at least three memory ranges or partitions, one for computer executable code and very important data, one for data read from the SVP family, and other FVP family data. For at least one.
図7は、コンピューティング・デバイス上で仮想パーティションを実施する例示的な実施形態を示す、簡略ブロック図である。コンピューティング・デバイス1900は、CPU1902と、メモリ1904と、ネットワーク・アダプタ1906と、入力/出力1908とを備え、既存のコンピュータ・アーキテクチャを利用する。さらに、コンピューティング・デバイス1900は、オペレーティング・システム・レベルの仮想化、又はIntel VT−xもしくはAMD−Vを利用するハードウェア仮想化を用いて、仮想パーティションを生成する能力を有する。ハイパーバイザ1910は、複数の仮想パーティションを生成し、構成し、管理するために利用される。示されるように、ハイパーバイザ1910は、仮想パーティションのCPU1902、メモリ1904、ネットワーク・アダプタ1906、及び入力/出力1908との通信を管理する。ハイパーバイザ1910は、ホスト・オペレーティング・システム内で動作するアプリケーションとすることができる。この実施形態では、ハイパーバイザ1910は、コンピューティング・デバイス1900上で直接的に動作する(「タイプ−1」ハイパーバイザ)。ハイパーバイザ1910は、商用に利用可能な仮想ソリューションの1つであり得る。オペレーティング・システム・レベルの仮想化は、本明細書で開示される原理から逸脱することなく、仮想パーティションを隔離し、コンピューティング・デバイスのリソースを管理するために使用され得る。 FIG. 7 is a simplified block diagram illustrating an exemplary embodiment of implementing a virtual partition on a computing device. The computing device 1900 includes a CPU 1902, a memory 1904, a network adapter 1906, and an input / output 1908 and utilizes an existing computer architecture. In addition, the computing device 1900 has the ability to create virtual partitions using operating system level virtualization or hardware virtualization utilizing Intel VT-x or AMD-V. The hypervisor 1910 is used to create, configure, and manage multiple virtual partitions. As shown, the hypervisor 1910 manages communication with the CPU 1902, memory 1904, network adapter 1906, and input / output 1908 of the virtual partition. Hypervisor 1910 may be an application running within a host operating system. In this embodiment, hypervisor 1910 runs directly on computing device 1900 (a "type-1" hypervisor). Hypervisor 1910 may be one of the commercially available virtual solutions. Operating system level virtualization may be used to isolate virtual partitions and manage computing device resources without departing from the principles disclosed herein.
図7に示されるように、ハイパーバイザ1910は、サブパーティションのファミリを含む、FVP1700を生成及び構成してあり、ハイパーバイザ1910は、やはりサブパーティションのファミリを含む、SVP1800を構成してある。さらに、ハイパーバイザ1910は、FVP1700とSVP1800との間の通信を管理する。この実施形態では、ハイパーバイザ1910は、SVP1800にネットワーク・アダプタ1906へのアクセスを割り当ててあり、FVP1700がネットワーク・アダプタ1906にアクセスすることを制限してある。結果として、FVP1700は、インターネット、及びネットワーク・アダプタ1906を通して通信することができる他の任意のソースからの、悪意あるコンピュータ実行可能コードの感染から保護される。FVP1700ファミリ
は、FVP1701と、FVP1702と、FVP1703とを含む。FVP1701は、実行可能コード及び非常に重要なデータを含み、FVP1702は、SVP1800から読み取られたデータを含み、FVP1703は、他のFVPデータを含む。FVP1700のオペレーティング・システムは、FVP1701内のプログラム・コード・アドレスに配置されたプログラム・コードだけを実行するように構成される。SVP1801は、SVP1800によって利用されるデータを含む。SVP1801からFVP1700によって読み取られるすべてのデータは、サブパーティションFVP1702内に記憶される。この実施形態では、ハイパーバイザ1910は、SVP1801のコンピューティング・デバイス1900のCPU1902へのアクセスを制限してある。
As shown in FIG. 7, the hypervisor 1910 has created and configured an FVP 1700 that includes a family of subpartitions, and the hypervisor 1910 has configured an SVP 1800 that also includes a family of subpartitions. Further, the hypervisor 1910 manages communication between the FVP 1700 and the SVP 1800. In this embodiment, the hypervisor 1910 has assigned access to the network adapter 1906 to the SVP 1800 and has restricted the FVP 1700 from accessing the network adapter 1906. As a result, the FVP 1700 is protected from malicious computer executable code infection from the Internet and any other source that can communicate through the network adapter 1906. The FVP 1700 family includes an FVP 1701, an FVP 1702, and an FVP 1703. FVP 1701 contains executable code and very important data, FVP 1702 contains data read from SVP 1800, and FVP 1703 contains other FVP data. The operating system of FVP 1700 is configured to execute only the program code located at the program code address in FVP 1701. The SVP 1801 includes data used by the SVP 1800. All data read by SVP 1801 through FVP 1700 is stored in sub-partition FVP 1702. In this embodiment, the hypervisor 1910 restricts access to the CPU 1902 of the computing device 1900 of the SVP 1801.
FVP1700の主要なデータ・ファイルは、FVP1701内に記憶され得る。ハイパーバイザ1910は、FVP1700及びSVP1800に割り当てられたメモリ1904のアドレス範囲全体にアクセスするように、FVP1700を構成する。さらに、ハイパーバイザ1910は、SVP1800からFVP1702に割り当てられたメモリにデータを送るように求める、FVP1700による要求を送るように構成される。FVP1700のオペレーティング・システムは、FVP1701内のプログラム・コード・アドレスに配置されたプログラム・コードを実行するように制限されるので、FVP1700は、SVP1800から転送されたいかなる悪意ある実行可能コードの実行からも保護される。 The main data files of the FVP 1700 may be stored in the FVP 1701. The hypervisor 1910 configures the FVP 1700 to access the entire address range of the memory 1904 allocated to the FVP 1700 and the SVP 1800. Further, the hypervisor 1910 is configured to send a request by the FVP 1700 to send data from the SVP 1800 to the memory allocated to the FVP 1702. Because the operating system of the FVP 1700 is restricted to executing program code located at program code addresses within the FVP 1701, the FVP 1700 will not be able to execute any malicious executable code transferred from the SVP 1800. Protected.
この実施形態では、ハイパーバイザ1910は、FVP1700に割り当てられたCPUリソースが、FVP1700ファミリに割り当てられたいずれかのメモリ又はCPUだけから読み取ること、又はそれらに書き込むことができるように、仮想パーティションを構成してある。SVP1800ファミリ内のソフトウェアは、FVP1700ファミリによって読み取られるデータを、データに応じた特定の形式及び長さにフォーマットする。上で説明されたように、ハイパーバイザ1910は、ネットワーク・アダプタ1906へのアクセスをSVP1800に割り当ててある。したがって、SVP1800は、インターネット・ハッカによって侵入され得る。ハイパーバイザ1910は、FVP1700によって受け入れられるデータ・フォーマットのリストを含む。FVP1700によって要求されたデータをSVP1800から転送する前に、ハイパーバイザ1910は、受け入れられるデータ・フォーマットのリストを用いて、データをチェックする。SVP1800に悪影響を及ぼすマルウェアが、FVP1700に提供されるデータのフォーマット又は長さを改変した場合、ハイパーバイザ1910は、不適切にフォーマットされたデータをFVP1700に転送することを拒否することができる。別の実施形態では、FVP1700が、データのフォーマットをチェックし、不適切にフォーマットされたデータを受け入れることを拒否することができる。 In this embodiment, the hypervisor 1910 configures the virtual partition such that the CPU resources allocated to the FVP 1700 can read from or write to only any memory or CPU allocated to the FVP 1700 family. I have. Software within the SVP 1800 family formats the data read by the FVP 1700 family into a specific format and length depending on the data. As described above, hypervisor 1910 has assigned access to network adapter 1906 to SVP 1800. Thus, the SVP 1800 can be invaded by Internet hackers. Hypervisor 1910 contains a list of data formats accepted by FVP 1700. Before transferring the data requested by FVP 1700 from SVP 1800, hypervisor 1910 checks the data with a list of acceptable data formats. If malware that adversely affects the SVP 1800 modifies the format or length of the data provided to the FVP 1700, the hypervisor 1910 may refuse to transfer improperly formatted data to the FVP 1700. In another embodiment, the FVP 1700 may check the format of the data and refuse to accept improperly formatted data.
セキュリティを向上させるため、ハイパーバイザは、FVP及びそれのサブパーティションのファミリを、他の仮想パーティションから隔離するように、仮想パーティションを構成することができる。したがって、FVPファミリの外部の仮想パーティションは、FVPファミリに割り当てられたCPU、メモリ、及び任意のファイルにアクセスすることを制限される。さらに、ハイパーバイザは、FVPファミリを最初に生成及び構成するとき、又は仮想パーティションのリソース及びサイズを動的に割り当てる工程中を含む、任意の時間に、アクセスを制限することができる。多くのシステムは、仮想パーティションに対する動的調整を使用するので、またパーティショニング構成は、メモリの共用エリアを生成し得るので、FVPファミリとFVPファミリの外部の他の任意のパーティションとの間の基本的な分離が、仮想パーティションに対する動的調整によって侵犯されないようにする配慮が、払われなければならない。 To increase security, the hypervisor may configure virtual partitions to isolate the FVP and its subpartition family from other virtual partitions. Therefore, virtual partitions outside of the FVP family are restricted from accessing the CPU, memory, and any files assigned to the FVP family. Further, the hypervisor may limit access at any time, including during the initial creation and configuration of the FVP family, or during the process of dynamically allocating virtual partition resources and sizes. Because many systems use dynamic adjustments to virtual partitions, and because partitioning configurations can create shared areas of memory, the basic relationship between the FVP family and any other partitions outside the FVP family can be reduced. Care must be taken to ensure that dynamic isolation is not violated by dynamic adjustments to virtual partitions.
通常の動作中、ハイパーバイザは、FVP1701上に実行可能コード用に割り当てら
れたメモリを、読み取り専用として構成する。FVP1701上において重要なプログラムがインストール又は更新される、更新モードの場合、ハイパーバイザは、FVPファミリの動作を一時的に中断することができる。その後、ハイパーバイザは、FVP1701上において重要なプログラムをインストール又は更新するために、書き込みを許可するように、FVP1701を再構成する。重要なプログラムの更新が完了した後、ハイパーバイザは、FVP1701を読み取り専用として再構成し、FVP1700が通常の動作を再開することを可能にする。代替として、更新モードを可能にするために、FVP1701に書き込むことができるかどうかを制御するスイッチの形態を取るハードウェア変更が、システム内に導入され得る。このスイッチは、SVPファミリにアクセスするFVPファミリの能力も、オン又はオフにすることができる。加えて、そのスイッチ又は別個のスイッチは、FVPファミリに関して改変される仮想構成の能力を制限することができる。そのようなスイッチは、図5を参照して上で説明されたスイッチと同様に、論理ゲート、ファームウェア、フィールド・プログラマブル・ゲート・アレイ、又は他の類似の既存の技術を利用することができる。
During normal operation, the hypervisor configures the memory allocated for executable code on FVP 1701 as read-only. In the case of an update mode in which important programs are installed or updated on the FVP 1701, the hypervisor can temporarily suspend the operation of the FVP family. Thereafter, the hypervisor reconfigures the FVP 1701 to permit writing in order to install or update an important program on the FVP 1701. After the critical program update is complete, the hypervisor reconfigures the FVP 1701 as read-only, allowing the FVP 1700 to resume normal operation. Alternatively, a hardware change in the form of a switch that controls whether the FVP 1701 can be written can be introduced into the system to enable the update mode. This switch can also turn on or off the ability of the FVP family to access the SVP family. In addition, the switch or a separate switch can limit the ability of the virtual configuration to be modified with respect to the FVP family. Such switches may utilize logic gates, firmware, field programmable gate arrays, or other similar existing technologies, similar to the switches described above with reference to FIG.
SVPパーティション内に構成されるいかなる仮想サーバも、本明細書で開示される原理によるハードウェア実施形態を、入力及び出力のためのゲートキーパとして用いて、さらに保護され得る。別個のユニットが、ルータとサーバ・バンクとの間の仮想サーバに接続する。1つのそのようなユニットが、著しい地理的距離によって隔てられていても、仮想パーティション内で使用される任意の1組のサーバの中に配置されてよい。 Any virtual server configured within an SVP partition may be further protected using hardware embodiments according to the principles disclosed herein as gatekeepers for inputs and outputs. Separate units connect to virtual servers between the router and the server bank. One such unit may be located in any set of servers used in a virtual partition, even if separated by significant geographic distance.
すべてのトラフィックは、他のコンピュータもしくはユニットへのすべての情報、又は他のコンピュータもしくはユニットからのすべての情報が、インターネット上などでは、ルータを通って流れなければならないのと全く同様に、ユニットを通って流れる。仮想パーティションの初期セットアップ中、ユニットは、トラフィックをFVP及びSVPに向けるようにも構成される。例えば、ユニットが、それを許可しないので、情報は、リモート・コンピュータからFVPに書き込まれ得ず、すべての到来したデータ及びコードは、SVPパーティションだけに行くことができる。 All traffic must pass through the unit just as all information to or from other computers or units must flow through routers, such as on the Internet. Flow through. During the initial setup of the virtual partition, the unit is also configured to direct traffic to FVP and SVP. For example, information cannot be written to the FVP from the remote computer because the unit does not allow it, and all incoming data and code can go only to the SVP partition.
同様に、SVPが、FVPと情報を共有することを望む場合、それが、転送を開始することはできず、そのようないかなる要求も、ユニットよって許可されることはない。SVPからのデータは、SVP1801だけに行くことができ、それは、FVP1700が開始することで、アクセスされ得る。FVP1703内のデータは、SVP1800にプッシュされ得ない。 Similarly, if the SVP wishes to share information with the FVP, it cannot initiate a transfer and no such request will be granted by the unit. Data from the SVP can only go to the SVP 1801, which can be accessed with the FVP 1700 starting. Data in FVP 1703 cannot be pushed to SVP 1800.
したがって、ユニットは、ハードウェア保護の実施形態及びそれの追加のセキュリティを適用して、それの監督機能がオペレーティング・システムのインストールに先立つ、タイプ−1・ハイパーバイザの機能を実行する。それのアーキテクチャは、いくつかのパス(ネットワークからSVP1800)については、直接アクセスを許可し、他のパス(FVP1702からSVP1800)については、読み取り専用接続を許可し、その他(FVP1703からSVP1800)については、アクセスを全く許可しない。デバイスは、仮想パーティションのセットアップ時に、どのアドレス範囲がどのパーティションに対応するかを知るように構成される。ユニットは、図5を参照して上で説明されたスイッチと同様に、読み取り/書き込みスイッチの使用によって、権限のない再構成から保護され得る。そのようなスイッチは、手動とすること、又はトランジスタを用いるなど、電気的とすることができる。スイッチの使用を現地でのアクティブ化に限定することによって、ユニットの構成は、リモート・ロケーションから改変され得ない。 Thus, the unit performs the functions of a type-1 hypervisor, with its supervision function prior to the installation of the operating system, applying an embodiment of hardware protection and its additional security. Its architecture allows direct access for some paths (network to SVP 1800), read-only connections for other paths (FVP 1702 to SVP 1800), and access for others (FVP 1703 to SVP 1800). Do not allow at all. The device is configured to know which address range corresponds to which partition when setting up the virtual partition. The unit may be protected from unauthorized reconfiguration by the use of read / write switches, similar to the switches described above with reference to FIG. Such switches can be manual or electrical, such as using transistors. By limiting the use of the switch to on-site activation, the configuration of the unit cannot be modified from a remote location.
システムは、1つの第2のパーティションと組み合わされる2つ以上の第1のパーティション、又は1つの第1のパーティションと組み合わされる2つ以上の第2のパーティシ
ョン、又は2つ以上の第2のパーティションと組み合わされる2つ以上の第1のパーティションを用いても構成され得る。第1のパーティションの各々は、保護された実行可能コード及び非常に重要なデータを含む、メモリ構造を含む、単一の第1のパーティションの実施形態の基本的な特性を有し、各第1のパーティションは、論理ゲートなどのハードウェア回路を使用して、第2のパーティションのいずれによるアクセスからも、ハードウェア的に制限される。これは、例えば、単一のシステム上で複数のクライアントを動作させ、各クライアントの重要なファイルが、別個の保護された第1のパーティション上に保持されることを可能にする。それは、システムが、2つ以上の第2のパーティションを通して通信することも可能にし、それは、1つの第2のパーティションが、マルウェアによって悪影響を及ぼされた場合に、特に役立ち得る。
The system may include two or more first partitions combined with one second partition, or two or more second partitions combined with one first partition, or two or more second partitions. It can also be configured with two or more first partitions to be combined. Each of the first partitions has the basic characteristics of a single first partition embodiment, including memory structures, including protected executable code and very important data, Partition is hardware limited from access by any of the second partitions using hardware circuits such as logic gates. This allows, for example, running multiple clients on a single system, and each client's critical files are kept on a separate protected first partition. It also allows the system to communicate through more than one second partition, which may be particularly useful if one second partition has been adversely affected by malware.
本明細書で開示された原理は、主に好適な実施形態を参照して説明され、その説明は、本発明の完全な開示を行うことを目的として、かなり詳細に行われたが、説明された実施形態は、例示的なものにすぎず、限定的であること、又は本明細書で開示された原理のすべての態様の網羅的な列挙を表すことは意図されていない。さらに、本明細書で開示された趣旨及び原理から逸脱することなく、数々の変更がそのような詳細に施されてよいことが、当業者には明らかであろう。これらの原理は、それらの必須の特性から逸脱することなく、他の形態でも具体化されることが可能であることを理解されたい。 The principles disclosed herein have been described primarily with reference to preferred embodiments, which have been described in considerable detail, with the aim of providing a complete disclosure of the invention. The embodiments described are merely illustrative and are not intended to be limiting or represent an exhaustive listing of all aspects of the principles disclosed herein. Further, it will be apparent to one skilled in the art that numerous changes may be made in such details without departing from the spirit and principles disclosed herein. It is to be understood that these principles may be embodied in other forms without departing from their essential characteristics.
Claims (35)
第1のCPUと、
第1のメモリ・モジュールであって、
プログラム・コード用の少なくとも1つのメモリ・アドレス範囲であって、前記プログラム・コードが、コンピュータ実行可能コードを含み、プログラム・コード用の前記少なくとも1つのメモリ・アドレス範囲が、ハードウェア回路によって改変から保護されるように構成される、プログラム・コード用の少なくとも1つのメモリ・アドレス範囲と、
第2のパーティションから読み取られたデータを含む、他のデータ用の少なくとも1つのメモリ・アドレス範囲と
を備える第1のメモリ・モジュールと
からなり、
前記第1のCPUが、プログラム・コード用の前記メモリ・アドレス範囲内の前記コンピュータ実行可能コードだけを実行するようにハードウェア的に構成される、
第1のパーティションと、
第2のパーティションであって、
第2のCPUと、
第2のメモリ・モジュールと、
ネットワークに結合するように構成された少なくとも1つの通信モジュールと
からなる第2のパーティションと
からなり、
前記第1のCPUが、前記第2のCPU及び前記第2のメモリ・モジュールにアクセスすることができ、
前記第2のCPUが、前記第1のCPU又は前記第1のメモリ・モジュールにアクセスすることを制限される、
コンピュータ・システム。 The first partition,
A first CPU;
A first memory module,
At least one memory address range for program code, said program code comprising computer-executable code, wherein said at least one memory address range for program code is protected from modification by hardware circuitry; At least one memory address range for program code, configured to be protected;
A first memory module comprising: at least one memory address range for other data, including data read from the second partition;
The first CPU is configured in hardware to execute only the computer-executable code within the memory address range for program code;
A first partition;
The second partition,
A second CPU;
A second memory module;
A second partition comprising: at least one communication module configured to couple to the network; and a second partition comprising:
The first CPU can access the second CPU and the second memory module;
The second CPU is restricted from accessing the first CPU or the first memory module;
Computer system.
プログラム・コード用の前記少なくとも1つのメモリ・アドレス範囲のための第1のメモリ・ユニットと、
他のデータ用の前記少なくとも1つのメモリ・アドレス範囲のための第2のメモリ・ユニットと
からなる、請求項1に記載のコンピュータ・システム。 The memory addressing structure is
A first memory unit for said at least one memory address range for program code;
The computer system of claim 1, further comprising: a second memory unit for the at least one memory address range for other data.
前記第2のパーティションから読み取られたデータ用の少なくとも1つのメモリ・アドレス範囲と、
他の第1のパーティション・データ用の少なくとも1つのメモリ・アドレス範囲と
を備える、請求項1に記載のコンピュータ・システム。 The at least one memory address range for other data is:
At least one memory address range for data read from said second partition;
At least one memory address range for other first partition data.
プログラム・コード用の前記少なくとも1つのメモリ・アドレス範囲のための第1のメモリ・ユニットと、
前記第2のパーティションから読み取られたデータ用の第2のメモリ・ユニットと、
他の第1のパーティション・データ用の第3のメモリ・ユニットと
からなる、請求項1に記載のコンピュータ・システム。 The memory addressing structure comprises:
A first memory unit for said at least one memory address range for program code;
A second memory unit for data read from said second partition;
The computer system of claim 1, further comprising a third memory unit for other first partition data.
前記外部物理スイッチがオンのときだけ、前記第1のCPUが、プログラム・コード用の前記少なくとも1つのアドレス範囲内に記憶されたデータを変更することができ、
前記少なくとも1つの外部物理スイッチがオンの間、前記第1のCPUが前記第2のCPU及び前記第2のメモリ・モジュールにアクセスする能力が、無効化される、
請求項1に記載のコンピュータ・システム。 Comprising at least one external physical switch that can be turned on or off;
Only when the external physical switch is on, the first CPU can change data stored in the at least one address range for program code;
While the at least one external physical switch is on, the ability of the first CPU to access the second CPU and the second memory module is disabled;
The computer system according to claim 1.
前記第1のCPUが、前記第2のパーティションから他のデータ用の前記少なくとも1つのメモリ・アドレス範囲内だけに読み取ることができ、
前記第1のCPU又は前記第1のメモリ・モジュールへのアクセスについての前記第2のCPUに対する制限が、ハードウェア回路によって実施される、
請求項1に記載のコンピュータ・システム。 The ability of the first CPU to access the second memory module and the second CPU is implemented by a hardware circuit;
The first CPU can only read from the second partition within the at least one memory address range for other data;
Restrictions on the second CPU for access to the first CPU or the first memory module are enforced by a hardware circuit;
The computer system according to claim 1.
前記第1のパーティションが、前記バスを通して、前記第2のパーティションに相互接続され、
前記第1のパーティションが、前記バスを通して、プル・コマンドを実行して、データを前記第2のパーティションから読み取り、前記データを前記第2のパーティションから読み取られたデータに適用可能な前記少なくとも1つのメモリ・アドレス範囲だけに書き込むように構成され、
前記第1のパーティションが、前記バスを通して、プッシュ・コマンドを実行して、デ
ータを前記第2のパーティションに書き込むように構成される、
請求項1に記載のコンピュータ・システム。 Further equipped with a bus,
Said first partition is interconnected to said second partition through said bus;
The first partition executes a pull command over the bus to read data from the second partition and to apply the data to the data read from the second partition. Configured to write only to a memory address range,
The first partition is configured to execute a push command over the bus to write data to the second partition;
The computer system according to claim 1.
前記ユニットが、インターネットを通して、1つ又は複数の事前に定められたサービスだけに接続されて、新しい重要なアプリケーションをダウンロードするように、又は既存の重要なアプリケーションを更新するように構成され、
前記ユニットが、前記第1のパーティションに接続するように、又は更新データを不揮発性メモリ上に書き込むように構成され、
前記第1のパーティションが、ハードウェア・スイッチがオンのときだけ、前記ユニット又は前記不揮発性メモリからデータを受け入れるように構成される、
請求項1に記載のコンピュータ・システム。 Hardware unit,
The unit is connected to only one or more predetermined services through the Internet to download new critical applications or to update existing critical applications;
The unit is configured to connect to the first partition or to write update data to a non-volatile memory;
The first partition is configured to accept data from the unit or the non-volatile memory only when a hardware switch is on,
The computer system according to claim 1.
前記ユニットが、インターネットを通して、1つ又は複数の事前に定められたサービスだけに接続するように構成された、固定されたハードウェア又はファームウェアを備え、
前記第1のパーティションが、ハードウェア・スイッチがオンのときだけ、前記ユニットからデータを受け入れるように構成される、
請求項1に記載のコンピュータ・システム。 Comprising a hardware unit incorporated in the system,
Said unit comprising fixed hardware or firmware configured to connect only to one or more predetermined services through the Internet;
The first partition is configured to accept data from the unit only when a hardware switch is on,
The computer system according to claim 1.
各第2のパーティションの前記CPUが、各第1のパーティションの前記CPU又はメモリ・モジュールにアクセスすることをハードウェア的に制限される、
請求項1に記載のコンピュータ・システム。 Configured to include two or more first partitions, or two or more second partitions, or two or more first and second partitions;
The CPU of each second partition is hardware restricted from accessing the CPU or memory module of each first partition;
The computer system according to claim 1.
前記第2のパーティションが、1つ又は複数の仮想サブパーティションからなる、
請求項1に記載のコンピュータ・システム。 The first partition comprises one or more virtual sub-partitions;
The second partition comprises one or more virtual sub-partitions;
The computer system according to claim 1.
少なくとも1つのパーティションと、
少なくとも1つのCPUと、
少なくとも1つのメモリ・モジュールであって、
プログラム・コード用の少なくとも1つのアドレス範囲であって、前記プログラム・コードが、コンピュータ実行可能コードを含み、プログラム・コード用の前記少なくとも1つのアドレス範囲が、通常の動作状態では、読み取り専用として構成される、プログラム・コード用の少なくとも1つのアドレス範囲と、
第2のパーティションから読み取られたデータを含む、他のデータ用の少なくとも1つのメモリ・アドレス範囲と
を備える少なくとも1つのメモリ・モジュールと
からなり、
前記第1の仮想パーティション・ファミリの前記少なくとも1つのCPUが、プログラム・コード用の前記少なくとも1つのアドレス範囲内に記憶された前記コンピュータ実
行可能コードだけを実行するように構成される、
第1の仮想パーティション・ファミリと、
第2の仮想パーティション・ファミリであって、
少なくとも1つのパーティションと、
少なくとも1つのCPUと、
少なくとも1つのメモリ・モジュールと、
ネットワークに結合することが可能な少なくとも1つの通信モジュールと
からなる第2の仮想パーティション・ファミリと
からなり、
前記第1の仮想パーティション・ファミリの前記少なくとも1つのCPUが、前記第2の仮想パーティション・ファミリの前記少なくとも1つのCPU及び前記少なくとも1つのメモリ・モジュールにアクセスすることができるように構成され、
前記第2の仮想パーティション・ファミリの前記少なくとも1つのCPUが、前記第1の仮想パーティション・ファミリの前記少なくとも1つのCPU又は前記第1の仮想パーティション・ファミリの前記少なくとも1つのメモリ・モジュールにアクセスすることができないように構成される、
コンピュータ・システム。 A first virtual partition family,
At least one partition;
At least one CPU;
At least one memory module,
At least one address range for program code, said program code comprising computer-executable code, wherein said at least one address range for program code is configured as read-only under normal operating conditions At least one address range for the program code,
And at least one memory module comprising at least one memory address range for other data, including data read from the second partition;
The at least one CPU of the first virtual partition family is configured to execute only the computer-executable code stored in the at least one address range for program code;
A first virtual partition family;
A second virtual partition family,
At least one partition;
At least one CPU;
At least one memory module;
A second virtual partition family comprising: at least one communication module capable of coupling to a network; and
The at least one CPU of the first virtual partition family is configured to be able to access the at least one CPU and the at least one memory module of the second virtual partition family;
The at least one CPU of the second virtual partition family accesses the at least one CPU of the first virtual partition family or the at least one memory module of the first virtual partition family. Configured to be unable to
Computer system.
を備え、
前記ハードウェア・デバイスが前記オン位置にない限り、前記第1の仮想パーティション・ファミリの前記少なくとも1つのCPUが、プログラム・コード用の前記第1の仮想パーティション・ファミリ・アドレス範囲内のデータを変更することはできず、
前記少なくとも1つのハードウェア・デバイスが前記オン位置にある間、前記第1の仮想パーティション・ファミリの前記少なくとも1つのCPUが前記第2の仮想パーティション・ファミリにアクセスする能力が、無効化される、
請求項21に記載のコンピュータ・システム。 Comprising at least one device connected to the computer, comprising hardware functions including an on position and an off position;
The at least one CPU of the first virtual partition family changes data in the first virtual partition family address range for program code unless the hardware device is in the on position. Can not do,
The ability of the at least one CPU of the first virtual partition family to access the second virtual partition family is disabled while the at least one hardware device is in the on position;
A computer system according to claim 21.
前記第1のパーティションによって開始された場合、又はハードウェア・スイッチによって許可された場合を除いて、コード又はデータが前記第1のパーティションに書き込まれ得ないように、前記デバイスが、前記パーティション間、又は前記パーティションに接続された外部ユニットもしくはコンピュータ間のすべてのトラフィックを管理し、
前記デバイス自体が、それの構成スイッチがオン位置にあるときだけ、トラフィックをそれの3つの別個の進路(読み取り及び書き込み、読み取り専用、ならびに接続なし/要求の拒否)に向かわせるように構成されてよい、
請求項21に記載のコンピュータ・システム。 A hardware device is located between a server bank that hosts the virtual server and a router that is used to connect to a network such as the Internet;
The device inter-partitions so that no code or data can be written to the first partition unless initiated by the first partition or permitted by a hardware switch. Or manage all traffic between external units or computers connected to the partition,
The device itself is configured to direct traffic to its three separate paths (read and write, read only, and no connection / rejection of request) only when its configuration switch is in the ON position. Good,
A computer system according to claim 21.
CPUと、
メモリ・モジュールであって、
プログラム・コード用の少なくとも1つのメモリ・アドレス範囲であって、前記プログラム・コードが、コンピュータ実行可能コードを含み、プログラム・コード用の前記少なくとも1つのメモリ・アドレス範囲が、ハードウェア回路によって改変から保護されるように構成される、プログラム・コード用の少なくとも1つのメモリ・アドレス範囲と、
第2のコンピュータから読み取られたデータを含む、他のデータ用の少なくとも1つのメモリ・アドレス範囲と
を備えるメモリ・モジュールと
からなり、
前記少なくとも1つのCPUが、プログラム・コード用の前記メモリ・アドレス範囲内の前記コンピュータ実行可能コードだけを実行するようにハードウェア的に構成される、
第1のコンピュータと、
第2のコンピュータであって、
CPUと、
ネットワークに結合するように構成された少なくとも1つの通信モジュールと
からなる第2のコンピュータと、
バスと
からなり、
前記第1のコンピュータと前記第2のコンピュータとが、前記バスを通してだけ相互接続され、
前記第1のコンピュータが、前記バスを通して、プル・コマンドを実行して、データを前記第2のコンピュータから読み取り、前記データを前記第2のコンピュータから読み取られたデータに適用可能な前記少なくとも1つのメモリ・アドレス範囲だけに書き込むように、前記バスが、構成され、
前記第1のコンピュータが、前記バスを通して、プッシュ・コマンドを実行して、データを前記第2のコンピュータに送るように、前記バスが、構成され、
前記バスが、前記第2のコンピュータからのプッシュ・コマンド、又は前記第2のコンピュータからのプル・コマンドを受け入れることはできず、
前記バスのハードウェア回路が、前記第2のコンピュータが、前記第1のコンピュータの前記CPU又は前記メモリ・モジュールにアクセスすることを許可しない、
コンピュータ・システム。 A first computer,
A CPU,
A memory module,
At least one memory address range for program code, said program code comprising computer-executable code, wherein said at least one memory address range for program code is protected from modification by hardware circuitry; At least one memory address range for program code, configured to be protected;
A memory module comprising at least one memory address range for other data, including data read from a second computer;
The at least one CPU is configured in hardware to execute only the computer-executable code within the memory address range for program code;
A first computer;
A second computer,
A CPU,
A second computer comprising: at least one communication module configured to couple to a network;
Consists of a bus and
The first computer and the second computer are interconnected only through the bus;
The first computer executes a pull command over the bus to read data from the second computer and apply the at least one data applicable to the data read from the second computer. The bus is configured to write only to a memory address range;
The bus is configured such that the first computer executes a push command over the bus to send data to the second computer;
The bus cannot accept a push command from the second computer or a pull command from the second computer;
A hardware circuit of the bus does not permit the second computer to access the CPU or the memory module of the first computer;
Computer system.
プログラム・コード用の前記少なくとも1つのメモリ・アドレス範囲のための第1のメモリ・ユニットと、
他のデータ用の前記少なくとも1つのメモリ・アドレス範囲のための第2のメモリ・ユニットと
からなる、請求項26に記載のコンピュータ・システム。 The memory addressing structure is
A first memory unit for said at least one memory address range for program code;
27. The computer system of claim 26, comprising: a second memory unit for the at least one memory address range for other data.
前記第2のコンピュータから読み取られたデータ用の少なくとも1つのメモリ・アドレ
ス範囲と、
他の第1のコンピュータ・データ用の少なくとも1つのメモリ・アドレス範囲と
を備える、請求項26に記載のコンピュータ・システム。 The at least one memory address range for other data is:
At least one memory address range for data read from said second computer;
At least one memory address range for other first computer data.
プログラム・コード用の前記少なくとも1つのメモリ・アドレス範囲のための第1のメモリ・ユニットと、
前記第2のコンピュータから読み取られたデータ用の第2のメモリ・ユニットと、
他の第1のコンピュータ・データ用の第3のメモリ・ユニットと
からなる、請求項26に記載のコンピュータ・システム。 The memory addressing structure comprises:
A first memory unit for said at least one memory address range for program code;
A second memory unit for data read from said second computer;
27. The computer system of claim 26, further comprising a third memory unit for other first computer data.
複数の入力/出力デバイスが、少なくとも1つのI/Oモジュールに結合される、
請求項26に記載のコンピュータ・システム。 Said first computer comprises at least one input / output module;
A plurality of input / output devices coupled to at least one I / O module;
A computer system according to claim 26.
第1のコンピュータが、前記バスを通して、プル・コマンドを実行して、データを第2のコンピュータから読み取り、それを前記第1のコンピュータに配送するように、前記バスが、構成され、
前記第1のコンピュータが、前記バスを通して、プッシュ・コマンドを実行して、データを前記第2のコンピュータに送るように、前記バスが、構成され、
前記バスが、前記第2のコンピュータからのプッシュ・コマンド、又は前記第2のコンピュータからのプル・コマンドを許可せず、
前記バスのハードウェア回路が、前記第2のコンピュータが、前記第1のコンピュータのCPU又はメモリ・モジュールにアクセスすることを許可しない、
バス。 A bus designed to connect two computers,
The bus is configured such that a first computer executes a pull command over the bus to read data from the second computer and deliver it to the first computer;
The bus is configured such that the first computer executes a push command over the bus to send data to the second computer;
The bus does not allow a push command from the second computer or a pull command from the second computer;
A hardware circuit of the bus does not permit the second computer to access a CPU or a memory module of the first computer;
bus.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2017/018578 WO2018151735A1 (en) | 2017-02-20 | 2017-02-20 | Hacking-resistant computer design |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020508499A true JP2020508499A (en) | 2020-03-19 |
JP7027664B2 JP7027664B2 (en) | 2022-03-02 |
Family
ID=63170619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017540073A Active JP7027664B2 (en) | 2017-02-20 | 2017-02-20 | Hack-resistant computer design |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3583538A4 (en) |
JP (1) | JP7027664B2 (en) |
CN (1) | CN110337651A (en) |
SG (1) | SG11201706338WA (en) |
WO (1) | WO2018151735A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111428235A (en) * | 2020-02-21 | 2020-07-17 | 华东师范大学 | Bus controller decision protection method facing MI L-STD-1553B |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1083353A (en) * | 1996-04-08 | 1998-03-31 | Sony Corp | Information processing system, information processor and its method |
JP2007304954A (en) * | 2006-05-12 | 2007-11-22 | Sharp Corp | Computer system having memory protecting function |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6986052B1 (en) * | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
US7845005B2 (en) * | 2006-02-07 | 2010-11-30 | International Business Machines Corporation | Method for preventing malicious software installation on an internet-connected computer |
US8571598B2 (en) * | 2006-12-18 | 2013-10-29 | Intel Corporation | Method and apparatus for location-based wireless connection and pairing |
EP2143031A1 (en) * | 2007-05-09 | 2010-01-13 | International Business Machines Corporation IBM | A method and data processing system to prevent manipulation of computer systems |
US9152200B2 (en) * | 2009-06-23 | 2015-10-06 | Hewlett-Packard Development Company, L.P. | Resource and power management using nested heterogeneous hypervisors |
US8429735B2 (en) * | 2010-01-26 | 2013-04-23 | Frampton E. Ellis | Method of using one or more secure private networks to actively configure the hardware of a computer or microchip |
US11228427B2 (en) * | 2014-02-11 | 2022-01-18 | Ericsson Ab | System and method for securing content keys delivered in manifest files |
US9479331B2 (en) * | 2014-08-20 | 2016-10-25 | Apple Inc. | Managing security in a system on a chip (SOC) that powers down a secure processor |
US10063375B2 (en) * | 2015-04-20 | 2018-08-28 | Microsoft Technology Licensing, Llc | Isolation of trusted input/output devices |
-
2017
- 2017-02-20 SG SG11201706338WA patent/SG11201706338WA/en unknown
- 2017-02-20 WO PCT/US2017/018578 patent/WO2018151735A1/en active Application Filing
- 2017-02-20 JP JP2017540073A patent/JP7027664B2/en active Active
- 2017-02-20 EP EP17896907.7A patent/EP3583538A4/en not_active Withdrawn
- 2017-02-20 CN CN201780002517.6A patent/CN110337651A/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1083353A (en) * | 1996-04-08 | 1998-03-31 | Sony Corp | Information processing system, information processor and its method |
JP2007304954A (en) * | 2006-05-12 | 2007-11-22 | Sharp Corp | Computer system having memory protecting function |
Also Published As
Publication number | Publication date |
---|---|
EP3583538A4 (en) | 2020-11-04 |
WO2018151735A1 (en) | 2018-08-23 |
CN110337651A (en) | 2019-10-15 |
SG11201706338WA (en) | 2018-09-27 |
JP7027664B2 (en) | 2022-03-02 |
EP3583538A1 (en) | 2019-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11061832B2 (en) | Hacking-resistant computer design | |
US10691839B2 (en) | Method, apparatus, and system for manageability and secure routing and endpoint access | |
CN110073355B (en) | Server for providing secure execution environment and method for protecting firmware in nonvolatile memory on server | |
US9575790B2 (en) | Secure communication using a trusted virtual machine | |
US10972449B1 (en) | Communication with components of secure environment | |
CN110612517B (en) | Memory protection based on system state | |
US20150288659A1 (en) | Systems and Methods for Mutual Integrity Attestation Between A Network Endpoint And A Network Appliance | |
WO2010102409A1 (en) | Methods and systems for providing secure image mobility | |
EP3329416B1 (en) | Secure input/output device management | |
KR102407136B1 (en) | System for controlling network access based on controller and method of the same | |
RU130429U1 (en) | TERMINAL AND PROTECTED COMPUTER SYSTEM INCLUDING TERMINAL | |
JP7027664B2 (en) | Hack-resistant computer design | |
CN111886573A (en) | Secure sharing of storage resources |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200219 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210331 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210406 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210705 |
|
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: 20211201 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20211227 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20220124 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220126 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20220124 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7027664 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |