Securing data using key agreement

US11522686B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11522686-B2
Application numberUS-202016931226-A
CountryUS
Kind codeB2
Filing dateJul 16, 2020
Priority dateJul 16, 2020
Publication dateDec 6, 2022
Grant dateDec 6, 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.

Methods and systems for securing customer data in a multi-tenant database environment are described. A key identifier received from a security server may be stored by an application server. The key identifier may be associated with a private key that is accessible by the security server and not accessible by the application server. A request to derive a symmetric key may be transmitted from the application server to the security server, the request including a public key generated by the application server, a salt value, and the key identifier. The symmetric key may then be derived based on the transmitted public key and the private key using a key derivation function. The application server may then receive and store the symmetric key in an in-memory cache, and be used to securely encrypt data received by the application server from client devices.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method for securing client data using a security server, the method comprising: receiving, by a security server, a request to derive a symmetric key from an application server, the request comprising a public key, a salt value, and a key identifier associated with a private key, the public key and private key corresponding to different points on an elliptic curve; deriving the symmetric key, by the security server, based on the received public key and the private key associated with the key identifier using a key derivation function, the deriving comprising: retrieving the private key associated with the key identifier from a storage location that is not accessible by the application server; applying a key agreement protocol to the received public key and the retrieved private key associated with the key identifier, the key agreement protocol outputting a key agreement key by combining the received public key and the retrieved private key to obtain a value on the same elliptic curve as the received public key and the retrieved private key; and applying a key derivation function to the key agreement key to generate the symmetric key by using the obtained value on the same elliptic curve as an input to the key derivation function; and transmitting, by the security server, the derived symmetric key to the requesting application server, the symmetric key being subsequently stored in an in-memory cache of the application server and being used by the application server to encrypt customer data. 2. The method of claim 1 , the security server storing a list of asymmetric key pairs for a plurality of tenants, each asymmetric key pair comprising a public key and a private key, each private key being associated with a corresponding key identifier. 3. The method of claim 1 , further comprising deleting, by the security server, the derived symmetric key after the transmitting the derived symmetric key to the requesting application server. 4. The method of claim 1 , the key agreement protocol generating the key agreement key being based on an elliptic curve common to both the received public key and the retrieved private key associated with the key identifier. 5. The method of claim 1 , wherein the key agreement protocol is a Diffie-Hellman key exchange. 6. The method of claim 1 , wherein the private key is retrieved from a key management service in communication with the security server, the key management service storing a plurality of private keys accessible by the security server. 7. An apparatus for securing customer data comprising: one or more processors of a security server; and a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to: receive a request to derive a symmetric key from an application server, the request comprising a public key, a salt value, and a key identifier associated with a private key, the public key and private key corresponding to different points on an elliptic curve; derive the symmetric key based on the received public key and the private key associated with the key identifier using a key derivation function, the plurality of instructions to derive the symmetric key comprising instructions to: retrieve the private key associated with the key identifier from a storage location that is not accessible by the application server; apply a key agreement protocol to the received public key and the retrieved private key associated with the key identifier, the key agreement protocol outputting a key agreement key by combining the received public key and the retrieved private key to obtain a value on the same elliptic curve as the received public key and the retrieved private key; and apply a key derivation function to the key agreement key to generate the symmetric key by using the obtained value on the same elliptic curve as an input to the key derivation function; and transmit the derived symmetric key to the requesting application server, the symmetric key being subsequently stored in an in-memory cache of the application server and being used by the application server to encrypt customer data. 8. The apparatus of claim 7 , the plurality of instructions further comprising instructions that cause the one or more processors to store a list of asymmetric keys for a plurality of tenants, each asymmetric key pair comprising a public key and a private key, each private key being associated with a corresponding key identifier. 9. He apparatus of claim 7 , the plurality of instructions further comprising instructions that cause the one or more processors to delete, by the security server, the derived symmetric key after the transmitting the derived symmetric key to the requesting application server. 10. The apparatus of claim 7 , wherein the key agreement protocol generating the key agreement key is based on an elliptic curve common to both the received public key and the retrieved private key associated with the key identifier. 11. The apparatus of claim 7 , wherein the key agreement protocol is a Diffie-Hellman key exchange. 12. The apparatus of claim 7 , wherein the private key is retrieved from a key management service that stores a plurality of private keys accessible by the security server. 13. A computer program product comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein to be executed by one or more processors, the program code including instructions to: receive a request to derive a symmetric key from an application server, the request comprising a public key, a salt value, and a key identifier associated with a private key, the public key and private key corresponding to different points on an elliptic curve; derive the symmetric key based on the received public key and the private key using a key derivation function, the instructions to derive the symmetric key comprising instructions to: retrieve the private key from a storage location that is not accessible by the application server; apply a key agreement protocol to the received public key and the retrieved private key, the key agreement protocol outputting a key agreement key by combining the received public key and the retrieved private key to obtain a value on the same elliptic curve as the received public key and the retrieved private key; and apply a key derivation function to the key agreement key to generate the symmetric key by using the obtained value on the same elliptic curve as an input to the key derivation function; and transmit the derived symmetric key to the requesting application server, the symmetric key being subsequently stored in an in-memory cache of the application server and being used by the application server to encrypt customer data stored on the application server. 14. The computer program product of claim 13 , further comprising instructions to store a list of asymmetric keys for a plurality of tenants, the application server being associated with one of the plurality of tenants, each symmetric key in the list being associated with a public key accessible to a tenant and a private key accessible by the security server and not accessible by the plurality of tenants. 15. The computer program product of claim 13 , further comprising instructions to delete the derived symmetric key after the transmitting the derived symmetric key to the requesting application server. 16. The computer program product of claim 13 , wherein the key agreement protocol generating the key agreement key is based on an elliptic curve

Assignees

Inventors

Classifications

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

  • involving additional devices, e.g. trusted platform module [TPM], smartcard or USB · CPC title

  • H04L9/0841Primary

    involving Diffie-Hellman or related key agreement protocols · CPC title

  • H04L9/0838Primary

    Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these (network architectures or network communication protocols for key exchange in a packet data network H04L63/061) · 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 US11522686B2 cover?
Methods and systems for securing customer data in a multi-tenant database environment are described. A key identifier received from a security server may be stored by an application server. The key identifier may be associated with a private key that is accessible by the security server and not accessible by the application server. A request to derive a symmetric key may be transmitted from the…
Who is the assignee on this patent?
Salesforce Com Inc, Salesforce Inc
What technology area does this patent fall under?
Primary CPC classification H04L9/0841. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 06 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).