Provided are methods and systems for caching network generated security certificates. An example system may include a security gateway node and a storage module. The security gateway node may be operable to receive, from a client, a session request to establish a secure connection with a server. Based on the session request, the security gateway node may establish a first secure session between the client and the security gateway node and a second secure session between the security gateway node and the server. The security gateway node may receive a server certificate from the server. The security gateway node may match the server certificate against a gateway certificate table. Based on the matching, the security gateway node may receive a gateway certificate associated with the gateway certificate entry that matches the server certificate. The gateway certificate may be used for performing the first secure session.
|
9. A method for caching network generated security certificates, the method comprising:
receiving, by a security gateway node, from a client, a session request to establish a secure connection with a server;
based on the session request, establishing, by the security gateway node, a first secure session and a second secure session, the first secure session including a secure session between the client and the security gateway node and the second secure session including a secure session between the security gateway node and the server;
upon establishing the second secure session, receiving, by the security gateway node, a server certificate from the server;
matching, by the security gateway node, the server certificate against a gateway certificate table based on one or more predetermined criteria to find a gateway certificate entry matching the server certificate, the gateway certificate table operable to cache a plurality of gateway certificates associated with one or more previous secure sessions between the client and the server;
based on the matching, receiving, by the security gateway node, a gateway certificate, the gateway certificate being associated with the gateway certificate entry matching the server certificate and being used for performing the first secure session; and
upon receiving the gateway certificate, forging the gateway certificate to obtain a forged gateway certificate, wherein the first secure session is performed using the forged gateway certificate.
1. A system for caching network generated security certificates, the system comprising programmable instructions stored in a computer-readable media, wherein upon reading the programmable instructions by a processor, the processor executes the following steps:
a security gateway node operable to:
receive, from a client, receiving, by a security gateway node, a session request to establish a secure connection with a server;
based on the session request, establish establishing, by the security gateway node, a first secure session and a second secure session, the first secure session including a secure session between the client and the security gateway node and the second secure session including a secure session between the security gateway node and the server;
upon establishing the second secure session, receive receiving, by the security gateway node, a server certificate from the server;
match matching, by the security gateway node, the server certificate against a gateway certificate table based on one or more predetermined criteria to find a gateway certificate entry matching the server certificate, the gateway certificate table operable to cache a plurality of gateway certificates associated with one or more previous secure sessions between the client and the server;
based on the matching, receive receiving, by the security gateway node, a gateway certificate, the gateway certificate being associated with the gateway certificate entry matching the server certificate and being used for performing the first secure session; and
upon receiving the gateway certificate, forge forging the gateway certificate to obtain a forged gateway certificate, wherein the first secure session is performed using the forged gateway certificate; and
a storage module operable to store at least the gateway certificate table.
0. 19. A system for caching network generated security certificates, the system comprising programmable instructions stored in a computer-readable media, wherein upon reading the programmable instructions by a processor, the processor executes the following steps:
receiving, by a security gateway node, a session request to establish a secure connection with a server;
based on the session request, establishing, by the security gateway node, a first secure session and a second secure session, the first secure session including a secure session between the client and the security gateway node and the second secure session including a secure session between the security gateway node and the server;
upon establishing the second secure session, receiving, by the security gateway node, a server certificate from the server;
matching, by the security gateway node, the server certificate against a gateway certificate table based on one or more predetermined criteria to determine whether a gateway certificate entry matching the server certificate exists;
based on the determining that the gateway certificate entry matching the server certificate exists:
receiving, by the security gateway node, a gateway certificate associated with the gateway certificate entry; and
upon receiving the gateway certificate, forging the gateway certificate to obtain a forged gateway certificate, wherein the first secure session is performed using the forged gateway certificate;
based on the determining that no gateway certificate entry matching the server certificate exists, generating a further gateway certificate based on the server certificate, the further gateway certificate.
0. 2. The system of
based on the matching, determine that no gateway certificate entry matching the server certificate exists;
upon the determination, generate a further gateway certificate based on the server certificate; and
store the further gateway certificate to the gateway certificate table.
3. The system of
4. The system of
based on the validating, determine determining, by the security gateway node, that the gateway certificate is invalid;
based on the determining, generate generating, by the security gateway node, a further gateway certificate, the further gateway certificate being associated with the server certificate; and
store storing, by the security gateway node, the further gateway certificate to the gateway certificate table.
5. The system of
based on the matching, determine determining, by the security gateway node, a partial match of the server certificate and the gateway certificate entry;
upon the determining, modify modifying, by the security gateway node, the gateway certificate entry based on the server certificate to obtain a modified gateway certificate, the modified gateway certificate being associated with the server certificate; and
store storing, by the security gateway node, the modified gateway certificate to the gateway certificate table.
6. The system of
exchange processor further exchanges, by the security gateway node, one or more gateway certificates with a further security gateway node, wherein the exchanging includes sending by the security gateway node one or more of the plurality of gateway certificates to the further security gateway node and receiving, by the security gateway node, a further plurality of gateway certificates from the further security gateway node.
7. The system of
continuously monitor monitoring the gateway certificate table based on a current time and time information associated with the plurality of gateway certificates stored in the gateway certificate table; and
determine determining that one of the plurality of gateway certificates has expired.
8. The system of
based on the determining that one of the plurality of gateway certificates has expired, query querying the server to receive an updated server certificate;
upon receipt of the updated server certificate, generate generating a further gateway certificate based on the one of the plurality of gateway certificates; and
replace replacing the one of the plurality of gateway certificates with the further gateway certificate in one of gateway certificate entries of the gateway certificate table.
10. The method of
based on the matching, determining that no gateway certificate entry matching the server certificate exists;
upon the determination, generating a further gateway certificate based on the server certificate; and
storing the further gateway certificate to the gateway certificate table.
11. The method of
12. The method of
based on the validating, determining, by the security gateway node, that the gateway certificate is invalid;
based on the determining, generating, by the security gateway node, a further gateway certificate, the further gateway certificate being associated with the server certificate; and
storing the further gateway certificate to the gateway certificate table.
13. The method of
14. The method of
based on the matching, determining a partial match of the server certificate and the gateway certificate entry;
upon the determining, modifying the gateway certificate entry based on the server certificate to obtain a modified gateway certificate, the modified gateway certificate being associated with the server certificate; and
storing the modified gateway certificate to the gateway certificate table.
15. The method of
exchanging, by the security gateway node, one or more gateway certificates with a further security gateway node, wherein the exchanging includes sending by the security gateway node one or more of the plurality of gateway certificates to the further security gateway node and receiving, by the security gateway node, a further plurality of gateway certificates from the further security gateway node.
16. The method of
continuously monitoring the gateway certificate table based on a current time and time information associated with the plurality of gateway certificates stored in the gateway certificate table; and
determining that one of the plurality of gateway certificates has expired.
17. The method of
based on the determining that one of the plurality of gateway certificates has expired, querying the server to receive an updated server certificate;
upon receipt of the updated server certificate, generating a further gateway certificate based on the one of the plurality of gateway certificates; and
replacing the one of the plurality of gateway certificates with the further gateway certificate in one of gateway certificate entries of the gateway certificate table.
0. 18. A system for caching network generated security certificates, the system comprising:
a security gateway node operable to:
receive, from a client, a session request to establish a secure connection with a server;
based on the session request, establish a first secure session and a second secure session, the first secure session including a secure session between the client and the security gateway node and the second secure session including a secure session between the security gateway node and the server;
upon establishing the second secure session, receive a server certificate from the server;
match the server certificate against a gateway certificate table based on one or more predetermined criteria to find a gateway certificate entry matching the server certificate, the gateway certificate table operable to cache a plurality of gateway certificates associated with one or more previous secure sessions between the client and the server;
based on the matching, receive a gateway certificate, the gateway certificate being associated with the gateway certificate entry matching the server certificate and being used for performing the first secure session;
upon the receiving of the gateway certificate, validate the gateway certificate, wherein the validating is based at least on time information associated with the gateway certificate and forge the gateway certificate to obtain a forged gateway certificate, wherein the first secure session is performed using the forged gateway certificate;
based on the matching, determine that no gateway certificate entry matching the server certificate exists;
upon the determining, generate a further gateway certificate based on the server certificate; and
store the further gateway certificate to the gateway certificate table; and
a storage module operable to store at least the gateway certificate table.
0. 20. The system of claim 19, wherein the processor, upon generating the further gateway certificate based on the server certificate, stores the further gateway certificate to the gateway certificate table.
0. 21. The system of claim 19, wherein the processor, upon the receiving of the gateway certificate, further validates the gateway certificate, wherein the validating is based at least on time information associated with the gateway certificate.
|
This patent application is a Reissue Application of U.S. Pat. No. 10,187,377, issued on Jan. 22, 2019 based on application U.S. Ser. No. 15/428,036 that was filed on Feb. 8, 2017.
This invention relates generally to data networks and more particularly to a security gateway for caching a plurality of network generated security certificates.
The approaches described in this section could be pursued but are not necessarily approaches that have previously been conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Many service providers and corporates have policies to govern the use of computers and digital computing devices over their data networks, particularly policies created for security and fraud usage reasons. It is not uncommon that these business entities inspect data communication sessions used by a client device or a server device in their data network. The service providers and business entities often deploy security gateways such as Secure Socket Layer (SSL) proxy gateways, SSL interception proxy gateways, firewalls or other security proxy appliances to inspect communication sessions even when the sessions are encrypted. These security gateways, when applied to encrypted or secure communication session, intercept security certificates issued by servers and web servers, generate or forge temporary security certificates, and send the forged certificates to client devices. The security gateways then proceed to receive secure content from the client devices, decrypt and inspect the secure content using the forged security certificates, while on the other communication direction, receive secure content from the server device, decrypt and inspect the secure content using the intercepted server security certificates. Upon inspection, the security gateways can enforce applicable security policies set by the service providers or business entities (e.g., corporations).
However, generating or forging temporary security certificates is a computationally intensive process requiring high performance computation capability. The security session interception process works well when the number of intercepted secure sessions is reasonably small but the performance may decrease considerably for a large number of actively inspected secure sessions.
While service providers and business entities are concerned over security and fraud issues, consumers, users, and software vendors are becoming more aware of fraud and identity theft activities leveraging on unsecure content sent or received by users' computing devices. The users' computing device can be instructed to use secure session with strong encryption in communications with servers.
The sudden increase of secure sessions impacts the performance of these security gateways deployed in the data networks, which in turn can affect the user experience associated with services offered by the data networks and the servers, as well as performance of enterprise applications.
This summary is provided to introduce a selection of concepts in a simplified form that are further described in the Detailed Description below. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
The disclosure relates to systems and methods for caching network generated security certificates. According to one embodiment of the disclosure, a system for caching network generated security certificates is provided. The system may include a security gateway node and a storage module communicatively coupled to the security gateway node. The security gateway node may be operable to receive, from a client, a session request to establish a secure connection with a server. Based on the session request, the security gateway node may be further operable to establish a first secure session and a second secure session. The first secure session may include a secure session between the client and the security gateway node and the second secure session may include a secure session between the security gateway node and the server. Upon establishing the second secure session, the security gateway node may be operable to receive a server certificate from the server. The security gateway node may be further operable to match the server certificate against a gateway certificate table based on one or more predetermined criteria to find a gateway certificate entry matching the server certificate. The gateway certificate table may be operable to cache a plurality of gateway certificates associated with one or more previous secure sessions between the client and the server. Based on the matching, the security gateway node may be further operable to receive a gateway certificate. The gateway certificate may be associated with the gateway certificate entry that matches the server certificate. The gateway certificate is used for performing the first secure session. The storage module may be operable to store at least the gateway certificate table.
In another embodiment of the disclosure, a method for caching network generated security certificates is provided. The method may include receiving, from a client, a session request to establish a secure connection with a server. The method may further include establishing, based on the session request, a first secure session and a second secure session. The first secure session may include a secure session between the client and the security gateway node and the second secure session may include a secure session between the security gateway node and the server. Upon establishing the second secure session, the method may continue with receiving a server certificate from the server. The method may further include matching the server certificate against a gateway certificate table based on one or more predetermined criteria to find a gateway certificate entry matching the server certificate. The gateway certificate table may be operable to cache a plurality of gateway certificates associated with one or more previous secure sessions between the client and the server. Upon the matching, the method may continue with receiving a gateway certificate. The gateway certificate may be associated with the gateway certificate entry matching the server certificate. The gateway certificate may be used for performing of the first secure session.
In further example embodiments of the present disclosure, the method steps are stored on a machine-readable medium comprising instructions, which when implemented by one or more processors perform the recited steps. In yet further example embodiments, hardware systems, or devices can be 60 adapted to perform the recited steps. Other features, examples, and embodiments are described below.
Embodiments are illustrtated by way of example, and not by limitation, in the figures of the accompanying drawings, in which like reference indicate similar elements.
The following detailed description includes references to the accompanying drawings, which form a part of the detailed description. The drawings show illustrations in accordance with example embodiments. These example embodiments, which are also referred to herein as “examples,” are described in enough detail to enable those skilled in the art to practice the present subject matter. The embodiments can be combined, other embodiments can be utilized, or structural, logical, and electrical changes can be made without departing from the scope of what is claimed. The following detailed description is therefore not to be taken in a limiting sense, and the scope is defined by the appended claims and their equivalents. In this document, the terms “a” and “an” are used, as is common in patent documents, to include one or more than one. In this document, the term “or” is used to refer to a nonexclusive “or,” such that “A or B” includes “A but not B,” “B but not A,” and “A and B,” unless otherwise indicated.
The techniques of the embodiments disclosed herein may be implemented using a variety of technologies. For example, the methods described herein may be implemented in software executing on a computer system or in hardware utilizing either a combination of microprocessors or other specially designed application-specific integrated circuits (ASICs), programmable logic devices, or various combinations thereof. In particular, the methods described herein may be implemented by a series of computer-executable instructions residing on a storage medium such as a disk drive, or computer-readable medium. It should be noted that methods disclosed herein can be implemented by a computer (e.g., a desktop computer, a tablet computer, a laptop computer, and a server), game console, handheld gaming device, cellular phone, smart phone, smart television system, and so forth.
The present disclosure relates to methods and systems for caching network generated security certificates. The methods and systems can allow reducing the need for generating security certificates by caching and reusing previously generated security certificates. According to an example embodiment of the current disclosure, a client may send a session request to a server to establish a secure communication with the server. A security gateway node, also referred herein as a security gateway, may be located in the path between the client and the server and intercept all communications between the client and the server and between the server and the client. For example, the security gateway may be associated with a corporate network of the server and may inspect all incoming and outgoing data packets of the server. Therefore, upon receipt of the session request from the client, the security gateway may establish a secure session with client. The security gateway further establishes another secure session with the server. More specifically, the security gateway may query the server to obtain a server certificate from the server. Upon obtaining of the server certificate, the security gateway may communicate with a storage module coupled to the security gateway to perform a search based on the server certificate. The storage module may store a gateway certificate table, which may comprise gateway certificate entries. The gateway certificate entries may store information associated with a plurality of security certificates previously generated by the security gateway or another network computer and which were used in previous secure sessions between the server and the client.
During the search, the security gateway may match the server certificate against the gateway certificate table. When a match is detected, i.e. when the gateway certificate table contains a gateway certificate entry associated with the server certificate, the security gateway obtains a gateway certificate from the gateway certificate entry. The gateway certificate was generated based on the server certificate during a previous secure session between the server and the client and is cached in the gateway certificate table.
The security gateway may determine whether the gateway certificate obtained from the gateway certificate entry is valid. In some embodiments, such determination may be based on comparing the current time and time information associated with the gateway certificate entry. If the gateway certificate is valid, the security gateway may use the gateway certificate for the secure session established between the client and the security gateway.
When no match between the server certificate and the gateway certificate table is detected, or when the gateway certificate is invalid, the security gateway may generate a new gateway certificate associated with the server certificate. The security gateway may store the generated gateway certificate into a gateway certificate entry of the gateway certificate table. The generated gateway certificate may be used by the security gateway for the secure session established between the client and the security gateway. Furthermore, as the generated gateway certificate is cached (i.e., stored) in the gateway certificate entry, the generated gateway certificate may be re-used by the security gateway for further secure sessions associated with the server and the client.
The gateway certificate table may include a plurality of gateway certificate entries, which may be stored on a flash memory, a hard drive, or any other types of local and external storages. Therefore, when the system for caching network generated security certificates boots, there is no need to re-boot or update all gateway certificates cached in the gateway certificate table.
Referring now to the drawings,
The network 110 may include the Internet or any other network capable of communicating data between devices. Suitable networks may include or interface with any one or more of, for instance, a local intranet, a Personal Area Network, a Local Area Network (LAN), a Wide Area Network (WAN), a Metropolitan Area Network, a virtual private network (VPN), a storage area network, a frame relay connection, an Advanced Intelligent Network connection, a synchronous optical network connection, a digital T1, T3, E1 or E3 line, Digital Data Service connection, Digital Subscriber Line connection, an Ethernet connection, an Integrated Services Digital Network line, a dial-up port such as a V.90, V.34 or V.34bis analog modem connection, a cable modem, an Asynchronous Transfer Mode connection, or a Fiber Distributed Data Interface or Copper Distributed Data Interface connection. Furthermore, communications may also include links to any of a variety of wireless networks, including Wireless Application Protocol, General Packet Radio Service, Global System for Mobile Communication, Code Division Multiple Access or Time Division Multiple Access, cellular phone networks, Global Positioning System, cellular digital packet data, Research in Motion, Limited duplex paging network, Bluetooth radio, or an IEEE 802.11-based radio frequency network. The network 110 can further include or interface with any one or more of an RS-232 serial connection, an IEEE-1394 (Firewire) connection, a Fiber Channel connection, an IrDA (infrared) port, a Small Computer Systems Interface connection, a Universal Serial Bus (USB) connection or other wired or wireless, digital or analog interface or connection, mesh or Digi® networking. The network 110 may include a network of data processing nodes that are interconnected for the purpose of data communication.
The security gateway node shown as a security gateway 150 may be located in the path between the client 120 and server 130 and may be configured to intercept the session request 140. Upon receiving the session request 140, the system 900 may establish a secure session with the server 130. The security gateway 150 may be communicatively coupled to a storage module 160 that may store cached security certificates associated with previous secure sessions between client 130 and server 130. Generating, updating, caching, and sharing of security certificates is described in detail with reference to
In an example embodiment, the security gateway 303 may match the server certificate 351 against a gateway certificate table 370 coupled to the security gateway 303. The gateway certificate table 370 can include a plurality of security certificates previously generated by the security gateway 303 or another network computer, which are also referred to herein as network generated security certificates. More specifically, the security gateway 303 may perform a search in the gateway certificate table 370 to find a gateway certificate entry 371 that matches the server certificate 351, as illustrated in detail in
In an example embodiment, the security gateway 303 may determine that the gateway certificate entry 371 is invalid when the time information 373 is determined to be invalid. In further example embodiments, the security gateway 303 may check other information, such as a server certificate identity 375 and a client identity 311 included in the gateway certificate entry 371. In an example embodiment, the server certificate identity 375 may include a server certificate identity, such as a server name indication (SNI) or other identity information. The security gateway 303 may match the server certificate identity 375 against an identity of the server certificate 351 to determine if there is a match. In a further example embodiment, the gateway certificate entry 371 may include the client identity 311, which may include one or more of a client network address, Internet Protocol (IP) address, or link layer address. The security gateway 303 may match the client identity 311 against the identity of the client device 101. Additionally, the security gateway 303 may obtain the client identity 311 of the client device 101, namely a client network address, IP address, or link layer address, from the secure session 130, which may include a Transmission Control Protocol (TCP) session, an IP session, and/or a link layer session.
In an example embodiment, the security gateway 303 may determine that the gateway certificate entry 371 matches the server certificate 351 when all predetermined criteria are valid or matched, or when one or more predetermined criteria is valid or matched. In an example embodiment, the security gateway 303 may determine that the gateway certificate entry 371 does not match when one or more predetermined criteria is not valid or does not match. In an example embodiment, the one or more criteria may include a domain name that the client device 101 wants to access, also called as an SNI.
In an example embodiment, the security gateway 303 may determine that the gateway certificate entry 371 matches the server certificate 351. Upon matching, the security gateway 303 may obtain a gateway certificate 361 from gateway certificate entry 371 that matches the server certificate 351. The security gateway 303 may use the gateway certificate 361 for sending to the client device 101 in the secure session 130.
According to another example embodiment, no gateway certificate entries matching the server certificate 351 can be found by the security gateway 303 in the gateway certificate table 370. When the match cannot be found, the security gateway 303 may generate a security certificate shown as a gateway certificate 361. The security gateway 303 may further generate a gateway certificate entry 371 to which the generated gateway certificate 361 may be stored. Additionally, in an example embodiment, the security gateway 303 may store time information 373 into the gateway certificate entry 371. The time information 373 may include, for example, a pre-configured or pre-determined validity time in the security gateway 303, for example 24 hours, 3 days, 30 minutes, 8 am-12 pm Monday-Friday. In an example embodiment, the security gateway 303 may determine the time information 373 from a piece of time information in the server certificate 351. Furthermore, the security gateway 303 may calculate the time information 373 to be half of the time information in the server certificate 351, an earlier time between 24 hours and the validity time of the server certificate 351, or 1 day instead of 36 hours, or other meaningful validity duration for normal security certificate usage. In an example embodiment, the security gateway 303 may not include time information 373 in the gateway certificate entry 371. Additionally, the security gateway 303 may store an identity of the server certificate 351 as a server certificate identity 375 in gateway certificate entry 371. In an example embodiment, the security gateway 303 may obtain a client identity associated with the client device 101, for example from the secure session 130. The security gateway 303 may store the generated gateway certificate entry 371 into the gateway security table 370 so that the generated certificate entry 371 can be re-used for future secure sessions. In an example embodiment, the security gateway 303 may select the generated gateway certificate entry 371 as a matching entry for the server certificate 351.
In a further example embodiment, the security gateway 303 may determine that the matching gateway certificate entry 371 is invalid due to the time information 373. The security gateway 303 may discard gateway certificate entry 371 and generate a new gateway certificate entry as described earlier. Furthermore, the security gateway 303 ay replace or modify the gateway certificate entry 371 with the generated new gateway certificate entry. The security gateway 303 may select the generated, replaced, or modified gateway certificate entry 371 as a matching entry for the server certificate 351.
Referring to
As shown on
The security gateway 303 may receive server certificates 342 and generate, based on the server certificates 342, gateway certificates. The generated gateway certificates may be cached so that the security gateway 303 may have access to cached generated gateway certificates 344 during further secure sessions between the client 334 and the server 336. Additionally, the cached generated gateway certificates 344 may be shared with a security gateway 346. The security gateway 346 may include a security gateway working in a standby mode or another active security gateway. In other words, to make sure that the cached generated gateway certificates 344 remain persistent across boots of the security gateway 303, the cached generated gateway certificates 344 may be shared with the security gateway working in the standby mode or with another active security gateway.
Referring again to
In an example embodiment, the server device 201 may include a server network computer connected to the data network 500. The server device 201 may serve the secure session 130 requested indirectly by the client device 101 via the secure gateway 303.
In an example embodiment, the secure session 130 may include a service session, such as a HyperText Transfer Protocol session, a file transfer session, a remote access session, a File Transfer Protocol session, a voice over IP session, a Session Initiation Protocol session, a video or audio streaming session, a e-commerce session, an enterprise application session, an email session, an online gaming session, a teleconference session, or a Web-based communication session. In another example embodiment, the secure session 130 may include a service session with security such as an SSL session, a transport layer security (TLS) session, an IP Security (IPSec) session, a secure TCP session, a secure Web session, a secure VPN session, a secure voice over IP session, a secure video or audio streaming session, a secure conferencing session, a secure document access session, a secure network access session, a secure e-commerce session, a secure business-to-business transaction session, a secure financial transaction session, a secure collaboration session, or a secure on-line game session. In an example embodiment, the session request 131 may include a request message for a SSL session, a TLS session, an IPSec session, a secure TCP session, or a request message specified in a secure session protocol used by the client device 101.
In an example embodiment, the security gateway 303 may be a network node and may include one or more of functionality of a firewall, an SSL proxy gateway, a server load balancer, an application delivery controller, a threat protection system, a secure traffic manager, a legal interception gateway, a VPN gateway, or a TCP proxy gateway. In further example embodiments, the security gateway 303 may include one or more hardware security modules such as a hardware-based crypto module or a hardware-based encryption engine. In another example embodiment, the security gateway 303 may include a security system including one or more network nodes and a data network, where one network node processes the secure session 130 with the client device 101 and one network node processes the secure session 220 with the server device 201. In an example embodiment, the security gateway 303 may include a security application to process decrypted intercepted secure session data traffic. The security application may include virus detection, credit card fraud, document or identity theft, session recording, cyber-attack detection, company security policy processing, or government security policy or compliant processing.
In an example embodiment, the server certificate 351 may be a security certificate, selected from an Internet security certificate, an SSL certificate, a Certification Authority (CA) certificate, a corporate issued security certificate, a network generated security certificate, a trusted security certificate, a user certificate, or any digital security certificate used between peers of a secure data communication session. In an example embodiment, the server certificate 351 may include a digital signature, a key for encryption and decryption, a cipher method, an identity, and so forth.
In an example embodiment, the security gateway 303 may include a gateway certificate table 370 containing a plurality of previously generated gateway certificate entries or previously cached gateway certificate entries. The security gateway 303 may store the gateway certificate table 370 in a storage module 340 of the security gateway 303. In further embodiments, the gateway certificate table 370 from the storage module 340 may be additionally stored in an external storage (not shown).
In an example embodiment, the security gateway 303 may send the gateway certificate table 370 to the network node 511 so that the network node 511 can store the received gateway certificate table 370. In an example embodiment, the security gateway 303 may generate or modify a gateway certificate entry 371 and store the generated or modified gateway certificate entry 371 into the gateway certificate table 370, or remove the gateway certificate entry 371 from the gateway certificate table 370. The security gateway 303 may further store the updated gateway certificate table 370 in the storage module 340. The security gateway 303 may also send the gateway certificate entry 371 to the network node 511 with an indication that the gateway certificate table 370 was modified, generated, or removed.
In an example embodiment, the network node 511 may include a gateway certificate table 376. The network node 511 may send the gateway certificate table 376 to the security gateway 303. In an example embodiment, the security gateway 303 may include the gateway certificate table 370. The security gateway 303 may combine the received gateway certificate table 376 into the gateway certificate table 370. In an example embodiment, the network node 511 may send the gateway certificate entry 371 to the security gateway 303, so that the security gateway 303 may combine the gateway certificate entry 371 into the gateway certificate table 370. In an example embodiment, the security gateway 303 may store the updated gateway certificate table 370 into the storage module 340. In an example embodiment, the security gateway 303 may detect one or more duplicate gateway certificate entries during the combining process and remove duplicate entries from the combined gateway certificate table 370.
In an example embodiment, the security gateway 303 may examine if an entry, such as the gateway certificate entry 371, is valid. More specifically, the security gateway 303 may obtain time information 373 of the gateway certificate entry 371 and match the time information 373 against a current time of the clock 382. If the time information 373 indicates that gateway certificate entry 371 is valid, the gateway 303 may determine that gateway certificate entry 371 is valid. In an example embodiment, the security gateway 303 may determine that the time information 373 is not valid or is expired, according to current time of the clock 382. Therefore, the security gateway 303 may determine that gateway certificate entry 371 is not valid. In an example embodiment, the security gateway 303 may update the gateway certificate entry 371 or remove the gateway certificate entry 371 from the gateway certificate table 370.
In an example embodiment, the security gateway 303 may obtain a server certificate identity 375 from the gateway certificate entry 371. The security gateway 303 may use the server certificate identity 375 to identity a server device 202 and query the server device 202 for an updated server certificate 352 corresponding to the gateway certificate entry 371. In an example embodiment, the security gateway 303 may generate a new gateway certificate based on the updated server certificate 352 and replace the gateway certificate 361 of the gateway certificate entry 371 with the newly generated gateway certificate. In an example embodiment, the security gateway 303 may update the time information 373 with a time information obtained from the updated server certificate 352, or replace the time information 373 with a pre-determined time information. Subsequently, the security gateway 303 may store the updated gateway certificate entry 371 into the gateway certificate table 370.
In an example embodiment, the security gateway 303 may receive a generated gateway certificate entry 372 or a modified gateway certificate entry 372 from the security gateway 307. The security gateway 303 may store the generated gateway certificate entry 372 into the gateway certificate table 370, or find a matching gateway certificate entry 371 to the modified gateway certificate entry 372 and replace the gateway certificate entry 371 with the gateway certificate entry 372. In an example embodiment, the security gateway 303 may receive the gateway certificate table 376 the from security gateway 307. The security gateway 303 may replace the gateway certificate table 370 with the received gateway certificate table 376, or combine the received gateway certificate table 376 with the gateway certificate table 370.
In an example embodiment, the gateway certificate table 370 may be a shared gateway certificate table. The security gateway 303 and the security gateway 307 may use the shared gateway certificate table to serve client devices and server devices. In an example embodiment, the security gateway 303 and the security gateway 307 may provide fault redundancy or fault resiliency to security services using the shared gateway certificate table.
The method 1000 can commence with receiving, by a security gateway node, a session request from a client to establish a secure connection with a server at operation 702. At operation 1004, the security gateway node can establish, based on the session request, a first secure session and a second secure session. The first secure session may include a secure session between the client and the security gateway node. The second secure session may include a secure session between the security gateway node and the server. Upon establishing the second secure session, the security gateway node may receive a server certificate from the server at operation 1006. At operation 1008, the security gateway node may match the server certificate against a gateway certificate table based on one or more predetermined criteria to find a gateway certificate entry matching the server certificate. Additionally, in an example embodiment, an SNI and a client identity associated with the session request may be matched against the gateway certificate table to find gateway certificate entries that match the SNI and the client identity.
The gateway certificate table may be operable to cache a plurality of gateway certificates associated with one or more previous secure sessions between the client and the server. The plurality of gateway certificates may be stored in a plurality of gateway certificate entries of the gateway certificate table. At operation 1010, based on the matching, the security gateway node may receive a gateway certificate associated with the gateway certificate entry that matches the server certificate. The gateway certificate may be used by the security gateway node for performing the first secure session.
In an example embodiment, the method 1000 may further include determining, based on the matching, that no gateway certificate entry matching the server certificate exists. Upon such determination, a further gateway certificate may be generated based on the server certificate. In certain example embodiments, the generation of the further gateway certificate may be based on the SNI. Upon the generation, the further gateway certificate may be stored to the gateway certificate table.
Additionally, an expiration time may be set for the generated further gateway certificate and stored to the gateway certificate table. The expiration time may be set based on expiration time of the server certificate, pre-configured expiration time (e.g., based on the SNI), and so forth.
Additionally, upon receipt of the gateway certificate from the gateway certificate table, the security gateway node may validate the gateway certificate. In an example embodiment, validation may be based at least on time information associated with the gateway certificate.
In a further example embodiment, based on the validating, the security gateway node may determine that the gateway certificate is invalid. Based on such determination, the security gateway node may generate a further gateway certificate associated with the server certificate. More specifically, the further gateway certificate may be generated based on the server certificate. Upon generation, the further gateway certificate may be stored to the gateway certificate table. Additionally, the gateway certificate determined to be invalid may be removed from the gateway certificate table.
In an example embodiment, upon receipt of the gateway certificate, the gateway certificate may be forged to obtain a forged gateway certificate. The forged gateway certificate may be used to perform the first secure session.
In an example embodiment, based on the matching, a partial match of the server certificate and the gateway certificate entry may be determined. Upon determination of the partial match, the gateway certificate entry may be modified based on the server certificate to obtain a modified gateway certificate associated with the server certificate. The modified gateway certificate may be stored to the gateway certificate entry of the gateway certificate table.
In some example embodiments, the method 1000 may optionally include exchanging, by the security gateway node, one or more gateway certificates with a further security gateway node. The exchanging may include sending one or more of the plurality of gateway certificates by the security gateway node to the further security gateway node and receiving a further plurality of gateway certificates from the further security gateway node by the security gateway node.
The method 1000 may further include continuously monitoring the gateway certificate table based on a current time and time information associated with the plurality of gateway certificates stored in the gateway certificate table. Based on the monitoring, one of the plurality of gateway certificates may be determined to be expired. Based on the determination that one of the plurality of gateway certificates has expired, the server may be queried by the security gateway node to receive an updated server certificate. Upon receipt of the updated server certificate, a further gateway certificate may be generated by the security gateway node based on the one of the plurality of gateway certificates. The one of the plurality of gateway certificates may be replaced with the further gateway certificates in one of gateway certificate entries of the gateway certificate table.
The components shown in
Mass data storage 1130, which can be implemented with a magnetic disk drive, solid state drive, or an optical disk drive, is a non-volatile storage device for storing data and instructions for use by processor unit 1110. Mass data storage 1130 stores the system software for implementing embodiments of the present disclosure for purposes of loading that software into main memory 1120.
Portable storage device 1140 operates in conjunction with a portable non-volatile storage medium, such as a floppy disk, compact disk, digital video disc (DVD), or USB storage device, to input and output data and code to and from the computer system 1100 of
User input devices 1160 provide a portion of a user interface. User input devices 1160 include one or more microphones, an alphanumeric keypad, such as a keyboard, for inputting alphanumeric and other information, or a pointing device, such as a mouse, a trackball, stylus, or cursor direction keys. User input devices 1160 can also include a touchscreen. Additionally, the computer system 1100 as shown in
Graphics display system 1170 includes a liquid crystal display or other suitable display device. Graphics display system 1170 receives textual and graphical information and processes the information for output to the display device.
Peripheral devices 1180 may include any type of computer support device to add additional functionality to the computer system.
The components provided in the computer system 1100 of
It is noteworthy that any hardware platform suitable for performing the processing described herein is suitable for use with the embodiments provided herein. Computer-readable storage media refer to any medium or media that participate in providing instructions to a central processing unit, a processor, a microcontroller, or the like. Such media may take forms including, but not limited to, non-volatile and volatile media such as optical or magnetic disks and dynamic memory, respectively. Common forms of computer-readable storage media include a floppy disk, a flexible disk, a hard disk, magnetic tape, any other magnetic storage medium, a Compact Disk Read Only Memory disk, DVD, BLU-RAY disc, any other optical storage medium, RAM, Programmable Read-Only Memory, Erasable Programmable Read-Only Memory, Electronically Erasable Programmable Read Only Memory, flash memory, and/or any other memory chip, module, or cartridge.
In some embodiments, the computer system 1100 may be implemented as a cloud-based computing environment, such as a virtual machine operating within a computing cloud. In other embodiments, the computer system 1100 may itself include a cloud-based computing environment, where the functionalities of the computer system 1100 are executed in a distributed fashion. Thus, the computer system 1100, when configured as a computing cloud, may include pluralities of computing devices in various forms, as will be described in greater detail below.
In general, a cloud-based computing environment is a resource that typically combines the computational power of a large grouping of processors (such as within web servers) and/or that combines the storage capacity of a large grouping of computer memories or storage devices. Systems that provide cloud-based resources may be utilized exclusively by their owners or such systems may be accessible to outside users who deploy applications within the computing infrastructure to obtain the benefit of large computational or storage resources.
The cloud may be formed, for example, by a network of web servers that comprise a plurality of computing devices, such as the computer system 800, with each server (or at least a plurality thereof) providing processor and/or storage resources. These servers may manage workloads provided by multiple users (e.g., cloud resource customers or other users). Typically, each user places workload demands upon the cloud that vary in real-time, sometimes dramatically. The nature and extent of these variations typically depends on the type of business associated with the user.
Thus, methods and systems for caching network generated security certificates are disclosed. While the present embodiments have been described in connection with a series of embodiments, these descriptions are not intended to limit the scope of the subject matter to the particular forms set forth herein. It will be further understood that the methods are not necessarily limited to the discrete components described. To the contrary, the present descriptions are intended to cover such alternatives, modifications, and equivalents as may be included within the spirit and scope of the subject matter as disclosed herein and defined by the appended claims and otherwise appreciated by one of ordinary skill in the art.
Yang, Yang, Golshan, Ali, Jiang, Xuyang
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
4001819, | Jan 31 1975 | Wise Security Corporation | Alarm system for combined hazard detections |
5101402, | May 24 1988 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Apparatus and method for realtime monitoring of network sessions in a local area network |
5163088, | Mar 08 1991 | Facsimile security system | |
5359659, | Jun 19 1992 | Method for securing software against corruption by computer viruses | |
5414833, | Oct 27 1993 | International Business Machines Corporation; IBM Corporation | Network security system and method using a parallel finite state machine adaptive active monitor and responder |
5684875, | Oct 21 1994 | Method and apparatus for detecting a computer virus on a computer | |
5940002, | Oct 10 1997 | LEAR CORPORATION EEDS AND INTERIORS | Security system with random number remote communication |
5960177, | May 19 1995 | Fujitsu Limited | System for performing remote operation between firewall-equipped networks or devices |
6088804, | Jan 12 1998 | GENERAL DYNAMICS ADVANCED INFORMATION SYSTEMS, INC; GENERAL DYNAMICS MISSION SYSTEMS, INC | Adaptive system and method for responding to computer network security attacks |
6119236, | Oct 07 1996 | ENHANCED SECURITY RESEARCH, LLC | Intelligent network security device and method |
6205115, | Sep 10 1997 | TDK Corporation | Disc cartridge |
6237036, | Feb 27 1998 | Fujitsu Limited | Method and device for generating access-control lists |
6304975, | Oct 07 1996 | ENHANCED SECURITY RESEARCH, LLC | Intelligent network security device and method |
6324286, | Jun 17 1998 | A10 Networks, Inc | DES cipher processor for full duplex interleaving encryption/decryption service |
6449651, | Nov 19 1998 | Toshiba America Information Systems, Inc. | System and method for providing temporary remote access to a computer |
6519703, | Apr 14 2000 | BANDURA CYBER, INC | Methods and apparatus for heuristic firewall |
6594780, | Oct 19 1999 | Xylon LLC | Operating system and data protection |
6715081, | Aug 12 1999 | International Business Machines Corporation | Security rule database searching in a network security environment |
6732279, | Mar 14 2001 | Kioba Processing, LLC | Anti-virus protection system and method |
6735702, | Aug 31 1999 | BEIJING XIAOMI MOBILE SOFTWARE CO , LTD | Method and system for diagnosing network intrusion |
6754832, | Aug 12 1999 | International Business Machines Corporation | Security rule database searching in a network security environment |
6757822, | May 31 2000 | McAfee, Inc | System, method and computer program product for secure communications using a security service provider manager |
6779117, | Jul 23 1999 | CyberSoft, Inc | Authentication program for a computer operating system |
6988106, | Jul 09 2003 | Cisco Technology, Inc.; Cisco Technology, Inc | Strong and searching a hierarchy of items of particular use with IP security policies and security associations |
7159237, | Jan 19 2001 | BT AMERICAS INC | Method and system for dynamic network intrusion monitoring, detection and response |
7194766, | Jun 13 2001 | Harris Corporation | Method and system for high-speed processing IPSec security protocol packets |
7222366, | Jan 28 2002 | TREND MICRO INCORPORATED | Intrusion event filtering |
7296283, | Jan 17 1997 | Cisco Technology, Inc | Two-tiered authorization and authentication for a cable data delivery system |
7392241, | Aug 22 2003 | A10 Networks, Inc | Searching method for a security policy database |
7418733, | Aug 26 2002 | International Business Machines Corporation | Determining threat level associated with network activity |
7543052, | Dec 22 2003 | CA, INC | Automatic network traffic discovery and classification mechanism including dynamic discovery thresholds |
7565549, | Jan 04 2002 | TAASERA LICENSING LLC | System and method for the managed security control of processes on a computer system |
7577833, | Aug 21 2002 | A10 Networks, Inc | Apparatus and method for high speed IPSec processing |
7640591, | Apr 22 2005 | Oracle America, Inc | Method and apparatus for limiting denial of service attack by limiting traffic for hosts |
7653633, | Nov 12 2005 | LOGRHYTHM, INC | Log collection, structuring and processing |
7665138, | Dec 27 2004 | A10 Networks, Inc | Detecting method and architecture thereof for malicious codes |
7739736, | Apr 22 2005 | Oracle America, Inc | Method and apparatus for dynamically isolating affected services under denial of service attack |
7809131, | Dec 23 2004 | MICRO FOCUS LLC | Adjusting sensor time in a network security system |
7895649, | Apr 04 2003 | FORCEPOINT FEDERAL HOLDINGS LLC | Dynamic rule generation for an enterprise intrusion detection system |
8037532, | Dec 11 2007 | A10 Networks, Inc | Application protection from malicious network traffic |
8220056, | Sep 23 2008 | COLORADO WSC, LLC | Threat management system and method |
8239670, | May 13 2008 | Adobe Inc | Multi-aspect identifier in network protocol handshake |
8289981, | Apr 29 2009 | TREND MICRO INCORPORATED | Apparatus and method for high-performance network content processing |
8301802, | Jul 06 2005 | Fortinet, Inc. | Systems and methods for detecting and preventing flooding attacks in a network environment |
8438628, | Aug 10 2005 | RIVERBED TECHNOLOGY LLC | Method and apparatus for split-terminating a secure network connection, with client authentication |
8448245, | Jan 17 2009 | CLOUDFLARE, INC | Automated identification of phishing, phony and malicious web sites |
8478708, | Jul 30 2009 | Zscaler, Inc. | System and method for determining risk posed by a web user |
8539226, | Jun 12 2001 | Malikie Innovations Limited | Certificate management and transfer system and method |
8595845, | Jan 19 2012 | JPMORGAN CHASE BANK, N A , AS ADMINISTRATIVE AGENT | Calculating quantitative asset risk |
8800034, | Jan 26 2010 | Bank of America Corporation | Insider threat correlation tool |
8806011, | Jan 06 2014 | CLOUDFLARE, INC.; CLOUDFLARE, INC | Transparent bridging of transmission control protocol (TCP) connections |
8813228, | Jun 29 2012 | Deloitte Development LLC | Collective threat intelligence gathering system |
8832832, | Jan 03 2014 | WELLS FARGO BANK, N A | IP reputation |
9215208, | Aug 17 2012 | ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT | Network attack offensive appliance |
9621575, | Dec 29 2014 | A10 Networks, Inc.; A10 Networks, Inc | Context aware threat protection |
20010042204, | |||
20020087708, | |||
20020188839, | |||
20030023846, | |||
20030028585, | |||
20030061507, | |||
20030069973, | |||
20030135625, | |||
20030187688, | |||
20030196081, | |||
20030200456, | |||
20040008711, | |||
20040054807, | |||
20040059943, | |||
20040059951, | |||
20040059952, | |||
20040093524, | |||
20040111635, | |||
20040143751, | |||
20040242200, | |||
20050021999, | |||
20050036501, | |||
20050041584, | |||
20050044068, | |||
20050044270, | |||
20050069136, | |||
20050108434, | |||
20050210243, | |||
20050257093, | |||
20060056297, | |||
20060061507, | |||
20060143707, | |||
20060206936, | |||
20060212522, | |||
20060251057, | |||
20060253902, | |||
20060256716, | |||
20060265585, | |||
20060288411, | |||
20070056038, | |||
20070073660, | |||
20070291773, | |||
20080183885, | |||
20080229418, | |||
20080256623, | |||
20090049198, | |||
20090070470, | |||
20090150996, | |||
20090168995, | |||
20090227228, | |||
20090241190, | |||
20090287941, | |||
20100106833, | |||
20100284300, | |||
20100286998, | |||
20110026537, | |||
20110029599, | |||
20110082947, | |||
20110093785, | |||
20110131646, | |||
20110153744, | |||
20110249572, | |||
20120036272, | |||
20120042060, | |||
20120110472, | |||
20120117646, | |||
20120163186, | |||
20120174196, | |||
20120226582, | |||
20120307631, | |||
20130019025, | |||
20130124713, | |||
20130128885, | |||
20130139245, | |||
20130173795, | |||
20130198385, | |||
20130212265, | |||
20140006508, | |||
20140025568, | |||
20140095865, | |||
20140137190, | |||
20140143852, | |||
20140258489, | |||
20140258536, | |||
20140269308, | |||
20140280832, | |||
20140283065, | |||
20140298091, | |||
20140310396, | |||
20140325588, | |||
20150033341, | |||
20150088597, | |||
20150312268, | |||
20150333988, | |||
20170085440, | |||
20170163736, | |||
CN1422468, | |||
TW225999, | |||
TW252976, | |||
TW375721, | |||
TW477140, | |||
TW574655, | |||
TW576066, | |||
WO1998042108, | |||
WO2013112492, | |||
WO2014150617, | |||
WO2014151072, | |||
WO2014176461, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Feb 03 2017 | GOLSHAN, ALI | A10 Networks, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 048485 | /0569 | |
Feb 08 2017 | JIANG, XUYANG | A10 Networks, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 048485 | /0569 | |
Feb 08 2017 | YANG, YANG | A10 Networks, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 048485 | /0569 | |
Mar 01 2019 | A10 Networks, Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Mar 01 2019 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Jul 06 2022 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Mar 31 2023 | 4 years fee payment window open |
Oct 01 2023 | 6 months grace period start (w surcharge) |
Mar 31 2024 | patent expiry (for year 4) |
Mar 31 2026 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 31 2027 | 8 years fee payment window open |
Oct 01 2027 | 6 months grace period start (w surcharge) |
Mar 31 2028 | patent expiry (for year 8) |
Mar 31 2030 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 31 2031 | 12 years fee payment window open |
Oct 01 2031 | 6 months grace period start (w surcharge) |
Mar 31 2032 | patent expiry (for year 12) |
Mar 31 2034 | 2 years to revive unintentionally abandoned end. (for year 12) |