First node, second node and methods performed thereby for handling security keys
Patent Information
- Application Number
- EP2023818282
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-11-03
- Publication Date
- 2026-09-09
AI Technical Summary
Existing methods for handling security keys in IPsec systems lead to redundant child Security Associations (SAs), which can double the hardware resources needed, causing traffic loss and limiting scalability due to limited hardware resources.
A computer-implemented method where a first node determines if the number of security keys being processed exceeds a threshold before creating a new key. If exceeded, the node sends a notification to a second node to implement a fast rekeying mechanism, allowing direct deletion and installation of new SAs, reducing redundant SAs and conserving hardware resources.
The proposed method reduces the overhead of child SA rekeying, saves hardware resources, and enables larger IPsec scaling with the same hardware resources, while minimizing the possibility of packet loss.
Smart Images

Figure CN2023129612_08052025_PF_FP_ABST
Abstract
Description
FIRST NODE, SECOND NODE AND METHODS PERFORMED THEREBY FOR HANDLING SECURITY KEYSTECHNICAL FIELD
[0001] The present disclosure relates generally to a first node and methods performed thereby for handling security keys. The present disclosure also relates generally to a second node, and methods performed thereby for handling the security keys. The present disclosure also relates generally to computer programs and computer-readable storage mediums, having stored thereon the computer programs to carry out these methods.BACKGROUND
[0002] Computer systems in a communications network or communications system may comprise one or more nodes. A node may comprise a processing circuitry which, together with computer program code may perform different functions and actions, a memory, a receiving port, and a sending port. A node may be, for example, a server. Nodes may perform their functions entirely on the cloud.
[0003] The communications system may cover a geographical area which may be divided into cell areas, each cell area being served by a type of node, a network node in the Radio Access Network (RAN) , radio network node or Transmission Point (TP) , for example, an access node such as a Base Station (BS) , e.g., a Radio Base Station (RBS) , which sometimes may be referred to as e.g., gNB, evolved Node B ( “eNB” ) , “eNodeB” , “NodeB” , “B node” , or Base Transceiver Station (BTS) , depending on the technology and terminology used. The base stations may be of different classes such as e.g., Wide Area Base Stations, Medium Range Base Stations, Local Area Base Stations and Home Base Stations, based on transmission power and thereby also cell size. A cell may be understood to be the geographical area where radio coverage may be provided by the base station at a base station site. One base station, situated on the base station site, may serve one or several cells. Further, each base station may support one or several communication technologies. The telecommunications network may also comprise network nodes which may serve receiving nodes, such as user equipments, with serving beams.
[0004] Internet Protocol (IP) Security (IPsec) may be understood to provide confidentiality, data integrity, access control, and data source authentication to IP datagrams. IP datagrams may be understood as self-contained, independent units of data that may be transmitted over a network. Datagrams may be used to send data between different nodes in a network, such as computers or servers, which may be referred to as a source and a sink. A datagram may comprise a header and a payload. The IPsec services may be provided by maintaining a shared state between the source and the sink of an IP datagram. This state may be understood to define, among other things, the specific services provided to the datagram, which cryptographic algorithms may be used to provide the services, and the keys used as input to the cryptographic algorithms.
[0005] Internet Key Exchange (IKE) may be understood to perform mutual authentication between two parties and may establish an IKE Security Association (SA) that may include shared secret information that may be used to efficiently establish SAs for Encapsulating Security Payload (ESP) or Authentication Header (AH) and a set of cryptographic algorithms to be used by the SAs to protect the traffic that they may carry.
[0006] An SA may be understood as a relationship between two or more entities that may describe how the entities may use security services to communicate securely. IPsec may be understood to provide many options for performing network encryption and authentication. Each IPsec connection may provide encryption, integrity, authenticity, or all three. When the security service is determined, the two IPsec peers may need to determine exactly which algorithms to use and share session keys.
[0007] ESP may be understood as a member of the IPsec encryption set of protocols that may provide data confidentiality, that is, encryption, and authentication, e.g., data integrity, data origin authentication, and replay protection.
[0008] AH may be understood as another IPsec member protocol that may provide a mechanism for authentication, only that AH may provide data integrity, data origin authentication, and an optionally replay protection service.
[0009] IKE, ESP, and AH Security Associations may use secret keys that may be used only for a limited amount of time and to protect a limited amount of data. This may be understood to limit the lifetime of an entire Security Association. When the lifetime of a Security Association expires, the Security Association may be understood to not be able to be used. If there is demand, new Security Associations may be established. Reestablishment of Security Associations to take the place of ones that may have expired may be referred to as "rekeying" . In the rekeying process, a child SA may be understood as an IPsec SA which may have been negotiated via the IKE SA. The child SA options for performing network encryption and authentication may include algorithms and keys.
[0010] According to a standard definition (RFC7296: Internet Key Exchange Protocol Version 2 (IKEv2) ) , child SA rekeying may be divided into two stages.
[0011] In a first stage, a new child SA may be created when an initiator of the procedure may use a CREATE_CHILD_SA message to send to a responder, as depicted below, where HDR may be understood to be an IP header with User Datagram Protocol (UDP) header wherein UDP port is 500 which may be understood to indicate the IKEv2 protocol, SK may be understood to indicate the data following is encrypted authenticated, N may be understood to denote notification, REKEY_SA may be understood to as an IKEv2 notify type, Ni may be understood to denote a nonce value, KEi may be understood to denote key exchange from initiator, TSi may be understood to denote traffic selector from initiator, and TSr may be understood to denote traffic selector from responder:
[0012] Then, a second phase may begin, wherein the initiator may use an INFORMATIONAL message to delete the old child SA, as depicted below, where D may be understood to denote deletion request, and SPI may be understood to denote security parameter index, which may be understood to be a unique identifier of a child SA:
[0013] While such methods to handle security keys may be designed in this way in order to minimize traffic loss due to rekeying, traffic loss may still be experienced. Traffic loss may be understood to be caused by the fact that a key may be understood to always be deleted in a sequence during the process of key replacement. In this case, the key of the initiator and responder may not match within a short period of time, resulting in traffic loss.SUMMARY
[0014] As part of the development of embodiments herein, one or more challenges with the existing technology will first be identified and discussed.
[0015] According to the existing child SA rekeying procedure outlined in the Background second, between the first stage wherein a new child SA may be created and the second stage, wherein the old SA child may be deleted, both the new and old child SA exist on the IPsec device. That is, after the first phase, there are redundant child SA for a period of time during which the new and old child SA may coexist. This greatly increases the number of child SA, and in extreme cases, the number of child SA may double. If too many child SA are rekeyed at the same time as defined in the current standard (RFC7296) a number of problems may arise when combined with real product implementation.
[0016] While the method of installing a new key first, and then deleting the SA, double the amount of SA resources may be understood to be needed. This may not be a problem for software resources, e.g., memory, to handle. However, for IPsec performance, hardware may be understood to be required to process traffic and hardware resource is limited. Particularly, hardware child SA resources are limited. This may be understood to be since existing encryption and decryption engines, in e.g., chips, may only provide a limited number of child SA entries, which may be understood to in turn limit the number of child SA that may be supported. For example, for a maximum number of 1024 child SA entries being provided, a maximum of 512 child SA may be supported. Hardware entries may be understood to be resources of a hardware crypto engine, for example, the number of child SA table entries. The crypto engine may be implemented by e.g., Field Programmable Gate Array (FPGA) , or be integrated into Physical (PHY) or a switch chip.
[0017] However, it may also need to be considered that in most cases, to reach a bigger throughput and lower latency, a hardware crypto engine may generally be used to offload the data plane of IPsec. This may be understood to mean the IPsec data encryption and decryption may be performed by hardware. However, the resources of the hardware crypto engine, for example, the number of child SA table entries, may be understood to be limited, and may even be considered to be very tight.
[0018] According to the foregoing, it is an object of embodiments herein to improve the handling security keys.
[0019] According to a first aspect of embodiments herein, the object is achieved by a computer-implemented method, performed by a first node. The method is handling security keys. The first node operates in the computer system. The first node receives a first indication from a second node operating in the computer system. The first indication indicates a first request to provide the second node with a new security key to replace a security key that is to expire within a shorter time period than the new security key. The first node determines, responsive to the received first indication, whether or not a number of security keys being currently processed by the first node exceeds a threshold. The first node then sends, based on a result of the determination, a second indication to the second node. The second indication indicates to install the new key and to delete the security key that is to expire within the shorter time period than the new security key.
[0020] According to a second aspect of embodiments herein, the object is achieved by a computer-implemented method, performed by the second node. The method is for handling the security keys. The second node operates in the computer system. The second node sends the first indication to the first node operating in the computer system. The first indication indicates the first request to provide the second node with the new security key to replace the security key that is to expire within the shorter time period than the new security key. The second node receives, responsive to the sent first indication, the second indication from the first node. The second indication indicates to install the new key and to delete the security key that is to expire within the shorter time period than the new security key.
[0021] According to a third aspect of embodiments herein, the object is achieved by a computer-implemented method, performed by the first node. The first node is for handling the security keys. The first node is configured to operate in the computer system. The first node is further configured to receive the first indication from the second node configured to operate in the computer system. The first indication is configured to indicate the first request to provide the second node with the new security key to replace the security key that is to expire within the shorter time period than the new security key. The first node is also configured to determine, responsive to the first indication configured to be received, whether or not the number of security keys configured to be currently processed by the first node exceeds the threshold. The first node is further configured to send, based on the result of the determination, the second indication to the second node. The second indication is configured to indicate to install the new key and to delete the security key that is to expire within the shorter time period than the new security key.
[0022] According to a fourth aspect of embodiments herein, the object is achieved by the second node, for handling the security keys. The second node is configured to operate in the computer system. The second node is configured to send the first indication to the first node configured to operate in the computer system. The first indication is configured to indicate the first request to provide the second node with the new security key to replace the security key that is to expire within the shorter time period than the new security key. The second node is also configured to receive, responsive to the first indication configured to be sent, the second indication from the first node. The second indication is configured to indicate to install the new key and to delete the security key that is to expire within the shorter time period than the new security key.
[0023] According to a fifth aspect of embodiments herein, the object is achieved by a computer program, comprising instructions which, when executed on at least one processor, cause the at least one processor to carry out the method performed by the first node.
[0024] According to a sixth aspect of embodiments herein, the object is achieved by a computer-readable storage medium, having stored thereon the computer program, comprising instructions which, when executed on at least one processor, cause the at least one processor to carry out the method performed by the first node.
[0025] According to a seventh aspect of embodiments herein, the object is achieved by a computer program, comprising instructions which, when executed on at least one processor, cause the at least one processor to carry out the method performed by the second node.
[0026] According to an eighth aspect of embodiments herein, the object is achieved by a computer-readable storage medium, having stored thereon the computer program, comprising instructions which, when executed on at least one processor, cause the at least one processor to carry out the method performed by the second node.
[0027] By receiving the first indication, the first node may be enabled to create a new key.
[0028] By determining whether or not the number of security keys being currently processed may exceed the threshold, the first node may be enabled to, prior to creating a new key, determine whether there may be already too many child SAs that may be rekeying and the HW resource of the first node may not be enough to handle the creation of the new key, which may result in traffic loss. As explained earlier, traffic loss may be understood to be caused by the fact that the key of the initiator and responder may not match within a short period of time, since the new SA may not be installed due to that there may be not enough HW resource for the newly created child SA.
[0029] By the first node then sending the second indication based on the result of the determination, the first node may enable to notify the second node that the rekeying process may be a fast rekey process or mechanism. The “fast rekeying mechanism” may be understood to mean, in comparison with the existing rekey mechanism, which may be understood to comprise firstly to create a new SA on both initiator and responder, that the first node may use a directly rekeying mechanism. According to this mechanism, the first node, which may be understood to be the responder, may be enabled to directly delete the old SA and install a new SA, and then the second node, which may be understood to be the initiator, may be enabled to do the same once the second node may receive the second indication. That is, the second node may be enabled to directly delete the old child SA and install a new one. This may be understood to enable the second node to omit the “DELETE_CHILD_SA” message in existing methods, thereby avoiding that there may be redundant child SA for a period of time during which the new and old child SA may coexist. This may in turn enable to prevent that too many child SA may be rekeyed at the same time. By enabling to reduce the overhead child SA caused by rekeying, the first node may enable to save HW resource, and thereby enable bigger, e.g., IPsec, scaling with the same HW resource.
[0030] Existing methods may not guarantee no packet loss at all, but they may double the resources used. In comparison with existing methods, embodiments herein may be understood to still have the possibility of packet loss, but they may enable to save the hardware resources. This may be understood to be a balance, and through embodiments herein, the possibility of packet loss may be infinitely approached to zero.BRIEF DESCRIPTION OF THE DRAWINGS
[0031] Examples of embodiments herein are described in more detail with reference to the accompanying drawings, according to the following description.
[0032] Figure 1 is a schematic diagram illustrating a non-limiting example of a computer system, according to embodiments herein.
[0033] Figure 2 is a flowchart depicting embodiments of a method in a first node, according to embodiments herein.
[0034] Figure 3 is a flowchart depicting embodiments of a method in a second node, according to embodiments herein.
[0035] Figure 4 is a signalling diagram illustrating a particular non-limiting example of a method performed in a computer system, according to embodiments herein.
[0036] Figure 5 is a schematic block diagram illustrating two non-limiting examples, a) and b) , of a first node, according to embodiments herein.
[0037] Figure 6 is a schematic block diagram illustrating two non-limiting examples, a) and b) , of a second node, according to embodiments herein.DETAILED DESCRIPTION
[0038] Certain aspects of the present disclosure and their embodiments address one or more of the challenges identified with the existing methods and provide solutions to the challenges discussed.
[0039] Embodiments herein may be understood to relate to limiting the maximum number of child SA that may be rekeyed at the same time.
[0040] Particular embodiments herein may relate to a method to limit a maximum number of child SA that may be rekeyed at the same time by a fast rekeying mechanism.
[0041] According to some embodiments herein, a new “status notification payload” may be defined to detect whether a peer end may support the approach to handle security keys described herein. Embodiments herein may also define a new “notification payload” to inform the rekeying initiator that the responder may be busy, and to use a procedure referred to herein as a “fast rekey mechanism” , and at the same time replace a local SA with a new SA indicating to delete the old SA and install the new SA. The rekeying initiator may receive the ‘fast rekey notification’ , then replace the local SA with the new SA.
[0042] The embodiments will now be described more fully hereinafter with reference to the accompanying drawings, in which examples are shown. In this section, embodiments herein are illustrated by exemplary embodiments. It should be noted that these embodiments are not mutually exclusive. Components from one embodiment or example may be tacitly assumed to be present in another embodiment or example and it will be obvious to a person skilled in the art how those components may be used in the other exemplary embodiments. All possible combinations are not described to simplify the description.
[0043] Figure 1 depicts two non-limiting examples, in panels “a” and “b” , respectively, of a computer system 100, in which embodiments herein may be implemented. In some example implementations, such as that depicted in the non-limiting example of Figure 1a, the computer system 100 may be a computer network. In other example implementations, such as that depicted in the non-limiting example of Figure 1b, the computer system 100 may be implemented in a telecommunications system, sometimes also referred to as a telecommunications network, communication network, wireless communications network, cellular radio system, cellular network, or wireless communications system. In some examples, the telecommunications system may comprise network nodes which may serve receiving nodes, such as wireless devices. The computer system 100 may for example be a network such as a 5G system, or a newer system supporting similar functionality, such as e.g., a Sixth Generation 6G) system, or a Long-Term Evolution (LTE) network, e.g., LTE Frequency Division Duplex (FDD) , LTE Time Division Duplex (TDD) , LTE Half-Duplex Frequency Division Duplex (HD-FDD) , or LTE operating in an unlicensed band. The computer system 100 may additionally or alternatively, support other technologies, such as Wideband Code Division Multiple Access (WCDMA) , Universal Mobile Telecommunications System Terrestrial Radio Access (UTRA) TDD, Global System for Mobile communications (GSM) network, GSM / Enhanced Data Rate for GSM Evolution (EDGE) Radio Access Network (GERAN) network, Ultra-Mobile Broadband (UMB) , EDGE network, network comprising any combination of Radio Access Technologies (RATs) such as e.g. Multi-Standard Radio (MSR) base stations, multi-RAT base stations etc., any 3rd Generation Partnership Project (3GPP) cellular network, Wireless Local Area Network / s (WLAN) or WiFi network / s, Worldwide I nteroperability for Microwave Access (WiMax) , IEEE 802.15.4-based Iow-power short-range networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LowPAN) , Zigbee, Z-Wave, Bluetooth Low Energy (BLE) , or any cellular network or system. The telecommunications system may for example support a Low Power Wide Area Network (LPWAN) . LPWAN technologies may comprise Long Range physical layer protocol (LoRa) , Haystack, SigFox, LTE-M, and Narrow-Band Iot (NB-IoT) .
[0044] The computer system 100, as depicted in Figure 1, comprises a first node 111 and a second node 112. It may be understood that the computer system 100 may comprise more nodes than those represented on Figure 1.
[0045] The first node 111 may be understood to be a rekey responder in a rekeying procedure wherein the second node 112 may be a rekey initiator, as depicted in Figure 1. The rekeying procedure may be, e.g., an IPsec procedure. A rekey initiator may be understood as a device which may trigger a rekeying. A rekey responder may be understood as a device which may receive a rekeying request and respond to it.
[0046] Any of the first node 111 and the second node 112 may be understood, respectively, as a first computer system and a second computer system. In some examples, any of the first node 111 and the second node 112 may be implemented as a standalone server in e.g., a host computer in the cloud 125, as depicted in the non-limiting example depicted in panel b) of Figure 1 for the first node 111. Any of the first node 111 and the second node 112 may in some examples be a distributed node or distributed server, with some of their respective functions being implemented locally, e.g., by a client manager, and some of their functions implemented in the cloud 125, by e.g., a server manager. Yet in other examples, any of the first node 111 and the second node 112 may also be implemented as processing resources in a server farm.
[0047] Any of the first node 111 and the second node 112 may be, or be comprised a radio network node 120 comprised in the telecommunications system. The radio network node 120 may be a base station or Transmission Point (TP) , or any other network unit capable to serve a device or a machine type node in the telecommunications system. The radio network node 120 may be e.g., a 5G gNB, a 4G eNB, or a radio network node in an alternative 5G radio access technology, e.g., fixed or WiFi. The radio network node 120 may be e.g., a Wide Area Base Station, Medium Range Base Station, Local Area Base Station and Home Base Station, based on transmission power and thereby also coverage size. The radio network node 120 may be a stationary relay node or a mobile relay node. The radio network node 120 may support one or several communication technologies, and its name may depend on the technology and terminology used. The radio network node 120 may be directly connected to one or more networks and / or one or more core networks. In some examples, such as that depicted in Figure 2 b, the radio network node 110 may be a distributed node, and may partially perform its functions in collaboration with a virtual network node 130 in a cloud 125. In the non-limiting example of Figure 1 b) , the first node 111 is depicted as being comprised in the virtual network node 130. However, this may be understood for illustrative purposes and not limiting.
[0048] The computer system 100 covers a geographical area which may be divided into cell areas, wherein each cell area may be served by a radio network node, although, one radio network node may serve one or several cells. Cells are not depicted in Figure 1 to simplify the figure.
[0049] Any of the first node 111 and the second node 112 may be, or be comprised in, a device 140, as depicted in the non-limiting example of Figure 2 b) for the second node 112. The device 140 may be also known as e.g., user equipment (UE) , a wireless device, mobile terminal, wireless terminal and / or mobile station, mobile telephone, cellular telephone, or laptop with wireless capability, an Internet of Things (loT) device, or a Customer Premises Equipment (CPE) , just to mention some further examples. The device 140 in the present context may be, for example, portable, pocket-storable, hand-held, computer-comprised, or a vehicle-mounted mobile device, enabled to communicate voice and / or data, via a RAN, with another entity, such as a server, a laptop, a Personal Digital Assistant (PDA) , or a tablet, a Machine-to-Machine (M2M) device, an Internet of Things (IoT) device, e.g., a sensor or a camera, a device equipped with a wireless interface, such as a headset, goggles, a printer or a file storage device, modem, Laptop Embedded Equipped (LEE) , Laptop Mounted Equipment (LME) , USB dongles, CPE or any other radio network unit capable of communicating over a radio link in the computer system 100. The device 140 may be wireless, i.e., it may be enabled to communicate wirelessly in the computer system 100 and, in some particular examples, may be able to support beamforming transmission. The communication may be performed e.g., between two devices, between a device and a radio network node, and / or between a device and a server. The communication may be performed e.g., via a RAN and possibly one or more core networks, comprised, respectively, within the computer system 100.
[0050] In other examples not depicted in Figure 1, any of the first node 111 and the second node 112 may be, or be comprised in, a core network node. The core network node may be a network node operating in a core network of the telecommunications system, such as, e.g., a network data analytics function (NWDAF) , a Service management and orchestration (SMO) node, a positioning node, a coordinating node, a Self-Optimizing / Organizing Network (SON) node, a Minimization of Drive Test (MDT) node, etc....
[0051] The first node 111 may communicate with the second node 112 over a first link 151, e.g., a radio link or a wired link. The first node 111 may communicate with the radio network node 120 over a second link 152, e.g., a radio link or a wired link. The second node 112 may communicate, e.g., indirectly, with the radio network node 120 over a third link 153, e.g., a radio link or a wired link.
[0052] Any of the first link 151, the second link 152 and / or the third link 153 may be a direct link or it may go via one or more computer systems or one or more core networks in the computer system 100, or it may go via an optional intermediate network. The intermediate network may be one of, or a combination of more than one of, a public, private or hosted network; the intermediate network, if any, may be a backbone network or the Internet, which is not shown in Figure 1.
[0053] Although terminology from Long Term Evolution (LTE) / 5G may be used in this disclosure to exemplify the embodiments herein, this should not be seen as limiting the scope of the embodiments herein to only the aforementioned system. Other wireless systems supporting similar or equivalent functionality may also benefit from exploiting the ideas covered within this disclosure. In future telecommunication networks, e.g., in the sixth generation (6G) , the terms used herein may need to be reinterpreted in view of possible terminology changes in future technologies.
[0054] In general, the usage of “first” , “second” and / or “third” herein may be understood to be an arbitrary way to denote different elements or entities and may be understood to not confer a cumulative or chronological character to the nouns they modify.
[0055] Some of the embodiments contemplated herein will now be described more fully with reference to the accompanying drawings. Other embodiments, however, are contained within the scope of the subject matter disclosed herein, the disclosed subject matter should not be construed as limited to only the embodiments set forth herein; rather, these embodiments are provided by way of example to convey the scope of the subject matter to those skilled in the art.
[0056] Embodiments of a computer-implemented method, performed by the first node 111, will now be described with reference to the flowchart depicted in Figure 2. The method may be understood to be for handling security keys. The first node 111 operates in the computer system 100.
[0057] Several embodiments are comprised herein. In some embodiments, all the actions may be performed. In some embodiments, two or more actions may be performed. It should be noted that the examples herein are not mutually exclusive. One or more embodiments may be combined, where applicable. All possible combinations are not described to simplify the description. Components from one embodiment may be tacitly assumed to be present in another embodiment and it will be obvious to a person skilled in the art how those components may be used in the other exemplary embodiments. A non-limiting example of the method performed by the first node 111 is depicted in Figure 2.
[0058] In Figure 2, optional actions are represented with dashed lines.
[0059] Action 201
[0060] In this Action 201, the first node 111 may receive an indication, referred to herein as a “first prior indication” , from the second node 112. The first prior indication indicates the second node 112 supports installation of a new key and deletion of a security key that is to expire within a shorter time period than a new security key, e.g., the new key, in response to a same indication. Installation of the new key and deletion of the security key that is to expire within the shorter time period than the new security key in response to the same indication according to embodiments herein may be referred to herein in a non-limiting fashion, as “FAST_CHILD_SA_REKEY” . Accordingly, this Action 201 may be understood as receiving a notification that the FAST_CHILD_SA_REKEY is supported.
[0061] As used herein a key may be understood as a security key, that is, a key used to encrypt and / or decrypt information, e.g., IP packets.
[0062] The receiving in this Action 201 may be performed, e.g., via the first link 151.
[0063] The first prior indication may be received during a negotiation in an authorization process, e.g., through IKE_AUTH negotiation.
[0064] In some examples, the first prior indication may be a FAST_CHILD_SA_REKEY_SUPPORTED notification. Particularly, a FAST_CHILD_SA_REKEY_SUPPORTED notification in the IKE_AUTH exchange. In case of multiple IKE_AUTH exchanges, the first prior indication may be comprised in a message containing the SA payload.
[0065] The first prior indication may have a corresponding type of message notification, e.g., a Notify Message Type. The Notify Message Type for FAST_CHILD_SA_REKEY_SUPPORTED may be decided by implementation, or defined in a standard.
[0066] In the message containing the SA payload, the Protocol Identity (ID) and Security Parameter Index (SPI) Size fields may be set to zero.
[0067] In the message containing the SA payload, the notification data field may be required to be left empty, that is, have zero-length, when being sent by the second node 112, and its contents, if any, may be required to be ignored by the first node 111 when this notification may be received. This may be understood to allow the field to be used by future versions of this protocol.
[0068] In some of examples wherein the first prior indication may be received through IKE_AUTH negotiation, when IKE_SA_INIT may be completed, the IKE_AUTH message exchanges may take place and the NOTIFY message "FAST_CHILD_SA_REKEY_SUPPORTED" may be required to be added to IKE_AUTH, as shown below:
[0069] The receiving of the first prior indication may be performed during initialization to negotiate support of the “FAST_CHILD_SA_REKEY_SUPPORTED” feature.
[0070] By receiving the first prior indication in this Action 201, the first node 111 may then be enabled to know that the second node 112, that is, the peer end, may support the functions described herein, so that the first node 111 may be enabled to proceed with the actions described in relation to Figure 2. In examples wherein the first node 111 may not receive the first prior indication, the rekeying as usual may be performed according to existing methods.
[0071] Action 202
[0072] In this Action 202, the first node 111 may send another indication, referred to herein as “second prior indication” to the second node 112. The second prior indication may indicate the first node 111 may support installation of a new key and deletion of a security key that is to expire within a shorter time period than a new security key in response to a same indication.
[0073] The second prior indication may be understood to be equivalent to the first prior indication, but sent by the first node 111.
[0074] It may be understood that Action 201 and Action 202 may be performed in reverse order.
[0075] The sending of the second prior indication may be performed during initialization to negotiate support of the “FAST_CHILD_SA_REKEY_SUPPORTED” feature.
[0076] By the first node 111 sending the second prior indication to the second node 112 in this Action 202, the first node 111 may enable the second node 112, that is, the peer end, to know that the first node 111, may support the functions described herein, so that the second node 112 may be enabled to proceed with the actions described in relation to Figure 3. In examples wherein the first node 111 may not send the second prior indication, the rekeying as usual may be performed according to existing methods.
[0077] Action 203
[0078] In this Action 203, the first node 111 receives a first indication from the second node 112 operating in the computer system 100. The first indication indicates a first request to provide the second node 112 with a new security key to replace a security key that is to expire within a shorter time period than the new security key. That is, the first indication may indicate to trigger rekey. The security key that is to expire within the shorter time period than the new security key may be understood to be an “old” key.
[0079] The first indication may be, for example, a CREATE_CHILD_SA.
[0080] The first indication may be, for example:
[0081] HDR, SK {N (REKEY_SA) ,
[0082] SA, Ni, [KEi, ]
[0083] TSi, TSr} -->
[0084] By receiving the first indication in this Action 203, the first node 111 may then be enabled to create a new key.
[0085] Action 204
[0086] An IPsec Gateway (GW) may be understood to function as one end of a IPsec session. It may receive incoming IPsec packets, decrypt the encapsulated data packets, then pass the data packets to the local network. It may also encrypt, encapsulate, and send the IPsec data packets to the device at the other end of the IPsec session. An IPSec GW may establish IPsec sessions with multiple devices. Hence, it may be possible that the number of rekeyed child SA of any single IPsec device may not be large to create a problem for the underlying hardware, but the total number of IPsec GW may be big and may not be able to be handled by the underlying hardware.
[0087] In this Action 204, the first node 111 determines, responsive to the received first indication, whether or not a number of security keys being currently processed by the first node 111 exceeds a threshold.
[0088] Determining may be understood as calculating, deriving, checking or similar. In other words, after receiving the request for child SA rekeying, the first node 111 may check the number of child SA rekeying the first node 111 may be currently processing. If the number is not big, that is, if the number does not exceed the threshold, the resource, especially the hardware (HW) resource, such as e.g., FPGA, PHY, switch chip, may afford rekeying this time. Therefore the first node 111 may decide to process the first request normally. If the first node 111 finds that there are already many requests for child SAs rekeying, the first node 111 may proceed to the next Action 205.
[0089] The threshold may be determined based on the hardware. For example, if the hardware supports 1000 child SA, the threshold may be set to, e.g., 950.
[0090] By determining whether or not the number of security keys being currently processed exceeds the threshold in this Action 204, the first node 111 may be enabled to, prior to creating a new key, determine whether there may be already too many child SAs that may be rekeying and the HW resource of the first node 111 may not be enough to handle the creation of the new key, which may result in traffic loss since the new SA cannot be installed if there may not be enough HW resource for the newly created child SA, which may lead to a key mismatch on the second node 112 and the first node 111.
[0091] Action 205
[0092] The second node 112 may be understood to not have a way of knowing the total number of child SA rekeying triggered by all remote nodes, e.g., IPsec devices. That is, the second node 112 may not know the child SA rekey status of the first node 111, e.g., the IP Sec GW, and other devices. Therefore, a mechanism may be needed for the first node 111 to notify the peer end.
[0093] In this Action 205, the first node 111 sends, based on a result of the determination performed in Action 204, a second indication to the second node 112. The second indication indicates to install the new key and to delete the security key that is to expire within the shorter time period than the new security key.
[0094] In some embodiments, the first node 111 may determine that the number of security keys being currently processed by the first node 111 exceeds the threshold and the first node 111 may then, in this Action 205, send the second indication to the second node 112. That is, the first node 111 may use the "FAST_CHILD_SA_REKEY" notification only when the first node 111, e.g., the IPsec GW, may find that its own resources may be insufficient.
[0095] In some embodiments, the second indication may be a notification in a CREATE_CHILD_SA response message.
[0096] In particular examples of embodiments herein, the second indication may be a notification of a suppression of child SA rekey.
[0097] In a particular example, the second indication may be a FAST_CHILD_SA_REKEY notification. That is, in some examples, in this Action 205, the first node 11 may send a FAST_CHILD_SA_REKEY notification to the second node 112.
[0098] In a particular non-limiting example, the second notification may be as follows:
[0099] <--HDR, SK {SA, Nr, [KEr, ]
[0100] TSi, TSr
[0101] N(FAST_CHILD_SA_REKEY) }
[0102] In some embodiments, the notification in the CREATE_CHILD_SA response message may comprise the following options. According to a first option, a critical field may be set to 0, indicating the second indication may have to be ignored with the proviso the second node 112 may fail to recognize it. According to a second option, the notification in the CREATE_CHILD_SA response message may comprise a protocol identity field set to Authentication Header (AH) , or to Encapsulating Security Payload (ESP) . According to a third option, the notification in the CREATE_CHILD_SA response message may comprise a security parameter index (SPI) size field set to a corresponding security association (SA) SPI length. According to a fourth option, the notification in the CREATE_CHILD_SA response message may comprise a notify message type field for a delay child SA rekey. According to a fifth option, the notification in the CREATE_CHILD_SA response message may comprise an SPI filed set to an SA SPI corresponding to the second indication. According to a sixth option, the notification in the CREATE_CHILD_SA response message may comprise a notification data field that may be left empty.
[0103] According to the options just described the second indication may be a specific notification payload as defined in RFC7296 section 3.10, wherein the notification may be designated as FAST_CHILD_SA_REKEY. The FAST_CHILD_SA_REKEY notification may be used in an IKEv2 exchange of type CREATE_CHILD_SA.
[0104] In some examples, the second indication may have the following structure, wherein the numbers in the first row may be understood to indicate the length of the fields in bytes and the numbers in the second row may be understood to indicate the length of the fields in bits:
[0105] The fields Next Payload, RESERVED, and Payload Length may be as defined in RFC7296. Specific fields defined according to embodiments herein may be as follows.
[0106] According to the first option mentioned above, the field Critical, set to 0, may be understood to indicate that this message may be ignored if the second node 112, that is, the peer, does not recognize it. This may be performed according to RFC7296, section 3.2.
[0107] According to the second option mentioned above, the field Protocol ID, in 1 octet, may be set to either (2) to indicate AH or (3) to indicate ESP.
[0108] According to the third option mentioned above, the field Security Parameter Index (SPI) Size, in 1 octet, may be set to corresponding child SA SPI length.
[0109] According to the fourth option mentioned above, the field Notify Message Type, in 2 octets, may specify the type of notification message. It may be set to a value that may be decided by implementation, or by a standard, for the DELAY_CHILD_SA_REKEY.
[0110] According to the fifth option mentioned above, the field Security Parameter Index (SPI) , in 4 octets, may be set to the corresponding child SA SPI.
[0111] According to the sixth option mentioned above, the field Notification Data, in 4 bytes, may be left empty.
[0112] In some embodiments, the sending in this Action 205 of the second indication may be performed with the proviso the first prior indication may be received.
[0113] In some embodiments, the sending in this Action 205 of the second indication may be performed with the proviso the second prior indication may be sent.
[0114] By the first node 111 sending the second indication in this Action 205, the first node 111 may enable to notify the second node 112 that the rekeying process is a fast rekey process. The “fast rekeying mechanism” may be understood to mean, in comparison with the existing rekey mechanism, which may be understood to comprise firstly to create a new SA on both initiator and responder, that the first node 111 may use a directly rekeying mechanism, wherein the first node 111, the responder, may be enabled to directly delete the old SA and install a new SA, and then the second node 112, the initiator, may be enabled to do the same once the second node 112 may receive the second indication. That is, the second node 112 may be enabled to directly delete the old child SA and install a new one. This may be understood to enable the second node 112 to omit the “DELETE_CHILD_SA” message in existing methods, thereby avoiding that there may be redundant child SA for a period of time during which the new and old child SA may coexist. This may in turn enable to prevent that too many child SA may be rekeyed at the same time. By enabling to reduce the overhead child SA caused by rekeying, the first node 111 may enable to save HW resource, and thereby enable bigger IPsec scaling with the same HW resource.
[0115] While the first node 111 may send the second notification to the second node 112, the first node 111 may then locally delete the old SA and install the new SA, as will be described in Action 206 and Action 207, respectively.
[0116] Existing methods, existing methods may not guarantee no packet loss at all, but they may double the resources used. In comparison with embodiments herein may still have the possibility of packet loss, but they may greatly save the hardware resources. This may be understood to be a balance, and through embodiments herein, the possibility of packet loss may be infinitely approached to zero.
[0117] Action 206
[0118] In this Action 206, the first node 111 may, responsive to the first node 111 determining that the number of security keys being currently processed by the first node 111 exceeds the threshold, and after having sent the second indication, delete the security key that is to expire within the shorter time period than the new security key. That is, locally delete the old SA.
[0119] By deleting the expired in this Action 206, after having sent the second indication, the first node 111 may avoid that the second node 112 may delete the old SA too early, which may introduce traffic loss. The first node 111 may even add a reasonable delay before deleting the old SA to further reduce the traffic loss probability. The delay value may depend on implementation.
[0120] Action 207
[0121] In this Action 207, the first node 111 may, responsive to the first node 111 determining that the number of security keys being currently processed by the first node 111 exceeds the threshold, and after having sent the second indication, install the new key. That is, install the new SA.
[0122] The first node 111 may send the second indication, e.g., “FAST_CHILD_SA_REKEY” , firstly in Action 205, and then delete local SA in Action 206 and reinstall new SA in this Action 207, and may even have a timer to trigger the local SA deletion and installation.
[0123] By installing the new key in this Action 207, after having sent the second indication, the first node 111 may greatly reduce the probability of traffic loss since here the second node 112 may be enabled to determine that this time, a fast rekeying procedure may be applied and may start to prepare the SA deletion. In this way, the SA deletion time of the two devices may be as close as possible.
[0124] Action 208
[0125] The first node 111 may only send the second indication in Action 205 when the first node 111, e.g., the IPsec GW, may have determined in Action 204 that its own resources may be insufficient to handle the first request from the second node 112. In other cases, the existing process, which involve to double HW resource, may be still used for rekey.
[0126] In some embodiments, wherein the first node 111 may determine in Action 204 that the number of security keys being currently processed by the first node 111 does not exceed the threshold, the first node 111 may refrain from sending the second indication to the second node 112. In such embodiments, the method may further comprise that in this Action 208, the first node 111 may install the new key prior to deleting the security key that is to expire within the shorter time period than the new security key.
[0127] By installing the new key prior to deleting the security key that is to expire within the shorter time period than the new security key when the number of security keys being currently processed by the first node 111 may not exceed the threshold in this Action 208, the first node 111 may be enabled to only use the so called “FAST_CHILD_SA_REKEY” procedure when the HW resources may be insufficient to process the first request.
[0128] Action 209
[0129] In some embodiments, wherein the first node 111 may determine in Action 204 that the number of security keys being currently processed by the first node 111 does not exceed the threshold, the first node 111 may refrain from sending the second indication to the second node 112, the method may further comprise that in this Action 209, the first node 111 may send a third indication to the second node 112 indicating to install the new key.
[0130] The third indication may be a response, according to existing methods, to the CREATE_CHILD_SA message received from the second node 112, as follows:
[0131] <--HDR, SK {SA, Nr, [KEr, ]
[0132] TSi, TSr}
[0133] By sending the third indication indicating to install the new key when the number of security keys being currently processed by the first node 111 may not exceed the threshold in this Action 209, the first node 111 may be enabled to guarantee no packet loss since both old key and new key may be understood to be installed and the first node 111 may be enabled to decrypt the packets which may be encrypted by either old key or new key. However, this may be understood to require double the amount of resources.
[0134] Action 210
[0135] In some embodiments, wherein the first node 111 may determine in Action 204 that the number of security keys being currently processed by the first node 111 does not exceed the threshold, the first node 111 may refrain from sending the second indication to the second node 112, the method may further comprise that in this Action 210, the first node 111 may receive a fourth indication from the second node 112. The fourth indication may request the first node 111 to delete the security key that is to expire within the shorter time period than the new security key.
[0136] The fourth indication may be an INFORMATIONAL message according to existing methods, as follows:
[0137] HDR, SK {D (SPI) } -->
[0138] By receiving the fourth indication requesting to delete the security key that is to expire within the shorter time period than the new security key when the number of security keys being currently processed by the first node 111 may not exceed the threshold in this Action 210, the first node 111 may be enabled to delete the old SA key to save resource.
[0139] Action 211
[0140] In some embodiments, wherein the first node 111 may determine in Action 204 that the number of security keys being currently processed by the first node 111 does not exceed the threshold, the first node 111 may refrain from sending the second indication to the second node 112, the method may further comprise that in this Action 211, the first node 111 may delete the security key that is to expire within the shorter time period than the new security key responsive to receiving the fourth indication.
[0141] The first node 111, after deleting the security key that is to expire within the shorter time period than the new security key may reply to the fourth indication with a response to the INFORMATIONAL message according to existing methods, as follows:
[0142] <--HDR, SK {D (SPI) }
[0143] By deleting the security key that is to expire within the shorter time period than the new security key responsive to receiving the fourth indication when the number of security keys being currently processed by the first node 111 may not exceed the threshold in this Action 211, the first node 111 may be enabled to delete the old SA key to save resource.
[0144] Embodiments of a computer-implemented method performed by the second node 112, will now be described with reference to the flowchart depicted in Figure 3. The method may be understood to be for handling the security keys. The second node 112 operates in the computer system 100.
[0145] The method may comprise the following actions. Several embodiments are comprised herein. In some embodiments, the method may comprise all the actions. In other embodiments, the method may comprise two or more actions. One or more embodiments may be combined, where applicable. All possible combinations are not described to simplify the description. It should be noted that the examples herein are not mutually exclusive. Components from one example may be tacitly assumed to be present in another example and it will be obvious to a person skilled in the art how those components may be used in the other examples. In Figure 3, optional actions are depicted with dashed lines.
[0146] The detailed description of some of the following corresponds to the same references provided above, in relation to the actions described for the first node 111 and will thus not be repeated here to simplify the description. For example, in some embodiments, the first indication may be a CREATE_CHILD_SA.
[0147] Action 301
[0148] In this Action 301, the second node 112 may send the first prior indication to the first node 111. The first prior indication may indicate the second node 112 may support installation of a new key and deletion of a security key that is to expire within a shorter time period than a new security key in response to a same indication.
[0149] Action 302
[0150] In this Action 302, the second node 112 may receive the second prior indication from the first node 111. The second prior indication may indicate the first node 111 may support installation of a new key and deletion of a security key that is to expire within a shorter time period than a new security key in response to a same indication.
[0151] Action 303
[0152] In this Action 303, the second node 112 sends the first indication to the first node 111 operating in the computer system 100. The first indication indicates the first request to provide the second node 112 with the new security key to replace the security key that is to expire within the shorter time period than the new security key.
[0153] Action 304
[0154] In this Action 304, the second node 112 receives, responsive to the sent first indication, the second indication from the first node 111. The second indication indicates to install the new key and to delete the security key that is to expire within the shorter time period than the new security key.
[0155] As explained earlier, the second indication may be the FAST_CHILD_SA_REKEY notification.
[0156] By receiving the second indication in this Action 304, the second node 112, the initiator, may be enabled to determine that, this time, the rekeying process is the fast rekey process, so the second node 112, the initiator, may be enabled to directly delete the old child SA and install a new one.
[0157] In some embodiments, the receiving in this Action 304 of the second indication may be performed with the proviso the first prior indication may be sent.
[0158] In some embodiments, the receiving in this Action 304 of the second indication is performed with the proviso the second prior indication may be received.
[0159] In some embodiments, the receiving in this Action 304 of the second indication may be based on the proviso the number of security keys being currently processed by the first node 111 may exceed the threshold.
[0160] In some embodiments, the second indication may be the notification in the CREATE_CHILD_SA response message.
[0161] In some embodiments, the notification in the CREATE_CHILD_SA response message may comprise: a) the critical field set to 0, indicating the second indication is to be ignored with the proviso the second node 112 fails to recognize it, b) the protocol identity field set to AH or to ESP, c) the SPI size field set to a corresponding SA SPI length, d) the notify message type field for a delay child SA rekey, e) the SPI filed set to the SA SPI corresponding to the second indication, and f) the notification data field left empty.
[0162] Figure 4 is a schematic signalling diagram illustrating a non-limiting example of the method that may be performed by the first node 111 and the second node 112, according to embodiments herein. As indicated in the Figure, the second node 112 is the rekey initiator and the first node 111 may be the rekey responder. The premise of the following process may be understood to be that, e.g., through IKE_AUTH negotiation, any of the first node 111 and the second node 112, e.g., an IPsec device, may be enabled to know whether the peer end may support the functions described in embodiments herein. If the procedure is supported the following procedure may be run. If not, then rekeying may be performed as usual according to the existing process. At 1, the second node 112, in accordance with Action 303 and Action 203, may use CREATE_CHILD_SA to trigger rekey. At 2, after receiving the request for child SA rekeying, the first node 111 may, in accordance with Action 204, check the number of child SA rekeying the first node 111 may be currently processing. If the number is not big, that is the number does not exceed the threshold, that may be understood to mean the resource, e.g., the HW resource, may afford rekeying this time. In such a case, the first node 111 may process the rekeying may be performed normally according to Actions 208-310. At 3, if the first node 111 finds that there are already too many child SAs under rekeying, the first node 111 may, according to Action 205, send a FAST_CHILD_SA_REKEY notification to the second node 112 in a CREATE_CHILD_SA response message. At 4, the first node 111 may locally delete the old SA and install the new SA. Step 3 may be understood to be performed firstly, because if the first node 111 deletes the old SA too early traffic loss may be introduced. However, if the first node 111 enables the second node 112 to be notified about the process being a fast child SA rekey process firstly, and then replaces the first node 111 local SA, the probability of traffic loss may be reduced. Even more, the first node 111 may add a reasonable delay before deleting the old SA to further reduce the traffic loss probability. The delay value may depend on implementation. At 5, after receiving the FAST_CHILD_SA_REKEY, the second node 112 may trigger to delete old SA according to Action 305 and install new SA according to Action 306.
[0163] Certain embodiments herein may provide one or more of the following technical advantage (s) . Embodiments herein may be understood to enable to reduce the overhead child SA caused by rekey, to save hardware (HW) resource, and to enable a larger IPsec scaling with the same HW resource.
[0164] Figure 5 depicts an example of the arrangement that the first node 111 may comprise to perform the method described in Figure 2 and / or Figure 4. The first node 111 may be understood to be for handling the security keys. The first node 111 is configured to operate in the computer system 100.
[0165] Several embodiments are comprised herein. It should be noted that the examples herein are not mutually exclusive. One or more embodiments may be combined, where applicable. All possible combinations are not described to simplify the description. Components from one embodiment may be tacitly assumed to be present in another embodiment and it will be obvious to a person skilled in the art how those components may be used in the other exemplary embodiments. The detailed description of some of the following corresponds to the same references provided above, in relation to the actions described for the first node 111 and will thus not be repeated here. For example, in some embodiments, the first indication may be configured to be a CREATE_CHILD_SA.
[0166] The first node 111 is configured to receive the first indication from the second node 112 configured to operate in the computer system 100. The first indication is configured to indicate the first request to provide the second node 112 with the new security key to replace the security key that is to expire within the shorter time period than the new security key.
[0167] The first node 111 is also configured to determine, responsive to the first indication configured to be received, whether or not the number of security keys configured to be currently processed by the first node 111 exceeds the threshold.
[0168] The first node 111 is further configured to send, based on the result of the determination, the second indication to the second node 112. The second indication is configured to indicate to install the new key and to delete the security key that is to expire within the shorter time period than the new security key.
[0169] In some embodiments, the first node 111 may be configured to, with the proviso the first node 111 determines that the number of security keys being currently processed by the first node 111 exceeds the threshold, send the second indication to the second node 112.
[0170] In some embodiments, the first node 111 may be further configured to, responsive to the first node 111 determining that the number of security keys being currently processed by the first node 111 exceeds the threshold, and after having sent the second indication, delete the security key that is to expire within the shorter time period than the new security key.
[0171] In some embodiments, the first node 111 may be further configured to, responsive to the first node 111 determining that the number of security keys being currently processed by the first node 111 exceeds the threshold, and after having sent the second indication, install the new key.
[0172] In some embodiments, the first node 111 may be further configured to, with the proviso the first node 111 determines that the number of security keys being currently processed by the first node 111 does not exceed the threshold, refrain from sending the second indication to the second node 112, and to install the new key prior to deleting the security key that is to expire within the shorter time period than the new security key.
[0173] In some embodiments, the first node 111 may be further configured to, with the proviso the first node 111 determines that the number of security keys being currently processed by the first node 111 does not exceed the threshold, refrain from sending the second indication to the second node 112, and to send the third indication to the second node 112 configured to indicate to install the new key.
[0174] In some embodiments, the first node 111 may be further configured to, with the proviso the first node 111 determines that the number of security keys being currently processed by the first node 111 does not exceed the threshold, refrain from sending the second indication to the second node 112, and to receive the fourth indication from the second node 112. The fourth indication may be configured to request the first node 111 to delete the security key that is to expire within the shorter time period than the new security key.
[0175] In some embodiments, the first node 111 may be further configured to, with the proviso the first node 111 determines that the number of security keys being currently processed by the first node 111 does not exceed the threshold, refrain from sending the second indication to the second node 112, and to delete the security key that is to expire within the shorter time period than the new security key responsive to receiving the fourth indication.
[0176] In some embodiments, the first node 111 may be further configured to receive the first prior indication from the second node 112. The first prior indication may be configured to indicate the second node 112 supports installation of a new key and deletion of a security key that is to expire within a shorter time period than a new security key in response to a same indication. The sending of the second indication may be configured to be performed with the proviso the first prior indication may be received.
[0177] In some embodiments, the first node 111 may be further configured to send the second prior indication to the second node 112. The second prior indication may be configured to indicate the first node 111 supports installation of a new key and deletion of a security key that is to expire within a shorter time period than a new security key in response to a same indication, and the sending of the second indication may be configured to be performed with the proviso the second prior indication may be sent.
[0178] In some embodiments, the second indication may be configured to be the notification in the CREATE_CHILD_SA response message.
[0179] In some embodiments, the notification in the CREATE_CHILD_SA response message may be configured to comprise: a) the critical field set to 0, indicating the second indication is to be ignored with the proviso the second node 112 fails to recognize it, b) the protocol identity field set to AH or to ESP, c) the an SPI size field set to the corresponding SA SPI length, d) the notify message type field for a delay child SA rekey, e) the SPI filed set to an SA SPI corresponding to the second indication, and f) the notification data field left empty.
[0180] The embodiments herein in the first node 111 may be implemented through one or more processors, such as a processing circuitry 501 in the first node 111 depicted in Figure 5, together with computer program code for performing the functions and actions of the embodiments herein. A processor, as used herein, may be understood to be a hardware component. The program code mentioned above may also be provided as a computer program product, for instance in the form of a data carrier carrying computer program code for performing the embodiments herein when being loaded into the first node 111. One such carrier may be in the form of a CD ROM disc. It is however feasible with other data carriers such as a memory stick. The computer program code may furthermore be provided as pure program code on a server and downloaded to the first node 111.
[0181] The processing circuitry 501 may be configured to, or operable to, perform the method actions according to Figure 2 and / or Figure 4.
[0182] The first node 111 may further comprise a memory 502 comprising one or more memory units. The memory 502 is arranged to be used to store obtained information, store data, configurations, schedulings, and applications etc. to perform the methods herein when being executed in the first node 111.
[0183] In some embodiments, the first node 111 may receive information from, e.g., the second node 112, another node, and / or another structure in the computer system 100, through a receiving port 503. In some embodiments, the receiving port 503 may be, for example, connected to one or more antennas in first node 111. In other embodiments, the first node 111 may receive information from another structure in the computer system 100 through the receiving port 503. Since the receiving port 503 may be in communication with the processing circuitry 501, the receiving port 503 may then send the received information to the processing circuitry 501. The receiving port 503 may also be configured to receive other information.
[0184] The processing circuitry 501 in the first node 111 may be further configured to transmit or send information to e.g., the second node 112, another node, and / or another structure in the computer system 100, through a sending port 504, which may be in communication with the processing circuitry 501, and the memory 502.
[0185] Those skilled in the art will also appreciate that the units comprised within the first node 111 described above as being configured to perform different actions, may refer to a combination of analog and digital circuits, and / or one or more processors configured with software and / or firmware, e.g., stored in memory, that, when executed by the one or more processors such as the processing circuitry 501, perform as described above. One or more of these processors, as well as the other digital hardware, may be included in a single Application-Specific Integrated Circuit (ASIC) , or several processors and various digital hardware may be distributed among several separate components, whether individually packaged or assembled into a System-on-a-Chip (SoC) .
[0186] Also, in some embodiments, different units comprised within the first node 111 configured to perform the different actions described above may be implemented as one or more applications running on one or more processors such as the processing circuitry 501.
[0187] Thus, the methods according to the embodiments described herein for the first node 111 may be respectively implemented by means of a computer program 505 product, comprising instructions, i.e., software code portions, which, when executed on at least one processing circuitry 501, cause the at least one processing circuitry 501 to carry out the actions described herein, as performed by the first node 111. The computer program 505 product may be stored on a computer-readable storage medium 506. The computer-readable storage medium 506, having stored thereon the computer program 505, may comprise instructions which, when executed on at least one processing circuitry 501, cause the at least one processing circuitry 501 to carry out the actions described herein, as performed by the first node 111. In some embodiments, the computer-readable storage medium 506 may be a non-transitory computer-readable storage medium, such as a CD ROM disc, or a memory stick. In other embodiments, the computer program 505 product may be stored on a carrier containing the computer program 505 just described, wherein the carrier is one of an electronic signal, optical signal, radio signal, or the computer-readable storage medium 506, as described above.
[0188] The first node 111 may comprise a communication interface configured to facilitate, or an interface unit to facilitate, communications between the first node 111 and other nodes or devices, e.g., the second node 112, another node, and / or another structure in the computer system 100. The interface may, for example, include a transceiver configured to transmit and receive radio signals over an air interface in accordance with a suitable standard.
[0189] In other embodiments, the first node 111 may comprise a radio circuitry 507, which may comprise e.g., the receiving port 503 and the sending port 504.
[0190] The radio circuitry 507 may be configured to set up and maintain at least a wireless connection with the second node 112, another node, and / or another structure in the computer system 100. Circuitry may be understood herein as a hardware component.
[0191] Hence, embodiments herein also relate to the first node 111 operative to operate in the computer system 100. The first node 111 may comprise the processing circuitry 501 and the memory 502, said memory 502 containing instructions executable by said processing circuitry 501, whereby the first node 111 is further operative to perform the actions described herein in relation to the first node 111, e.g., in Figure 2 and / or Figure 4.
[0192] Figure 6 depicts an example of the arrangement that the second node 112 may comprise to perform the method described in Figure 3 and / or Figure 4. The second node 112 may be understood to be for handling the security keys. The second node 112 may be configured to operate in the computer system 100.
[0193] Several embodiments are comprised herein. It should be noted that the examples herein are not mutually exclusive. One or more embodiments may be combined, where applicable. All possible combinations are not described to simplify the description. Components from one embodiment may be tacitly assumed to be present in another embodiment and it will be obvious to a person skilled in the art how those components may be used in the other exemplary embodiments. The detailed description of some of the following corresponds to the same references provided above, in relation to the actions described for the second node 111 and will thus not be repeated here. For example, in some embodiments, the first indication may be configured to be a CREATE_CHILD_SA.
[0194] The second node 112 is configured to send the first indication to a first node 111 configured to operate in the computer system 100. The first indication is configured to indicate the first request to provide the second node 112 with the new security key to replace the security key that is to expire within the shorter time period than the new security key.
[0195] The second node 112 is also configured to receive, responsive to the first indication configured to be sent, the second indication from the first node 111. The second indication is configured to indicate to install the new key and to delete the security key that is to expire within the shorter time period than the new security key.
[0196] In some embodiments, receiving of the second indication may be configured to be based on the proviso the number of security keys being configured to be currently processed by the first node 111 exceeds the threshold.
[0197] In some embodiments, responsive to receiving the second indication, the second node 112 may be further configured to delete the security key that is to expire within the shorter time period than the new security key.
[0198] In some embodiments, responsive to receiving the second indication, the second node 112 may be further configured to install the new key.
[0199] In some embodiments, the second node 112 may be further configured to send the first prior indication to the first node 111. The first prior indication may be configured to indicate the second node 112 supports installation of a new key and deletion of a security key that is to expire within a shorter time period than a new security key in response to a same indication. The receiving of the second indication may be configured to be performed with the proviso the first prior indication may be sent.
[0200] In some embodiments, the second node 112 may be further configured to receive the second prior indication from the first node 111. The second prior indication may be configured to indicate the first node 111 supports installation of a new key and deletion of a security key that is to expire within a shorter time period than a new security key in response to a same indication. The receiving of the second indication may be configured to be performed with the proviso the second prior indication may be received.
[0201] In some embodiments, the second indication may be configured to be the notification in the CREATE_CHILD_SA response message.
[0202] In some embodiments, the notification in the CREATE_CHILD_SA response message may be configured to comprise: a) the critical field set to 0, indicating the second indication is to be ignored with the proviso the second node 112 fails to recognize it, b) the protocol identity field set to AH or to ESP, c) the SPI size field set to the corresponding SA SPI length, d) the notify message type field for the delay child SA rekey, e) the SPI filed set to the SA SPI corresponding to the second indication, and f) the notification data field left empty.
[0203] The embodiments herein in the second node 112 may be implemented through one or more processors, such as a processing circuitry 601 in the second node 112 depicted in Figure 6, together with computer program code for performing the functions and actions of the embodiments herein. A processor, as used herein, may be understood to be a hardware component. The program code mentioned above may also be provided as a computer program product, for instance in the form of a data carrier carrying computer program code for performing the embodiments herein when being loaded into the second node 112. One such carrier may be in the form of a CD ROM disc. It is however feasible with other data carriers such as a memory stick. The computer program code may furthermore be provided as pure program code on a server and downloaded to the second node 112.
[0204] The processing circuitry 601 may be configured to, or operable to, perform the method actions according to Figure 3 and / or Figure 4.
[0205] The second node 112 may further comprise a memory 602 comprising one or more memory units. The memory 602 is arranged to be used to store obtained information, store data, configurations, schedulings, and applications etc. to perform the methods herein when being executed in the second node 112.
[0206] In some embodiments, the second node 112 may receive information from, e.g., the first node 111, another node, and / or another structure in the computer system 100, through a receiving port 603. In some embodiments, the receiving port 603 may be, for example, connected to one or more antennas in second node 112. In other embodiments, the second node 112 may receive information from another structure in the computer system 100 through the receiving port 603. Since the receiving port 603 may be in communication with the processing circuitry 601, the receiving port 603 may then send the received information to the processing circuitry 601. The receiving port 603 may also be configured to receive other information.
[0207] The processing circuitry 601 in the second node 112 may be further configured to transmit or send information to e.g., the first node 111, another node, and / or another structure in the computer system 100, through a sending port 604, which may be in communication with the processing circuitry 601, and the memory 602.
[0208] Those skilled in the art will also appreciate that the units comprised within the second node 112 described above as being configured to perform different actions, may refer to a combination of analog and digital circuits, and / or one or more processors configured with software and / or firmware, e.g., stored in memory, that, when executed by the one or more processors such as the processing circuitry 601, perform as described above. One or more of these processors, as well as the other digital hardware, may be included in a single Application-Specific Integrated Circuit (ASIC) , or several processors and various digital hardware may be distributed among several separate components, whether individually packaged or assembled into a System-on-a-Chip (SoC) .
[0209] Also, in some embodiments, different units comprised within the second node 112 configured to perform the different actions described above may be implemented as one or more applications running on one or more processors such as the processing circuitry 601.
[0210] Thus, the methods according to the embodiments described herein for the second node 112 may be respectively implemented by means of a computer program 605 product, comprising instructions, i.e., software code portions, which, when executed on at least one processing circuitry 601, cause the at least one processing circuitry 601 to carry out the actions described herein, as performed by the second node 112. The computer program 605 product may be stored on a computer-readable storage medium 606. The computer-readable storage medium 606, having stored thereon the computer program 605, may comprise instructions which, when executed on at least one processing circuitry 601, cause the at least one processing circuitry 601 to carry out the actions described herein, as performed by the second node 112. In some embodiments, the computer-readable storage medium 606 may be a non-transitory computer-readable storage medium, such as a CD ROM disc, or a memory stick. In other embodiments, the computer program 605 product may be stored on a carrier containing the computer program 605 just described, wherein the carrier is one of an electronic signal, optical signal, radio signal, or the computer-readable storage medium 606, as described above.
[0211] The second node 112 may comprise a communication interface configured to facilitate, or an interface unit to facilitate, communications between the second node 112 and other nodes or devices, e.g., the first node 111, another node, and / or another structure in the computer system 100. The interface may, for example, include a transceiver configured to transmit and receive radio signals over an air interface in accordance with a suitable standard.
[0212] In other embodiments, the second node 112 may comprise a radio circuitry 607, which may comprise e.g., the receiving port 603 and the sending port 604.
[0213] The radio circuitry 607 may be configured to set up and maintain at least a wireless connection with the first node 111, another node, and / or another structure in the computer system 100. Circuitry may be understood herein as a hardware component.
[0214] Hence, embodiments herein also relate to the second node 112, operative to operate in the computer system 100. The second node 112 may comprise the processing circuitry 601 and the memory 602, said memory 602 containing instructions executable by said processing circuitry 601, whereby the second node 112 is further operative to perform the actions described herein in relation to the second node 112, e.g., in Figure 3 and / or Figure 4.
[0215] When using the word "comprise" or “comprising” , it shall be interpreted as non-limiting, i.e., meaning "consist at least of" .
[0216] The embodiments herein are not limited to the above-described preferred embodiments. Various alternatives, modifications and equivalents may be used. Therefore, the above embodiments should not be taken as limiting the scope of the invention.
[0217] Generally, all terms used herein are to be interpreted according to their ordinary meaning in the relevant technical field, unless a different meaning is clearly given and / or is implied from the context in which it is used. All references to a / an / the element, apparatus, component, means, step, etc. are to be interpreted openly as referring to at least one instance of the element, apparatus, component, means, step, etc., unless explicitly stated otherwise. The steps of any methods disclosed herein do not have to be performed in the exact order disclosed, unless a step is explicitly described as following or preceding another step and / or where it is implicit that a step must follow or precede another step. Any feature of any of the embodiments disclosed herein may be applied to any other embodiment, wherever appropriate. Likewise, any advantage of any of the embodiments may apply to any other embodiments, and vice versa. Other objectives, features and advantages of the enclosed embodiments will be apparent from the following description.
[0218] As used herein, the expression “at least one of: ” followed by a list of alternatives separated by commas, and wherein the last alternative is preceded by the “and” term, may be understood to mean that only one of the list of alternatives may apply, more than one of the list of alternatives may apply or all of the list of alternatives may apply. This expression may be understood to be equivalent to the expression “at least one of: ” followed by a list of alternatives separated by commas, and wherein the last alternative is preceded by the “or” term.
[0219] Any of the terms processor and circuitry may be understood herein as a hardware component.
[0220] As used herein, the expression “in some embodiments” has been used to indicate that the features of the embodiment described may be combined with any other embodiment or example disclosed herein.
[0221] As used herein, the expression “in some examples” has been used to indicate that the features of the example described may be combined with any other embodiment or example disclosed herein.
Claims
1.A computer-implemented method, performed by a first node (111) , for handling security keys, the first node (111) operating in a computer system (100) , the method comprising:- receiving (203) a first indication from a second node (112) operating in the computer system (100) , wherein the first indication indicates a first request to provide the second node (112) with a new security key to replace a security key that is to expire within a shorter time period than the new security key,- determining (204) , responsive to the received first indication, whether or not a number of security keys being currently processed by the first node (111) exceeds a threshold, and- sending (205) , based on a result of the determination, a second indication to the second node (112) , wherein the second indication indicates a) to install the new key and b) to delete the security key that is to expire within the shorter time period than the new security key.2.The method according to claim 1, wherein the first node (111) determines that the number of security keys being currently processed by the first node (111) exceeds the threshold and wherein the first node (111) sends the second indication to the second node (112) .3.The method according to claim 2, further comprising, responsive to the first node (111) determining that the number of security keys being currently processed by the first node (111) exceeds the threshold, and after having sent the second indication:- deleting (206) the security key that is to expire within the shorter time period than the new security key, and- installing (207) the new key.4.The method according to claim 1, wherein the first node (111) determines that the number of security keys being currently processed by the first node (111) does not exceed the threshold and wherein the first node (111) refrains from sending the second indication to the second node (112) , and wherein the method further comprises:- installing (208) the new key prior to deleting the security key that is to expire within the shorter time period than the new security key,- sending (209) a third indication to the second node (112) indicating to install the new key,- receiving (210) a fourth indication from the second node (112) , the fourth indication requesting the first node (111) to delete the security key that is to expire within the shorter time period than the new security key, and- deleting (211) the security key that is to expire within the shorter time period than the new security key responsive to receiving the fourth indication.5.The method according to any of claims claim 1-2, further comprising at least one of:- receiving (201) a first prior indication from the second node (112) , the first prior indication indicating the second node (112) supports installation of a new key and deletion of a security key that is to expire within a shorter time period than a new security key in response to a same indication, and wherein the sending (205) of the second indication is performed with the proviso the first prior indication is received, and- sending (202) a second prior indication to the second node (112) , the second prior indication indicating the first node (111) supports installation of a new key and deletion of a security key that is to expire within a shorter time period than a new security key in response to a same indication, and wherein the sending (205) of the second indication is performed with the proviso the second prior indication is sent.6.The method according to any of claims claim 1-5, wherein the second indication is a notification in a CREATE_CHILD_SA response message.7.The method according to claim 6, wherein the notification in the CREATE_CHILD_SA response message comprises:a. a critical field set to 0, indicating the second indication is to be ignored with the proviso the second node (112) fails to recognize it,b. a protocol identity field set to Authentication Header, AH, or to Encapsulating Security Payload, ESP,c. a security parameter index, SPI, size field set to a corresponding security association, SA, SPI length,d. a notify message type field for a delay child SA rekey,e. an SPI filed set to an SA SPI corresponding to the second indication, andf. a notification data field left empty.8.A computer-implemented method, performed by a second node (112) , for handling security keys, the second node (112) operating in a computer system (100) , the method comprising:- sending (303) a first indication to a first node (111) operating in the computer system (100) , wherein the first indication indicates a first request to provide the second node (112) with a new security key to replace a security key that is to expire within a shorter time period than the new security key, and- receiving (304) , responsive to the sent first indication, a second indication from the first node (111) , wherein the second indication indicates a) to install the new key and b) to delete the security key that is to expire within the shorter time period than the new security key.9.The method according to claim 8, wherein receiving (304) of the second indication is based on the proviso a number of security keys being currently processed by the first node (111) exceeds a threshold.10.The method according to claim 9, further comprising, responsive to receiving (304) the second indication:- deleting (305) the security key that is to expire within the shorter time period than the new security key, and- installing (306) the new key.11.The method according to any of claims claim 8-10, further comprising at least one of:- sending (301) a first prior indication to the first node (111) , the first prior indication indicating the second node (112) supports installation of a new key and deletion of a security key that is to expire within a shorter time period than a new security key in response to a same indication, and wherein the receiving (304) of the second indication is performed with the proviso the first prior indication is sent, and- receiving (302) a second prior indication from the first node (111) , the second prior indication indicating the first node (111) supports installation of a new key and deletion of a security key that is to expire within a shorter time period than a new security key in response to a same indication, and wherein the receiving (304) of the second indication is performed with the proviso the second prior indication is received.12.The method according to any of claims claim 8-11, wherein the second indication is a notification in a CREATE_CHILD_SA response message.13.The method according to claim 12, wherein the notification in the CREATE_CHILD_SA response message comprises:a. a critical field is set to 0, indicating the second indication is to be ignored with the proviso the second node (112) fails to recognize it,b. a protocol identity field set to Authentication Header, AH, or to Encapsulating Security Payload, ESP,c. a security parameter index, SPI, size field set to a corresponding security association, SA, SPI length,d. a notify message type field for a delay child SA rekey,e. an SPI filed set to an SA SPI corresponding to the second indication, andf. a notification data field left empty.14.A first node (111) , for handling security keys, the first node (111) being configured to operate in a computer system (100) , the first node (111) being further configured to:- receive a first indication from a second node (112) configured to operate in the computer system (100) , wherein the first indication is configured to indicate a first request to provide the second node (112) with a new security key to replace a security key that is to expire within a shorter time period than the new security key,- determine, responsive to the first indication configured to be received, whether or not a number of security keys configured to be currently processed by the first node (111) exceeds a threshold, and- send, based on a result of the determination, a second indication to the second node (112) , wherein the second indication is configured to indicate a) to install the new key and b) to delete the security key that is to expire within the shorter time period than the new security key.15.The first node (111) according to claim 14, wherein the first node (111) is configured to, with the proviso the first node (111) determines that the number of security keys being currently processed by the first node (111) exceeds the threshold, send the second indication to the second node (112) .16.The first node (111) according to claim 15, being further configured to, responsive to the first node (111) determining that the number of security keys being currently processed by the first node (111) exceeds the threshold, and after having sent the second indication:- delete the security key that is to expire within the shorter time period than the new security key, and- install the new key.17.The first node (111) according to claim 14, wherein the first node (111) is further configured to, with the proviso the first node (111) determines that the number of security keys being currently processed by the first node (111) does not exceed the threshold, refrain from sending the second indication to the second node (112) , and to:- install the new key prior to deleting the security key that is to expire within the shorter time period than the new security key,- send a third indication to the second node (112) configured to indicate to install the new key,- receive a fourth indication from the second node (112) , the fourth indication being configured to request the first node (111) to delete the security key that is to expire within the shorter time period than the new security key, and- delete the security key that is to expire within the shorter time period than the new security key responsive to receiving the fourth indication.18.The first node (111) according to any of claims claim 14-15, being further configured to at least one of:- receive a first prior indication from the second node (112) , the first prior indication being configured to indicate the second node (112) supports installation of a new key and deletion of a security key that is to expire within a shorter time period than a new security key in response to a same indication, and wherein the sending of the second indication is configured to be performed with the proviso the first prior indication is received, and- send a second prior indication to the second node (112) , the second prior indication being configured to indicate the first node (111) supports installation of a new key and deletion of a security key that is to expire within a shorter time period than a new security key in response to a same indication, and wherein the sending of the second indication is configured to be performed with the proviso the second prior indication is sent.19.The first node (111) according to any of claims claim 14-18, wherein the second indication is configured to be a notification in a CREATE_CHILD_SA response message.20.The first node (111) according to claim 19, wherein the notification in the CREATE_CHILD_SA response message is configured to comprise:a. a critical field set to 0, indicating the second indication is to be ignored with the proviso the second node (112) fails to recognize it,b. a protocol identity field set to Authentication Header, AH, or to Encapsulating Security Payload, ESP,c. a security parameter index, SPI, size field set to a corresponding security association, SA, SPI length,d. a notify message type field for a delay child SA rekey,e. an SPI filed set to an SA SPI corresponding to the second indication, andf. a notification data field left empty.21.A second node (112) , for handling security keys, the second node (112) being configured to operate in a computer system (100) , the second node (112) being further configured to:- send a first indication to a first node (111) configured to operate in the computer system (100) , wherein the first indication is configured to indicate a first request to provide the second node (112) with a new security key to replace a security key that is to expire within a shorter time period than the new security key, and- receive, responsive to the first indication configured to be sent, a second indication from the first node (111) , wherein the second indication is configured to indicate a) to install the new key and b) to delete the security key that is to expire within the shorter time period than the new security key.22.The second node (112) according to claim 21, wherein receiving of the second indication is configured to be based on the proviso a number of security keys being configured to be currently processed by the first node (111) exceeds a threshold.23.The second node (112) according to claim 22, being further configured to, responsive to receiving the second indication:- delete the security key that is to expire within the shorter time period than the new security key, and- install the new key.24.The second node (112) according to any of claims claim 21-23, being further configured to at least one of:- send a first prior indication to the first node (111) , the first prior indication being configured to indicate the second node (112) supports installation of a new key and deletion of a security key that is to expire within a shorter time period than a new security key in response to a same indication, and wherein the receiving of the second indication is configured to be performed with the proviso the first prior indication is sent, and- receive a second prior indication from the first node (111) , the second prior indication being configured to indicate the first node (111) supports installation of a new key and deletion of a security key that is to expire within a shorter time period than a new security key in response to a same indication, and wherein the receiving of the second indication is configured to be performed with the proviso the second prior indication is received.25.The second node (112) according to any of claims claim 21-24, wherein the second indication is configured to be a notification in a CREATE_CHILD_SA response message.26.The second node (112) according to claim 25, wherein the notification in the CREATE_CHILD_SA response message is configured to comprise:a. a critical field set to 0, indicating the second indication is to be ignored with the proviso the second node (112) fails to recognize it,b. a protocol identity field set to Authentication Header, AH, or to Encapsulating Security Payload, ESP,c. a security parameter index, SPI, size field set to a corresponding security association, SA, SPI length,d. a notify message type field for a delay child SA rekey,e. an SPI filed set to an SA SPI corresponding to the second indication, andf. a notification data field left empty.27.A computer program (505) , comprising instructions which, when executed on at least one processing circuitry (501) , cause the at least one processing circuitry (501) to carry out the method according to any of claims 1-7.28.A computer-readable storage medium (506) , having stored thereon a computer program (505) , comprising instructions which, when executed on at least one processing circuitry (901) , cause the at least one processing circuitry (501) to carry out the method according to any of claims 1-7.29.A computer program (605) , comprising instructions which, when executed on at least one processing circuitry (601) , cause the at least one processing circuitry (601) to carry out the method according to any of claims 8-13.30.A computer-readable storage medium (606) , having stored thereon a computer program (605) , comprising instructions which, when executed on at least one processing circuitry (601) , cause the at least one processing circuitry (601) to carry out the method according to any of claims 8-13.