Abstract:
Embodiments of the present invention address deficiencies of the art in respect to IPsec SA recovery and provide a novel and non-obvious method, system and computer program product for selective IPsec SA recovery from security enforcement point outages. In one embodiment of the invention, a security enforcement point outage recovery method can be provided. The method can include compiling a listing of SAs for a security enforcement point and monitoring the security enforcement point for an outage. Responsive to detecting an outage in the security enforcement point, the listing can be pruned to include SAs that remain contextually valid or are utilized by the peer of the security enforcement point. Thereafter, only SAs in the pruned list can be re-established.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    The present invention relates to the field of network security and more particularly to automated Internet Protocol security (Ipsec) security association (SA) recovery. 
         [0003]    2. Description of the Related Art 
         [0004]    Internet security has increasingly become the focus of information technologists who participate in globally accessible computer networks. In particular, with the availability and affordability of broadband Internet access, even within the small enterprise, many computers and small computer networks enjoy continuous access to the Internet. Notwithstanding, continuous, high-speed access is not without its price. Specifically, those computers and computer networks which heretofore had remained disconnected from the security risks of the Internet now have become the primary target of malicious Internet crackers and script kiddies, collectively referred to as “malicious intruders”. 
         [0005]    To address the vulnerability of computing devices exposed to the global Internet, information technologists have deployed network address translation (NAT) and network port address translation (NAPT) technologies deployed as a firewall. NAT technologies map a publicly known network address to a privately known address within a private network. In this way, external intruders cannot directly access private network devices as the private network address can be shielded from the external intruder through the proxy action of NAT. The use of NAT, however, requires a one-to-one correspondence between private and public address. To economize on the cost of a single public network address (which can be expensive), a NAPT configured firewall can act similarly to NAT excepting that a single public address can map to multiple private devices which can be distinguished by unique port assignments behind the firewall. 
         [0006]    While NAPT and NAT enable security for devices behind the firewall, NAPT and NAT can do little to secure data in transit between source and destination nodes in the Internet. To provide true, end-to-end security for data in the Internet, secure communications must be employed. The Internet Security Protocol, known in the art as “IPsec” represents a common form of secure communications for use over the Internet. In IPsec, communications between source and destination nodes in the Internet can be administered in accordance with a security association (SA). An SA can include one or more rules that define the IPsec processing that is applied to the communication. IPsec is defined in the Request for Comment (RFC) 2401 superceded by RFC 4301 among other RFCs. 
         [0007]    In IPsec, whether the transmission of a packet is denied or permitted with or without IPsec processing is determined by matching the attributes of a packet within the security rules in a security policy database (SPD). To make this determination, both the static rules of a security policy and dynamic rules negotiated as part of an Internet Key Exchange (IKE), each which refers to an SA as described in RFC 2401, can be subjected to a filtered search in the order of most specific to least specific attributes for both outgoing and incoming packets. The filtering of the attributes of a packet within the security rules can be based upon the source and destination address for the paired nodes engaging in secured communications. 
         [0008]    IPsec SA endpoints typically are disposed within a security enforcement point such as a virtual private network (VPN)/firewall. Security enforcement points generally are no different than any other computing device excepting that the computing device supporting a security enforcement point hosts logic including program code enabled to support security services such as IPsec SA endpoint management. Like other computing devices, then, IPsec SA endpoints are susceptible to power outages, network communications faults, hardware failures and disabling crashes of the operating system for the computing device (collectively referred to as “outages”). 
         [0009]    To account for outages in a security enforcement point supporting an IPsec SA endpoint, two important technologies have been deployed: dead peer detection (DPD) as described in RFC 3707 and failure recovery of network secure communications as described in U.S. Patent Publication No. 20020095496 by Mark L. Antes, James R. Godwin, David A. Herr, Linwood H. Overby, Jr. and David J. Wierbowski. When combined these technologies can detect an outage, identify all established SAs for the security enforcement point, and re-establish every one of the SAs. It will be noted by the skilled artisan, however, that when an IPsec security enforcement point recovers large quantities of IPsec SAs during recovery, undesirable processing overhead and network latencies can arise. 
       BRIEF SUMMARY OF THE INVENTION 
       [0010]    Embodiments of the present invention address deficiencies of the art in respect to IPsec SA recovery and provide a novel and non-obvious method, system and computer program product for selective IPsec SA recovery from security enforcement point outages. In one embodiment of the invention, a security enforcement point outage recovery method can be provided. The method can include compiling a listing of SAs for a security enforcement point and monitoring the security enforcement point for an outage. Responsive to detecting an outage in the security enforcement point, the listing can be pruned to include SAs that remain contextually valid. Thereafter, only SAs in the pruned list can be re-established. 
         [0011]    In another embodiment of the invention, a security enforcement point outage recovery data processing system can be provided. The system can include a security enforcement point, an IPsec endpoint disposed in the security enforcement point and selective recovery logic coupled to the security enforcement point. A security association (SA) recovery database further can be coupled to the selective recovery logic, and outage detection logic can be coupled to the security enforcement point and the selective recovery logic. The outage detection logic can include program code enabled to detect an outage in the security enforcement point. The selective recovery logic in turn can include program code enabled to selectively re-establish only contextually valid SAs listed in the SA recovery database for the security enforcement point responsive to an outage detected in the security enforcement point. 
         [0012]    Additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The aspects of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed. 
     
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
         [0013]    The accompanying drawings, which are incorporated in and constitute part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein: 
           [0014]      FIG. 1  is a schematic illustration of a network security architecture configured for selective IPsec SA recovery from security enforcement point outages; and, 
           [0015]      FIG. 2  is a flow chart illustrating a process for selective IPsec SA recovery from security enforcement point outages. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0016]    Embodiments of the present invention provide a method, system and computer program product for selective IPsec SA recovery from security enforcement point outages. In accordance with an embodiment of the present invention, information for the established IPsec SAs for a host security enforcement point can be added as entries to a listing of SAs in an SA recovery database. Thereafter, the host security enforcement point can be monitored for an outage. In response to detecting an outage in the host security enforcement point, the listing can be pruned to include only those SAs that are likely to remain contextually valid for the host security enforcement point. Once the listing has been pruned, the SAs corresponding to the remaining entries in the listing can be re-established according to the information stored in each entry. 
         [0017]    In further illustration,  FIG. 1  is a schematic illustration of a network security architecture configured for selective IPsec SA recovery from security enforcement point outages. The system can include a security enforcement point  120 A communicatively coupled to one or more computing peers  110  over a computer communications network  130 . To support security services with the computing peers  110 , including IPsec-based secure communications, the security enforcement point  120 A can include an IPsec endpoint  140 . 
         [0018]    In accordance with an embodiment of the present invention, an SA recovery database  160  can be coupled to the security enforcement point  120 A along with outage detection logic  150  and selective recovery logic  200 . Notably, any combination of the outage detection logic  150 , selective recovery logic  200  and SA recovery database  160  can be supported by a separate host computing platform  120 B, or any combination of the outage detection logic  150 , selective recovery logic  200  and SA recovery database  160  can be supported by the security enforcement point  120 A itself. In either circumstance, the SA recovery database  160  can store entries for each SA established in the IPsec endpoint  140 . 
         [0019]    Each of the entries for a corresponding SA minimally can include information requisite for establishing a like SA in the event of an outage. For instance, the information can include SA identifying information, control information, SA re-establishment data, and optionally, a pre-constructed delete message. The entries in the listing of SAs for the SA recovery database  160  can vary by the stage of SA negotiation. The following table expresses exemplary record fields for an entry in the SA recovery database  160 : 
         [0000]    
       
         
               
               
               
             
           
               
                   
               
               
                 Field 
                 Phase 1 SA 
                 Phase 2 SA 
               
               
                   
               
             
             
               
                 SA Identifying 
                 icookie 
                 Destination IP Address 
               
               
                 Information 
                 rcookie 
                 Protocol 
               
               
                   
                   
                 SPI 
               
               
                 Control Information 
                 SA Lifetime 
                 SA Lifetime 
               
               
                   
                   
                 Binding Information for 
               
               
                   
                   
                 Parent Phase 1 SA and 
               
               
                   
                   
                 Related Phase 2 SAs 
               
               
                 SA Re-Establishment 
                 IDii Payload, 
                 IDci Payload 
               
               
                   
                 IDir Payload 
                 IDcr Payload 
               
               
                   
                 Local IP Address 
               
               
                   
                 Remote IP Address 
               
               
                   
                 UDP Encap Port 
               
               
                 Delete Message 
                 Message 
                 Message 
               
               
                   
                 Validity Period 
                 Validity Period 
               
               
                 IPsec Endpoint Identifier 
                 Client Name 
                 Client Name 
               
               
                   
               
             
          
         
       
     
         [0020]    Returning now to  FIG. 1 , the outage detection logic  150  can include program code enabled to detect an outage in the security enforcement point  120 A. For instance, the program code of the outage detection logic  150  can be enabled to detect an outage in an IKE daemon in the security enforcement point  120 A, a TCP/IP stack in the security enforcement point  120 A, or an operating system for the security enforcement point  120 A, to name a few. More particularly, the program code of the outage detection logic can implement a DPD compliant framework to determine when an IKE partner no longer is available in the security enforcement point  120 A. 
         [0021]    In coordination with the restart detection logic  150 , the selective recovery logic  200  can include program code enabled to respond to detecting a restart resulting from an outage by pruning entries in the SA recovery database  160  resulting in a reduced list of entries  170 . The reduced list of entries  170 , in turn, can be used to re-establish only those SAs deemed necessary by the program code of the selective recovery logic  200 . Specifically, an SA need not be re-established merely to send a delete message. For example, entries in the SA recovery database  160  corresponding to overly aged SAs can be pruned from the list of entries. Optionally, once an entry has been pruned from the list, the delete message for the pruned entry can be executed to remove the SA from the security enforcement point  120 A. As even a further pruning measure, no SAs need be re-established until the IPsec endpoint  140  receives an inbound IPsec Encapsulating Security Payload (ESP) or Authentication Header (AH) packet referencing the SA. 
         [0022]    In yet further illustration,  FIG. 2  is a flow chart illustrating a process for selective IPsec SA recovery from security enforcement point outages. Beginning in block  210 , a security enforcement point can be selected and in block  220 , the security enforcement point can be monitored in order to detect a newly negotiated SA, a newly removed SA, or an outage in the security enforcement point. In decision block  230 , if an SA is newly added, in block  240  particular SA attributes can be extracted and, in block  250 , those attributes can be written to a listing in an SA recovery database. Those SA attributes can include information necessary to re-establish a corresponding SA, including SA identifying information, control information, and SA re-establishment information. Also, a delete message can be pre-constructed and saved to the SA recovery database. 
         [0023]    In decision block  260 , it further can be determined whether an SA has been removed from the security enforcement point. If so, in block  270 , the corresponding entry in the SA recovery database can be removed as well. Finally, in decision block  280 , if a restart steming from an outage is detected in the security enforcement point, in block  290 , the entries in the listing of SAs in the SA recovery database can be pruned to eliminate from consideration those SAs not contextually valid. The pruning can eliminate those SAs having a validity period that has expired as noted by corresponding entries in the SA recovery database. Thereafter, in block  300 , SAs can be re-established from information in the SA recovery database for those entries remaining in the listing. However, pre-built deletion messages in the SA recover database can be used to explicitly notify corresponding IKE partners that the eliminated SAs have been deleted without having to re-establish new SAs to send the respective deletion messages. 
         [0024]    The principle of pruning the SA recovery database to eliminate those SAs having a validity period can be applied to refreshing SAs upon receiving an ESP/AH packet from an IKE peer. In this regard, rather than automatically refreshing an SA upon receiving an ESP/AH packet from an IKE peer, the IPSec enforcement point can access a list of the SAs eligible for refreshing. The trigger for refresh can include the receipt of an inbound IPSec ESP or AH packet using the SA. If the TCP/IP stack detects an inbound IPSec packet not having an installed SA, the TCP/IP stack can notify the IKE daemon that such an IPSec packet has been received. The IKE in turn can negotiate the SA if the SA can be found in the list of SAs. Consequently, refreshes to SAs can be limited to the SAs still utilized by the remote IKE partner and unnecessary refreshes of SAs can be avoided for those SAs that will be abandoned by the remote IKE peer. 
         [0025]    Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, and the like. Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. 
         [0026]    For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk—read only memory (CD-ROM), compact disk—read/write (CD-R/W) and DVD. 
         [0027]    A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.