[go: up one dir, main page]

JP6695885B2 - ハッキング耐性のあるコンピュータ設計 - Google Patents

ハッキング耐性のあるコンピュータ設計 Download PDF

Info

Publication number
JP6695885B2
JP6695885B2 JP2017538238A JP2017538238A JP6695885B2 JP 6695885 B2 JP6695885 B2 JP 6695885B2 JP 2017538238 A JP2017538238 A JP 2017538238A JP 2017538238 A JP2017538238 A JP 2017538238A JP 6695885 B2 JP6695885 B2 JP 6695885B2
Authority
JP
Japan
Prior art keywords
partition
cpu
address range
data
computer system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2017538238A
Other languages
English (en)
Other versions
JP2018526691A (ja
JP2018526691A5 (ja
Inventor
エヌ. ニューマン、フランク
エヌ. ニューマン、フランク
ニューマン、ダン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Newman H R Computer Design LLC
Original Assignee
Newman H R Computer Design LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Newman H R Computer Design LLC filed Critical Newman H R Computer Design LLC
Publication of JP2018526691A publication Critical patent/JP2018526691A/ja
Publication of JP2018526691A5 publication Critical patent/JP2018526691A5/ja
Application granted granted Critical
Publication of JP6695885B2 publication Critical patent/JP6695885B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection 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/1433Protection 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 module or a part of a module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection 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/1441Protection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/031Protect user input by software means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/032Protect output to user by software means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Information Transfer Between Computers (AREA)

Description

ハッキング耐性のあるコンピューティング・デバイスを実施するためのコンピュータ・アーキテクチャが、開示される。
コンピュータに侵入するための一般的な方法は、インターネット又は他のネットワーク接続を通して、悪意のあるコンピュータ実行可能コード(マルウェア)をコンピュータに入れることによる。そのようなハッキングは、大きな脅威になっており、ハッキングの重大な事例が、広く報告されている。そのようなハッキングを阻止するための広く普及している手法は、マルウェアを識別し、無効化又は除去するためのソフトウェアに依存している。しかしながら、ハッカは、ますます巧妙になっており、一般に行われている保護は、十分ではない。
したがって、当技術分野には、ハードウェア手法を利用するハッキング耐性のあるコンピュータ・システム・アーキテクチャに対する必要性が存在する。そのようなハードウェア手法は、様々なアプリケーションのために様々なコンピュータから利用可能である。例えば、本発明で開示されるハードウェア手法を使用する銀行、企業、政府機関、又は個人は、それらのコンピュータの制御権を握って、コンピュータ上に記憶された機密データ、個人情報、又はパスワードを盗み、又は改ざんしようと試みることがあるハッカからかなりよく保護される。本明細書で開示されるハードウェア手法は、現在のソフトウェアベースのソリューションでは可能でない程度まで、ハッカを防御する。
ハッキング耐性のあるコンピューティング・デバイスを実施するためのコンピュータ・システム・アーキテクチャが、開示される。コンピュータ・システム・アーキテクチャは、インターネットから受け取った悪意あるコンピュータ実行可能コードが、重要なデータ・ファイルにアクセスすること、又は悪影響を及ぼすことを、重要なデータ・ファイルのインターネットへの直接アクセスをハードウェア的に制限すること、ならびに重要なデータ・ファイル、インターネットから受け取ったファイル、及びコンピュータ実行可能コードのメモリ・アドレスをハードウェア的に区分することによって防止する。メインフレーム・コンピュータ、パーソナル・コンピュータ、スマートフォン、又はネットワーク通信に適した他の任意のコンピューティング・デバイスとすることができる、コンピューティング・デバイスは、第1のパーティションと、第2のパーティションとを備える。第2のパーティションは、インターネットなどのネットワーク上で通信することができる。対照的に、第1のパーティションは、バスを通して第2のパーティションと、又は第1のパーティションに直接的に接続された入力/出力デバイスと直接的に通信することができる。結果として、第1のパーティションは、インターネット、及びインターネットに接続されたサーバなどの他の任意のデバイスに接続することをハードウェア的に制限される。第1のパーティションによるインターネットへのすべてのアクセスは、第1のパーティションと第2のパーティションとの間のハードウェア接続に限定され、その後、第2のパーティションが、インターネットに接続することができる。
さらに、第1のパーティションは、オペレーティング・システムを利用して、第1のパーティションのメモリ・アドレスを、コンピュータ実行可能コード、第1のパーティション上に記憶された重要なデータ・ファイル、及びバスを通して第2のパーティションから読み取られたデータ・ファイルの3つのセクションに区分する、ハードウェア回路を含む。この手法は、第1のパーティション内の3つの別個のメモリ・ユニットを使用することによっても、達成され得る。重要なデータ・ファイルを保護するために、第2のパーティションは、第1のパーティションのメモリ・アドレッシングから読み取る、又は第1のパーティションのメモリ・アドレッシングに書き込むことを、ハードウェア的に制限される。第2のパーティションのデータは、第1のパーティションのオペレーティング・システムによって実行される「プル」コマンドを通して、第1のパーティションに転送される。さらに、第2のパーティションは、第1のパーティションにデータを「プッシュ」すること、又は「プル」コマンドを送るように第1のパーティションを制御することはできない。第1のパーティションによって第2のパーティションからプルされるすべてのデータは、ハードウェア設計によって、第2のパーティションから読み取られたデータ・ファイル専用の第1のパーティションのメモリ・セクション内に記憶される。さらに、第1のパーティションは、ハードウェア制限によって、第2のパーティションから読み取られたデータ・ファイルが実行されることを防止する。結果として、第1のパーティション上に記憶された重要なプログラム及び重要なデータ・ファイルは、第2のパーティションに悪影響を及ぼすインターネット又は他の任意のソースからの悪意あるコードから保護される。
本発明の第1の実施態様によれば、第1のパーティションであって、
第1のCPUと、
少なくとも1つのメモリ・モジュールと、
少なくとも1つの書き込みモジュールと、
少なくとも1つのI/Oモジュールと、
少なくとも1つのデータ・ファイルを含む、少なくとも1つのデータ・ストアと、
メモリ・アドレッシング構造であって、
少なくとも1つのプログラム・コード用アドレス範囲と、
少なくとも1つの第1のパーティション・データ用アドレス範囲と、
少なくとも1つの第2のパーティション・データ用アドレス範囲と、
を備えるメモリ・アドレッシング構造と、
少なくとも1つの重要なデータ・ファイルと、
前記プログラム・コード用アドレス範囲内に記憶されたコンピュータ実行可能コードであって、前記コンピュータ実行可能コードが、オペレーティング・システムを含む、コンピュータ実行可能コードとからなり、
前記第1のCPUが、前記プログラム・コード用アドレス範囲内に記憶された前記コンピュータ実行可能コードだけを実行するように構成される、第1のパーティションと、
バスと、
第2のパーティションであって、
第2のCPUと、
少なくとも1つのデータ・ファイルを含む、少なくとも1つのデータ・ストアと、
ネットワークに結合された通信モジュールと
からなる第2のパーティションとからなる、コンピュータ・システムにおいて、
前記第1のパーティションが、前記バスを通して、前記第2のパーティションに相互接続され、
前記第1のパーティションが、前記第2のパーティションからデータを読み取るための、プル・コマンドを実行するように構成され、
前記第1のパーティションが、前記第2のパーティションにデータを書き込むための、プッシュ・コマンドを実行するように構成され、
前記少なくとも1つの書き込みモジュールが、前記第2のパーティションの前記少なくとも1つのデータ・ファイルを、前記バスを通して、前記第1のパーティションの前記少なくとも1つの第2のパーティション・データ用アドレス範囲に書き込むように構成され、
前記少なくとも1つの書き込みモジュールが、前記第1のパーティションの前記少なくとも1つのデータ・ファイルを、前記バスを通して、前記第2のパーティションの前記少なくとも1つのデータ・ストアに書き込むように構成され、
前記第1のパーティションが、前記第2のパーティションからのプッシュ・コマンドを制限するように構成され、
前記第1のパーティションが、前記第2のパーティションからのプル・コマンドを制限するように構成され、
前記第1のパーティションが、ハードウェア的に構成され、
前記第2のパーティションが、ハードウェア的に構成され、
前記第2のパーティションが、前記メモリ・アドレッシング構造にアクセスすることをハードウェア的に制限される、
コンピュータ・システムを要旨とする。
本発明の第2の実施態様は、第1の実施態様において、複数の入力/出力デバイスが、前記第1のパーティションの前記I/Oモジュールに結合されることを要旨とする。
本発明の第3の実施態様は、第1の実施態様において、前記プログラム・コード用アドレス範囲が、第1のメモリ・ユニットからなり、
前記第1のパーティション・データ用アドレス範囲が、第2のメモリ・ユニットからなり、
前記第2のパーティション・データ用アドレス範囲が、第3のメモリ・ユニットからなることを要旨とする。
本発明の第4の実施態様は、第1の実施態様において、
前記第1のパーティション及び第2のパーティションからなるチップをさらに備えることを要旨とする。
本発明の第5の実施態様は、第1の実施態様において、前記第1のパーティションからなる第1のチップと、前記第2のパーティションからなる第2のチップとをさらに備えることを要旨とする。
本発明の第6の実施態様は、第1の実施態様において、オン位置及びオフ位置を備える、少なくとも1つの外部物理スイッチをさらに備え、前記外部物理スイッチの前記オン位置が、前記少なくとも1つの書き込みモジュールが、前記第1のパーティションの前記プログラム・コード用アドレス範囲にアクセスすることを可能にすることを要旨とする。
本発明の第7の実施態様は、第1の実施態様において、前記少なくとも1つの書き込みモジュールが、フィールド・プログラマブル・ゲート・アレイからなることを要旨とする。
本発明の第8の実施態様は、第1の実施態様において、前記書き込みモジュールが、前記第1のパーティションの前記少なくとも1つのデータ・ストア、前記少なくとも1つのプログラム・コード用アドレス範囲、前記少なくとも1つの第1のパーティション・データ用アドレス範囲、又は前記少なくとも1つの第2のパーティション・データ用アドレス範囲から、前記第2のパーティションに書き込むように構成されることを要旨とする。
本発明の第9の実施態様は、第1の実施態様において、前記第1のCPUが、前記プログラム・コード用アドレス範囲内に記憶された前記コンピュータ実行可能コードだけを実行するようにハードウェア的に構成されることを要旨とする。
本発明の第10の実施態様は、少なくとも1つのパーティション・コンピュータであって、
第1のパーティションであって、
少なくとも1つのCPUと、
少なくとも1つのメモリ・モジュールと、
少なくとも1つの書き込みモジュールと、
少なくとも1つのI/Oモジュールと、
少なくとも1つのデータ・ストアと、
メモリ・アドレッシング構造であって、
少なくとも1つのプログラム・コード用アドレス範囲と、
少なくとも1つの第1のパーティション・データ用アドレス範囲と、
少なくとも1つの第2のパーティション・データ用アドレス範囲と、
を備えるメモリ・アドレッシング構造と
からなる第1のパーティションと、
バスと、
第2のパーティションであって、
少なくとも1つのCPUと、
少なくとも1つのメモリ・モジュールと、
少なくとも1つのデータ・ファイルを含む、少なくとも1つのデータ・ストアと、
外部ネットワークに通信可能に結合された通信モジュールと
からなる第2のパーティションとからなり、
前記第1のパーティションが、前記バスを通して、前記第2のパーティションに相互接続され、
前記第1のパーティションの前記少なくとも1つのCPUが、前記第2のパーティションからのプッシュ・コマンド及び前記第2のパーティションからのプル・コマンドを制限するように構成され、
前記第2のパーティションが、前記第2のパーティションの前記データ・ファイルを、前記第1のパーティションの前記メモリ・アドレスに書き込むことはできない、
少なくとも1つのパーティション・コンピュータと、
前記少なくとも1つのI/Oモジュールと通信可能に結合された、少なくとも1つの別個のコンピュータとからなる、コンピュータ・システムにおいて、
前記少なくとも1つの別個のコンピュータが、外部ネットワークに通信可能に結合されず、
前記少なくとも1つの別個のコンピュータが、少なくとも1つの重要なデータ・ファイル及び少なくとも1つのデータ・セグメントを含み、
前記少なくとも1つの書き込みモジュールが、前記少なくとも1つの別個のコンピュータから読み取り、又は前記少なくとも1つの別個のコンピュータに書き込むように構成され、
前記第2のパーティションが、前記少なくとも1つの別個のコンピュータから読み取ること、又は前記少なくとも1つの別個のコンピュータに書き込むことはできず、
前記少なくとも1つの別個のコンピュータが、前記第2のパーティションから読み取ること、又は前記第2のパーティションに書き込むことはできず、
前記第1のパーティションが、ハードウェア的に構成され、
前記第2のパーティションが、ハードウェア的に構成され、
前記第2のパーティションが、前記メモリ・アドレッシング構造にアクセスすることをハードウェア的に制限される、コンピュータ・システムを要旨とする。
本発明の第11の実施態様は、第10の実施態様において、前記第2のパーティションの前記通信モジュールが、ネットワークに結合されることを要旨とする。
本発明の第12の実施態様は、第11の実施態様において、前記少なくとも1つの書き込みモジュールが、フィールド・プログラマブル・ゲート・アレイからなることを要旨とする。
本発明の第13の実施態様は、第11の実施態様において、前記少なくとも1つのプログラム・コード用アドレス範囲が、第1のメモリ・ユニットからなり、前記少なくとも1つの第1のパーティション・データ用アドレス範囲が、第2のメモリ・ユニットからなり、前記少なくとも1つの第2のパーティション・データ用アドレス範囲が、第3のメモリ・ユニットからなることを要旨とする。
本発明の第14の実施態様は、第10の実施態様において、外部ネットワークに通信可能に結合された、第2の別個のコンピュータをさらに備え、
前記第2のパーティションが、I/Oモジュールを備え、
前記第2の別個のコンピュータが、前記第2のパーティションの前記I/Oモジュールに結合され、
前記第2の別個のコンピュータが、重要なファイルを保有せず、
前記第2の別個のコンピュータが、前記第2のパーティションに書き込むこと、及び前記第2のパーティションから読み取ることができることを要旨とする。
本発明の第15の実施態様は、第14の実施態様において、複数の入力/出力デバイスが、前記第1のパーティションの前記I/Oモジュールに結合されることを要旨とする。
本発明の第16の実施態様は、第14の実施態様において、前記第1のパーティション及び第2のパーティションからなるチップをさらに備えることを要旨とする。
本発明の第17の実施態様は、第14の実施態様において、前記第1のパーティションからなる第1のチップと、前記第2のパーティションからなる第2のチップとをさらに備えることを要旨とする。
本発明の第18の実施態様は、第14の実施態様において、オン位置及びオフ位置を備える、少なくとも1つの外部物理スイッチをさらに備え、前記外部物理スイッチの前記オン位置が、前記書き込みモジュールが、前記第1のパーティションの前記プログラム・コード用アドレス範囲にアクセスすることを可能にすることを要旨とする。
本発明の第19の実施態様は、第10の実施態様において、前記書き込みモジュールが、前記第1のパーティションの前記少なくとも1つのデータ・ストア、前記少なくとも1つのプログラム・コード用アドレス範囲、前記少なくとも1つの第1のパーティション・データ用アドレス範囲、又は前記少なくとも1つの第2のパーティション・データ用アドレス範囲から、前記第2のパーティションに書き込むように構成されることを要旨とする。
本発明の第20の実施態様は、第10の実施態様において、前記第1のパーティションの前記少なくとも1つのCPUが、前記少なくとも1つのプログラム・コード用アドレス範囲内に記憶されたコンピュータ実行可能コードだけを実行するようにハードウェア的に構成されることを要旨とする。
詳細な説明は、添付の図を参照する。
例示的なネットワーク図。 本発明の様々な実施形態による、ハッキング耐性のあるコンピューティング・デバイスを実施するためのコンピュータ・システム・アーキテクチャを示すブロック図。 好適な実施形態による、コンピューティング・デバイスのメモリ・アドレッシングを示す図。 好適な実施形態による方法を示すフローチャート。 既存のコンピュータ・アーキテクチャを利用するコンピューティング・デバイスとともに使用するために適合させられた、本発明の実施形態を示すブロック図。 既存のコンピュータ・アーキテクチャを利用するコンピューティング・デバイスとともに使用するために適合させられた、本発明のソフトウェア実施形態を示すブロック図。
本発明の他の目的、特徴、及び特性、ならびに構造及び部分の組み合わせの関連要素の動作及び機能の方法は、添付の図面を参照して以下の詳細な説明を検討することでより明らかになるであろう。添付の図面のすべては、本明細書の一部を形成する。
本発明の詳細で説明的な実施形態が、本明細書で開示される。しかしながら、本発明による技法、方法、工程、システム、及び動作構造は、多種多様な形態及び様式で具体化されてよく、それらのいくつかは、開示された実施形態におけるそれらとまったく異なってよい。結果として、本明細書で開示される特定の構造的及び機能的詳細は、代表的なものにすぎないが、それでも、その点において、それらは、開示の目的で最良の実施形態を提供すると見なされる。
文脈が明らかに別のことを要求していない限り、本説明及び特許請求の範囲のどこにおいても、「comprise(含む/備える)」及び「comprising(含む/備える)」などの語は、排他的又は網羅的ではなく、包含的な意味に、すなわち、「including, but not limited to(限定することなく、〜を含む)」の意味に解釈されるべきである。本明細書で使用される場合、「connected
(接続される)」、「coupled(結合される)」という用語、又はそれらのいずれの変化形も、2つ以上の要素間の、直接的又は間接的な、電子的又は非電子的な、任意の接続又は結合を意味し、要素間の接続の結合は、物理的、論理的、又はそれらの組み合わせとすることができる。加えて、「herein(本明細書で)」、「above(上で)」、「below(下で)」という語、及び同様の趣旨の語は、本明細書で使用される場合、本明細書のいずれか特定の部分ではなく、本明細書を全体として参照するものとする。文脈が許す場合、単数形又は複数形で使用される「発明を実施するための形態」内の語は、それぞれ、複数又は単数を含んでもよい。2つ以上の項目からなるリストに関する「or(又は)」という語は、この語についての以下の解釈のすべて、すなわち、リスト内の項目のいずれか、リスト内の項目のすべて、及びリスト内の項目の任意の組み合わせを包含する。以下に、図を参照する、本発明の好適な実施形態についての詳細な説明を提示する。
最初に図1を参照すると、ハッキング耐性のあるコンピューティング・デバイスの例示的なネットワーク図が、示されている。コンピューティング・デバイス300は、任意の大規模商用又は政府コンピュータ又は「メインフレーム」、タンデムで動作する1組のリンクされたコンピュータ、限定することなく、モバイル電話、セルラ電話、スマート電話、ラップトップ・コンピュータ、ネットブック、パーソナル・デジタル・アシスタント(PDA)、家電、住宅用もしくは商用建物コントローラ、又はネットワーク通信に適した他の任意のコンピューティング・デバイスを含む、単一のパーソナル・コンピュータ(PC)又はモバイル通信デバイスを含むことができる。コンピューティング・デバイス300は、第1のパーティション100と、第2のパーティション200とを備える。第1のパーティション100は、キーボード、データ記憶デバイス、及びプリンタなどの、入力/出力デバイスに直接的に相互接続される。大規模使用のための実施形態では、第1のパーティションは、コンピューティング・デバイスのユーザの制御下にある物理的ロケーション内に存在する、より小型のコンピュータ又はPCに直接的な配線によって接続され得る。この実施形態では、ユーザは、より小型のコンピュータ又はPCが、ワイヤ、ケーブル、又はWi−Fiを含む任意の形態のインターネット接続を行えないようにすることができる。第2のパーティション200は、ネットワーク500上で端末600と通信する。図2を参照して以下で詳細に説明されるように、第1のパーティション100は、バスを使用して、第2のパーティション200と直接的に通信することができるが、第1のパーティション100は、ネットワーク500と通信することを、ハードウェア的に制限される。好適な実施形態では、第1のパーティションのCPUは、第2のパーティションのメモリ及び第2のパーティションのCPUに直接的にアクセスすることができるが、第2のパーティションのCPUは、第1のパーティションのメモリ及び第1のパーティションのCPUにアクセスすることを、ハードウェア的に制限される。
ネットワーク500は、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、セルラ・ネットワーク、衛星ネットワーク、それらの組み合わせ、又はコンピューティング・デバイス300へのデータの転送、及び/もしくはコンピューティング・デバイス300からのデータの受信を可能にする他の任意のネットワークとすることができる。ネットワーク500を通してコンピューティング・デバイス300に送信されたデータ、又はコンピューティング・デバイス300から端末600に送信されたデータは、標準的な電気通信プロトコル又は標準的なネットワーキング・プロトコルを利用して、送信及び/又は受信され得る。好適な実施形態では、システムは、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)を利用し、ネットワーク500は、インターネット及び/又はイントラネットである。データを送信及び/又は受信するためのプロトコルの他の例は、限定することなく、ボイス・オーバ・インターネット(VOIP)プロトコル、ショート・メッセージ・サービス(SMS)、BLUETOOTH(登録商標)無線送信、及び移動体通信用グローバルシステム(G
SM(登録商標))を含む。ネットワーク500は、コンピューティング・デバイス300及び端末600の1つ又は複数のプロトコルを利用することが可能である。さらに、ネットワーク500は、他のプロトコルに変換すること、又は他のプロトコルから端末600の1つもしくは複数のプロトコルに変換することができる。いくつかの状況では、セカンダリ・パーティション200は、コンピューティング・デバイス300上に記憶された重要なデータ・ファイルにアクセスしようと、又は悪影響を及ぼそうと試みる、悪意あるコンピュータ実行可能コードにさらされる。図2及び図3を参照して以下で説明されるように、好適な実施形態は、そのようなマルウェアが、第1のパーティション100の重要なデータ・ファイル及びメモリにアクセスすること、又は悪影響を及ぼすことを防止する。
ここで図2を参照すると、インターネットからの、及びネットワーク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は、コンピュータ実行可能コードを実行するためのオペレーティング・システムを含む。図3を参照して以下で詳細に説明されるように、CPU104は、メモリ106及びデータ・ストア107、108のプログラム・コード用アドレス範囲上に記憶されたコンピュータ実行可能コードだけを実行することができる。これは、(この実施形態によって、それ自体がマルウェアから保護された)CPU104のオペレーティング・システムによる、及びハードウェア回路による制御を通して達成される。現在のコンピュータ・システム・アーキテクチャの根本的な弱さは、インターネットを通してコンピュータに達した悪意あるコンピュータ実行可能コードに、しばしば実行制御が引き渡されることである。本実施形態は、インターネットから第2のパーティションにダウンロードされた悪意あるコンピュータ実行可能コードのいかなる実行も制限する。
コンピューティング・デバイス300は、第2のパーティション200をさらに備える。第2のパーティション200は、第2のパーティションのバス202に相互接続されたCPU204を備える。少なくとも1つのメモリ206が、第2のパーティションのバス202を通して、CPU204に相互接続される。通信モジュール210は、第2のパーティション200が、ネットワークを通して端末と通信することを可能にする。コンピュータ・システム・アーキテクチャは、少なくとも1つのデータ・ストア208をさらに含む。データ・ストア208は、重要であると見なされないデータ・ファイルの記憶用である。第2のパーティション200は、コンピュータ実行可能コードを実行するためのオペレーティング・システムを含む。図3を参照して以下で詳細に説明されるように、CPU204は、メモリ206のアドレス範囲全体及びデータ・ストア208からのコンピュータ実行可能コードを実行することができる。
図2に示されるように、第1のパーティション100は、バス302を通して、第2のパーティション200に直接的に相互接続される。加えて、好適な実施形態では、CPU
104は、セカンダリ・パーティション200のメモリ206のアドレス範囲全体及びデータ・ストア208に書き込むことができる。この設計の1つの利点は、悪意あるコンピュータ実行可能コードによって悪影響を及ぼされた第2のパーティション200のオペレーティング・システム及びデータ・ファイルを、第1のパーティション100が回復できることである。加えて、CPU104は、メモリ206のアドレス範囲全体及びデータ・ストア208からデータを読み取ることができるが、CPU104による「読み取り」コマンド(プル)だけによって、それを行うことができる。CPU104は、ハードウェア制限によって、第2のパーティション200によってCPU104にプッシュされたいかなるデータ又は他のファイルも受け入れることはできない。加えて、第2のパーティション200は、いかなるデータも第1のパーティション100からプルすることはできない。さらに、第1のパーティション100のオペレーティング・システム及びサポーティング・プログラムは、CPU104が第2のパーティション200から受け入れるデータのフォーマット及び他のファイル特性を定義する。適切な予想された形式を取らないファイルを第1のパーティション100に提供しようとする、第2のパーティション200によるいずれの試みも、CPU104によって拒否される。図3を参照して以下で詳細に説明されるように、CPU104によってセカンダリ・パーティション200から読み取られるすべてのデータ・ファイルは、メモリ106の第2のパーティション用アドレス範囲及び/又はデータ・ストア108に書き込まれる。CPU104は、メモリ106のプログラム・コード用アドレス範囲及びデータ・ストア107上に記憶されたコンピュータ実行可能コードだけしか実行できないので、第1のパーティション100は、セカンダリ・パーティション200上に記憶されたいかなる悪意あるコンピュータ実行可能コードからも保護される。
図2で説明されたコンピュータ・システム・アーキテクチャは、限定することなく、大型メインフレーム・コンピュータ、パーソナル・コンピュータ、パッド、タブレット、及びスマートフォンを含む、様々なコンピューティング・デバイスに適用され得る。さらに、コンピュータ・システム・アーキテクチャは、新しい製品に適用され得、又は既存のコンピュータ設計に適合させ得る。図2で説明されたコンピュータ・アーキテクチャは、1組のチップとして開示されるが、その技法は、コンピュータ・システムが、本明細書で開示される原理に従って設計されるならば、2つの別個のコンピュータ・システムを有するシステムに適用されてよい。2つの別個のコンピュータ・システムを有する実施形態では、(第1のパーティションのそれと同様の役割を有する)第1のコンピュータ・システムは、悪意あるコードから保護される重要なデータ・ファイルを記憶し、一方、(第2のパーティションのそれと同様の役割を有する)第2のコンピュータ・システムは、リモート端末と通信する。さらに、第1のコンピュータ・システムは、第2のコンピュータ・システムに直接的に接続される。
次に図3を参照すると、第1のパーティション及び第2のパーティションのメモリ・アドレッシングが、示されている。(図2に示されるメモリ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つの別個のメモリを利用することも可能であることは、当業者に明らかである。
また別の程度のハードウェア保護が、プログラム・コード用アドレス・ブロック702内のプログラムに対して実施され得る。これは、頻繁には更新されず、プログラム・コード用アドレス・ブロック702内のプログラムと関連付けられた、非常に重要なデータ・ファイルを含むことができる。プログラム・コード用アドレス・ブロック702の内容を更新するためのアクセスは、第1のパーティション100に直接的に接続されたデバイスに限定される。CPU104、バス102、及びI/Oモジュール110の組み合わせは、オプションのハードウェア・スイッチを用いて、プログラム・コード用アドレス・ブロック702の内容を変更できるようになるには、権限を与えられた人員によってスイッチをオンにする必要があるように、制御され得る。結果として、プログラム・コード用アドレス・ブロック702に対するいかなる更新も、更新を提供する直接的に接続されたデバイスにおける権限を与えられた人員によるアクセスと、スイッチをオンにする権限を与えられた人員による独立したアクションとの両方を必要とする。非常に安全なシステムのために、この設計は、権限を与えられた直接的に接続されたユーザであっても、プログラム・コード用アドレス・ブロック702内に記憶されたプログラム又は非常に重要なデータを変更しようと不適切に(不注意から、又は意図的に)試みる場合には、それを防止する、より高い程度の保護を提供する。
対照的に、第2のパーティションのCPUは、第2のパーティションのメモリ・アドレス800を対象にした読み取り及び書き込みに限定される。図3に示されるように、データ又はプログラム・コードは、当技術分野において知られた技法を利用して、第2のパーティションのメモリ・アドレス800のアドレス範囲全体を対象にして読み取られ得、又は書き込まれ得る。しかしながら、第2のパーティションのCPUは、第1のパーティションのメモリ・アドレスにアクセスすること、又はそれを変更することを、ハードウェア的に制限される。この設計は、第2のパーティションのCPUが、インターネットを通してリモート端末から来た第2のパーティションに悪影響を及ぼした悪意あるコンピュータ実行可能コードを、第1のパーティションに書き込むことを防止する。さらに、第1のパーティションのCPUは、第2のパーティションのメモリ・アドレス800に直接的にアクセスすることができ、それは、第1のパーティションと第2のパーティションとを相互接続するバス上でのアクティビティによって引き起こされる遅延を回避することによって、第1のパーティションのCPUの読み取り及び書き込み性能を向上させる。第1のパーティションのCPUは、メモリ・アドレス800から読み取って、第2のパーティションから読み取られたデータに専用される第2のパーティション・データ用アドレス・ブロック706にだけ入れることができる。
図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のパーティションの実行可能コード内に入れることはできず、したがって、いかなる重要なデータ・ファイルにもアクセスすることができず、又はそれらに悪影響を及ぼすことができない。
第1のパーティションを保護するのに加えて、好適な本実施形態は、第1のパーティションが、悪意あるコンピュータ実行可能コードによって悪影響を及ぼされた第2のパーティションのデータ・ファイルを回復することを可能にすることができる。悪意あるコンピュータ実行可能コードは、第2のパーティション、ならびにスクリーン及びキーボードに対するそれの制御を混乱させることができ、それによって、ユーザが、第2のパーティションを通してリモート端末にアクセスすることを妨げる。1実施形態では、第1のパーティションは、キーストローク・シーケンスを利用して、第1のパーティションに直接的に接続されたユーザが、悪意あるコンピュータ実行可能コードによって悪影響を及ぼされたセカンダリ・パーティションのスクリーン及びキーボードの制御ならびにプログラム制御を行うように、第1のパーティションのCPUに命令することを可能にする、ハードウェア機能を含む。第1のパーティションに直接的に接続された権限を与えられたユーザは、第1のパーティションを通して、第2のパーティション上の保護ソフトウェアを開始することができる。ユーザは、第2のパーティションのメモリ及び/もしくはデータ・ファイルを完全に消去して、悪意あるコンピュータ実行可能コードを削除するように、又は第2のパーティションを、そのような悪意あるコードのない以前にセーブされた状態に回復するように、第1のパーティションに命令することもできる。この実施形態では、第2のパーティションのオペレーティング・システム及びアプリケーションは、第1のパーティションによって記録される。結果として、第1のパーティションは、悪意あるコンピュータ実行可能コードを削除した後、第2のパーティションのオペレーティング・システム及びアプリケーションを回復することができる。第2のパーティションは、悪意あるコードの削除後、動作可能になり、それによって、コンピューティング・デバイスのための、リモート端末へのアクセスを可能にする。
加えて、好適な実施形態は、様々なタイプの保護ソフトウェアを導入することを現実的にする。上で説明されたように、好適な実施形態は、悪意あるコンピュータ実行可能コードが、第1のパーティションのプログラム・コード又はデータ・ファイルにアクセスし、悪影響を及ぼすことを防止するために、様々なハードウェア方法を利用する。そのような方法は、限定することなく、第1のパーティションのインターネットを通したリモート端末への直接アクセスを防止すること、及び第1のパーティションのメモリ・アドレッシングを制限することを含む。この設計は、セカンダリ・パーティションからの第1のパーティションのデータ・ファイルを求める要求を制限するが、コンピューティング・デバイスの他の態様は、当技術分野において知られた通常のコンピュータ・システムのように動作する。例えば、第1のパーティションのCPUが、第2のパーティションからデータを読み取ったとき、第1のパーティションのCPUは、データの個々のアイテムがセカンダリ・パーティションに送り戻されることを求める要求をしばしば受け取る。この要求された情報は、その後、第2のパーティションによって、ネットワーク上でリモート端末に転送され得る。好適な実施形態は、そのようなデータ要求が、個別に、又はある期間にわたるまとまりとして、疑わしくないかどうかをチェックするために、保護プログラムが第1のパーティションのCPUによって実行されることを可能にする。例示的な疑わしいデータ要求は、第1のパーティション上のソフトウェアによって財務情報にマッピングされた重要なデータ・ファイルを第2のパーティション上のプログラムが要求するものである。結果として、第1のパーティションのCPUは、疑わしいアクティビティが検出された場合、第1のパーティションに直接的に接続された権限を与えられた個人の介入を求める要求を含む、適切な検証の手段を開始することができる。さらなる例では、第1のパーティションのハードウェア保護されたプログラム・コードは、ファイル全体又は重要なデータ・ファイルのフル・セットの代わりに、データの特定のアイテムだけを第2のパーティションに送るようにプログラムされる。例示的なプログラムは、パスワード及びクレジットカードのセキュリティ・コードなどの機密データを第2のパーティションに送ることを、拒否することもできる。知られたシステムでは、悪意あるコンピュータ実行可能コードは、重要なデータ・ファイルに直接的にアクセスすることができ、保護プログラムを改変することができるので、そのようなプログラムは、現実的ではない。
本発明は、アプリケーションのためのハードウェア「サンドボックス」を生成することによって、モバイル・デバイスのアーキテクチャに組み込まれてもよい。現在、いくつかのセルフォン用オペレーティング・システム上で使用されている、ソフトウェア「サンドボックス」と同様に、これは、他の重要なメモリへのアクセスを制限しながら、いくつかの機能及びデータへのアクセスをアプリケーションに許可する。それら既存の方法とは異なり、この実施形態は、悪意あるコンピュータ実行可能コードのアクセスに対するハードウェア制限を提供する。すべての補助プログラムは、セカンダリ・パーティション内にロードされるので、重要なデータ及びオペレーティング・システム自体は、いかなるアプリケーションによる改変からも保護され得る。
加えて、本発明は、それのプライマリ・インターフェースが、コンピューティング以外の機能用である、ネットワーク接続されたデバイスを保護するために使用され得る。冷蔵庫及びエアコンなどの家電は、インターネットに接続するように設計されることが増えている。そのようなデバイスも、インターネット上で、又はネットワークを通して受け取られた、悪意あるコンピュータ実行可能コードから、プライマリ・パーティションの機能を遮蔽するために、好適な実施形態のコンピュータ・システム・アーキテクチャを用いるように設計され得る。他の「スマート・ホーム」及び「スマート・ビルディング」デバイス、ならびに乗物内のコンピュータ対応のコンソールも、対応するコンピュータ・システム・アーキテクチャの使用を行ってよい。
好適な実施形態は、統合された新しいコンピュータ・システム・アーキテクチャに関連して説明されたが、本発明は、好適な実施形態の主要な機能を利用するハードウェア及びソフトウェアの組み合わせと併せて、既存のアーキテクチャを利用する、コンピューティング・デバイスに適合され得る。そのような実施形態は、既存のコンピュータに大きな投資を行っており、それらを使用し続けたいが、ハッキングに対する改善された保護を望んでいるユーザに対して、有益なことがある。1実施形態では、統合されたシステムの第1のパーティションは、重要なファイル及びプログラムのほとんどを保有することができる、既存のコンピュータに接続され得る。結果として、そのコンピュータは、統合されたシステムの第1のパーティションについて上で説明されたように、インターネット及び他の外部ソースから隔離される。第1のパーティションは、バス又はI/Oモジュールを通して、コンピュータと通信し、それに対する読み取り及び書き込みを行うことができ、コンピュータは、ハードウェア及びオペレーティング・システムによって、マルウェアから保護される。
第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は、図6を参照して以下で詳細に説明されるように、オペレーティング・システム手法の使用を通して、ある程度の保護を達成することができる。しかしながら、そのような保護は、限定的であり、巧妙なハッカによるセキュリティ侵害を受けやすい。好適な本実施形態のハードウェア設計及び技法を使用して、第2のコンピュータ1400に悪影響を及ぼすいかなる悪意あるコンピュータ実行可能コードからも第1のコンピュータ1300を保護する、コンピューティング・デバイス1000も利用したほうが、はるかに高度な保護が得られる。コンピューティング・デバイス1000は、上で説明された完全に統合されたシステムのアーキテクチャの多くを具体化して、第1のコンピュータ1300が、第2のコンピュータ1400によってインターネットから受け取られたデータ及び要求を、第1のコンピュータ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と直接的に通信することを、ハードウェア的に制限される。第2のパーティション1200は、通信モジュール1210をさらに備える。通信モジュール1210は、第2のパーティション1200が、インターネットなどのネットワークを通して通信することを可能にする。結果として、通信モジュール1210は、インターネットからのデータにアクセスするために、第2のコンピュータ1400を利用する代わりに、インターネットからのデータにアクセスするために、第1のコンピュータ1300によって利用され得る。
コンピュータ1300及びコンピューティング・デバイス1000は、キーボード、データ記憶デバイス、及びプリンタなどの入力/出力デバイスに直接的に相互接続される。大規模使用のための実施形態では、コンピュータ1300及びコンピューティング・デバイス1000は、直接的な配線によって、コンピューティング・デバイスのユーザの制御下にある物理的ロケーションに存在する、より小型のコンピュータ又はPCに接続され得る。この実施形態では、ユーザは、より小型のコンピュータ又はPCが、ワイヤ、ケーブル、又はWi−Fiを含む任意の形態のインターネット接続を行えないようにすることができる。コンピューティング・デバイス1000は、ネットワーク上でリモート端末と通信することを、ハードウェア的に制限される。コンピュータ1300は、好適には、他の手段によって、例えば、コンピュータ1300のオペレーティング・システムにおいてリモート接続を行えないようにすることによって、ネットワーク上でリモート端末と通信することを制限される。
第1のコンピュータ1300は、第1のパーティション1100のI/Oモジュール1110に直接的に接続される。I/Oモジュール1110は、USBポート、eSATA、又はコンピューティング・デバイス1000を第1のコンピュータ1300に接続するための任意の知られた通信インターフェースとすることができる。第1のパーティション1100は、CPU1104と、メモリ1106と、少なくとも1つのデータ・ストア1108とをさらに備え、それらは、バス1102によって相互接続される。図3を参照して上で詳細に説明されたように、CPU1104は、メモリ1106のプログラム・コード用アドレス範囲、及びデータ・ストア1108上に記憶されたコンピュータ実行可能コードだけを実行することができる。これは、(本実施形態によって、それ自体がマルウェアから保護された)CPU1104のオペレーティング・システムによる、及びハードウェア回路による制御を通して達成される。
この実施形態では、ソフトウェアは、第1のコンピュータ1300上で動作しており、それは、CPU1104が、データを送り、第1のコンピュータ1300からデータを受け取ることを可能にする。ソフトウェアは、第1のコンピュータ1300のユーザが、第1のコンピュータ1300のためのメモリのエリアを、重要なプログラムと、重要なデータ・ファイルと、コンピューティング・デバイス1000から受け取ったデータ及び要求とに区分することを可能にする。加えて、ソフトウェアは、第1のコンピュータ1300のCPUが、コンピューティング・デバイス1000から受け取ったファイルを有するメモリ・セグメントに対する実行制御を引き渡すことを防止する。実行制御からメモリ・セグメントを分離するためのコンピュータ・セキュリティの1例は、サンドボックス・セキュリティ・メカニズムの使用である。第1のパーティション1100は、バス1002を通して、第2のパーティション1200に直接的に相互接続される。CPU1104は、セカンダリ・パーティション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上に記憶されたいかなる悪意あるコンピュータ実行可能コードからも保護される。
この実施形態では、第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は、上で説明された追加の保護スイッチ及び保護ソフトウェアも利用することができる。
また別の実施形態では、図6は、ソフトウェア・ソリューションとともに既存のアーキテクチャを利用するコンピューティング・デバイスに適合された、本発明を示している。ソフトウェア・ソリューションは、悪意ある実行可能コンピュータ・コードの影響を受けやすいことがあるが、それは、重要なデータ・ファイルへのアクセスを制限すること、第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上の実行可能コードのポイントに達することを阻止される。
第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のコンピューティング・リソースにアクセスすることを制限される。
この実施形態では、第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から転送されたいかなる悪意ある実行可能コードも実行しない。
第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を参照して上で詳細に説明された方法を利用することができる。
図6で開示された実施形態は、第1のコンピュータのプログラム及びデータを、悪意あるコンピュータ実行可能コードから保護するために、仮想環境を利用するが、開示された技法(すなわち、重要なデータ・ファイルへのアクセスを制限し、第1のコンピュータへのプログラム実行アクセスを制限し、第2のコンピュータからのいかなる入力にもプログラム制御を与えないようにするソフトウェア)は、仮想環境を使用せずに、第1及び第2のコンピュータのオペレーティング・システムに直接的に適用されてよい。いずれのケースでも、そのような実施形態は、ハッキングのリスクを低減することができるが、ソフトウェア保護ばかりでなくハードウェアも利用することができる、好適な実施形態における完全に統合されたシステムによって与えられる、より高度な保護を提供することはできない。
本発明は、主に好適な実施形態を参照して説明され、その説明は、本発明の完全な開示を行うことを目的として、かなり詳細に行われたが、説明された好適な実施形態及び他の実施形態は、例示的なものにすぎず、限定的であること、又は本発明のすべての態様の網羅的な列挙を表すことは意図されていない。さらに、本発明の主旨及び原理から逸脱することなく、数々の変更がそのような詳細に施されてよいことが、当業者には明らかであろう。本発明は、それの必須の特性から逸脱することなく、他の形態でも具体化されることが可能であることを理解されたい。

Claims (46)

  1. 第1のパーティションと第2のパーティションとを有するコンピュータ・システムにおいて、
    前記第1のパーティションは、
    第1のCPUと、
    第1のメモリ・モジュールとを備え、前記第1のメモリ・モジュールは
    少なくとも1つのプログラム・コード用メモリ・アドレス範囲であって、プログラム・コードはコンピュータ実行可能コードを含んでなり、前記プログラム・コード用メモリ・アドレス範囲はハードウェア・スイッチによって変更からハードウェアの保護がなされる、プログラム・コード用メモリ・アドレス範囲と、
    第1のパーティション・データ用の少なくとも1つのメモリ・アドレス範囲と、
    前記第2のパーティションから読み取ったデータのための少なくとも1つのメモリ・アドレス範囲とを有し、
    前記第1のCPUは前記プログラム・コード用メモリ・アドレス範囲で前記コンピュータ実行可能コードのみを実行するようにハードウェア的に構成してあり、
    前記第2のパーティションは、
    第2のCPUと、
    第2のメモリ・モジュールと、
    ネットワークに接続されるための少なくとも1つの通信モジュールとを備え、
    前記第1のCPUは前記第2のメモリ・モジュールにアクセスするように構成され、
    前記第1のCPUは、前記第2のパーティションから読み取ったデータのための少なくとも1つのメモリ・アドレス範囲のみに前記第2のパーティションからのデータを読み取るように構成され、
    前記第2のCPUは前記第1のCPU又は前記第1のメモリ―モジュールにアクセスすることを制限されている、コンピュータ・システム。
  2. 少なくとも1つのプログラム・コード用メモリ・アドレス範囲はハードウェア回路によって構成される、請求項1に記載のコンピュータ・システム。
  3. 前記ハードウェア・回路は少なくとも1つのフィールド・プログラマブル・ゲート・アレイを含んでなる、請求項2に記載のコンピュータ・システム。
  4. 前記第1のメモリ・モジュールは、
    前記少なくとも1つのプログラム・コード用メモリ・アドレス範囲を有する第1のメモリ・ユニットと、
    前記第1のパーティション・データ用の少なくとも1つのメモリ・アドレス範囲を有する第2のメモリ・ユニットと、
    前記第2のパーティションから読み取ったデータのための少なくとも1つのメモリ・アドレス範囲を有する第3のメモリ・ユニットとを備える、請求項1に記載のコンピュータ・システム。
  5. 前記プログラム・コードはオペレーティング・システムを含んでなる、請求項1に記載のコンピュータ・システム。
  6. 少なくとも1つのデータ・ストアを備える、請求項1に記載のコンピュータ・システム。
  7. 前記第1のCPUが前記第2のメモリ・モジュールにアクセスする能力はハードウェア回路によって実行され、
    前記第2のパーティションに対する、第1のCPU又は第1のメモリ・モジュールへのアクセスの制限はハードウェア回路によって実行される、請求項1に記載のコンピュータ・システム。
  8. 前記第1のパーティションに直接に接続した外部デバイスを使用するハードウェア要素は、前記第2のパーティションの入力デバイス及び出力デバイスの制御を行うよう前記第1のCPUに命令することをユーザに可能にさせるように構成される、請求項1に記載のコンピュータ・システム。
  9. バスをさらに備え、
    前記第1のパーティションは前記バスによって前記第2のパーティションと相互接続され、
    前記第1のCPUは、前記第2のパーティションからデータを読み出し、及び前記第2のパーティションから読み取ったデータのための少なくとも1つのメモリ・アドレス範囲のみにデータを書き込むために前記バスを通るプル・コマンドを実行するように構成され、
    前記第1のCPUは、前記第2のパーティションにデータを書き込むために前記バスを通るプッシュ・コマンドを実行するように構成され、
    前記第1のパーティションは前記第2のパーティションからのプッシュ・コマンド又は前記第2のパーティションからのプル・コマンドを受け付けられず、
    前記第2のパーティションに対する、第1のCPU又は第1のメモリ・モジュールへのアクセスの制限はハードウェア回路によって実行される、請求項1に記載のコンピュータ・システム。
  10. 前記ハードウェア・スイッチはオン及びオフに切り替えられる少なくとも1つの外部物理スイッチからなり、前記第1のCPUは前記少なくとも1つのプログラム・コード用メモリ・アドレス範囲に記憶したデータを前記外部物理スイッチがオンの時にのみ変更することができる、請求項1に記載のコンピュータ・システム。
  11. オン及びオフに切り替えられる少なくとも1つの外部物理スイッチと、
    前記第1のCPUは前記少なくとも1つのプログラム・コード用メモリ・アドレス範囲のコンテンツを前記外部物理スイッチがオンの時にのみ変更し、
    前記外部物理スイッチがオンの時には、前記第1のCPUは前記第2のパーティションからの読み出し、及び前記第2のパーティションへの書き込みができないようにされている、請求項1に記載のコンピュータ・システム。
  12. 前記第1のCPUが前記第2のメモリ・モジュールにアクセスする能力は仮想パーティション構成によって実現し、
    前記第2のCPUが前記第1のCPU及び前記第1のメモリ・モジュールにアクセスする制限は仮想パーティション構成によって実現する、請求項1に記載のコンピュータ・システム。
  13. 前記第1のパーティションは少なくとも1つの入力/出力モジュールを備え、
    複数の入力/出力デバイスは前記少なくとも1つの入力/出力モジュールに接続される、請求項1に記載のコンピュータ・システム。
  14. 前記第1のパーティション及び第2のパーティションを含んでなるチップをさらに備える、請求項1に記載のコンピュータ・システム。
  15. 前記第1のパーティションを含んでなる第1のチップと、前記第2のパーティションを含んでなる第2のチップとをさらに備える、請求項1に記載のコンピュータ・システム。
  16. 前記第1のパーティションに直接に接続された外部デバイスを用いるハードウェア機能は、前記第1のCPUが前記少なくとも1つのプログラム・コード用メモリ・アドレス範囲、前記第1のパーティション・データ用の少なくとも1つのメモリ・アドレス範囲、又は前記第2のパーティションから読み取ったデータのための少なくとも1つのメモリ・アドレス範囲から前記第2のパーティションにデータを書き込むことを可能にするように構成される、請求項1に記載のコンピュータ・システム。
  17. 前記第1のパーティションは1つ以上の仮想サブ・パーティションを備え、
    前記第2のパーティションは1つ以上の仮想サブ・パーティションを備える、請求項1に記載のコンピュータ・システム。
  18. 少なくとも1つのプログラム・コード用メモリ・アドレス範囲の書き込みの制限は仮想パーティション構成によって実現し、
    前記仮想パーティション構成は前記制限のオンとオフのスイッチングを 行うように構成され、
    前記第1のCPUは前記仮想パーティション構成を通して、前記第2のパーティションからの読み出し又は前記第2のパーティションへの書き込みができないようにされている、請求項1に記載のコンピュータ・システム。
  19. コンピュータ・システムにおいて、
    第1のパーティションであって、
    第1のCPUと、
    第1のメモリ・モジュールとを備え、前記第1のメモリ・モジュールは
    第1のメモリ・アドレス範囲であって、前記第1のメモリ・アドレス範囲はプログラム・コードを含んでなり、前記プログラム・コードはコンピュータ実行可能コードを含んでなり、前記プログラム・コードはハードウェア・スイッチによって変更からハードウェアの保護がなされる、第1のメモリ・アドレス範囲と、
    第2のメモリ・アドレス範囲とを有し、
    前記第1のCPUは前記第1のメモリ・アドレス範囲で前記コンピュータ実行可能コードのみを実行するようにハードウェア的に構成してある第1のパーティションと、
    2のパーティションであって、
    第2のCPUと、
    第2のメモリ・モジュールと、
    ネットワークに接続されるための少なくとも1つの通信モジュールとを備え、
    前記第1のCPUは前記第2のメモリ・モジュールにアクセスするように構成され、
    前記第1のCPUは、前記第2のメモリ・アドレス範囲のみに前記第2のパーティションからのデータを読み取るように構成され、
    前記第2のCPUは前記第1のCPU又は前記第1のメモリ―モジュールにアクセスすることを制限されている前記第2のパーティションと
    を備える、コンピュータ・システム。
  20. 少なくとも1つのメモリ・アドレス範囲はハードウェア回路によって構成される、請求項19に記載のコンピュータ・システム。
  21. 前記ハードウェア・回路は少なくとも1つのフィールド・プログラマブル・ゲート・アレイを含んでなる、請求項20に記載のコンピュータ・システム。
  22. 前記第1のメモリ・モジュールは、
    前記少なくとも1つのメモリ・アドレス範囲を有する第1のメモリ・ユニットと、
    前記第2のメモリ・アドレス範囲を有する第2のメモリ・ユニットと
    を備える、請求項19に記載のコンピュータ・システム。
  23. 前記プログラム・コードはオペレーティング・システムを含んでなる、請求項19に記載のコンピュータ・システム。
  24. 少なくとも1つのデータ・ストアを備える、請求項19に記載のコンピュータ・システム。
  25. 前記第1のCPUが前記第2のメモリ・モジュールにアクセスする能力はハードウェア回路によって実行され、
    前記第2のパーティションに対する、第1のCPU又は第1のメモリ・モジュールへのアクセスの制限はハードウェア回路によって実行される、請求項19に記載のコンピュータ・システム。
  26. 前記第1のパーティションに直接に接続した外部デバイスを使用するハードウェア要素は、前記第2のパーティションの入力デバイス及び出力デバイスの制御を行うよう前記第1のCPUに命令することをユーザに可能にさせるように構成される、請求項19に記載のコンピュータ・システム。
  27. バスをさらに備え、
    前記第1のパーティションは前記バスによって前記第2のパーティションと相互接続され、
    前記第1のCPUは、前記第2のパーティションからデータを読み出し、及び前記第2のメモリ・アドレス範囲のみにデータを書き込むために前記バスを通るプル・コマンドを実行するように構成され、
    前記第1のCPUは、前記第2のパーティションにデータを書き込むために前記バスを通るプッシュ・コマンドを実行するように構成され、
    前記第1のパーティションは前記第2のパーティションからのプッシュ・コマンド又は前記第2のパーティションからのプル・コマンドを受け付けられず、
    前記第2のパーティションに対する、第1のCPU又は第1のメモリ・モジュールへのアクセスの制限はハードウェア回路によって実行される、請求項19に記載のコンピュータ・システム。
  28. 前記ハードウェア・スイッチはオン及びオフに切り替えられる少なくとも1つの外部物理スイッチからなり、前記第1のCPUは前記第1のメモリ・アドレス範囲に記憶したデータを前記外部物理スイッチがオンの時にのみ変更するように構成されている、請求項19に記載のコンピュータ・システム。
  29. オン及びオフに切り替えられる少なくとも1つの外部物理スイッチと、
    前記第1のCPUは前記第1のメモリ・アドレス範囲のコンテンツを前記外部物理スイッチがオンの時にのみ変更し、
    前記外部物理スイッチがオンの時には、前記第1のCPUは前記第2のパーティションからの読み出し、及び前記第2のパーティションへの書き込みができないようにされている、請求項19に記載のコンピュータ・システム。
  30. 前記第1のCPUが前記第2のメモリ・モジュールにアクセスする能力は仮想パーティション構成によって実現し、
    前記第2のCPUが前記第1のCPU及び前記第1のメモリ・モジュールにアクセスする制限は仮想パーティション構成によって実現する、請求項19に記載のコンピュータ・システム。
  31. 前記第1のパーティションは少なくとも1つの入力/出力モジュールを備え、
    複数の入力/出力デバイスは前記少なくとも1つの入力/出力モジュールに接続される、請求項19に記載のコンピュータ・システム。
  32. 前記第1のパーティション及び第2のパーティションを含んでなるチップをさらに備える、請求項19に記載のコンピュータ・システム。
  33. 前記第1のパーティションを含んでなる第1のチップと、前記第2のパーティションを含んでなる第2のチップとをさらに備える、請求項19に記載のコンピュータ・システム。
  34. 前記第1のパーティションに直接に接続された外部デバイスを用いるハードウェア機能は、前記第1のCPUが前記第1のメモリ・アドレス範囲から前記第2のパーティションにデータを書き込むことを可能にするように構成される、請求項19に記載のコンピュータ・システム。
  35. 前記第1のパーティションは1つ以上の仮想サブ・パーティションを備え、
    前記第2のパーティションは1つ以上の仮想サブ・パーティションを備える、請求項19に記載のコンピュータ・システム。
  36. 前記第1のメモリ・アドレス範囲の書き込みの制限は仮想パーティション構成によって実現し、
    前記仮想パーティション構成は前記制限のオンとオフのスイッチングを 行うように構成され、
    前記第1のCPUは前記仮想パーティション構成を通して、前記第2のパーティションからの読み出し又は前記第2のパーティションへの書き込みが可能及び不能にするにされている、請求項19に記載のコンピュータ・システム。
  37. 第1のパーティションと第2のパーティションとを有するコンピュータ・システムにおいて、
    前記第1のパーティションは、
    第1のCPUと、
    第1のメモリ・モジュールとを備え、前記第1のメモリ・モジュールは
    少なくとも1つのプログラム・コード用メモリ・アドレス範囲であって、プログラム・コードはコンピュータ実行可能コードを含んでなり、前記プログラム・コード用メモリ・アドレス範囲はハードウェア回路から構成される、プログラム・コード用メモリ・アドレス範囲と、
    他のデータ用の少なくとも1つのメモリ・アドレス範囲であって、前記他のデータには前記第2のパーティションから読み取ったデータが含まれる、他のデータ用の少なくとも1つのメモリ・アドレス範囲とを備え、
    前記第1のCPUは前記プログラム・コード用メモリ・アドレス範囲で前記コンピュータ実行可能コードのみを実行するようにハードウェア的に構成してあり、
    前記第2のパーティションは、
    第2のCPUと、
    第2のメモリ・モジュールと、
    ネットワークに接続されるための少なくとも1つの通信モジュールとを備え、
    前記第1のCPUは前記第2のメモリ・モジュールにアクセスするように構成されるとともに、他のデータ用の少なくとも1つのメモリ・アドレス範囲のみに前記第2のパーティションからのデータを読み取るように構成され、
    前記第2のCPUは前記第1のメモリ・モジュールにアクセスすることを制限されている、コンピュータ・システム。
  38. 前記第1のメモリ・モジュールは、
    前記少なくとも1つのプログラム・コード用メモリ・アドレス範囲を有する第1のメモリ・ユニットと、
    前記他のデータ用の少なくとも1つのメモリ・アドレス範囲を有する第2のメモリ・ユニットと
    を備える、請求項37に記載のコンピュータ・システム。
  39. 前記他のデータ用の少なくとも1つのメモリ・アドレス範囲は、
    前記第2のパーティションから読み取ったデータのための少なくとも1つのメモリ・アドレス範囲と、
    第1のパーティション・データ用の少なくとも1つのメモリ・アドレス範囲とを含んでなる、請求項37に記載のコンピュータ・システム。
  40. 前記第1のメモリ・モジュールは、
    前記少なくとも1つのプログラム・コード用メモリ・アドレス範囲を有する第1のメモリ・ユニットと、
    前記第2のパーティションから読み取ったデータのための第2のメモリ・ユニットと、
    1のパーティション・データのための第3のメモリ・ユニットと、
    を備える、請求項37に記載のコンピュータ・システム。
  41. バスをさらに備え、
    前記第1のパーティションは前記バスによって前記第2のパーティションと相互接続され、
    前記第1のパーティションは、前記第2のパーティションからデータを読み出し、及び前記他のデータのための少なくとも1つのメモリ・アドレス範囲のみにデータを書き込むために前記バスを通るプル・コマンドを実行するように構成され、
    前記第1のパーティションは、前記第2のパーティションにデータを書き込むために前記バスを通るプッシュ・コマンドを実行するように構成され、
    前記第1のパーティションは前記第2のパーティションからのプッシュ・コマンド又は前記第2のパーティションからのプル・コマンドを受け付ないように構成され、
    前記バスのハードウェア回路は前記第2のパーティションが前記第1のメモリ・モジュールにアクセスすることを許可しない、請求項37に記載のコンピュータ・システム。
  42. オン及びオフに切り替えられる少なくとも1つの外部物理スイッチをさらに備え、前記第1のCPUは前記少なくとも1つのプログラム・コード用メモリ・アドレス範囲に記憶したデータを前記外部物理スイッチがオンの時にのみ変更するように構成される、請求項37に記載のコンピュータ・システム。
  43. コンピュータ・システムにおいて、
    少なくとも1つのCPUと、
    少なくとも1つの他のコンピュータに接続する少なくとも1つのI/Оモジュールと、
    少なくとも1つのメモリ・モジュールであって、
    ハードウェア回路によって構成される、少なくとも1つのプログラム・コード用メモリ・アドレス範囲であって、プログラム・コードはコンピュータ実行可能コードを含んでなる、少なくとも1つのプログラム・コード用メモリ・アドレス範囲と、
    他のデータ用の少なくとも1つのメモリ・アドレス範囲であって、前記他のデータは前記少なくとも1つの他のコンピュータから読み出したデータを含んでなる、他のデータ用の少なくとも1つのメモリ・アドレス範囲とを備えたメモリ・モジュールとを備え、
    前記少なくとも1つのCPUは前記プログラム・コード用メモリ・アドレス範囲で前記コンピュータ実行可能コードのみを実行するようにハードウェア的に構成してあり、
    前記少なくとも1つの他のコンピュータから読み出したデータは前記他のデータ用の少なくとも1つのメモリ・アドレス範囲のみに書き込まれ、
    前記少なくとも1つのメモリ・モジュールは前記少なくとも1つの他のコンピュータからアクセスすることができない、コンピュータ・システム。
  44. 前記少なくとも1つのメモリ・モジュールは、
    前記少なくとも1つのプログラム・コード用メモリ・アドレス範囲のための第1のメモリ・ユニットと、
    前記他のデータ用の少なくとも1つのメモリ・アドレス範囲のための第2のメモリ・ユニットとを備える、請求項43に記載のコンピュータ・システム。
  45. オン及びオフに切り替えられる少なくとも1つの外部物理スイッチをさらに備え、前記少なくとも1つのCPUは前記少なくとも1つのプログラム・コード用メモリ・アドレス範囲に記憶したデータを前記外部物理スイッチがオンの時にのみ変更することができる、請求項43に記載のコンピュータ・システム。
  46. バスをさらに備え、
    前記コンピュータ・システムは前記バスによって前記少なくとも1つの他のコンピュータと通信可能に接続され、
    前記コンピュータ・システムは、前記少なくとも1つの他のコンピュータからデータを読み出し、及び前記他のデータ用の少なくとも1つのメモリ・アドレス範囲のみにデータを書き込むために前記バスを通るプル・コマンドを実行するように構成され、
    前記コンピュータ・システムは、前記少なくとも1つの他のコンピュータにデータを書き込むために前記バスを通るプッシュ・コマンドを実行するように構成され、
    前記コンピュータ・システムは前記少なくとも1つの他のコンピュータからのプッシュ・コマンド又は前記少なくとも1つの他のコンピュータからのプル・コマンドを受け付けないように構成され、
    前記バスのハードウェア回路は前記少なくとも1つの他のコンピュータが前記少なくとも1つのメモリ・モジュールにアクセスすることを許可しない、請求項43に記載のコンピュータ・システム。
JP2017538238A 2015-08-31 2016-08-30 ハッキング耐性のあるコンピュータ設計 Expired - Fee Related JP6695885B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/841,469 2015-08-31
US14/841,469 US9578054B1 (en) 2015-08-31 2015-08-31 Hacking-resistant computer design
PCT/US2016/049523 WO2017040542A1 (en) 2015-08-31 2016-08-30 Hacking-resistant computer design

Publications (3)

Publication Number Publication Date
JP2018526691A JP2018526691A (ja) 2018-09-13
JP2018526691A5 JP2018526691A5 (ja) 2018-12-13
JP6695885B2 true JP6695885B2 (ja) 2020-05-20

Family

ID=58017755

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017538238A Expired - Fee Related JP6695885B2 (ja) 2015-08-31 2016-08-30 ハッキング耐性のあるコンピュータ設計

Country Status (7)

Country Link
US (8) US9578054B1 (ja)
EP (1) EP3345095B1 (ja)
JP (1) JP6695885B2 (ja)
CN (1) CN107924365B (ja)
HK (1) HK1251673A1 (ja)
SG (1) SG11201705227RA (ja)
WO (1) WO2017040542A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US10241706B2 (en) * 2016-05-20 2019-03-26 Renesas Electronics Corporation Semiconductor device and its memory access control method
KR101997254B1 (ko) * 2017-05-10 2019-07-08 김덕우 고립된 사용자컴퓨팅부를 갖는 컴퓨터
US10061923B1 (en) * 2017-06-26 2018-08-28 Pritam Nath Safe and secure internet or network connected computing machine providing means for processing, manipulating, receiving, transmitting and storing information free from hackers, hijackers, virus, malware etc.
US10991255B2 (en) * 2018-04-05 2021-04-27 Ge Aviation Systems Llc Providing an open interface to a flight management system
FR3087548A1 (fr) * 2018-08-24 2020-04-24 Societe D'innovation Du Mûrier Dispositif de securite pour un moyen de stockage de donnees numeriques
US11444919B2 (en) * 2019-05-20 2022-09-13 Woodward, Inc. Mission critical security zone
WO2021232233A1 (en) * 2020-05-19 2021-11-25 Yangtze Memory Technologies Co., Ltd. Control method and controller of program suspending and resuming for memory
JP2024518005A (ja) * 2021-03-24 2024-04-24 キム、ドクウ 孤立したユーザコンピューティング部を有する制御システムおよびその制御方法
CN113505362B (zh) * 2021-07-16 2023-09-22 长鑫存储技术有限公司 系统权限管控方法、数据中心、管控装置和存储介质

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2156554B (en) * 1984-03-10 1987-07-29 Rediffusion Simulation Ltd Processing system with shared data
US5210854A (en) * 1989-06-14 1993-05-11 Digital Equipment Corporation System for updating program stored in eeprom by storing new version into new location and updating second transfer vector to contain starting address of new version
JP3417065B2 (ja) * 1994-07-04 2003-06-16 富士通株式会社 ウイルス対応型外部記憶装置、データ処理装置およびデータ処理方法
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6643751B2 (en) * 2000-03-20 2003-11-04 Texas Instruments Incorporated System and method for limited access to system memory
US6507904B1 (en) * 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US6725317B1 (en) * 2000-04-29 2004-04-20 Hewlett-Packard Development Company, L.P. System and method for managing a computer system having a plurality of partitions
US6986052B1 (en) 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US20020083362A1 (en) * 2000-12-22 2002-06-27 Objectsoft Corp. System and method for providing unattended personality acquisition, self-recovery and remote maintenance to internet-based end-user devices
US7313705B2 (en) * 2002-01-22 2007-12-25 Texas Instrument Incorporated Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory
US6763441B2 (en) * 2002-01-23 2004-07-13 International Business Machines Corporation System and method for using ancillary processors and storage to speed time critical data capture
GB0226874D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Switching between secure and non-secure processing modes
GB2396034B (en) * 2002-11-18 2006-03-08 Advanced Risc Mach Ltd Technique for accessing memory in a data processing apparatus
JP2004234053A (ja) * 2003-01-28 2004-08-19 Internatl Business Mach Corp <Ibm> コンピュータシステム、コンピュータ装置、記憶装置のデータ保護方法、およびプログラム
US7509644B2 (en) 2003-03-04 2009-03-24 Secure 64 Software Corp. Operating system capable of supporting a customized execution environment
US20070067366A1 (en) * 2003-10-08 2007-03-22 Landis John A Scalable partition memory mapping system
US7072211B2 (en) * 2004-05-19 2006-07-04 L-3 Integrated Systems Company Systems and methods for write protection of non-volatile memory devices
US7818574B2 (en) * 2004-09-10 2010-10-19 International Business Machines Corporation System and method for providing dynamically authorized access to functionality present on an integrated circuit chip
US8619971B2 (en) * 2005-04-01 2013-12-31 Microsoft Corporation Local secure service partitions for operating system security
CN101228531A (zh) 2005-07-22 2008-07-23 松下电器产业株式会社 执行装置
US8381297B2 (en) 2005-12-13 2013-02-19 Yoggie Security Systems Ltd. System and method for providing network security to mobile devices
US7845005B2 (en) * 2006-02-07 2010-11-30 International Business Machines Corporation Method for preventing malicious software installation on an internet-connected computer
CN100464314C (zh) * 2006-03-23 2009-02-25 联想(北京)有限公司 一种数据透明保护的安全写系统和方法
JP2007304954A (ja) 2006-05-12 2007-11-22 Sharp Corp メモリ保護機能を有するコンピュータシステム
US7984301B2 (en) 2006-08-17 2011-07-19 Inside Contactless S.A. Bi-processor architecture for secure systems
US20160248588A1 (en) * 2006-09-07 2016-08-25 Altera Corporation Security ram block with multiple partitions
US8571598B2 (en) 2006-12-18 2013-10-29 Intel Corporation Method and apparatus for location-based wireless connection and pairing
WO2008077628A2 (en) * 2006-12-22 2008-07-03 Virtuallogix Sa System for enabling multiple execution environments to share a device
WO2008138653A1 (en) 2007-05-09 2008-11-20 International Business Machines Corporation A method and data processing system to prevent manipulation of computer systems
US8397043B2 (en) 2007-12-17 2013-03-12 Freescale Semiconductor, Inc. Memory mapping system, request controller, multi-processing arrangement, central interrupt request controller, apparatus, method for controlling memory access and computer program product
US7743375B2 (en) * 2008-06-27 2010-06-22 International Business Machines Corporation Information handling system including dynamically merged physical partitions
US7657941B1 (en) 2008-12-26 2010-02-02 Kaspersky Lab, Zao Hardware-based anti-virus system
US8205037B2 (en) * 2009-04-08 2012-06-19 Google Inc. Data storage device capable of recognizing and controlling multiple types of memory chips operating at different voltages
US9152200B2 (en) * 2009-06-23 2015-10-06 Hewlett-Packard Development Company, L.P. Resource and power management using nested heterogeneous hypervisors
US20110154023A1 (en) * 2009-12-21 2011-06-23 Smith Ned M Protected device management
US20110225645A1 (en) * 2010-01-26 2011-09-15 Ellis Frampton E Basic architecture for secure internet computers
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
WO2011094616A1 (en) * 2010-01-29 2011-08-04 Ellis Frampton E The basic architecture for secure internet computers
JP2011215879A (ja) 2010-03-31 2011-10-27 Sharp Corp 操作用通信装置、非操作用通信装置、操作用通信装置の制御方法、非操作用通信装置の制御方法、通信システム、操作用通信プログラム、非操作用通信プログラム及び記録媒体
US20110314075A1 (en) * 2010-06-18 2011-12-22 Nokia Corporation Method and apparatus for managing distributed computations within a computation space
US8082585B1 (en) 2010-09-13 2011-12-20 Raymond R. Givonetti Protecting computers from malware using a hardware solution that is not alterable by any software
US8561066B2 (en) * 2010-12-08 2013-10-15 International Business Machines Corporation Simplified DMA mappings for self-virtualizing input/output device virtual functions
TWI432987B (zh) * 2011-03-15 2014-04-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與病毒掃描方法
KR20120119092A (ko) * 2011-04-20 2012-10-30 삼성전자주식회사 반도체 메모리 시스템 및 이의 구동 방법
WO2013063484A1 (en) 2011-10-28 2013-05-02 The Regents Of The University Of California Multiple-core computer processor
KR101365083B1 (ko) * 2012-03-06 2014-02-21 모젼스랩(주) 모션 인식을 통한 인터페이스 장치 및 이의 제어방법
US9043559B2 (en) 2012-10-23 2015-05-26 Oracle International Corporation Block memory engine with memory corruption detection
GB2513850B (en) * 2013-05-03 2017-06-14 Rosberg System As Access control system
AU2014291635B2 (en) * 2013-07-18 2019-11-07 Benjamin Gittins Computing architecture with peripherals
US9692789B2 (en) * 2013-12-13 2017-06-27 Oracle International Corporation Techniques for cloud security monitoring and threat intelligence
US11228427B2 (en) 2014-02-11 2022-01-18 Ericsson Ab System and method for securing content keys delivered in manifest files
US9686077B2 (en) * 2014-03-06 2017-06-20 Microsoft Technology Licensing, Llc Secure hardware for cross-device trusted applications
US20160044136A1 (en) * 2014-05-27 2016-02-11 Nimbus 9, Inc. Virtual gateway
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
US20160070656A1 (en) * 2014-09-05 2016-03-10 Qualcomm Incorporated Write protection management systems
US9444849B2 (en) * 2014-10-06 2016-09-13 The Boeing Company Enforcing policy compliance on a device
US9749323B2 (en) * 2015-03-27 2017-08-29 Intel Corporation Technologies for secure server access using a trusted license agent
US10063375B2 (en) 2015-04-20 2018-08-28 Microsoft Technology Licensing, Llc Isolation of trusted input/output devices

Also Published As

Publication number Publication date
US10002245B2 (en) 2018-06-19
SG11201705227RA (en) 2017-07-28
EP3345095A4 (en) 2019-04-24
CN107924365B (zh) 2022-01-04
EP3345095A1 (en) 2018-07-11
JP2018526691A (ja) 2018-09-13
US20170169222A1 (en) 2017-06-15
US20170235944A1 (en) 2017-08-17
US10606768B2 (en) 2020-03-31
US20200301853A1 (en) 2020-09-24
US11030301B2 (en) 2021-06-08
HK1251673A1 (zh) 2019-02-01
US10089248B2 (en) 2018-10-02
US11061832B2 (en) 2021-07-13
EP3345095B1 (en) 2021-07-07
US20220043905A1 (en) 2022-02-10
US20180330076A1 (en) 2018-11-15
US10311226B2 (en) 2019-06-04
US20200134170A1 (en) 2020-04-30
US20190278718A1 (en) 2019-09-12
US20170063877A1 (en) 2017-03-02
WO2017040542A1 (en) 2017-03-09
CN107924365A (zh) 2018-04-17
US9578054B1 (en) 2017-02-21

Similar Documents

Publication Publication Date Title
JP6695885B2 (ja) ハッキング耐性のあるコンピュータ設計
US10783240B2 (en) Secure environment in a non-secure microcontroller
US10061928B2 (en) Security-enhanced computer systems and methods
JP7213879B2 (ja) 間接アクセスメモリコントローラ用のメモリ保護装置
CN107743625B (zh) 由受控制的加密密钥管理进行的软件模块的分离
US20150074820A1 (en) Security enhancement apparatus
US20180239912A1 (en) Data security method and local device with switch(es)
US20150074824A1 (en) Secure data storage apparatus and secure io apparatus
CN106687978B (zh) 用于对栈破坏利用的抑制的计算设备和方法
US20050033979A1 (en) Method and system for secure direct memory access
JP7027664B2 (ja) ハッキング耐性のあるコンピュータ設計
CN114490448A (zh) 一种切换执行环境的方法及其相关设备
CN106845296A (zh) 一种保护密码的方法、系统及一种主板、连接器
CN106919856B (zh) 安全移动终端
CN119271580A (zh) 设备的内存访问权限的确定方法、系统和电子设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181031

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181031

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190906

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200326

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200422

R150 Certificate of patent or registration of utility model

Ref document number: 6695885

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S631 Written request for registration of reclamation of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313631

S633 Written request for registration of reclamation of name

Free format text: JAPANESE INTERMEDIATE CODE: R313633

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees