IP Library Granted Patent US 7,961,722
Granted Patent B1
US 7,961,722 · App. 11/369,714 · Granted Jun 14, 2011

Multiple virtualized operating environments within a VPN appliance

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 7,961,722
App. No.
11/369,714
Granted
Jun 14, 2011
Kind
B1
Abstract

A secure socket layer virtual private network (SSL VPN) network appliance includes a set of virtual systems having respective context information. Each of the virtual systems represents a VPN for a different subscriber network. The network appliance includes a network interface to receive a first network communication associated with a first one of the virtual systems. In response to the network communication, the SSL VPN network appliance sets a context identifier that identifies the first one of the virtual systems. The network appliance further comprises a set of VPN software processes executing on the network appliance to process the first network communication, wherein the set of VPN software processes generate data access requests. A configuration access application programming interface (API) dynamically directs the data access requests from the VPN software processes to the first one of the virtual systems based on the context identifier.

Claims (61)

1. A method comprising:

maintaining, with a network security device, a plurality of logically separated virtual systems having respective context information, wherein each of the virtual systems comprises a data structure for storing the context information for providing a corresponding virtual private network (VPN) to each subscriber network, wherein the context information for each of the virtual systems comprises session information and configuration parameters that include security policies and a secure socket layer (SSL) encryption key for the respective VPN;

receiving, with the network security device, a network communication associated with a first one of the virtual systems from a first one of the subscriber networks;

setting, in response to the network communication, a context identifier identifying the first one of the virtual systems;

processing the network communication with a first one of a plurality of VPN software processes executing on the network security device, wherein each of the VPN software processes corresponds to a different one of the virtual systems of the network security device and provides the corresponding VPN to each subscriber network, and wherein the first one of the VPN software processes generates a data access request to include the context identifier in response to the network communication;

dynamically directing the data access request from the first one of the plurality of VPN software processes to the first one of the virtual systems with a generic application programming interface (API) based on the context identifier included within the data access request to retrieve the SSL encryption key and the session information for the corresponding VPN; and

applying VPN services with the first one of the plurality of VPN software processes to the network communication in accordance with the context information associated with the first one of the virtual systems to which the data access request is directed in order to provide VPN connectivity to the first one of the subscriber networks by at least encrypting or decrypting the network communication based on the retrieved SSL encryption key and session information and to enforce the security policies defined within the context information.

2. The method of claim 1 , wherein maintaining the plurality of logically separated virtual systems comprises:

maintaining subscriber-specific context information for each of the virtual systems; and

maintaining shared context information, wherein the shared context includes information that is common to each of the virtual systems.

3. The method of claim 2 , wherein processing the network communication includes processing the network communication in accordance with the subscriber-specific context information associated with the first one of the subscriber networks and the shared context information.

4. The method of claim 1 , further comprising:

receiving requests from administrators associated with the different subscriber networks to modify the context information for their corresponding virtual systems;

dynamically directing each of the requests to the corresponding virtual system associated with the respective administrator from which the request was received.

5. The method of claim 1 , wherein the configuration parameters comprise customer-specific security policies.

6. The method of claim 1 , wherein setting the context identifier comprises:

identifying a network address of the network communication; and

accessing a context map to map the address to a particular one of the virtual systems maintained by the security device.

7. The method of claim 1 , wherein processing the network communication comprises embedding the context identifier within inter-process communications issued between the VPN software processes.

8. The method of claim 1 , wherein dynamically directing the data access request comprises:

invoking the generic application programming interface (API) with the data access requests from the VPN software processes;

identifying, with the generic API, the corresponding one of the plurality of virtual systems that is associated with the first one of the subscriber networks based on the context identifier; and

modifying an access path specified within the request to direct the data access requests to the context information associated with the corresponding one of the plurality of virtual systems.

9. The method of claim 1 ,

wherein the network communication comprises an inbound network communication received from a remote user associated with the first one of the subscriber networks, and wherein applying VPN services comprises:

decrypting the network communication to produce unencrypted data based on the retrieved SSL encryption key and session information; and

forwarding the unencrypted data to a network resource associated with the first one of the subscriber networks.

10. The method of claim 1 ,

wherein the network communication comprises an outbound network communication destined for a remote user associated with the first one of the subscriber networks, and wherein applying VPN services comprises:

encrypting the network communication to produce encrypted data based on the retrieved SSL encryption key and session information; and

forwarding the encrypted data to the remote user via an SSL session.

11. A network security device comprising:

a processor;

a plurality of logically separated virtual systems having respective context information, wherein each of the virtual systems comprises a data structure for storing the context information for providing a corresponding virtual private network (VPN) to each subscriber network, wherein the context information for each of the virtual systems comprises session information and configuration parameters that include security policies and a secure socket layer (SSL) encryption key for the respective VPN;

a network interface to receive a first network communication associated with a first one of the virtual systems from a first one of the subscriber networks;

a context identifier set in response to the first network communication and identifying the first one of the virtual systems;

a plurality of VPN software processes executing on the processor of the network security device to process network communications, wherein each of the VPN software processes corresponds to a different one of the virtual systems and provides the corresponding VPN to each subscriber network, wherein a first one of the plurality of VPN software processes generates a data access request to include the context identifier in response to the first network communication, and wherein the first one of the plurality of VPN software processes applies VPN services to the first network communication in accordance with the context information of the corresponding one of the virtual systems to which the data access request is directed in order to provide VPN connectivity to the first one of the subscriber networks by at least encrypting or decrypting the network communication based on the SSL encryption key and the session information of the corresponding VPN and to enforce the security policies defined within the context information; and

a configuration access application programming interface (API) executing on the network appliance that dynamically directs the data access request from the first one of the plurality of VPN software processes to the first one of the virtual systems based on the context identifier included within the data access request to retrieve the SSL encryption key and the session information for the corresponding VPN.

12. The network security device of claim 11 , further comprising a hierarchically organized database storing subscriber-specific context information for each of the virtual system, and shared context information common to each of the virtual systems.

13. The network security device of claim 12 , wherein the plurality of VPN software processes process the first network communication in accordance with the subscriber-specific context information associated with the first one of the subscriber networks and the shared context information.

14. The network security device of claim 11 , further comprising an administrative interface to administrators associated with different subscriber networks to modify the context information for their corresponding virtual systems,

wherein the configuration access API dynamically directs each of the requests to the corresponding virtual system associated with the respective administrator from which the request was received.

15. The network security device of claim 11 , wherein the configuration parameters comprise customer-specific security policies.

16. The network security device of claim 11 , further comprising a context map that maps network addresses to the virtual systems maintained by the network appliance.

17. The network security device of claim 11 , wherein the plurality of VPN software processes embed the context identifier within inter-process communications issued between the VPN software processes.

18. The network security device of claim 11 , the API comprises a generic API that identifies the corresponding one of the plurality of virtual systems based on the context identifier and modifies an access path specified within the data access request to direct the data access request to the context information associated with the corresponding one of the plurality of virtual systems.

19. The network security device of claim 11 ,

wherein the first network communication comprises an inbound network communication received from a remote user associated with the first one of the subscriber networks,

wherein the first one of the plurality of VPN software processes decrypts the network communication to produce unencrypted data based on the retrieved SSL encryption key and session information, and forwards the unencrypted data to a network resource associated with the first one of the subscriber networks.

20. The network security device of claim 11 ,

wherein the first network communication comprises an outbound network communication destined for a remote user associated with the first one of the subscriber networks,

wherein the first one of the plurality of VPN software processes encrypts the network communication to produce encrypted data based on the retrieved SSL encryption key and session information, and forward the encrypted data to the remote user via an SSL session.

21. A non-transitory computer readable medium comprising instructions that cause a programmable processor to:

maintain, with a network security device, a plurality of logically separated virtual systems having respective context information, wherein each of the virtual systems comprises a data structure for storing the context information for providing a corresponding virtual private network (VPN) to a each subscriber network, wherein the context information comprises session information and configuration parameters that include security policies and a secure socket layer (SSL) encryption key for the respective VPN;

receive, with the network device, a network communication associated with a first one of the virtual systems from a first one of the subscriber networks;

set, in response to the network communication, a context identifier identifying the first one of the virtual systems;

process the network communication with a first one of a plurality of VPN software processes executing on the network security device, wherein each of the VPN software processes corresponds to a different one of the virtual systems of the network security device and provides the corresponding VPN to each subscriber network, and wherein the first one of the VPN software processes generates a data access request;

dynamically direct the data access request from the first one of the plurality of VPN software processes to the first one of the virtual systems with a configuration access application programming interface (API) based on the context identifier to retrieve the SSL encryption key and the session information for the corresponding VPN; and

apply VPN services with the first one of the plurality of VPN software processes to the network communication in accordance with the context information associated with the first one of the virtual systems to which the data access request is directed in order to provide VPN connectivity to the first one of the subscriber networks by at least encrypting or decrypting the network communication based on the retrieved SSL encryption key and session information and to enforce the security policies defined within the context information.

22. The method of claim 1 , wherein the context information for each of the virtual systems comprises one or more of VPN state information, network policies, management policies, security policies, configuration information, end-point security checks, permissible protocols, and custom authentication, authorization, and accounting protocols.

23. The network security device of claim 11 , wherein the context information for each of the virtual systems comprises one or more of VPN state information, network policies, management policies, security policies, configuration information, end-point security checks, permissible protocols, and custom authentication, authorization, and accounting protocols.

Assignments (16)
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY 14633493 WHICH WAS ENTERED INCORRECTLY AS 14633793 PREVIOUSLY RECORDED ON REEL 71176 FRAME 315. ASSIGNOR(S) HEREBY CONFIRMS THE FIRST LIEN NEWCO SECURITY AGREEMENT. Recorded Nov 10, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 073818/0515 →
FIRST LIEN NEWCO SECURITY AGREEMENT Recorded May 5, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 071176/0315 →
SECURITY INTEREST Recorded May 3, 2025
From: PULSE SECURE LLC
To: ALTER DOMUS (US) LLC
Reel/Frame 071165/0027 →
NOTICE OF SUCCESSION OF AGENCY FOR SECURITY INTEREST AT REEL/FRAME 054665/0873 Recorded Apr 29, 2025
From: BANK OF AMERICA, N.A., AS RESIGNING AGENT
To: ALTER DOMUS (US) LLC, AS SUCCESSOR AGENT
Reel/Frame 071123/0386 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; IVANTI, INC.; MOBILEIRON, INC.; IVANTI US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 054665/0062 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; INVANTI, INC.; MOBILEIRON, INC.; INVANTI US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 054665/0873 →
RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 053638-0220 Recorded Dec 1, 2020
From: KKR LOAN ADMINISTRATION SERVICES LLC
To: PULSE SECURE, LLC
Reel/Frame 054559/0368 →
SECURITY INTEREST Recorded Aug 29, 2020
From: PULSE SECURE, LLC
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 053638/0220 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 042380/0859 Recorded Aug 29, 2020
From: CERBERUS BUSINESS FINANCE, LLC, AS AGENT
To: PULSE SECURE, LLC
Reel/Frame 053638/0259 →
RELEASE OF SECURITY INTEREST Recorded Jul 21, 2020
From: JUNIPER NETWORKS, INC.
To: PULSE SECURE, LLC; SMOBILE SYSTEMS, INC.
Reel/Frame 053271/0307 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL 037338, FRAME 0408 Recorded May 1, 2017
From: US BANK NATIONAL ASSOCIATION
To: PULSE SECURE, LLC
Reel/Frame 042381/0568 →
GRANT OF SECURITY INTEREST PATENTS Recorded May 1, 2017
From: PULSE SECURE, LLC
To: CERBERUS BUSINESS FINANCE, LLC, AS COLLATERAL AGENT
Reel/Frame 042380/0859 →
SECURITY INTEREST Recorded Dec 21, 2015
From: PULSE SECURE, LLC
To: U.S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037338/0408 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2014
From: JUNIPER NETWORKS, INC.
To: PULSE SECURE, LLC
Reel/Frame 034036/0904 →
SECURITY INTEREST Recorded Oct 23, 2014
From: PULSE SECURE, LLC; SMOBILE SYSTEMS, INC.
To: JUNIPER NETWORKS, INC.
Reel/Frame 034037/0526 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2006
From: JANKOWSKI, STEVEN
To: JUNIPER NETWORKS, INC.
Reel/Frame 017805/0421 →