Secure hardware signal filtering

US10938782B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10938782-B1
Application numberUS-201615391464-A
CountryUS
Kind codeB1
Filing dateDec 27, 2016
Priority dateDec 27, 2016
Publication dateMar 2, 2021
Grant dateMar 2, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Systems and methods in accordance with various embodiments of the present disclosure provide secure filtering of transactions at a hardware and protocol level using a security device included on a server. In particular, various embodiments provide approaches for filtering transactions on various buses, such as SMBus, PMBus, I2C, and SPI, within a server. This filtering logic can be utilized to modify requests for access to devices on those busses, certain memory or registers within the devices, and/or limit the quantity of transactions on those busses. Embodiments may provide a policy engine through which the filtering logic applied to a given bus or buses may be modified. When a transaction is received, one or more attributes of the transaction can be compared to one or more policies. If there is a match, the transaction can be modified according to the matched policy.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method comprising: receiving a request to perform a transaction on a memory location over a hardware-level protocol, the request received by a server in a resource environment, the request including a transaction type and a memory location; determining, by a programmable logic device (PLD) at the server, the transaction type and the memory location from the request; comparing, by the PLD, the transaction type and the memory location to one or more access policies, the access policies defining an action to be performed on transactions for at least one of a memory address or a device address; matching, by the PLD, the memory location to the one or more access policies based at least in part on the memory location matching at least a portion of the memory address or the device address; determining that the action defined using the one or more access policies is a block action; in response to the determination that the action defined using the one or more access policies is a block action, returning a non-acknowledgement to a requestor computing device to cancel the transaction by setting a Serial Data (SDA) line high during an acknowledgement-related clock period of the hardware-level protocol; and issuing a stop condition to block the transaction from being performed on the memory location. 2. The computer-implemented method of claim 1 , further comprising: receiving a second request to perform a second transaction on a second memory location; matching, by the PLD, the second memory location to the one or more access policies; determining a second action associated with the one or more access policies is a masking action; reading data from the second memory location; and masking the data from the second memory location based on the masking action. 3. The computer-implemented method of claim 1 , further comprising: receiving a second request to perform a second transaction on a second memory location; matching, by the PLD, the second memory location to the one or more access policies; determining a second action associated with the one or more access policies is a masking action; reading data from a masked memory location specified by the one or more access policies; and returning data from the masked memory location. 4. A computer-implemented method comprising: receiving a request to perform a transaction at a server over a hardware-level protocol; determining, by a security device on the server, one or more attributes associated with the request; determining, by the security device, a transaction type associated with the request; comparing, by the security device, the transaction type and the one or more attributes to an access policy, the one or more attributes including a memory location or a device location, the access policy being associated with a memory address or a device address; matching, by the security device, the one or more attributes to the access policy based at least in part on the memory location matching at least a portion of the memory address or the device location matching at least a portion of the device address; determining an action to be performed on the transaction, the action defined using the access policy, is a blocking action; and in response to the determination that the action to be performed on the transaction is a blocking action, returning a non-acknowledgement (NACK) based on the action by setting a data line high during an acknowledgement-related clock period of the hardware-level protocol. 5. The computer-implemented method of claim 4 , wherein determining an action to be performed on the transaction associated with the access policy, further comprises: setting a block signal to an invalid value prior to receipt of a completed transaction command. 6. The computer-implemented method of claim 4 , further comprising issuing a stop instruction. 7. The computer-implemented method of claim 4 , further comprising: reading data from at least one memory address specified in a second request; and masking at least a portion of the data read from the at least one memory address to create masked data. 8. The computer-implemented method of claim 7 , further comprising: replacing at least the portion of the data with replacement data specified by the access policy. 9. The computer-implemented method of claim 7 , further comprising: replacing at least one memory address specified in the second request with at least one masked memory address; and reading masked data from the at least one masked memory address. 10. The computer-implemented method of claim 4 , wherein comparing, by the security device, the transaction type and the one or more attributes to an access policy further comprises: comparing at least a portion of address data specified by the one or more attributes to the access policy. 11. The computer-implemented method of claim 4 , wherein the one or more policies include at least one of a memory address, device address, or register address. 12. The computer-implemented method of claim 4 , wherein the one or more policies include a command represented by a pattern of read and write transactions. 13. A computing device, comprising: at least one processor; a transaction monitor state machine configured to: receive a request to perform a transaction at a server; determine one or more attributes associated with the request, the one or more attributes including a memory location or a device location; determine a transaction type associated with the request; a transaction filter state machine configured to receive the transaction type and one or more attributes associated with the request from the transaction monitor state machine, the transaction filter state machine further configured to: compare the transaction type and the one or more attributes to an access policy, the access policy being associated with a memory address or a device address; determine that the memory location matches at least a portion of the memory address or the device location matches at least a portion of the device address; determine an action to be performed on the transaction, the action defined by the access policy, is a blocking action; and in response to the determination that the action is a blocking action, return a non-acknowledgement based on the action by setting a data line high during an acknowledgement-related clock period. 14. The computing device of claim 13 , wherein the transaction filter state machine is further configured to: set the transaction filter state machine to a block state. 15. The computing device of claim 14 , wherein the block state outputs a block signal having an invalid value prior to receipt of a completed transaction command. 16. The computing device of claim 14 , wherein the transaction filter state machine is further configured to: issue a stop instruction. 17. The computing device of claim 13 , wherein the transaction filter state machine is further configured to: read data from at least one memory address specified in a second request; and mask at least a portion of the data read from the at least one memory address to create masked data. 18. The computing device of claim 17 , wherein masking at least a portion of the data read from the at least one memory address to create masked data further comprises: replacing at least the portion of the data with replacement data specified by the access policy. 19. The computing device of claim 13 , wherein the transaction filter stat

Assignees

Inventors

Classifications

  • for controlling access to devices or network resources · CPC title

  • Filtering by address, protocol, port number or service, e.g. IP-address or URL · CPC title

  • Architectural arrangements, e.g. perimeter networks or demilitarized zones · CPC title

  • to assure secure storage of data (address-based protection against unauthorised use of memory G06F12/14; record carriers for use with machines and with at least a part designed to carry digital markings G06K19/00) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10938782B1 cover?
Systems and methods in accordance with various embodiments of the present disclosure provide secure filtering of transactions at a hardware and protocol level using a security device included on a server. In particular, various embodiments provide approaches for filtering transactions on various buses, such as SMBus, PMBus, I2C, and SPI, within a server. This filtering logic can be utilized to …
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification H04L63/0236. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Mar 02 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).