System and method for generating symmetric key to implement media access control security check
US-2020358764-A1 · Nov 12, 2020 · US
US11368292B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11368292-B2 |
| Application number | US-202016931210-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 16, 2020 |
| Priority date | Jul 16, 2020 |
| Publication date | Jun 21, 2022 |
| Grant date | Jun 21, 2022 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method for securing client data using an application server, the method comprising: storing, by an application server, a key identifier received from a security server over a network connection, the application server being a separate server than the security server and the key identifier being associated with a private key, the private key being accessible by the security server and not accessible by the application server, the application server also being in communication with a plurality of client devices over a network; transmitting, from the application server to the security server, a request to derive a symmetric key, the request being received after the storing the key identifier, the request comprising a public key generated by the application server, a salt value, and the key identifier; receiving, by the application server, the symmetric key from the security server, the symmetric key being derived based on the transmitted public key and the private key associated with the key identifier using a key derivation function, the symmetric key being stored in an in-memory cache of the application server; and encrypting, by the application server, data received from one of the plurality of client devices using the symmetric key, the encrypted data being stored on persistent storage in communication with the application server. 2. The method of claim 1 , wherein both the public key and the private key associated with the key identifier correspond to different points on an elliptic curve. 3. The method of claim 1 , wherein the public key and the private key associated with the key identifier are components of a Diffie-Hellman key exchange. 4. The method of claim 1 , further comprising: transmitting, by the application server, a request to rotate the symmetric key, the request to rotate comprising a different public key, a different salt, and a different key identifier associated with a different private key accessible by the private server; receiving, by the application server, a different symmetric key from the security server in response to the request to rotate, the different symmetric being derived based on the different public key and the different private key using the key derivation function, the different symmetric key being linked to the symmetric key and further being stored in an in-memory cache of the application server; and encrypting, by the application server, data from one of the plurality of client devices using the different symmetric key. 5. The method of claim 4 , further comprising, in response to the receiving the different symmetric key, deleting the symmetric key from a list of symmetric keys, the list of symmetric keys being associated with the application server. 6. The method of claim 4 , further comprising maintaining a data structure that lists symmetric keys used by the application server, the table comprising, for each row, a public key used for each symmetric key, a salt used for each symmetric key, and a key identifier used for each symmetric key. 7. 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. 8. The method of claim 1 , wherein the key derivation function applies a cryptographic hash function to a key agreement key and the salt value, the key agreement key being generated using a key agreement protocol applied to the public key and the private key associated with the key identifier. 9. An apparatus for securing client data comprising: one or more processors of an application server; and a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to: store a key identifier received from a security server over a network connection, the application server being a separate server than the security server and the key identifier being associated with a private key, the private key being accessible by the security server and not accessible by the application server, the application server also being in communication with a plurality of client devices over a network; transmit, to the security server, a request to derive a symmetric key, the request being received after the storing the key identifier, the request comprising a public key generated by the application server, a salt value, and the key identifier; receive the symmetric key from the security server over the network connection, the symmetric key being derived based on the transmitted public key and the private key associated with the key identifier using a key derivation function, the symmetric key being stored in an in-memory cache of the application server; and encrypt data from one of the plurality of client devices using the symmetric key, the encrypted data being stored on persistent storage in communication with the application server. 10. The apparatus of claim 9 , wherein both the public key and the private key associated with the key identifier correspond to different points on an elliptic curve. 11. The apparatus of claim 9 , wherein the public key and the private key associated with the key identifier are components of a Diffie-Hellman key exchange. 12. The apparatus of claim 9 , wherein the plurality of instructions, when executed, further cause the one or more processors to: transmitting, by the application server, a request to rotate the symmetric key, the request to rotate comprising a different public key, a different salt, and a different key identifier associated with a different private key accessible by the private server; receiving, by the application server, a different symmetric key from the security server in response to the request to rotate, the different symmetric key being derived based on the different public key and the different private key using the key derivation function, the different symmetric key being linked to the symmetric key and further being stored in an in-memory cache of the application server; and encrypting, by the application server, data from one of the plurality of client devices using the different symmetric key. 13. The apparatus of claim 9 , wherein the plurality of instructions, when executed, further cause the one or more processors to: delete the symmetric key from a list of symmetric keys, the list of symmetric keys being associated with the application server, in response to receiving the different symmetric key. 14. The apparatus of claim 9 , wherein the plurality of instructions, when executed, further cause the one or more processors to: maintain a data structure that lists symmetric keys used by the application server, the table comprising, for each row, a public key used for each symmetric key, a salt used for each symmetric key, and a key identifier used for each symmetric key. 15. The apparatus of claim 9 , 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. 16. The apparatus of claim 9 , wherein the key derivation function applies a cryptographic hash function to a key agreement key and the salt value, the key agreement key being generated using a key agreement protocol applied to the public key and the private key associated with the key identifier. 17. A computer program product comprising computer-readable program code to be executed by one or more processo
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 cryptographic hash functions · CPC title
Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage · CPC title
using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates · CPC title
involving algebraic varieties, e.g. elliptic or hyper-elliptic curves · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.