IP Library Granted Patent US 11,805,107
Granted Patent B2
US 11,805,107 · App. 16/843,840 · Granted Oct 31, 2023

Extracting encryption keys to enable monitoring services

Inventors: Greig W. Bannister (Allambie Heights, AU); Randy Yen-pang Chou (San Jose, CA)
Assignee: Nubeva, Inc.
H04L63/0471G06F9/45558G06F9/545H04L9/0825H04L9/0841H04L9/0861H04L9/0894H04L9/3263H04L63/1425G06F2009/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,805,107
App. No.
16/843,840
Granted
Oct 31, 2023
Kind
B2
Abstract

The disclosed embodiments disclose techniques for extracting encryption keys to enable monitoring services. During operation, an encrypted connection is detected on a computing device. A monitoring service harvests an encryption key for this encrypted connection from the memory of a computing device and then forwards the encryption key to an intercepting agent in an intermediate computing environment that intercepts encrypted traffic that is sent between the computing device and a remote service via the encrypted connection.

Claims (45)

1. A computer-implemented method for extracting encryption keys to enable monitoring services, the method comprising:

detecting an encrypted connection on a computing device;

harvesting an encryption key for the encrypted connection from the memory of the computing device; and

forwarding the encryption key to an intercepting agent in an intermediate computing environment that intercepts encrypted traffic that is sent between the computing device and a remote service via the encrypted connection,

wherein establishing the encrypted connection between the computing device and the remote service comprises:

initiating an asymmetric encryption handshake with the remote service to generate a shared symmetric key as the encryption key for the encrypted connection;

using a pinned certificate that is verified to ensure an end-to-end encrypted connection between the computing device and the remote service, thereby ensuring that no man-in-the-middle proxy can masquerade as the remote service;

wherein the intercepting agent intercepts and stores encrypted traffic that is sent between the computing device and remote service and uses the shared symmetric key to decrypt and analyze the encrypted traffic; and

wherein the intercepting agent tracks and manages the shared symmetric key only for the duration of the encrypted connection, which is substantially shorter than the lifetime of the pinned certificate.

2. The computer-implemented method of claim 1 ,

wherein establishing the encrypted connection further comprises:

receiving a pinned certificate from the remote service, wherein using the pinned certificate comprises validating the pinned certificate against a known, trusted, locally-stored copy of the remote service's certificate to ensure that the encrypted connection cannot be intercepted by a man-in-the-middle proxy using a modified certificate authority;

verifying that the pinned certificate matches trusted local validation information associated with the remote service; and

exchanging information using Diffie-Hellman perfect forward secrecy key establishment techniques to generate the encryption key.

3. The computer-implemented method of claim 2 , wherein using and verifying the pinned certificate for the encrypted connection ensures an end-to-end encrypted connection between the computing device and the remote service and that no man-in-the-middle proxy can masquerade as the remote service to intercept encrypted communication between the computing device and the remote service.

4. The computer-implemented method of claim 3 ,

wherein the intercepting agent uses the shared symmetric key to decrypt and analyze the encrypted traffic generated by the computing device without modifying the data streams that are sent between the computing device and the remote service.

5. The computer-implemented method of claim 4 , wherein the intercepting agent, upon detecting an undesired operation or data value in the encrypted traffic, is configured to perform at least one of raising an alert or terminating one or more applications executing on the computing device that are sending data via the encrypted connection.

6. The computer-implemented method of claim 5 ,

wherein the intercepting agent is a cloud-based security service that executes in a dispatcher virtual machine (VM) executing in a cloud data center;

wherein the cloud-based security service receives from an application on the computing device a network request to the remote service;

wherein the remote service is in an untrusted network that is external to and distinct from the cloud data center and an enterprise location in which the application is executing;

wherein the cloud-based security service comprises a set of one or more security service VMs executing in the cloud data center that use the encryption key to decrypt and analyze the network request; and

wherein, upon determining in the set of one or more security service VMs that the network request is permitted, the cloud-based security service forwards the network request to the untrusted network.

7. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for extracting encryption keys to enable monitoring services, the method comprising:

detecting an encrypted connection on a computing device;

harvesting an encryption key for the encrypted connection from the memory of the computing device; and

forwarding the encryption key to an intercepting agent in an intermediate computing environment that intercepts encrypted traffic that is sent between the computing device and a remote service via the encrypted connection;

wherein establishing the encrypted connection between the computing device and the remote service comprises:

initiating an asymmetric encryption handshake with the remote service to generate a shared symmetric key as the encryption key for the encrypted connection;

using a pinned certificate that is verified to ensure an end-to-end encrypted connection between the computing device and the remote service, thereby ensuring that no man-in-the-middle proxy can masquerade as the remote service;

wherein the intercepting agent intercepts and stores encrypted traffic that is sent between the computing device and remote service and uses the shared symmetric key to decrypt and analyze the encrypted traffic; and

wherein the intercepting agent tracks and manages the shared symmetric key only for the duration of the encrypted connection, which is substantially shorter than the lifetime of the pinned certificate.

8. A computing device that extracts encryption keys to enable monitoring services, comprising:

a processor that executes an operating system kernel that supports executing multiple different lightweight services in a single virtual machine using docker containers;

a harvesting mechanism; and

a memory;

wherein the harvesting mechanism is configured to detect an encrypted connection on the computing device;

wherein the harvesting mechanism harvests an encryption key for the encrypted connection from the memory; and

wherein the harvesting mechanism is configured to forward the encryption key to an intercepting agent in an intermediate computing environment that intercepts encrypted traffic that is sent between the computing device and a remote service via the encrypted connection;

wherein establishing the encrypted connection between the computing device and the remote service comprises:

using the processor to initiate an asymmetric encryption handshake with the remote service to generate a shared symmetric key as the encryption key for the encrypted connection;

using a pinned certificate that is verified to ensure an end-to-end encrypted connection between the computing device and the remote service, thereby ensuring that no man-in-the-middle proxy can masquerade as the remote service;

wherein the intercepting agent intercepts and stores encrypted traffic that is sent between the computing device and remote service and uses the shared symmetric key to decrypt and analyze the encrypted traffic; and

wherein the intercepting agent tracks and manages the shared symmetric key only for the duration of the encrypted connection, which is substantially shorter than the lifetime of the pinned certificate.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2024
From: NUBEVA, INC.
To: NETSKOPE, INC.
Reel/Frame 066821/0660 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2020
From: BANNISTER, GREIG W; CHOU, RANDY YEN-PANG
To: NUBEVA, INC.
Reel/Frame 052431/0195 →
Continuity (6)
Continuation In Part 16795422 · Feb 19, 2020
Continuation In Part 15842848 · Dec 14, 2017
Continuation In Part 15792679 · Oct 24, 2017
Provisional Application 62864411 · Jun 20, 2019
Provisional Application 62412171 · Oct 24, 2016
Related Publication 20200236093A1 · Jul 23, 2020
Cited By (1)
US 12,615,242