IP Library Granted Patent US 11,438,178
Granted Patent B2
US 11,438,178 · App. 16/820,489 · Granted Sep 6, 2022

Secure session capability using public-key cryptography without access to the private key

Inventors: Sébastien Andreas Henry Pahl (San Francisco, CA); Matthieu Philippe François Tourne (San Francisco, CA); Piotr Sikora (San Francisco, CA); Ray Raymond Bejjani (San Francisco, CA); Dane Orion Knecht (San Francisco, CA); Matthew Browning Prince (San Francisco, CA); John Graham-Cumming (London, GB); Lee Hahn Holloway (Santa Cruz, CA); Nicholas Thomas Sullivan (San Francisco, CA); Albertus Strasheim (San Francisco, CA)
Assignee: CLOUDFLARE, INC.
H04L9/3263G06F21/33H04L9/083H04L9/0841H04L9/0844H04L9/14H04L9/3013H04L9/3247H04L63/0428H04L63/0485H04L63/061H04L63/0823H04L63/0869H04L63/164H04L63/166H04L63/205H04L67/141H04L67/42
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,438,178
App. No.
16/820,489
Granted
Sep 6, 2022
Kind
B2
Abstract

A server establishes a secure session with a client device where a private key used in the handshake when establishing the secure session is stored in a different server. During the handshake procedure, the server receives a premaster secret that has been encrypted using a public key bound with a domain for which the client device is attempting to establish a secure session with. The server transmits the encrypted premaster secret to the different server for decryption along with other information necessary to compute a master secret. The different server decrypts the encrypted premaster secret, generates the master secret, and transmits the master secret to the server. The server receives the master secret and continues with the handshake procedure including generating one or more session keys that are used in the secure session for encrypting and decrypting communication between the client device and the server.

Claims (56)

1. A method for establishing a secure session with a client device, comprising:

receiving, by a first server, a message including at least some of a negotiated set of cryptographic parameters from a second server, wherein the received at least some of the negotiated set of cryptographic parameters includes a plurality of random values exchanged between the client device and the second server during a handshake procedure initiated from a Client Hello message by the client device for establishing a secure session between the client device and the second server and an encrypted premaster secret included in a Client Key Exchange message of the handshake procedure from the client device to the second server, wherein the second server does not have access to a private key to decrypt the encrypted premaster secret, and wherein the second server is separate from the first server;

identifying the private key associated with a domain for which the client device is requesting the secure session;

decrypting, by the first server, the encrypted premaster secret using the identified private key;

generating a master secret using the decrypted premaster secret and the plurality of random values exchanged between the client device and the second server; and

transmitting, to the second server, the generated master secret, the generated master secret for generating a set of one or more session keys to be used in the secure session for encrypting and decrypting communications between the client device and the second server.

2. The method of claim 1 , wherein the first server and the second server are owned or operated by different entities.

3. The method of claim 1 , wherein the generated master secret is transmitted over a secure session between the first server and the second server.

4. The method of claim 3 , further comprising:

as part of establishing the secure session between the first server and the second server, receiving, by the first server, a client Certificate message that includes a digital certificate of the second server.

5. The method of claim 1 , wherein the plurality of random values exchanged between the client device and the second server includes a first random value selected by the client device and a second random value selected by the second server.

6. The method of claim 1 , further comprising:

receiving, by the first server, an indication of the domain for which the client device is requesting the secure session that is to be used by the first server to identify the private key.

7. The method of claim 1 , wherein identifying the private key associated with the domain in which the client device is requesting the secure session comprises:

receiving, from the second server, a fingerprint value generated using a fingerprint algorithm and a digital certificate for the domain for which the client device is requesting the secure session;

generating a fingerprint value for each of one or more digital certificates stored by the first server using the fingerprint algorithm;

identifying the digital certificate for the domain for which the client device is requesting the secure session having a generated fingerprint value matching the received fingerprint value; and

determining the private key associated with the identified digital certificate.

8. A non-transitory machine-readable storage medium that provides instructions that, when executed by a processor device, cause said processor device to perform operations for establishing a secure session with a client device comprising:

receiving, by a first server, a message including at least some of a negotiated set of cryptographic parameters from a second server, wherein the received at least some of the negotiated set of cryptographic parameters includes a plurality of random values exchanged between the client device and the second server during a handshake procedure initiated from a Client Hello message by the client device for establishing a secure session between the client device and the second server and an encrypted premaster secret included in a Client Key Exchange message of the handshake procedure from the client device to the second server, wherein the second server does not have access to a private key to decrypt the encrypted premaster secret, and wherein the second server is separate from the first server;

identifying the private key associated with a domain for which the client device is requesting the secure session;

decrypting, by the first server, the encrypted premaster secret using the identified private key;

generating a master secret using the decrypted premaster secret and the plurality of random values exchanged between the client device and the second server; and

transmitting, to the second server, the generated master secret, the generated master secret for generating a set of one or more session keys to be used in the secure session for encrypting and decrypting communications between the client device and the second server.

9. The non-transitory machine-readable storage medium of claim 8 , wherein the first server and the second server are owned or operated by different entities.

10. The non-transitory machine-readable storage medium of claim 8 , wherein the generated master secret is transmitted over a secure session between the first server and the second server.

11. The non-transitory machine-readable storage medium of claim 10 , further comprising:

as part of establishing the secure session between the first server and the second server, receiving, by the first server, a client Certificate message that includes a digital certificate of the second server.

12. The non-transitory machine-readable storage medium of claim 8 , wherein the plurality of random values exchanged between the client device and the second server includes a first random value selected by the client device and a second random value selected by the second server.

13. The non-transitory machine-readable storage medium of claim 8 , further comprising:

receiving, by the first server, an indication of the domain for which the client device is requesting the secure session that is to be used by the first server to identify the private key.

14. The non-transitory machine-readable storage medium of claim 8 , wherein identifying the private key associated with the domain in which the client device is requesting the secure session comprises:

receiving, from the second server, a fingerprint value generated using a fingerprint algorithm and a digital certificate for the domain for which the client device is requesting the secure session;

generating a fingerprint value for each of one or more digital certificates stored by the first server using the fingerprint algorithm;

identifying the digital certificate for the domain for which the client device is requesting the secure session having a generated fingerprint value matching the received fingerprint value; and

determining the private key associated with the identified digital certificate.

15. An apparatus for establishing a secure session with a client device, comprising:

a processor device;

a non-transitory machine-readable storage medium coupled with the processor device that stores instructions that, when executed by the processor device, causes said processor device to perform the following:

receive, by a first server, a message including at least some of a negotiated set of cryptographic parameters from a second server, wherein the received at least some of the negotiated set of cryptographic parameters includes a plurality of random values exchanged between the client device and the second server during a handshake procedure initiated from a Client Hello message by the client device for establishing a secure session between the client device and the second server and an encrypted premaster secret included in a Client Key Exchange message of the handshake procedure from the client device to the second server, wherein the second server does not have access to a private key to decrypt the encrypted premaster secret, and wherein the second server is separate from the first server;

identify the private key associated with a domain for which the client device is requesting the secure session;

decrypt, by the first server, the encrypted premaster secret using the identified private key;

generate a master secret using the decrypted premaster secret and the plurality of random values exchanged between the client device and the second server; and

transmit, to the second server, the generated master secret, the generated master secret for generating a set of one or more session keys to be used in the secure session for encrypting and decrypting communications between the client device and the second server.

16. The apparatus of claim 15 , wherein the first server and the second server are owned or operated by different entities.

17. The apparatus of claim 15 , wherein the generated master secret is transmitted over a secure session between the first server and the second server.

18. The apparatus of claim 17 , wherein the instructions further cause said processor to perform the following:

as part of establishing the secure session between the first server and the second server, receive, by the first server, a client Certificate message that includes a digital certificate of the second server.

19. The apparatus of claim 15 , wherein the plurality of random values exchanged between the client device and the second server includes a first random value selected by the client device and a second random value selected by the second server.

20. The apparatus of claim 15 , wherein the instructions further cause said processor to perform the following:

receive, by the first server, an indication of the domain for which the client device is requesting the secure session that is to be used by the first server to identify the private key.

21. The apparatus of claim 15 , wherein identifying the private key associated with the domain in which the client device is requesting the secure session further causes said processor to perform the following:

receive, from the second server, a fingerprint value generated using a fingerprint algorithm and a digital certificate for the domain for which the client device is requesting the secure session;

generate a fingerprint value for each of one or more digital certificates stored by the first server using the fingerprint algorithm;

identify the digital certificate for the domain for which the client device is requesting the secure session having a generated fingerprint value matching the received fingerprint value; and

determine the private key associated with the identified digital certificate.

Assignments (2)
SECURITY INTEREST Recorded May 20, 2024
From: CLOUDFLARE, INC.
To: CITIBANK, N.A.
Reel/Frame 067472/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2020
From: PAHL, SÉBASTIEN ANDREAS HENRY; TOURNE, MATTHIEU PHILIPPE FRANÇOIS; SIKORA, PIOTR; BEJJANI, RAY RAYMOND; KNECHT, DANE ORION; PRINCE, MATTHEW BROWNING; GRAHAM-CUMMING, JOHN; HOLLOWAY, LEE HAHN; SULLIVAN, NICHOLAS THOMAS; STRASHEIM, ALBERTUS
To: CLOUDFLARE, INC.
Reel/Frame 052129/0418 →
Continuity (5)
Continuation 16019109 · Jun 26, 2018
Continuation 15271190 · Sep 20, 2016
Continuation 14675385 · Mar 31, 2015
Continuation 14248253 · Apr 8, 2014
Related Publication 20200280452A1 · Sep 3, 2020
Cited By (1)
US 12,549,360