IP Library Granted Patent US 11,516,205
Granted Patent B2
US 11,516,205 · App. 16/352,735 · Granted Nov 29, 2022

Managing decryption of network flows through a network appliance

Inventors: Manish Pathak (San Jose, CA); Kishor Joshi (Milpitas, CA); Murali Bommana (Fremont, CA)
Assignee: Gigamon Inc.
H04L63/0823H04L43/0876H04L61/5007H04L67/568
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,516,205
App. No.
16/352,735
Granted
Nov 29, 2022
Kind
B2
Abstract

A network appliance receives a communication from a client device that includes a request to establish a network connection to a server. The network appliance establishes, in response to the communication, a single connection between the network appliance and the server based on application of a policy that causes the network appliance to determine not to decrypt data transmitted between the client device and the server. The network appliance transmits encrypted data between the client device and the server over the single connection.

Claims (84)

1. A method comprising:

receiving, at a network appliance from a client device, a communication that includes a request to establish a network connection to a server;

prior to initiating a network connection between the network appliance and the server:

accessing, by the network appliance, a server certificate issued by the server, wherein the accessing includes:

querying a server certificate cache at the network appliance using a server name indication (SNI) extracted from the communication received from the client device, and

responsive to the querying of the server certificate cache using the extracted SNI not returning the server certificate, extracting a socket address from the communication received from the client device and querying the server certificate cache using the extracted socket address;

applying a policy to the server certificate, by the network appliance, the policy indicative of whether to decrypt data transmitted between the client device and the server; and

determining based on the application of the policy whether to decrypt the data transmitted between the client device and the server;

responsive to a determination, based on application of the policy, not to decrypt the data transmitted between the client device and the server, establishing, by the network appliance, only a single connection between the network appliance and the server; and

transmitting the data between the client device and the server over the single connection.

2. The method of claim 1 , further comprising:

querying a cache maintained by the network appliance for the server certificate;

responsive to determining the server certificate is not stored in the cache, transmitting the communication from the client to the server;

receiving the server certificate from the server in response to transmitting the communication from the client to the server; and

storing the received server certificate in the cache.

3. The method of claim 1 , further comprising:

responsive to determining, based on the application of the policy, to decrypt the data transmitted between the client device and the server, transmitting the communication from the client to the server.

4. The method of claim 1 , further comprising:

after establishing the single connection between the network appliance and the server, receiving a new server certificate from the server; and

responsive to receiving the new server certificate, replacing the stored server certificate at the network appliance with the new server certificate.

5. The method of claim 1 , wherein the server comprises a proxy device between the network appliance and one or more data sources that serve data requested by the client device, and wherein applying the policy comprises:

determining not to decrypt the data transmitted between the client device and the proxy device responsive to the server certificate not being signed by the proxy device; and

determining to decrypt the data transmitted between the client device and the proxy device responsive to the server certificate being signed by the proxy device.

6. The method of claim 1 , wherein applying the policy comprises:

determining not to decrypt the data transmitted between the client device and the server responsive to the server certificate being self-signed by the server; and

determining to decrypt the data transmitted between the client device and the server responsive to the server certificate not being self-signed by the server.

7. The method of claim 1 , wherein accessing the server certificate further comprises:

responsive to the query of the server certificate cache using the extracted socket address not returning the server certificate, extracting a source internet protocol (IP) address, a destination IP address, and a destination port from the communication received from the client device; and

querying the server certificate cache using the source IP address, destination IP address, and destination port.

8. A method comprising:

receiving, at a network appliance, a communication from a client device that includes a request to establish a network connection to a server;

accessing, by the network appliance, a server certificate issued by the server, wherein the accessing includes:

querying a server certificate cache at the network appliance using a server name indication (SNI) extracted from the communication received from the client device, and

responsive to the querying of the server certificate cache using the extracted SNI not returning the server certificate, extracting a socket address from the communication received from the client device and querying the server certificate cache using the extracted socket address;

establishing, by the network appliance in response to receiving the communication, only a single connection between the network appliance and the server based on application of a policy to the accessed server certificate, prior to initiating the single connection, that causes the network appliance to determine not to decrypt data transmitted between the client device and the server prior to initiating the single connection; and

transmitting encrypted data between the client device and the server over the single connection.

9. The method of claim 8 , wherein the server comprises a proxy device between the network appliance and one or more data sources that serve data requested by the client device, and wherein application of the policy causes the network appliance to determine not to decrypt the data transmitted between the client device and the proxy device responsive to the server certificate not being signed by the proxy device.

10. The method of claim 8 , wherein application of the policy causes the network appliance to determine not to decrypt the data transmitted between the client device and the server responsive to the server-certificate being self-signed by the server.

11. The method of claim 8 , wherein accessing the server certificate further comprises:

responsive to the query of the server certificate cache using the extracted socket address not returning the server certificate, extracting a source internet protocol (IP) address, a destination IP address, and a destination port from the communication received from the client device; and

querying the server certificate cache using the source IP address, destination IP address, and destination port.

12. A network appliance comprising:

a plurality of network ports;

a processor coupled to the plurality of network ports; and

a memory storing computer program instructions, execution of which by the processor causes the network appliance to:

receive a communication from a client that includes a request to establish a network connection to a server;

prior to initiating a network connection between the network appliance and the server:

access a server certificate issued by the server and stored in the memory, wherein the accessing includes:

querying a server certificate cache at the network appliance using a server name indication (SNI) extracted from the communication received from the client device, and

responsive to the querying of the server certificate cache using the extracted SNI not returning the server certificate, extracting a socket address from the communication received from the client device and querying the server certificate cache using the extracted socket address;

apply a policy to the server certificate, the policy when applied outputting a determination of whether to decrypt data transmitted between the client device and the server; and

determine based on the application of the policy whether to decrypt the data transmitted between the client device and the server;

responsive to determining, based on the application of the policy, not to decrypt the data transmitted between the client device and the server, establish a single connection between the network appliance and the server; and

transmit the data between the client device and the server over the single connection.

13. The network appliance of claim 12 , wherein the computer program instructions further cause the processor to:

query a cache at the network appliance for the server certificate;

responsive to determining the server certificate is not stored in the cache, transmit the communication from the client to the server;

receive the server certificate from the server in response to transmitting the communication from the client to the server; and

store the received server certificate in the cache.

14. The network appliance of claim 12 , wherein the computer program instructions further cause the processor to:

after establishing the single connection between the network appliance and the server, receive a new server certificate from the server; and

responsive to receiving the new server certificate, replace the stored server certificate at the network appliance with the new server certificate.

15. The network appliance of claim 12 , wherein the server comprises a proxy device between the network appliance and one or more data sources that serve data requested by the client device, and wherein applying the policy comprises:

determine not to decrypt the data transmitted between the client device and the proxy device responsive to the server certificate not being signed by the proxy device; and

determine to decrypt the data transmitted between the client device and the proxy device responsive to the server certificate being signed by the proxy device.

16. The network appliance of claim 12 , wherein applying the policy comprises:

determine not to decrypt the data transmitted between the client device and the server responsive to the server certificate being self-signed by the server; and

determine to decrypt the data transmitted between the client device and the server responsive to the server certificate not being self-signed by the server.

17. The network appliance of claim 12 , wherein accessing the server certificate further comprises:

responsive to the query of the server certificate cache using the extracted socket address not returning the server certificate, extracting a source internet protocol (IP) address, a destination IP address, and a destination port from the communication received from the client device; and

querying the server certificate cache using the source IP address, destination IP address, and destination port.

18. The network appliance of claim 12 , further comprising a plurality of instrument ports each coupled to an instrument configured to monitor network traffic.

19. A network appliance comprising:

a processor; and

a memory storing computer program instructions, the computer program instructions when executed by the processor causing the processor to:

receive a communication from a client device that includes a request to establish a network connection to a server;

access a server certificate issued by the server, wherein the accessing includes:

querying a server certificate cache at the network appliance using a server name indication (SNI) extracted from the communication received from the client device, and

responsive to the querying of the server certificate cache using the extracted SNI not returning the server certificate, extracting a socket address from the communication received from the client device and querying the server certificate cache using the extracted socket address;

establish, in response to receiving the communication, only a single connection between the network appliance and the server based on application of a policy to the accessed server certificate, prior to initiating the single connection, that causes the network appliance to determine not to decrypt data transmitted between the client device and the server prior to initiating the single connection; and

transmit encrypted data between the client device and the server over the single connection.

20. The network appliance of claim 19 , wherein accessing the server certificate further comprises:

responsive to the query of the server certificate cache using the extracted socket address not returning the server certificate, extracting a source internet protocol (IP) address, a destination IP address, and a destination port from the communication received from the client device; and

querying the server certificate cache using the source IP address, destination IP address, and destination port.

Assignments (2)
SECURITY INTEREST Recorded Mar 11, 2022
From: GIGAMON INC.; ICEBRG LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 059362/0717 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2019
From: PATHAK, MANISH; JOSHI, KISHOR; BOMMANA, MURALI
To: GIGAMON INC.
Reel/Frame 049653/0921 →
Continuity (1)
Related Publication 20200296087A1 · Sep 17, 2020