WO2015080909A1 - Smart virtual private network - Google Patents

Smart virtual private network Download PDF

Info

Publication number
WO2015080909A1
WO2015080909A1 PCT/US2014/066288 US2014066288W WO2015080909A1 WO 2015080909 A1 WO2015080909 A1 WO 2015080909A1 US 2014066288 W US2014066288 W US 2014066288W WO 2015080909 A1 WO2015080909 A1 WO 2015080909A1
Authority
WO
WIPO (PCT)
Prior art keywords
client device
security
policy
routing
policy server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2014/066288
Other languages
French (fr)
Inventor
Pranav Bhalerao
Sunil Nr
Chandra Balaji
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of WO2015080909A1 publication Critical patent/WO2015080909A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved

Definitions

  • This disclosure relates in general to the field of secure communication between client devices.
  • IPsec Internet protocol security
  • a hub is a centrally located network device and spoke network devices connected to the hub.
  • a spoke may be a branch router or an edge router. Spokes located in different geographies are connected to the same hub. In hub and spoke network, all spokes use the same hashing and encryption algorithms.
  • Figure 1 illustrates an example smart virtual private network.
  • Figure 2 illustrates another example smart virtual private network.
  • Figures 3 and 4 illustrate an example flowchart for a client network device of
  • Figure 5 illustrates an example flowchart for a policy server of Figures 1 or 2.
  • Figure 6 illustrates an example client network device or an example policy server. DESCRIPTION OF EXAMPLE EMBODIMENTS
  • a security protocol channel is established between a policy server and a first client device.
  • a registration request including a first security configuration for the first client device is received.
  • the first security configuration includes a security level.
  • a client database is updated according to the security configuration.
  • a routing message, which defines routing for communication from the first client device to a second client device, is generated for the first client device.
  • a security protocol channel with a policy server is established.
  • a registration request including a first security configuration for the first client device and including a security level is sent to the policy server.
  • a routing message is received from the policy server.
  • the routing message defines routing for communication from the first client device to a second client device.
  • a routing table is updated in response to the routing message.
  • VPN virtual private networks
  • the hub device may resolve a non-broadcast multiple access (NBMA) address for communication with a network behind a spoke device.
  • NBMA non-broadcast multiple access
  • the hub and spoke model does not permit policies to be pushed to the spoke devices or dynamic selection of a policy.
  • Group encrypted transport virtual private networks solve various scalability and manageability issues of partially or fully meshed VPNs.
  • GETVPNs do not hide endpoint identities, which may allow unauthorized entities to discover with whom the information is communicated.
  • members in the GETVPN must use the same cryptographic algorithm. No flexibility is provided in choosing different security algorithms and/or hash algorithms for different group members. In some circumstances, the highest possible security level should be used. However, in other circumstances lower security levels may provide sufficient protection without wasting bandwidth, CPU cycles, or other resources.
  • GETVPN may require a private wide area network (WAN), such as
  • the following embodiments provide secure point-to-point communication through a virtual private network with varying levels of security.
  • the level of security is selected based on the capabilities of the endpoints, preferences of the endpoints, or the type of communication.
  • a virtual private network is established using a client and server model. Client registers with Policy Server to update its host networks and the level of security, which is required.
  • Policy Server When a data packet arrives at an originating client destined for a remote client, the originating client requests a policy from the policy server. After receiving the policy from Policy Server, the originating client establishes direct secure communication with destination client.
  • Figure 2 illustrates an example system for providing smart virtual private networks configured with dynamic security levels.
  • the system includes at least a policy server 100 and two client devices.
  • a smart VPN may be established between any of the client devices lOla-c.
  • IPsec Internet protocol security
  • IKE Internet key exchange
  • IPSec Session establishment data transfer
  • tunnel termination a security channel between the policy server 100 and one of the client devices.
  • the client device 101a is configured to generate a registration request and send the registration request, via the security channel, to the policy server 100.
  • the policy server 100 receives the registration request which may contains the client's host network summary and the preferred security level for each host network.
  • the Policy Server decides the choice of encryption, hash & DH algorithms for different levels of security, which can be configured at Policy Server as shown in Table 1.
  • the policy server 100 is configured to update a client database according to the client's host network and its respective security level.
  • the client devices may be listed by IP address, a media access control (MAC) address, or another identification value.
  • the security levels may be selected by the client during registration depends on the type of communication. For example, the high security level may be used for banking or other transactions, the medium level may be used for file server transfers, and the low level may be used for public web traffic or messaging.
  • the policy server 100 generates an acknowledgement message for the client device 101a, which may contain the host network information of other registered clients lOlb-c. This will allow the client device 101a to communicate with other client's lOlb-c host networks.
  • the registration acknowledgement message may specify the address of the policy server 100 as the next hop address for client device 101b and/or client device 101c host networks.
  • the client device 101a receives the registration acknowledgement message and updates its routing table with Policy server as next hop address for client device 101b and/or client device 101c host networks.
  • the registration phase is complete.
  • a client device requests the policy server 100 to establish direct communication with another client device.
  • a policy request from client device 101a may specify its intent to establish a direct communication with client device 101b.
  • the policy server 100 queries the client database for the security configuration for the client device 101b.
  • the security configuration may specify individual algorithms or a generalized security level.
  • the policy server 100 queries the client database for the security configuration for the client devices 101b and 101a.
  • the policy server 100 may determine the greatest common security algorithms between two clients for encryption, hashing and Diffie-Hellman, based on the security levels registered by clients during registration phase.
  • the policy server uses the selected security algorithms for communication to determine whether the security algorithms for communication.
  • the policy 100 generates a policy (e.g., IPsec policy).
  • the policy may specify one or more encryption algorithms, hashing algorithms, or DH algorithms.
  • the policy may include the secure endpoint address of the remote client device 100b.
  • the policy may also include an access control list (ACL), such as a crypto ACL which contains the information about traffic selectors i.e., source and destination of the traffic.
  • ACL access control list
  • the host network behind client 101-a can be the source and host network behind client 101-b can be the destination.
  • ACL access control list
  • Figure 2 illustrates another example smart virtual private network.
  • Figure 2 illustrates host networks 113a-c, routing tables 1 1 la-c specifying communication paths 1 lOa-c, and a client database 115.
  • Each, any, or all of the client devices 10 la-c may correspond to a host network
  • the network is a host network or a protected network that is located behind the client device.
  • the network may include multiple servers, endpoints, or other network devices. However, all communication to any of the network devices in networks 113a-c must be routed through the respective client device lOla-c.
  • the client database 1 15 may list identifying information and security information for each of the networks 1 13a-c. For example, an entry in the client database 115 may associate host network X, which is behind client device A, with a security level of high. X and A may be host network & secure end point addresses respectively, names, or other identification values. Similarly, an entry in the client database 115 may associate network Y with client device B and a medium security level, and another entry in the client database 115 may associate network Z with client device C and a high security level.
  • the client database 1 15 may also associate each of the networks or client devices with a group identification.
  • the client device may be classified according to the group identification.
  • the group identification may classify or organize client devices of the same enterprise or entity. Therefore, the client database 115 may organize multiple groups of client devices using the group identifier. Communication may not be permitted between client devices have different group identifiers.
  • the communication paths 1 lOa-c may be tunnels.
  • the communication paths 1 lOa-c may be specified according to a virtual tunnel interface (VTI).
  • VTI virtual tunnel interface
  • the communication paths may utilize multiple forms of encapsulation. For example, communications may be encapsulated with generic routing encapsulation (GRE) and IPsec encapsulation on top of the GRE.
  • GRE generic routing encapsulation
  • IPsec IPsec encapsulation
  • Figures 3 and 4 illustrate an example flowchart for a client network device of
  • a security session or secure channel is initiated between the policy server 100 and a client device (e.g., client device 101a).
  • the security session may be specific to a client-server pair.
  • the security session may be an IPSec session and include a key exchange (e.g., IKE).
  • the client device registers its secure-end point address, its host network summary and preferred security level to the policy server. For example, the client device generates a registration request and encapsulates the registration request in a user datagram protocol (UDP) packet through the security session or secure channel to the policy server 100.
  • UDP user datagram protocol
  • the UDP packet may include a header with four fields, including source port number, destination port number, length, and checksum.
  • the addresses may include an IP address for the network device 101a.
  • the addresses may include a wide area network (WAN) address for the client device 101a and a local area network (LAN) or host network address for the protected network behind the client device 101a.
  • the addresses may include addresses or an address range for endpoints connected to the protected network.
  • the security configuration at policy server may include generalized security levels as described in Table 1. Any number of levels is possible.
  • the security algorithms for different security levels may be configurable at the policy server 100.
  • security algorithms include advanced encryption standard (AES), data encryption standard (DES), secure hash algorithm (SHA), message digest algorithm 5 (MD5), or other algorithms.
  • the policy server 100 In response to receiving the registration, the policy server 100 generates an acknowledgement message and sends the acknowledgement message back to the client device in response to the registration request.
  • the client device determines whether the acknowledgement is received during a predetermined timeout period. Example timeout periods may be 5 seconds, 100 seconds, or another value. If the timeout period passes without receiving an acknowledgement message, the client device may attempt another registration by sending the addresses and preferred security level to the policy server 100 again. The client device may repeat the registration a configurable number of times and report an error with the policy server 100 if registration continues to be unsuccessful.
  • the client device may update its routing table for at least one other client device's host network with the address of the policy server 100 as next-hop.
  • the acknowledgement message includes a list of the other registered client devices & their respective host networks.
  • the routing table for the recently registered client device is updated so that the address of the policy server 100 is listed as the next hop address for each of the other registered client device's host networks.
  • the client device looks for data traffic.
  • the data traffic includes one or more data packets including a destination address.
  • the client device determines whether data traffic has been received that is destined for one of the other client devices. If not, the client the device does nothing, as shown by block 230.
  • the client device queries a policy database.
  • the policy database may be an IPsec database.
  • the policy database may list security policies associated with the other client devices that have already been established with a security policy.
  • the client device determines whether the destination address, or at least the first prefix of the destination address, is associated in the policy database with a security policy. If such an association does exist, the client device further checks whether the destination address also has a security association (e.g., an IPsec SA), as shown by 243. If a security association exists, the client device encrypts and sends the one or more packets to the destination, as shown by 247. At 245, when no security association exists, the client device establishes a secure session with the other client device (e.g., remote client). The secure session may involve triggering IKE and IPsec.
  • a security association e.g., an IPsec SA
  • the client device determines that no security policy exists in the policy database for the destination, the client device queries the routing table for the next hop address associated with the destination address.
  • the client device determines whether the next hop address is the address of the policy server. If not, the data packet will be sent in clear text without any security algorithms applied, as shown by 253.
  • the client device initiates a policy request at 255 and sends the policy request to the policy server 100.
  • the policy request may include a summary, which includes a source IP address and a destination IP address of the one or more packets received at the client device.
  • the destination IP address may be the same as the destination network address extracted from the data traffic.
  • client may start dropping the data packets until the IPsec policy is received from the policy server.
  • the client device determines whether an acknowledgement message for the policy request has been received from the policy server 100. If no acknowledgement message was received after a predetermined timeout period, the client device may initiate and send another policy request.
  • the client device determines whether a security policy is received from the policy server 100 or not.
  • the client device drops the data packets when no security policy is received.
  • the client device may establish a virtual access interface to apply the security policy.
  • the virtual access interface may be cloned or dynamically created from an existing virtual access interface. Attributes, such as quality of service parameters or a maximum transmission size setting, may be inherited to the cloned virtual access interface from the existing virtual access interface.
  • the client device may modify the routing table using the cloned virtual access interface as the new hop for the destination address.
  • the client device establishes a secure session with the other client device.
  • the secure session may involve triggering IKE and IPsec according to the security policy received from Policy Server.
  • the data traffic is encrypted and sent to the destination address, such as a protected network behind another client device, using the secure session.
  • Figure 5 illustrates an example flowchart for the policy server 100 of Figures 1 or 2. Additional, fewer, or different blocks in the flowchart may be included.
  • the policy server 100 applies an initial security policy for communication with client devices as given in Figures 3 and 4.
  • the policy server 100 monitors a predefined port.
  • the port may be a UDP port.
  • the policy server 100 determines whether a request was received from one of the client device and identifies the type of request.
  • the type of request may be a registration request or a policy request.
  • the request may include a flag that identifies the request as either a registration request or a policy request.
  • the policy server 100 is configured to update the client database. Also in response to the registration request, the policy server 100 is configured to generate an acknowledgement message. At 275, the policy server 100 may send the acknowledgement message to the requesting client device in order to indicate to the requesting client device that registration was successful. The policy server 100 may return to monitoring the predefined port. [0048]
  • the acknowledgement message for the requesting client device may include information about the protected networks of other client devices. For example, an acknowledgement message generated for client device 101a may include protected address information associated with client device 101b and/or client device 101c.
  • the requesting client device is configured to add the routes of protected networks pushed by the policy server 100 into its routing table with the next hop address listed as the policy server 100.
  • the policy server 100 is configured to query the client database for a destination network address extracted from the policy request.
  • the destination network address is the one, which is originated from the data traffic received at the client device.
  • the client database includes mapping information of each client device's protected network to a respective level of security and a secure-end point address for the protected network.
  • the policy server 100 determines whether the client database has a match for the destination network. When no match exists, the policy server 100 may generate a negative acknowledgement message and send the negative acknowledgement message to the requesting client device.
  • the policy server 100 further extracts one or more security algorithms based on the security levels associated with the source and destination network. In one example, the policy server 100 determines whether there is a common security algorithm between the requesting client device and the destination network.
  • the common security algorithms may be the highest security level compatible with both the source client device and the destination client device.
  • the policy server 100 generates a security policy based on the common security algorithm and sends the security policy to the requesting client device and the destination client device.
  • the security policy is pushed to the requesting client device and also to the destination client device.
  • the security policy may be defined according to IPsec.
  • An IPsec policy pushed by policy server 100 may contain a transformation set as any combination of an encryption algorithm, a hash algorithm, and a DH algorithm based on the preferred and common security level.
  • the IPsec policy may list a secure endpoint address of the destination client device.
  • the IPsec policy may include an access control list (ACL) that specifies the type of traffic to protect.
  • ACL access control list
  • the policy server 100 and/or the client devices may delete the security policy.
  • the security policy may be deleted in response to tearing down the communication channel.
  • the security policy is deleted after a predetermined time passes after the communication channel has been torn down.
  • the client devices are also configured to merge the IPSec policies, if required.
  • the policies of the two networks are merged into a single policy when the same security level is used for both networks.
  • the client device merges an existing security policy with a newly received policy for the second network.
  • Communications destined for the second network may use the existing communication channel (e.g., IPsec channel) instead of creating a new communication channel with same client device.
  • IPsec channel e.g., IPsec channel
  • Figure 6 illustrates an example network device 300 for the networks of Figure
  • the network device 300 includes at least a memory 301, a controller 303, and a communication interface 305.
  • the network device 300 may correspond to the policy server 100 or any one of the client devices lOla-c.
  • a database 307 or the memory 301 stores the client database 1 15 and in the other example, the database 307 or the memory 301 store the routing table. Additional, different, or fewer components may be provided. Different network devices may have the same or different arrangement of components.
  • the network device 300 may represent the policy server 100.
  • the database may represent the policy server 100.
  • the network device 300 facilitates secured communication between client devices or between a client device and one of the protected networks.
  • the network device 300 may establish a virtual private network between client devices.
  • the communication interface 305 is configured to receive a registration request from one of the client devices.
  • the registration request including a security configuration for the originating client device.
  • the security configuration includes a security level or a security algorithm.
  • the controller 303 is configured to update the client database according to the security configuration and generate a routing message for the originating client device.
  • the routing message defines routing for communication from the first client device to a second client device.
  • the routing message may designate the policy server 100 as the next hop address for communication from the originating client device to a remote client device.
  • the communication interface 305 may also receive a policy request from the originating client device.
  • the policy request may specify that data traffic has arrived at the originating client device and destined for the remote client device.
  • the controller 303 is configured to query the client database based on the policy request and generate a security policy based on at least the security configuration stored in the client database.
  • the security policy may be the most secure common security algorithm included in both the entry for the originating client device and the entry for the remote client device.
  • the network device 300 may represent one of the client device lOla-c.
  • the database 307 or the memory 301 is a routing database configured to store destination addresses and next hop addresses.
  • the controller 303 is configured to generate a registration request including a security level for a local device and configured to update the routing database based on a routing message received from a policy server in response to the registration request.
  • the routing message defines the next hop address for a remote client device as the policy server in the routing database in the network device 300.
  • the controller 303 determines whether the packet should be protected using a secure channel.
  • a list of IP addresses that require secure communications are stored in the memory 301 and consulted with the source IP address in the new data packet.
  • a list of protected types of data packets are stored in the memory 301 and consulted based on the data packet. The type of data packet may be determined from the body of the data packet or a specialized field in the data packet.
  • the controller 303 is configured to query the routing database based on the received packet listing the remote client device as a destination and forward the received packet to the policy server 100.
  • the policy server 100 facilitates a secure session between the network device 300 and the remote client device.
  • the secure session may be an IPsec session.
  • the controller 303 may also drop the received packet in response to the destination being associated with the policy server 100 in the routing database.
  • the controller 303 may include a general processor, digital signal processor, an application specific integrated circuit (ASIC), field programmable gate array (FPGA), analog circuit, digital circuit, combinations thereof, or other now known or later developed processor.
  • the controller 303 may be a single device or combinations of devices, such as associated with a network, distributed processing, or cloud computing.
  • the memory 301 may be a volatile memory or a non- volatile memory.
  • the memory 301 may include one or more of a read only memory (ROM), random access memory (RAM), a flash memory, an electronic erasable program read only memory
  • the memory 301 may be removable from the network device 300, such as a secure digital (SD) memory card.
  • SD secure digital
  • the communication interface may include any operable connection.
  • An operable connection may be one in which signals, physical communications, and/or logical communications may be sent and/or received.
  • An operable connection may include a physical interface, an electrical interface, and/or a data interface.
  • the network may include wired networks, wireless networks, or combinations thereof.
  • the wireless network may be a cellular telephone network, an 802.1 1, 802.16, 802.20, or WiMax network.
  • the network may be a public network, such as the Internet, a private network, such as an intranet, or combinations thereof, and may utilize a variety of networking protocols now available or later developed including, but not limited to TCP/IP based networking protocols.
  • computer-readable medium is shown to be a single medium (e.g., memory 301 or database 307)
  • computer-readable medium includes a single medium or multiple media, such as a centralized or distributed database, and/or associated caches and servers that store one or more sets of instructions.
  • the term "computer-readable medium” shall also include any medium that is capable of storing, encoding or carrying a set of instructions for execution by a processor or that cause a computer system to perform any one or more of the methods or operations disclosed herein.
  • the methods described herein may be implemented by software programs executable by a computer system. Further, in an exemplary, non-limited embodiment, implementations can include distributed processing, component/object distributed processing, and parallel processing. Alternatively, virtual computer system processing can be constructed to implement one or more of the methods or functionality as described herein. [0070] Although the present specification describes components and functions that may be implemented in particular embodiments with reference to particular standards and protocols, the invention is not limited to such standards and protocols. For example, standards for Internet and other packet switched network transmission (e.g., TCP/IP, UDP/IP, HTML, HTTP, HTTPS) represent examples of the state of the art. Such standards are periodically superseded by faster or more efficient equivalents having essentially the same functions. Accordingly, replacement standards and protocols having the same or similar functions as those disclosed herein are considered equivalents thereof.
  • a computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
  • a computer program does not necessarily correspond to a file in a file system.
  • a program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code).
  • a computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
  • the processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output.
  • the processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
  • processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and anyone or more processors of any kind of digital computer.
  • a processor will receive instructions and data from a read only memory or a random access memory or both.
  • the essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data.
  • Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back end, middleware, or front end components.
  • the components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.
  • LAN local area network
  • WAN wide area network
  • inventions of the disclosure may be referred to herein, individually and/or collectively, by the term "invention" merely for convenience and without intending to voluntarily limit the scope of this application to any particular invention or inventive concept.
  • inventions may be referred to herein, individually and/or collectively, by the term "invention" merely for convenience and without intending to voluntarily limit the scope of this application to any particular invention or inventive concept.
  • specific embodiments have been illustrated and described herein, it should be appreciated that any subsequent arrangement designed to achieve the same or similar purpose may be substituted for the specific embodiments shown.
  • This disclosure is intended to cover any and all subsequent adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the description.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

In one implementation, a policy server establishes a smart virtual private network between two client devices. The smart virtual private network includes a secure communication session using a security level or security algorithm that is variable and defined as a function of the two client devices. A first client device may generate a registration request including a first security configuration including the security level. Based on the registration request, the policy server generates a routing message that defines routing for communication from the first client device to a second client device. The routing message may update a routing table to associate the policy server with the second client device.

Description

SMART VIRTUAL PRIVATE NETWORK
TECHNICAL FIELD
[0001] This disclosure relates in general to the field of secure communication between client devices.
BACKGROUND
[0002] Internet protocol security (IPsec) is an example of a security protocol for securing network communications by authenticating and/or encrypting each data packet. Mutual authentication is established between a network of two or more computing system endpoints at the beginning of a communication session. However, in conventional IPsec and other similar security protocols, routers are statically configured for the secure
communications for a single security level.
[0003] In an example network, a hub is a centrally located network device and spoke network devices connected to the hub. A spoke may be a branch router or an edge router. Spokes located in different geographies are connected to the same hub. In hub and spoke network, all spokes use the same hashing and encryption algorithms.
[0004] In these examples of security protocols, hub and spoke networks, and other scenarios, individual devices are forced to use the common security level rather that the optimal security level for the individual devices.
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] Exemplary embodiments of the present embodiments are described herein with reference to the following drawings.
[0006] Figure 1 illustrates an example smart virtual private network.
[0007] Figure 2 illustrates another example smart virtual private network.
[0008] Figures 3 and 4 illustrate an example flowchart for a client network device of
Figures 1 or 2.
[0009] Figure 5 illustrates an example flowchart for a policy server of Figures 1 or 2.
[0010] Figure 6 illustrates an example client network device or an example policy server. DESCRIPTION OF EXAMPLE EMBODIMENTS
OVERVIEW
[0011] In one embodiment, a security protocol channel is established between a policy server and a first client device. A registration request including a first security configuration for the first client device is received. The first security configuration includes a security level. A client database is updated according to the security configuration. A routing message, which defines routing for communication from the first client device to a second client device, is generated for the first client device.
[0012] In another embodiment, a security protocol channel with a policy server is established. A registration request including a first security configuration for the first client device and including a security level is sent to the policy server. A routing message is received from the policy server. The routing message defines routing for communication from the first client device to a second client device. A routing table is updated in response to the routing message.
EXAMPLE EMBODIMENTS
[0013] In hub and spoke networks, virtual private networks (VPN) involving any of the spoke devices terminate at the hub device. All communication is routed through the hub device, and all spoke devices use the same hashing and encryption algorithms for all communication. In hub and spoke networks, the hub device may resolve a non-broadcast multiple access (NBMA) address for communication with a network behind a spoke device. However, the hub and spoke model does not permit policies to be pushed to the spoke devices or dynamic selection of a policy.
[0014] Group encrypted transport virtual private networks (GETVPNs) solve various scalability and manageability issues of partially or fully meshed VPNs. However, GETVPNs do not hide endpoint identities, which may allow unauthorized entities to discover with whom the information is communicated. In addition, members in the GETVPN must use the same cryptographic algorithm. No flexibility is provided in choosing different security algorithms and/or hash algorithms for different group members. In some circumstances, the highest possible security level should be used. However, in other circumstances lower security levels may provide sufficient protection without wasting bandwidth, CPU cycles, or other resources. In addition, GETVPN may require a private wide area network (WAN), such as
multiprotocol label switching (MPLS), to communication, which is additional overhead that may consume resources. [0015] The following embodiments provide secure point-to-point communication through a virtual private network with varying levels of security. The level of security is selected based on the capabilities of the endpoints, preferences of the endpoints, or the type of communication. A virtual private network is established using a client and server model. Client registers with Policy Server to update its host networks and the level of security, which is required. When a data packet arrives at an originating client destined for a remote client, the originating client requests a policy from the policy server. After receiving the policy from Policy Server, the originating client establishes direct secure communication with destination client.
[0016] Figure 2 illustrates an example system for providing smart virtual private networks configured with dynamic security levels. The system includes at least a policy server 100 and two client devices. For example, a smart VPN may be established between any of the client devices lOla-c.
[0017] Initially, a security channel between the policy server 100 and one of the client devices (e.g., client device 101a) is established. The security channel may be established using IPsec security protocol. Internet protocol security (IPsec) is a security protocol that operates on the Internet layer of the Internet protocol suite. The security protocol may specify five stages including tunnel initiation, Internet key exchange (IKE), IPSec Session establishment, data transfer, and tunnel termination.
[0018] In a registration phase, the client device 101a is configured to generate a registration request and send the registration request, via the security channel, to the policy server 100. The policy server 100 receives the registration request which may contains the client's host network summary and the preferred security level for each host network. The Policy Server decides the choice of encryption, hash & DH algorithms for different levels of security, which can be configured at Policy Server as shown in Table 1.
Figure imgf000004_0001
Table 1 [0019] The policy server 100 is configured to update a client database according to the client's host network and its respective security level. The client devices may be listed by IP address, a media access control (MAC) address, or another identification value. The security levels may be selected by the client during registration depends on the type of communication. For example, the high security level may be used for banking or other transactions, the medium level may be used for file server transfers, and the low level may be used for public web traffic or messaging.
[0020] The policy server 100 generates an acknowledgement message for the client device 101a, which may contain the host network information of other registered clients lOlb-c. This will allow the client device 101a to communicate with other client's lOlb-c host networks. For example, the registration acknowledgement message may specify the address of the policy server 100 as the next hop address for client device 101b and/or client device 101c host networks. The client device 101a receives the registration acknowledgement message and updates its routing table with Policy server as next hop address for client device 101b and/or client device 101c host networks. The registration phase is complete.
[0021] In the policy request phase, a client device requests the policy server 100 to establish direct communication with another client device. For example, a policy request from client device 101a may specify its intent to establish a direct communication with client device 101b. The policy server 100 queries the client database for the security configuration for the client device 101b. The security configuration may specify individual algorithms or a generalized security level.
[0022] In one example, the policy server 100 queries the client database for the security configuration for the client devices 101b and 101a. The policy server 100 may determine the greatest common security algorithms between two clients for encryption, hashing and Diffie-Hellman, based on the security levels registered by clients during registration phase.
[0023] Using the selected security algorithms for communication, the policy server
100 generates a policy (e.g., IPsec policy). The policy may specify one or more encryption algorithms, hashing algorithms, or DH algorithms. The policy may include the secure endpoint address of the remote client device 100b. The policy may also include an access control list (ACL), such as a crypto ACL which contains the information about traffic selectors i.e., source and destination of the traffic. For example, here the host network behind client 101-a can be the source and host network behind client 101-b can be the destination. Based on the policy a direct communication session is established between the client device 101a and the client device 101b.
[0024] Figure 2 illustrates another example smart virtual private network. In addition to the policy server 100 and the client devices lOla-c, Figure 2 illustrates host networks 113a-c, routing tables 1 1 la-c specifying communication paths 1 lOa-c, and a client database 115.
[0025] Each, any, or all of the client devices 10 la-c may correspond to a host network
(e.g., networks 113a-c). The network is a host network or a protected network that is located behind the client device. The network may include multiple servers, endpoints, or other network devices. However, all communication to any of the network devices in networks 113a-c must be routed through the respective client device lOla-c.
[0026] The client database 1 15 may list identifying information and security information for each of the networks 1 13a-c. For example, an entry in the client database 115 may associate host network X, which is behind client device A, with a security level of high. X and A may be host network & secure end point addresses respectively, names, or other identification values. Similarly, an entry in the client database 115 may associate network Y with client device B and a medium security level, and another entry in the client database 115 may associate network Z with client device C and a high security level.
[0027] The client database 1 15 may also associate each of the networks or client devices with a group identification. The client device may be classified according to the group identification. The group identification may classify or organize client devices of the same enterprise or entity. Therefore, the client database 115 may organize multiple groups of client devices using the group identifier. Communication may not be permitted between client devices have different group identifiers.
[0028] The communication paths 1 lOa-c may be tunnels. In one example, the communication paths 1 lOa-c may be specified according to a virtual tunnel interface (VTI). The communication paths may utilize multiple forms of encapsulation. For example, communications may be encapsulated with generic routing encapsulation (GRE) and IPsec encapsulation on top of the GRE. The routing tables 11 la-c may associate one or more virtual tunnel interfaces with destination networks.
[0029] Figures 3 and 4 illustrate an example flowchart for a client network device of
Figures 1 or 2. Additional, fewer, or different blocks in the flowchart may be included. At 221, a security session or secure channel is initiated between the policy server 100 and a client device (e.g., client device 101a). The security session may be specific to a client-server pair. The security session may be an IPSec session and include a key exchange (e.g., IKE).
[0030] At 223, the client device registers its secure-end point address, its host network summary and preferred security level to the policy server. For example, the client device generates a registration request and encapsulates the registration request in a user datagram protocol (UDP) packet through the security session or secure channel to the policy server 100. The UDP packet may include a header with four fields, including source port number, destination port number, length, and checksum.
[0031] The addresses may include an IP address for the network device 101a. The addresses may include a wide area network (WAN) address for the client device 101a and a local area network (LAN) or host network address for the protected network behind the client device 101a. The addresses may include addresses or an address range for endpoints connected to the protected network.
[0032] The security configuration at policy server may include generalized security levels as described in Table 1. Any number of levels is possible. The security algorithms for different security levels may be configurable at the policy server 100. For Example, security algorithms include advanced encryption standard (AES), data encryption standard (DES), secure hash algorithm (SHA), message digest algorithm 5 (MD5), or other algorithms.
[0033] In response to receiving the registration, the policy server 100 generates an acknowledgement message and sends the acknowledgement message back to the client device in response to the registration request. The client device, at 225, determines whether the acknowledgement is received during a predetermined timeout period. Example timeout periods may be 5 seconds, 100 seconds, or another value. If the timeout period passes without receiving an acknowledgement message, the client device may attempt another registration by sending the addresses and preferred security level to the policy server 100 again. The client device may repeat the registration a configurable number of times and report an error with the policy server 100 if registration continues to be unsuccessful.
[0034] At 227, the client device may update its routing table for at least one other client device's host network with the address of the policy server 100 as next-hop.
Information for updating the routing table may be included in the acknowledgement message. In one example, the acknowledgement message includes a list of the other registered client devices & their respective host networks. The routing table for the recently registered client device is updated so that the address of the policy server 100 is listed as the next hop address for each of the other registered client device's host networks.
[0035] At 229, the client device looks for data traffic. The data traffic includes one or more data packets including a destination address. The client device determines whether data traffic has been received that is destined for one of the other client devices. If not, the client the device does nothing, as shown by block 230.
[0036] At 231, if data traffic, or the specified data traffic, is received, the client device queries a policy database. The policy database may be an IPsec database. The policy database may list security policies associated with the other client devices that have already been established with a security policy.
[0037] At 241, which is shown in Figure 4, the client device determines whether the destination address, or at least the first prefix of the destination address, is associated in the policy database with a security policy. If such an association does exist, the client device further checks whether the destination address also has a security association (e.g., an IPsec SA), as shown by 243. If a security association exists, the client device encrypts and sends the one or more packets to the destination, as shown by 247. At 245, when no security association exists, the client device establishes a secure session with the other client device (e.g., remote client). The secure session may involve triggering IKE and IPsec.
[0038] At 249, when the client device determines that no security policy exists in the policy database for the destination, the client device queries the routing table for the next hop address associated with the destination address.
[0039] At 251, the client device determines whether the next hop address is the address of the policy server. If not, the data packet will be sent in clear text without any security algorithms applied, as shown by 253.
[0040] If the next hop address is the address of the policy server 100, the client device initiates a policy request at 255 and sends the policy request to the policy server 100. The policy request may include a summary, which includes a source IP address and a destination IP address of the one or more packets received at the client device. The destination IP address may be the same as the destination network address extracted from the data traffic. In addition, in response to the address of the policy server being listed as the next hop address, If there is no response for the policy request sent by the client, client may start dropping the data packets until the IPsec policy is received from the policy server. [0041] At 257, the client device determines whether an acknowledgement message for the policy request has been received from the policy server 100. If no acknowledgement message was received after a predetermined timeout period, the client device may initiate and send another policy request.
[0042] At 259, the client device determines whether a security policy is received from the policy server 100 or not. At 261, the client device drops the data packets when no security policy is received.
[0043] At 263, the client device may establish a virtual access interface to apply the security policy. The virtual access interface may be cloned or dynamically created from an existing virtual access interface. Attributes, such as quality of service parameters or a maximum transmission size setting, may be inherited to the cloned virtual access interface from the existing virtual access interface. The client device may modify the routing table using the cloned virtual access interface as the new hop for the destination address.
[0044] At 265, the client device establishes a secure session with the other client device. The secure session may involve triggering IKE and IPsec according to the security policy received from Policy Server. At 247, the data traffic is encrypted and sent to the destination address, such as a protected network behind another client device, using the secure session.
[0045] Figure 5 illustrates an example flowchart for the policy server 100 of Figures 1 or 2. Additional, fewer, or different blocks in the flowchart may be included. At 267, the policy server 100 applies an initial security policy for communication with client devices as given in Figures 3 and 4. At 269, the policy server 100 monitors a predefined port. The port may be a UDP port.
[0046] At 271, the policy server 100 determines whether a request was received from one of the client device and identifies the type of request. The type of request may be a registration request or a policy request. The request may include a flag that identifies the request as either a registration request or a policy request.
[0047] At 273, for registration requests, the policy server 100 is configured to update the client database. Also in response to the registration request, the policy server 100 is configured to generate an acknowledgement message. At 275, the policy server 100 may send the acknowledgement message to the requesting client device in order to indicate to the requesting client device that registration was successful. The policy server 100 may return to monitoring the predefined port. [0048] The acknowledgement message for the requesting client device may include information about the protected networks of other client devices. For example, an acknowledgement message generated for client device 101a may include protected address information associated with client device 101b and/or client device 101c. The requesting client device is configured to add the routes of protected networks pushed by the policy server 100 into its routing table with the next hop address listed as the policy server 100.
[0049] At 277, for policy requests, the policy server 100 is configured to query the client database for a destination network address extracted from the policy request. The destination network address is the one, which is originated from the data traffic received at the client device. The client database includes mapping information of each client device's protected network to a respective level of security and a secure-end point address for the protected network.
[0050] At 279, the policy server 100 determines whether the client database has a match for the destination network. When no match exists, the policy server 100 may generate a negative acknowledgement message and send the negative acknowledgement message to the requesting client device.
[0051] At 283, when a match between the destination network and the client database exists, the policy server 100 further extracts one or more security algorithms based on the security levels associated with the source and destination network. In one example, the policy server 100 determines whether there is a common security algorithm between the requesting client device and the destination network. The common security algorithms may be the highest security level compatible with both the source client device and the destination client device.
[0052] At 285, the policy server 100 generates a security policy based on the common security algorithm and sends the security policy to the requesting client device and the destination client device. When the security policy is ready at the policy server 100, the security policy is pushed to the requesting client device and also to the destination client device. The security policy may be defined according to IPsec. An IPsec policy pushed by policy server 100 may contain a transformation set as any combination of an encryption algorithm, a hash algorithm, and a DH algorithm based on the preferred and common security level. The IPsec policy may list a secure endpoint address of the destination client device. The IPsec policy may include an access control list (ACL) that specifies the type of traffic to protect. [0053] After communication ends between the requesting client device and the destination client device using the security policy, the policy server 100 and/or the client devices may delete the security policy. The security policy may be deleted in response to tearing down the communication channel. In one example, the security policy is deleted after a predetermined time passes after the communication channel has been torn down.
[0054] The client devices are also configured to merge the IPSec policies, if required.
For example, when more than one network is behind a client device, the policies of the two networks are merged into a single policy when the same security level is used for both networks. Instead of creating a new virtual access interface, the client device merges an existing security policy with a newly received policy for the second network.
Communications destined for the second network may use the existing communication channel (e.g., IPsec channel) instead of creating a new communication channel with same client device.
[0055] Figure 6 illustrates an example network device 300 for the networks of Figure
1 of Figure 2. The network device 300 includes at least a memory 301, a controller 303, and a communication interface 305. The network device 300 may correspond to the policy server 100 or any one of the client devices lOla-c. In one example, a database 307 or the memory 301 stores the client database 1 15 and in the other example, the database 307 or the memory 301 store the routing table. Additional, different, or fewer components may be provided. Different network devices may have the same or different arrangement of components.
[0056] The network device 300 may represent the policy server 100. The database
307 or the memory 301 is a client database configured to store protected network addresses associated with security configurations. Each of the networks listed in the client database may be associated with a client device of an enterprise. The network device 300 facilitates secured communication between client devices or between a client device and one of the protected networks. The network device 300 may establish a virtual private network between client devices.
[0057] The communication interface 305 is configured to receive a registration request from one of the client devices. The registration request including a security configuration for the originating client device. The security configuration includes a security level or a security algorithm.
[0058] The controller 303 is configured to update the client database according to the security configuration and generate a routing message for the originating client device. The routing message defines routing for communication from the first client device to a second client device. The routing message may designate the policy server 100 as the next hop address for communication from the originating client device to a remote client device.
[0059] The communication interface 305 may also receive a policy request from the originating client device. The policy request may specify that data traffic has arrived at the originating client device and destined for the remote client device. The controller 303 is configured to query the client database based on the policy request and generate a security policy based on at least the security configuration stored in the client database. The security policy may be the most secure common security algorithm included in both the entry for the originating client device and the entry for the remote client device.
[0060] The network device 300 may represent one of the client device lOla-c. The database 307 or the memory 301 is a routing database configured to store destination addresses and next hop addresses.
[0061] The controller 303 is configured to generate a registration request including a security level for a local device and configured to update the routing database based on a routing message received from a policy server in response to the registration request. The routing message defines the next hop address for a remote client device as the policy server in the routing database in the network device 300.
[0062] When the communication interface 305 subsequently receives a data packet, the controller 303 determines whether the packet should be protected using a secure channel. In one example, a list of IP addresses that require secure communications are stored in the memory 301 and consulted with the source IP address in the new data packet. In another example, a list of protected types of data packets are stored in the memory 301 and consulted based on the data packet. The type of data packet may be determined from the body of the data packet or a specialized field in the data packet.
[0063] The controller 303 is configured to query the routing database based on the received packet listing the remote client device as a destination and forward the received packet to the policy server 100. The policy server 100 facilitates a secure session between the network device 300 and the remote client device. The secure session may be an IPsec session. The controller 303 may also drop the received packet in response to the destination being associated with the policy server 100 in the routing database.
[0064] The controller 303 may include a general processor, digital signal processor, an application specific integrated circuit (ASIC), field programmable gate array (FPGA), analog circuit, digital circuit, combinations thereof, or other now known or later developed processor. The controller 303 may be a single device or combinations of devices, such as associated with a network, distributed processing, or cloud computing.
[0065] The memory 301 may be a volatile memory or a non- volatile memory. The memory 301 may include one or more of a read only memory (ROM), random access memory (RAM), a flash memory, an electronic erasable program read only memory
(EEPROM), or other type of memory. The memory 301 may be removable from the network device 300, such as a secure digital (SD) memory card.
[0066] In addition to ingress ports and egress ports, the communication interface may include any operable connection. An operable connection may be one in which signals, physical communications, and/or logical communications may be sent and/or received. An operable connection may include a physical interface, an electrical interface, and/or a data interface.
[0067] The network may include wired networks, wireless networks, or combinations thereof. The wireless network may be a cellular telephone network, an 802.1 1, 802.16, 802.20, or WiMax network. Further, the network may be a public network, such as the Internet, a private network, such as an intranet, or combinations thereof, and may utilize a variety of networking protocols now available or later developed including, but not limited to TCP/IP based networking protocols.
[0068] While the computer-readable medium is shown to be a single medium (e.g., memory 301 or database 307), the term "computer-readable medium" includes a single medium or multiple media, such as a centralized or distributed database, and/or associated caches and servers that store one or more sets of instructions. The term "computer-readable medium" shall also include any medium that is capable of storing, encoding or carrying a set of instructions for execution by a processor or that cause a computer system to perform any one or more of the methods or operations disclosed herein.
[0069] In accordance with various embodiments of the present disclosure, the methods described herein may be implemented by software programs executable by a computer system. Further, in an exemplary, non-limited embodiment, implementations can include distributed processing, component/object distributed processing, and parallel processing. Alternatively, virtual computer system processing can be constructed to implement one or more of the methods or functionality as described herein. [0070] Although the present specification describes components and functions that may be implemented in particular embodiments with reference to particular standards and protocols, the invention is not limited to such standards and protocols. For example, standards for Internet and other packet switched network transmission (e.g., TCP/IP, UDP/IP, HTML, HTTP, HTTPS) represent examples of the state of the art. Such standards are periodically superseded by faster or more efficient equivalents having essentially the same functions. Accordingly, replacement standards and protocols having the same or similar functions as those disclosed herein are considered equivalents thereof.
[0071] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
[0072] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
[0073] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and anyone or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data.
[0074] Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network ("LAN") and a wide area network ("WAN"), e.g., the Internet.
[0075] One or more embodiments of the disclosure may be referred to herein, individually and/or collectively, by the term "invention" merely for convenience and without intending to voluntarily limit the scope of this application to any particular invention or inventive concept. Moreover, although specific embodiments have been illustrated and described herein, it should be appreciated that any subsequent arrangement designed to achieve the same or similar purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all subsequent adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the description.
[0076] It is intended that the foregoing detailed description be regarded as illustrative rather than limiting and that it is understood that the following claims including all equivalents are intended to define the scope of the invention. The claims should not be read as limited to the described order or elements unless stated to that effect. Therefore, all embodiments that come within the scope and spirit of the following claims and equivalents thereto are claimed as the invention.

Claims

WE CLAIM:
1. A method comprising:
establishing a security protocol channel between a policy server and a first client device;
receiving a registration request including a first security configuration for the first client device, wherein the first security configuration includes a security level;
updating a client database according to the security configuration; and
generating a routing message for the first client device, wherein the routing message defines routing for communication from the first client device to a second client device.
2. The method of claim 1, wherein the routing message is configured to update a routing table of the first client device with an address of the policy server as a next hop for communication to the second client device.
3. The method of claim 1, further comprising:
receiving a policy request from the first client device, wherein the policy request specifies the second client device; and
accessing the client database based on the policy request.
4. The method of claim 3, further comprising:
generating a security policy based on the first security configuration and the second security configuration.
5. The method of claim 4, further comprising:
in response to the policy request from the first client device, pushing the security polity to the first client device and the second client device.
6. The method of claim 4, wherein the security policy includes a highest common security level of the security level of the first client device and a security level of the second client device.
7. The method of claim 4, wherein the security policy includes data indicative of an encryption algorithm or a hash algorithm.
8. A method comprising:
establishing a security protocol channel with a policy server;
generating a registration request including a first security configuration for the first client device, wherein the first security configuration includes a security level;
sending the registration request to the policy server;
receiving a routing message from the policy server, wherein the routing message defines routing for communication from the first client device to a second client device; and updating a routing table in response to the routing message.
9. The method of claim 8, further comprising:
receiving a packet for protection under the first security configuration; and querying the routing table for the destination address.
10. The method of claim 9, further comprising:
when the routing table specifies a next hop as the policy server for the packet for protection, sending a policy request to the policy server.
11. The method of claim 9, further comprising:
receiving an acknowledgement message from the policy server.
12. The method of claim 11, further comprising:
cloning a virtual access interface for secure communication under the policy.
13. The method of claim 9, further comprising:
when the routing table specifies a next hop as the policy server for the packet for protection, dropping the packet for protection.
14. An apparatus comprising:
a client database configured to store protected network addresses and security configurations; a communication interface configured to receive a registration request including a security configuration for a first client device, wherein the security configuration includes a security level or a security algorithm; and
a processor configured to update the client database according to the security configuration and generate a routing message for the first client device, wherein the routing message defines routing for communication from the first client device to a second client device.
15. The apparatus of claim 14, wherein the routing message is configured to update a routing table of the first client device with an address of the communication interface as a next hop for communication to the second client device.
16. The apparatus of claim 14, wherein the communication interface receives a policy request from the first client device, wherein the policy request specifies the second client device and the processor queries the client database based on the policy request.
17. The apparatus of claim 16, wherein the processor is configured to generate a security policy based on the security configuration of the first client device and a second security configuration of the second client device, and send the security policy to the first client device and the second client device.
18. An apparatus comprising:
a routing database configured to store destination addresses and next hop addresses; and
a processor configured to generate a registration request including a security level for a local device and configured to update the routing database based on a routing message received from a policy server in response to the registration request, wherein the routing message defines the next hop address for a remote client device as the policy server.
19. The apparatus of claim 18, wherein the processor is configured to query the routing database based on a received packet listing the remote client device as a destination and forward the received packet to the policy server.
20. The apparatus of claim 19, wherein the processor is configured to drop the received packet in response to the destination being associated with the policy server in the routing database.
PCT/US2014/066288 2013-11-26 2014-11-19 Smart virtual private network Ceased WO2015080909A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/090,378 2013-11-26
US14/090,378 US9516061B2 (en) 2013-11-26 2013-11-26 Smart virtual private network

Publications (1)

Publication Number Publication Date
WO2015080909A1 true WO2015080909A1 (en) 2015-06-04

Family

ID=52101588

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2014/066288 Ceased WO2015080909A1 (en) 2013-11-26 2014-11-19 Smart virtual private network

Country Status (2)

Country Link
US (1) US9516061B2 (en)
WO (1) WO2015080909A1 (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9137251B2 (en) * 2005-03-16 2015-09-15 Fortinet, Inc. Inheritance based network management
US9930066B2 (en) 2013-02-12 2018-03-27 Nicira, Inc. Infrastructure level LAN security
US10747888B2 (en) 2014-06-30 2020-08-18 Nicira, Inc. Method and apparatus for differently encrypting data messages for different logical networks
US9571463B2 (en) * 2014-07-14 2017-02-14 Raytheon Bbn Technologies Corp. Policy-based access control in content networks
CN104580168B (en) * 2014-12-22 2019-02-26 华为技术有限公司 A method, device and system for processing attack data packets
US10505891B2 (en) * 2015-04-02 2019-12-10 Nicira, Inc. Security policy selection for machines with dynamic addresses
US10484391B2 (en) * 2015-08-17 2019-11-19 Rohde & Schwarz Gmbh & Co. Kg Method and system for providing secure point-to-point communication
DE102016110723A1 (en) * 2016-06-10 2017-12-14 Endress+Hauser Process Solutions Ag A method for preventing unauthorized access to software applications in field devices
US11157641B2 (en) * 2016-07-01 2021-10-26 Microsoft Technology Licensing, Llc Short-circuit data access
US10798073B2 (en) 2016-08-26 2020-10-06 Nicira, Inc. Secure key management protocol for distributed network encryption
US10848992B2 (en) * 2017-02-21 2020-11-24 Sony Corporation Data communication by virtual network boosting using proxy nodes in wireless networks
US10862865B2 (en) * 2018-06-21 2020-12-08 United States Of America As Represented By The Secretary Of The Navy Small satellite device and system protected against cyber-attacks and method for protecting the same
US11212257B2 (en) * 2018-06-22 2021-12-28 Aeronix, Inc. Multi-level secure ethernet switch
EP3799386A1 (en) * 2019-09-26 2021-03-31 SECURING SAM Ltd. System and method for detecting and blocking malicious attacks on a network
US11916883B1 (en) * 2021-02-17 2024-02-27 Aviatrix Systems, Inc. System and method for segmenting transit capabilities within a multi-cloud architecture
US11943223B1 (en) 2021-02-17 2024-03-26 Aviatrix Systems, Inc. System and method for restricting communications between virtual private cloud networks through security domains

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2469753A1 (en) * 2009-08-21 2012-06-27 Huawei Device Co., Ltd. Method, device and network system for negotiating encryption information

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809233A (en) 1995-12-05 1998-09-15 Lucent Technologies Inc. Method of mapping from ATMARP to NHRP
GB2320167B (en) 1996-12-06 2002-08-21 Distrib Systems Res Inst The Integrated information communication system
US6678835B1 (en) 1999-06-10 2004-01-13 Alcatel State transition protocol for high availability units
US20020010866A1 (en) 1999-12-16 2002-01-24 Mccullough David J. Method and apparatus for improving peer-to-peer bandwidth between remote networks by combining multiple connections which use arbitrary data paths
US6823462B1 (en) * 2000-09-07 2004-11-23 International Business Machines Corporation Virtual private network with multiple tunnels associated with one group name
US7028092B2 (en) 2000-12-11 2006-04-11 Acme Packet, Inc. System and method for assisting in controlling real-time transport protocol flow through multiple networks via media flow routing
US7191331B2 (en) 2002-06-13 2007-03-13 Nvidia Corporation Detection of support for security protocol and address translation integration
US7447901B1 (en) * 2002-06-25 2008-11-04 Cisco Technology, Inc. Method and apparatus for establishing a dynamic multipoint encrypted virtual private network
US7478427B2 (en) * 2003-05-05 2009-01-13 Alcatel-Lucent Usa Inc. Method and apparatus for providing adaptive VPN to enable different security levels in virtual private networks (VPNs)
US7558877B1 (en) * 2003-09-12 2009-07-07 Nortel Networks Limited Self-configuring method and apparatus for providing secure communication between members of a group
US7421483B1 (en) 2004-02-02 2008-09-02 Juniper Networks, Inc. Autodiscovery and self configuration of customer premise equipment
US7957266B2 (en) 2004-05-28 2011-06-07 Alcatel-Lucent Usa Inc. Efficient and robust routing independent of traffic pattern variability
US7418253B2 (en) * 2004-07-19 2008-08-26 Telefonaktiebolaget Lm Ericsson (Publ) Method, security system control module and policy server for providing security in a packet-switched telecommunications system
US7623535B2 (en) 2004-09-09 2009-11-24 Cisco Technology, Inc. Routing protocol support for half duplex virtual routing and forwarding instance
US7409709B2 (en) 2005-02-14 2008-08-05 Etsec, Inc. Systems and methods for automatically reconfiguring a network device
US8260922B1 (en) 2005-09-16 2012-09-04 Cisco Technology, Inc. Technique for using OER with an ECT solution for multi-homed sites
US7848335B1 (en) 2005-10-27 2010-12-07 Juniper Networks, Inc. Automatic connected virtual private network
US7590123B2 (en) 2005-11-22 2009-09-15 Cisco Technology, Inc. Method of providing an encrypted multipoint VPN service
US7602737B2 (en) 2006-03-01 2009-10-13 Cisco Technology, Inc. Methods and apparatus for providing an enhanced dynamic multipoint virtual private network architecture
US7774837B2 (en) * 2006-06-14 2010-08-10 Cipheroptics, Inc. Securing network traffic by distributing policies in a hierarchy over secure tunnels
US8059641B1 (en) 2006-07-20 2011-11-15 Avaya Inc. Encapsulation method discovery protocol for network address translation gateway traversal
US7907595B2 (en) 2006-09-29 2011-03-15 Avaya, Inc. Method and apparatus for learning endpoint addresses of IPSec VPN tunnels
GB0623101D0 (en) * 2006-11-20 2006-12-27 British Telecomm Secure network architecture
US7720995B2 (en) * 2007-06-08 2010-05-18 Cisco Technology, Inc. Conditional BGP advertising for dynamic group VPN (DGVPN) clients
US7979895B2 (en) * 2007-08-16 2011-07-12 International Business Machines Corporation System and method for partitioning a multi-level security namespace
US8341410B2 (en) 2007-10-08 2012-12-25 Microsoft Corporation Efficient certified email protocol
US8625610B2 (en) 2007-10-12 2014-01-07 Cisco Technology, Inc. System and method for improving spoke to spoke communication in a computer network
EP2201743A4 (en) * 2007-10-17 2016-01-27 Ericsson Telefon Ab L M METHOD AND ARRANGEMENT FOR DETERMINING SECURITY ADJUSTMENT
US8346961B2 (en) * 2007-12-12 2013-01-01 Cisco Technology, Inc. System and method for using routing protocol extensions for improving spoke to spoke communication in a computer network
US8966011B2 (en) 2007-12-28 2015-02-24 Echostar Technologies L.L.C. Performance enhancing proxy
US8745373B2 (en) * 2008-04-23 2014-06-03 Dell Products L.P. Systems and methods for applying encryption to network traffic on the basis of policy
US7869446B2 (en) 2008-10-06 2011-01-11 Cisco Technology, Inc. Optimized dynamic multipoint virtual private network over IPv6 network
US20100146582A1 (en) * 2008-12-04 2010-06-10 Dell Products L.P. Encryption management in an information handling system
WO2010127610A1 (en) 2009-05-04 2010-11-11 成都市华为赛门铁克科技有限公司 Method, equipment and system for processing visual private network node information
US8650618B2 (en) 2009-07-22 2014-02-11 Cisco Technology, Inc. Integrating service insertion architecture and virtual private network
US8856300B2 (en) * 2010-05-18 2014-10-07 At&T Intellectual Property I, L.P. End-to-end secure cloud computing
JP5915454B2 (en) 2011-09-01 2016-05-11 富士通株式会社 Network system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2469753A1 (en) * 2009-08-21 2012-06-27 Huawei Device Co., Ltd. Method, device and network system for negotiating encryption information

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KEROMYTIS U OF PENNSYLVANIA M RICHARDSON SANDELMAN SOFTWARE WORKS L SANCHEZ BBN/GTEI A: "IPsec Policy Discovery Architecture; draft-keromytis-ipsp-arch-00.txt", 19991001, 1 October 1999 (1999-10-01), XP015030854, ISSN: 0000-0004 *
ZAO J ET AL: "Domain based Internet security policy management", DARPA INFORMATION SURVIVABILITY CONFERENCE AND EXPOSITION, 2000. DISCE X '00. PROCEEDINGS HILTON HEAD, SC, USA 25-27 JAN. 2000, LAS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, vol. 1, 25 January 2000 (2000-01-25), pages 41 - 53, XP010371142, ISBN: 978-0-7695-0490-2, DOI: 10.1109/DISCEX.2000.824955 *

Also Published As

Publication number Publication date
US20150150073A1 (en) 2015-05-28
US9516061B2 (en) 2016-12-06

Similar Documents

Publication Publication Date Title
US9516061B2 (en) Smart virtual private network
US11115391B2 (en) Securing end-to-end virtual machine traffic
US9871766B2 (en) Secure path determination between devices
US10033843B2 (en) Network device and method for processing a session using a packet signature
US10757138B2 (en) Systems and methods for storing a security parameter index in an options field of an encapsulation header
US8650618B2 (en) Integrating service insertion architecture and virtual private network
US9185097B2 (en) Method and system for traffic engineering in secured networks
US10404588B2 (en) Path maximum transmission unit handling for virtual private networks
US9420003B2 (en) Dynamic communication between secure endpoints
US20110113236A1 (en) Methods, systems, and computer readable media for offloading internet protocol security (ipsec) processing using an ipsec proxy mechanism
JP2021525047A (en) Methods and devices for managing virtual private networks
EP3000207B1 (en) Method for operating a network and a network
CN117478734A (en) Message sending method, device and system
US9942201B1 (en) Context specific keys
Kwon et al. SVLAN: Secure & scalable network virtualization
US20260058799A1 (en) Public key infrastructure based session authentication
CN110830351A (en) Tenant management and service providing method and device based on SaaS service mode
US11095619B2 (en) Information exchange for secure communication
Fancy et al. An evaluation of alternative protocols-based Virtual Private LAN Service (VPLS)
Zhang et al. Application research of MPLS VPN all-in-one campus card network based on IPSec
Liyanage Enhancing security and scalability of virtual private LAN services
CN106067864B (en) Message processing method and device
JP2022500889A (en) Data communication network security method
WO2025054634A2 (en) Mechanism for achieving authentication and integrity verification with selective packets or flows
CN119011285A (en) Data protection method, device, equipment and storage medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14812346

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14812346

Country of ref document: EP

Kind code of ref document: A1