IP Library Granted Patent US 10,447,663
Granted Patent B2
US 10,447,663 · App. 16/021,950 · Granted Oct 15, 2019

Decrypting network traffic on a middlebox device using a trusted execution environment

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,447,663
App. No.
16/021,950
Granted
Oct 15, 2019
Kind
B2
Abstract

Decrypting network traffic on a middlebox device using a trusted execution environment (TEE). In one embodiment, a method may include loading a kernel application inside the TEE, loading a logic application outside the TEE, intercepting, by the logic application, encrypted network traffic, forwarding, from the logic application to the kernel application, the encrypted network traffic, decrypting, at the kernel application, the encrypted network traffic, inspecting, at the kernel application, the decrypted network traffic according to a sensitivity policy to determine whether the decrypted network traffic includes sensitive data, forwarding, from the kernel application to the logic application, filtered decrypted network traffic that excludes the sensitive data, processing, at the logic application, the filtered decrypted network traffic, forwarding, from the logic application to the kernel application, the filtered decrypted network traffic after the processing by the logic application, and forwarding, from the kernel application, the encrypted network traffic.

Claims (68)

1. A computer-implemented method for decrypting network traffic on a middlebox device using a trusted execution environment, at least a portion of the method being performed by the middlebox device comprising one or more processors, the method comprising:

(a) initializing the trusted execution environment (TEE);

(b) loading a kernel application inside the TEE and a sensitivity policy inside the TEE;

(c) sending, to a client device or a server device, attestation that the kernel application inside the TEE is authentic;

(d) receiving at the kernel application inside the TEE, from the client device or the server device, a symmetric session key of an encrypted network session between the client device and the server device;

(e) loading a logic application outside the TEE;

(f) intercepting, by the logic application, encrypted network traffic from the client device that is directed to the server device;

(g) forwarding, from the logic application outside the TEE to the kernel application inside the TEE, the encrypted network traffic;

(h) decrypting, at the kernel application inside the TEE, the encrypted network traffic using the symmetric session key;

(i) inspecting, at the kernel application inside the TEE, the decrypted network traffic according to the sensitivity policy to determine whether the decrypted network traffic includes sensitive data;

(j) in response to determining that the decrypted network traffic includes sensitive data, filtering the decrypted network traffic to exclude the sensitive data;

(k) forwarding, from the kernel application inside the TEE to the logic application outside the TEE, the filtered decrypted network traffic;

(l) processing, at the logic application outside the TEE, the filtered decrypted network traffic;

(m) forwarding, from the logic application outside the TEE to the kernel application inside the TEE, the filtered decrypted network traffic after the processing by the logic application outside the TEE; and

(n) forwarding, from the kernel application inside the TEE, the encrypted network traffic to the server device.

2. The method of claim 1 , further comprising:

(m.1) logging in a log, at the kernel application inside the TEE, the filtered decrypted network traffic that was forwarded to the logic application outside the TEE;

(o) providing, from the kernel application inside the TEE, the log to the client device or to the server device; and

(p) auditing, at the client device or the server device, the log to determine an extent to which the decrypted network traffic was exposed outside the TEE.

3. The method of claim 2 , wherein:

the processing at ( 1 ) further comprises modifying the filtered decrypted network traffic; and

the logging in the log at (m.1) further comprises logging in the log the modifications made to the filtered decrypted network traffic that was forwarded to the logic application outside the TEE.

4. The method of claim 3 , wherein:

the method further comprises (m.2) encrypting, at the kernel application inside the TEE, the modified filtered decrypted network traffic; and

the encrypted network traffic forwarded at (n) includes the modified filtered decrypted network traffic that was encrypted at (m.2).

5. The method of claim 1 , wherein the sending at (c) further comprises sending, to the client device or the server device, attestation that the sensitivity policy is authentic.

6. The method of claim 1 , further comprising:

(o) receiving, at the kernel application inside the TEE, an update to the sensitivity policy from the client device or the server device to modify what qualifies as sensitive data at the inspecting at (i).

7. The method of claim 1 , wherein:

the kernel application is loaded at (b) inside the TEE on the middlebox device; and

the logic application is loaded at (e) outside the TEE on a separate second middlebox device.

8. The method of claim 1 , wherein the TEE comprises a Software Guard Extension (SGX) enclave.

9. The method of claim 8 , wherein the initializing at (a) of the SGX enclave comprises initializing, at the middlebox device, of the SGX enclave using an Intel® processor of the middlebox device that supports Intel® SGX instructions.

10. The method of claim 8 , wherein the initializing at (a) of the SGX enclave comprises initializing, at the middlebox device, of the SGX enclave using an OpenSGX simulator, or a Komodo monitor, that supports Intel® SGX instructions.

11. One or more non-transitory computer-readable media comprising one or more computer-readable instructions that, when executed by one or more processors of a middlebox device, cause the middlebox device to perform a method for decrypting network traffic on the middlebox device using a trusted execution environment, the method comprising:

(a) initializing the trusted execution environment (TEE);

(b) loading a kernel application inside the TEE and a sensitivity policy inside the TEE;

(c) sending, to a client device or a server device, attestation that the kernel application inside the TEE is authentic;

(d) receiving at the kernel application inside the TEE, from the client device or the server device, a symmetric session key of an encrypted network session between the client device and the server device;

(e) loading a logic application outside the TEE;

(f) intercepting, by the logic application, encrypted network traffic from the client device that is directed to the server device;

(g) forwarding, from the logic application outside the TEE to the kernel application inside the TEE, the encrypted network traffic;

(h) decrypting, at the kernel application inside the TEE, the encrypted network traffic using the symmetric session key;

(i) inspecting, at the kernel application inside the TEE, the decrypted network traffic according to the sensitivity policy to determine whether the decrypted network traffic includes sensitive data;

(j) in response to determining that the decrypted network traffic includes sensitive data, filtering the decrypted network traffic to exclude the sensitive data;

(k) forwarding, from the kernel application inside the TEE to the logic application outside the TEE, the filtered decrypted network traffic;

(l) processing, at the logic application outside the TEE, the filtered decrypted network traffic;

(m) forwarding, from the logic application outside the TEE to the kernel application inside the TEE, the filtered decrypted network traffic after the processing by the logic application outside the TEE; and

(n) forwarding, from the kernel application inside the TEE, the encrypted network traffic to the server device.

12. The one or more non-transitory computer-readable media of claim 11 , wherein the method further comprises:

(m.1) logging in a log, at the kernel application inside the TEE, the filtered decrypted network traffic that was forwarded to the logic application outside the TEE;

(o) providing, from the kernel application inside the TEE, the log to the client device or to the server device; and

(p) auditing, at the client device or the server device, the log to determine an extent to which the decrypted network traffic was exposed outside the TEE.

13. The one or more non-transitory computer-readable media of claim 12 , wherein:

the processing at (l) further comprises modifying the filtered decrypted network traffic; and

the logging in the log at (m.1) further comprises logging in the log the modifications made to the filtered decrypted network traffic that was forwarded to the logic application outside the TEE.

14. The one or more non-transitory computer-readable media of claim 13 , wherein:

the method further comprises (m.2) encrypting, at the kernel application inside the TEE, the modified filtered decrypted network traffic; and

the encrypted network traffic forwarded at (n) includes the modified filtered decrypted network traffic that was encrypted at (m.2).

15. The one or more non-transitory computer-readable media of claim 11 , wherein the sending at (c) further comprises sending, to the client device or the server device, attestation that the sensitivity policy is authentic.

16. The one or more non-transitory computer-readable media of claim 11 , wherein the method further comprises:

(o) receiving, at the kernel application inside the TEE, an update to the sensitivity policy from the client device or the server device to modify what qualifies as sensitive data at the inspecting at (i).

17. The one or more non-transitory computer-readable media of claim 11 , wherein:

the kernel application is loaded at (b) inside the TEE on the middlebox device; and

the logic application is loaded at (e) outside the TEE on a separate second middlebox device.

18. The one or more non-transitory computer-readable media of claim 11 , wherein the TEE comprises a Software Guard Extension (SGX) enclave.

19. The one or more non-transitory computer-readable media of claim 18 , wherein the initializing at (a) of the SGX enclave comprises initializing, at the middlebox device, of the SGX enclave using an Intel® processor of the middlebox device that supports Intel® SGX instructions.

20. The one or more non-transitory computer-readable media of claim 18 , wherein the initializing at (a) of the SGX enclave comprises initializing, at the middlebox device, of the SGX enclave using an OpenSGX simulator, or a Komodo monitor, that supports Intel® SGX instructions.

Assignments (6)
CHANGE OF NAME Recorded May 18, 2023
From: NORTONLIFELOCK INC.
To: GEN DIGITAL INC.
Reel/Frame 063697/0493 →
NOTICE OF SUCCESSION OF AGENCY (REEL 050926 / FRAME 0560) Recorded Sep 13, 2022
From: JPMORGAN CHASE BANK, N.A.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 061422/0371 →
SECURITY AGREEMENT Recorded Sep 13, 2022
From: NORTONLIFELOCK INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062220/0001 →
CHANGE OF NAME Recorded Mar 5, 2020
From: SYMANTEC CORPORATION
To: NORTONLIFELOCK INC.
Reel/Frame 052109/0186 →
SECURITY AGREEMENT Recorded Nov 4, 2019
From: SYMANTEC CORPORATION; BLUE COAT LLC; LIFELOCK, INC,; SYMANTEC OPERATING CORPORATION
To: JPMORGAN, N.A.
Reel/Frame 050926/0560 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2018
From: SUN, YUQIONG; WITTEN, BRIAN T.; SHINTRE, SAURABH; LI, QING; MARINO, DANIEL; NANDA, SUSANTA K.; FREDERICK, RONALD A.
To: SYMANTEC CORPORATION
Reel/Frame 046232/0037 →