Virtual memory extension layer for hardware security modules

US11265160B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11265160-B2
Application numberUS-201916277536-A
CountryUS
Kind codeB2
Filing dateFeb 15, 2019
Priority dateFeb 15, 2019
Publication dateMar 1, 2022
Grant dateMar 1, 2022

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 key management system includes a hardware security module (HSM) with a secure memory; an HSM driver implementing an API, interfaced with the HSM to provide handles to cryptographic objects stored on the secure memory of the HSM; and a shim layer interfaced with the HSM driver. The layer is generally configured to enable a client application to interact with the HSM via the driver, i.e., for the HSM to manage cryptographic objects for the client, notwithstanding the layer. External memory storage resides outside the HSM and is interfaced with the layer. The method includes instructing (at the layer) to: (i) encrypt cryptographic objects from the HSM (with the help of the driver) and store the resulting encrypted objects at respective memory locations on the storage, to free up memory space; and (ii) store handles to such cryptographic objects along with references to said respective memory locations, on the storage.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method for managing cryptographic objects, the method comprising: providing a key management system comprising: a hardware security module (HSM), having a secure memory; an HSM driver, implementing an application programming interface (API), interfaced with the HSM to provide handles to cryptographic objects stored on the secure memory; a shim layer interfaced with the HSM driver, the shim layer configured to enable a client application to interact with the HSM via the HSM driver for the HSM to manage cryptographic objects for the client application, notwithstanding the shim layer; and external memory storage, wherein the external memory storage reside outside the HSM and is interfaced with the shim layer, and at the shim layer: instructing, via the HSM driver, to encrypt cryptographic objects from the HSM and instructing to store the resulting encrypted objects at respective memory locations on the external storage, in order to be able to free up memory space on the secure memory, and instructing to store handles to such cryptographic objects along with references to said respective memory locations, on the external storage, the handles comprising abstract references to said cryptographic objects, usable by application software to reference a corresponding one of the cryptographic objects, the application software being reminded that the corresponding one of the cryptographic objects is in fact managed by and stored inside the HSM; wherein the method further comprises monitoring a memory available on the secure memory, whereby instructing to encrypt the cryptographic objects and store handles thereto is carried out dependent on the monitored memory; and wherein instructing to encrypt the cryptographic objects and store handles thereto is carried out dependent on the monitored memory being less than a first threshold, further comprising deleting an oldest one of said cryptographic objects, already stored in said external storage, from said secure memory of said HSM, based on said monitored memory also being less than a second threshold, lower than said first threshold. 2. The method according to claim 1 , wherein this available memory is monitored by the shim layer. 3. The method according to claim 1 , wherein at deleting, the deletion of the cryptographic objects is deferred for a time period determined based on the monitored memory. 4. The method according to claim 1 , wherein the method further comprises, at the shim layer, monitoring ones of the handles provided by the HSM driver, wherein such ones of the handles include, on the one hand, first handles to cryptographic objects currently stored on the secure memory and, on the other hand, second handles to cryptographic objects currently stored on the external storage. 5. The method according to claim 1 , wherein said HSM driver is a standard, platform-independent application programming interface library. 6. The method according to claim 1 , wherein said cryptographic objects comprise one or each of: cryptographic keys, including symmetric keys and/or asymmetric keys; and initialization vectors. 7. A computer-implemented method for managing cryptographic objects, the method comprising: providing a key management system comprising: a hardware security module (HSM), having a secure memory; an HSM driver, implementing an application programming interface (API), interfaced with the HSM to provide handles to cryptographic objects stored on the secure memory; a shim layer interfaced with the HSM driver, the shim layer configured to enable a client application to interact with the HSM via the HSM driver for the HSM to manage cryptographic objects for the client application, notwithstanding the shim layer; and external memory storage, wherein the external memory storage reside outside the HSM and is interfaced with the shim layer, and at the shim layer: instructing, via the HSM driver, to encrypt cryptographic objects from the HSM and instructing to store the resulting encrypted objects at respective memory locations on the external storage, in order to be able to free up memory space on the secure memory, instructing to store handles to such cryptographic objects along with references to said respective memory locations, on the external storage; monitoring ones of the handles provided by the HSM driver, wherein such ones of the handles include, on the one hand, first handles to cryptographic objects currently stored on the secure memory and, on the other hand, second handles to cryptographic objects currently stored on the external storage; wherein: monitoring said ones of the handles comprises intercepting calls made by the client application to the HSM driver; and the method further comprises, at the shim layer and for each call of the intercepted calls, retrieving a cryptographic object referenced in said each call by comparing a corresponding handle in said each call to handles as monitored at the shim layer. 8. The method according to claim 7 , wherein retrieving said cryptographic objects further comprises, for said each call, determining whether the cryptographic object referenced in said each call is currently stored on the secure memory or stored encrypted on the external storage, by comparing the corresponding handle to handles as monitored at the shim layer. 9. The method according to claim 8 , wherein the method further comprises, if it is determined that the referenced object is currently stored on the secure memory, forwarding said each call to the HSM via the HSM driver for the HSM to provide the cryptographic object as referenced in said each call. 10. The method according to claim 8 , wherein the method further comprises, if it is determined that the referenced object is currently stored encrypted on the external storage: identifying, on the external storage, a reference associated to a handle corresponding to the referenced object, and obtain the encrypted object as stored at a memory location corresponding to the identified reference; decrypting the object obtained for it to be stored on the HSM; and after having stored the decrypted object on the HSM, forwarding said each call to the HSM for it to provide the cryptographic object as referenced in said each call. 11. The method according to claim 10 , wherein encrypting and decrypting a cryptographic object is carried out under control of the shim layer, whereby the latter instructs the HSM driver to cause the HSM to use one or more cryptographic keys available at the HSM, in order to encrypt and decrypt said cryptographic object. 12. A computer-implemented method for managing cryptographic objects, the method comprising: providing a key management system comprising: a hardware security module (HSM), having a secure memory; an HSM driver, implementing an application programming interface (API), interfaced with the HSM to provide handles to cryptographic objects stored on the secure memory; a shim layer interfaced with the HSM driver, the shim layer configured to enable a client application to interact with the HSM via the HSM driver for the HSM to manage cryptographic objects for the client application, notwithstanding the shim layer; and external memory storage, wherein the external memory storage reside outside the HSM and is interfaced with the shim layer, and at the shim layer: instructing, via the HSM driver, to encrypt cryptographic objects from the HSM and instructing to store the resulting encrypted objects at respective memory locations on the external storage, in order to be able to free up memory space on the secure memory, instructing to

Assignees

Inventors

Classifications

  • involving algebraic varieties, e.g. elliptic or hyper-elliptic curves · CPC title

  • H04L9/3252Primary

    using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes · CPC title

  • Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy · CPC title

  • Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms · CPC title

  • using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates · 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 US11265160B2 cover?
A key management system includes a hardware security module (HSM) with a secure memory; an HSM driver implementing an API, interfaced with the HSM to provide handles to cryptographic objects stored on the secure memory of the HSM; and a shim layer interfaced with the HSM driver. The layer is generally configured to enable a client application to interact with the HSM via the driver, i.e., for t…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification H04L9/3252. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Mar 01 2022 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 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).