Method and apparatus for using context information to protect virtual machine security
US-2017031838-A1 · Feb 2, 2017 · US
US10089247B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10089247-B2 |
| Application number | US-201615282647-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 30, 2016 |
| Priority date | Sep 30, 2016 |
| Publication date | Oct 2, 2018 |
| Grant date | Oct 2, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
One embodiment provides an apparatus. The apparatus includes an input output memory management unit (I/O MMU), a non-secure operating system (OS) driver, a secure OS driver and a virtual machine monitor (VMM). The I/OMMU is to couple an I/O Controller to a memory. The I/O Controller is coupled to a secure device and a non-secure device and has one I/O Controller identifier. The non-secure OS driver is associated with the non-secure device. The secure OS driver is associated with the secure device. The VMM is to allocate a secure address space to a secure OS and a non-secure address space to a non-secure OS. The secure address space is non-overlapping with the non-secure address space.
Opening claim text (preview).
What is claimed is: 1. An apparatus comprising: an input output memory management unit (I/O MMU) to couple an I/O Controller to a memory, the I/O Controller coupled to a secure device and a non-secure device, the I/O Controller having one I/O Controller identifier; a non-secure operating system (OS) driver associated with the non-secure device; a secure OS driver associated with the secure device; and a virtual machine monitor (VMM) to allocate a secure address space to a secure OS and a non-secure address space to a non-secure OS, the secure address space non-overlapping with the non-secure address space; wherein the secure OS is to allocate a random address in the secure address space in response to a request from the secure OS driver, the VMM is to store the allocated random address to an I/O MMU page table and count I/O MMU page table faults in response to initiation of a secure operation, and the secure OS is to terminate the secure operation with failure if a number of I/O MMU page table faults is greater than a threshold; and/or wherein the VMM is to transfer control of each of one or more non-secure descriptors to the secure OS driver in response to a request for a secure operation, each non-secure descriptor to contain a target address associated with a direct memory access (DMA) operation, and the secure OS driver is to allow the secure operation to proceed when each non-secure descriptor has been at least one of consumed and/or validated and moved to a secure address space as a protected non-secure descriptor. 2. The apparatus of claim 1 , wherein the secure OS is to allocate the random address in the secure address space in response to the request from the secure OS driver and the VMM is to store the allocated random address to the I/O MMU page table; and wherein the VMM is to count I/O MMU page table faults in response to initiation of the secure operation, and the secure OS is to terminate the secure operation with failure if the number of I/O MMU page table faults is greater than the threshold. 3. The apparatus of claim 1 , wherein the VMM is to transfer control of each of one or more non-secure descriptors to the secure OS driver in response to the request for the secure operation, each non-secure descriptor to contain the target address associated with the DMA operation; and wherein the secure OS driver is to pause for a time interval to allow an outstanding non-secure descriptor to be consumed and the secure OS driver is further to attempt to validate the target address included in a remaining non-secure descriptor if fewer than all of the outstanding non-secure descriptors have been consumed after the time interval. 4. The apparatus of claim 1 , wherein the VMM is to transfer control of each of one or more non-secure descriptors to the secure OS driver in response to the request for the secure operation, each non-secure descriptor to contain the target address associated with the DMA operation; and wherein the secure OS driver is to allow the secure operation to proceed when each non-secure descriptor has been at least one of consumed and/or validated and moved to a secure address space as the protected non-secure descriptor. 5. The apparatus of claim 1 , wherein the secure device or the non-secure device is a dual use device. 6. A method comprising: coupling, by an input output memory management unit (I/O MMU), an I/O Controller to a memory, the I/O Controller coupled to a secure device and a non-secure device, the I/O Controller having one I/O Controller identifier; allocating, by a virtual machine monitor (VMM), a secure address space to a secure operating system (OS) and a non-secure address space to a non-secure OS, the secure address space non-overlapping with the non-secure address space; and performing at least one of operation A or operation B, wherein operation A comprises: allocating, by the secure OS, a random address in the secure address space in response to a request from a secure OS driver; and storing, by the VMM, the allocated random address to an I/O MMU page table; and counting, by the VMM, I/O MMU page table faults in response to initiation of a secure operation; and terminating, by the secure OS, the secure operation with failure if a number of I/O MMU page table faults is greater than a threshold; and wherein operation B comprises: transferring, by the VMM, control of each of one or more non-secure descriptors to a secure OS driver in response to a request for a secure operation, each non-secure descriptor to contain a target address associated with a direct memory access (DMA) operation; and allowing, by the secure OS driver, the secure operation to proceed when each non-secure descriptor has been at least one of consumed and/or validated and moved to a secure address space as a protected non-secure descriptor. 7. The method of claim 6 , further comprising: allocating, by the secure OS, the random address in the secure address space in response to the request from the secure OS driver; storing, by the VMM, the allocated random address to the I/O MMU page table; counting, by the VMM, I/O MMU page table faults in response to initiation of the secure operation; and terminating, by the secure OS, the secure operation with failure if the number of I/O MMU page table faults is greater than the threshold. 8. The method of claim 6 , further comprising: transferring, by the VMM, control of each of one or more non-secure descriptors to the secure OS driver in response to the request for a secure operation, each non-secure descriptor to contain the target address associated with the DMA operation; pausing, by the secure OS driver, for a time interval to allow an outstanding non-secure descriptor to be consumed; and attempting, by the secure OS driver, to validate the target address included in a remaining non-secure descriptor if fewer than all of the outstanding non-secure descriptors have been consumed after the time interval. 9. The method of claim 6 , further comprising: transferring, by the VMM, control of each of one or more non-secure descriptors to the secure OS driver in response to the request for a secure operation, each non-secure descriptor to contain the target address associated with the DMA operation; allowing, by the secure OS driver, the secure operation to proceed when each non-secure descriptor has been at least one of consumed and/or validated and moved to the secure address space as the protected non-secure descriptor. 10. The method of claim 6 , wherein the secure device or the non-secure device is a dual use device. 11. A computer readable storage device having stored thereon instructions that when executed by one or more processors result in the following operations comprising: coupling an I/O Controller to a memory, the I/O Controller coupled to a secure device and a non-secure device, the I/O Controller having one I/O Controller identifier; allocating a secure address space to a secure operating system (OS) and a non-secure address space to a non-secure OS, the secure address space non-overlapping with the non-secure address space; and performing at least one of operation A or operation B, wherein operation A comprises: allocating, by the secure OS, a random address in the secure address space in response to a request from a secure OS driver; and storing, by the VMM, the allocated random address to an I/O MMU page table; and counting, by the VMM, I/O MMU page table faults in response to initiation of a secure operation; and terminating, by the secure OS, the secure operation with failure if a number of I/O MMU page table faults is greater than a threshold; and wherein operation B comprises: tran
the protection being physical, e.g. cell, word, block · CPC title
User address space allocation, e.g. contiguous or non contiguous base addressing · CPC title
Details of memory controller · CPC title
using burst mode transfer, e.g. direct memory access {DMA}, cycle steal (G06F13/32 takes precedence) · CPC title
Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.