Secure driver platform

US10289853B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10289853-B2
Application numberUS-201615087515-A
CountryUS
Kind codeB2
Filing dateMar 31, 2016
Priority dateMar 31, 2016
Publication dateMay 14, 2019
Grant dateMay 14, 2019

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.

Techniques described herein enable the implementation of a secure driver framework. In one example, a method includes managing an unsecure operating system execution environment comprising a first user mode and a first kernel mode. The method can also include managing a secure execution environment comprising a second user mode and a second kernel mode, and executing a secure driver within the second user mode of the secure execution environment in response to a system call from an unsecure driver in the first kernel mode or the first user mode, wherein the secure driver enables the unsecure driver to communicate with a secure device. Furthermore, the method can include providing one or more system services of the second kernel mode to the secure driver.

First claim

Opening claim text (preview).

What is claimed is: 1. A system for providing a secure driver framework comprising: a hardware processor to: manage an unsecure operating system execution environment comprising a first user mode and a first kernel mode; manage a secure execution environment comprising a second user mode and a second kernel mode; based at least in part on a system call from an unsecure driver in the first kernel mode or the first user mode, the secure execution environment to: create a secure device node corresponding to a reported new hardware device; load a secure driver corresponding to the secure device node, the secure driver to enable accessing a configuration space of the new hardware device and loading advanced configuration and power interface tables in the second kernel mode; and notify the unsecure operating system execution environment indicating a second unsecure driver is to be loaded for the new hardware device the second unsecure driver to report the new hardware device in response to an indication of accessing the configuration space; and provide one or more system services of the second kernel mode to the secure driver. 2. The system of claim 1 , wherein the unsecure driver transmits the system call to the secure driver via a remote procedure call. 3. The system of claim 1 , wherein the processor is to enumerate a secure device by creating a second secure device node and loading the second secure driver in the second user mode of the secure execution environment. 4. The system of claim 1 , wherein the processor is to: parse a memory mapped table in the second kernel mode of the secure execution environment; map the configuration space for the secure execution environment; launch the unsecure driver in the first kernel mode of the unsecure operating system execution environment; and enumerate a secure device in the first kernel mode. 5. The system of claim 4 , wherein the advanced configuration and power interface tables comprise a memory mapped configuration space base address description table (MCFG) and a secure device table. 6. The system of claim 5 , wherein the processor is to: transmit a request for configuration space access from the first kernel mode of the unsecure operating system execution environment to the second kernel mode of the secure execution environment; modify the configuration space of the secure execution environment; and transmit a result of the modification of the configuration space to the first kernel mode of the unsecure operating system execution environment. 7. The system of claim 1 , wherein the processor is to: detect an interrupt via the first kernel mode of the unsecure operating system execution environment; and transmit a remote procedure call to the secure driver in the second user mode of the secure execution environment, wherein the remote procedure call indicates the detected interrupt. 8. The system of claim 1 , wherein the processor is to provide, via the second kernel mode of the secure execution environment, a direct memory access library to the second user mode, the direct memory access library enabling buffer allocation and direct read or write operations corresponding to a secure device. 9. The system of claim 1 , wherein the processor is to enable the unsecure driver to modify a subset of device memory. 10. The system of claim 1 , wherein the secure driver enables the unsecure driver to communicate with a secure device. 11. A method for providing a secure driver framework comprising: managing an unsecure operating system execution environment comprising a first user mode and a first kernel mode; managing a secure execution environment comprising a second user mode and a second kernel mode, wherein based at least in part on a system call from an unsecure driver in the first kernel mode or the first user mode, the secure execution environment comprises: creating a secure device node corresponding to a reported new hardware device; loading a secure driver corresponding to the secure device node, the secure driver to enable accessing a configuration space of the new hardware device and loading advanced configuration and power interface tables in the second kernel mode; and notifying the unsecure operating system execution environment indicating a second unsecure driver is to be loaded for the new hardware device, the second unsecure driver to report the new hardware device in response to an indication of accessing the configuration space; and providing one or more system services of the second kernel mode to the secure driver. 12. The method of claim 11 , wherein the unsecure driver transmits the system call to the secure driver via a remote procedure call. 13. The method of claim 11 , comprising enumerating a secure device by creating a second secure device node and loading the second secure driver in the second user mode of the secure execution environment. 14. The method of claim 11 , comprising: parsing a memory mapped table in the second kernel mode of the secure execution environment; mapping the configuration space for the secure execution environment; launching the unsecure driver in the first kernel mode of the unsecure operating system execution environment; and enumerating a secure device in the first kernel mode. 15. The method of claim 14 , wherein the advanced configuration and power interface tables comprise a memory mapped configuration space base address description table (MCFG) and a secure device table. 16. The method of claim 15 , comprising: transmitting a request for configuration space access from the first kernel mode of the unsecure operating system execution environment to the second kernel mode of the secure execution environment; modifying the configuration space of the secure execution environment; and transmitting a result of the modification of the configuration space to the first kernel mode of the unsecure operating system execution environment. 17. The method of claim 11 , comprising: detecting an interrupt via the first kernel mode of the unsecure operating system execution environment; and transmitting a remote procedure call to the secure driver in the second user mode of the secure execution environment, wherein the remote procedure call indicates the detected interrupt. 18. The method of claim 11 , comprising providing, via the second kernel mode of the secure execution environment, a direct memory access library to the second user mode, the direct memory access library enabling buffer allocation and direct read or write operations corresponding to a secure device. 19. The method of claim 11 , comprising detecting a level of security and loading the secure driver in the first user mode or the first kernel mode of the unsecure operating system execution environment based on the level of security. 20. The method of claim 11 , comprising dynamically loading and linking the unsecure driver and the secure driver. 21. One or more computer-readable storage devices for implementing a secure driver framework comprising a plurality of instructions that, based at least on execution by a processor, cause the processor to manage an unsecure operating system execution environment comprising a first user mode and a first kernel mode; manage a secure execution environment comprising a second user mode and a second kernel mode, wherein based at least in part on a system call from an unsecure driver in the first kernel mode or the first user mode, the secure execution environment is t

Assignees

Inventors

Classifications

  • operating in dual or compartmented mode, i.e. at least one secure mode · CPC title

  • Tools and structures for managing or administering access control systems · CPC title

  • Multi-level security, e.g. mandatory access control · CPC title

  • by executing in a restricted environment, e.g. sandbox or secure virtual machine · CPC title

  • G06F21/606Primary

    by securing the transmission between two devices or processes · 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 US10289853B2 cover?
Techniques described herein enable the implementation of a secure driver framework. In one example, a method includes managing an unsecure operating system execution environment comprising a first user mode and a first kernel mode. The method can also include managing a secure execution environment comprising a second user mode and a second kernel mode, and executing a secure driver within the …
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F21/606. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 14 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 10 related publications on this page (citations in our corpus or others sharing the same primary CPC).