IP Library Granted Patent US 11,374,764
Granted Patent B2
US 11,374,764 · App. 16/530,773 · Granted Jun 28, 2022

Clock-synced transient encryption

Inventors: Prashanth Kannan (San Mateo, CA); Prabhjot Singh (Union City, CA)
Assignee: salesforce.com, 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,374,764
App. No.
16/530,773
Granted
Jun 28, 2022
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 (40)

1. A security system comprising 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, transmitting, via the first channel, a seed value from the server system to a cache of a web browser operating on the client system;

processing a request for a transaction between the client system and the server system, the transaction being 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 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-dock random number being based on a designated clock accessible to the server and the client system; and

transmitting the encrypted data from the server system to the client system, the web browser being operable to access the seed value to decrypt the encrypted data using the transient encryption key.

2. The security system of claim 1 , 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.

3. The security system of claim 2 , 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.

4. The security system 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.

5. The security system of claim 1 , 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.

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

7. The security system 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.

8. The security system 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.

9. The security system of claim 8 , 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.

10. The security system of claim 1 , 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.

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

12. The security system of claim 1 , wherein:

the first channel is text message, an application that is separate from the web browser, an email, a telephone call, a QR code, a separate device such as a Universal Serial Bus (USB) stick.

13. A method comprising:

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

receiving a request for a transaction between the client system and the server system, the transaction being 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 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-dock random number being accessible to the server system and the client system, the synced-dock random number being based on a designated dock accessible to the server and the client system; and

transmitting the encrypted data from the server system to the client system, the web browser being operable to access the seed value to decrypt the encrypted data using the transient encryption key.

14. The method of claim 13 , 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.

15. The method of claim 14 , 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.

16. The method of claim 13 , 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.

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

18. 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, transmitting, via the first channel, a seed value from the server system to a cache of a web browser operating on the client system;

processing a request for a transaction between the client system and the server system, the transaction being 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 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 server system to the client system, the web browser being operable to access the seed value to decrypt the encrypted data using the transient encryption key.

19. The computer program product of claim 18 , the instructions further configurable to cause:

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.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0427 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2019
From: KANNAN, PRASHANTH; SINGH, PRABHJOT
To: SALESFORCE.COM, INC.
Reel/Frame 049947/0031 →