BACKGROUND OF THE INVENTION 
     The present invention relates generally to secure communications and, more particularly, to a method and device for secure Internet Protocol Security communications between network peer nodes. 
     IPSec (Internet Protocol Security) is one currently popular Internet protocol for ensuring secure communications between peer nodes. IPSec is a set of protocols defined by the Internet Engineering Taskforce that provides a security mechanism at the IP layer. IPSec processing involves encapsulation of outgoing packets and de-encapsulation of inbound packets. The so-called “Encapsulating Security Payload” (ESP) protocol provides confidentiality, data integrity, and data source authentication of IP packets. This requires the insertion of an ESP header after the IP header of an IP packet but in front of the data to be protected. An ESP trailer is inserted after the data to be protected. An ESP packet is identified by the protocol field in the IP header. In order to allow IPSec packets to be properly encapsulated and de-encapsulated, it is necessary to associate security services and a key between the traffic being transmitted and the remote node that is the intended recipient of the traffic. The construct used for this purpose is a “Security Association” (SA). A SA is a relationship between two or more nodes that describes how the nodes will use security services to communicate securely. 
     IPSec provides many options for performing network encryption and authentication. Each IPSec connection can provide encryption, integrity, authenticity, or all three. When the security service is determined, the two IPSec peers must determine exactly which algorithms to use (for example, Triple DES (3DES) for encryption, SHA-1 for integrity and authentication). After deciding on the algorithms, the two devices must share session keys. SAs (Security Associations) are negotiated between peer nodes using a mechanism known as “Internet Key Exchange” (IKE) or IKE version 2 (IKEv2) protocols, and are allocated an identification known as a “Security Parameter Index” (SPI). Details of the existing SAs and the respective SPIs are usually maintained in a Security Association Database (SAD) that is associated with each IPSec node. The precise way in which IPSec is implemented in a system depends to a large extent upon the security policy of the organization wishing to employ IPSec. The policy is stored in a Security Policy Database (SPD), which is also associated with each IPSec node. 
     IPSec SAs may terminate through deletion or by timing out. An SA can time out when a specified amount of time has elapsed or when a specified number of bytes have passed through the secure tunnel established by the IPSec process. When subsequent IPSec SAs are needed for a data flow, an IKEv2 procedure re-establishes the connection using a renewal process. In known IKEv2 renewal processes, renewal is done with the same combination of algorithms that were originally negotiated. Using the same combination of algorithms could constitute a weakness in the overall security of the process. It would be advantageous to provide a way of providing higher security processing for data transmission. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The invention, together with objects and advantages thereof, may best be understood by reference to the following description of preferred embodiments together with the accompanying drawings in which: 
         FIG. 1  is a simplified block diagram of network components capable of operating in accordance with an embodiment of the invention and forming a part of a communications network; 
         FIG. 2  is a diagram showing modifications to a conventional notification payload and IKEv2 negotiation in accordance with an embodiment of the invention and 
         FIG. 3  is a simplified flow chart of an example of a method for ensuring secure communications between network nodes in accordance with the invention. 
     
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
     The detailed description set forth below in connection with the appended drawings is intended as a description of presently preferred embodiments of the invention, and is not intended to represent the only forms in which the present invention may be practised. It is to be understood that the same or equivalent functions may be accomplished by different embodiments that are intended to be encompassed within the spirit and scope of the invention. In the drawings, like numerals are used to indicate like elements throughout. Furthermore, terms “comprises,” “comprising,” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that module, circuit, device components, structures and method steps that comprises a list of elements or steps does not include only those elements but may include other elements or steps not expressly listed or inherent to such module, circuit, device components or steps. An element or step proceeded by “comprises . . . a” does not, without more constraints, preclude the existence of additional identical elements or steps that comprises the element or step. 
     In one embodiment, the present invention provides a method of managing IP SAs between two nodes, where one of the two nodes acts as an initiator and the other acts as a responder in a SA process. The method comprises: providing local policies for configuring sets of algorithms at each node; at an initiator node, sending a message for initiating a first SA, wherein the message identifies the algorithms configured in the initiator node, receiving at a responder node, the message and in response, identifying a matching set of algorithms that are common to those configured in the responder and the initiator nodes; selecting a first algorithm combination from the matching set of algorithms to create a first SA, sending a list of negotiated combinations of algorithms comprising the selected first combination of algorithms and other matching combinations of algorithms to the initiator node, wherein both nodes use the first combination of algorithms to create the first SA and both store the negotiated combinations of algorithms for use by both first and second nodes subsequently; and on a rekey following termination of a SA; at an initiator node, selecting a further algorithm combination from the list of negotiated combinations of algorithms that is different from a previously selected algorithm combination for use by the responder and initiator in a further SA. 
     In other embodiments, there can be any number of rekeys and any number of algorithms combinations. 
     In another embodiment, the present invention provides a network device for supporting secure communications with a remote device, the network device including a local policy for configuring a set of algorithms for negotiation between the network device and the remote device; a memory; and a selection circuit for selecting an algorithm combination. The network device is arranged to: receive from the remote device, a message for initiating a first SA wherein the message identifies a set of algorithms supported by the remote device; compile a list of algorithms that are common to those identified in the message and in the local policy; select a first algorithm combination from the compiled list for creation of a first SA; send a response comprising a list of negotiated combinations of algorithms comprising the first combination of algorithms and other matching combinations of algorithms to the remote device; use the first algorithm combination to create the first SA; store, in the memory, the list of negotiated combinations of algorithms; and initiate a rekey on termination of a SA and select a further algorithm combination from the list of negotiated combinations of algorithms which is different from a previously selected algorithm combination for use by the network device and remote device in a further SA. 
     Advantageously, the invention permits multiple algorithms and multiple combinations of algorithms to be negotiated as part of an IKEv2 process via SA payloads for IPSec. Also advantageously, as different algorithms combinations are used for subsequent renewals, a potential attacker has more difficulty in understanding the keys being used. If one algorithm combination should be broken by an attacker, there is no need for an administrator to make any configuration changes. Further, the algorithms to be negotiated and the algorithms combinations to be used can be conveniently defined by a local policy. 
     Referring now to  FIG. 1 , a first network device  101  (or peer node) of a communication system and a second network device  102  (or peer node) that can communicate with each other via a secure tunnel  103  are shown. Each network device  101 ,  102  includes a transceiver  104 ,  105 , respectively, for transmitting and receiving data and control signals. Each network device  102  also includes a store  106 ,  107 , respectively for local policies containing a multiplicity of algorithms and a selector circuit  108 ,  109 , respectively, connected to its respective transceiver  104 ,  105  and its respective store  106 ,  107  for selecting algorithms from the respective store. Each network device also includes a CHILD SA datastore (i.e., local memory)  110 ,  111 , respectively. Each of the first and second network devices  101 ,  102  are capable of IPSec processing, supporting IKEv2 and also of supporting an enhanced “HIGH SECURITY IPSec” mode of operation in accordance with the invention. Either network device  101 ,  102  can be an initiator of a SA process or a responder. 
     In some embodiments, an IPSec SA can be created between the two nodes  101 ,  102  for ESP protocol/AH (Authentication Header) protocol along with an option of selecting IP compression protocol. Depending on the configuration of an IPSec (SPD policy), a message from one of the network devices acting as an initiator and sent to the other network device acting as the responder, may contain the identity of an encryption algorithm, an authentication algorithm, an integrity algorithm and an IP compression algorithm. All algorithms are held in the initiator&#39;s store. In one example, when the IPSec SPD policy is configured with AH protocol, there is only one authentication algorithm and no encryption/integrity and compression algorithms need to be negotiated or stored. However, the authentication algorithm can have one or more known selectable configurations such as MD5/SHA-1/SHA-2/etc. In an alternative example, when the IPSec SPD policy is configured with ESP protocol there can be an encryption algorithm with the option of an integrity algorithm. 
     IKEv2 defines a notification payload that can be used to indicate the sender&#39;s capability (among other uses). The diagram of  FIG. 2  shows the notification payload as defined in IPSec RFC 4036 at  201  and the modifications at  202  made to the exchanges in accordance with an example of the invention. In this example, a new notification type “HIGH SECURITY SUPPORTED” is defined. The value for this new type can be used from the reserved/private range, for example 41000. With reference to the list of exchanges  201 , the modifications are [N] at the initiator and [SAr2] at the responder. 
     The initiator indicates its capabilities (to the responder) by sending the Notification payload with “Notify Message Type” set to HIG_SECURITY_SUPPORTED in the third IKEv2 message. Also in accordance with IKEv2, the initiator also sends the list of ‘proposals’ (each proposal having one or more transforms) that it can support in the same message as part of SAi2. A proposal lists the algorithms and protocols that are to be negotiated with the responder. 
     If the responder understands and supports HIGH_SECURITY_SUPPORTED notify message type and it wants to operate with the High Security enhancement, then it replies (to the initiator) with the supported list of all proposals from the list it received where the first proposal should contain only one set of algorithms and the remaining proposals may contain one or more sets of algorithms. This latter step can, in some embodiments, can be a configuration option. The responder then creates a first IPsec SA with the first proposal in the list that it sends out. In one example, it also maintains a matching list of proposals to be used for subsequent SAs in its child SA information data store (i.e., memory). 
     When the Initiator receives the fourth IKEv2 message, it creates IPsec SA with the first proposal in the list. If more proposals exist, in one embodiment, it will update its child SA information data store with the list of proposals to be used for subsequent renewals. 
     For the renewal of IPsec SA, the IKE process is aware of the next proposal in the list that can be used for renewing the next SA. The order in which the proposals are chosen can be dictated by a local security policy. For example, it can be random, round robin, or a particular sequence can be dictated by the local policy or other appropriate mechanism. 
     Rekeying from both sides (i.e., initiator and responder) at the same time with different proposals can happen and IKEv2 RFC already has a mechanism in place to handle such cases. 
     A further example of operation of a method for secure data processing in accordance with an embodiment of the invention will now be described with reference to  FIG. 3 . In this example, two peer nodes, such as the network devices  101  and  102  of  FIG. 1 , both support the High Security functionality as described above. 
     In a first step at  301 , in an authentication request, a HIGH_SEC_SUPPORTED notification payload is sent from the first network device, which acts as an initiator, to the second network device acting as responder, where the notification type is 41000. In response, at  302 , the responder sends a HIGH_SEC_SUPPORTED notification payload to the initiator confirming that it supports the high security process. 
     In this example, the local policy is configured to be ESP with authentication. The first network device is configured with algorithm types as follows: encryption algorithm and integrity algorithm. The encryption algorithm has several configurations, namely, in this example, 3DES, AES-CBC-128, AES-CTR-128, and AES-CTR-256. The integrity algorithm also has several configurations, which in this example are: MD5, SHA-1, and SHA2-256. The second network device is similarly configured with algorithm types as follows encryption algorithm and integrity algorithm. However, the encryption algorithm has configurations as follow: 3DES, AES-CBC-128, CAMELIA, and AES-CTR-256, and the integrity algorithm has configurations: MD5, SHA-1, and SHA2-128. At  303 , the first network device (as initiator) apprises the second network device (as responder) of its algorithm types and configurations whereupon the second network device compares them with its own. 
     At  304 , the second network device generates a list which comprises algorithms that are common to both network devices. In this example, these are, for encryption: 3DES, AES-CBC-128, and AES-CTR-256, and for integrity: MD5 and SHA-1. It also selects a first combination of algorithms (as an example, 3DES as encryption algorithm and SHA-1 as integrity algorithm) for creation of a first SA. This list along with the first combination of algorithms is sent by the second network device to the first network device and is stored in both network devices. This list comprises a negotiated set of algorithms from which various combinations of algorithms can be selected by either network device when renewing a SA. 
     When the current SA terminates (at  305 ) and further renewals (or ‘rekeys’) are required, then at  306 , either first or second network device, acting as the initiator, selects from the stored list of negotiated algorithms, a different encryption and integrity algorithm combination (for example, 3DES and MD5) and sends it to the responder for use in the renewed data exchange session. 
     When the SA terminates again (at  307 ) at a subsequent rekey, ( 308 ) a different algorithm combination is selected, (for example, 3DES and SHA-1) thereby providing enhanced security. 
     In a further example, a first network device (or node) is configured with an ‘ESP with authentication’ local policy where it contains two proposals. The first proposal specifies encryption algorithm configurations 3DES, AES-CBC-128 and integrity algorithm configuration MD5. The second proposal specifies a single encryption algorithm, CAMELLIA and integrity algorithms SHA-1, SHA2-128, SHA2-192. 
     A second network device (node) is also configured with an ‘ESP with authentication’ local policy with encryption algorithm configurations: 3DES, AES-CBC-128, CAMELLIA, and AES-CTR-256, and integrity algorithm configurations MD5, SHA-1, and SHA2-128. 
     Say that the first network device (node) acts as the initiated for first SA. It apprises the second network device, (the responder), of the two proposals and their respective compositions as described above. On receiving this information, the second network device (node) checks it against its own local policy and finds that it has some algorithm configurations in common with the proposals. The second network device compiles a first list (first proposal) of common algorithms comprising 3DES, AES-CBC-128 (encryption) and MD5 (integrity). A second list (second proposal) of common algorithms comprising CAMELLIA (encryption), SHA1, and SHA2-128 (integrity) is also compiled. The lists are stored at both first and second nodes. 
     When a first rekey is required, any algorithm combination comprising algorithms from either compiled list can be selected by the node which initiates the rekey. For example, a first rekey is initiated with algorithm combination 3DES-MD5 (from the first list). A second rekey is initiated with a different algorithm combination, for example, CAMELLIA and SHA1 (from the second list). A third rekey is initiated with a further, different algorithm combination; AES-CBC-128 and MD5 (from the first list). A fourth rekey algorithm combination reverts to the second algorithm combination. A fifth rekey is initiated with a further different algorithm combination, CAMELLIA, and SHA2-128 which uses one algorithm from the first list and one from the second list. 
     The invention may be implemented in a computer program for running on a computer system, at least including code portions for performing steps of a method according to the invention when run on a programmable apparatus, such as a computer system or enabling a programmable apparatus to perform functions of a device or system according to the invention. As an example, a non-transitory computer-readable medium may be provided having computer-readable instructions stored thereon for performing methods according to the invention as described herein. The non-transitory computer-readable medium may comprise at least one from a including a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a Read Only Memory, a Programmable Read Only Memory, an Erasable Programmable Read Only Memory, EPROM, an Electrically Erasable Programmable Read Only Memory and a Flash memory. 
     The description of the preferred embodiments of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or to limit the invention to the forms disclosed. It will be appreciated by those skilled in the art that changes could be made to the embodiments described above without departing from the broad inventive concept thereof. It is understood, therefore, that this invention is not limited to the particular embodiment disclosed, but covers modifications within the spirit and scope of the present invention as defined by the appended claims.
A security enhancement to IPSec processing is achieved by changing the algorithms used at each re-key after expiration or termination of a Security Association session between two peer nodes. The solution enables an Internet Key Exchange to negotiate multiple algorithms to ensure that every renewed IPSec Security Association has a different algorithm combination, thereby making attempts at decryption by an attacker more difficult.