Secure support for I/O in software cryptoprocessor
First Claim
Patent Images
1. A computing system for preventing pessimistic evictions from a cache as a result of a direct memory access (“
- DMA”
) write by an input/output (“
I/O”
) device to main memory, the computing system comprising;
a processor having a cache;
main memory; and
a software component that when executed by the processorallocates a buffer in the main memory for the DMA write; and
leaves a portion of the cache unused to suppress a pessimistic eviction that would occur during a DMA write to the buffer if the entire cache were used.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems for securing sensitive data from security risks associated with direct memory access (“DMA”) by input/output (“I/O”) devices are provided. An enhanced software cryptoprocessor system secures sensitive data using various techniques, including (1) protecting sensitive data by preventing DMA by an I/O device to the portion of the cache that stores the sensitive data, (2) protecting device data by preventing cross-device access to device data using DMA isolation, and (3) protecting the cache by preventing the pessimistic eviction of cache lines on DMA writes to main memory.
103 Citations
20 Claims
-
1. A computing system for preventing pessimistic evictions from a cache as a result of a direct memory access (“
- DMA”
) write by an input/output (“
I/O”
) device to main memory, the computing system comprising;a processor having a cache; main memory; and a software component that when executed by the processor allocates a buffer in the main memory for the DMA write; and leaves a portion of the cache unused to suppress a pessimistic eviction that would occur during a DMA write to the buffer if the entire cache were used. - View Dependent Claims (2, 3, 4, 5, 6)
- DMA”
-
7. A method performed by a computing system for preventing access to sensitive data by an input/output (“
- I/O”
) device of the computing system, the sensitive data being secured by a software cryptoprocessor executing on the computing system, the computing system having memory that includes main memory and a cache, the method comprising;configuring an I/O protection mechanism of the computing system to prevent direct memory access (“
DMA”
) by the I/O device to cacheable main memory that maps to a trusted cache that stores the sensitive data, wherein the I/O device cannot access the trusted cache via DMA;allocating a bounce buffer in untrusted memory, to which DMA by the I/O device is allowed, and a device driver buffer in the trusted cache; when the I/O device completes a DMA write to the bounce buffer, copying device data from the bounce buffer to the device driver buffer; and when the I/O device initiates a DMA read from the bounce buffer, copying the device data from the device driver buffer to the bounce buffer. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
- I/O”
-
15. A computer-readable storage medium storing computer-executable instructions for controlling a computing system to prevent access to sensitive data by an input/output (“
- I/O”
) device of the computing system, the computing system having memory that includes main memory and a cache, the computer-executable instructions comprising instructions that;configure an I/O protection mechanism of the computing system to prevent direct memory access (“
DMA”
) by the I/O device to cacheable main memory that maps to a trusted cache that stores the sensitive data, wherein the I/O device cannot access the trusted cache via DMA;allocate a bounce buffer in the main memory and a device driver buffer in the trusted cache wherein DMA by the I/O device to the bounce buffer is enabled; copy data between the bounce buffer and the device driver buffer to maintain coherency between the bounce buffer and the device driver buffer; and prevent evictions from the trusted cache to the main memory. - View Dependent Claims (16, 17, 18, 19, 20)
- I/O”
Specification