IP Library Granted Patent US 11,863,685
Granted Patent B2
US 11,863,685 · App. 17/804,206 · Granted Jan 2, 2024

Clock-synced transient encryption

Inventors: Prashanth Kannan (San Mateo, CA); Prabhjot Singh (Union City, CA)
Assignee: Salesforce, Inc.
H04L9/3239H04L9/0819H04L9/0869H04L63/166
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 11,863,685
App. No.
17/804,206
Granted
Jan 2, 2024
Kind
B2
Abstract

A request for a transaction between a client system and a server system may be processed. The transaction may be associated with transmission of data between the client system and the server system. The data may be encrypted using a transient encryption key to form encrypted data. The transient encryption key may be a synced-clock random number configured to automatically change when a designated time interval elapses. The encrypted data may be transmitted between the client system and the server system.

Claims (38)

1. A method comprising:

after establishing a first channel between a client system and a server system as a trusted channel, receiving, via the first channel from the server system, a seed value in a cache of a web browser operating on the client system;

transmitting a request for a transaction associated with transmission of data, via the web browser, between the client system and the server system;

using a transient encryption key generated based on the seed value, using one or more processors, encrypting, via the web browser by accessing the seed value, the data to form encrypted data, the transient encryption key being a synced-clock random number configured to automatically change when a designated time interval elapses, the synced-clock random number being accessible to the server system and the client system, the synced-clock random number being based on a designated clock accessible to the server and the client system; and

transmitting the encrypted data from the client system to the server system.

2. The method of claim 1 , the method further comprising:

generating, based on the seed value and a time-stamp associated with the designated clock, the transient encryption key; and

evaluating that the seed has been applied correctly by processing a checksum of an initial value of the transient encryption key received from the client system.

3. The method of claim 2 , wherein generating the transient encryption key comprises applying, using the seed value and the time-stamp, a secure hash algorithm (SHA), the time-stamp being based on the designated clock.

4. The method of claim 1 , the method further comprising:

applying, before transmitting the encrypted data between the client system and the server system, transport layer security (TLS) encryption to the encrypted data.

5. The method of claim 1 , wherein the encrypted data is transmitted between the client system and the server system without TLS encryption.

6. The method of claim 1 , wherein encryption of the data occurs at an application layer associated with a web application being interacted with by a user of the client system, the web application being hosted by the server system.

7. The method of claim 1 , wherein encryption of the data occurs at an application layer associated with a mobile application being interacted with by a user of the client system, the client system being a mobile device.

8. The method of claim 7 , wherein the mobile application comprises a customer relationship management (CRM) platform and/or a social networking system provided to a plurality of tenant organizations via an on-demand computing environment.

9. A security system implemented by one or more hardware processors, the security system being configurable to cause:

after establishing a first channel between a client system and a server system as a trusted channel, causing storage of, via the first channel from the server system, a seed value in a cache of a web browser operating on the client system;

processing a request for a transaction associated with transmission of data, via the web browser, between the client system and the server system;

using a transient encryption key generated based on the seed value, using one or more processors, causing encryption of, via the web browser by accessing the seed value, the data to form encrypted data, the transient encryption key being a synced-clock random number configured to automatically change when a designated time interval elapses, the synced-clock random number being accessible to the server system and the client system, the synced-clock random number being based on a designated clock accessible to the server and the client system; and

causing transmission of the encrypted data from the client system to the server system.

10. The security system of claim 9 , the security system further configurable to cause:

generating, based on the seed value and a time-stamp associated with the designated clock, the transient encryption key.

11. The security system of claim 10 , the security system further configurable to cause:

evaluating that the seed has been applied correctly by processing a checksum of an initial value of the transient encryption key received from the client system.

12. The security system of claim 10 , wherein generating the transient encryption key comprises applying, using the seed value and the time-stamp, a secure hash algorithm (SHA), the time-stamp being based on the designated clock.

13. The security system of claim 9 , the security system further configurable to cause:

applying, before transmitting the encrypted data between the client system and the server system, transport layer security (TLS) encryption to the encrypted data.

14. The security system of claim 9 , wherein the encrypted data is transmitted between the client system and the server system without TLS encryption.

15. The security system of claim 9 , wherein encryption of the data occurs at an application layer associated with a web application being interacted with by a user of the client system, the web application being hosted by the server system.

16. The security system of claim 9 , wherein encryption of the data occurs at an application layer associated with a mobile application being interacted with by a user of the client system, the client system being a mobile device.

17. The security system of claim 16 , wherein the mobile application comprises a customer relationship management (CRM) platform and/or a social networking system provided to a plurality of tenant organizations via an on-demand computing environment.

18. The security system of claim 9 , wherein encrypting the data to form encrypted data is performed by one or more of: a browser plug-in operating at the client system, a web browser operating at the client system, or an application operating at the client system.

19. The security system of claim 18 , wherein the security system is configured to automatically intercept further transactions between the client system and the server system.

20. A computer program product comprising a non-transitory computer-readable medium storing computer-readable program code capable of being executed by one or more processors when retrieved from the non-transitory computer-readable medium, the program code comprising instructions configurable to cause:

after establishing a first channel between a client system and a server system as a trusted channel, causing storage of, via the first channel from the server system, a seed value in a cache of a web browser operating on the client system;

processing a request for a transaction associated with transmission of data, via the web browser, between the client system and the server system;

using a transient encryption key generated based on the seed value, using one or more processors, causing encryption of, via the web browser by accessing the seed value, the data to form encrypted data, the transient encryption key being a synced-clock random number configured to automatically change when a designated time interval elapses, the synced-clock random number being accessible to the server system and the client system, the synced-clock random number being based on a designated clock accessible to the server and the client system; and

causing transmission of the encrypted data from the client system to the server system.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0638 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2023
From: KANNAN, PRASHANTH; SINGH, PRABHJOT
To: SALESFORCE.COM, INC.
Reel/Frame 062318/0836 →
Continuity (2)
Continuation 16530773 · Aug 2, 2019
Related Publication 20220286292A1 · Sep 8, 2022