IP Library Granted Patent US 10,764,274
Granted Patent B2
US 10,764,274 · App. 15/685,768 · Granted Sep 1, 2020

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 10,764,274
App. No.
15/685,768
Granted
Sep 1, 2020
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 (69)

1. A method for inspecting data sent over a computer network, the method comprising:

establishing a secure connection between a client device and a responder device via a gateway;

intercepting a plurality of data packets sent between the responder device and the client device via the secure connection;

maintaining packet state information relating to the intercepted data packets at the gateway, wherein a first set of state information pertains to a first set of the intercepted packets from communications with the responder device, and wherein a second set of state information pertains to a second set of the intercepted packets from communications with the client device;

updating the first set of state information as each of the first set of intercepted packets are inspected and communicated to the responder device;

transmitting a current intercepted packet from the gateway via the secured connection to the client device, wherein the client device identifies the current packet as being sent directly from the responder device;

receiving a retransmission of the current packet from the responder device based on the responder device not receiving an acknowledgment from the client device;

transparently passing the acknowledgement to the responder device that was received from the client device;

updating the second set of state information as each of the second set of intercepted packets are inspected and communicated to the client device;

identifying that the packets from the responder device include data that is associated with a security function; and

executing the security function based on the identification that the data is associated with the security function.

2. The method of claim 1 , further comprising:

receiving a first certificate from the responder device;

generating a second certificate based on modifying the first certificate, wherein a public key of the second certificate is different from a public key of the first certificate and a remaining portion of the second certificate is identical to a remaining portion of the first certificate; and

establishing a new secured connection based on the second certificate.

3. The method of claim 2 , wherein establishing the new secured connection includes:

storing details of the first certificate in memory;

completing key exchange with the responder device; and

completing certificate and key exchange with the client device.

4. The method of claim 1 , wherein executing the security function comprises blocking further transmission of the data packets sent to the client device.

5. The method of claim 1 , wherein executing the security function comprises sending a warning message to the client device.

6. The method of claim 1 , wherein inspecting the intercepted data packets includes deep packet inspection.

7. The method of claim 1 , wherein executing the security function comprises filtering content of the intercepted data packets.

8. The method of claim 1 , wherein the current packet is encrypted, and further comprising determining when to attempt decryption of the encrypted packet.

9. The method of claim 8 , wherein determining when to attempt decryption of the encrypted packet is based on detection of a connection to a known port.

10. The method of claim 8 , wherein when to attempt decryption of the encrypted packet is based on detection of a valid secure socket layer (SSL) Hello packet.

11. The method of claim 8 , further comprising determining when to attempt re-encryption of the decrypted packet.

12. A non-transitory computer-readable storage medium having embodied thereon a program executable by a processor for implementing a method for inspecting data sent over a computer network, the method comprising:

establishing a secure connection between a client device and a responder device via a gateway;

intercepting a plurality of data packets sent between the responder device and the client device via the secure connection;

maintaining packet state information relating to the intercepted data packets at the gateway, wherein a first set of state information pertains to a first set of the intercepted packets from communications with the responder device and a second set of state information pertains to a second set of the intercepted packets from communications with the client device;

updating the first set of state information as each of the first set of intercepted packets are inspected and communicated to the responder device;

transmitting a current intercepted packet from the gateway via the secured connection to the client device, wherein the client device identifies the current packet as being sent directly from the responder device;

receiving a retransmission of the current packet from the responder device based on the responder device not receiving an acknowledgment from the client device;

transparently passing the acknowledgement to the responder device that was received from the client device;

updating the second set of state information is as each of the second set of intercepted packets are inspected and communicated to the client device;

identifying that the packets from the responder device include data that is associated with a security function; and

executing the security function based on the identification that the data is associated with the security function.

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

receive a first certificate from the responder device;

generate a second certificate based on modifying the first certificate, wherein a public key of the second certificate is different from a public key of the first certificate and a remaining portion of the second certificate is identical to a remaining portion of the first certificate; and

establish a new secured connection based on the second certificate.

14. The non-transitory computer-readable storage medium of claim 13 , wherein establishing the secured connection includes:

storing details of the first certificate in memory;

completing key exchange with the responder device; and

completing certificate and key exchange with the client device.

15. The non-transitory computer-readable storage medium of claim 12 , wherein executing the security function comprising blocking further transmission of the data packets sent to the client device.

16. The non-transitory computer-readable storage medium of claim 12 , wherein executing the security function comprises sending a warning message to the client device.

17. The non-transitory computer-readable storage medium of claim 12 , wherein inspecting the intercepted data packets includes deep packet inspection.

18. The non-transitory computer-readable storage medium of claim 12 , wherein executing the security function comprises filtering content of the intercepted data packets.

19. A gateway apparatus for inspecting data sent over a computer network, the apparatus comprising:

a communication interface that:

establishes a secure connection between a client device and a responder device via a gateway, and

receives a plurality of data packets sent between the responder device and the client device via the secure connection, wherein the plurality of data packets sent between the responder device and the client device via the secure connection are intercepted;

a memory; and

a processor that executes instructions out of the memory to:

maintain packet state information relating to the intercepted data packets at the gateway that includes a first set of state information that pertains to a first set of the intercepted packets from communications with the responder device and a second set of state information that pertains to a second set of the intercepted packets from communications with the client device,

update the first set of state information as each of the first set of intercepted packets are inspected and communicated in relation to the responder device, wherein the communication interface further:

transmits a current intercepted packet from the gateway via the secured connection to the client device, wherein the client device identifies the current packet as being sent directly from the responder device, and

receives a retransmission from the responder device based on the responder device not receiving an acknowledgment from the client device;

allow the acknowledgement received from the client device to be passed to the responder device transparently;

update the second set of state information as each of the second set of intercepted packets are inspected and communicated to the client device,

identify that the packets from the responder device include data that is associated with a security function, and

execute the security function based on the identification that the data is associated with the security function.

20. The apparatus of claim 19 , wherein:

the processor executes further instructions to generate a second certificate by modifying a first certificate, the generation of the second certificate causing:

the second certificate to include a public key of the second certificate that is different from a public key of the first certificate, and

a remaining portion of the second certificate to be identical to a remaining portion of the first certificate, and

the communication interface establishes a new secured connection based on the second certificate.

Assignments (11)
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 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS RECORDED AT RF 046321/0393 Recorded Jun 16, 2025
From: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
To: SONICWALL US HOLDINGS INC.
Reel/Frame 071625/0887 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: SONICWALL US HOLDINGS INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 046321/0393 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: SONICWALL US HOLDINGS INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 046321/0414 →
CHANGE OF NAME Recorded Feb 28, 2018
From: SONICWALL, INC.
To: SONICWALL L.L.C.
Reel/Frame 045473/0167 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2018
From: BRADY, JUSTIN M; DUBROVSKY, ALEKSANDR; YANOVSKY, BORIS
To: SONICWALL, INC.
Reel/Frame 045070/0687 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2018
From: QUEST SOFTWARE INC.
To: SONICWALL US HOLDINGS INC.
Reel/Frame 045473/0184 →
CHANGE OF NAME Recorded Feb 28, 2018
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 045473/0172 →
MERGER Recorded Feb 28, 2018
From: SONICWALL, INC.
To: PSM MERGER SUB (DELAWARE), INC.
Reel/Frame 045070/0691 →
CHANGE OF NAME Recorded Feb 28, 2018
From: PSM MERGER SUB (DELAWARE), INC.
To: SONICWALL, INC.
Reel/Frame 045070/0697 →
MERGER Recorded Feb 28, 2018
From: SONICWALL L.L.C.
To: DELL SOFTWARE INC.
Reel/Frame 045070/0741 →
Continuity (2)
Continuation 12497328 · Jul 2, 2009
Related Publication 20170374062A1 · Dec 28, 2017
Cited By (1)
US 12,368,703