Patents by Inventor Paul England

Paul England has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 8028172
    Abstract: Systems and methods are provided for maintaining and updating a secure boot process on a computer with a trusted platform module (TPM). A boot process may be maintained by inspecting a log of TPM activity, determining data that prevented a secret to unseal, and returning the data to an original state. In situations where this type of recovery is not workable, techniques for authenticating a user may be used, allowing the authenticated user to bypass the security features of the boot process and reseal the boot secrets to platform configuration register (PCR) values that may have changed. Finally, a secure boot process may be upgraded by migrating TPM sealed secrets to a temporary storage location, updating one or more aspects of a secure boot process, and resealing the secrets to the resulting new platform configuration. Other advantages and features of the invention are described below.
    Type: Grant
    Filed: January 14, 2005
    Date of Patent: September 27, 2011
    Assignee: Microsoft Corporation
    Inventors: Jamie Hunter, Paul England, Russell Humphries, Stefan Thom, James Anthony Schwartz, Jr., Kenneth D. Ray, Jonathan Schwartz
  • Patent number: 7996648
    Abstract: A single application can be executed across multiple execution environments in an efficient manner if at least a relevant portion of the virtual memory assigned to the application was equally accessible by each of the multiple execution environments. A request by a process in one execution environment can, thereby, be directed to an operating system, or other core software, in another execution environment and can be made by a shadow of the requesting process in the same manner as the original request was made by the requesting process itself. Because of the memory invariance between the execution environments, the results of the request will be equally accessible to the original requesting process even though the underlying software that responded to the request may be executing in a different execution environment. A similar thread invariance can be maintained to provide for accurate translation of requests between execution environments.
    Type: Grant
    Filed: December 19, 2007
    Date of Patent: August 9, 2011
    Assignee: Microsoft Corporation
    Inventors: Paul England, Jork Loeser, Luis Irun-Briz
  • Patent number: 7975117
    Abstract: Plural guest operating systems run on a computer, where a security kernel enforces a policy of isolation among the guest operating systems. An exclusion vector defines a set of pages that cannot be accessed by direct memory access (DMA) devices. The security kernel enforces an isolation policy by causing certain pages to be excluded from direct access. Thus, device drivers in guest operating systems are permitted to control DMA devices directly without virtualization of those devices, while each guest is prevented from using DMA devices to access pages that the guest is not permitted to access under the policy.
    Type: Grant
    Filed: December 19, 2003
    Date of Patent: July 5, 2011
    Assignee: Microsoft Corporation
    Inventors: Marcus Peinado, Paul England, Bryan Mark Willman, Yuqun Chen, Andrew John Thornton
  • Publication number: 20110154057
    Abstract: In accordance with certain aspects, data is received from a calling program. Ciphertext that includes the data is generated, using public key encryption, in a manner that allows the data to be obtained from the ciphertext only if one or more conditions are satisfied. In accordance with another aspect, a bit string is received from a calling program. Data in the bit string is decrypted using public key decryption and returned to the calling program only if one or more conditions included in the bit string are satisfied.
    Type: Application
    Filed: January 24, 2011
    Publication date: June 23, 2011
    Applicant: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado
  • Publication number: 20110119502
    Abstract: In accordance with certain aspects, bound key operations on ciphertext and/or data are implemented. A bound key operation can receive both data to be signed and a bound key blob that is bound to one or more processors, recover a private key from the bound key blob, and generate a digital signature over the data using the private key. A bound key operation can alternatively receive both ciphertext and a bound key or bound key structure bound to one or more processors, recover or reconstruct a private key based on the bound key or bound key structure, and use the private key to generate plaintext corresponding to the ciphertext.
    Type: Application
    Filed: January 27, 2011
    Publication date: May 19, 2011
    Applicant: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado
  • Publication number: 20110119500
    Abstract: In accordance with certain aspects, data is received from a calling program. Ciphertext that includes the data is generated, using public key encryption, in a manner that allows the data to be obtained from the ciphertext only if one or more conditions are satisfied. In accordance with another aspect, a bit string is received from a calling program. Data in the bit string is decrypted using public key decryption and returned to the calling program only if one or more conditions included in the bit string are satisfied.
    Type: Application
    Filed: January 27, 2011
    Publication date: May 19, 2011
    Applicant: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado
  • Publication number: 20110119501
    Abstract: In accordance with certain aspects, data is received from a calling program. Ciphertext that includes the data is generated, using public key encryption, in a manner that allows the data to be obtained from the ciphertext only if one or more conditions are satisfied. In accordance with another aspect, a bit string is received from a calling program. Data in the bit string is decrypted using public key decryption and returned to the calling program only if one or more conditions included in the bit string are satisfied.
    Type: Application
    Filed: January 27, 2011
    Publication date: May 19, 2011
    Applicant: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado
  • Publication number: 20110119505
    Abstract: In accordance with certain aspects, data is received and a digital signature is generated and output. The digital signature can be a digital signature of the data and one or more conditions that are to be satisfied in order for the data to be revealed, or a digital signature over data generated using a private key associated with a bound key that is bound to one or more processors.
    Type: Application
    Filed: January 27, 2011
    Publication date: May 19, 2011
    Applicant: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado
  • Patent number: 7890771
    Abstract: In accordance with certain aspects, data is received from a calling program. Ciphertext that includes the data is generated, using public key encryption, in a manner that allows only one or more target programs to be able to obtain the data from the ciphertext. In accordance with another aspect, a bit string is received from a calling program. An identifier of the calling program is checked to determine whether the calling program is allowed to access data encrypted in ciphertext of the bit string. The data is decrypted using public key decryption and returned to the calling program only if the calling program is allowed to access the data.
    Type: Grant
    Filed: April 4, 2003
    Date of Patent: February 15, 2011
    Assignee: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado
  • Patent number: 7886074
    Abstract: Disclosed are methods and systems for a receiver to autonomously allocate bandwidth among its incoming communications flows. The incoming flows are assigned priorities. When it becomes necessary to alter the allocation of bandwidth among the flows, the receiver selects one of the lower priority flows. The receiver then causes the selected flow to delay sending acknowledgements of messages received to the senders of the messages. In most modern protocols, senders are sensitive to the time it takes to receive acknowledgements of the messages they send. When the acknowledgement time increases, the sender assumes that the receiver is becoming overloaded. The sender then slows down the rate at which it sends messages to the receiver. This lowered sending rate in turn reduces the amount of bandwidth used by the flow as it comes into the receiver. This frees up bandwidth which can then be used by higher priority flows.
    Type: Grant
    Filed: September 26, 2005
    Date of Patent: February 8, 2011
    Assignee: Microsoft Corporation
    Inventors: Paul England, Cormac E. Herley
  • Patent number: 7836299
    Abstract: A virtual PCR (VPCR) construct is provided that can be cryptographically tagged as optionally resettable or as enduring for the life of a client (process, virtual machine, and the like) and that can be loaded into a resettable hardware PCR to make use of the functionality of a Trusted Platform Module (TPM). The VPCRs may cryptographically reflect their characteristics (resettable or not) in their stored values. Also, since the PCRs are virtualized, they are (effectively) unlimited in number and may be given general names (UUIDs) that are less likely to collide. The VPCRs can be loaded into a physical PCR as needed, but in a way that stops one piece of software from impersonating another piece of software. The VPCRs thus enable all software using the TPM to be given access to TPM functionality (sealing, quoting, etc.) without security concerns.
    Type: Grant
    Filed: March 15, 2005
    Date of Patent: November 16, 2010
    Assignee: Microsoft Corporation
    Inventors: Paul England, Matthew C. Setzer
  • Patent number: 7836504
    Abstract: The present invention provides a system, method, and computer-readable medium for identifying malware that is loaded in the memory of a computing device. Software routines implemented by the present invention track the state of pages loaded in memory using page table access bits available from a central processing unit. A page in memory may be in a state that is “unsafe” or potentially infected with malware. In this instance, the present invention calls a scan engine to search a page for malware before information on the page is executed.
    Type: Grant
    Filed: March 1, 2005
    Date of Patent: November 16, 2010
    Assignee: Microsoft Corporation
    Inventors: Kenneth D Ray, Michael Kramer, Paul England, Scott A Field
  • Patent number: 7818255
    Abstract: A method of avoiding a second login of user information in an encrypted disk computer system includes a communications path for transferring user login information. The login information is acquired and used by a first software module which authenticates the user to decrypt a disk with an encrypted operating system. The same login information is transferred using the communications channel to a second use which logs the user into the decrypted operating system. The method also supports multiple users through maintenance of multiple users credentials.
    Type: Grant
    Filed: June 2, 2006
    Date of Patent: October 19, 2010
    Assignee: Microsoft Corporation
    Inventors: Ravindra N. Pandya, Paul England
  • Patent number: 7805761
    Abstract: A system and method are provided, whereby data that is easily re-created is separated from data that is not easily re-created, such that the easily re-created data can be disposed of based on a variety of events and the not easily re-created data can be kept in its original state. In one aspect of the invention, such easily re-created data is disposed of based on a “panic button” being pushed by a computer system user, such as when a user becomes aware that some malware has infected the computer system. In other aspects of the invention, such data is disposed of every time the computer system boots up, or detects via its anti-virus program that some malware is present. In other aspects of the invention, the easily re-created data can be rolled back or rolled forward without affecting the non-easily re-created data.
    Type: Grant
    Filed: April 29, 2005
    Date of Patent: September 28, 2010
    Assignee: Microsoft Corporation
    Inventors: Kenneth D. Ray, Paul England, Nathan T. Lewis, Michael David Marr
  • Patent number: 7797544
    Abstract: To establish trust between first and second entities, the first entity sends an attestation message to the second entity, including a code ID, relevant data, a digital signature based on the code ID and data, and a certificate chain. The second entity verifies the signature and decides whether to in fact enter into a trust-based relationship with the first entity based on the code ID and the data in the attestation message. Upon so deciding, the second entity sends a trust message to the first entity, including a secret to be shared between the first and second entities. The first entity obtains the shared secret in the trust message and employs the shared secret to exchange information with the second entity.
    Type: Grant
    Filed: December 11, 2003
    Date of Patent: September 14, 2010
    Assignee: Microsoft Corporation
    Inventors: Blair B. Dillaway, Paul England, Marcus Peinado
  • Patent number: 7788669
    Abstract: Techniques are disclosed to support hosting of a first operating system by a second operating system, where the first system provides at least some of the infrastructure for the second system. A facility is provided whereby the second system can receive data from the first system without the first system being able to modify that data. The second system may use the first system's scheduler by creating shadow threads and synchronization objects known to the first system, while the second system makes the final decision as to whether a thread runs. Separate memory may be allocated to both systems at boot time, or dynamically during their operation. The techniques herein may be used to protect the second system from actions arising in the first system. Preferably, the interaction between the first and second systems is facilitated by a security monitor, which assists in protecting the second system from the first.
    Type: Grant
    Filed: May 2, 2003
    Date of Patent: August 31, 2010
    Assignee: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado, Bryan Mark Willman
  • Patent number: 7765397
    Abstract: In accordance with certain aspects, data is received from a calling program. Ciphertext that includes the data is generated, using public key encryption, in a manner that allows only one or more target programs to be able to obtain the data from the ciphertext. In accordance with another aspect, a bit string is received from a calling program. An identifier of the calling program is checked to determine whether the calling program is allowed to access data encrypted in ciphertext of the bit string. The data is decrypted using public key decryption and returned to the calling program only if the calling program is allowed to access the data.
    Type: Grant
    Filed: November 8, 2006
    Date of Patent: July 27, 2010
    Assignee: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado
  • Patent number: 7752456
    Abstract: In accordance with certain aspects, data is received from a calling program. Ciphertext that includes the data is generated, using a symmetric cipher, in a manner that allows only one or more target programs to be able to obtain the data from the ciphertext. In accordance with other aspects, a bit string is received from a calling program. An identifier of the calling program is checked to determine whether the calling program is allowed to access data encrypted in ciphertext of the bit string. The integrity of the data is also verified, and the data is decrypted using a symmetric key. The data is returned to the calling program only if the calling program is allowed to access the data and if the integrity of the data is successfully verified.
    Type: Grant
    Filed: November 8, 2006
    Date of Patent: July 6, 2010
    Assignee: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado
  • Patent number: 7730318
    Abstract: Application factoring or partitioning is used to integrate secure features into a conventional application. An application's functionality is partitioned into two sets according to whether a given action does, or does not, involve the handling of sensitive data. Separate software objects (processors) are created to perform these two sets of actions. A trusted processor handles secure data and runs in a high-assurance environment. When another processor encounters secure data, that data is sent to the trusted processor. The data is wrapped in such a way that allows it to be routed to the trusted processor, and prevents the data from being deciphered by any entity other than the trusted processor. An infrastructure is provided that wraps objects, routes them to the correct processor, and allows their integrity to be attested through a chain of trust leading back to base component that is known to be trustworthy.
    Type: Grant
    Filed: October 24, 2003
    Date of Patent: June 1, 2010
    Assignee: Microsoft Corporation
    Inventors: Thekkthalackal Varugis Kurien, Kenneth D. Ray, Marcus Peinado, Paul England
  • Patent number: 7725703
    Abstract: In a computer with a trusted platform module (TPM), an expected hash value of a boot component may be placed into a platform configuration register (PCR), which allows a TPM to unseal a secret. The secret may then be used to decrypt the boot component. The hash of the decrypted boot component may then be calculated and the result can be placed in a PCR. The PCRs may then be compared. If they do not, access to the an important secret for system operation can be revoked. Also, a first secret may be accessible only when a first plurality of PCR values are extant, while a second secret is accessible only after one or more of the first plurality of PCR values has been replaced with a new value, thereby necessarily revoking further access to the first secret in order to grant access to the second secret.
    Type: Grant
    Filed: January 7, 2005
    Date of Patent: May 25, 2010
    Assignee: Microsoft Corporation
    Inventors: Jamie Hunter, Paul England, Russell Humphries, Stefan Thom, James Anthony Schwartz, Jr., Kenneth D Ray, Jonathan Schwartz