IP Library Granted Patent US 11,991,157
Granted Patent B2
US 11,991,157 · App. 18/092,750 · Granted May 21, 2024

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); Albertus Strasheim (San Francisco, CA)
Assignee: CLOUDFLARE, INC.
H04L63/0435G06F21/335H04L9/0825H04L9/0841H04L9/0869H04L9/3263H04L63/0442H04L63/061H04L63/0823H04L63/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,991,157
App. No.
18/092,750
Granted
May 21, 2024
Kind
B2
Abstract

A server establishes a secure session with a client device where a private key used in the handshake is stored in a different server. An encrypted connection is established between the first server and the second server. A message is received from the client device that initiates a procedure to establish the secure session between the client device and the first server. As part of this procedure, the first server transmits over the encrypted connection a request to the second server to use the private key. The first server receives, over the encrypted connection, a response to the request that includes a result of the use of the private key. The first server uses the result during the procedure to establish the secure session.

Claims (43)

1. A method in a first server for establishing a secure session with a client device where a private key used for the secure session is stored in a second server, the method comprising:

establishing an encrypted connection between the first server and the second server;

receiving a set of one or more messages from the client device for establishing the secure session between the client device and the first server, wherein the set of one or more messages includes information for generation of a premaster secret;

generating a set of cryptographic parameters;

transmitting over the encrypted connection between the first server and the second server and as part of establishing the secure session between the client device and the first server, a request to the second server to use the private key, wherein the request includes the set of cryptographic parameters;

receiving, from the second server over the encrypted connection, a response to the request to use the private key, the response including a signature using the private key over at least the set of cryptographic parameters;

transmitting, to the client device, the set of cryptographic parameters and the signature;

generating, at the first server, the premaster secret using at least part of the generated set of cryptographic parameters and the information for generation of the premaster secret included in the set of one or more messages received from the client device;

generating a master secret using the generated premaster secret; and

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

2. The method of claim 1 , wherein the encrypted connection is a Virtual Private Network (VPN) connection.

3. The method of claim 1 , wherein the encrypted connection is a different secure session between the first server and the second server.

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

5. The method of claim 1 , wherein the second server is configured to accept connections only over the encrypted connection from the first server.

6. An apparatus, comprising:

a first server to include a set of one or more processors and a set of one or more non-transitory computer-readable storage mediums that is to store instructions, that when executed by the set of processors, cause the set of processors to perform operations for establishing a secure session with a client device where a private key used for the secure session is stored in a second server, the operations including:

establish an encrypted connection between the first server and the second server;

receive a set of one or more messages from the client device for establishing the secure session between the client device and the first server, wherein the set of one or more messages is to include information for generation of a premaster secret;

generate a set of cryptographic parameters;

transmit over the encrypted connection between the first server and the second server and as part of establishment of the secure session between the client device and the first server, a request to the second server to use the private key, wherein the request includes the set of cryptographic parameters;

receive, from the second server over the encrypted connection, a response to the request to use the private key, the response to include a signature using the private key over at least the set of cryptographic parameters;

transmit, to the client device, the set of cryptographic parameters and the signature;

generate, at the first server, the premaster secret using at least part of the generated set of cryptographic parameters and the information for generation of the premaster secret included in the set of one or more messages received from the client device;

generate a master secret using the generated premaster secret; and

generate, using the generated master secret, of a set of one or more session keys to be used in the secure session for encrypting and decrypting communication between the client device and the first server.

7. The apparatus of claim 6 , wherein the encrypted connection is a Virtual Private Network (VPN) connection.

8. The apparatus of claim 6 , wherein the encrypted connection is a different secure session between the first server and the second server.

9. The apparatus of claim 6 , wherein the first server and the second server are owned by different entities.

10. The apparatus of claim 6 , wherein the second server is configured to accept connections only over the encrypted connection from the first server.

11. A non-transitory machine-readable storage medium that provides instructions that, when executed by a processor of a first server for establishing a secure session with a client device where a private key used for the secure session is stored in a second server, causes said processor to perform operations comprising:

establishing an encrypted connection between the first server and the second server;

receiving a set of one or more messages from the client device for establishing the secure session between the client device and the first server, wherein the set of one or more messages includes information for generation of a premaster secret;

generating a set of cryptographic parameters;

transmitting over the encrypted connection between the first server and the second server and as part of establishing the secure session between the client device and the first server, a request to the second server to use the private keys wherein the request includes the set of cryptographic parameters;

receiving, from the second server over the encrypted connection, a response to the request to use the private key the response including a signature using the private key over at least the set of cryptographic parameters;

transmitting, to the client device, the set of cryptographic parameters and the signature;

generating, at the first server, the premaster secret using at least part of the generated set of cryptographic parameters and the information for generation of the premaster secret included in the set of one or more messages received from the client device;

generating a master secret using the generated premaster secret; and

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

12. The non-transitory machine-readable storage medium of claim 11 , wherein the encrypted connection is a Virtual Private Network (VPN) connection.

13. The non-transitory machine-readable storage medium of claim 11 , wherein the encrypted connection is a different secure session between the first server and the second server.

14. The non-transitory machine-readable storage medium of claim 11 , wherein the first server and the second server are owned by different entities.

15. The non-transitory machine-readable storage medium of claim 11 , wherein the second server is configured to accept connections only over the encrypted connection from the first server.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2024
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; STRASHEIM, ALBERTUS
To: CLOUDFLARE, INC.
Reel/Frame 067498/0897 →
SECURITY INTEREST Recorded May 20, 2024
From: CLOUDFLARE, INC.
To: CITIBANK, N.A.
Reel/Frame 067472/0246 →
Continuity (6)
Continuation 17036988 · Sep 29, 2020
Continuation 16159437 · Oct 12, 2018
Division 15413187 · Jan 23, 2017
Continuation 14315241 · Jun 25, 2014
Continuation 13788784 · Mar 7, 2013
Related Publication 20230224290A1 · Jul 13, 2023