IP Library Granted Patent US 11,470,060
Granted Patent B2
US 11,470,060 · App. 16/704,372 · Granted Oct 11, 2022

Private exchange of encrypted data over a computer network

Inventors: Eugene Lapidous (Saratoga, CA); Swair Mehta (Half Moon Bay, CA); Maxim Molchanov (Mountain View, CA); Eduardo Panisset (San Jose, CA)
Assignee: Twingate, Inc.
H04L63/0442G06F9/45558H04L9/0869H04L63/123H04L63/166G06F2009/45587G06F2009/45595
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,470,060
App. No.
16/704,372
Granted
Oct 11, 2022
Kind
B2
Abstract

A handshake message includes a field containing random data that is filled with data used to derive keying material on the source and destination computers. The data may be elliptic curve data and may include a representation of the data used by the destination computer to verify that elliptic curve data is present. The data may additionally include data for deriving second keying material on a second destination computer that the first destination computer forwards to the second computer, receives a response, and returns data from the response as part of its own handshake message.

Claims (45)

1. A method of encrypting data exchange over a computer network, the method comprising:

composing, by a first computer, a first outgoing message in a first format, the first format including, a first portion defined to contribute to derivation of a first keying material, a second portion enabling detection and validation of the first portion, and a forwarding address;

composing, by the first computer, a second outgoing message in a second format, the second format being defined to contribute to derivation of a second keying material, wherein composing the second outgoing message includes embedding the first portion and the second portion into content of the second outgoing message while preserving the second format of the second outgoing message;

sending, by the first computer to a second computer over the computer network at a first address different from the forwarding address, the second outgoing message containing the first portion and the second portion of the first outgoing message;

receiving, by the first computer from the second computer over the computer network, at least one incoming message containing data in at least one third format, the at least one third format being defined to contribute to derivation of the first keying material and being received by the second computer from the forwarding address;

deriving the first keying material while using the first portion of the first outgoing message and the data in the at least one third format as two of a plurality of first inputs; and

sending, by the first computer to the second computer over the computer network, data encrypted using the first keying material.

2. The method of claim 1 , wherein embedding the first portion and the second portion of the first outgoing message into the content of the second outgoing message while preserving the second format comprises including the first portion and the second portion of the first outgoing message inside at least one data field of the second outgoing message.

3. The method of claim 1 , where the second format is defined in accordance with Transport Level Security (TLS) protocol, while the second outgoing message is a message according to TLS protocol selected from a group consisting of Client Hello, Client Finished, Server Hello and Server Finished.

4. The method of claim 3 , wherein the first portion and the second portion of the first outgoing message is embedded into at least one field of the second outgoing message selected from a group consisting of Client Random, Server Random, Session ID and Session Ticket.

5. The method of claim 1 , wherein the first portion includes a value derived from only one coordinate of an elliptic curve point, without including a value derived from another coordinate of the elliptic curve point.

6. The method of claim 1 , wherein the first keying material is derived only from the first portion in the first outgoing message and the data in the at least one third format, while a size of the first outgoing message does not exceed 32 bytes.

7. The method of claim 1 , wherein the second outgoing message comprises a session resumption message and embedding the first portion and the second portion of the first outgoing message comprises including the first portion and the second portion of the first outgoing message in place of the session resumption message.

8. The method of claim 1 , further comprising:

receiving, by the first computer, an incoming message containing data in at least one fourth format, the at least one fourth format being defined to contribute to derivation of the second keying material.

9. The method of claim 8 , where the data in the at least one third format and the data in the at least one fourth format are both received in the incoming message.

10. The method of claim 8 , further comprising, after receiving the data in the at least one fourth format:

deriving, by the first computer, the second keying material while using the first portion of the first outgoing message and the data in the at least one fourth format as two of a plurality of second inputs;

sending, by the first computer to the second computer over the computer network, data encrypted using the second keying material;

sending, by the first computer to the second computer over the computer network, the data encrypted using the first keying material, wherein the data encrypted using the first keying material is forwarded by the second computer to a third computer, different from the second computer.

11. A method of encrypting data exchange over a computer network, the method comprising:

receiving, by a first computer from a second computer over the computer network, at least one incoming message containing a first data in a first format, the first format being defined to contribute to derivation of a first keying material, and a second data in a second format, the second format including a first portion defined to contribute to derivation of a second keying material, a second portion enabling detection and validation of the first portion, and a forwarding address, wherein the second data in the second format is included as a part of the first data in the first format;

extracting, by the first computer, at least part of the second data from the first data;

transmitting, by the first computer, the at least the part of the second data to the forwarding address;

receiving, by the first computer from the forwarding address, the second keying material:

transmitting, by the first computer, the second keying material to the second computer over the computer network:

receiving, by the first computer, packets encrypted using the second keying material; and

passing, by the first computer, the packets encrypted using the second keying material to the forwarding address without decrypting the packets.

12. The method of claim 11 , further comprising:

composing, by the first computer, at least one outgoing message with a third data in a third format, the third format being defined to contribute to derivation of the second keying material;

sending, by the first computer to the second computer over the computer network, the at least one outgoing message with the third data; and

receiving, by the first computer from the second computer, fourth data encrypted using the second keying material.

13. The method of claim 11 , where the first format is defined in accordance with Transport Level Security (TLS) protocol, while the at least one incoming message is selected from a group consisting of messages according to the TLS protocol including Client Hello, Client Finished, Server Hello and Server Finished.

14. The method of claim 13 , wherein the first data is included as at least part of a field selected from a group consisting of Client Random, Server Random, Session ID and Session Ticket.

15. The method of claim 12 , wherein each of the first portion and the third data include values derived from only one coordinate of an elliptic curve point, without including a value derived from another coordinate of the elliptic curve point.

16. The method of claim 12 , wherein the second keying material is derived only from the second and the third data, while the size of both the second and the third data does not exceed 32 bytes.

17. The method of claim 11 , wherein the first data comprises a session resumption data, further comprising:

extracting, by the first computer, at least part of the second data from the first data without using the first data for session resumption.

18. The method of claim 11 , further comprising:

deriving, by the first computer, the first keying material while using at least part of the first data as one of inputs used to derive the first keying material; and

sending, by the first computer to the second computer over the computer network, data encrypted using the first keying material in addition to the first data encrypted using the second keying material.

19. The method of claim 11 , further comprising:

deriving the second keying material on a third computer at the forwarding address without deriving the second keying material on the second computer.

20. The method of claim 19 , wherein transmitting, by the first computer, the at least the part of the second data to the forwarding address comprises:

sending the at least the part of the second data to the third computer without providing an address of the second computer to the third computer such that privacy of the second computer is preserved.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE SERIAL N. 15/597,036 PREVIOUSLY RECORDED AT REEL: 053245 FRAME: 0874. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 10, 2023
From: PANGO INC.
To: TWINGATE HOLDINGS INC.
Reel/Frame 063027/0894 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE SERIAL NO. 15/597,036 PREVIOUSLY RECORDED AT REEL: 053257 FRAME: 0637. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 10, 2023
From: TWINGATE HOLDINGS INC.
To: TWINGATE INC.
Reel/Frame 063141/0210 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2020
From: TWINGATE HOLDINGS INC.
To: TWINGATE INC.
Reel/Frame 053257/0637 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2020
From: PANGO INC.
To: TWINGATE HOLDINGS INC.
Reel/Frame 053245/0874 →
CHANGE OF NAME Recorded Jan 10, 2020
From: ANCHORFREE INC.
To: PANGO INC.
Reel/Frame 051566/0680 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2019
From: LAPIDOUS, EUGENE; MEHTA, SWAIR; MOLCHANOV, MAXIM; PANISSET, EDUARDO
To: PANGO INC.
Reel/Frame 051190/0924 →