Arbitrary code execution and restricted protected storage access to trusted code

US9396335B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9396335-B2
Application numberUS-201213596558-A
CountryUS
Kind codeB2
Filing dateAug 28, 2012
Priority dateAug 28, 2012
Publication dateJul 19, 2016
Grant dateJul 19, 2016

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.

A method comprises signing boot code with a public/private cryptographic key pair, and writing to storage the boot code, the public cryptographic key, and the signed boot code.

First claim

Opening claim text (preview).

What is claimed is: 1. An information handling system comprising: a storage device including: boot code; a public cryptographic key; and a purported signature of the boot code by a private cryptographic key forming a public/private cryptographic key pair with the public cryptographic key; and an execution engine including a decryption/encryption engine, the execution engine configured to: determine whether the purported signature of the boot code is a result of signing the boot code with the private cryptographic key; execute the boot code if the purported signature is the result of signing the boot code with the private cryptographic key; generate another cryptographic key, based upon the public cryptographic key and based upon a random value, conditioned on determining that the purported signature of the boot code is the result of signing the boot code with the private cryptographic key, wherein the random value is a fused random value hard-coded onto an application-specific-integrated circuit of the execution engine; boot in a non-secure mode based upon determining that the purported signature of the boot code is not the result of signing the boot code with the private cryptographic key, wherein in the non-secure mode, the execution engine is to be prevented from decrypting data encrypted by the execution engine and stored in the storage device; encrypt data with the another cryptographic key using the decryption/encryption engine; store the encrypted data on the storage device; access data encrypted by the another cryptographic key and stored on the storage device; again generating the another cryptographic key as part of a boot process; reading the encrypted data from the storage device; and decrypting the encrypted data via the again-generated another cryptographic key. 2. The system of claim 1 wherein the execution engine is implemented on a microprocessor. 3. The system of claim 1 wherein the execution engine is to issue an alert upon determining that the purported signature of the boot code is not the result of signing the boot code with the private cryptographic key. 4. The system of claim 1 wherein the execution engine is to abort booting based upon determining that the purported signature of the boot code is not the result of signing the boot code with the private cryptographic key. 5. The system of claim 1 wherein the system is included in a baseboard management controller. 6. The system of claim 1 where the execution engine is not to store the another cryptographic key in non-volatile storage. 7. The system of claim 1 wherein the execution engine is implemented on a microprocessor and the decryption/encryption engine is implemented on an application-specific-integrated circuit of the microprocessor. 8. The system of claim 1 wherein the execution engine is to multiplex the another cryptographic key and a programmable cryptographic key to the decryption/encryption engine. 9. The system of claim 1 wherein the execution engine is to generate the another cryptographic key by applying a fixed transformation to the public cryptographic key. 10. The system of claim 1 wherein the execution engine is to read the public cryptographic key only as part of a boot process. 11. A method comprising: during a first boot process of a computing device: determining by the computing device whether a purported signature of first boot code by a private cryptographic key forming a public/private cryptographic key pair with a public cryptographic key is a result of signing the first boot code with the private cryptographic key, the first boot code stored in non-volatile storage; executing the first boot code if the purported signature is the result of signing the first boot code with the private cryptographic key; reading from the non-volatile storage the public cryptographic key; generating another cryptographic key based upon the public cryptographic key, conditioned on determining that the purported signature of the first boot code is the result of signing the first boot code with the private cryptographic key, wherein the another cryptographic key is based upon a fused random value hard-coded onto an application-specific-integrated circuit of the computing device; encrypting by the computing device data with the another cryptographic key; storing the encrypted data on the non-volatile storage; reading encrypted data from the non-volatile storage; and decrypting the encrypted data via the another cryptographic key; during a second boot process of the computing device: booting in a non-secure mode based upon determining that the purported signature of second boot code is not the result of signing the second boot code with the private cryptographic key; and preventing the computing device from decrypting the encrypted data based upon booting in the non-secure mode.

Assignees

Inventors

Classifications

  • wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption (cryptographic mechanisms or cryptographic arrangements using a plurality of keys or algorithms H04L9/14) · CPC title

  • for key exchange, e.g. in peer-to-peer networks (cryptographic mechanisms or cryptographic arrangements for key agreement H04L9/0838) · CPC title

  • involving digital signatures · CPC title

  • G06F21/575Primary

    Secure boot · 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 US9396335B2 cover?
A method comprises signing boot code with a public/private cryptographic key pair, and writing to storage the boot code, the public cryptographic key, and the signed boot code.
Who is the assignee on this patent?
Jaber Muhammed K, Hoang Quy N, Dube Shawn J, and 2 more
What technology area does this patent fall under?
Primary CPC classification G06F21/575. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 19 2016 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).