IP Library Granted Patent US 10,020,941
Granted Patent B2
US 10,020,941 · App. 14/944,151 · Granted Jul 10, 2018

Virtual encryption patching using multiple transport layer security implementations

Inventors: Amichai Shulman (Tel Aviv, IL); Itsik Mantin (Shoham, IL); Nadav Avital (Pardes Hana Karkur, IL); Offir Zigelman (Kiryat Ata, IL); Oren Brezner (Rishon le Zion, IL); Dmitry Babich (Ramat Gan, IL)
Assignee: Imperva, Inc.
H04L9/30H04L9/32H04L63/0281H04L63/1433H04L63/164
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,020,941
App. No.
14/944,151
Granted
Jul 10, 2018
Kind
B2
Abstract

Techniques related to virtual encryption patching are described. A security gateway includes multiple Transport Layer Security Implementations (TLSI) that can be used for creating secure communications channels to carry application-layer traffic between one or more clients and one or more server applications. In some embodiments, upon determining that one of the multiple TLSIs contains a security vulnerability, that TLSI can be disabled, leaving one or more others of the multiple TLSIs enabled and available to be used to carry traffic of new connections between the clients and server applications.

Claims (104)

1. A method in a security gateway for protecting one or more server applications from transport layer security implementation vulnerabilities, wherein the security gateway is communicatively coupled between a plurality of client end stations and the one or more server applications to communicate application layer data between them, and wherein the security gateway is configured to communicate the application layer data with the plurality of client end stations through network connections that terminate at the security gateway, the method comprising:

selecting, at the security gateway while a plurality of transport layer security implementations (TLSIs) within the security gateway are enabled, different ones of the plurality of TLSIs to be utilized for different ones of new network connections being established between the plurality of client end stations and the security gateway, wherein each of the new network connections is being established between one of the plurality of client end stations and the security gateway for the purpose of communicating application layer data between that client end station and one of the server applications;

receiving, at the security gateway, a first TLSI control message indicating that a first TLSI of the plurality of TLSIs is to be disabled and thus no longer be eligible to be selected to be utilized for new network connections, leaving a set of one or more others of the plurality of TLSIs still enabled, wherein the first TLSI has a vulnerability not shared by the set of one or more others of the plurality of TLSIs due to their different implementations;

selecting, at the security gateway, for each new network connection being established between one of the plurality of client end stations and the security gateway while the first TLSI is disabled, one of the TLSIs from the set of the TLSIs that are still enabled to be utilized for the new network connection;

receiving, at the security gateway, a patch for the first TLSI while it is disabled; and

enabling, at the security gateway after the first TLSI has been disabled and after the patch has been applied, the first TLSI.

2. The method of claim 1 , wherein:

the first TLSI control message includes an enablement condition; and

the enabling of the first TLSI occurs responsive to determining that the enablement condition has been met.

3. The method of claim 2 , wherein:

the enablement condition comprises a software version identifier of the first TLSI; and

the determining that the enablement condition has been met comprises determining, after the patch has been applied, that a current version identifier of the first TLSI is greater than or equal to the software version identifier of the enablement condition.

4. The method of claim 1 , wherein:

before the receiving of the first TLSI control message indicating that the first TLSI is to be disabled, the selecting includes selecting the first TLSI for a first of the new network connections that is with a first client end station of the plurality of client end stations; and

the method further comprises after the receipt of the first TLSI control message and after the first TLSI is disabled, continuing to utilize the first TLSI for the first new network connection.

5. The method of claim 4 , wherein the selecting includes:

selecting, while the first TLSI is disabled, a second TLSI of the set of the TLSIs that are still enabled for a second of the new network connections that is with the first client end station.

6. The method of claim 1 , wherein:

before the receipt of the first TLSI control message indicating that the first TLSI is to be disabled, the selecting includes selecting the first TLSI for a first of the new network connections that is with a first client end station of the plurality of client end stations; and

wherein the method further comprises after the receipt of the first TLSI control message, causing the first new network connection to be terminated.

7. The method of claim 1 , wherein the selecting of the different ones of the plurality of TLSIs to be utilized for the different ones of the new connections is based upon weights assigned to the plurality of TLSIs.

8. The method of claim 1 , wherein the selecting of the different ones of the plurality of TLSIs to be utilized for the different ones of the new connections is based upon network attributes from packets of the new connections.

9. The method of claim 1 , wherein the security gateway acts as a transparent proxy between the plurality of client end stations and the one or more server applications.

10. The method of claim 1 , wherein the security gateway acts as a reverse proxy between the plurality of client end stations and the one or more server applications.

11. The method of claim 1 , further comprising:

issuing, for packets received over the new network connections from the plurality of client end stations, Application Programming Interface (API) calls to the plurality of TLSIs according to the selections.

12. The method of claim 1 , wherein each of the plurality of TLSIs is utilized to implement a transport layer security protocol by a corresponding standalone processing module that implements a transport layer protocol, and wherein the method further comprises:

providing, for packets received over the new network connections from the plurality of client end stations, the packets via an Inter-Process Communication (IPC) communication mechanism to the standalone processing modules according to the selections.

13. The method of claim 1 , wherein each of the plurality of TLSIs is utilized to implement a transport layer security protocol by a corresponding standalone processing module that implements a transport layer protocol, wherein each of the standalone processing modules is bound to a different port, and wherein the method further comprises:

modifying transport layer destination port header field values of packets received over the new network connections from the plurality of client end stations to reference the different ports according to the selections; and

sending the modified packets to the plurality of standalone processing modules according to the modified different ports.

14. The method of claim 1 , wherein each of the plurality of TLSIs is utilized to implement a transport layer security protocol by a corresponding standalone processing module that implements a transport layer protocol, wherein each of the standalone processing modules is bound to a different Internet Protocol (IP) address, and wherein the method further comprises:

modifying Internet layer destination address header field values of packets received over the new network connections from the plurality of client end stations to reference the different IP addresses according to the selections; and

sending the modified packets to the plurality of standalone processing modules according to the different IP addresses.

15. A non-transitory computer readable medium storing instructions which, when executed by one or more processors of an electronic device, cause the electronic device to implement a security gateway that protects one or more server applications from transport layer security implementation vulnerabilities by performing operations, wherein the security gateway is to be communicatively coupled between a plurality of client end stations and the one or more server applications to communicate application layer data between them, and wherein the security gateway is configured to communicate the application layer data with the plurality of client end stations through network connections that terminate at the security gateway, wherein the operations include:

selecting, while a plurality of transport layer security implementations (TLSIs) within the security gateway are enabled, different ones of the plurality of TLSIs to be utilized for different ones of new network connections being established between the plurality of client end stations and the security gateway, wherein each of the new network connections is being established between one of the plurality of client end stations and the security gateway for the purpose of communicating application layer data between that client end station and one of the server applications;

receiving a first TLSI control message indicating that a first TLSI of the plurality of TLSIs is to be disabled and thus no longer be eligible to be selected to be utilized for new network connections, leaving a set of one or more others of the plurality of TLSIs still enabled, wherein the first TLSI has a vulnerability not shared by the set of one or more others of the plurality of TLSIs due to their different implementations;

selecting for each new network connection being established between one of the plurality of client end stations and the security gateway while the first TLSI is disabled, one of the TLSIs from the set of the TLSIs that are still enabled to be utilized for the new network connection;

receiving, at the security gateway, a patch for the first TLSI while it is disabled; and

enabling, at the security gateway after the first TLSI has been disabled and after the patch has, been applied, the first TLSI.

16. The non-transitory computer readable medium of claim 15 , wherein:

the first TLSI control message includes an enablement condition; and

the enabling of the first TLSI occurs responsive to determining that the enablement condition has been met.

17. The non-transitory computer readable medium of claim 16 , wherein:

the enablement condition comprises a software version identifier of the first TLSI; and

the determining that the enablement condition has been met comprises determining, after the patch has been applied, that a current version identifier of the first TLSI is greater than or equal to the software version identifier of the enablement condition.

18. The non-transitory computer readable medium of claim 15 , wherein:

before the receiving of the first TLSI control message indicating that the first TLSI is to be disabled, the selecting includes selecting the first TLSI for a first of the new network connections that is with a first client end station of the plurality of client end stations; and

the operations further include after the receipt of the first TLSI control message and after the first TLSI is disabled, continuing to utilize the first TLSI for the first new network connection.

19. The non-transitory computer readable medium of claim 18 , wherein the selecting includes:

selecting, while the first TLSI is disabled, a second TLSI of the set of the TLSIs that are still enabled for a second of the new network connections that is with the first client end station.

20. The non-transitory computer readable medium of claim 15 , wherein:

before the receipt of the first TLSI control message indicating that the first TLSI is to be disabled, the selecting includes selecting the first TLSI for a first of the new network connections that is with a first client end station of the plurality of client end stations; and

wherein the operations further include after the receipt of the first TLSI control message, causing the first new network connection to be terminated.

21. The non-transitory computer readable medium of claim 15 , wherein the selecting of the different ones of the plurality of TLSIs to be utilized for the different ones of the new connections is based upon weights assigned to the plurality of TLSIs.

22. The non-transitory computer readable medium of claim 15 , wherein the selecting of the different ones of the plurality of TLSIs to be utilized for the different ones of the new connections is based upon network attributes from packets of the new connections.

23. The non-transitory computer readable medium of claim 15 , wherein the security gateway acts as a transparent proxy between the plurality of client end stations and the one or more server applications.

24. The non-transitory computer readable medium of claim 15 , wherein the security gateway acts as a reverse proxy between the plurality of client end stations and the one or more server applications.

25. The non-transitory computer readable medium of claim 15 , wherein the operations further comprise:

issuing, for packets received over the new network connections from the plurality of client end stations, Application Programming Interface (API) calls to the plurality of TLSIs according to the selections.

26. The non-transitory computer readable medium of claim 15 , wherein each of the plurality of TLSIs is utilized to implement a transport layer security protocol by a corresponding standalone processing module that implements a transport layer protocol, and wherein the operations further comprise:

providing, for packets received over the new network connections from the plurality of client end stations, the packets via an Inter-Process Communication (IPC) communication mechanism to the standalone processing modules according to the selections.

27. The non-transitory computer readable medium of claim 15 , wherein each of the plurality of TLSIs is utilized to implement a transport layer security protocol by a corresponding standalone processing module that implements a transport layer protocol, wherein each of the standalone processing modules is bound to a different port, and wherein the operations further comprise:

modifying transport layer destination port header field values of packets received over the new network connections from the plurality of client end stations to reference the different ports according to the selections; and

sending the modified packets to the plurality of standalone processing modules according to the modified different ports.

28. The non-transitory computer readable medium of claim 15 , wherein each of the plurality of TLSIs is utilized to implement a transport layer security protocol by a corresponding standalone processing module that implements a transport layer protocol, wherein each of the standalone processing modules is bound to a different Internet Protocol (IP) address, and wherein the operations further comprise:

modifying Internet layer destination address header field values of packets received over the new network connections from the plurality of client end stations to reference the different IP addresses according to the selections; and

sending the modified packets to the plurality of standalone processing modules according to the different IP addresses.

29. A computing device implementing a security gateway configured to protect one or more server applications from transport layer security implementation vulnerabilities, wherein the security gateway is to be communicatively coupled between a plurality of client end stations and the one or more server applications to communicate application layer data between them, and wherein the security gateway is configured to communicate the application layer data with the plurality of client end stations through network connections that terminate at the security gateway, the computing device comprising:

one or more processors; and

a non-transitory computer readable medium storing instructions which, when executed by the one or more processors, cause the security gateway to perform operations comprising:

selecting, while a plurality of transport layer security implementations (TLSIs) within the security gateway are enabled, different ones of the plurality of TLSIs to be utilized for different ones of new network connections being established between the plurality of client end stations and the security gateway, wherein each of the new network connections is being established between one of the plurality of client end stations and the security gateway for the purpose of communicating application layer data between that client end station and one of the server applications;

receiving a first TLSI control message indicating that a first TLSI of the plurality of TLSIs is to be disabled and thus no longer be eligible to be selected to be utilized for new network connections, leaving a set of one or more others of the plurality of TLSIs still enabled, wherein the first TLSI has a vulnerability not shared by the set of one or more others of the plurality of TLSIs due to their different implementations;

selecting for each new network connection being established between one of the plurality of client end stations and the security gateway while the first TLSI is disabled, one of the TLSIs from the set of the TLSIs that are still enabled to be utilized for the new network connection;

receiving a patch for the first TLSI while it is disabled; and

enabling, after the first TLSI has been disabled and after the patch has been applied, the first TLSI.

30. The computing device of claim 29 , wherein:

the first TLSI control message includes an enablement condition; and

the enabling of the first TLSI occurs responsive to determining that the enablement condition has been met.

31. The computing device of claim 30 , wherein:

the enablement condition comprises a software version identifier of the first TLSI; and

the determining that the enablement condition has been met comprises determining, after the patch has been applied, that a current version identifier of the first TLSI is greater than or equal to the software version identifier of the enablement condition.

32. The computing device of claim 29 , wherein:

before the receiving of the first TLSI control message indicating that the first TLSI is to be disabled, the selecting includes selecting the first TLSI for a first of the new network connections that is with a first client end station of the plurality of client end stations; and

the operations further include after the receipt of the first TLSI control message and after the first TLSI is disabled, continuing to utilize the first TLSI for the first new network connection.

33. The computing device of claim 32 , wherein the selecting includes:

selecting, while the first TLSI is disabled, a second TLSI of the set of the TLSIs that are still enabled for a second of the new network connections that is with the first client end station.

34. The computing device of claim 29 , wherein:

before the receipt of the first TLSI control message indicating that the first TLSI is to be disabled, the selecting includes selecting the first TLSI for a first of the new network connections that is with a first client end station of the plurality of client end stations; and

wherein the operations further include after the receipt of the first TLSI control message, causing the first new network connection to be terminated.

35. The computing device of claim 29 , wherein the selecting of the different ones of the plurality of TLSIs to be utilized for the different ones of the new connections is based upon weights assigned to the plurality of TLSIs.

36. The computing device of claim 29 , wherein the selecting of the different ones of the plurality of TLSIs to be utilized for the different ones of the new connections is based upon network attributes from packets of the new connections.

37. The computing device of claim 29 , wherein the security gateway is configured to act as a transparent proxy between the plurality of client end stations and the one or more server applications.

38. The computing device of claim 29 , wherein the security gateway is configured to act as a reverse proxy between the plurality of client end stations and the one or more server applications.

39. The computing device of claim 29 , wherein the operations further comprise:

issuing, for packets received over the new network connections from the plurality of client end stations, Application Programming Interface (API) calls to the plurality of TLSIs according to the selections.

40. The computing device of claim 29 , wherein each of the plurality of TLSIs is utilized to implement a transport layer security protocol by a corresponding standalone processing module that implements a transport layer protocol, and wherein the operations further comprise:

providing, for packets received over the new network connections from the plurality of client end stations, the packets via an Inter-Process Communication (IPC) communication mechanism to the standalone processing modules according to the selections.

41. The computing device of claim 29 , wherein each of the plurality of TLSIs is utilized to implement a transport layer security protocol by a corresponding standalone processing module that implements a transport layer protocol, wherein each of the standalone processing modules is bound to a different port, and wherein the operations further comprise:

modifying transport layer destination port header field values of packets received over the new network connections from the plurality of client end stations to reference the different ports according to the selections; and

sending the modified packets to the plurality of standalone processing modules according to the modified different ports.

42. The computing device of claim 29 , wherein each of the plurality of TLSIs is utilized to implement a transport layer security protocol by a corresponding standalone processing module that implements a transport layer protocol, wherein each of the standalone processing modules is bound to a different Internet Protocol (IP) address, and wherein the operations further comprise:

modifying Internet layer destination address header field values of packets received over the new network connections from the plurality of client end stations to reference the different IP addresses according to the selections; and

sending the modified packets to the plurality of standalone processing modules according to the different IP addresses.

Assignments (5)
RELEASE OF FIRST LIEN SECURITY INTEREST IN INTELLECTUAL PROPERTY RECORDED AT R/F 048077/0672 Recorded Dec 1, 2023
From: BANK OF AMERICA, N.A., AS AGENT
To: IMPERVA, INC.
Reel/Frame 065743/0832 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN INTELLECTUAL PROPERTY RECORDED AT R/F 049676/0451 Recorded Dec 1, 2023
From: GOLDMAN SACH BANK USA, AS AGENT
To: IMPERVA, INC.
Reel/Frame 065743/0905 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 15, 2019
From: IMPERVA, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 049676/0451 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 15, 2019
From: IMPERVA, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 048077/0672 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2015
From: SHULMAN, AMICHAI; MANTIN, ITSIK; AVITAL, NADAV; ZIGELMAN, OFFIR; BREZNER, OREN; BABICH, DMITRY
To: IMPERVA, INC.
Reel/Frame 037065/0231 →
Continuity (2)
Provisional Application 62235504 · Sep 30, 2015
Related Publication 20170093824A1 · Mar 30, 2017