IP Library Granted Patent US 12,368,703
Granted Patent B2
US 12,368,703 · App. 17/009,606 · Granted Jul 22, 2025

Proxy-less secure sockets layer (SSL) data inspection

Inventors: Justin M. Brady (Livermore, CA); Aleksandr Dubrovsky (San Mateo, CA); Boris Yanovsky (Saratoga, CA)
Assignee: SONICWALL INC.
H04L63/0823H04L9/321H04L9/3263H04L63/0281H04L63/0884H04L63/1408H04L63/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 12,368,703
App. No.
17/009,606
Granted
Jul 22, 2025
Kind
B2
Abstract

Some embodiments of proxy-less Secure Sockets Layer (SSL) data inspection have been presented. In one embodiment, a secured connection according to a secured network protocol between a client and a responder is setup via a gateway device, which is coupled between the client and the responder. The gateway device transparently intercepts data transmitted according to the secured network protocol between the client and the responder. Furthermore, the gateway device provides flow-control and retransmission of one or more data packets of the data without self-scheduling the packet retransmissions using timeouts and based on the packet retransmission logic of either the client-side or the responder side of the connection. The gateway device is further operable to perform security screening on the data.

Claims (72)

1. A method for establishing a proxy-less communication session, the method comprising:

performing a first key exchange of a first public key between a gateway device and a server;

performing a second key exchange of a second public key between the gateway device and a client device after the first key exchange;

receiving a data packet at the gateway device, wherein the data packet includes information encrypted at the server using the first public key;

decrypting the encrypted information included in the data packet received from the server, wherein the decrypted information is inspected in accordance with deep packet inspection by the gateway device;

generating a first certificate that includes the first public key and a set of attributes associated with the client device;

storing certificate details of the first certificate in gateway memory of the gateway device;

generating encrypted data in response to an indication the decrypted information passes inspection;

detecting when to transmit the encrypted data based on transmission information communicated from the server and the client device and verification of the set of attributes associated with the client device;

sending the first certificate and the encrypted data transparently from the gateway device to the client device, wherein sending the first certificate is transparent to the server, and wherein the encrypted data are decrypted at the client device using the second public key;

receiving a first acknowledgement from the client device acknowledging receipt of the encrypted data included in the data packet have been received by the gateway device;

sending a second acknowledgement from the gateway device to the server based on the receipt of the first acknowledgement from the client device, wherein sending the second acknowledgement is transparent to the client device, and wherein the second acknowledgement indicates that the data packet has been received, and the second acknowledgement is not sent to the server until after the first acknowledgement is received from the client device indicating that the encrypted data included in the data packet have been received at the client device;

generating a second certificate that is a modified copy of the first certificate, wherein a public key of the second certificate is different from a public key of the first certificate, and wherein a remaining portion of the second certificate is identical to a remaining portion of the first certificate; and

establishing the communication session between the client device and the server using the gateway device without a proxy based on an identification that the second certificate matches a previously trusted certificate, wherein the gateway device provides flow control of data transmitted between the client device and the server in the established communication session.

2. The method of claim 1 , further comprising receiving the first certificate from the server, and passing the second certificate to the client device.

3. The method of claim 1 , wherein the encrypted information corresponds to the data packet, and further comprising:

identifying that the data packet includes data associated with a security screening based on the inspection; and

executing the security screening using the gateway device based on the identification.

4. The method of claim 3 , wherein executing the security screening includes blocking a further data packet from being transmitted to the client device.

5. The method of claim 3 , wherein executing the security screening includes sending a warning message from the gateway device to the client device.

6. The method of claim 3 , wherein inspecting the decrypted information includes the deep packet inspection by the gateway device.

7. The method of claim 3 , wherein executing the security screening includes using the gateway device to filer content of data received from the server.

8. The method of claim 1 , further comprising:

intercepting one or more data packets transmitted according to a secured network protocol between the client device and the server while remaining transparent to the client device and the server;

maintaining a first set of state information for the client device, the first set of state information including a sequence number of a last packet received by the client device; and

retransmitting the last data packet corresponding to the sequence number to the client device based on the first set of state information.

9. The method of claim 8 , wherein retransmitting the last data packet is further based on a retransmission received from the server.

10. The method of claim 1 , further comprising attempting decryption of the information that is encrypted in the data packet based on detection of a connection to a known SSL TCP port.

11. The method of claim 1 , further comprising attempting decryption of the information that is encrypted in the data packet based on detection of a valid secure socket layer (SSL) Hello packet to a known port.

12. A non-transitory computer-readable storage medium having embodied thereon a program executable by a processor for implementing a method for establishing a proxy-less communication session, the method comprising:

performing a first key exchange of a first public key between a gateway device and a server;

performing a second key exchange of a second public key between the gateway device and a client device after the first key exchange;

receiving a data packet at the gateway device, wherein the data packet includes information encrypted at the server using the first public key;

decrypting the encrypted information included in the data packet received from the server, wherein the decrypted information is inspected in accordance with deep packet inspection by the gateway device;

generating a first certificate that includes the first public key and a set of attributes associated with the client device;

storing certificate details of the first certificate in gateway memory of the gateway device;

generating encrypted data in response to an indication the decrypted information passes inspection;

detecting when to transmit the encrypted data based on transmission information communicated from the server and the client device and verification of the set of attributes associated with the client device;

sending the first certificate and the encrypted data transparently from the gateway device to the client device, wherein sending the first certificate is transparent to the server, and wherein the encrypted data are decrypted at the client device using the second public key;

receiving a first acknowledgement from the client device acknowledging receipt of the encrypted data included in the data packet have been received by the gateway device;

sending a second acknowledgement from the gateway device to the server based on the receipt of the first acknowledgement from the client device, wherein sending the second acknowledgement is transparent to the client device, and wherein the second acknowledgement indicates that the data packet has been received, and the second acknowledgement is not sent to the server until after the first acknowledgement is received from the client device indicating that the encrypted data included in the data packet have been received at the client device;

generating a second certificate that is a modified copy of the first certificate, wherein a public key of the second certificate is different from a public key of the first certificate, and wherein a remaining portion of the second certificate is identical to a remaining portion of the first certificate; and

establishing the communication session between the client device and the server using the gateway device without a proxy based on an identification that the second certificate matches a previously trusted certificate, wherein the gateway device provides flow control of data transmitted between the client device and the server in the established communication session.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the encrypted information corresponds to the data packet, and further comprising instructions executable to:

identify that the data packet includes data associated with a security screening based on the inspection; and

execute the security screening using the gateway device based on the identification.

14. The non-transitory computer-readable storage medium of claim 13 , wherein executing the security screening includes blocking a further data packet from being transmitted to the client device.

15. The non-transitory computer-readable storage medium of claim 13 , wherein executing the security screening includes sending a warning message from the gateway device to the client device.

16. The non-transitory computer-readable storage medium of claim 13 , wherein executing the security screening includes using the gateway device to filter content of data received from the server.

17. The non-transitory computer-readable storage medium of claim 13 , wherein inspecting the decrypted information includes the deep packet inspection by the gateway device.

18. The non-transitory computer-readable storage medium of claim 12 , further comprising instructions executable to:

intercept one or more data packets transmitted according to a secured network protocol between the client device and the server while remaining transparent to the client device and the server;

maintain a first set of state information for the client device, the first set of state information including a sequence number of a last packet received by the client device; and

retransmit the last data packet corresponding to the sequence number to the client device based on the first set of state information.

19. The non-transitory computer-readable storage medium of claim 18 , wherein retransmitting the last data packet is also based on receiving a retransmission from the server.

20. A gateway apparatus for establishing a proxy-less communication session, the gateway apparatus comprising:

a memory;

a communication interface that communicates over a communication network to:

perform a first key exchange of a first public key with a server, and

perform a second key exchange of a second public key with a client device; and

a processor that executes instructions out of the memory to:

access a received data packet that includes information encrypted at the server using the first public key,

decrypt the encrypted information included in the data packet received from the server, wherein the decrypted information is inspected in accordance with deep packet inspection,

generate a first certificate that includes the first public key and a set of attributes associated with the client device,

store certificate details of the first certificate in the memory,

generate the encrypted data in response to an indication the decrypted information passes inspection, wherein the encrypted data are decrypted at the client device using the second public key, wherein the communication interface sends the first certificate including the encrypted data transparently to the client device, wherein sending the first certificate is also transparent to the server,

detect when to transmit the encrypted data based on transmission information communicated from the server and the client device and verification of the set of attributes associated with the client device, wherein the communication interface further:

sends the first certificate and the encrypted data transparently to the client device, wherein sending the first certificate is transparent to the server, and wherein the encrypted data is decrypted at the client device using the second public key,

receives a first acknowledgement from the client device acknowledging receipt of the encrypted data included in the data packet has been received, and

sends a second acknowledgement to the server based on the receipt of the first acknowledgement from the client device, wherein sending the second acknowledgement is transparent to the client device, and wherein the second acknowledgement indicating that the data packet has been received, and the second acknowledgement is not sent to the server until after the first acknowledgement is received from the client device indicating that the encrypted data included in the data packet has been received at the client device,

generate a second certificate for transmission to the client device that is a modified copy of the first certificate, wherein a public key of the second certificate is different from a public key of the first certificate, and wherein a remaining portion of the second certificate is identical to a remaining portion of the first certificate, and

establish the communication session between the client device and the server without a proxy based on an identification that the second certificate matches a previously trusted certificate, wherein flow control is provided for data transmitted between the client device and the server in the established communication session.

Assignments (8)
FIRST LIEN IP SUPPLEMENT Recorded Jun 30, 2025
From: SONICWALL US HOLDINGS INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 071777/0641 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2020
From: BRADY, JUSTIN M.; DUBROVSKY, ALEKSANDR; YANOVSKY, BORIS
To: SONICWALL, INC.
Reel/Frame 054165/0603 →
MERGER Recorded Oct 26, 2020
From: SONICWALL, INC.
To: PSM MERGER SUB (DELAWARE), INC.
Reel/Frame 054165/0817 →
CHANGE OF NAME Recorded Oct 26, 2020
From: PSM MERGER SUB (DELAWARE), INC.
To: SONICWALL, INC.
Reel/Frame 054166/0001 →
MERGER Recorded Oct 26, 2020
From: SONICWALL L.L.C.
To: DELL SOFTWARE INC.
Reel/Frame 054166/0533 →
CONVERSION AND NAME CHANGE Recorded Oct 26, 2020
From: SONICWALL, INC.
To: SONICWALL L.L.C.
Reel/Frame 054207/0710 →
CHANGE OF NAME Recorded Oct 26, 2020
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 054207/0926 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2020
From: QUEST SOFTWARE INC.
To: SONICWALL US HOLDINGS INC.
Reel/Frame 054208/0001 →