JP7033383B2 - Safety devices, safety methods, safety systems, and safety equipment - Google Patents

Safety devices, safety methods, safety systems, and safety equipment Download PDF

Info

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
Application number
JP2020069117A
Other languages
Japanese (ja)
Other versions
JP2020177661A (en
Inventor
ハーシュマン ジヴ
モラヴ ダン
フィッシュマン アブラハム
Original Assignee
新唐科技股▲ふん▼有限公司
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
Priority claimed from US16/377,211 external-priority patent/US10783250B2/en
Application filed by 新唐科技股▲ふん▼有限公司 filed Critical 新唐科技股▲ふん▼有限公司
Publication of JP2020177661A publication Critical patent/JP2020177661A/en
Application granted granted Critical
Publication of JP7033383B2 publication Critical patent/JP7033383B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus 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.

米国仮特許出願14/714298US provisional patent application 14/714298 米国特許出願62/028345U.S. Patent Application 62/028345

本発明の目的は、周辺デバイス間のトランザクションを保護するための方法およびシステムを提供することにある。 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.

図1は、本明細書で説明される実施形態による、安全システムを概略的に示すブロック図である。FIG. 1 is a block diagram schematically showing a safety system according to an embodiment described herein. 図2は、本明細書で説明される実施形態による、バス監視に基づいてマスター仲介トランザクションを保護する安全方法を概略的に示すフローチャートである。FIG. 2 is a flow chart schematically illustrating a secure method of protecting a master-mediated transaction based on bus monitoring, according to an embodiment described herein. 図3は、本明細書で説明される実施形態による、安全な読み取りおよび書き込み操作方法を概略的に示すフローチャートである。FIG. 3 is a flow chart schematically showing a safe read and write operation method according to the embodiment described herein. 図4は、本明細書で説明される実施形態による、安全な読み取りおよび書き込み操作方法を概略的に示すフローチャートである。FIG. 4 is a flow chart schematically showing a safe read and write operation method according to the embodiment described herein. 図5は、本明細書で説明される実施形態による、バスからのマスターデバイスの切断をサポートする安全システムを概略的に示すブロック図である。FIG. 5 is a block diagram schematically showing a safety system that supports disconnection of the master device from the bus according to the embodiments described herein. 図6は、本明細書で説明される実施形態による、ホストをバスから切断することによって、スレーブデバイスへの安全なアクセスのための安全方法を概略的に示すブロック図である。FIG. 6 is a block diagram schematically showing a secure method for secure access to a slave device by disconnecting the host from the bus, according to the embodiments described herein.

以下、本発明について、図に示す実施形態に基づいて説明する。 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 safety system 20 according to an embodiment described herein. In this example, the safety system 20 includes a master host device 24 that connects to peripheral slave devices 28, 32 using the bus 36. Slave devices 28 and 32 are designated as slave 1 and slave 2, respectively. In this example, bus 36 includes a serial peripheral interface (SPI) bus. In other embodiments, the bus 36 can include any other suitable bus, such as a low pin count bus (LPC), or an internally integrated circuit (I2C) bus. The I2C bus can be used, for example, to connect to an electrically erasable read-only memory (EEPROM) device. Other bus interfaces to solid state storage devices may include, for example, secure digital (SD) interfaces, multimedia card (MMC) interfaces, or parallel flash interfaces. Host devices are also referred to simply as "hosts" for brevity.

一部の実施形態では、スレーブ1は、バス36を介したホストのスレーブデバイスであり、さらにバス36のバス信号を監視および制御する。代替実施形態では、スレーブ1は、バス信号を監視および制御するためにバス36に結合されるが、例えばI2Cバスなどの別のバス(図示せず)を介して、スレーブデバイスとしてホストに結合される。 In some embodiments, the slave 1 is a slave device of the host via the bus 36, which further monitors and controls the bus signal of the bus 36. In an alternative embodiment, the slave 1 is coupled to the bus 36 to monitor and control the bus signal, but is coupled to the host as a slave device via another bus (not shown), such as the I2C bus. To.

安全システム20のマスタースレーブ構成では、ホスト24のみがバス36を介して読み取りまたは書き込みトランザクションを開始できる。一方、各スレーブデバイスは、ホスト24からの要求に応答してのみバス36にアクセスすることができる。このマスタースレーブ構成では、スレーブ1とスレーブ2はバス36を介して直接通信することはできないが、それらの通信はホストによって仲介される必要がある。そのような仲介は、スレーブ1がバス36を介してスレーブである場合、およびスレーブ1が別のバスを介してホストに接続されている場合に必要である。 In the master-slave configuration of the safety system 20, only the host 24 can initiate a read or write transaction over the bus 36. On the other hand, each slave device can access the bus 36 only in response to a request from the host 24. In this master-slave configuration, the slave 1 and the slave 2 cannot communicate directly via the bus 36, but their communication needs to be mediated by the host. Such mediation is necessary if the slave 1 is a slave via the bus 36 and if the slave 1 is connected to the host via another bus.

スレーブ1およびスレーブ2は、任意の適切なタイプのデバイスで構成できる。1つの構成では、スレーブ1は、トラステッドプラットフォームモジュール(TPM)と呼ばれることもある安全装置を含むことができ、スレーブ2は、不揮発性メモリ(NVM)を含むことができる。スレーブデバイス28、32の他の適切な構成も使用することができる。一般に、スレーブ1には、組み込みコントローラー(EC)などの適切なコントローラーが含まれる。例示的な実施形態では、スレーブ2は、例えば、読み取り専用メモリ(ROM)、ワンタイムプログラマブル(OTP)メモリ、EEPROM、またはフラッシュメモリなどの任意の適切なタイプのNVMを含むことができる。あるいは、スレーブ2は、ランダムアクセスメモリ(RAM)デバイスなどの揮発性メモリを含むことができる。 Slave 1 and Slave 2 can be configured with any suitable type of device. In one configuration, the slave 1 can include a safety device, sometimes referred to as a trusted platform module (TPM), and the slave 2 can include a non-volatile memory (NVM). Other suitable configurations of slave devices 28, 32 can also be used. Generally, the slave 1 includes a suitable controller such as an embedded controller (EC). In an exemplary embodiment, the slave 2 can include any suitable type of NVM, such as, for example, read-only memory (ROM), one-time programmable (OTP) memory, EEPROM, or flash memory. Alternatively, the slave 2 can include volatile memory such as a random access memory (RAM) device.

なお、スレーブデバイスの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 slave 1 and the slave 2 include a controller that may need to exchange information with each other via the host while monitoring the bus.

この例では、スレーブ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, slave 1 stores a bus interface 40 for connecting to bus 36, a processor 44 configured to perform the disclosed technology, and one or more security policies implemented by the processor 44. A memory 48 configured as described above is provided. The processor 44 includes a slave interface logic 52 and an interface monitor logic (IML) 56. The slave interface logic 52 processes the communication between the slave 1 and the host 24. The IML 56 monitors, controls, and selectively overrides the bus signal when the host 24 accesses the slave 2 instead of the slave 1. In some embodiments, the IML 56 monitors the bus to verify the correct execution of the transaction requested by the host by the slave 1. In one embodiment, the IML 56 further monitors the bus to detect possible violations of one or more predetermined security policies that may be stored in memory 48, not related to a particular requested transaction.

安全システム20では、スレーブ1は、バス36上のトランザクションを監視し、ホスト24またはバスマスター機能を備えた別のデバイスが許可なくスレーブ2にアクセスしようとする不正なトランザクションを防止することにより、たとえばIML 56を使用してスレーブ2へのアクセスを保護する。いくつかの実施形態では、スレーブ1のIML56はバス36を監視して、実際にホストによって実行されているスレーブ1によって要求されたトランザクションを傍受し、トランザクションが正しく実行されていることを確認する。バス上での違反の検出に応答して、例えば、ホストによる要求されたトランザクションの実行中に、IML56は適切な保護アクションを適用することができる。 In the safety system 20, slave 1 monitors transactions on bus 36 to prevent unauthorized transactions, for example, by host 24 or another device with bus master functionality attempting to access slave 2 without permission. Use 56 to protect access to slave 2. In some embodiments, the slave 1's IML56 monitors the bus 36 to intercept the transaction requested by the slave 1 that is actually being executed by the host to ensure that the transaction is being executed correctly. In response to the detection of a violation on the bus, the IML56 can apply appropriate protective actions, for example, during the execution of the requested transaction by the host.

いくつかの実施形態では、保護アクションは、トランザクション中にバス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 bus 36 during a transaction. In some embodiments, the protective action is for data stored in slave 2 such as preventing data corruption on the bus or unauthorized attempts to change the setup or configuration information stored in slave 2. Prevent data corruption.

ホスト24は、1つまたは複数のアプリケーション64を実行するCPU60、および専用デバイスドライバ68を含む。いくつかの実施形態では、スレーブ1は、信頼できるコンピューティングおよび他のセキュリティポリシーを実装するために必要な機能を備えた専用デバイスドライバとともに、ホスト24を提供する安全装置を備える。CPU60は、CPUが実行し、アプリケーション64および専用デバイスドライバ68などのバス36へのアクセスを必要とする可能性がある様々なプログラムまたはプロセス間で仲介する。アプリケーション64は、例えば、格納された情報へのシステムリソースの制御されたアクセスなどの安全なストレージサービスを提供するセキュリティアプリケーションを含み得る。 The host 24 includes a CPU 60 that executes one or more applications 64, and a dedicated device driver 68. In some embodiments, the slave 1 comprises a safety device that provides the host 24, along with a dedicated device driver with the features needed to implement Trustworthy Computing and other security policies. The CPU 60 mediates between various programs or processes that the CPU executes and may require access to the bus 36, such as the application 64 and the dedicated device driver 68. Application 64 may include security applications that provide secure storage services, such as controlled access to system resources for stored information.

専用デバイスドライバ68は、スレーブ1とスレーブ2との間の通信を仲介する。例えば、デバイスドライバ68は、アプリケーション64に対して透過的に、スレーブ2への間接アクセスをスレーブ1に提供する。内部タスクまたは計算を実行するとき、スレーブ1は、たとえば、スレーブ2からのデータの読み取りまたはスレーブ2へのデータの書き込みのために、スレーブ2へのアクセスを必要とする場合がある。スレーブ1は、ホスト24で実行されているアプリケーション64に関係なく、スレーブ2へのアクセスを必要とする場合がある。または、スレーブ1は、アプリケーション64から発信されたコマンドを実行するためにスレーブ2にアクセスする必要がある。 The dedicated device driver 68 mediates communication between the slave 1 and the slave 2. For example, the device driver 68 transparently provides the slave 1 with indirect access to the slave 2. When performing an internal task or calculation, slave 1 may require access to slave 2, for example, to read data from slave 2 or write data to slave 2. The slave 1 may need access to the slave 2 regardless of the application 64 running on the host 24. Alternatively, the slave 1 needs to access the slave 2 in order to execute a command transmitted from the application 64.

スレーブ1は、デバイスドライバ68から、様々な方法でスレーブ2にアクセスすることを要求することができる。一実施形態では、スレーブ1は、内部で、例えば、事前定義されたレジスタ内で要求を準備し、デバイスドライバにバス36を介して要求を読み取るよう通知するための割り込み信号を生成する。別の実施形態では、デバイスドライバ(68)は、スレーブ1内のレジスタをポーリングして、保留中の要求があるかどうかを識別する。さらに別の実施形態では、デバイスドライバ68は、例えば、アプリケーション64がコマンド(例えば、セキュリティコマンド)をスレーブデバイスに送信することに応答して、条件付きでスレーブ1のレジスタ値をチェックする。 The slave 1 can request the device driver 68 to access the slave 2 in various ways. In one embodiment, the slave 1 internally prepares the request, eg, in a predefined register, and generates an interrupt signal to notify the device driver to read the request via bus 36. In another embodiment, the device driver (68) polls the registers in slave 1 to identify if there are any pending requests. In yet another embodiment, the device driver 68 conditionally checks the register value of slave 1 in response to, for example, application 64 sending a command (eg, a security command) to the slave device.

デバイスドライバ68がスレーブ1からスレーブ2にアクセスする要求を受け取ると、CPUはデバイスドライバ68と他のアプリケーション(64)との間で仲介し、スレーブ1に代わってバス36を介してスレーブ2にアクセスする。たとえば、スレーブ2がNVMまたはその他のメモリを含む場合、スレーブ1はデバイスドライバー68にバス36へのアクセスを要求し、(1)所定のNVMアドレスからデータを読み取る、(2)所定のNVMアドレスにデータを書き込む、(3)あるNVMアドレスから別のNVMアドレスにデータをコピーする。 When the device driver 68 receives a request to access the slave 2 from the slave 1, the CPU mediates between the device driver 68 and another application (64) and accesses the slave 2 via the bus 36 on behalf of the slave 1. do. For example, if slave 2 includes NVM or other memory, slave 1 requests device driver 68 to access bus 36, (1) reads data from a given NVM address, and (2) to a given NVM address. Write data, (3) Copy data from one NVM address to another.

バス監視を使用した安全方法
安全システム20は、たとえばホスト24を改ざんするなど、不正な攻撃者によって危険にさらされる可能性がある。攻撃者は、たとえば、スレーブ1によってホストから要求されたトランザクションを検出し、ホストに、要求されたトランザクションとは異なるトランザクションをスレーブ2に適用させることができる。バス36を監視することにより、スレーブ1はバス上の違反イベントを検出し、それに応じて保護アクションを実行できる。
Safety Method Using Bus Monitoring The safety system 20 can be compromised by a rogue attacker, for example by tampering with the host 24. An attacker can, for example, detect a transaction requested by a host by slave 1 and force the host to apply a different transaction to slave 2. By monitoring the bus 36, the slave 1 can detect a violation event on the bus and take protective actions accordingly.

以下の実施形態を説明する際に、スレーブ2を用いてホスト24によって実行されるトランザクションは、論理値のシーケンスとしてバス上に現れると想定される。所定のトランザクションに対応するシーケンスは、通常、アドレス部分とデータ部分、すなわち[アドレス、データ]を含む。論理値のシーケンスには、トランザクションのタイプを識別するオペコードも含まれる場合があり、その場合、シーケンスはバス上で[オペコード、アドレス、データ]として表示される。この例では、スレーブ1がオペコード部分をインターセプトするときに、アドレス部分、データ部分、またはその両方を変更(たとえば、論理値を上書き)できる。トランザクションのオペコード、アドレス、およびデータ部分は、ここではまとめて「トランザクション情報」とも呼ばれる。 In the following embodiments, it is assumed that the transaction executed by the host 24 using the slave 2 appears on the bus as a sequence of logical values. The sequence corresponding to a given transaction usually includes an address part and a data part, i.e., [address, data]. The sequence of logical values may also include an opcode that identifies the type of transaction, in which case the sequence is displayed as [opcode, address, data] on the bus. In this example, when slave 1 intercepts the opcode portion, the address portion, the data portion, or both can be modified (eg, overwritten with a logical value). The opcode, address, and data portion of a transaction are collectively referred to herein as "transaction information."

図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 processor 44 of the slave device 28 of FIG. In the description of the method, as a non-limiting example, the slave device 28 (slave 1) includes a safety device, and the slave device 32 (slave 2) has a flash memory, eg, SPI, when the bus 36 includes an SPI bus. Includes flash memory.

この方法は、(スレーブ1の)プロセッサ44が、リセット保持ステップ100でフラッシュメモリからブートすることから始まる。一実施形態では、プロセッサ44は、典型的にはシステムブートプロセスの一部として、フラッシュメモリにアクセスしながらホスト24をリセットに維持するための適切なインターフェースおよび回路(図示せず)を備える。一実施形態では、ブートプログラムをロードするために、プロセッサ44は、フラッシュメモリからデータブロックをロードし、データブロックの真正性を検証し、認証されたデータブロックをメモリ48にローカルに格納する。リセット時にホストを維持する上記の起動メカニズムは必須ではない。代替の実施形態では、他の適切なブート方法も使用することができる。 This method begins with the processor 44 (of slave 1) booting from flash memory in reset hold step 100. In one embodiment, the processor 44 comprises suitable interfaces and circuits (not shown) for keeping the host 24 at reset while accessing flash memory, typically as part of the system boot process. In one embodiment, in order to load the boot program, the processor 44 loads the data blocks from the flash memory, verifies the authenticity of the data blocks, and stores the authenticated data blocks locally in the memory 48. The above boot mechanism that keeps the host on reset is not required. In alternative embodiments, other suitable boot methods may also be used.

トランザクションを要求するステップ104で、プロセッサ44は、ホスト24のデバイスドライバ68に、バス36を介してフラッシュメモリにアクセスすることを含むトランザクションを開始するように要求する。要求されたトランザクションは、例えば、(1)所与のフラッシュアドレスからデータを読み取る、(2)所与のフラッシュアドレスにデータを書き込む、または(3)1つのフラッシュアドレスから別の異なるフラッシュアドレスにデータをコピーすることを含み得る。 In step 104 requesting a transaction, the processor 44 requests the device driver 68 of the host 24 to initiate a transaction involving accessing the flash memory via the bus 36. The requested transaction may be, for example, (1) reading data from a given flash address, (2) writing data to a given flash address, or (3) data from one flash address to another. May include copying.

監視ステップ108で、プロセッサ44は、IML56を使用してバス36を監視し、トランザクションが意図したとおりに実行されることを確認するために、バス上の要求されたトランザクションを傍受する。たとえば、書き込みトランザクションの場合、トランザクションで指定されたデータが実際にトランザクションで指定されたアドレスに書き込まれていることを確認する。IMLは、チップセレクト(CS)信号、クロック信号、データやアドレス情報を運ぶバス信号などの1つ以上のバス信号を監視する。バス36がSPIバスを含む場合、IML56は、マスターアウトスレーブイン(MOSI)信号、SPIバスのマスターインスレーブアウト(MISO)信号、またはその両方を介してデータおよびアドレス情報を監視することができる。 In monitoring step 108, processor 44 monitors bus 36 using IML56 and intercepts the requested transaction on the bus to ensure that the transaction is executed as intended. For example, in the case of a write transaction, make sure that the data specified in the transaction is actually written to the address specified in the transaction. The IML monitors one or more bus signals, such as chip select (CS) signals, clock signals, and bus signals carrying data and address information. When the bus 36 includes an SPI bus, the IML 56 can monitor data and address information via a master-out slave-in (MOSI) signal, a master-in-slave out (MISO) signal of the SPI bus, or both.

ステップ108で、プロセッサ44は、例えば、要求されたトランザクション内の情報またはプロセッサに知られている他の情報に基づいて、バス上の要求されたトランザクションを傍受することができる。トランザクションを要求する時間とデバイスドライバによって要求されたトランザクションが実際に実行される時間の間、ホストは、トランザクションプロセッサ44が通常無視する、アプリケーション64から発生したバス上の他のトランザクションを開始する場合があることに留意する必要がある。例示的な実施形態では、読み取り、書き込み、またはコピーのトランザクションの場合、プロセッサ44は、要求されたトランザクションで指定されたアドレス情報を傍受する。書き込みトランザクションの場合、プロセッサは書き込まれるデータ(またはこのデータの一部)をインターセプトする。 At step 108, the processor 44 can intercept the requested transaction on the bus, for example, based on information within the requested transaction or other information known to the processor. During the time when the transaction is requested and the time when the transaction requested by the device driver is actually executed, the host may start another transaction on the bus originating from the application 64, which the transaction processor 44 normally ignores. It should be noted that there is. In an exemplary embodiment, in the case of a read, write, or copy transaction, the processor 44 intercepts the address information specified in the requested transaction. For write transactions, the processor intercepts the data to be written (or part of this data).

さらにステップ108で、バス上の要求されたトランザクション(またはトランザクションの一部)の傍受に応答して、プロセッサは(IMLを使用して)バスを監視し、要求されたトランザクションが意図したとおりに実行されることを確認する。例えば、プロセッサは、要求されたトランザクションで指定されたアドレスまたはアドレス範囲で、ホストがバス36を介してフラッシュメモリにアクセスすることを確認する。書き込みおよびコピートランザクションでは、プロセッサは、書き込みまたはコピーされるデータが、要求された書き込みまたはコピートランザクションで指定されたデータと一致することを確認する。プロセッサはさらに、要求されたトランザクション(またはおそらく他のトランザクションも)を実行する際に、メモリ48で指定されたセキュリティポリシーに違反していないことを確認することができる。さらに、プロセッサ44は、特定のトランザクション要求とは無関係に指定されたセキュリティポリシーに違反していないことを確認することができる。 Further in step 108, in response to interception of the requested transaction (or part of the transaction) on the bus, the processor monitors the bus (using IML) and the requested transaction executes as intended. Make sure it is done. For example, the processor verifies that the host accesses the flash memory over the bus 36 at the address or address range specified in the requested transaction. In a write and copy transaction, the processor verifies that the data to be written or copied matches the data specified in the requested write or copy transaction. The processor can further ensure that it does not violate the security policy specified in memory 48 when executing the requested transaction (or perhaps other transactions as well). Further, the processor 44 can confirm that the specified security policy is not violated regardless of the specific transaction request.

違反チェックステップ112で、プロセッサは、違反がバス36上で検出されたかどうかをチェックする。上記のように、違反は、(1)メモリ48に保存されている事前定義されたポリシーへの違反、たとえば保護されたアドレスまたはアドレス範囲へのアクセス、または(2)少なくとも一部が バス上で傍受されたトランザクション情報の数は、ステップ104の要求されたトランザクションにおける対応するトランザクション情報とは異なることが挙げられる。 In violation check step 112, the processor checks if a violation has been detected on bus 36. As mentioned above, violations are (1) violations of predefined policies stored in memory 48, such as access to a protected address or address range, or (2) at least partly on the bus. The number of transaction information intercepted may differ from the corresponding transaction information in the requested transaction in step 104.

ステップ112で違反が検出されなかった場合、プロセッサ44はトランザクション完了ステップ116に進み、トランザクションを完了し、ステップ104にループバックして、ホストからの後続のトランザクションを要求する。プロセッサは、ホストが要求されたトランザクションの実行を完了するまで、バスを監視することによってトランザクションを完了することができる。代替的または追加的に、プロセッサは、ホストのデバイスドライバを介してトランザクションを完了する。たとえば、プロセッサは、デバイスドライバーがフラッシュメモリから読み取ったデータ、完了通知、またはその両方をデバイスドライバーから受信する。 If no violation is detected in step 112, processor 44 proceeds to transaction completion step 116, completes the transaction, loops back to step 104, and requests a subsequent transaction from the host. The processor can complete a transaction by monitoring the bus until the host completes executing the requested transaction. Alternatively or additionally, the processor completes the transaction through the host's device driver. For example, the processor receives data read from the flash memory by the device driver, a completion notification, or both from the device driver.

ステップ112で違反を検出したことに応答して、プロセッサ44は、保護ステップ120に進み、そこでプロセッサは、秘密情報の漏洩または露出を防止するための適切な保護アクションを適用する。保護アクションの例を以下に説明する。ステップ120に続いて、プロセッサは、ステップ104にループバックして、バス36を介して、フラッシュメモリとの後続のトランザクションを開始するようにホストに要求することができる。 In response to detecting the violation in step 112, the processor 44 proceeds to protection step 120, where the processor applies appropriate protective actions to prevent leakage or exposure of confidential information. An example of a protective action is described below. Following step 120, the processor can loop back to step 104 and request the host to initiate a subsequent transaction with the flash memory via bus 36.

ステップ120で、プロセッサ44は、様々な保護アクションを適用することができる。いくつかの実施形態では、保護アクションは、安全システム20の1つ以上の要素をリセットすること、例えば、ホスト24をリセットすることを含む。あるいは、またはさらに、プロセッサは、例えば、バス上の1つまたは複数の信号の論理値を変更することによって、またはホストをバスから切断することによって、バス36を中断する。 At step 120, processor 44 can apply various protective actions. In some embodiments, the protective action involves resetting one or more elements of the safety system 20, eg, resetting the host 24. Alternatively, or in addition, the processor interrupts the bus 36, for example by changing the logical value of one or more signals on the bus, or by disconnecting the host from the bus.

バス信号を修正する方法は、例えば、米国特許出願公開第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 bus interface 40 of slave 1 drives one or more of the bus signals of bus 36 in parallel with the host 24. Slave 1 may interrupt the bus by applying a logical value that overrides the logical value driven in parallel by the host. Overriding the logical value of a bus signal, for example, uses a line driver that is stronger than the host's corresponding line driver, or adds resistance in series to the bus signal driven by the host to attenuate the signal driven by the host. It can be realized by doing. In another embodiment, the host signal is routed to the slave 2 via the slave 1 which masks the logical value of the bus signal as needed. The method of disconnecting the host from the bus will be further described below.

バス監視を使用してメモリデバイスとのトランザクションを保護する方法の例
以下の例示的な実施形態は、スレーブ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 slave 2 includes a memory device, eg, flash memory.

図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 processor 44 of slave 1. Also, FIGS. 3 and 4 can be combined with the method of FIG. 2 above.

図3の方法は、読み出しトランザクション要求ステップ150で始まり、プロセッサ44がホストのデバイスドライバ68に要求して、フラッシュメモリ(スレーブ2)の所定のアドレスからデータを読み取る読み出しトランザクションを開始する。監視ステップ154で、プロセッサは、バス36を監視して(IML56を使用して)、上述のように、デバイスドライバによって実行されている要求された読み取りトランザクションを識別する。 The method of FIG. 3 begins with a read transaction request step 150, in which the processor 44 requests the host device driver 68 to start a read transaction to read data from a predetermined address in the flash memory (slave 2). In monitoring step 154, the processor monitors bus 36 (using IML56) to identify the requested read transaction being performed by the device driver, as described above.

いくつかの実施形態では、読み取りトランザクションは、読み取りの開始アドレスを表す一連の論理値としてバス信号上に現れ、その後に、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 step 158 and captures the logical values on the bus that represent the data being read in parallel by the host. The processor captures one or more data units (such as bytes) as specified in the requested read transaction.

いくつかの実施形態では、フラッシュメモリから取り出されたデータは、暗号署名を使用して署名され、その場合、プロセッサは、署名を使用して読み取られたデータの完全性を検証することができる。いくつかの実施形態では、フラッシュメモリから取り出されたデータは暗号化され、その場合、プロセッサは読み取られたデータを解読することができる。一部の実施形態では、バス上にキャプチャされたデータに加えて、プロセッサは、デバイスドライバを介して、読み取られたデータのバージョンを受信する。これらの実施形態では、プロセッサは、バス上の直接のデータキャプチャとデバイスドライバを介して間接的に読み取られたデータとを比較することにより、ホストが改ざんされていないことを検証することができる。ステップ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 step 158, the method of FIG. 3 ends.

図3の方法では、スレーブ1は、ホストによってフラッシュメモリに適用される読み取りトランザクション中にバス信号を監視する。図3の方法は、ホストによってフラッシュメモリに適用された書き込みトランザクション中にバス信号をスヌーピングするために、同様の方法で使用できる。一部の実施形態では、バスをスヌープすることにより、スレーブ1は、要求されたトランザクションが意図したとおりに実行されることを確認する。 In the method of FIG. 3, slave 1 monitors the bus signal during a read transaction applied to the flash memory by the host. The method of FIG. 3 can be used in a similar manner to snoop the bus signal during a write transaction applied to the flash memory by the host. In some embodiments, by snooping the bus, slave 1 ensures that the requested transaction is performed as intended.

図4の方法では、プロセッサ44は、ホストに書き込まれたアドレス、データ、またはその両方を公開することなく、フラッシュメモリ内の所望のアドレスに所望のデータを書き込む所望の書き込み動作を実行する。 In the method of FIG. 4, the processor 44 performs a desired write operation of writing the desired data to the desired address in the flash memory without exposing the address, data, or both written to the host.

図4の方法は、ダミー書き込みトランザクション要求ステップ200で始まり、プロセッサ44は、バス36を介してフラッシュメモリ(スレーブ2)へのダミー書き込みトランザクションを開始するようデバイスドライバ68に要求する。ダミー書き込みトランザクションは、フラッシュメモリ内のアドレスを指定します。これは、定義済みのダミーアドレスまたは書き込み用の実際のアドレスの場合がある。ダミー書き込みトランザクションは、おそらくオペコードと、指定されたアドレスに書き込まれるダミーデータを指定する。ダミーの書き込みトランザクションは、バス上で[オペコード、ダミーアドレス、ダミーデータ]として表示される。この例では、ダミーアドレスはオペコードに従い、ダミーデータは時間の経過とともにダミーデータに従う。 The method of FIG. 4 begins with a dummy write transaction request step 200, in which the processor 44 requests the device driver 68 to initiate a dummy write transaction to the flash memory (slave 2) via the bus 36. The dummy write transaction specifies an address in flash memory. This can be a predefined dummy address or a real address for writing. The dummy write transaction probably specifies an opcode and dummy data to be written to the specified address. Dummy write transactions are displayed as [opcode, dummy address, dummy data] on the bus. In this example, the dummy address follows the opcode and the dummy data follows the dummy data over time.

監視ステップ204で、プロセッサは(IML56を使用して)バス36を監視して、デバイスドライバによって実行されている要求されたダミー書き込みトランザクションを識別する。プロセッサは、例えば、要求されたトランザクションで指定されたオペコードおよび/またはダミーアドレスをバス上で検出することによって、バス上のダミー書き込みトランザクションを識別することができる。 In monitoring step 204, the processor monitors bus 36 (using IML56) to identify the requested dummy write transaction being performed by the device driver. The processor can identify a dummy write transaction on the bus, for example, by finding the opcode and / or dummy address specified in the requested transaction on the bus.

オーバーライドするステップ208で、プロセッサは、ダミー書き込みトランザクション中にバス上の論理値をオーバーライドし、論理値は所望の書き込み動作を表す。このために、プロセッサ44は、ダミー書き込みトランザクションのデータ、アドレス、およびオペコード部分の1つまたは複数を、所望の書き込み動作の対応する値で上書きする。その結果、フラッシュメモリの目的のアドレスに目的のデータが書き込まれる。ホストは通常、このバスオーバーライド操作を認識せず、目的の書き込みトランザクションのデータ、アドレス、およびオペコード値は公開されないままである。 At overriding step 208, the processor overrides the logical value on the bus during the dummy write transaction, and the logical value represents the desired write operation. To this end, the processor 44 overwrites one or more of the data, addresses, and opcode portions of the dummy write transaction with the corresponding values for the desired write operation. As a result, the target data is written to the target address of the flash memory. The host is usually unaware of this bus override operation and the data, address, and opcode values of the desired write transaction remain undisclosed.

いくつかの実施形態では、上記のようにバス信号をオーバーライドするとき、プロセッサ44は、バスインターフェースによって駆動されるバス信号をさらに監視する。バス信号を監視することにより、プロセッサ44は、予想通り、意図されたデータが意図されたアドレスに書き込まれたことを確認することができる。 In some embodiments, when overriding the bus signal as described above, the processor 44 further monitors the bus signal driven by the bus interface. By monitoring the bus signal, the processor 44 can confirm that the intended data has been written to the intended address, as expected.

図4の方法では、スレーブ1は、ダミーの書き込みトランザクションを、フラッシュメモリ内の異なるデータとアドレスの望ましい書き込みトランザクションで上書きする。図4の方法は、例えば、フラッシュメモリ内の所望のアドレスからの読取りなど、所望の読取りトランザクションでダミー読取りトランザクションをオーバーライドするために、同様の方法で使用することができる。 In the method of FIG. 4, slave 1 overwrites the dummy write transaction with the desired write transaction of different data and addresses in the flash memory. The method of FIG. 4 can be used in a similar manner to override a dummy read transaction with a desired read transaction, for example, reading from a desired address in flash memory.

ホストをバスから切断してスレーブデバイスに安全にアクセスする方法
図5は、本明細書で説明される実施形態による、バスからのマスターデバイスの切断をサポートする安全システム250を概略的に示すブロック図である。安全システム250は、図1の安全システム20を実装する際に使用することができる。
How to Disconnect the Host from the Bus and Securely Access the Slave Device FIG. 5 schematically illustrates a safety system 250 that supports disconnection of the master device from the bus according to the embodiments described herein. It is a block diagram which shows. The safety system 250 can be used to implement the safety system 20 of FIG.

安全システム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 safety system 250, the host 24 includes a bus master connected to slave devices 28 (slave 1) and 32 (slave 2) via the SPI bus 254. The SPI bus consists of a clock (CLK) line and two data lines called master-out slave-in (MOSI) and master-in-slave-out (MISO). The CLK, MOSI, and MISO lines are common to all devices (host 24, and slave devices 28 and 32 in this example). In addition, each slave device can be selected using a dedicated chip select (CS) line. In this example, the host 24 uses the CS line represented by CS # 1 to select slave 1 and the CS line represented by CS # 2 to select slave 2.

マスターであるホスト24は、すべてのCSラインに接続されている。一方、各スレーブデバイスは、それ自体のCSラインにのみ接続される。通常、ホスト24は、それぞれのCSラインを使用して所望のスレーブデバイスを選択することによりトランザクションを開始し、その後、CLK、MOSIおよびMISOラインを使用してデバイスと通信する。MOSIラインはホストからスレーブデバイスへの送信に使用され、MISOラインはスレーブデバイスからホストへの送信に使用される。 The host 24, which is the master, is connected to all CS lines. On the other hand, each slave device is connected only to its own CS line. Typically, the host 24 initiates a transaction by using each CS line to select a desired slave device and then communicates with the device using the CLK, MOSI and MISO lines. The MOSI line is used for transmission from the host to the slave device, and the MISO line is used for transmission from the slave device to the host.

スレーブ1は、従来のSPIスレーブとは異なり、スレーブとして定義されているが、スレーブ2のCS#2ラインなどの他のデバイスのCSラインを駆動できる。図5に示すように、スレーブ1のバスインターフェース40は、ホスト24と並行してCS#2ラインを駆動するように構成される。システムが、それぞれのCSラインを有する複数のスレーブデバイス(例えば、スレーブ2など)を含む場合、スレーブ1は、ホストデバイス24と並行して任意のCSラインを駆動するように構成され得る。 The slave 1 is defined as a slave unlike the conventional SPI slave, but can drive the CS line of another device such as the CS # 2 line of the slave 2. As shown in FIG. 5, the bus interface 40 of the slave 1 is configured to drive the CS # 2 line in parallel with the host 24. If the system includes a plurality of slave devices having their respective CS lines (eg, slave 2 and the like), the slave 1 may be configured to drive any CS line in parallel with the host device 24.

図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 slave 1. On the other hand, the MOSI and MISO lines are indirectly connected to the slave 2 via the slave 1. In this configuration, the slave 1 controls whether the host's MOSI and MISO lines are connected to or disconnected from the slave 2. Slave 1 includes a MISO selector 260 and a MOSI selector 262. Each of the MISO selector and the MOSI selector consists of two input ports and one output port. At any time, the processor 44 uses the SEL control input to control the selector, making an internal connection between its output port and one of its input ports. The MISO and MOSI selectors can be implemented using any suitable circuit element, for example using a multiplexer element.

ホスト24がスレーブ2からデータを読み取るとき、スレーブ1はMISOセレクタを制御してMISOラインをホストとスレーブ2の間に接続します。この場合、スレーブ1はバス上のデータをホストと並列に読み取ることができる。または、スレーブ1はホストMISOラインをスレーブ2から切断し、読み取られたデータがホストに公開されないようにする。スレーブ1のプロセッサ44は、スレーブ2から取得したデータの代わりに、他のデータをホストMISOラインにホストに向かって注入する可能性がある。 When the host 24 reads data from the slave 2, the slave 1 controls the MISO selector to connect the MISO line between the host and the slave 2. In this case, the slave 1 can read the data on the bus in parallel with the host. Alternatively, the slave 1 disconnects the host MISO line from the slave 2 so that the read data is not disclosed to the host. The processor 44 of the slave 1 may inject other data into the host MISO line toward the host instead of the data acquired from the slave 2.

ホスト24がスレーブ2にデータを書き込むと、スレーブ1はMOSIセレクターを制御してホストMOSIラインをスレーブ2に接続し、ホストがスレーブデバイスにデータを書き込むことができるようにする。あるいは、スレーブ1は、MOSIセレクタを使用して、ホストMOSIラインをスレーブ2から切断し、プロセッサ44は、他のアドレスおよび/またはデータをスレーブ2に注入して、異なる書き込みトランザクションを実行することができる。 When the host 24 writes data to the slave 2, the slave 1 controls the MOSI selector to connect the host MOSI line to the slave 2 so that the host can write the data to the slave device. Alternatively, slave 1 may use the MOSI selector to disconnect the host MOSI line from slave 2, and processor 44 may inject other addresses and / or data into slave 2 to perform different write transactions. can.

いくつかの実施形態では、MISOセレクタがホストMISOラインをスレーブ2に接続すると、スレーブ1は、ホスト読み取りトランザクションをインターセプトし、読み取りトランザクションのデータ/アドレスをオーバーライドすることができる。同様に、MOSIセレクターがホストMOSIラインをスレーブ2に接続すると、スレーブ1がホストの書き込みトランザクションをインターセプトし、書き込みトランザクションのデータ/アドレスを上書きする場合がある。 In some embodiments, when the MISO selector connects the host MISO line to slave 2, slave 1 can intercept the host read transaction and override the data / address of the read transaction. Similarly, when the MOSI selector connects the host MOSI line to the slave 2, the slave 1 may intercept the host's write transaction and overwrite the data / address of the write transaction.

本明細書で説明される実施形態による、ホストをバスから切断することによって、スレーブデバイスへの安全なアクセスのための方法を概略的に示すフローチャートである。この方法は、図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 processor 44 of the slave device 28 (slave 1) in the protected system 250 of FIG. In this example, slave 1 includes a safety device, slave 2 includes flash memory, and bus 254 includes an SPI bus. The method of FIG. 6 can be combined with the method of FIG. 2 above.

この方法は、トランザクション要求ステップ300で始まり、プロセッサ44がホスト24のデバイスドライバ68に要求して、フラッシュメモリへのダミー書き込みトランザクションまたはダミー読み取りトランザクションを開始する。ダミーの読み取りまたは書き込みトランザクションは、オペコード(オプション)、フラッシュメモリ内の実アドレスまたはダミーアドレス、および書き込みトランザクションの場合は実データまたはダミーデータを指定する。 This method begins with transaction request step 300, in which the processor 44 requests the device driver 68 of the host 24 to initiate a dummy write or dummy read transaction to the flash memory. For a dummy read or write transaction, specify the opcode (optional), the real or dummy address in flash memory, and in the case of a write transaction, the real or dummy data.

監視ステップ304で、プロセッサ44は、バス36を監視して(例えば、IML56を使用して)、デバイスドライバによって実行されている要求されたダミー書き込みまたはダミー読み取りトランザクションを識別する。プロセッサは、例えば、要求されたトランザクションで指定されたフラッシュメモリアドレスおよび/またはオペコードを検出することにより、バス上のダミー書き込みまたはダミー読み取りトランザクションを識別することができる。 In monitoring step 304, processor 44 monitors bus 36 (eg, using IML56) to identify the requested dummy write or dummy read transaction being performed by the device driver. The processor can identify a dummy write or dummy read transaction on the bus, for example, by finding the flash memory address and / or opcode specified in the requested transaction.

切断ステップ308で、要求されたトランザクションの識別に応じて(たとえば、トランザクションのオペコードに基づいて)、プロセッサはホストをSPIバスから切断する。書き込みトランザクションの場合、プロセッサはMOSIセレクタ262を使用してホストをスレーブ2から切断しますが、読み取りトランザクションの場合、プロセッサはMISOセレクタ260を使用してホストを切断する。あるいは、プロセッサは、両方のセレクタを同時に使用して、MISOラインとMOSIラインの両方を切断することもできる。いくつかの実施形態では、プロセッサは、バス上の要求されたトランザクションを識別することとは無関係に、ホストをバスから切断する。 In disconnect step 308, depending on the requested transaction identification (eg, based on the transaction opcode), the processor disconnects the host from the SPI bus. For write transactions, the processor uses the MOSI selector 262 to disconnect the host from slave 2, while for read transactions, the processor uses the MISO selector 260 to disconnect the host. Alternatively, the processor can use both selectors at the same time to disconnect both the MISO line and the MOSI line. In some embodiments, the processor disconnects the host from the bus regardless of identifying the requested transaction on the bus.

ステップ304で検出されたトランザクションが書き込みまたは読み取りトランザクションであることに基づいて、プロセッサは、それぞれ書き込みステップ312または読み取りステップ316に進む。 Based on the transaction detected in step 304 being a write or read transaction, the processor proceeds to write step 312 or read step 316, respectively.

ステップ312で、プロセッサは、SPIバスを介して、MOSIラインを介してホストによって配信されたデータおよびアドレスに関係なく、意図されたデータを意図されたアドレスに書き込む。この手法では、プロセッサはダミーの書き込みトランザクションを、ホストから隠されたままの望ましい書き込みトランザクションで上書きする。一部の実施形態では、フラッシュメモリへの書き込みに加えて(例えば、並行して)、プロセッサは、起こり得る違反を検出するためにホストによって駆動されるMOSIラインを監視することができる。一部の実施形態では、フラッシュメモリへの書き込みに加えて(例えば、並行して)、プロセッサは、起こり得る違反を検出するために、プロセッサによって駆動されるMOSIラインを監視し得る。 At step 312, the processor writes the intended data to the intended address via the SPI bus, regardless of the data and address delivered by the host over the MOSI line. In this technique, the processor overwrites the dummy write transaction with the desired write transaction, which remains hidden from the host. In some embodiments, in addition to writing to flash memory (eg, in parallel), the processor can monitor the MOSI line driven by the host to detect possible violations. In some embodiments, in addition to writing to flash memory (eg, in parallel), the processor may monitor the MOSI line driven by the processor to detect possible violations.

ステップ316で、プロセッサは、SPIバスを介して、フラッシュメモリの意図されたアドレスからデータを読み取る。ホストのMISOラインがフラッシュメモリから切断されているため、プロセッサが読み取った実際のデータは、ホストから隠されたままになる。いくつかの実施形態では、フラッシュメモリからの読み取りに加えて(例えば、並行して)、プロセッサは、ダミーデータなどの他のデータをホストに送信する。 At step 316, the processor reads data from the intended address in flash memory via the SPI bus. The actual data read by the processor remains hidden from the host because the host's MISO line is disconnected from the flash memory. In some embodiments, in addition to reading from flash memory (eg, in parallel), the processor sends other data, such as dummy data, to the host.

ステップ312および316のそれぞれに続いて、方法は終了する。 Following steps 312 and 316 respectively, the method ends.

図1に示される安全システム20およびホストデバイス24、スレーブデバイス28およびスレーブデバイス32の構成、ならびに図5の安全システム250は構成例であり、純粋に概念を明確にするために示されている。あるいは、他の適切な安全システム、ホストデバイス、およびスレーブデバイスの構成も使用できる。本発明の原理を理解するのに必要ではない要素、例えば、様々なインターフェース、制御回路、アドレス指定回路、タイミングおよびシーケンシング回路、デバッグ回路は、明確にするために図から省略されている。 The configuration of the safety system 20 and the host device 24, the slave device 28 and the slave device 32 shown in FIG. 1, and the safety system 250 of FIG. 5 are configuration examples and are shown purely for the sake of clarity. Alternatively, other suitable safety system, host device, and slave device configurations can be used. Elements that are not necessary to understand the principles of the invention, such as various interfaces, control circuits, addressing circuits, timing and sequencing circuits, and debug circuits, are omitted from the figure for clarity.

図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 CPU 60, slave device 28, and slave device 32 are implemented as separate integrated circuits (ICs). However, in an alternative embodiment, at least two of the CPU, slave device 28, and slave device 32 are integrated into a separate semiconductor die within a single multi-chip package (MCP) or system-on-chip (SoC). Or can be interconnected via an internal bus. In an exemplary embodiment, the slave device 28 (eg, controller) and slave device 32 (eg, flash memory) are mounted in a multi-chip module (MCM). In embodiments where the slave device 28 and the slave device 32 are implemented in the same package (eg, in an MCM or MCP device), both devices are in the same SPI interface line (eg, MISO, MOSI and CLK) in a common package. ) Share. Such an embodiment can provide improved security because it requires an attacker to open a composite device because it attacks or manipulates a signal between two slave devices in an attempt to violate the expected functionality. ..

スレーブデバイス28の異なる素子は、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)などの任意の適切なハードウェアを使用して実装され得る。いくつかの実施形態では、スレーブデバイス28のいくつかの素子は、ソフトウェアを使用して、またはハードウェア要素とソフトウェア要素の組み合わせを使用して実装することができる。例えば、本実施形態では、スレーブインターフェースロジック52およびIML56は、専用ハードウェアモジュールとして実現することができる。メモリ48は、例えば、RAMなどの任意の適切なタイプのメモリおよび記憶技術を含むことができる。 The different elements of the slave device 28 can be implemented using any suitable hardware such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some embodiments, some elements of the slave device 28 can be implemented using software or using a combination of hardware and software elements. For example, in this embodiment, the slave interface logic 52 and the IML 56 can be realized as a dedicated hardware module. The memory 48 can include any suitable type of memory and storage technique, such as RAM.

通常、ホスト24のCPU60およびスレーブデバイス28のプロセッサ44のそれぞれは、本明細書で説明する機能を実行するようにソフトウェアでプログラムされた汎用プロセッサを含む。ソフトウェアは、例えば、ネットワークを介して電子形式で関連するプロセッサにダウンロードすることができ、あるいは、代替的または追加的に、磁気、光学、または電子メモリなどの非一時的な有形媒体に提供および/または格納することができる。 Typically, each of the CPU 60 of the host 24 and the processor 44 of the slave device 28 includes a general purpose processor programmed in software to perform the functions described herein. The software can be downloaded electronically over the network to the relevant processor, or is provided or additionally provided to non-temporary tangible media such as magnetic, optical, or electronic memory. Or it can be stored.

暗号化コプロセッサを含む安全システム
ホスト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 host 24 acts as a bus master over the bus 36 and acts as an encrypted coprocessor for the host 24, or a host and an encrypted coprocessor. Consider a configuration example of a safety system such as the system 20 of FIG. 1 connected to a slave device 32 (slave 2) including both external non-volatile memory (NVM) devices. The cryptographic coprocessor is also referred to herein as a secure device.

ホストは、安全装置の助けを借りてセキュリティサービスを提供するセキュリティアプリケーション64を実行する。セキュリティアプリケーションは、セキュリティコマンドを安全装置に送信し、安全装置からそれぞれのコマンド応答を受信する。セキュリティアプリケーションを提供する場合、NVMデバイスにアクセスするために安全装置が必要になることがある。 The host runs a security application 64 that provides security services with the help of a safety device. The security application sends a security command to the safety device and receives each command response from the safety device. When providing security applications, a safety device may be required to access the NVM device.

ホストは、セキュリティアプリケーションに対して透過的に、安全装置と外部NVMデバイスの間を仲介する専用デバイスドライバ68を実行する。デバイスドライバーにより、安全装置はデバイスドライバーを介して間接的に外部NVMにアクセスできる。ホストからセキュリティコマンドを受信すると、安全装置はセキュリティコマンドを実行します。セキュリティコマンドは、バスを介してNVMデバイスへのアクセスを必要とする場合があり、専用のデバイスドライバーを介してアプリケーションプログラムに透過的に実行される。 The host runs a dedicated device driver 68 that mediates between the security device and the external NVM device transparently to the security application. The device driver allows the safety device to indirectly access the external NVM via the device driver. When a security command is received from the host, the safety device executes the security command. Security commands may require access to NVM devices over the bus and are transparently executed by the application program via a dedicated device driver.

一部の実施形態では、例えば、セキュリティアプリケーションによって要求されたセキュリティコマンドを実行する際に、安全装置は、バスを介して外部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 security systems 20 and 250.

上記の実施形態は例として与えられたものであり、他の適切な実施形態を使用することもできる。例えば、上述の実施形態は主に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 slave 1 is connected to the host (perhaps not necessarily a slave) via a different bus than other slave devices such as the slave 2. In such an embodiment, slave 1 is also connected to a bus to which the host is connected to other slave devices such as slave 2, allowing, for example, monitoring and protection of the bus using the methods and systems described above. do.

上記のいくつかの実施形態では、スレーブ1は、バス上のオペコード、アドレス、またはデータ素子を識別することによってトランザクションを検出する。代替として、そのような素子の一部のみを検出することで十分かもしれない。たとえば、スレーブ1は、アドレス範囲を指定する最上位部分など、アドレス要素の一部のみを検出することにより、トランザクションを検出できる。 In some of the above embodiments, slave 1 detects a transaction by identifying an opcode, address, or data element on the bus. As an alternative, it may be sufficient to detect only some of such devices. For example, slave 1 can detect a transaction by detecting only a part of an address element such as a top-level part that specifies an address range.

本明細書で説明する実施形態は、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 slave 2 is primarily referred to as a flash or NVM device, but the methods and systems described herein include any other suitable slave 2 such as volatile memory or other device in the system. It can also be used in other applications that may be peripheral devices. For example, slave 2 may include any suitable controller or monitoring device.

上記の実施形態は例として引用されており、特許請求の範囲は、上記で特に示され、説明されたものに限定されないことが理解されよう。むしろ、範囲は、上述の様々な特徴の組み合わせおよび部分的組み合わせの両方、ならびに前述の説明を読んだときに当業者が思いつくであろう、先行技術では開示されていないその変形および修正を含む。参照により本特許出願に組み込まれる文書は、本明細書で明示的または黙示的になされた定義と矛盾する方法で用語がこれらの組み込まれた文書で定義される場合を除き、本出願の不可欠な部分と見なされるべきである。 本明細書の定義を考慮する必要がある。 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 ... Safety system 24 ... Host device 250 ... Safety system 28 ... Slave device 32 ... Slave device 36 ... Bus 40 ... Bus interface 44 ... Processor 48 ... Memory 52 ... Slave interface logic 56 ... Interface monitor logic (IML)
60 ... CPU
64 ... Application 68 ... Device driver

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.
前記プロセッサは、スレーブモードで前記バス上で動作するように構成される請求項1に記載の安全装置。 The safety device according to claim 1, wherein the processor is configured to operate on the bus in slave mode. 前記安全装置は、前記バスとは異なる別のバスを介して前記ホストにさらに結合され、前記プロセッサは、前記別のバスを介して前記ホストに前記トランザクションを開始するように要求するように構成される請求項1に記載の安全装置。 The safety device is further coupled to the host via another bus different from the bus, and the processor is configured to require the host to initiate the transaction via the other bus. The safety device according to claim 1. 前記要求されたトランザクションは、(1)前記第2デバイスからのデータの読み取り、(2)前記第2デバイスへのデータの書き込み、及び(3)前記第2デバイスの第1アドレスと第2アドレス間のデータの転送、のうちのいずれかを含む請求項1に記載の安全装置。 The requested transaction includes (1) reading data from the second device, (2) writing data to the second device, and (3) between the first and second addresses of the second device. The safety device according to claim 1, which comprises any one of the data transfer of the above. 前記要求されたトランザクションは、予期されたトランザクション情報を指定し、前記プロセッサは、前記バス上で、前記要求されたトランザクションに対応する実際のトランザクション情報を監視するように構成され、前記予期されたトランザクション情報の少なくとも一部が前記実際のトランザクション情報と異なることを検出することにより、前記セキュリティ違反を識別する請求項1に記載の安全装置。 The requested transaction specifies the expected transaction information, and the processor is configured to monitor the actual transaction information corresponding to the requested transaction on the bus, said said expected. The safety device according to claim 1, wherein the security breach is identified by detecting that at least a part of the transaction information is different from the actual transaction information. 前記プロセッサは、オペコード素子、アドレス素子およびデータ素子を含むリストから選択された少なくとも1つの素子が、前記予期されたトランザクション情報と前記実際のトランザクション情報との間で異なることを検出するように構成される請求項5に記載の安全装置。 The processor is configured to detect 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. The safety device according to claim 5. 前記プロセッサは、前記要求されたトランザクションの期間中または期間外に、所定のセキュリティポリシーが前記バス上で違反されたことを検出することにより、前記セキュリティ違反を識別するように構成される請求項1に記載の安全装置。 Claims configured such that the processor identifies a security breach by detecting that a predetermined security policy has been breached on the bus during or outside the requested transaction. The safety device according to 1. 前記要求されたトランザクションは、前記第2デバイスからデータを読み取ることを含み、前記プロセッサは、前記バスを介して前記ホストによって前記第デバイスから読み取られたデータを前記バス上で監視するように構成される請求項1に記載の安全装置。 The requested transaction comprises reading data from the second device, such that the processor monitors the data read from the second device by the host via the bus on the bus. The safety device according to claim 1. 前記プロセッサは、前記ホストによる第1書き込み操作の実行中に前記バス上の1つまたは複数の信号の論理値を上書きすることにより、前記ホストに、前記第2デバイスへの前記第1書き込み操作を開始し、前記第1書き込み操作とは異なる第2書き込み操作を前記第2デバイスに適用するように要求するように構成される請求項1に記載の安全装置。 The processor overwrites the logical value of one or more signals on the bus while the host is performing the first write operation, thereby causing the host to perform the first write operation to the second device. The safety device according to claim 1, wherein a second write operation different from the first write operation is requested to be applied to the second device. 前記プロセッサは、前記ホストによる第1読み取り操作の実行中に前記バス上の1つまたは複数の信号の論理値を上書きすることにより、前記ホストに、前記第2デバイスへの前記第1読み取り操作を開始し、前記第1読み取り操作とは異なる第2読み取り操作を前記第2デバイスに適用するように要求するように構成される請求項1に記載の安全装置。 The processor overwrites the logical value of one or more signals on the bus while the host is performing the first read operation, thereby causing the host to perform the first read operation to the second device. The safety device according to claim 1, wherein a second read operation different from the first read operation is requested to be applied to the second device. 前記プロセッサは、前記バスを介して前記第2デバイスにアクセスするトランザクションを開始し、前記ホストと前記第2デバイスを接続する前記バスの信号を切断し、前記ホストに代わって前記バスを介して前記第2デバイスにアクセスするように、前記ホストに要求するように構成される請求項1に記載の安全装置。 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 via the bus on behalf of the host. The safety device according to claim 1, which is configured to request the host to access the second device. 前記プロセッサは、前記セキュリティ違反の識別に応答して、前記第2デバイスにアクセスする際に前記バス上に現れるデータの公開または変更を防止するように保護アクションを実行するように構成される請求項1に記載の安全装置。 The processor 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. Item 1. The safety device according to item 1. 前記安全装置と前記第2デバイスの両方がコモンパッケージに実装され、前記コモンパッケージ内の前記バスを介して相互接続される請求項1に記載の安全装置。 The safety device according to claim 1, wherein 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つ以上の信号を監視することと、
前記監視された信号に基づいて、前記要求されたトランザクションの実行中にセキュリティ違反が発生したかどうかを識別することと、
を含むことを特徴とする安全方法。
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に記載の安全方法。 14. The safety method of claim 14, wherein the safety device is configured to operate on the bus in slave mode. 前記安全装置は、前記バスとは異なる別のバスを介して前記ホストにさらに結合され、前記安全装置は、前記別のバスを介して前記ホストに前記トランザクションを開始するように要求するように構成される請求項14に記載の安全方法。 The safety device is further coupled to the host via another bus different from the bus, and the safety device is configured to require the host to initiate the transaction via the other bus. The safety method according to claim 14. 前記要求されたトランザクションは、(1)前記第2デバイスからのデータの読み取り、(2)前記第2デバイスへのデータの書き込み、及び(3)前記第2デバイスの第1アドレスと第2アドレス間のデータの転送、のうちのいずれかを含む請求項14に記載の安全方法。 The requested transaction includes (1) reading data from the second device, (2) writing data to the second device, and (3) between the first and second addresses of the second device. The safety method according to claim 14, wherein the data is transferred according to any one of the above. 前記要求されたトランザクションは、予期されたトランザクション情報を指定し、
前記信号を監視することは、前記バス上で、前記要求されたトランザクションに対応する実際のトランザクション情報を監視することを含み、
前記セキュリティ違反を識別することは、前記予期されたトランザクション情報の少なくとも一部が前記実際のトランザクション情報と異なることを検出することを含む
請求項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.
前記セキュリティ違反を識別することは、オペコード素子、アドレス素子およびデータ素子を含むリストから選択された少なくとも1つの素子が、予期されたトランザクション情報と実際のトランザクション情報との間で異なることを検出する請求項14に記載の安全方法。 Identifying the security breach is a claim to detect that at least one element selected from the list including the opcode element, the address element and the data element is different between the expected transaction information and the actual transaction information. Item 14. The safety method according to item 14. 前記セキュリティ違反を識別することは、前記要求されたトランザクションの期間中または期間外に、所定のセキュリティポリシーが前記バス上で違反されたことを検出することを含む請求項14に記載の安全方法。 14. The security method of claim 14, wherein identifying the security breach comprises detecting that a predetermined security policy has been breached on the bus during or outside the requested transaction. 前記要求されたトランザクションは、前記第2デバイスからデータを読み取ることと、前記バスを介して前記ホストによって前記第のデバイスから読み取られたデータを前記バス上で監視することと、を含む請求項14に記載の安全方法。 14. The requested transaction comprises reading data from the second device and monitoring data read from the second device by the host via the bus on the bus. The safety method described in. 前記ホストによる第1書き込み操作の実行中に前記バス上の1つまたは複数の信号の論理値を上書きすることにより、前記ホストに、前記第2デバイスへの前記第1書き込み操作の開始を要求し、前記第1書き込み操作とは異なる第2書き込み操作を前記第2デバイスに適用するように要求することを含む請求項14に記載の安全方法。 By overwriting the logical value of one or more signals on the bus during the execution of the first write operation by the host, the host is requested to start the first write operation to the second device. The safety method according to claim 14, further comprising requesting that a second write operation different from the first write operation be applied to the second device. 前記ホストによる第1読み取り操作の実行中に前記バス上の1つまたは複数の信号の論理値を上書きすることにより、前記ホストに、前記第2デバイスへの前記第1読み取り操作の開始を要求し、前記第1読み取り操作とは異なる第2読み取り操作を前記第2デバイスに適用するように要求することを含む請求項14に記載の安全方法。 By overwriting the logical value of one or more signals on the bus while the host is performing the first read operation, the host is requested to start the first read operation on the second device. The safety method according to claim 14, further comprising requesting that a second read operation different from the first read operation be applied to the second device. 前記バスを介して前記第2デバイスにアクセスするトランザクションを開始し、前記ホストと前記第2デバイスを接続する前記バスの信号を切断し、前記ホストに代わって前記バスを介して前記第2デバイスにアクセスするように、前記ホストに要求することを含む請求項14に記載の安全方法。 A transaction to access the second device via the bus is started, the signal of the bus connecting the host and the second device is disconnected, and the second device is connected to the second device via the bus on behalf of the host. 14. The safety method of claim 14, comprising requesting the host to access. 前記セキュリティ違反の識別に応答して、前記第2デバイスにアクセスする際に前記バス上に現れるデータの公開または変更を防止するように保護アクションを実行する請求項14に記載の安全方法。 14. The security method of claim 14, wherein in response to the identification of the security breach, a protective action is taken to prevent disclosure or modification of the data appearing on the bus when accessing the second device. 前記安全装置と前記第2デバイスの両方がコモンパッケージに実装され、前記コモンパッケージ内の前記バスを介して相互接続される請求項14に記載の安全方法。 The safety method according to claim 14, wherein 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デバイスにアクセスする期間内に、前記バス上の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.
前記安全装置は、スレーブモードで前記バス上で動作するように構成される請求項27に記載の安全システム。 27. The safety system of claim 27, wherein the safety device is configured to operate on the bus in slave mode. 前記安全装置は、前記バスとは異なる別のバスを介して前記ホストにさらに結合され、前記安全装置は、前記別のバスを介して前記ホストに前記トランザクションを開始するように要求するように構成される請求項27に記載の安全システム。 The safety device is further coupled to the host via another bus different from the bus, and the safety device is configured to require the host to initiate the transaction via the other bus. 27. The safety system according to claim 27. 前記要求されたトランザクションは、予期されたトランザクション情報を指定し、前記安全装置は、前記バス上で、前記要求されたトランザクションに対応する実際のトランザクション情報を監視するように構成され、前記予期されたトランザクション情報の少なくとも一部が前記実際のトランザクション情報と異なることを検出することにより、前記セキュリティ違反を識別する請求項27に記載の安全システム。 The requested transaction specifies expected transaction information, and the safety device is configured to monitor the actual transaction information corresponding to the requested transaction on the bus, said expected. 28. The security system of claim 27, which identifies the security breach by detecting that at least a portion of the transaction information is different from the actual transaction information. 前記要求されたトランザクションは、前記第2デバイスからデータを読み取ることを含み、前記安全装置は、前記バスを介して前記ホストによって前記第デバイスから読み取られたデータを前記バス上で監視するように構成される請求項27に記載の安全システム。 The requested transaction comprises reading data from the second device, such that the safety device monitors the data read from the second device by the host via the bus on the bus. The safety system according to claim 27. 前記安全装置は、前記ホストによる第1書き込み操作の実行中に前記バス上の1つまたは複数の信号の論理値を上書きすることにより、前記ホストに、前記第2デバイスへの前記第1書き込み操作を開始し、前記第1書き込み操作とは異なる第2書き込み操作を前記第2デバイスに適用するように要求するように構成される請求項27に記載の安全システム。 The safety device overwrites the logical value of one or more signals on the bus while the host is performing the first write operation, thereby causing the host to perform the first write operation to the second device. 27. The safety system according to claim 27, which is configured to 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デバイスに適用するように要求するように構成される請求項27に記載の安全システム。 The safety device causes the host to perform the first read operation to the second device by overwriting the logical value of one or more signals on the bus while the host is performing the first read operation. 27. The safety system according to claim 27, which is configured to request that a second read operation different from the first read operation be applied to the second device. 前記安全装置は、前記バスを介して前記第2デバイスにアクセスするトランザクションを開始し、前記ホストと前記第2デバイスを接続する前記バスの信号を切断し、前記ホストに代わって前記バスを介して前記第2デバイスにアクセスするように、前記ホストに要求するように構成される請求項27に記載の安全システム。 The safety device 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 via the bus on behalf of the host. 27. The safety system of claim 27, configured to require the host to access the second device. 前記安全装置は、前記セキュリティ違反の識別に応答して、前記第2デバイスにアクセスする際に前記バス上に現れるデータの公開または変更を防止するように保護アクションを実行するように構成される請求項27に記載の安全システム。 The safety device is configured to perform protective actions in response to the identification of the security breach to prevent disclosure or modification of data appearing on the bus when accessing the second device. Item 27. The safety system. スレーブデバイスが接続されたバス上でバスマスターとして動作するホストを含む安全システムンにおいて、前記スレーブデバイスと前記ホストによってトリガーされたバスアクセス操作間で前記ホストによって仲介することと、
前記バスに結合された安全装置によって、前記バスに結合された第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に記載の安全方法。 36. The safety method of claim 36, wherein the safety device is configured to operate on the bus in slave mode. 前記安全装置は、前記バスとは異なる別のバスを介して前記ホストにさらに結合され、前記安全装置は、前記別のバスを介して前記ホストに前記トランザクションを開始するように要求するように構成される請求項36に記載の安全方法。 The safety device is further coupled to the host via another bus different from the bus, and the safety device is configured to require the host to initiate the transaction via the other bus. 36. The safety method according to claim 36. 前記要求されたトランザクションは、予期されたトランザクション情報を指定し、
前記信号を監視することは、前記バス上で、前記要求されたトランザクションに対応する実際のトランザクション情報を監視することを含み、
前記セキュリティ違反を識別することは、前記予期されたトランザクション情報の少なくとも一部が前記実際のトランザクション情報と異なることを検出することを含む請求項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.
前記要求されたトランザクションは、前記第2デバイスからデータを読み取ることと、前記バスを介して前記ホストによって前記第のデバイスから読み取られたデータを前記バス上で監視することと、を含む請求項36に記載の安全方法。 36. The requested transaction comprises reading data from the second device and monitoring data read from the second device by the host via the bus on the bus. The safety method described in. 前記ホストによる第1書き込み操作の実行中に前記バス上の1つまたは複数の信号の論理値を上書きすることにより、前記ホストに、前記第2デバイスへの前記第1書き込み操作の開始を要求し、前記第1書き込み操作とは異なる第2書き込み操作を前記第2デバイスに適用するように要求することを含む請求項36に記載の安全方法。 By overwriting the logical value of one or more signals on the bus during the execution of the first write operation by the host, the host is requested to start the first write operation to the second device. 36, the safety method of claim 36, comprising requesting that a second write operation different from the first write operation be applied to the second device. 前記ホストによる第1読み取り操作の実行中に前記バス上の1つまたは複数の信号の論理値を上書きすることにより、前記ホストに、前記第2デバイスへの前記第1読み取り操作の開始を要求し、前記第1読み取り操作とは異なる第2読み取り操作を前記第2デバイスに適用するように要求することを含む請求項36に記載の安全方法。 By overwriting the logical value of one or more signals on the bus while the host is performing the first read operation, the host is requested to start the first read operation on the second device. 36. The safety method of claim 36, comprising requesting that a second read operation different from the first read operation be applied to the second device. 前記バスを介して前記第2デバイスにアクセスするトランザクションを開始し、前記ホストと前記第2デバイスを接続する前記バスの信号を切断し、前記ホストに代わって前記バスを介して前記第2デバイスにアクセスするように、前記ホストに要求することを含む請求項36に記載の安全方法。 A transaction to access the second device via the bus is started, the signal of the bus connecting the host and the second device is disconnected, and the second device is connected to the second device via the bus on behalf of the host. 36. The safety method of claim 36, comprising requesting the host to access. 前記セキュリティ違反の識別に応答して、前記第2デバイスにアクセスする際に前記バス上に現れるデータの公開または変更を防止するように保護アクションを実行する請求項36に記載の安全方法。 36. The safety method of claim 36, wherein in response to the identification of the security breach, a protective action is taken to prevent disclosure or modification of the data appearing on the bus when accessing the second device. ホストにセキュリティサービスを提供する安全装置と、
ホストで実行されるデバイスドライバーと、を備え、
前記安全装置、前記ホスト、および前記安全装置の外部にある不揮発性メモリデバイスは、共通バスに結合され、
前記デバイスドライバーは、前記安全装置と前記不揮発性メモリデバイスを仲介するように構成され、
前記安全装置は、前記ホスト上で実行されているアプリケーションプログラムからセキュリティコマンドを受信し、前記バスを介して前記不揮発性メモリデバイスにアクセスすることによって、前記デバイスドライバーを介して前記アプリケーションプログラムに透過的にセキュリティコマンドを実行することを特徴とする安全設備。
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.
JP2020069117A 2019-04-07 2020-04-07 Safety devices, safety methods, safety systems, and safety equipment Active JP7033383B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (12)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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