The present invention relates to techniques in communication systems for authentication, and particularly but not exclusively to bootstrapping techniques.
So-called third generation (3G) mobile communication networks are currently being deployed. In Europe such networks conform to various standards formalised by the third generation partnership project (3GPP), which has a number of versions, generally known as releases.
In 3GPP there has been proposed (3GPP TS 33.220) an authentication infrastructure. This infrastructure may be utilised to enable application functions in the network side and on the user side to communicate in situations where they would not otherwise be able to do so. This functionality is referred to as “bootstrapping of application security”, or more generally simply as “bootstrapping”.
The general principles of bootstrapping are that a generic bootstrapping server function (BSF) allows a user equipment (UE) to authenticate therewith, and agree on session keys. Such authentication is preferably based on authentication and key agreement (AKA). By running AKA, the mobile terminal and the network mutually authenticate each other and agree on keys, specifically a confidentiality key (CK) and an integrity key (IK). After this authentication, the UE and an operator-controlled network application function (NAF), which may also be referred to as a service provider, may run some application specific protocol where the authentication of messages is based on the session keys agreed between the UE and the BSF.
The bootstrapping function is not intended to be dependent upon any particular network application function. The server implementing the bootstrapping function must be trusted by the home operator to handle authentication vectors. Network application functions in the operators home network are currently proposed to be supported, but this does not preclude the possibility of support of network application functions in a visited network, or even in a third network.
In the proposals for implementation of bootstrapping techniques, it is proposed that the UE sends a service request to a NAF. The NAF must then communicate with the BSF in order to retrieve the key(s) required for authentication with the UE. The need for the NAF to communicate with the BSF delays the reaction time for a NAF access, such that a user may experience a delay.
It is an aim of the invention to provide an improved technique, which addresses the above-stated problem.
According to the present invention there is provided a method of providing authentication information to a network application function comprising; receiving a request from a user equipment to provide authentication information to at least one network application function, and providing said authentication information to at least one network application function.
The request may be received from a user equipment to enable access to the network application function by the user equipment.
The request may include at least one network application function identity. The request may include an identifier of at least one type of network application function.
The authentication information may be bootstrapping information. The request may be received by a bootstrapping function. The method may further include obtaining said bootstrapping information.
The step of obtaining the bootstrapping information may comprise establishing an authentication procedure between the user equipment and the boot strapping function.
The authentication procedure between the user equipment and the boot strapping function may establish a shared key.
The bootstrapping information provided to the at least one network application function may be based on the shared key.
The bootstrapping information provided to the at least one network application function may include a transaction identifier. The bootstrapping information provided to the at least one network application function may include subscriber profile information.
The shared key bootstrapping information that may be provided to the network application function may be network application function specific. The step of obtaining bootstrapping information may include retrieving information from a home subscriber server.
In a further aspect there may be provided a method of providing bootstrapping information to a network application function entity to enable access by a user equipment, comprising; generating a request from a user equipment to provide bootstrapping information to at least one network application function entity; receiving said request at a bootstrapping functional entity; determining said bootstrapping information at said functional entity; and transmitting said determined bootstrapping information to the at least one network application function entity.
Said bootstrapping information may be determined in dependence on a transaction identifier included in said request.
The request may include at least one network application function identity. The request may include at least one type of network application function.
Said bootstrapping information may be determined by performing a bootstrapping operation.
In an aspect the invention provides an authentication entity including: receiving means for receiving a request from a user equipment to provide authentication information to at least one network application function entity; and transmitting means for transmitting said authentication information to the at least one network application function entity.
The authentication entity may further include determining means for determining at least one network application function entity identity from said request.
The authentication information may be bootstrapping information, the authentication entity comprising a bootstrapping functional entity. The authentication entity may further include determining means for determining said bootstrapping information.
The determining means for determining the bootstrapping information may comprise authentication means for establishing an authentication procedure between the user equipment and the boot strapping function.
The authentication means may establish a shared key. The bootstrapping information provided to the at least one network application function entity may be based on the shared key. The bootstrapping information provided to the at least one network application function entity may include a transaction identifier. The bootstrapping information provided to the at least one network application function entity may include subscriber profile information.
In an aspect the invention provides a user equipment adapted to transmit a request to an authentication entity to provide authentication information to at least one network application function entity. The request may be transmitted to a bootstrapping functional entity. The request may include one of a transaction identifier or a network application function identity.
In an aspect the invention provides a network application function entity adapted to receive unsolicited authentication information from an authentication function entity. Said authentication information may include bootstrapping information. Said authentication information may be associated with a user equipment. The authentication information may be received from an authentication function, the authentication information being established between said authentication function and the user equipment. The receipt of the authentication information from an authentication function entity may be responsive to a request by a user equipment to the authentication function entity.
In a further aspect, the invention provides a communication system including at least one user equipment and at least one network application functional entity, the system further including a bootstrapping functional entity, wherein the user equipment includes means to transmit a request to push authentication information to at least one network application function, the bootstrapping functional entity includes: receiving means for receiving the request from the user equipment, and transmitting means for transmitting said authentication information to the at least one network application function entity, and the at least one network application function includes means adapted to receive unsolicited bootstrapping information from the bootstrapping functional entity.
The invention is described with regard to particular exemplary embodiments by way of reference to the accompanying drawings, in which:
The invention is described herein by way of reference to an exemplary embodiment. In particular, the invention is described in the context of the implementation of bootstrapping techniques in a 3GPP system architecture. The invention, however, is not limited to specifics of the embodiment described herein. For example, the invention may be applied in 3GPP2 system architectures.
Referring to
The NAF 102 is hosted in a network element, preferably under the control of the MNO 108, and the BSF is also preferably hosted in a network element under the control of the MNO 108. Thus, for practical purposes, each of the NAF 102 and the BSF 104 may be considered to be a network element.
As illustrated in
The principle of bootstrapping is that the user equipment and the bootstrapping function mutually authenticate each other, preferably using the AKA protocol, and agree on session keys that are afterwards applied between the user equipment and an operator-controlled network application function. The key material is generated specifically for each network application function independently. After the bootstrapping operation has been completed, the user equipment and the operator-controlled network application function may run some specific protocol where the authentication of messages will be based on those keys generated during the mutual authentication between the user equipment and the bootstrapping server function. The keys are thus used for authentication and integrity protection, and preferably also for confidentiality. The network application function is then able to acquire the shared key material established between the user equipment and the bootstrapping server function.
The communication interface 112 supports the bootstrapping authentication and key agreement protocol, to provide the mutual authentication and key agreement between the UE 100 and the BSF 104. This protocol is preferably based on the 3GPP AKA protocol.
The interface 116 allows the BSF 104 to fetch any required authentication information and subscriber profile information from the HSS 106. The interface 110 supports the application protocol which is secured using the session keys agreed between the UE 100 and the BSF 104, based on the protocol supported by the interface 112. The interface 114 is used by the NAF 102 to fetch the key material agreed in the protocol supported on the interface 112 from the BSF 104. The interface 114 may also be used to fetch subscriber profile information from the BSF 104.
With further reference to the flow diagram of
The invention allows for the UE 100 to trigger the BSF 104 to “push” authentication information toward one or more NAFs 102. Thus, in accordance with the invention, the BSF provides authentication information to one or more NAFs without a request being made from the NAF to the BSF. The invention does not propose any modification to existing authentication protocols/techniques, or new authentication protocols/techniques. The invention may be applied in conjunction with any existing or proposed authentication protocols/techniques.
Referring to
In an embodiment, the UE 100 prepares a list of network application function identities (NAF_ID). This is represented by step 202 in
The UE 100 may also, in embodiments, trigger the BSF 104 to push bootstrapping information towards one or more NAFs 102 without the BSF performing a full bootstrapping operation. In such an embodiment, a transaction identifier (TID) from a previous bootstrapping procedure is utilised, as represented by step 204 in
As represented by step 206, the bootstrap operation is begun by the UE 100 transmitting a bootstrap request toward the BSF 104. The bootstrap request signal is represented by signal 302 in
Where optional step 202 is implemented, the request may contain one or more network application function identities, as denoted by NAF_ID*, the asterisk denoting that zero or more NAF_IDs are present.
Where optional step 204 is implemented, the request may include a transaction identifier, as denoted by TID? The designation “?” denotes that the transaction identifier TID is optional. If the request includes a transaction identifier, then it must include at least one network application function identity NAF_ID to which bootstrapping information is to be pushed. If the request does not include a transaction identifier (which inherently identifies at least one network application function identity), it may include at least one network application function identity from step 202.
Where there is no transaction identifier and no NAF_IDs included in the request, then the request from the UE does not result in the pushing of bootstrapping information to a NAF. Instead, a bootstrapping operation is simply carried out.
As illustrated by step 208 in
If in step 208 it is determined that there is no transaction identifier present, or if in step 210 it is determined that the transaction identifier is not valid, then the process moves to step 214, and a bootstrap operation is performed. On successful completion of the bootstrap operation, in a step 215 the bootstrap information is established.
Thereafter, in step 212 of the described embodiment, the BSF 104 determines whether the request message 302 includes any network application function identities. If any such identities are present, then the NAF-IDs are provided in step 216 to push the bootstrapping information to such network application functions. NAF identities may be present if they are specifically included in the request in step 202. Alternatively the NAF identities may be present as a result of a transaction identifier included in step 204. Thus even if the transaction identifier is determined not to be valid, the NAF identifiers associated therewith may still be used. As further described herein below, the NAF identifiers may be provided by further alternative techniques.
If step 212 determines that there are no NAF_IDs present, then the process simply moves to step 217 and the UE is notified that no push operation has been performed.
In step 214, the BSF 104 performs a conventional bootstrap operation. This conventional bootstrap operation is illustrated in
For bootstrapping, the BSF 104 transmits a MAR (IMPI) message 304 to the HSS 106. The HSS 106 returns a MM (AV+, profile) message 306. The signal exchange 304 and 306 allows the BSF 104 to retrieve the user profile for the UE 100, and an authentication vector for the UE 100. The authentication vector comprises a plurality of elements, as is known in the art, and is represented by the notation “AV+”. “AV+” denotes one or more attribute values (AVs). The authentication vector includes RAND, AUTN, XRES, CK key and IK key. The signal exchange 304 and 306 may not be needed if the BSF already has the authentication vectors for the UE.
The BSF 104 then returns an “401 unauthorised (RAND, AUTN delivered)” message 308 to the UE 100 i.e. the BSF 104 forwards the RAND and AUTN to the UE. The XRES, CK and IK are not forwarded. This message demands (or challenges) the UE 100 to authenticate itself.
Responsive to the message 308, the UE 100 calculates the message authentication code (MAC) so as to verify the challenge from the authenticated network. The UE calculates CK, IK, and RES. As a result, the session keys CK and IK are present in both the UE 100 and the BSF 104. The UE 100 then returns a “GET (RES used)” message 310, being a further request message. The further request message, 310, includes the Digest AKA RES as the response to the BSF challenge. If the RES contained in this message, as calculated by the UE 100, matches the XRES in the AV provided by the HSS to the BSF, then the UE is authenticated.
The key material Ks is generated, separately, in both the UE 100 and the BSF 104, by concatenating CK and IK. The key material Ka is then used to secure the Ua interface 110.
Referring to
Thus any NAFs identified by the transaction identifier following step 210 have the bootstrapping information pushed thereto. Similarly any NAFs having their identities included in the request message, following step 212, have the bootstrapping information returned from the bootstrap step 214 pushed thereto.
In the push operation, the BSF 104 provides to the identified NAF(s) 102 the key material for the UE, which the UE has requested to be pushed to the NAF(s). The NAF(s) then derive the keys required to protect the protocol used over the Ua interface 110 in the same way as the UE 100 did.
IN general, the invention is not limited to any particular technique for the provision of the NAF identifiers. IN step 212, any NAF identifiers present are determined. Whilst the NAF identifiers may be provided in the request 302, for example, they may also be provided in the bootstrapping phase, for example at the end of the bootstrapping phase in the HTTP Digest AKA message 310.
The transmission of the bootstrapping information from the BSF 104 to one or more NAFs 102 is identified in
The messages 312 and 314 are only exchanged if specific NAF_IDs are included in the original request message from the UE 100. This is described further below. If a transaction identifier is present in the request from the UE, then there must be one or more NAF identifiers present. If such NAF identifiers are present, then messages 312 and 314 are exchanged. This is represented by the flow of steps 208 to 210 to 216 in
If the transaction identifier is not valid, for example because it is too old, then bootstrapping is performed in messages 304 to 310. This is represented in
Thus a push operation only occurs where at least one NAF_ID is present. In the absence of a NAF_ID, a bootstrapping operation is performed in step 214, but no push occurs, since no NAF is identified for a push to be made to in step 212.
After transmission of the bootstrapping information to the one or more NAFs 102 as illustrated by message 312 and step 216, the NAFs 102 transmit an acknowledgement message back to the BSF 104. This acknowledges, for a given NAF, that the bootstrapping information was received and has been stored. This is represented by step 218 in
In a step 220, the UE 100 is notified of the NAFs to which the bootstrapping information has been pushed. As shown in
It is envisaged that in one embodiment in the event that one or more NAFs do not respond with an acknowledgement, then a list of those NAFs which did positively respond with an acknowledgement is returned to the UE 100. The message 316 preferably includes a transaction identifier.
Alternatively, the response to the UE may contain no indication as to whether the push operation was successful or not.
If a full bootstrapping procedure was carried out, the response may include the new transaction identifier.
Thereafter, as represented by step 222 in
In the preferred embodiment, the bootstrapping information is pushed to network application functions which are specifically identified. That is, the bootstrapping information is pushed to those network application functions having their network application function identities provided to the BSF 104. The network application function identity, NAF_ID, is preferably in a format which is easily discovered or known by the UE 100, so that the UE 100 can include such identities in a request to push information. It is also important that the network application function identities uniquely identify an NAF. For example, the FQDN (Fully Qualified Domain Name) uniquely identifies an NAF and may be easily discovered or known by the UE.
It is envisaged in an alternative embodiment that rather than providing the BSF 104 with specific NAF identities, the UE 100 may provide the BSF 104 with an identity of NAF types. The bootstrapping information may then be pushed to all NAFs of that type by the BSF 104, responsive to an appropriate request from the UE 100. A single identifier, identifying a NAF type, may thus result in a push to a plurality of NAFs.
In the foregoing description with relation to
Thus, as described, the invention provides a technique by which the user equipment requests the bootstrap function to push bootstrap information to selected network application functions. The bootstrap information is then available in those network application functions when the user equipment makes a direct access to any such network application function. As such, the network application functions do not have to dynamically access the bootstrap function in order to retrieve the bootstrap information responsive to an access from the user equipment.
The unsolicited push of bootstrapping information to selected NAFs simplifies the procedures NAF needs to do during shared key usage over the Ua interface. For example, it simplifies shared key TLS (Transport Layer Security) usage, since when the UE establishes the connection using shared key TLS between it and a NAF, the NAF would already have the related session ID and master key in its TLS cache. This would remove the need for an “active” session cache functionality.
Although the invention has been described herein by way of reference to a particular exemplary embodiment implemented in a 3GPP architecture suitable for implementation of the AKA protocol, the invention is not limited in its applicability to such an environment. More generally, the invention may be utilised in any network arrangement where access to a function is dependent upon that function retrieving authentication information.
It should be noted that the term ‘network application function’ has no special meaning. It is used to refer to a function or entity which provides or supports an application to which a user equipment may require access.
Various adaptations and modifications to the invention as described herein will be apparent to one skilled in the art, the scope of the invention being defined by the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
0326265.6 | Nov 2003 | GB | national |