JP7033383B2 - Safety devices, safety methods, safety systems, and safety equipment - Google Patents
Safety devices, safety methods, safety systems, and safety equipment Download PDFInfo
- Publication number
- JP7033383B2 JP7033383B2 JP2020069117A JP2020069117A JP7033383B2 JP 7033383 B2 JP7033383 B2 JP 7033383B2 JP 2020069117 A JP2020069117 A JP 2020069117A JP 2020069117 A JP2020069117 A JP 2020069117A JP 7033383 B2 JP7033383 B2 JP 7033383B2
- Authority
- JP
- Japan
- Prior art keywords
- bus
- host
- safety
- transaction
- slave
- 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.)
- Active
Links
Images
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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
- Information Transfer Systems (AREA)
- Debugging And Monitoring (AREA)
Description
本発明は、電子システムセキュリティーに関わり、特に、特に、周辺デバイス間のトランザクションを保護するための方法およびシステムに関する。 The present invention relates to electronic system security, and in particular to methods and systems for protecting transactions between peripheral devices.
従来、電子システムは、ホストデバイスと周辺デバイス間の通信にさまざまなタイプのバスインターフェイスを使用する。バスインターフェイスの例として、Inter-Integrated-Circuit (I2C)バスやSerial Peripheral Interface(SPI)バスが挙げられる。I2Cバスは、たとえば、「I2Cバスの仕様およびユーザーマニュアル」UM10204、NXP Semiconductors、リビジョン6、2014年4月4日で記載されており、参照として本明細書に引用される。 Traditionally, electronic systems use different types of bus interfaces for communication between host devices and peripheral devices. Examples of bus interfaces include Inter-Integrated-Circuit (I2C) buses and Serial Peripheral Interface (SPI) buses. The I2C bus is described, for example, in the "I2C Bus Specification and User Manual" UM10204, NXP Semiconductors, Revision 6, April 4, 2014, which is incorporated herein by reference.
この出願は、2015年5月17日に提出された米国特許出願14/714,298の一部継続(CIP)であり、2014年7月24日に提出された米国仮特許出願62/028,345の利益を主張しています。これらの関連出願の開示は、参照により本明細書に組み込まれる。この出願は、「Secure System Boot Monitor」という名称の米国特許出願、代理人整理番号1041-2004に関連し、偶数日に提出されました。これらの関連出願の開示は、参照により本明細書に組み込まれる。 This application is a partial continuation (CIP) of US Patent Application 14 / 714,298 filed May 17, 2015, and US Provisional Patent Application 62/028, filed July 24, 2014. Claims 345 profits. The disclosure of these related applications is incorporated herein by reference. This application was filed on even days in connection with a US patent application named "Secure System Boot Monitor", agent reference number 1041-2004. The disclosure of these related applications is incorporated herein by reference.
本発明の目的は、周辺デバイス間のトランザクションを保護するための方法およびシステムを提供することにある。 An object of the present invention is to provide a method and system for protecting transactions between peripheral devices.
本発明の一実施形態に係る安全装置は、インターフェースと、プロセッサーと、を備え、前記インターフェースは、ホスト及び第2デバイスが結合されているバスに接続し、少なくとも前記第2デバイスはスレーブモードでバス上で動作し、前記ホストは、少なくとも前記安全装置を代表して、前記バス上でトランザクションを開始するバスマスタとしてバス上で動作し、前記プロセッサーは、前記安全装置のために、前記バスを介して前記第2デバイスにアクセスするトランザクションを開始するように前記ホストに要求し、少なくとも前記ホストが、前記バスを介して前記第2デバイスにアクセスして前記要求されたトランザクションを実行する期間内に、前記バス上の1つ以上の信号を監視し、前記監視された信号に基づいて、前記要求されたトランザクションの実行中にセキュリティ違反が発生したかどうかを識別することを特徴とする。 A safety device according to an embodiment of the present invention includes an interface and a processor, the interface is connected to a bus to which a host and a second device are coupled, and at least the second device is a bus in slave mode. The host operates on the bus, at least on behalf of the safety device, as a bus master initiating a transaction on the bus, and the processor operates over the bus for the safety device. The host is requested to start a transaction to access the second device, and at least within the period during which the host accesses the second device via the bus and executes the requested transaction. It is characterized by monitoring one or more signals on a bus and, based on the monitored signals, identifying whether a security breach has occurred during the execution of the requested transaction.
一実施形態では、前記プロセッサは、スレーブモードで前記バス上で動作するように構成されている。一実施形態では、前記安全装置は、前記バスとは異なる別のバスを介して前記ホストにさらに結合され、前記プロセッサは、前記別のバスを介して前記ホストに前記トランザクションを開始するように要求するように構成される。 In one embodiment, the processor is configured to operate on the bus in slave mode. In one embodiment, the safety device is further coupled to the host via another bus different from the bus, and the processor requests the host to initiate the transaction via the other bus. It is configured to do.
一実施形態では、前記要求されたトランザクションは、(1)前記第2デバイスからのデータの読み取り、(2)前記第2デバイスへのデータの書き込み、及び(3)前記第2デバイスの第1アドレスと第2アドレス間のデータの転送、のうちのいずれかを含む。一実施形態では、前記要求されたトランザクションは予期されたトランザクション情報を指定し、前記プロセッサは、前記バス上で、前記要求されたトランザクションに対応する実際のトランザクション情報を監視するように構成され、前記予期されたトランザクション情報の少なくとも一部が前記実際のトランザクション情報と異なることを検出することにより、前記セキュリティ違反を識別する。一実施形態では、前記プロセッサは、オペコード素子、アドレス素子およびデータ素子を含むリストから選択された少なくとも1つの素子が、前記予期されたトランザクション情報と前記実際のトランザクション情報との間で異なることを検出するように構成される。 In one embodiment, the requested transaction is (1) reading data from the second device, (2) writing data to the second device, and (3) first address of the second device. And the transfer of data between the second address. In one embodiment, the requested transaction specifies expected transaction information, and the processor is configured to monitor the actual transaction information corresponding to the requested transaction on the bus. The security breach is identified by detecting that at least a portion of the expected transaction information is different from the actual transaction information. In one embodiment, the processor detects that at least one element selected from a list including an opcode element, an address element and a data element is different between the expected transaction information and the actual transaction information. It is configured to do.
一実施形態では、前記プロセッサは、前記要求されたトランザクションの期間中または期間外に、所定のセキュリティポリシーが前記バス上で違反されたことを検出することにより、前記セキュリティ違反を識別するように構成されている。一実施形態では、前記要求されたトランザクションは、前記第2デバイスからデータを読み取ることを含み、前記プロセッサは、前記バスを介して前記ホストによって前記第のデバイスから読み取られたデータを前記バス上で監視(スヌープ)するように構成されている。一実施形態にでは、前記プロセッサは、前記ホストによる第1書き込み操作の実行中に前記バス上の1つまたは複数の信号の論理値を上書きすることにより、前記ホストに、前記第2デバイスへの前記第1書き込み操作を開始し、前記第1書き込み操作とは異なる第2書き込み操作を前記第2デバイスに適用するように要求するように構成されている。 In one embodiment, the processor is configured to identify a security breach by detecting that a predetermined security policy has been breached on the bus during or outside the requested transaction. Has been done. In one embodiment, the requested transaction comprises reading data from the second device, the processor reading data from the second device by the host via the bus on the bus. It is configured to monitor (snoop). In one embodiment, the processor sends the host to the second device by overwriting the logical value of one or more signals on the bus during the execution of the first write operation by the host. It is configured to initiate the first write operation and request that a second write operation different from the first write operation be applied to the second device.
いくつかの実施形態では、前記プロセッサは、前記ホストによる第1読み取り操作の実行中に前記バス上の1つまたは複数の信号の論理値を上書きすることにより、前記ホストに、前記第2デバイスへの前記第1読み取り操作を開始し、前記第1読み取り操作とは異なる第2読み取り操作を前記第2デバイスに適用するように要求するように構成されている。他の実施形態では、前記プロセッサは、前記バスを介して前記第2デバイスにアクセスするトランザクションを開始し、前記ホストと前記第2デバイスを接続する前記バスの信号を切断し、前記ホストに代わって前記バスを介して前記第2デバイスにアクセスするように、前記ホストに要求するように構成されている。他の実施形態では、前記プロセッサは、前記セキュリティ違反の識別に応答して、前記第2デバイスにアクセスする際に前記バス上に現れるデータの公開または変更を防止するように保護アクションを実行するように構成されている。 In some embodiments, the processor sends the host to the second device by overwriting the logical value of one or more signals on the bus during the first read operation by the host. Is configured to initiate the first read operation and request that a second read operation different from the first read operation be applied to the second device. In another embodiment, the processor initiates a transaction to access the second device via the bus, disconnects the signal of the bus connecting the host to the second device, and replaces the host. It is configured to request the host to access the second device via the bus. In another embodiment, the processor performs protective actions in response to the identification of the security breach to prevent disclosure or modification of the data appearing on the bus when accessing the second device. It is configured in.
本発明の1つの実施形態に係る安全装置において、前記安全装置と前記第2デバイスの両方がコモンパッケージに実装され、前記コモンパッケージ内の前記バスを介して相互接続されている。 In the safety device according to one embodiment of the present invention, both the safety device and the second device are mounted in a common package and interconnected via the bus in the common package.
本発明の一実施形態に係る安全方法は、ホスト及び第2デバイスが結合されているバスに接続する安全装置において、少なくとも前記第2デバイスはスレーブモードでバス上で動作し、前記ホストは、少なくとも前記安全装置を代表して、前記バス上でトランザクションを開始するバスマスタとしてバス上で動作することと、前記安全装置は、前記安全装置のために、前記バスを介して前記第2デバイスにアクセスするトランザクションを開始するように前記ホストに要求することと、少なくとも前記ホストが、前記バスを介して前記第2デバイスにアクセスして前記要求されたトランザクションを実行する期間内に、前記バス上の1つ以上の信号を監視し、前記監視された信号に基づいて、前記要求されたトランザクションの実行中にセキュリティ違反が発生したかどうかを識別することと、を含むことを特徴とする。 A safety method according to an embodiment of the present invention is a safety device in which a host and a second device are connected to a bus to which at least the second device operates on the bus in slave mode, and the host is at least. On behalf of the safety device, operating on the bus as a bus master initiating a transaction on the bus, and the safety device accessing the second device via the bus for the safety device. Requesting the host to initiate a transaction, and at least one on the bus within a period in which the host accesses the second device via the bus and executes the requested transaction. It is characterized by monitoring the above signals and identifying whether or not a security breach has occurred during the execution of the requested transaction based on the monitored signals.
本発明の一実施形態に係る安全システムは、ホストと、安全装置と、を備え、前記ホストは、バスに結合され、バスマスターとして動作するように構成され、スレーブデバイスと前記ホストによってトリガーされるバスアクセス操作を仲介することにより、前記バスに結合された前記スレーブデバイスにアクセスし、前記安全装置は、前記バスに接続され、前記バスにスレーブとして接続されている前記第2デバイスにアクセスするトランザクションを開始するように前記ホストに要求し、少なくとも前記ホストが前記要求されたトランザクションを実行する際に前記バスを介して前記第2デバイスにアクセスする期間内に、前記バス上の1つ以上の信号を監視し、前記監視された信号に基づいて、前記要求されたトランザクションの実行中にセキュリティ違反が発生したかどうかを識別することを特徴とする。 A safety system according to an embodiment of the present invention comprises a host, a safety device, the host being coupled to a bus, configured to operate as a bus master, and triggered by a slave device and the host. A transaction that accesses the slave device coupled to the bus by mediating a bus access operation, and the safety device is connected to the bus and accesses the second device connected to the bus as a slave. One or more signals on the bus, at least within a period of time that the host accesses the second device via the bus as the host performs the requested transaction. Is characterized by identifying whether a security breach has occurred during the execution of the requested transaction based on the monitored signal.
一実施形態では、前記安全装置は、スレーブモードで前記バス上で動作するように構成されている。別の実施形態では、前記安全装置は、前記バスとは異なる別のバスを介して前記ホストにさらに結合され、前記安全装置は、前記別のバスを介して前記ホストに前記トランザクションを開始するように要求するように構成される。 In one embodiment, the safety device is configured to operate on the bus in slave mode. In another embodiment, the safety device is further coupled to the host via another bus different from the bus, and the safety device initiates the transaction to the host via the other bus. Is configured to require.
一部の実施形態では、前記要求されたトランザクションは、予期されたトランザクション情報を指定し、前記安全装置は、前記バス上で、前記要求されたトランザクションに対応する実際のトランザクション情報を監視し、前記予期されたトランザクション情報の少なくとも一部が前記実際のトランザクション情報と異なることを検出することにより、セキュリティ違反を識別するように構成されている。他の実施形態では、前記要求されたトランザクションは、前記第2デバイスからのデータの読み取りを含み、前記安全装置は、前記バスを介して前記ホストによって前記第2デバイスから読み取られたデータを前記バス上で監視するように構成される。さらに他の実施形態では、前記安全装置は、前記ホストによる第1書き込み操作の実行中に前記バス上の1つまたは複数の信号の論理値を上書きすることにより、前記ホストに、前記第2デバイスへの前記第1書き込み操作を開始し、前記第1書き込み操作とは異なる第2書き込み操作を前記第2デバイスに適用するように構成される。 In some embodiments, the requested transaction specifies expected transaction information, and the safety device monitors the actual transaction information corresponding to the requested transaction on the bus, said. It is configured to identify a security breach by detecting that at least a portion of the expected transaction information is different from the actual transaction information. In another embodiment, the requested transaction comprises reading data from the second device, and the safety device takes data read from the second device by the host via the bus to the bus. Configured to monitor above. In yet another embodiment, the safety device attaches to the host the second device by overwriting the logical value of one or more signals on the bus during the execution of the first write operation by the host. It is configured to initiate the first write operation to and apply a second write operation different from the first write operation to the second device.
一実施形態では、前記安全装置は、前記ホストに前記第2デバイスへの前記第1読み取り動作を開始するように要求し、前記ホストによる前記第1読み取り操作の実行中に前記バス上の1つまたは複数の信号の論理値をオーバーライドすることにより、前記第2デバイスに前記第1読み取り動作とは異なる第2読み取り操作を適用する。別の実施形態では、前記安全装置は、前記バスを介して前記第2デバイスにアクセスするトランザクションを開始するように前記ホストに要求し、前記ホストと前記第2デバイスを接続する前記バスの信号を切断し、前記ホストに代わって前記バスを介して前記第2デバイスにアクセスする。さらに別の実施形態では、前記安全装置は、前記セキュリティ違反の識別に応答して、前記第2デバイスにアクセスする際に前記バス上に現れるデータの公開または変更を防止する保護アクションを実行するように構成される。 In one embodiment, the safety device requires the host to initiate the first read operation to the second device, one on the bus while the host is performing the first read operation. Alternatively, by overriding the logical values of the plurality of signals, a second read operation different from the first read operation is applied to the second device. In another embodiment, the safety device requests the host to initiate a transaction to access the second device via the bus, and signals the bus connecting the host to the second device. Disconnect and access the second device via the bus on behalf of the host. In yet another embodiment, the safety device is configured to perform protective actions in response to the identification of the security breach to prevent disclosure or modification of the data appearing on the bus when accessing the second device. It is composed of.
さらに、本明細書に記載されている実施形態に従って、安全方法は、スレーブデバイスが接続されたバス上でバスマスターとして動作するホストを含む安全システムにおいて、スレーブデバイスとホストによってトリガーされたバスアクセス操作間のホストによる仲介する。ホストは、バスに接続された安全装置によって、スレーブとしてバスに接続された第2デバイスにアクセスするトランザクションを開始するように要求される。少なくともホストが要求されたトランザクションを実行する際にバスを介して第2デバイスにアクセスする期間内に、1つまたは複数の信号が安全装置によってバス上で監視される。監視された信号に基づいて、安全装置によって、要求されたトランザクションの実行中にセキュリティ違反が発生したかどうかが判断される。 Further, according to the embodiments described herein, the safety method is a bus access operation triggered by the slave device and the host in a safety system that includes a host acting as a bus master on the bus to which the slave device is connected. Mediation by the host between. The host is required by the safety device connected to the bus to initiate a transaction to access the second device connected to the bus as a slave. One or more signals are monitored on the bus by the safety device, at least during the time the host accesses the second device over the bus when performing the requested transaction. Based on the monitored signal, the safety device determines if a security breach occurred during the execution of the requested transaction.
本明細書で説明される実施形態によれば、安全装置を含む安全設備と、ホスト上で実行される専用デバイスドライバとがさらに提供される。安全装置は、ホストにセキュリティサービスを提供する。安全装置、ホスト、および安全装置の外部にある不揮発性メモリ(NVM)デバイスは、共通バスに結合されている。専用デバイスドライバーは、安全装置とNVMデバイスの間を仲介するように構成されている。安全装置は、ホスト上で実行されているアプリケーションプログラムからセキュリティコマンドを受信し、専用のデバイスドライバーを介してアプリケーションプログラムに対して透過的に、バスを介してNVMデバイスにアクセスすることによってセキュリティコマンドを実行するように構成されている。 According to the embodiments described herein, safety equipment including safety devices and dedicated device drivers running on the host are further provided. The safety device provides security services to the host. The safety device, the host, and the non-volatile memory (NVM) device outside the safety device are coupled to a common bus. The dedicated device driver is configured to mediate between the safety device and the NVM device. The safety device receives the security command from the application program running on the host and issues the security command by accessing the NVM device via the bus transparently to the application program via a dedicated device driver. It is configured to run.
以下、本発明について、図に示す実施形態に基づいて説明する。 Hereinafter, the present invention will be described based on the embodiments shown in the figure.
マスタースレーブ構成では、バスマスターとして動作するホストデバイスは通常、バスを介して複数のスレーブデバイスに接続される。バスマスターとしてのホストは、バス上でトランザクションを開始できるが、スレーブデバイスはホストに応答することによってのみバスにアクセスできる。ただし、一部の実際的なシナリオでは、1つのスレーブデバイスが別のスレーブデバイスとのトランザクションを開始および実行できることが望ましい。 In a master-slave configuration, a host device acting as a bus master is typically connected to multiple slave devices via the bus. A host as a bus master can initiate transactions on the bus, but slave devices can only access the bus by responding to the host. However, in some practical scenarios it is desirable for one slave device to be able to initiate and execute transactions with another.
本明細書で説明される実施形態は、バス監視を使用して、スレーブデバイス間のマスター仲介トランザクションを実行および保護するためのシステムおよび方法を提供する。バスを監視するデバイスは、追加の異なるバスを介してホストに接続され、その追加のバスを介してホストにトランザクションを要求することができる。 The embodiments described herein provide systems and methods for performing and protecting master mediation transactions between slave devices using bus monitoring. A device that monitors a bus can be connected to a host through an additional different bus and request a transaction from the host through that additional bus.
いくつかの実施形態では、ホストは、バスへのアクセスを必要とする可能性がある1つまたは複数のアプリケーション、およびスレーブデバイスに代わって、バス上のトランザクションを仲介するデバイスドライバを実行する。
ホストは、デバイスドライバーとバスにアクセスしようとする他のアプリケーションとの間で仲介を行う。
In some embodiments, the host runs a device driver that mediates transactions on the bus on behalf of one or more applications that may require access to the bus, as well as slave devices.
The host acts as an intermediary between the device driver and other applications attempting to access the bus.
一部の実施形態では、第1デバイス(例えば、スレーブTPMまたは他のセキュリティプロセッサ)は、第2デバイス(例えば、スレーブフラッシュメモリ)でトランザクションを実行する必要がある。この目的のために、第1デバイスは、ホストのデバイスドライバーに、たとえば割り込みまたはポーリング通知フラグ技術を使用して、バス上のトランザクションを開始して第2デバイスにアクセスするように要求する。第1デバイスは、バス上のホストに代わって実行されたトランザクションを監視し、たとえば、ホストが危険にさらされないように、トランザクションが正しく実行されるか監視する。 In some embodiments, the first device (eg, slave TPM or other security processor) needs to execute a transaction on the second device (eg, slave flash memory). For this purpose, the first device requests the host's device driver to initiate a transaction on the bus to access the second device, for example using interrupt or polling notification flag technology. The first device monitors the transactions executed on behalf of the host on the bus, for example, to ensure that the transactions are executed correctly so that the host is not compromised.
いくつかの実施形態では、第1デバイスは、上述のように要求されたトランザクションを検証するためだけでなく、例えばホストにアクセスする攻撃者によってバス上で(事前定義済みの)セキュリティポリシーが違反されていないかを検証するためにもバスを監視し得る。 In some embodiments, the first device violates a (predefined) security policy on the bus, for example, by an attacker accessing the host, as well as to validate the requested transaction as described above. Buses can also be monitored to verify that they are not.
第1デバイスは、少なくともホストが要求されたトランザクションを実行する際にバスを介して第2デバイスにアクセスする期間内に、バス上の1つまたは複数の信号を監視することができる。第1デバイスは、監視された信号に基づいて、要求されたトランザクションの実行中にセキュリティ違反が発生したかどうかを識別する。セキュリティ違反を検出すると、第1デバイスは、保護アクション、たとえば、第2デバイスへのアクセスなど、バス上に現れるデータの公開を防ぐアクションを実行する。一実施形態では、保護アクションの選択は、事前定義されたポリシーに基づくことができる。 The first device may monitor one or more signals on the bus, at least during the time the host accesses the second device over the bus when performing the requested transaction. The first device identifies whether a security breach occurred during the execution of the requested transaction based on the monitored signal. Upon detecting a security breach, the first device takes protective actions, such as accessing the second device, to prevent the disclosure of data appearing on the bus. In one embodiment, the choice of protective action can be based on a predefined policy.
第1デバイスは、ホストに、(1)第2デバイスからデータを読み取る、(2)第2デバイスにデータを書き込む、又は(3)第2デバイスの異なるアドレス間でデータを転送する。第2デバイスから読み取られた、または第2デバイスに書き込まれたデータは、暗号化および/または署名され得る。 The first device (1) reads data from the second device, (2) writes data to the second device, or (3) transfers data between different addresses of the second device to the host. Data read from or written to the second device can be encrypted and / or signed.
第1デバイスは、要求されたトランザクションで予期されたトランザクション情報の少なくとも一部が、バス上で監視されている実際のトランザクション情報と異なることを検出することにより、セキュリティ違反を識別することができる。そのような不一致は、トランザクションのオペコード素子またはコマンドタイプの素子、アドレス素子および/またはデータ素子などの少なくとも1つのトランザクション素子で発生する可能性がある。いくつかの実施形態では、第1デバイスは、要求されたトランザクションの期間中または期間外に、バス上で事前定義されたセキュリティポリシーに違反した(たとえば、保護されたアドレスがアクセスされた)ことの検出に応答して、セキュリティ違反を識別し得る。 The first device can identify a security breach by detecting that at least a portion of the transaction information expected in the requested transaction is different from the actual transaction information monitored on the bus. Such discrepancies can occur in at least one transaction element, such as a transaction opcode element or command type element, address element and / or data element. In some embodiments, the first device violates a predefined security policy on the bus (eg, a protected address is accessed) during or outside the requested transaction. A security breach can be identified in response to a detection.
一実施形態では、要求されたトランザクションは、第2デバイスからデータを読み取ることを含み、第1デバイスはバスを監視して、バスを介してホストによって第2デバイスから読み取られたデータを監視する。別の実施形態では、第1デバイスは、ホストに、第2デバイスへのダミー書き込み(またはダミー読み取り)操作を開始するように要求する。次に、第1デバイスは、ホストによるダミー書き込み(またはダミー読み取り)操作の実行中にバス上の1つ以上の信号の論理値を上書きすることにより、別の書き込み(または読み取り)操作を第2デバイスに適用する。さらに他の実施形態では、ホストによる要求されたトランザクションの実行中に、第1デバイスは、ホストと第2デバイスの間を接続するバスの信号を切断し、ホストの代わりにバスを介して第2デバイスにアクセスする。 In one embodiment, the requested transaction comprises reading data from a second device, the first device monitoring the bus and monitoring the data read from the second device by the host over the bus. In another embodiment, the first device requests the host to initiate a dummy write (or dummy read) operation to the second device. The first device then performs another write (or read) operation by overwriting the logical value of one or more signals on the bus while the host is performing a dummy write (or dummy read) operation. Applies to devices. In yet another embodiment, during the execution of the requested transaction by the host, the first device disconnects the signal of the bus connecting between the host and the second device, and the second device goes through the bus on behalf of the host. Access the device.
構成例では、安全システムは、スレーブ安全装置とスレーブNVMデバイスを備えている。ホストにセキュリティサービスを提供するには、安全装置は、外部にあるNVMデバイスにアクセスする必要がある。ホストは、安全装置とNVMデバイスの間を仲介する専用のデバイスドライバーを実行する。安全装置は、ホスト上で実行されているアプリケーションプログラムからセキュリティコマンドを受信し、専用のデバイスドライバーを介してアプリケーションプログラムに対して透過的に、バスを介してNVMデバイスにアクセスすることにより、セキュリティコマンドを実行する。 In the configuration example, the safety system comprises a slave safety device and a slave NVM device. To provide security services to the host, the security device needs to access an external NVM device. The host runs a dedicated device driver that acts as an intermediary between the safety device and the NVM device. The safety device receives security commands from the application program running on the host and transparently accesses the application program via a dedicated device driver to access the NVM device via the bus. To execute.
開示されている技術では、ホストはバスマスターとして動作し、バス上のトランザクションを仲介するデバイスドライバーを実行することにより、1つ以上のスレーブデバイスとバスを共有する。監視デバイスは、バスを監視してセキュリティ違反を検出する。監視デバイスは、バス上の信号を監視および制御するためにバスに結合され、スレーブデバイスとして、バス上でトランザクションを開始するようにホストに要求することができる。あるいは、監視デバイスは、バス上でトランザクションを開始するようにホストに要求するために、異なるバスを介してホストにさらに結合される。バスを監視することにより、監視デバイスは、バス上のトランザクションを監視し、バス上のトランザクションをホストから隠された所望のトランザクションで上書きまたは置換することもできる。 In the disclosed technology, the host acts as a bus master and shares the bus with one or more slave devices by running device drivers that mediate transactions on the bus. The monitoring device monitors the bus to detect security breaches. The monitoring device can be coupled to the bus to monitor and control the signals on the bus and, as a slave device, can request the host to initiate a transaction on the bus. Alternatively, the witness device is further coupled to the host via a different bus to request the host to initiate a transaction on the bus. By monitoring the bus, the monitoring device can also monitor the transactions on the bus and overwrite or replace the transactions on the bus with the desired transactions hidden from the host.
システムの説明
図1は、本明細書で説明される実施形態による、安全システム20を概略的に示すブロック図である。この例では、安全システム20は、バス36を使用して周辺スレーブデバイス28、32に接続するマスターホストデバイス24を備える。スレーブデバイス28、32は、それぞれスレーブ1およびスレーブ2と示される。この例では、バス36は、シリアル周辺インターフェース(SPI)バスを含む。他の実施形態では、バス36は、他の任意の適切なバス、例えば、低ピン数バス(LPC)、または内部集積回路(I2C)バスを含むことができる。I2Cバスは、たとえば、電気的消去可能読み取り専用メモリ(EEPROM)デバイスへの接続に使用できる。ソリッドステートストレージデバイスへの他のバスインターフェースは、例えば、セキュアデジタル(SD)インターフェース、マルチメディアカード(MMC)インターフェース、またはパラレルフラッシュインターフェースを含み得る。ホストデバイスは、簡潔にするために単に「ホスト」とも呼ばれる。
Description of the System FIG. 1 is a block diagram schematically showing a
一部の実施形態では、スレーブ1は、バス36を介したホストのスレーブデバイスであり、さらにバス36のバス信号を監視および制御する。代替実施形態では、スレーブ1は、バス信号を監視および制御するためにバス36に結合されるが、例えばI2Cバスなどの別のバス(図示せず)を介して、スレーブデバイスとしてホストに結合される。
In some embodiments, the
安全システム20のマスタースレーブ構成では、ホスト24のみがバス36を介して読み取りまたは書き込みトランザクションを開始できる。一方、各スレーブデバイスは、ホスト24からの要求に応答してのみバス36にアクセスすることができる。このマスタースレーブ構成では、スレーブ1とスレーブ2はバス36を介して直接通信することはできないが、それらの通信はホストによって仲介される必要がある。そのような仲介は、スレーブ1がバス36を介してスレーブである場合、およびスレーブ1が別のバスを介してホストに接続されている場合に必要である。
In the master-slave configuration of the
スレーブ1およびスレーブ2は、任意の適切なタイプのデバイスで構成できる。1つの構成では、スレーブ1は、トラステッドプラットフォームモジュール(TPM)と呼ばれることもある安全装置を含むことができ、スレーブ2は、不揮発性メモリ(NVM)を含むことができる。スレーブデバイス28、32の他の適切な構成も使用することができる。一般に、スレーブ1には、組み込みコントローラー(EC)などの適切なコントローラーが含まれる。例示的な実施形態では、スレーブ2は、例えば、読み取り専用メモリ(ROM)、ワンタイムプログラマブル(OTP)メモリ、EEPROM、またはフラッシュメモリなどの任意の適切なタイプのNVMを含むことができる。あるいは、スレーブ2は、ランダムアクセスメモリ(RAM)デバイスなどの揮発性メモリを含むことができる。
なお、スレーブデバイスの1つがメモリデバイスを含むシステム構成は必須ではない。一部の実施形態では、スレーブ1およびスレーブ2は、バスを監視しながら、ホストを介して互いに情報を交換する必要があり得るコントローラを備える。
It should be noted that a system configuration in which one of the slave devices includes a memory device is not essential. In some embodiments, the
この例では、スレーブ1は、バス36に接続するためのバスインターフェース40、開示された技術を実行するように構成されたプロセッサ44、およびプロセッサ44によって実施される1つ以上のセキュリティポリシーを格納するように構成されたメモリ48を備える。プロセッサ44は、スレーブインターフェースロジック52およびインターフェースモニターロジック(IML)56を含む。スレーブインターフェースロジック52は、スレーブ1とホスト24との間の通信を処理する。IML56は、ホスト24がスレーブ1の代わりにスレーブ2にアクセスすると、バス信号を監視、制御、および選択的にオーバーライドする。一部の実施形態では、IML56は、スレーブ1によってホストから要求されたトランザクションの正しい実行を検証するためにバスを監視する。一実施形態では、IML56は、特定の要求されたトランザクションに関連せず、メモリ48に格納され得る1つまたは複数の所定のセキュリティポリシーの起こり得る違反を検出するためにバスをさらに監視する。
In this example,
安全システム20では、スレーブ1は、バス36上のトランザクションを監視し、ホスト24またはバスマスター機能を備えた別のデバイスが許可なくスレーブ2にアクセスしようとする不正なトランザクションを防止することにより、たとえばIML 56を使用してスレーブ2へのアクセスを保護する。いくつかの実施形態では、スレーブ1のIML56はバス36を監視して、実際にホストによって実行されているスレーブ1によって要求されたトランザクションを傍受し、トランザクションが正しく実行されていることを確認する。バス上での違反の検出に応答して、例えば、ホストによる要求されたトランザクションの実行中に、IML56は適切な保護アクションを適用することができる。
In the
いくつかの実施形態では、保護アクションは、トランザクション中にバス36にさらされる可能性のある望ましくない漏洩、または秘密情報の露出を防ぐために使用される。いくつかの実施形態では、保護アクションは、バス上のデータ破損を防止するか、またはスレーブ2に格納されたセットアップまたは構成情報を変更する許可されていない試みなど、スレーブ2に格納されたデータのデータ破損を防止する。
In some embodiments, protective actions are used to prevent unwanted leaks or exposure of confidential information that may be exposed to the
ホスト24は、1つまたは複数のアプリケーション64を実行するCPU60、および専用デバイスドライバ68を含む。いくつかの実施形態では、スレーブ1は、信頼できるコンピューティングおよび他のセキュリティポリシーを実装するために必要な機能を備えた専用デバイスドライバとともに、ホスト24を提供する安全装置を備える。CPU60は、CPUが実行し、アプリケーション64および専用デバイスドライバ68などのバス36へのアクセスを必要とする可能性がある様々なプログラムまたはプロセス間で仲介する。アプリケーション64は、例えば、格納された情報へのシステムリソースの制御されたアクセスなどの安全なストレージサービスを提供するセキュリティアプリケーションを含み得る。
The
専用デバイスドライバ68は、スレーブ1とスレーブ2との間の通信を仲介する。例えば、デバイスドライバ68は、アプリケーション64に対して透過的に、スレーブ2への間接アクセスをスレーブ1に提供する。内部タスクまたは計算を実行するとき、スレーブ1は、たとえば、スレーブ2からのデータの読み取りまたはスレーブ2へのデータの書き込みのために、スレーブ2へのアクセスを必要とする場合がある。スレーブ1は、ホスト24で実行されているアプリケーション64に関係なく、スレーブ2へのアクセスを必要とする場合がある。または、スレーブ1は、アプリケーション64から発信されたコマンドを実行するためにスレーブ2にアクセスする必要がある。
The
スレーブ1は、デバイスドライバ68から、様々な方法でスレーブ2にアクセスすることを要求することができる。一実施形態では、スレーブ1は、内部で、例えば、事前定義されたレジスタ内で要求を準備し、デバイスドライバにバス36を介して要求を読み取るよう通知するための割り込み信号を生成する。別の実施形態では、デバイスドライバ(68)は、スレーブ1内のレジスタをポーリングして、保留中の要求があるかどうかを識別する。さらに別の実施形態では、デバイスドライバ68は、例えば、アプリケーション64がコマンド(例えば、セキュリティコマンド)をスレーブデバイスに送信することに応答して、条件付きでスレーブ1のレジスタ値をチェックする。
The
デバイスドライバ68がスレーブ1からスレーブ2にアクセスする要求を受け取ると、CPUはデバイスドライバ68と他のアプリケーション(64)との間で仲介し、スレーブ1に代わってバス36を介してスレーブ2にアクセスする。たとえば、スレーブ2がNVMまたはその他のメモリを含む場合、スレーブ1はデバイスドライバー68にバス36へのアクセスを要求し、(1)所定のNVMアドレスからデータを読み取る、(2)所定のNVMアドレスにデータを書き込む、(3)あるNVMアドレスから別のNVMアドレスにデータをコピーする。
When the
バス監視を使用した安全方法
安全システム20は、たとえばホスト24を改ざんするなど、不正な攻撃者によって危険にさらされる可能性がある。攻撃者は、たとえば、スレーブ1によってホストから要求されたトランザクションを検出し、ホストに、要求されたトランザクションとは異なるトランザクションをスレーブ2に適用させることができる。バス36を監視することにより、スレーブ1はバス上の違反イベントを検出し、それに応じて保護アクションを実行できる。
Safety Method Using Bus Monitoring The
以下の実施形態を説明する際に、スレーブ2を用いてホスト24によって実行されるトランザクションは、論理値のシーケンスとしてバス上に現れると想定される。所定のトランザクションに対応するシーケンスは、通常、アドレス部分とデータ部分、すなわち[アドレス、データ]を含む。論理値のシーケンスには、トランザクションのタイプを識別するオペコードも含まれる場合があり、その場合、シーケンスはバス上で[オペコード、アドレス、データ]として表示される。この例では、スレーブ1がオペコード部分をインターセプトするときに、アドレス部分、データ部分、またはその両方を変更(たとえば、論理値を上書き)できる。トランザクションのオペコード、アドレス、およびデータ部分は、ここではまとめて「トランザクション情報」とも呼ばれる。
In the following embodiments, it is assumed that the transaction executed by the
図2は、本明細書で説明される実施形態による、バス監視に基づいてマスター仲介トランザクションを保護する方法を概略的に示すフローチャートである。この方法は、例えば、図1のスレーブデバイス28のプロセッサ44によって実行され得る。方法の説明において、非限定的な例として、スレーブデバイス28(スレーブ1)は、安全装置を含み、スレーブデバイス32(スレーブ2)は、バス36がSPIバスを含む場合、フラッシュメモリ、例えば、SPIフラッシュメモリを含む。
FIG. 2 is a flowchart illustrating a method of protecting a master-mediated transaction based on bus monitoring, according to an embodiment described herein. This method may be performed, for example, by the
この方法は、(スレーブ1の)プロセッサ44が、リセット保持ステップ100でフラッシュメモリからブートすることから始まる。一実施形態では、プロセッサ44は、典型的にはシステムブートプロセスの一部として、フラッシュメモリにアクセスしながらホスト24をリセットに維持するための適切なインターフェースおよび回路(図示せず)を備える。一実施形態では、ブートプログラムをロードするために、プロセッサ44は、フラッシュメモリからデータブロックをロードし、データブロックの真正性を検証し、認証されたデータブロックをメモリ48にローカルに格納する。リセット時にホストを維持する上記の起動メカニズムは必須ではない。代替の実施形態では、他の適切なブート方法も使用することができる。
This method begins with the processor 44 (of slave 1) booting from flash memory in reset hold
トランザクションを要求するステップ104で、プロセッサ44は、ホスト24のデバイスドライバ68に、バス36を介してフラッシュメモリにアクセスすることを含むトランザクションを開始するように要求する。要求されたトランザクションは、例えば、(1)所与のフラッシュアドレスからデータを読み取る、(2)所与のフラッシュアドレスにデータを書き込む、または(3)1つのフラッシュアドレスから別の異なるフラッシュアドレスにデータをコピーすることを含み得る。
In
監視ステップ108で、プロセッサ44は、IML56を使用してバス36を監視し、トランザクションが意図したとおりに実行されることを確認するために、バス上の要求されたトランザクションを傍受する。たとえば、書き込みトランザクションの場合、トランザクションで指定されたデータが実際にトランザクションで指定されたアドレスに書き込まれていることを確認する。IMLは、チップセレクト(CS)信号、クロック信号、データやアドレス情報を運ぶバス信号などの1つ以上のバス信号を監視する。バス36がSPIバスを含む場合、IML56は、マスターアウトスレーブイン(MOSI)信号、SPIバスのマスターインスレーブアウト(MISO)信号、またはその両方を介してデータおよびアドレス情報を監視することができる。
In
ステップ108で、プロセッサ44は、例えば、要求されたトランザクション内の情報またはプロセッサに知られている他の情報に基づいて、バス上の要求されたトランザクションを傍受することができる。トランザクションを要求する時間とデバイスドライバによって要求されたトランザクションが実際に実行される時間の間、ホストは、トランザクションプロセッサ44が通常無視する、アプリケーション64から発生したバス上の他のトランザクションを開始する場合があることに留意する必要がある。例示的な実施形態では、読み取り、書き込み、またはコピーのトランザクションの場合、プロセッサ44は、要求されたトランザクションで指定されたアドレス情報を傍受する。書き込みトランザクションの場合、プロセッサは書き込まれるデータ(またはこのデータの一部)をインターセプトする。
At
さらにステップ108で、バス上の要求されたトランザクション(またはトランザクションの一部)の傍受に応答して、プロセッサは(IMLを使用して)バスを監視し、要求されたトランザクションが意図したとおりに実行されることを確認する。例えば、プロセッサは、要求されたトランザクションで指定されたアドレスまたはアドレス範囲で、ホストがバス36を介してフラッシュメモリにアクセスすることを確認する。書き込みおよびコピートランザクションでは、プロセッサは、書き込みまたはコピーされるデータが、要求された書き込みまたはコピートランザクションで指定されたデータと一致することを確認する。プロセッサはさらに、要求されたトランザクション(またはおそらく他のトランザクションも)を実行する際に、メモリ48で指定されたセキュリティポリシーに違反していないことを確認することができる。さらに、プロセッサ44は、特定のトランザクション要求とは無関係に指定されたセキュリティポリシーに違反していないことを確認することができる。
Further in
違反チェックステップ112で、プロセッサは、違反がバス36上で検出されたかどうかをチェックする。上記のように、違反は、(1)メモリ48に保存されている事前定義されたポリシーへの違反、たとえば保護されたアドレスまたはアドレス範囲へのアクセス、または(2)少なくとも一部が バス上で傍受されたトランザクション情報の数は、ステップ104の要求されたトランザクションにおける対応するトランザクション情報とは異なることが挙げられる。
In
ステップ112で違反が検出されなかった場合、プロセッサ44はトランザクション完了ステップ116に進み、トランザクションを完了し、ステップ104にループバックして、ホストからの後続のトランザクションを要求する。プロセッサは、ホストが要求されたトランザクションの実行を完了するまで、バスを監視することによってトランザクションを完了することができる。代替的または追加的に、プロセッサは、ホストのデバイスドライバを介してトランザクションを完了する。たとえば、プロセッサは、デバイスドライバーがフラッシュメモリから読み取ったデータ、完了通知、またはその両方をデバイスドライバーから受信する。
If no violation is detected in
ステップ112で違反を検出したことに応答して、プロセッサ44は、保護ステップ120に進み、そこでプロセッサは、秘密情報の漏洩または露出を防止するための適切な保護アクションを適用する。保護アクションの例を以下に説明する。ステップ120に続いて、プロセッサは、ステップ104にループバックして、バス36を介して、フラッシュメモリとの後続のトランザクションを開始するようにホストに要求することができる。
In response to detecting the violation in
ステップ120で、プロセッサ44は、様々な保護アクションを適用することができる。いくつかの実施形態では、保護アクションは、安全システム20の1つ以上の要素をリセットすること、例えば、ホスト24をリセットすることを含む。あるいは、またはさらに、プロセッサは、例えば、バス上の1つまたは複数の信号の論理値を変更することによって、またはホストをバスから切断することによって、バス36を中断する。
At
バス信号を修正する方法は、例えば、米国特許出願公開第2018/0239727号に記載されており、その開示は参照により本明細書に組み込まれる。例えば、いくつかの実施形態では、スレーブ1のバスインターフェース40は、ホスト24に並行して、バス36のバス信号の1つまたは複数を駆動する。スレーブ1は、ホストによって並行して駆動される論理値をオーバーライドする論理値を適用することにより、バスを中断させる可能性がある。バス信号の論理値のオーバーライドは、たとえば、ホストの対応するラインドライバーよりも強力なラインドライバーを使用するか、ホストが駆動する信号を減衰させるためにホストが駆動するバス信号に直列に抵抗を追加することで実現できる 。別の実施形態では、ホスト信号は、必要に応じてバス信号の論理値をマスクするスレーブ1を介してスレーブ2にルーティングされる。ホストをバスから切断する方法については、以下でさらに説明する。
Methods for modifying bus signals are described, for example, in US Patent Application Publication No. 2018/0239727, the disclosure of which is incorporated herein by reference. For example, in some embodiments, the
バス監視を使用してメモリデバイスとのトランザクションを保護する方法の例
以下の例示的な実施形態は、スレーブ2がメモリデバイス、例えば、フラッシュメモリを含むシステム構成に言及する。
Examples of Methods of Using Bus Monitoring to Protect Transactions with Memory Devices The following exemplary embodiments refer to a system configuration in which the
図3および図4は、本明細書で説明される実施形態による、安全な読み取りおよび書き込み操作の方法を概略的に示すフローチャートである。図3および図4の方法は、例えば、スレーブ1のプロセッサ44によって実行される。また、図3および図4は、上記の図2の方法と組み合わせることができる。
3 and 4 are flowcharts schematically showing a method of safe reading and writing operations according to the embodiments described herein. The methods of FIGS. 3 and 4 are performed, for example, by the
図3の方法は、読み出しトランザクション要求ステップ150で始まり、プロセッサ44がホストのデバイスドライバ68に要求して、フラッシュメモリ(スレーブ2)の所定のアドレスからデータを読み取る読み出しトランザクションを開始する。監視ステップ154で、プロセッサは、バス36を監視して(IML56を使用して)、上述のように、デバイスドライバによって実行されている要求された読み取りトランザクションを識別する。
The method of FIG. 3 begins with a read
いくつかの実施形態では、読み取りトランザクションは、読み取りの開始アドレスを表す一連の論理値としてバス信号上に現れ、その後に、1つまたは複数のアドレスの読み取りでフラッシュメモリから取得した1つまたは複数のデータユニット(バイト単位など)を表す論理値が続く。例示的な実施形態では、プロセッサは、要求された読み取りトランザクションで指定された開始アドレスを検出することによって、バス上の要求された読み取りトランザクションを識別する。 In some embodiments, the read transaction appears on the bus signal as a set of logical values representing the start address of the read, followed by one or more obtained from the flash memory by reading one or more addresses. Followed by a logical value that represents the data unit (bytes, etc.). In an exemplary embodiment, the processor identifies the requested read transaction on the bus by finding the start address specified in the requested read transaction.
バス上の読み出しトランザクションの識別に応答して、プロセッサは、監視ステップ158でバスを監視し続け、ホストによって並列に読み取られているデータを表すバス上の論理値をキャプチャする。プロセッサは、要求された読み取りトランザクションで指定されているように、1つ以上のデータ単位(バイトなど)をキャプチャする。
In response to the identification of the read transaction on the bus, the processor continues to monitor the bus in monitoring
いくつかの実施形態では、フラッシュメモリから取り出されたデータは、暗号署名を使用して署名され、その場合、プロセッサは、署名を使用して読み取られたデータの完全性を検証することができる。いくつかの実施形態では、フラッシュメモリから取り出されたデータは暗号化され、その場合、プロセッサは読み取られたデータを解読することができる。一部の実施形態では、バス上にキャプチャされたデータに加えて、プロセッサは、デバイスドライバを介して、読み取られたデータのバージョンを受信する。これらの実施形態では、プロセッサは、バス上の直接のデータキャプチャとデバイスドライバを介して間接的に読み取られたデータとを比較することにより、ホストが改ざんされていないことを検証することができる。ステップ158に続いて、図3の方法は終了する。
In some embodiments, the data retrieved from the flash memory is signed using a cryptographic signature, in which case the processor can verify the integrity of the data read using the signature. In some embodiments, the data retrieved from the flash memory is encrypted, in which case the processor can decrypt the read data. In some embodiments, in addition to the data captured on the bus, the processor receives a version of the read data via the device driver. In these embodiments, the processor can verify that the host has not been tampered with by comparing the direct data capture on the bus with the data indirectly read through the device driver. Following
図3の方法では、スレーブ1は、ホストによってフラッシュメモリに適用される読み取りトランザクション中にバス信号を監視する。図3の方法は、ホストによってフラッシュメモリに適用された書き込みトランザクション中にバス信号をスヌーピングするために、同様の方法で使用できる。一部の実施形態では、バスをスヌープすることにより、スレーブ1は、要求されたトランザクションが意図したとおりに実行されることを確認する。
In the method of FIG. 3,
図4の方法では、プロセッサ44は、ホストに書き込まれたアドレス、データ、またはその両方を公開することなく、フラッシュメモリ内の所望のアドレスに所望のデータを書き込む所望の書き込み動作を実行する。
In the method of FIG. 4, the
図4の方法は、ダミー書き込みトランザクション要求ステップ200で始まり、プロセッサ44は、バス36を介してフラッシュメモリ(スレーブ2)へのダミー書き込みトランザクションを開始するようデバイスドライバ68に要求する。ダミー書き込みトランザクションは、フラッシュメモリ内のアドレスを指定します。これは、定義済みのダミーアドレスまたは書き込み用の実際のアドレスの場合がある。ダミー書き込みトランザクションは、おそらくオペコードと、指定されたアドレスに書き込まれるダミーデータを指定する。ダミーの書き込みトランザクションは、バス上で[オペコード、ダミーアドレス、ダミーデータ]として表示される。この例では、ダミーアドレスはオペコードに従い、ダミーデータは時間の経過とともにダミーデータに従う。
The method of FIG. 4 begins with a dummy write
監視ステップ204で、プロセッサは(IML56を使用して)バス36を監視して、デバイスドライバによって実行されている要求されたダミー書き込みトランザクションを識別する。プロセッサは、例えば、要求されたトランザクションで指定されたオペコードおよび/またはダミーアドレスをバス上で検出することによって、バス上のダミー書き込みトランザクションを識別することができる。
In
オーバーライドするステップ208で、プロセッサは、ダミー書き込みトランザクション中にバス上の論理値をオーバーライドし、論理値は所望の書き込み動作を表す。このために、プロセッサ44は、ダミー書き込みトランザクションのデータ、アドレス、およびオペコード部分の1つまたは複数を、所望の書き込み動作の対応する値で上書きする。その結果、フラッシュメモリの目的のアドレスに目的のデータが書き込まれる。ホストは通常、このバスオーバーライド操作を認識せず、目的の書き込みトランザクションのデータ、アドレス、およびオペコード値は公開されないままである。
At overriding
いくつかの実施形態では、上記のようにバス信号をオーバーライドするとき、プロセッサ44は、バスインターフェースによって駆動されるバス信号をさらに監視する。バス信号を監視することにより、プロセッサ44は、予想通り、意図されたデータが意図されたアドレスに書き込まれたことを確認することができる。
In some embodiments, when overriding the bus signal as described above, the
図4の方法では、スレーブ1は、ダミーの書き込みトランザクションを、フラッシュメモリ内の異なるデータとアドレスの望ましい書き込みトランザクションで上書きする。図4の方法は、例えば、フラッシュメモリ内の所望のアドレスからの読取りなど、所望の読取りトランザクションでダミー読取りトランザクションをオーバーライドするために、同様の方法で使用することができる。
In the method of FIG. 4,
ホストをバスから切断してスレーブデバイスに安全にアクセスする方法
図5は、本明細書で説明される実施形態による、バスからのマスターデバイスの切断をサポートする安全システム250を概略的に示すブロック図である。安全システム250は、図1の安全システム20を実装する際に使用することができる。
How to Disconnect the Host from the Bus and Securely Access the Slave Device FIG. 5 schematically illustrates a
安全システム250では、ホスト24は、SPIバス254を介してスレーブデバイス28(スレーブ1)および32(スレーブ2)に接続されたバスマスターを含む。SPIバスは、クロック(CLK)ラインと、マスターアウトスレーブイン(MOSI)およびマスターインスレーブアウト(MISO)と呼ばれる2つのデータラインで構成される。CLK、MOSI、およびMISOラインは、すべてのデバイス(この例では、ホスト24、およびスレーブデバイス28および32)に共通である。さらに、各スレーブデバイスは、専用のチップセレクト(CS)ラインを使用して選択可能である。この例では、ホスト24は、CS#1で示されるCSラインを使用してスレーブ1を選択し、CS#2で示されるCSラインを使用してスレーブ2を選択する。
In the
マスターであるホスト24は、すべてのCSラインに接続されている。一方、各スレーブデバイスは、それ自体のCSラインにのみ接続される。通常、ホスト24は、それぞれのCSラインを使用して所望のスレーブデバイスを選択することによりトランザクションを開始し、その後、CLK、MOSIおよびMISOラインを使用してデバイスと通信する。MOSIラインはホストからスレーブデバイスへの送信に使用され、MISOラインはスレーブデバイスからホストへの送信に使用される。
The
スレーブ1は、従来のSPIスレーブとは異なり、スレーブとして定義されているが、スレーブ2のCS#2ラインなどの他のデバイスのCSラインを駆動できる。図5に示すように、スレーブ1のバスインターフェース40は、ホスト24と並行してCS#2ラインを駆動するように構成される。システムが、それぞれのCSラインを有する複数のスレーブデバイス(例えば、スレーブ2など)を含む場合、スレーブ1は、ホストデバイス24と並行して任意のCSラインを駆動するように構成され得る。
The
図5では、MOSIラインとMISOラインがスレーブ1に直接接続されている。一方、MOSIおよびMISOラインは、スレーブ1を介してスレーブ2に間接的に接続される。この構成では、スレーブ1は、ホストのMOSIおよびMISOラインをスレーブ2に接続するか、スレーブ2から切断するかを制御する。スレーブ1は、MISOセレクタ260およびMOSIセレクタ262を含む。MISOセレクターとMOSIセレクターのそれぞれは、2つの入力ポートと1つの出力ポートで構成される。いつでも、プロセッサ44は、SEL制御入力を使用してセレクタを制御し、その出力ポートとその入力ポートの1つとの間を内部的に接続する。MISOおよびMOSIセレクタは、例えば、マルチプレクサ要素を使用するなど、任意の適切な回路要素を使用して実装することができる。
In FIG. 5, the MOSI line and the MISO line are directly connected to the
ホスト24がスレーブ2からデータを読み取るとき、スレーブ1はMISOセレクタを制御してMISOラインをホストとスレーブ2の間に接続します。この場合、スレーブ1はバス上のデータをホストと並列に読み取ることができる。または、スレーブ1はホストMISOラインをスレーブ2から切断し、読み取られたデータがホストに公開されないようにする。スレーブ1のプロセッサ44は、スレーブ2から取得したデータの代わりに、他のデータをホストMISOラインにホストに向かって注入する可能性がある。
When the
ホスト24がスレーブ2にデータを書き込むと、スレーブ1はMOSIセレクターを制御してホストMOSIラインをスレーブ2に接続し、ホストがスレーブデバイスにデータを書き込むことができるようにする。あるいは、スレーブ1は、MOSIセレクタを使用して、ホストMOSIラインをスレーブ2から切断し、プロセッサ44は、他のアドレスおよび/またはデータをスレーブ2に注入して、異なる書き込みトランザクションを実行することができる。
When the
いくつかの実施形態では、MISOセレクタがホストMISOラインをスレーブ2に接続すると、スレーブ1は、ホスト読み取りトランザクションをインターセプトし、読み取りトランザクションのデータ/アドレスをオーバーライドすることができる。同様に、MOSIセレクターがホストMOSIラインをスレーブ2に接続すると、スレーブ1がホストの書き込みトランザクションをインターセプトし、書き込みトランザクションのデータ/アドレスを上書きする場合がある。
In some embodiments, when the MISO selector connects the host MISO line to
本明細書で説明される実施形態による、ホストをバスから切断することによって、スレーブデバイスへの安全なアクセスのための方法を概略的に示すフローチャートである。この方法は、図5の保護されたシステム250内のスレーブデバイス28(スレーブ1)のプロセッサ44によって実行され得る。この例では、スレーブ1は安全装置を含み、スレーブ2はフラッシュメモリを含み、バス254はSPIバスを含む。図6の方法は、上記の図2の方法と組み合わせることができる。
It is a flow chart schematically showing the method for secure access to a slave device by disconnecting a host from a bus according to an embodiment described herein. This method can be performed by the
この方法は、トランザクション要求ステップ300で始まり、プロセッサ44がホスト24のデバイスドライバ68に要求して、フラッシュメモリへのダミー書き込みトランザクションまたはダミー読み取りトランザクションを開始する。ダミーの読み取りまたは書き込みトランザクションは、オペコード(オプション)、フラッシュメモリ内の実アドレスまたはダミーアドレス、および書き込みトランザクションの場合は実データまたはダミーデータを指定する。
This method begins with
監視ステップ304で、プロセッサ44は、バス36を監視して(例えば、IML56を使用して)、デバイスドライバによって実行されている要求されたダミー書き込みまたはダミー読み取りトランザクションを識別する。プロセッサは、例えば、要求されたトランザクションで指定されたフラッシュメモリアドレスおよび/またはオペコードを検出することにより、バス上のダミー書き込みまたはダミー読み取りトランザクションを識別することができる。
In
切断ステップ308で、要求されたトランザクションの識別に応じて(たとえば、トランザクションのオペコードに基づいて)、プロセッサはホストをSPIバスから切断する。書き込みトランザクションの場合、プロセッサはMOSIセレクタ262を使用してホストをスレーブ2から切断しますが、読み取りトランザクションの場合、プロセッサはMISOセレクタ260を使用してホストを切断する。あるいは、プロセッサは、両方のセレクタを同時に使用して、MISOラインとMOSIラインの両方を切断することもできる。いくつかの実施形態では、プロセッサは、バス上の要求されたトランザクションを識別することとは無関係に、ホストをバスから切断する。
In
ステップ304で検出されたトランザクションが書き込みまたは読み取りトランザクションであることに基づいて、プロセッサは、それぞれ書き込みステップ312または読み取りステップ316に進む。
Based on the transaction detected in
ステップ312で、プロセッサは、SPIバスを介して、MOSIラインを介してホストによって配信されたデータおよびアドレスに関係なく、意図されたデータを意図されたアドレスに書き込む。この手法では、プロセッサはダミーの書き込みトランザクションを、ホストから隠されたままの望ましい書き込みトランザクションで上書きする。一部の実施形態では、フラッシュメモリへの書き込みに加えて(例えば、並行して)、プロセッサは、起こり得る違反を検出するためにホストによって駆動されるMOSIラインを監視することができる。一部の実施形態では、フラッシュメモリへの書き込みに加えて(例えば、並行して)、プロセッサは、起こり得る違反を検出するために、プロセッサによって駆動されるMOSIラインを監視し得る。
At
ステップ316で、プロセッサは、SPIバスを介して、フラッシュメモリの意図されたアドレスからデータを読み取る。ホストのMISOラインがフラッシュメモリから切断されているため、プロセッサが読み取った実際のデータは、ホストから隠されたままになる。いくつかの実施形態では、フラッシュメモリからの読み取りに加えて(例えば、並行して)、プロセッサは、ダミーデータなどの他のデータをホストに送信する。
At
ステップ312および316のそれぞれに続いて、方法は終了する。
Following
図1に示される安全システム20およびホストデバイス24、スレーブデバイス28およびスレーブデバイス32の構成、ならびに図5の安全システム250は構成例であり、純粋に概念を明確にするために示されている。あるいは、他の適切な安全システム、ホストデバイス、およびスレーブデバイスの構成も使用できる。本発明の原理を理解するのに必要ではない要素、例えば、様々なインターフェース、制御回路、アドレス指定回路、タイミングおよびシーケンシング回路、デバッグ回路は、明確にするために図から省略されている。
The configuration of the
図1および図5に示される例示的なシステム構成では、CPU60、スレーブデバイス28およびスレーブデバイス32は、別個の集積回路(IC)として実装される。しかしながら、代替の実施形態では、CPU、スレーブデバイス28、およびスレーブデバイス32のうちの少なくとも2つは、単一のマルチチップパッケージ(MCP)またはシステムオンチップ(SoC)内の別個の半導体ダイに統合されたり、内部バスで相互接続できる。例示的な実施形態では、スレーブデバイス28(例えば、コントローラ)およびスレーブデバイス32(例えば、フラッシュメモリ)は、マルチチップモジュール(MCM)に実装される。スレーブデバイス28とスレーブデバイス32が同じパッケージ内(たとえば、MCMまたはMCPデバイス内)に実装されている実施形態では、両方のデバイスが共通のパッケージ内の同じSPIインターフェースライン(たとえば、MISO、MOSIおよびCLK)を共有する。そのような実施形態は、期待される機能に違反しようとして2つのスレーブデバイス間の信号を攻撃または操作するため、攻撃者が複合デバイスを開くことを必要とするので、改善されたセキュリティを提供できる。
In the exemplary system configuration shown in FIGS. 1 and 5, the
スレーブデバイス28の異なる素子は、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)などの任意の適切なハードウェアを使用して実装され得る。いくつかの実施形態では、スレーブデバイス28のいくつかの素子は、ソフトウェアを使用して、またはハードウェア要素とソフトウェア要素の組み合わせを使用して実装することができる。例えば、本実施形態では、スレーブインターフェースロジック52およびIML56は、専用ハードウェアモジュールとして実現することができる。メモリ48は、例えば、RAMなどの任意の適切なタイプのメモリおよび記憶技術を含むことができる。
The different elements of the
通常、ホスト24のCPU60およびスレーブデバイス28のプロセッサ44のそれぞれは、本明細書で説明する機能を実行するようにソフトウェアでプログラムされた汎用プロセッサを含む。ソフトウェアは、例えば、ネットワークを介して電子形式で関連するプロセッサにダウンロードすることができ、あるいは、代替的または追加的に、磁気、光学、または電子メモリなどの非一時的な有形媒体に提供および/または格納することができる。
Typically, each of the
暗号化コプロセッサを含む安全システム
ホスト24がバス36を介してバスマスターとして、ホスト24の暗号化コプロセッサとして機能するスレーブデバイス28(スレーブ1)、またはホストと暗号化コプロセッサの両方の外部にある不揮発性メモリ(NVM)デバイスを含むスレーブデバイス32(スレーブ2)に接続する、図1のシステム20などの安全システムの構成例について考える。暗号化コプロセッサは、本明細書では安全装置とも呼ばれる。
A secure system that includes an encrypted coprocessor. A slave device 28 (slave 1) in which the
ホストは、安全装置の助けを借りてセキュリティサービスを提供するセキュリティアプリケーション64を実行する。セキュリティアプリケーションは、セキュリティコマンドを安全装置に送信し、安全装置からそれぞれのコマンド応答を受信する。セキュリティアプリケーションを提供する場合、NVMデバイスにアクセスするために安全装置が必要になることがある。
The host runs a
ホストは、セキュリティアプリケーションに対して透過的に、安全装置と外部NVMデバイスの間を仲介する専用デバイスドライバ68を実行する。デバイスドライバーにより、安全装置はデバイスドライバーを介して間接的に外部NVMにアクセスできる。ホストからセキュリティコマンドを受信すると、安全装置はセキュリティコマンドを実行します。セキュリティコマンドは、バスを介してNVMデバイスへのアクセスを必要とする場合があり、専用のデバイスドライバーを介してアプリケーションプログラムに透過的に実行される。
The host runs a
一部の実施形態では、例えば、セキュリティアプリケーションによって要求されたセキュリティコマンドを実行する際に、安全装置は、バスを介して外部NVMにアクセスするトランザクションを開始するようにホストに要求する。安全装置は、要求されたトランザクションを実行する際にホストがバスを介してNVMデバイスにアクセスする期間内に、バス上の1つ以上の信号を監視し、監視された信号に基づいて、要求されたトランザクションの実行中にセキュリティ違反が発生したかどうかを識別する。 In some embodiments, for example, when executing a security command requested by a security application, the security device requires the host to initiate a transaction to access the external NVM over the bus. The safety device monitors one or more signals on the bus during the time the host accesses the NVM device over the bus when performing the requested transaction, and is requested based on the monitored signals. Identifies whether a security breach occurred during the execution of a transaction.
以上のように、暗号化コプロセッサで構成された安全システムは、バス監視技術を使用して、安全システム20および250について上記で説明した任意の実施形態を適用できる。
As described above, the security system configured by the encrypted coprocessor can use the bus monitoring technology to apply any of the embodiments described above for the
上記の実施形態は例として与えられたものであり、他の適切な実施形態を使用することもできる。例えば、上述の実施形態は主にSPIバスに言及しているが、これらの実施形態はI2Cバスにも同様に適用可能である。さらに代替的に、開示された実施形態はシリアルバスに限定されず、パラレルバスにも同様に適用可能である。いくつかの実施形態では、スレーブ1は、スレーブ2などの他のスレーブデバイスとは異なるバスを介して(おそらくスレーブである必要はないが)ホストに接続される。そのような実施形態では、スレーブ1は、ホストがスレーブ2などの他のスレーブデバイスに接続されるバスにも接続され、例えば、上述の方法およびシステムを使用してバスの監視および保護を可能にする。
The above embodiment is given as an example, and other suitable embodiments may be used. For example, although the above embodiments mainly refer to SPI buses, these embodiments are similarly applicable to I2C buses. Further alternative, the disclosed embodiments are not limited to serial buses and are similarly applicable to parallel buses. In some embodiments, the
上記のいくつかの実施形態では、スレーブ1は、バス上のオペコード、アドレス、またはデータ素子を識別することによってトランザクションを検出する。代替として、そのような素子の一部のみを検出することで十分かもしれない。たとえば、スレーブ1は、アドレス範囲を指定する最上位部分など、アドレス要素の一部のみを検出することにより、トランザクションを検出できる。
In some of the above embodiments,
本明細書で説明する実施形態は、SPIバスがシングルモードで動作する実施形態に主に言及しているが、開示された実施形態は、ダブルまたはクワッドモードで動作するSPIバスに同様に適用可能である。 Although the embodiments described herein primarily refer to embodiments in which the SPI bus operates in single mode, the disclosed embodiments are similarly applicable to SPI buses operating in double or quad mode. Is.
本明細書で説明する実施形態は、主にデバイス間を接続するためのSPIおよびI2Cバスを扱うが、本明細書で説明する安全方法および安全システムは、たとえば拡張シリアル周辺インターフェースバス(eSPI)などの他の適切なタイプの周辺バスでも使用できる。 Although the embodiments described herein primarily deal with SPI and I2C buses for connecting devices, the safety methods and systems described herein include, for example, the Extended Serial Peripheral Interface Bus (eSPI). It can also be used with other suitable types of peripheral buses.
上記の実施形態では、スレーブ2は主にフラッシュまたはNVMデバイスと呼ばれるが、本明細書で説明する方法およびシステムは、スレーブ2が揮発性メモリまたはシステム内の他のデバイスなどの他の任意の適切な周辺デバイスであり得る他の用途でも使用することができる。例えば、スレーブ2は、任意の適切なコントローラまたは監視デバイスを含み得る。
In the above embodiments, the
上記の実施形態は例として引用されており、特許請求の範囲は、上記で特に示され、説明されたものに限定されないことが理解されよう。むしろ、範囲は、上述の様々な特徴の組み合わせおよび部分的組み合わせの両方、ならびに前述の説明を読んだときに当業者が思いつくであろう、先行技術では開示されていないその変形および修正を含む。参照により本特許出願に組み込まれる文書は、本明細書で明示的または黙示的になされた定義と矛盾する方法で用語がこれらの組み込まれた文書で定義される場合を除き、本出願の不可欠な部分と見なされるべきである。 本明細書の定義を考慮する必要がある。 It will be appreciated that the above embodiments are taken as examples and the claims are not limited to those specifically indicated and described above. Rather, the scope includes both combinations and partial combinations of the various features described above, as well as its modifications and modifications not disclosed in the prior art that one of ordinary skill in the art would come up with when reading the above description. Documents incorporated into this patent application by reference are essential to this application unless the terms are defined in these incorporated documents in a manner that contradicts the definitions made expressly or implicitly herein. Should be considered part. The definitions herein need to be considered.
20…安全システム
24…ホストデバイス
250…安全システム
28…スレーブデバイス
32…スレーブデバイス
36…バス
40…バスインターフェース
44…プロセッサー
48…メモリー
52…スレーブインターフェースロジック
56…インターフェースモニターロジック(IML)
60…CPU
64…アプリケーション
68…デバイスドライバ
20 ...
60 ... CPU
64 ...
Claims (45)
前記インターフェースは、
ホスト及び第2デバイスが結合されているバスに接続し、少なくとも前記第2デバイスはスレーブモードでバス上で動作し、前記ホストは、少なくとも安全装置を代表して、前記バス上でトランザクションを開始するバスマスタとしてバス上で動作し、
前記プロセッサーは、
前記安全装置のために、前記バスを介して前記第2デバイスにアクセスするトランザクションを開始するように前記ホストに要求し、
少なくとも前記ホストが、前記バスを介して前記第2デバイスにアクセスして前記要求されたトランザクションを実行する期間内に、前記バス上の1つ以上の信号を監視し、
前記監視された信号に基づいて、前記要求されたトランザクションの実行中にセキュリティ違反が発生したかどうかを識別することを特徴とする安全装置。 Equipped with an interface and a processor,
The interface is
The host and the second device are connected to the combined bus, at least the second device operates on the bus in slave mode, and the host initiates a transaction on the bus, at least on behalf of the safety device. Acts on the bus as a bus master,
The processor
Requesting the host to initiate a transaction to access the second device via the bus for the safety device.
At least during the period in which the host accesses the second device via the bus and executes the requested transaction, one or more signals on the bus are monitored.
A safety device comprising identifying whether a security breach has occurred during the execution of the requested transaction based on the monitored signal.
前記安全装置は、前記安全装置のために、前記バスを介して前記第2デバイスにアクセスするトランザクションを開始するように前記ホストに要求することと、
少なくとも前記ホストが、前記バスを介して前記第2デバイスにアクセスして前記要求されたトランザクションを実行する期間内に、前記バス上の1つ以上の信号を監視することと、
前記監視された信号に基づいて、前記要求されたトランザクションの実行中にセキュリティ違反が発生したかどうかを識別することと、
を含むことを特徴とする安全方法。 In a safety device connected to a bus to which a host and a second device are coupled, at least the second device operates on the bus in slave mode and the host at least represents the safety device on the bus. Acting on the bus as a bus master to initiate a transaction,
The safety device requests the host to initiate a transaction to access the second device via the bus for the safety device.
Monitoring one or more signals on the bus, at least during the period in which the host accesses the second device via the bus and executes the requested transaction.
Identifying whether a security breach occurred during the execution of the requested transaction based on the monitored signal.
A safety method characterized by including.
前記信号を監視することは、前記バス上で、前記要求されたトランザクションに対応する実際のトランザクション情報を監視することを含み、
前記セキュリティ違反を識別することは、前記予期されたトランザクション情報の少なくとも一部が前記実際のトランザクション情報と異なることを検出することを含む
請求項14に記載の安全方法。 The requested transaction specifies the expected transaction information and
Monitoring the signal includes monitoring the actual transaction information corresponding to the requested transaction on the bus.
14. The security method of claim 14, wherein identifying the security breach comprises detecting that at least a portion of the expected transaction information is different from the actual transaction information.
前記ホストは、
バスに結合され、バスマスタとして動作するように構成され、スレーブデバイスと前記ホストによってトリガーされるバスアクセス操作を仲介することにより、前記バスに結合された前記スレーブデバイスにアクセスし、
前記安全装置は、
前記バスに接続され、前記バスにスレーブとして接続されている第2デバイスにアクセスするトランザクションを開始するように前記ホストに要求し、
少なくとも前記ホストが前記要求されたトランザクションを実行する際に前記バスを介して前記第2デバイスにアクセスする期間内に、前記バス上の1つ以上の信号を監視し、
前記監視された信号に基づいて、前記要求されたトランザクションの実行中にセキュリティ違反が発生したかどうかを識別することを特徴とする安全システム。 Equipped with a host and a safety device,
The host
Accessing the slave device coupled to the bus by being coupled to the bus and configured to act as a bus master and mediating the bus access operation triggered by the slave device and the host.
The safety device is
Requesting the host to initiate a transaction to access a second device connected to the bus and connected as a slave to the bus.
Monitoring one or more signals on the bus, at least during the period in which the host accesses the second device via the bus when performing the requested transaction.
A safety system comprising identifying whether a security breach has occurred during the execution of the requested transaction based on the monitored signal.
前記バスに結合された安全装置によって、前記バスに結合された第2装置にスレーブとしてアクセスするトランザクションを開始するように前記ホストに要求することと、
前記安全装置によって、少なくとも前記ホストが前記バスを介して第2デバイスにアクセスし、前記要求されたトランザクションを実行している期間内に、前記バス上の1つまたは複数の信号を監視することと、
前記監視された信号に基づいて、前記安全装置によって、前記要求されたトランザクションの実行中にセキュリティ違反が発生したかどうかを識別することと、
を含む安全方法。 In a safety system that includes a host acting as a bus master on a bus to which a slave device is connected, mediation by the host between the slave device and a bus access operation triggered by the host.
Requesting the host to initiate a transaction to access the second device attached to the bus as a slave by the safety device attached to the bus.
By the safety device, at least during the period when the host accesses the second device via the bus and executes the requested transaction, one or more signals on the bus are monitored. ,
Identifying whether a security breach has occurred during the execution of the requested transaction by the safety device based on the monitored signal.
Safety methods including.
前記信号を監視することは、前記バス上で、前記要求されたトランザクションに対応する実際のトランザクション情報を監視することを含み、
前記セキュリティ違反を識別することは、前記予期されたトランザクション情報の少なくとも一部が前記実際のトランザクション情報と異なることを検出することを含む請求項36に記載の安全方法。 The requested transaction specifies the expected transaction information and
Monitoring the signal includes monitoring the actual transaction information corresponding to the requested transaction on the bus.
36. The security method of claim 36, wherein identifying the security breach comprises detecting that at least a portion of the expected transaction information is different from the actual transaction information.
ホストで実行されるデバイスドライバーと、を備え、
前記安全装置、前記ホスト、および前記安全装置の外部にある不揮発性メモリデバイスは、共通バスに結合され、
前記デバイスドライバーは、前記安全装置と前記不揮発性メモリデバイスを仲介するように構成され、
前記安全装置は、前記ホスト上で実行されているアプリケーションプログラムからセキュリティコマンドを受信し、前記バスを介して前記不揮発性メモリデバイスにアクセスすることによって、前記デバイスドライバーを介して前記アプリケーションプログラムに透過的にセキュリティコマンドを実行することを特徴とする安全設備。 A security device that provides security services to the host,
With a device driver running on the host,
The safety device, the host, and the non-volatile memory device outside the safety device are coupled to a common bus.
The device driver is configured to mediate between the safety device and the non-volatile memory device.
The safety device is transparent to the application program via the device driver by receiving a security command from the application program running on the host and accessing the non-volatile memory device via the bus. Safety equipment characterized by executing security commands in.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/377,211 | 2019-04-07 | ||
US16/377,211 US10783250B2 (en) | 2014-07-24 | 2019-04-07 | Secured master-mediated transactions between slave devices using bus monitoring |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020177661A JP2020177661A (en) | 2020-10-29 |
JP7033383B2 true JP7033383B2 (en) | 2022-03-10 |
Family
ID=72806531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020069117A Active JP7033383B2 (en) | 2019-04-07 | 2020-04-07 | Safety devices, safety methods, safety systems, and safety equipment |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP7033383B2 (en) |
CN (1) | CN111797440B (en) |
TW (2) | TWI733399B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113037506A (en) * | 2021-02-25 | 2021-06-25 | 山东英信计算机技术有限公司 | Interface switching control method, device, equipment and computer readable storage medium |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005182525A (en) | 2003-12-19 | 2005-07-07 | Fujitsu Ltd | Storage device |
JP2005317025A (en) | 2004-04-29 | 2005-11-10 | Internatl Business Mach Corp <Ibm> | Method and system for booting reliable server having redundant and reliable platform module |
US20060107032A1 (en) | 2004-11-17 | 2006-05-18 | Paaske Timothy R | Secure code execution using external memory |
JP2006338615A (en) | 2005-06-06 | 2006-12-14 | Renesas Technology Corp | Data communication system |
US20080250252A1 (en) | 2007-03-28 | 2008-10-09 | Winbond Electronics Corporation | Systems and methods for bios processing |
CN102819699A (en) | 2012-06-04 | 2012-12-12 | 珠海欧比特控制工程股份有限公司 | Processor system |
JP2014220623A (en) | 2013-05-07 | 2014-11-20 | 山洋電気株式会社 | Inter-master-and-slave mutual communication device and its communication method |
JP2016533608A (en) | 2013-10-07 | 2016-10-27 | クアルコム,インコーポレイテッド | Communication between slave devices of camera control interface |
JP2017033537A (en) | 2014-07-24 | 2017-02-09 | ヌヴォトン テクノロジー コーポレーション | Security device having indirect access to external non-volatile memory |
JP2017208075A (en) | 2015-06-08 | 2017-11-24 | 新唐科技股▲ふん▼有限公司 | Device, system and method for securely accessing peripheral device via bus |
JP2018007130A (en) | 2016-07-06 | 2018-01-11 | 日本電信電話株式会社 | Communication system, communication device, communication method, and program |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2686170B1 (en) * | 1992-01-14 | 1996-09-06 | Gemplus Card Int | MASS MEMORY CARD FOR MICROCOMPUTER. |
US6088450A (en) * | 1996-04-17 | 2000-07-11 | Intel Corporation | Authentication system based on periodic challenge/response protocol |
JPH10143436A (en) * | 1996-11-08 | 1998-05-29 | Hitachi Ltd | Security controller |
KR100941104B1 (en) * | 2002-11-18 | 2010-02-10 | 에이알엠 리미티드 | Apparatus for processing data, method for processing data and computer-readable storage medium storing a computer program |
US20060059360A1 (en) * | 2004-07-01 | 2006-03-16 | Ortkiese Jerry B | Authenticating controller |
CN101329631B (en) * | 2007-06-21 | 2011-03-16 | 大唐移动通信设备有限公司 | Method and apparatus for automatically detecting and recovering start-up of embedded system |
GB2460275B (en) * | 2008-05-23 | 2012-12-19 | Exacttrak Ltd | A Communications and Security Device |
US8607034B2 (en) * | 2008-05-24 | 2013-12-10 | Via Technologies, Inc. | Apparatus and method for disabling a microprocessor that provides for a secure execution mode |
US8051467B2 (en) * | 2008-08-26 | 2011-11-01 | Atmel Corporation | Secure information processing |
KR101122697B1 (en) * | 2008-12-22 | 2012-03-09 | 한국전자통신연구원 | Method and system to prevent Data leakage using Content Inspection based USB Memory Device |
WO2014175861A1 (en) * | 2013-04-23 | 2014-10-30 | Hewlett-Packard Development Company, L.P. | Recovering from compromised system boot code |
US20140366131A1 (en) * | 2013-06-07 | 2014-12-11 | Andes Technology Corporation | Secure bus system |
JP6267596B2 (en) * | 2014-07-14 | 2018-01-24 | 国立大学法人名古屋大学 | Communication system, communication control apparatus, and unauthorized information transmission prevention method |
CN106156632B (en) * | 2015-05-17 | 2019-10-29 | 新唐科技股份有限公司 | Safety device and method of the security service to host, safety equipment are provided in it |
US9921915B2 (en) * | 2015-10-16 | 2018-03-20 | Quanta Computer Inc. | Baseboard management controller recovery |
JP6740789B2 (en) * | 2016-08-03 | 2020-08-19 | 富士通株式会社 | Storage control device and storage device management program |
TW201818253A (en) * | 2016-11-11 | 2018-05-16 | 英業達股份有限公司 | Detection system and detection method |
-
2020
- 2020-04-06 TW TW109111542A patent/TWI733399B/en active
- 2020-04-06 TW TW110124963A patent/TWI751962B/en active
- 2020-04-07 CN CN202010266082.XA patent/CN111797440B/en active Active
- 2020-04-07 JP JP2020069117A patent/JP7033383B2/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005182525A (en) | 2003-12-19 | 2005-07-07 | Fujitsu Ltd | Storage device |
JP2005317025A (en) | 2004-04-29 | 2005-11-10 | Internatl Business Mach Corp <Ibm> | Method and system for booting reliable server having redundant and reliable platform module |
US20060107032A1 (en) | 2004-11-17 | 2006-05-18 | Paaske Timothy R | Secure code execution using external memory |
JP2006338615A (en) | 2005-06-06 | 2006-12-14 | Renesas Technology Corp | Data communication system |
US20080250252A1 (en) | 2007-03-28 | 2008-10-09 | Winbond Electronics Corporation | Systems and methods for bios processing |
CN102819699A (en) | 2012-06-04 | 2012-12-12 | 珠海欧比特控制工程股份有限公司 | Processor system |
JP2014220623A (en) | 2013-05-07 | 2014-11-20 | 山洋電気株式会社 | Inter-master-and-slave mutual communication device and its communication method |
JP2016533608A (en) | 2013-10-07 | 2016-10-27 | クアルコム,インコーポレイテッド | Communication between slave devices of camera control interface |
JP2017033537A (en) | 2014-07-24 | 2017-02-09 | ヌヴォトン テクノロジー コーポレーション | Security device having indirect access to external non-volatile memory |
JP2017208075A (en) | 2015-06-08 | 2017-11-24 | 新唐科技股▲ふん▼有限公司 | Device, system and method for securely accessing peripheral device via bus |
JP2019023896A (en) | 2015-06-08 | 2019-02-14 | 新唐科技股▲ふん▼有限公司 | Method for secure access to peripheral device via bus |
JP2018007130A (en) | 2016-07-06 | 2018-01-11 | 日本電信電話株式会社 | Communication system, communication device, communication method, and program |
Non-Patent Citations (1)
Title |
---|
畑 正人 ほか,CANにおける不正送信阻止方式の実装と評価,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2012年12月31日,Vol.112 No.342,第15-22頁 |
Also Published As
Publication number | Publication date |
---|---|
CN111797440A (en) | 2020-10-20 |
TWI751962B (en) | 2022-01-01 |
TW202139040A (en) | 2021-10-16 |
CN111797440B (en) | 2023-05-19 |
JP2020177661A (en) | 2020-10-29 |
TW202103037A (en) | 2021-01-16 |
TWI733399B (en) | 2021-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10783250B2 (en) | Secured master-mediated transactions between slave devices using bus monitoring | |
US11580264B2 (en) | Systems and methods for controlling access to secure debugging and profiling features of a computer system | |
US7028149B2 (en) | System and method for resetting a platform configuration register | |
US8838950B2 (en) | Security architecture for system on chip | |
KR101010801B1 (en) | Method and apparatus for determining access permission | |
US7107460B2 (en) | Method and system for securing enablement access to a data security device | |
US9740887B2 (en) | Methods and systems to restrict usage of a DMA channel | |
US20060026417A1 (en) | High-assurance secure boot content protection | |
JP4980464B2 (en) | Logical device with write protected memory management unit register | |
US10846438B2 (en) | RPMC flash emulation | |
EP3928199B1 (en) | Hybrid firmware code protection | |
US11675526B2 (en) | Memory-access control | |
US11556651B2 (en) | Method for secure booting using route switchover function for boot memory bus and apparatus using the same | |
WO2011145199A1 (en) | External boot device, external boot method, information processing device and network communication system | |
Winter et al. | A hijacker’s guide to communication interfaces of the trusted platform module | |
TW201928991A (en) | Transparently attached flash memory security | |
JP7033383B2 (en) | Safety devices, safety methods, safety systems, and safety equipment | |
US20230342472A1 (en) | Computer System, Trusted Function Component, and Running Method | |
CN111797442B (en) | Security device and method | |
JP7293163B2 (en) | CONTROLLER HAVING FLASH EMULATION FUNCTION AND CONTROL METHOD | |
JP7079558B2 (en) | Safety device for SPI flash |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200407 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210525 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210603 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210902 |
|
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: 20220201 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220227 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7033383 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |