IP Library Granted Patent US 12,242,618
Granted Patent B2
US 12,242,618 · App. 17/645,251 · Granted Mar 4, 2025

Multi-tenant cryptography implementation compliance

Inventors: Prasad Peddada (Alameda, CA); Glenn Martin Brunette, Jr. (Yardley, PA)
Assignee: Salesforce, Inc.
G06F21/602G06F9/45558G06F21/57H04L63/10G06F2009/45587
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,242,618
App. No.
17/645,251
Granted
Mar 4, 2025
Kind
B2
Abstract

Methods, systems, apparatuses, devices, and computer program products are described. A virtual machine may receive, from an application associated with a tenant, a request to perform a cryptographic operation for the application at the virtual machine. Based on receiving the request, the virtual machine may determine that the tenant is limited to using a designated set of cryptographic operations in accordance with a cryptographic operation validation policy associated with the tenant. In some examples, the virtual machine may identify a designated version of the cryptographic operation, from the designated set of cryptographic operations, that corresponds to the cryptographic operation indicated by the request in satisfaction of the cryptographic operation validation policy. The virtual machine may execute the designated version of the cryptographic operation and return a result of the execution to the application.

Claims (60)

1. A method for data processing, comprising:

receiving, from an application associated with a tenant and at a virtual machine, a request to perform a version of a cryptographic operation for the application at the virtual machine;

determining, based at least in part on receiving the request, that the tenant is limited to using a designated set of cryptographic operations in accordance with a cryptographic operation validation policy associated with the tenant, and wherein the designated set of cryptographic operations are validated in accordance with the cryptographic operation validation policy;

identifying a designated version of the cryptographic operation, from the designated set of cryptographic operations, that corresponds to the cryptographic operation indicated by the request and is different than the version of the cryptographic operation indicated by the request, the designated version of the cryptographic operation in satisfaction of the cryptographic operation validation policy associated with the tenant;

executing the designated version of the cryptographic operation at the virtual machine; and

returning, to the application, a result of executing the designated version of the cryptographic operation.

2. The method of claim 1 , further comprising:

querying a thread local variable based at least in part on receiving the request, wherein the thread local variable comprises a reference to a cryptographic provider; and

determining, based at least in part on querying the thread local variable, that the tenant is limited to using the designated set of cryptographic operations associated with the cryptographic provider in accordance with the cryptographic operation validation policy associated with the tenant.

3. The method of claim 2 , further comprising:

releasing a thread associated with the execution of the designated version of the cryptographic operation in response to returning the result, wherein releasing of the thread includes releasing the thread local variable.

4. The method of claim 1 , further comprising:

receiving, from the application, a second request to perform a second cryptographic operation;

determining, based at least in part on receiving the second request, that the tenant is limited to using the designated set of cryptographic operations;

determining that the second cryptographic operation is an invalid request according to the cryptographic operation validation policy; and

returning an error indicating that the requested second cryptographic operation fails to satisfy the cryptographic operation validation policy associated with the tenant.

5. The method of claim 1 , further comprising:

replacing the designated set of cryptographic operations with an updated designated set of cryptographic operations, an alternate designated set of cryptographic operations from a vendor, or any combination thereof.

6. The method of claim 5 , wherein the designated set of cryptographic operations is replaced at the virtual machine without modifying one or more code sets associated with the application.

7. The method of claim 1 , further comprising:

receiving, from a second application associated with a second tenant, a second request to perform a second cryptographic operation;

determining, based at least in part on receiving the second request, that the second tenant is not subject to the cryptographic operation validation policy; and

executing the second cryptographic operation at the virtual machine based at least in part on determining that the second tenant is not subject to the cryptographic operation validation policy.

8. The method of claim 1 , wherein the virtual machine operates according to a virtual machine configuration specifying that the virtual machine is configured to execute only cryptographic operations that are validated in accordance with the cryptographic operation validation policy, wherein the tenant is limited to using the designated set of cryptographic operations based at least in part on the virtual machine configuration.

9. The method of claim 1 , wherein the virtual machine is a Java virtual machine.

10. The method of claim 1 , wherein the cryptographic operation validation policy comprises a Federal Information Processing Standard Publication 140.

11. The method of claim 1 , wherein the version of the cryptographic operation comprises a first hashing function, a first algorithm, or both that is at least partially different from a second hashing function, a second algorithm, or both of the designated version of the cryptographic operation.

12. An apparatus for data processing, comprising:

a processor;

memory coupled with the processor; and

instructions stored in the memory and executable by the processor to cause the apparatus to:

receive, from an application associated with a tenant and at a virtual machine, a request to perform a version of a cryptographic operation for the application at the virtual machine;

determine, based at least in part on receiving the request, that the tenant is limited to using a designated set of cryptographic operations in accordance with a cryptographic operation validation policy associated with the tenant, and wherein the designated set of cryptographic operations are validated in accordance with the cryptographic operation validation policy;

identify a designated version of the cryptographic operation, from the designated set of cryptographic operations, that corresponds to the cryptographic operation indicated by the request and is different than the version of the cryptographic operation indicated by the request, the designated version of the cryptographic operation in satisfaction of the cryptographic operation validation policy associated with the tenant;

execute the designated version of the cryptographic operation at the virtual machine; and

return, to the application, a result of executing the designated version of the cryptographic operation.

13. The apparatus of claim 12 , wherein the instructions are further executable by the processor to cause the apparatus to:

query a thread local variable based at least in part on receiving the request, wherein the thread local variable comprises a reference to a cryptographic provider; and

determine, based at least in part on querying the thread local variable, that the tenant is limited to using the designated set of cryptographic operations associated with the cryptographic provider in accordance with the cryptographic operation validation policy associated with the tenant.

14. The apparatus of claim 13 , wherein the instructions are further executable by the processor to cause the apparatus to:

release a thread associated with the execution of the designated version of the cryptographic operation in response to returning the result, wherein releasing of the thread includes releasing the thread local variable.

15. The apparatus of claim 12 , wherein the instructions are further executable by the processor to cause the apparatus to:

receive, from the application, a second request to perform a second cryptographic operation;

determine, based at least in part on receiving the second request, that the tenant is limited to using the designated set of cryptographic operations;

determine that the second cryptographic operation is an invalid request according to the cryptographic operation validation policy; and

return an error indicating that the requested second cryptographic operation fails to satisfy the cryptographic operation validation policy associated with the tenant.

16. The apparatus of claim 12 , wherein the instructions are further executable by the processor to cause the apparatus to:

replace the designated set of cryptographic operations with an updated designated set of cryptographic operations, an alternate designated set of cryptographic operations from a vendor, or any combination thereof.

17. The apparatus of claim 16 , wherein the designated set of cryptographic operations is replaced at the virtual machine without modifying one or more code sets associated with the application.

18. The apparatus of claim 12 , wherein the instructions are further executable by the processor to cause the apparatus to:

receive, from a second application associated with a second tenant, a second request to perform a second cryptographic operation;

determine, based at least in part on receiving the second request, that the second tenant is not subject to the cryptographic operation validation policy; and

execute the second cryptographic operation at the virtual machine based at least in part on determining that the second tenant is not subject to the cryptographic operation validation policy.

19. The apparatus of claim 12 , wherein the virtual machine operates according to a virtual machine configuration specifying that the virtual machine is configured to execute only cryptographic operations that are validated in accordance with the cryptographic operation validation policy, wherein the tenant is limited to using the designated set of cryptographic operations based at least in part on the virtual machine configuration.

20. A non-transitory computer-readable medium storing code for data processing, the code comprising instructions executable by a processor to:

receive, from an application associated with a tenant and at a virtual machine, a request to perform a version of a cryptographic operation for the application at the virtual machine;

determine, based at least in part on receiving the request, that the tenant is limited to using a designated set of cryptographic operations in accordance with a cryptographic operation validation policy associated with the tenant, and wherein the designated set of cryptographic operations are validated in accordance with the cryptographic operation validation policy;

identify a designated version of the cryptographic operation, from the designated set of cryptographic operations, that corresponds to the cryptographic operation indicated by the request and is different than the version of the cryptographic operation indicated by the request, the designated version of the cryptographic operation in satisfaction of the cryptographic operation validation policy associated with the tenant;

execute the designated version of the cryptographic operation at the virtual machine; and

return, to the application, a result of executing the designated version of the cryptographic operation.

Assignments (2)
CHANGE OF NAME Recorded Jan 29, 2025
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 070054/0372 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2021
From: PEDDADA, PRASAD; BRUNETTE, GLENN M., JR.
To: SALESFORCE.COM, INC.
Reel/Frame 058484/0810 →
Continuity (1)
Related Publication 20230195905A1 · Jun 22, 2023
References Cited (30)
US 10467422B1 · Roth · 2019 [cited by examiner]
US 11790092B1 · Chakrabarti · 2023 [cited by examiner]
US 20100192139A1 · Titzer · 2010 [cited by examiner]
US 20100199104A1 · Van Rijnswou · 2010 [cited by examiner]
US 20120260231A1 · Kawaba · 2012 [cited by examiner]
US 20120266229A1 · Simone · 2012 [cited by examiner]
US 20120278425A1 · Maxted · 2012 [cited by examiner]
US 20140165030A1 · Chevallier-Mames · 2014 [cited by examiner]
US 20140289535A1 · Gan · 2014 [cited by examiner]
US 20140330869A1 · Factor · 2014 [cited by examiner]
US 20150358161A1 · Kancharla · 2015 [cited by examiner]
US 20160048689A1 · Wiener · 2016 [cited by examiner]
US 20160182470A1 · Rubin · 2016 [cited by examiner]
US 20160323110A1 · Campagna · 2016 [cited by examiner]
US 20180114039A1 · Sion · 2018 [cited by examiner]
US 20180167293A1 · Manov · 2018 [cited by examiner]
US 20180255101A1 · Adam · 2018 [cited by examiner]
US 20190044927A1 · Sood · 2019 [cited by examiner]
US 20190215152A1 · Wang · 2019 [cited by examiner]
US 20190236316A1 · Watkins · 2019 [cited by examiner]
US 20200204463A1 · Guan · 2020 [cited by examiner]
US 20200210216A1 · Boilen · 2020 [cited by examiner]
US 20200310849A1 · Laurence · 2020 [cited by examiner]
US 20200334304A1 · Reddy Vennapusa · 2020 [cited by examiner]
US 20200349559A1 · Setia · 2020 [cited by examiner]
US 20210372343A1 · Dölker · 2021 [cited by examiner]
US 20220138349A1 · Saarinen · 2022 [cited by examiner]
US 20230027329A1 · Durham · 2023 [cited by examiner]
US 20230068521A1 · Wang · 2023 [cited by examiner]
US 20240113898A1 · Er · 2024 [cited by examiner]