The present disclosure relates generally to the field of secure communication. More particularly, it relates to establishment of a session key to be shared between a communication device and a network application function.
Problems related to a wireless communication device accessing two or more different networks will be exemplified herein in relation to a specific scenario with a drone. It should be noted that this example is merely illustrative and that the same or similar problems may arise in other scenarios where a wireless communication device is accessing two or more different networks.
Drones (communication devices) can autonomously navigate and perform tasks in areas where mobile network coverage may be poor. For example, a geographical area may comprise multiple sparse non-3GPP access networks (each having one or more access points) operated by multiple different operators, e.g. one or more WiFi networks, one or more Low-Power Wide-Area Networks, or a combination thereof.
In an example use case, a drone may fly over an area where a plurality of sensors is installed to collect data from the sensors. The sensors in this scenario may, typically, be owned and operated by multiple providers, and such providers may not necessarily have trust relations with each other.
In this scenario, the drone may need access to access points of the above mentioned sparse non-3GPP networks, e.g. to report collected sensor data, receive instructions, receive firmware updates, etc. Therefore, there is a need for a dynamic mechanism for gaining access to such access points. A straight-forward approach to this need may include the drone carrying (and maintaining) a list of access credentials to all access networks it should be able to connect to.
However, using such a list of access credentials for all possible access networks that a drone may need to connect to is problematic. For example, such an approach may entail a risk for credential leakage, e.g. since a drone needs to have the credentials in clear at the point of authentication. Furthermore, it is typically cumbersome to administer network credential updates with such an approach, since new access credentials (e.g. passwords) have to be distributed to all relevant drones.
US 2012/0284785 A1 describes a method for facilitating access to a first access network wherein a wireless communication device is authenticated with a second access network and temporary access credentials are generated using access information provided by the second access network. The wireless communication device transforms the temporary access credentials and an identifier of the first access network and the transformed access credentials are transmitted for performing authentication with the first access network. One problem with this approach is that the derived access credential (the password Ks_SSID) is sent in clear when authenticating to the first access network and thus can be intercepted and used by another device performing an impersonation attack. Furthermore, because the credential has been transmitted it has to be considered as “consumed” and should not be used again in a future authentication. Hence, a new access credential must be generated for every network authentication according to this solution. Acquiring a new access credential requires additional complexity and network access with the second access network every time access to the first network is needed. Another problem with this solution is that the first network provider may not fully trust the second network provider (e.g. credential leakage at the bootstrapping server function (BSF)) and would like to avoid that the second access provider knows the access credentials for the first network.
Therefore, there is a need for alternative network access approaches. Preferably such approaches are secure and dynamic.
The current disclosure refers to example scenarios, and associated example problems, where embodiments may be applicable, e.g. the drone scenario mentioned above. It should be noted that such scenarios, problems and applications are merely illustrative examples and are not intended as limiting. Contrarily, embodiments may be equally applicable in other scenarios where establishment of a session key may be suitable, and wherein the session key is to be shared between a communication device and a network application function.
It should be emphasized that the term “comprises/comprising” when used in this specification is taken to specify the presence of stated features, integers, steps, or components, but does not preclude the presence or addition of one or more other features, integers, steps, components, or groups thereof. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise.
It is an object of some embodiments to solve or mitigate, alleviate, or eliminate at least some of the above or other disadvantages.
According to a first aspect, this is achieved by a method of establishing a session key at a communication device, wherein the session key is to be shared between the communication device and a network application function (NAF) and wherein a service bootstrap key and an associated transaction identifier, previously derived by application of a general bootstrapping architecture (GBA) procedure, are shared between the communication device and a bootstrapping server function (BSF).
The method comprises acquiring a NAF identifier associated with the NAF, deriving a NAF specific key based on the NAF identifier and the service bootstrap key, deriving the session key based on the NAF specific key and one or more key defining parameters, wherein the key defining parameters are accessible by the communication device and by the NAF and are non-accessible by the BSF, and transmitting an attach request message and the transaction identifier towards the NAF for establishment of the session key at the NAF.
In some embodiments, the method may further comprise receiving an attach response message from the NAF, thereby establishing a communication session based on the session key.
In some embodiments, the method may further comprise, during the established communication session, deriving a new service bootstrap key and an associated new transaction identifier, to be shared between the communication device and the BSF, by re-applying the GBA procedure.
The method may further comprise discarding the service bootstrap key and the associated transaction identifier previously derived according to some embodiments.
According to some embodiment, the method may further comprise continuously ensuring that there is a valid service bootstrap key and the associated transaction identifier previously derived.
In some embodiments, the method may further comprise discarding the session key when the communication session is terminated.
A second aspect is a method of establishing a session key at a network application function (NAF), wherein the session key is to be shared between a communication device and the NAF and wherein a service bootstrap key and an associated transaction identifier, previously derived by application of a general bootstrapping architecture (GBA) procedure, are shared between the communication device and a bootstrapping server function (BSF).
The method comprises receiving an attach request message and the transaction identifier from the communication device, transmitting the transaction identifier and a NAF identifier associated with the NAF towards the BSF, in response thereto receiving a NAF specific key from the BSF, wherein the NAF specific key is based on the NAF identifier and the service bootstrap key, and deriving the session key based on the NAF specific key and one or more key defining parameters, wherein the key defining parameters are accessible by the communication device and by the NAF and are non-accessible by the BSF.
In some embodiments, the method may further comprise transmitting an attach response message towards the communication device, thereby establishing a communication session based on the session key.
In some embodiments, the method may further comprise discarding the session key when the communication session is terminated.
A third aspect is an arrangement for establishment of a session key at a communication device, the session key to be shared between the communication device and a network application function (NAF), wherein the communication device is configured to maintain a service bootstrap key and an associated transaction identifier, previously derived by application of a general bootstrapping architecture (GBA) procedure, and shared between the communication device and a bootstrapping server function (BSF).
The arrangement comprises a controller configured to cause acquisition of a NAF identifier associated with the NAF, derivation of a NAF specific key based on the NAF identifier and the service bootstrap key, derivation of the session key based on the NAF specific key and one or more key defining parameters, wherein the key defining parameters are accessible by the communication device and by the NAF and are non-accessible by the BSF, and transmission of an attach request and comprising the transaction identifier towards the NAF for establishment of the session key at the NAF.
A fourth aspect is a communication device comprising the arrangement of the third aspect.
A fifth aspect is an arrangement for establishment of a session key at a network application function (NAF), the session key to be shared between a communication device and the NAF.
The arrangement comprises a controller configured to cause reception of an attach request message and a transaction identifier from the communication device, transmission of the transaction identifier and a NAF identifier associated with the NAF towards a bootstrapping server function (BSF), in response thereto reception of a NAF specific key from the BSF, wherein the NAF specific key is based on the NAF identifier and a service bootstrap key, and derivation of the session key based on the NAF specific key and one or more key defining parameters, wherein the key defining parameters are accessible by the communication device and by the NAF and are non-accessible by the BSF.
The service bootstrap key and the associated transaction identifier, previously derived by application of a general bootstrapping architecture (GBA) procedure, are shared between the communication device and the BSF.
A sixth aspect is an access network node configured to implement a network application function (NAF) and comprising the arrangement of the fifth aspect.
A seventh aspect is a computer program product comprising a non-transitory computer readable medium, having thereon a computer program comprising program instructions. The computer program is loadable into a data processing unit and configured to cause execution of the method according to the any of the first and second aspects when the computer program is run by the data processing unit.
In some embodiments, any of the above aspects may additionally have features identical with or corresponding to any of the various features as explained above for any of the other aspects.
An advantage of some embodiments is that secure communication is provided for. For example, security of communicator may be improved or may be increased compared to prior art solutions. This advantage may, for example, be caused by ignorance at the BSF regarding the session key since the session key is known/derivable exclusively at the communication device and at the NAF.
Another advantage of some embodiments is that credential leakage may be mitigated. This advantage may, for example, be due to that the communication device does not have to carry a list of credentials for each network access function it may encounter.
Yet an advantage of some embodiments is that credential update administration may be facilitated. This advantage may, for example, be due to that the communication device does not have to carry a list of credentials for each network access function it may encounter.
Further objects, features and advantages will appear from the following detailed description of embodiments, with reference being made to the accompanying drawings. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the example embodiments.
As already mentioned above, it should be emphasized that the term “comprises/comprising” when used in this specification is taken to specify the presence of stated features, integers, steps, or components, but does not preclude the presence or addition of one or more other features, integers, steps, components, or groups thereof. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise.
Embodiments of the present disclosure will be described and exemplified more fully hereinafter with reference to the accompanying drawings. The solutions disclosed herein can, however, be realized in many different forms and should not be construed as being limited to the embodiments set forth herein.
It should be noted that when a user equipment (UE) is referred to herein the term is meant to encompass any suitable communication device, not necessarily operated by any user.
In the following, embodiments will be described where a session key is established to be shared between a communication device and a network application function (NAF), while it is not known or derivable at bootstrapping server function (BSF).
The session key is established based on a service bootstrap key, an associated transaction identifier, and one or more key defining parameters. The service bootstrap key and the associated transaction identifier are previously derived by application of a general bootstrapping architecture (GBA) procedure, and are shared between the communication device and the BSF. The one or more key defining parameters are accessible by the communication device and by the NAF, but are non-accessible by the BSF.
Referring to the above-described example scenario of a drone, each drone may be acting as the communication device 140, and each of the multiple sparse non-3GPP networks may be acting as a NAF 130. A service provider, that provides identities for drones and access credentials, may host a credentialing service represented by the BSF 120 and the HSS 110.
In a typical scenario according to the prior art, access credentials in the form of an identifier of the communication device (e.g. a UE identification, UE ID, an international mobile subscriber identity, IMSI, or the like) and a secret key is kept both at the communication device 140 and at the HSS 110. The communication key may be static or may be instantiated dynamically in a reoccurring authentication procedure.
As will be explained in the following, secure communication 220 between the communication device 230 and an access point (210a, 210b) of an access network associated with one of the NAFs can be achieved using an established session key shared between the communication device 230 and the applicable NAF 251.
The establishment of the session key may involve the identity of the communication device kept by the IM being provided to the DAGC 232 as illustrated at 233, and GBA procedures (GBA application security procedures 240a, GBA application authentication procedures 240b, and GBA device authentication procedures 240c) being performed between the DAGC 232 of the communication device, the access networks 250, and the credential service provider 260.
The method 300 is for establishing a session key (K_access) at the communication device, wherein the session key is to be shared between the communication device and a network application function (NAF, for example any of the NAFs 130 of
Before the method 300 is performed, a service bootstrap key (Ks) and an associated transaction identifier (B-TID) have been previously derived by application of a general bootstrapping architecture, GBA, procedure. This derivation has typically been performed during, or in association with, a previous communication session between the communication device and the same, or a different, NAF as that targeted by the current execution of the method 300. The previously derived service bootstrap key and transaction identifier are shared between the communication device and a bootstrapping server function (BSF, for example any of the BSFs 120 of
In step 310, the communication device acquires a NAF identifier (NAF_Id) associated with the targeted NAF. For example, the NAF identifier may be acquired by listening to broadcast information from the access network associated with the NAF. Alternatively or additionally, the NAF identifier may be acquired by receiving a dedicated message from the access network associated with the NAF, wherein the dedicated message is indicative of the NAF identifier (e.g. comprising the NAF identifier). Such dedicated message may, for example, be transmitted by the access network and received by the communication device in response to a network access request message being transmitted by the communication device and received by the access network. Yet alternatively or additionally, the NAF identifier may be acquired by retrieving it from storing circuitry comprised in the communication device.
Step 320 comprises the communication device deriving a NAF specific key (Ks_NAF) based on the NAF identifier (NAF_Id) and the service bootstrap key (Ks), and step 330 comprises the communication device deriving the session key (K_access) based on the NAF specific key (Ks_NAF) and one or more key defining parameters.
The key defining parameters are accessible by the communication device and by the NAF and are non-accessible by the BSF. In this way, the session key is neither known nor derivable at the BSF, which increases security. Furthermore, since the access credentials are dynamically established, there is no need for the communication device to carry a list of access credentials which also increases security and reduces the need for cumbersome credential updates.
The key defining parameters can be any suitable parameters accessible by the communication device and by the NAF and non-accessible by the BSF. Generally, such parameters may be termed local parameters or local data, wherein local refers to the system comprising only the communication device and the NAF.
One example category of such parameters includes conditions of a radio link between the communication device and an access point of the NAF, which may be measured or estimated at either or both of the communication device and the access point (and possibly communicated between them).
Another example category of such parameters includes some quantity only accessible to the communication device and the NAF, e.g. a counter maintained by either or both (in synchronicity) of the communication device and the access point (and possibly communicated between them) or a random number generated by either of the communication device and the access point and communicated between them.
When the session key (K_access) has been derived in step 330, the communication device transmits an attach request message and the transaction identifier (B_TID) towards the NAF, as illustrated by step 340, for establishment of the session key at the NAF. For example, the attach request message may comprise the transaction identifier.
In response to transmitting the attach request message, the communication device may receive an attach response message from the NAF as illustrated by step 350. Thereby a communication session is established between the communication device and the NAF based on the established session key.
During the established communication session, a new service bootstrap key and an associated new transaction identifier (to be shared between the communication device and the BSF) may be derived by re-applying the GBA procedure as illustrated by step 360. Generally one or more pairs of a new service bootstrap key and an associated new transaction identifier may be derived in step 360. The latter approach provides for flexibility in which pair of service bootstrap key and associated transaction identifier to be used as previously derived service bootstrap key and associated transaction identifier in further executions of the method 300.
The new service bootstrap key and the associated new transaction identifier may then replace the previously derived service bootstrap key and associated transaction identifier in further executions of the method 300. Thus, the service bootstrap key and the associated transaction identifier previously derived may be discarded after the new ones have been derived as illustrated by step 370.
In some embodiments, multiple pairs of service bootstrap key and associated transaction identifier may be simultaneously maintained. Thus, the service bootstrap key and the associated transaction identifier previously derived may be continuously maintaining after the new ones have been derived as also illustrated by step 370. This provides for flexibility in which pair of service bootstrap key and associated transaction identifier to be used as previously derived service bootstrap key and associated transaction identifier in further executions of the method 300. In such embodiments, the service bootstrap key and the associated transaction identifier previously derived may be eventually discarded (e.g. when a certain time duration has elapsed since they were derived or when they have been used for a certain number of executions of the method 300).
Typically, the session key may be temporary and may be discarded when the communication session is terminated as illustrated by step 380.
The method 400 is for establishing a session key (K_access) at the NAF, wherein the session key is to be shared between a communication device and the NAF.
Before the method 400 is performed, a service bootstrap key (Ks) and an associated transaction identifier (B-TID) have been previously derived by application of a general bootstrapping architecture, GBA, procedure. This derivation has typically been performed during, or in association with, a previous communication session between the communication device and the same, or a different, NAF as the one executing the method 400. The previously derived service bootstrap key and transaction identifier are shared between the communication device and a bootstrapping server function (BSF, for example any of the BSFs 120 of
Also before the execution of the method 400 begins, some other steps may possibly be executed. For example, a NAF identifier (NAF_Id) associated with the NAF may be provided to the communication device (compare with step 310 of
In step 410, an attach request message and the transaction identifier (B_TID) is received from the communication device (compare with step 340 of
In response to execution of step 420, a NAF specific key (Ks_NAF) is received from the BSF in step 430. The NAF specific key (Ks_NAF) has been derived at the BSF based on the NAF identifier (NAF_Id) and the service bootstrap key (Ks) (compare with step 320 of
Then, the NAF derives the session key (K_access) in step 440 based on the NAF specific key (Ks_NAF) and one or more key defining parameters, wherein the key defining parameters are accessible by the communication device and by the NAF and are non-accessible by the BSF (compare with step 330 of
In step 450, an attach response message is transmitted towards the communication device (compare with step 350 of
As explained in connection to
Typically, the session key may be temporary and may be discarded when the communication session is terminated as illustrated by step 460 (compare with step 380 of
Thus, previously derived service bootstrap key (Ks) and associated transaction identifier (shared between the communication device and the BSF) and a NAF identifier (known at the NAF) are used to derive a NAF specific key (Ks_NAF) at the communication device and at the BSF.
Since the NAF specific key (Ks_NAF) is NAF specific it cannot be used to access other access networks than that associated with the targeted NAF. The NAF specific key (Ks_NAF) may typically be used as session key for some less sophisticated approaches, after having being provided to the NAF by the BSF (compare with step 430 of
In the example of
As mentioned above, there are various approaches to how the communication device may acquire (obtain) NAF_Id. The particular approach may depend on the applicable network. For example, NAF_Id may be hard-coded in the communication device or the communication device may obtain NAF_Id by listening to broadcast messages comprising network information.
The local data used in the derivation of K_access may also be obtained from broadcast messages in some approaches, or it may be generated by the communication device and transmitted to the NAF, e.g. in the attach request message (compare with step 340 of
Network attachment typically involves mutual authentication of the communication device and the access network. This authentication may be implemented via an attach request message 550 transmitted from the communication device to the access network (compare with step 340 of
The authentication may also involve other authentication related messages as suitable. For example, if an extensible authentication protocol (EAP) is used, the number of messages sent back and forth is larger than two and depends on the EAP algorithm applied.
The communication device typically connects to the access network via a gateway (GW) or an access point (AP). Depending on the access network, the authentication may be handled by the GW, by the AP, or by a separate network node such as an authentication, authorization and accounting (AAA) server.
In any case, the communication device transmits an attach request message 550 to the access network (compare with step 340 of
The NAF 530 uses B-TID to request Ks_NAF from the BSF. This is illustrated in
Then, the NAF 530 derives K_access based on Ks_NAF and local data as illustrated by 531 (compare with step 440 of
Generally, one way for the communication device and the BSF to derive Ks_NAF is to apply the function: Ks_NAF=KDF (Ks, “gba-me”, RAND, IMPI, NAF_Id), where KDF is the key derivation function as specified in 3GPP TS33.220 Annex B and the NAF_Id format depends on which access network is being targeted, “gba-me” is a fixed string used in the key derivation to tie the key derivation function to a specific context (any text string could be used), RAND is a 128-bit random number as defined by the AKA algorithm that is used for the authentication and key agreement (see 3GPP TS 33.102), and IP Multimedia Private Identity (IMPI) is the identifier of the 3GPP subscription. The identifier IMPI (or a temporary IMPI, TIMPI) is used in the bootstrapping phase to identify the user of the service, such that the correct key material can be picked up by BSF when running the AKA protocol. IMPI is then a subscription identifier for the credential service.
Generally, any credential service identifier (CSID) may be used for the purpose fulfilled by the IMPI in the example above. Examples of CSID include, but are not limited to, a communication device identifier (CDID), an IMPI, or an IMSI.
Also generally, one way for the communication device and the NAF to derive Ks_access is to apply the function: K_access=KDF (Ks_NAF, local network data).
The example GBA procedure of
As illustrated by 742, the BSF retrieves a complete set of GBA user security settings and one Authentication Vector (AV=RAND∥AUTN∥XRES∥CK∥IK) from the HSS over the reference point Zh, where ∥ denoted concatenation and where the notations are defined in accordence with the disclosure of 3GPP TS 33.102. If no HSS with Zh reference point is deployed, the BSF retrieves the Authentication Vector over the reference point Zh′ from either a (GBA incapable) HLR or a (GBA incapable) HSS with Zh′ reference point support, as also illustrated by 742.
Then, as illustrated by 743, the BSF forwards RAND and AUTN to the CD in the so called “401 message” (without CK, IK, XRES), indicated in
As illustrated by 744, the CD checks AUTN to verify that the challenge 743 is from an authorized network and calculates CK, IK, RES. This may be achieved by running an Authentication and Key Agreement (AKA) algorithm. After step 744 has been performed, session keys IK and CK are available in both BSF and CD.
The CD then sends another request 745 (e.g. an HTTP request) to the BSF, comprising the Digest AKA response (calculated using RES), and the BSF authenticates the CD by verifying the Digest AKA response as illustrated by 746.
The BSF generates a service bootstrap key (Ks) by concatenating CK and IK as illustrated by 747. Although not shown in
The BSF sends a so called “200 OK message” 748 (including B-TID and the key lifetime of Ks) to the CD to indicate the success of the authentication. The CD also generates the service bootstrap key (Ks) by concatenating CK and IK as illustrated by 749.
Both the CD and the BSF then uses Ks to derive the Ks_NAF as explained above, wherein Ks_NAF may be used as a base for securing the reference point Ua. In the standard application of GBA, the BSF is fully trusted by the network operator. Hence, Ks_NAF may be used as the session key. This approach is undesirable in the scenarios described herein, since the BSF is typically not operated by the owner of the access network the drone attaches to, and may also be undesirable in other scenarios. Therefore, a session key is derived in the communication device and in the NAF based on Ks_NAF and parameters unknown to the BSF as elaborated on above.
In the communication device 810, an arrangement is comprised for establishment of a session key at the communication device, the session key to be shared between the communication device and the network application function (NAF). The communication device is configured to maintain a service bootstrap key and an associated transaction identifier, previously derived by application of a general bootstrapping architecture (GBA) procedure, and shared between the communication device and the bootstrapping server function (BSF).
The arrangement comprises a controller (CNTR; e.g. controlling circuitry) 811 configured to cause acquisition of a NAF identifier associated with the NAF. To this end, the controller 811 may be associated with a receiver, here represented as a transceiver (RX/TX; e.g. transceiving circuitry) 813, configured to receive the NAF identifier from the NAF as elaborated on above. Alternatively or additionally, the controller 811 may be associated with a memory (MEM; e.g. storing circuitry) 812 configured to comprise the NAF identifier elaborated on above. The memory may also be configured to comprise the previously derived service bootstrap key and associated transaction identifier.
The controller is also configured to cause derivation of a NAF specific key based on the NAF identifier and the service bootstrap key and derivation of the session key based on the NAF specific key and one or more key defining parameters, wherein the key defining parameters are accessible by the communication device and by the NAF and are non-accessible by the BSF. To this end, the controller 811 may be associated with a deriver (DER; e.g. deriving circuitry) 814 configured to derive the NAF specific key based on the NAF identifier and the service bootstrap key and to derive the session key based on the NAF specific key and the one or more key defining parameters.
The controller is further configured to cause transmission of an attach request message and the transaction identifier towards the NAF for establishment of the session key at the NAF. To this end, the controller may be associated with a transmitter, here represented as the transceiver 813, configured to transmit the attach request message and the transaction identifier.
The controller 811 may be further configured to cause reception (e.g. by the transceiver 813) of an attach response message from the NAF, and thereby establishment of a communication session based on the session key.
The controller may also be further configured to cause, during the established communication session, derivation of a new service bootstrap key and an associated new transaction identifier, to be shared between the communication device and the BSF, by re-application of the GBA procedure. To this end, the controller may be associated with a GBA deriver (e.g. the deriver 814; compare also with 232 of
The controller 811 may be further configured to cause discardment and/or continuous maintenance of the service bootstrap key and the associated transaction identifier previously derived, and/or to cause discardment of the session key responsive to termination of the communication session.
One or more of the transceiver 813, the memory 812 and the deriver 814 may be comprised in the arrangement according to some embodiments. The deriver 814 may possibly be comprised also in the controller 811 according to some embodiments.
In the access network node 820, an arrangement is comprised for establishment of a session key at the access network node, the session key to be shared between the communication device and the network application function (NAF).
The arrangement comprises a controller (CNTR; e.g. controlling circuitry) 821 configured to cause reception of an attach request message and a transaction identifier from the communication device. To this end, the controller 821 may be associated with a receiver, here represented as a transceiver (RX/TX; e.g. transceiving circuitry) 823, configured to receive the attach request message and the transaction identifier from the communication device.
The controller 821 is also configured to cause transmission of the transaction identifier and a NAF identifier associated with the NAF towards the BSF and reception of a NAF specific key (based on the NAF identifier and a service bootstrap key) from the BSF. To this end, the controller 821 may be associated with a communication interface (IF; e.g. interface circuitry) 825, configured to transmit the transaction identifier and the NAF identifier and to receive the NAF specific key.
The controller is further configured to cause derivation of the session key based on the NAF specific key and one or more key defining parameters as elaborated on above. To this end, the controller 821 may be associated with a deriver (DER; e.g. deriving circuitry) 824 configured to derive the session key based on the NAF specific key and the one or more key defining parameters.
The controller 824 may be further configured to cause transmission of an attach response message towards the communication device, and thereby establishment of a communication session based on the session key. To this end, the controller 821 may be associated with a transmitter, here represented as the transceiver (RX/TX; e.g. transceiving circuitry) 823, configured to transmit the attach response message.
The controller 821 may be further configured to cause discardment of the session key responsive to termination of the communication session.
The controller 821 may also be associated with a memory (MEM; e.g. storing circuitry) 822 configured to comprise the NAF identifier elaborated on above.
One or more of the transceiver 823, the memory 822, the deriver 824 and the communication interface 825 may be comprised in the arrangement according to some embodiments. The deriver 824 may possibly be comprised also in the controller 821 according to some embodiments.
The BSF 840 is configured to maintain the service bootstrap key and the associated transaction identifier, previously derived by application of the general bootstrapping architecture (GBA) procedure, and shared between the communication device and the bootstrapping server function (BSF). To this end the BSF may be associated with (e.g. may comprise) a memory (MEM; e.g. storing circuitry) 842 configured to comprise the previously derived service bootstrap key and associated transaction identifier.
The BSF 840 is also configured to receive the transaction identifier and the NAF identifier from the NAF and to transmit a NAF specific key to the NAF. To this end, the BSF 840 may be associated with a communication interface (IF; e.g. interface circuitry) 845, configured to receive the transaction identifier and the NAF identifier and to transmit the NAF specific key.
The BSF 840 may also comprise a controller (CNTR; e.g. controlling circuitry) 841 configured to cause derivation of the NAF specific key based on the NAF identifier and the service bootstrap key. To this end, the controller 841 may be associated with (e.g. may comprise) a deriver (DER; e.g. deriving circuitry) 844 configured to derive the NAF specific key.
Thus, according to some embodiments, a credentialing system for a plurality of access networks is provided. According to some embodiments, a system is provided for deriving entity unique network access credentials in a setting with multiple access networks. The solution according to some embodiments is generic and applies to any entity (communication device) moving around between and connecting to different access networks. The access networks are generally provided by different access network providers. Generic Bootstrapping Architecture (GBA) procedures are used to derive network access credentials for use by the communication device in the different networks. In this setup, each network provider acts as a Network Application Function (NAF) that requests credentials from the Bootstrapping Server Function (BSF), which is typically operated by a third party.
According to some solutions presented herein, use of static access network credentials is avoided. Instead each entity (communication device) moving around between and connecting to different access networks authenticates to each network using an individual credential. The use of individual credentials decreases the risk of credentials being leaked or misused and removes the need for continuous updates of credentials.
A few illustrative examples will now be disclosed with reference to the scenario with a drone described earlier.
During the first deployment of the drone, (open) access to a network should preferably be available to enable the drone to establish a first GBA security association (SA), which can later be used to get further network access. In general, once the first SA is established, the GBA bootstrapping may be performed in accordance with the description in 3GPP T533.220 with the assumption that key lifetimes are long enough to ensure validity when a new access network is encountered. This enables that the drone can derive new Security Associations when it has network access, the new security associations for being used the next time it encounters a new network in a reoccurring manner.
In some embodiments, only one active security association is allowed at a time (as conventionally for GBA). Thus, as soon as a security association has been used to establish an access network connection and a new security association to replace the old one, the old security association is discarded. To avoid that the device becomes unable to connect to any network, it may (as in this case) be allowed to use the security association several times for network access, with different network access providers, until a new security association is established.
In some embodiments, multiple security associations can be derived and/or maintained in parallel, but the use of the multiple security associations may be limited such that each of them may only be usable once. Having access to multiple security associations provides a failure tolerance; if a security association—for some reason—fails to establish access to a particular network and a new security association therefore cannot be derived, there are still security association(s) available when the next access network is encountered.
In some embodiments, a hybrid approach may be used, where multiple security associations may be used multiple times.
The bootstrapping procedure described in the previous section essentially corresponds to standard GBA. However, the shared session key for network access between the CD and the NAF is derived differently to overcome shortcomings of standard GBA.
To establish a shared session key that is unknown to (and underivable by) the BSF, Ks_NAF should not be used directly as the shared session key as is done in application of standard GBA. Instead, an extra layer of key derivation may be applied where Ks_NAF is used as input to a KDF in the CD and the NAF, resulting in the shared session key K_access for network access.
To further prevent the BSF from learning the session key, the derivation of K_access includes local information (one or more parameters) that is not accessible to the BSF as elaborated on above. Such local information may comprise status parameters of the radio link between the CD and an access point associated with the NAF (e.g. signal strength, channel usage, delay, etc.). Since the local information may be associated with a particular AP/GW, several different K_access may be derived by the NAF as illustrated in
When the access technology is WiFi, the access point unique service set identifier (SSID) may consist of two parts; one randomly generated part and one public part. The randomly generated part can be regularly regenerated and may serve as the local data in the derivation of the shared session key K_access. The public part may be used as the NAF_Id in the derivation of Ks_NAF. The SSID is broadcast by the AP to advertise the presence of the WiFi network.
In Wi-Fi Protected Access (WPA/WPA2) enterprise mode the Extensible Authentication Protocol (EAP) is used for network authentication and a method using a shared secret such as EAP-AKA and EAP-PSK may be applied, where PSK denotes “Pre-Shared Key”. The B-TID may then be transferred from the CD to NAF as part of the EAP-Response/Identity message and the AAA server running the EAP protocol may extract the BSF address (informing NAF of which address may be used to acquire Ks_NAF) from B-TID. An access network supporting EAP typically uses an AAA server that performs the EAP protocol with the device, wherein each network typically has its own AAA server.
The EAP protocol may correspond to 550, 553, and 554 in
For WPA/WPA2 personal mode, the WPA/WPA2 pre-shared key may be used as K_access and the B-TID may be based on the device medium access control (MAC) address which is sent from the communication device to the access network as part of the attachment request. The BSF address may be hard coded in NS and the B-TID sent from the NS to BSF could be formatted as base64encode(MAC_address)@BSF_servers_domain_name.
In personal mode there is a pre-shared key (PSK; at home, a password may typically be used) for securing the WiFi communication. The K_access computed as discussed above with some local data may be used as PSK, wherein the local data may be the randomly generated part of the SSID. The full SSID may be broadcasted by the AP for personal mode as well as for enterprise mode. Referring to
As mentioned above, a counter value may be used to separate access keys between different access points in the same access network. The counter value may be included in the key derivation as follows: K_access=KDF(Ks_NAF, SSIDrandom, counter). The counter value may, for example, be sent from the CD as a part of the B-TID value. The B-TID could then be the following string: “base64encode(RAND)@BSF_server_domain_name, base64(counter)”.
When the access technology is LoRa (as described, e.g. in LoRaWAN™ 1.1 Specification, 2017), a communication device uses two long term keys, the network key (NwkKey) and the application key (AppKey) for joining networks and deriving session keys for secure communication with the network and an application server (AS). NwkKey is known to the (home) network server (NS) and AppKey is known to the AS. When a LoRa communication device desires to connect to a LoRa network it sends a request (join-request, corresponding to 550 in
The join request is integrity protected using AES-CMAC (Advances Encryption Standard, Cipher-based Message Authentication Code) algorithm and NwkKey. The network validates the join request (compare with 532 of
In these embodiments, NwkKey may be derived from Ks_NAF (compare with 531 of
JoinEUI may be used by the access network to check if the join request was intended for that access network and if roaming is supported to locate the (home) network server. When the join request message is received, the network server responsible for the join procedure typically contacts the BSF to query Ks_NAF (compare with 551 and 552 of
DevNonce is only a 16-bit random value, but the NwkKey is typically only used in the join request message and the join accept message. Then, new session keys for protection of access network messages (including re-join messages) may be derived involving other local data. Hence, there may typically be more than 16 bits of local data protecting the access network communication from the BSF.
The described embodiments and their equivalents may be realized in software or hardware or a combination thereof. The embodiments may be performed by general purpose circuitry. Examples of general purpose circuitry include digital signal processors (DSP), central processing units (CPU), co-processor units, field programmable gate arrays (FPGA) and other programmable hardware. Alternatively or additionally, the embodiments may be performed by specialized circuitry, such as application specific integrated circuits (ASIC). The general purpose circuitry and/or the specialized circuitry may, for example, be associated with or comprised in an apparatus such as a communication device or a network node.
Embodiments may appear within an electronic apparatus (such as a wireless communication device or a network node) comprising arrangements, circuitry, and/or logic according to any of the embodiments described herein. Alternatively or additionally, an electronic apparatus (such as a wireless communication device or a network node) may be configured to perform methods according to any of the embodiments described herein.
According to some embodiments, a computer program product comprises a computer readable medium such as, for example a universal serial bus (USB) memory, a plug-in card, an embedded drive or a read only memory (ROM).
With reference to
Telecommunication network QQ410 is itself connected to host computer QQ430, which may be embodied in the hardware and/or software of a standalone server, a cloud-implemented server, a distributed server or as processing resources in a server farm. Host computer QQ430 may be under the ownership or control of a service provider, or may be operated by the service provider or on behalf of the service provider. Connections QQ421 and QQ422 between telecommunication network QQ410 and host computer QQ430 may extend directly from core network QQ414 to host computer QQ430 or may go via an optional intermediate network QQ420. Intermediate network QQ420 may be one of, or a combination of more than one of, a public, private or hosted network; intermediate network QQ420, if any, may be a backbone network or the Internet; in particular, intermediate network QQ420 may comprise two or more sub-networks (not shown).
The communication system of
Example implementations, in accordance with an embodiment, of the UE, base station and host computer discussed in the preceding paragraphs will now be described with reference to
Communication system QQ500 further includes base station QQ520 provided in a telecommunication system and comprising hardware QQ525 enabling it to communicate with host computer QQ510 and with UE QQ530. Hardware QQ525 may include communication interface QQ526 for setting up and maintaining a wired or wireless connection with an interface of a different communication device of communication system QQ500, as well as radio interface QQ527 for setting up and maintaining at least wireless connection QQ570 with UE QQ530 located in a coverage area (not shown in
Communication system QQ500 further includes UE QQ530 already referred to. Its hardware QQ535 may include radio interface QQ537 configured to set up and maintain wireless connection QQ570 with a base station serving a coverage area in which UE QQ530 is currently located. Hardware QQ535 of UE QQ530 further includes processing circuitry QQ538, which may comprise one or more programmable processors, application-specific integrated circuits, field programmable gate arrays or combinations of these (not shown) adapted to execute instructions. UE QQ530 further comprises software QQ531, which is stored in or accessible by UE QQ530 and executable by processing circuitry QQ538. Software QQ531 includes client application QQ532. Client application QQ532 may be operable to provide a service to a human or non-human user via UE QQ530, with the support of host computer QQ510. In host computer QQ510, an executing host application QQ512 may communicate with the executing client application QQ532 via OTT connection QQ550 terminating at UE QQ530 and host computer QQ510. In providing the service to the user, client application QQ532 may receive request data from host application QQ512 and provide user data in response to the request data. OTT connection QQ550 may transfer both the request data and the user data. Client application QQ532 may interact with the user to generate the user data that it provides.
It is noted that host computer QQ510, base station QQ520 and UE QQ530 illustrated in
In
Wireless connection QQ570 between UE QQ530 and base station QQ520 is in accordance with the teachings of the embodiments described throughout this disclosure. One or more of the various embodiments improve the performance of OTT services provided to UE QQ530 using OTT connection QQ550, in which wireless connection QQ570 forms the last segment. More precisely, the teachings of these embodiments may improve security as explained above.
A measurement procedure may be provided for the purpose of monitoring data rate, latency and other factors on which the one or more embodiments improve. There may further be an optional network functionality for reconfiguring OTT connection QQ550 between host computer QQ510 and UE QQ530, in response to variations in the measurement results. The measurement procedure and/or the network functionality for reconfiguring OTT connection QQ550 may be implemented in software QQ511 and hardware QQ515 of host computer QQ510 or in software QQ531 and hardware QQ535 of UE QQ530, or both. In embodiments, sensors (not shown) may be deployed in or in association with communication devices through which OTT connection QQ550 passes; the sensors may participate in the measurement procedure by supplying values of the monitored quantities exemplified above, or supplying values of other physical quantities from which software QQ511, QQ531 may compute or estimate the monitored quantities. The reconfiguring of OTT connection QQ550 may include message format, retransmission settings, preferred routing etc.; the reconfiguring need not affect base station QQ520, and it may be unknown or imperceptible to base station QQ520. Such procedures and functionalities may be known and practiced in the art. In certain embodiments, measurements may involve proprietary UE signaling facilitating host computer QQ510's measurements of throughput, propagation times, latency and the like. The measurements may be implemented in that software QQ511 and QQ531 causes messages to be transmitted, in particular empty or ‘dummy’ messages, using OTT connection QQ550 while it monitors propagation times, errors etc.
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.
Reference has been made herein to various embodiments. However, a person skilled in the art would recognize numerous variations to the described embodiments that would still fall within the scope of the claims.
For example, the method embodiments described herein discloses example methods through steps being performed in a certain order. However, it is recognized that these sequences of events may take place in another order without departing from the scope of the claims. Furthermore, some method steps may be performed in parallel even though they have been described as being performed in sequence. Thus, 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.
In the same manner, it should be noted that in the description of embodiments, the partition of functional blocks into particular units is by no means intended as limiting. Contrarily, these partitions are merely examples. Functional blocks described herein as one unit may be split into two or more units. Furthermore, functional blocks described herein as being implemented as two or more units may be merged into fewer (e.g. a single) unit.
Any feature of any of the embodiments disclosed herein may be applied to any other embodiment, wherever suitable. Likewise, any advantage of any of the embodiments may apply to any other embodiments, and vice versa.
Hence, it should be understood that the details of the described embodiments are merely examples brought forward for illustrative purposes, and that all variations that fall within the scope of the claims are intended to be embraced therein.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/SE2017/051190 | 11/29/2017 | WO | 00 |