Operator-assisted key establishment
11799650 · 2023-10-24
Assignee
- Koninklijke Kpn N.V. (Rotterdam, NL)
- Nerderlandse Organisatie voor Toegepast-Natuurwetenschappelijk Onderzoek TNO ('s-Gravenhage, NL)
Inventors
Cpc classification
H04L9/32
ELECTRICITY
H04L9/0838
ELECTRICITY
H04L9/0866
ELECTRICITY
H04L9/3228
ELECTRICITY
H04L63/06
ELECTRICITY
H04W12/04
ELECTRICITY
H04L9/0816
ELECTRICITY
H04W4/70
ELECTRICITY
International classification
H04L9/32
ELECTRICITY
H04L9/08
ELECTRICITY
Abstract
The invention relates to a method and system for key distribution and encryption/decryption. An encryption key (K.sub.enc) is derived in a terminal. The encryption key is applied by the terminal for encrypting at least a part of data included in an application message for an application server transmitted over a network. The terminal and the network both have access to a first key (K.sub.1). The terminal and the server both have access to a second key (K.sub.2). The encryption key is derived at the terminal using the first key and the second key. The first key or the derivative thereof is received at the server. The encryption key for decrypting the application message encrypted by the terminal is derived in the server using the shared second key and the received first key of the derivative thereof.
Claims
1. A terminal for deriving a cryptographic key, the terminal comprising: a processor configured for deriving the cryptographic key using a first key and a second key, wherein the first key is received by the terminal from a network node in a network or derived by the terminal based on a parameter received from the network node, wherein at least one of the first key or the parameter is generated by the network; wherein the cryptographic key is applicable by the terminal for at least one of encrypting at least a part of data included in an application message for an application server transmitted over the network or authenticating the part of data included in the application message, wherein the terminal and the network both have access to the first key, wherein the terminal and the application server both have access to the second key, wherein the network comprising the network node does not have access to the second key and the cryptographic key, and wherein the network is a telecommunications network connecting the terminal to the application server.
2. The terminal according to claim 1, wherein deriving the cryptographic key using the first key and the second key comprises: deriving a partial key using the first key and a parameter associated with a communication session between the terminal and the network; and deriving the cryptographic key using the partial key and the second key.
3. A Universal Subscriber Identity Module configured for use within a terminal, the Universal Subscriber Identity Module comprising a processor configured for deriving a cryptographic key using a first key and a second key, wherein the first key is received by the Universal Subscriber Identity Module from a network node in a network or derived by the Universal Subscriber Identity Module based on a parameter received from the network node, wherein at least one of the first key or the parameter is generated by the network; wherein the cryptographic key is applicable by the terminal for at least one of encrypting at least a part of data included in an application message for an application server transmitted over the network or authenticating the part of data included in the application message, wherein the Universal Subscriber Identity Module and the network both have access to the first key, wherein the Universal Subscriber Identity Module and the application server both have access to the second key, wherein the network comprising the network node does not have access to the second key and the cryptographic key, and wherein the network is a telecommunications network connecting the terminal to the application server.
4. An application server for deriving a cryptographic key, the server configured for storing a second key, the application server comprising: a processor configured for obtaining a first key or a derivative of the first key, and for deriving the cryptographic key using the obtained first key or the derivative of the first key and the second key, wherein the cryptographic key is applicable by the application server for at least one of decrypting at least a part of data included in an application message for the application server transmitted from a terminal over a network or authenticating the part of data included in the application message, wherein the terminal and the network both have access to the first key, wherein the second key is shared between the terminal and the application server, wherein the network comprising the network node does not have access to the second key and the cryptographic key, and wherein the network is a telecommunications network connecting the terminal to the application server.
5. The application server according to claim 4, wherein the derivative of the first key comprises a partial key derived using the first key and a parameter associated with a communication session between the terminal and the network.
6. The application server according to claim 4, wherein obtaining the first key or the derivative of the first key comprises: at least one of: (i) receiving the first key or the derivative of the first key from the network, or (ii) receiving the application message including the first key or the derivative of the first key, and extracting the first key or the derivative of the first key from the received application message.
7. One or more non-transitory computer-readable storage media including instructions which, when executed by one or more processors, cause the one or more processors to perform operations comprising: deriving a cryptographic key using a first key and a second key, wherein the first key is received from a network node in a network or derived based on a parameter received from the network node, wherein at least one of the first key or the parameter is generated by the network, wherein the cryptographic key is applicable by a terminal for at least one of encrypting at least a part of data included in an application message for an application server transmitted over the network or authenticating the part of data included in the application message, wherein the terminal and the network both have access to the first key, wherein the second key is shared between the terminal and the application server, wherein the network comprising the network node does not have access to the second key and the cryptographic key, and wherein the network is a telecommunications network connecting the terminal to the application server.
8. One or more non-transitory computer-readable storage media including instructions which, when executed by one or more processors, cause the one or more processors to perform operations comprising: obtaining a first key or a derivative of the first key; retrieving a second key from a storage on an application server; and deriving a cryptographic key using the obtained first key or the obtained derivative of the first key and the second key, wherein the cryptographic key is applicable by the application server for at least one of decrypting at least a part of data included in an application message for the application server transmitted from a terminal over a network or authenticating the part of data included in the application message, wherein the terminal and the network both have access to the first key, wherein the second key is shared between the terminal and the application server, wherein the network comprising the network node does not have access to the second key and the cryptographic key, and wherein the network is a telecommunications network connecting the terminal to the application server.
9. A method for deriving a cryptographic key in a terminal, the method comprising: deriving the cryptographic key using a first key and a second key, wherein the first key is received by the terminal from a network node in a network or derived by the terminal based on a parameter received from the network node, wherein at least one of the first key or the parameter is generated by the network, wherein the cryptographic key is applicable by the terminal for at least one of encrypting at least a part of data included in an application message for an application server transmitted over the network or authenticating the part of data included in the application message, wherein the terminal and the network both have access to the first key, wherein the second key is shared between the terminal and the application server, wherein the network comprising the network node does not have access to the second key and the cryptographic key, and wherein the network is a telecommunications network connecting the terminal to the application server.
10. The method according to claim 9, wherein deriving the cryptographic key using the first key and the second key comprises: deriving a partial key using the first key and a parameter associated with a communication session between the terminal and the network; and deriving the cryptographic key using the partial key and the second key.
11. A method for deriving a cryptographic key in an application server, the method comprising: obtaining a first key or a derivative of the first key; retrieving a second key from a storage in the application server; and deriving the cryptographic key using the obtained first key or the obtained derivative of the first key and the second key, wherein the cryptographic key is applicable by the application server for at least one of decrypting at least a part of data included in an application message for the application server transmitted from a terminal over a network or authenticating the part of data included in the application message, wherein the terminal and the network both have access to the first key, wherein the second key is shared between the terminal and the application server, wherein the network comprising the network node does not have access to the second key and the cryptographic key, and wherein the network is a telecommunications network connecting the terminal to the application server.
12. The method according to claim 11, wherein the derivative of the first key comprises a partial key derived using the first key and a parameter associated with a communication session between the terminal and the network.
13. The method according to claim 11, wherein obtaining the first key or the derivative of the first key comprises: at least one of: (i) receiving the first key or the derivative of the first key from the network, or (ii) receiving the application message including the first key or the derivative of the first key, and extracting the first key or the derivative of the first key from the received application message.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) In the drawings:
(2)
(3)
(4)
(5)
DETAILED DESCRIPTION OF THE DRAWINGS
(6)
(7) In the telecommunications network of
(8) The lower branch of
(9) The upper branch in
(10) Further information of the general architecture of a EPS network can be found in 3GPP TS 23.401.
(11) Whereas the invention as defined in the appended claims is generally applicable to all of the above-described networks, a more detailed description of embodiments of the invention will be provided below for an LTE network. Persons skilled in the art will readily recognize adaptations necessary to implement the ideas discussed herein in other networks and architectures.
(12) For an LTE network, the MME is the network node typically controlling the connection between the telecommunications network 1 and the terminal 3. It should be appreciated that the telecommunications network 1 generally comprises a plurality of MMES, wherein each of the MMES is connected typically to several BSCs/RNCs to provide a packet service for terminals 3 via several eNodeBs.
(13) In an M2M environment, a single server 2 normally is used for communication with a large number of terminals 3. Individual terminals 3 can be identified by individual identifiers, such as an IP address, an International Mobile Subscriber Identity (IMSI) or another terminal identifier.
(14) Before the terminal 3 can access services provided by the network or transmit application messages to the server via a network node such as the MME node for the LTE network, the terminal 3 needs to be authenticated to the network. A manner for providing such authentication is known, but is briefly summarized in
(15) As shown in
(16) Once the terminal 3 has been authenticated with the network, in step 10, the MME stores the security context for the communication session and the terminal 3 may transmit data to the network, including transmitting application messages to the server over the network. The security context may also be stored in the terminal 3.
(17) Now the terminal 3 may setup a PDP Context to communicate to the server 2. In order to secure the communication the terminal 3 and server 2 may setup a secure tunnel. Such secure tunnel, however, provides significant overhead in establishing cryptographic keys and maintaining secure tunnel, as described above. As also described above, the mobile network operator may assist the establishing of session keys between the terminal 3 and the server 2 by implementing GBA, but this also introduces significant overhead.
(18)
(19) The present invention is based on the insight that the session key K.sub.ASME, the random number RAND, or other unique parameters established between the terminal 3 and the MME in a particular communication session between the terminal 3 and the MME and stored in step 10 of
(20)
(21) As shown in
(22) In various embodiments, the first key K.sub.1 may include one or more of the session key K.sub.ASME, the random number RAND, or other unique parameters established between the terminal 3 and the MME in a particular communication session between the terminal 3 and the MME, such as e.g. SQN, AK, SQN⊕AK. The first key K.sub.1 could be either received by the terminal 3 from the MME or derived locally in the terminal 3, possibly based on another parameter received from the MME. The second key K.sub.2 may be e.g. a static secret key shared between the terminal and the server, such as K.sub.M2M.
(23) As further shown in
(24) At least part of the functionality of the processor 30 may be included within a USIM within the terminal 3.
(25) In alternative embodiments, one or more of these derivations could be carried out by a processor outside of the terminal 3. For example, in an embodiment where the USIM is used to store one or both of the keys K.sub.1 and K.sub.2 externally to the terminal 3, the USIM could also derive and, possibly, store the partial key K.sub.part and/or the encryption key K.sub.enc.
(26) The terminal 3 further includes an encrypter 33 configured for encrypting at least part of data D to be included in the application message (e.g. the part containing the user data U destined for the server 2) using an encryption algorithm A.sub.4 and the derived encryption key K.sub.enc, thus generating encrypted data ED. The encrypter 33 could, optionally, be included within the processor 30.
(27) The application message AM is formed by including at least the encrypted data ED. In some embodiments, the application message may further include either the first key K.sub.1 or the partial key K.sub.part. Furthermore, preferably, the application message also includes an identifier of the terminal 3, such as the IMSI, which could be transmitted in a manner known per se. The terminal 2 may then transmit the application message to the network node, such as the MME, using a transmitter 34.
(28)
(29) In order to derive the encryption key K.sub.enc, the processor 40 needs to have access to either the first key or the partial key, depending on how the encryption key was derived in the terminal 3. In one embodiment, the first key or the partial key, unencrypted, could be included in the application message generated at the terminal 3 and the processor 40 is configured to extract the first key or the partial key from the application message. In another embodiment, the first key or the partial key could be first encrypted using the second key K.sub.2 as an encryption key and then included in the application message generated at the terminal 3. The server 2 may then extract the first key or the partial key and decrypt it using the second key stored at the server 2. In another embodiment, the server 2 could receive the first key or the partial key, unencrypted, from the network node via a receiving interface 44 or along with the application message via the receiving interface 43. In yet another embodiment, the server 2 could further include a requesting interface 42 for requesting the first key or the partial key from the network node. In such an embodiment, the processor 40 and the requesting interface 42 may be used for authenticating the application server 2 with the network node and, possibly, for transmitting the received IMSI of the terminal 3 from the server 2 to the network node enabling the network node to verify whether the request for the first key or the partial key is authorized. The server 2 would then further contain a receiving interface 44 for receiving the requested first key or partial key.
(30) Processor 40 may apply algorithm A.sub.5 for decrypting the encrypted part of the application message using the derived encryption key K.sub.enc to obtain the data D.
(31)
(32) In the embodiments where the terminal 3 does not include the first key or partial key in the application message, the network node may be further configured to transmit the first key or the partial key to the server 2. To that end, the network node may include a processor 51 for deriving the partial key by applying the generation algorithm A.sub.2 to the first key and the parameter associated with a communication session between the terminal 3 and the MME.
(33)
(34) Some exemplary ways for deriving the partial key K.sub.part include the following:
K.sub.part=A.sub.2(K.sub.ASME,Alg-ID(ENC)) (1)
K.sub.part=A.sub.2(RAND,Alg-ID(ENC)) (2)
K.sub.part=A.sub.2(SQN⊕AK,Alg-ID(ENC)) (3)
K.sub.part=A.sub.2(RAND,SQN⊕AK,Alg-ID(ENC)) (4)
K.sub.part=A.sub.2(SQN,Alg-ID(ENC)) (5)
K.sub.part=A.sub.2(RAND,SQN,Alg-ID(ENC)) (6)
(35) Note that the examples (5) and (6) are only possible when the USIM and the AuC derives the partial key since, for security reasons, SQN and AK are typically only available in these network components.
(36) In step 2, the second key K.sub.2 is retrieved from the storage 24 and the processor 30 applies a key generation algorithm A.sub.3 to the generated partial key K.sub.part and the stored second key K.sub.2 to generate an encryption key K.sub.enc.
(37) The key generation algorithms A.sub.2 and A.sub.3 could comprise key derivation functions (KDF) standardized by 3GPP 33.220.
(38) In step 3, the encrypter 33 of the terminal 3 uses the derived encryption key K.sub.enc to encrypt data D that should be transmitted to the server 2. The terminal 3 then forms an application message by including the data D encrypted under K.sub.enc, E.sub.Kenc (D), and, in step 4, the terminal 3 transmits the application message, via the transmitter 34, to the MME.
(39) In a preferred embodiment, the terminal 3 transmits the application message by initiating the attach procedure by the transmission of an ‘Attach Request’ message to the MME containing the IMSI of terminal 3 and the application message.
(40) In step 5, the processor 51 of the MME generates the partial key K.sub.part by applying the key generation algorithm A.sub.2 to K.sub.1 and Alg-ID(ENC). In one embodiment, the processor 51 may generate the partial key upon receipt in the MME of the application message, e.g. encapsulated in the ‘Attach Request’ message, from the terminal 3 via the receiving interface 52. In an alternative embodiment, the processor 51 may generate the partial key K.sub.part even before receiving the application message from the terminal 3 and store it for future use.
(41) Note that, since the MME does not have access to the SQN and AK but only has access to SQN⊕AK, if SQN or AK were used for the derivation of the partial key, as in the above examples (5) and (6), the HSS/AuC needs to be involved when the MME derives the partial key.
(42) In step 6, using the transmitting interface 54, the MME forwards the application message to the server 2 as well as the partial key K.sub.part and, optionally, an identification of the terminal 3 transmitting the application message, M2M_ID. In other embodiments, the MME may provide the partial key to the server 2 separately from the application message, e.g. upon receipt of a request from the server 2 to provide the partial key. In any case, the partial key K.sub.part is transferred unencrypted from the MME to the server 2, while the data D is still encrypted by the encryption key K.sub.enc.
(43) It should be appreciated that the attach request from the terminal 3 may or may not be followed by the actual attach to the network. In principle, such a follow up is not required, since the application message was encapsulated in the attach request and passed on to the server 2.
(44) However, in order to allow further data exchange between the terminal 3 and the network, the attach request may be accepted by the network. In that case, additional steps not illustrated in
(45) In step 7, at the server 2, the second key K.sub.2 is retrieved from the storage 45 and, by applying the key generation algorithm A.sub.3 to the received partial key K.sub.part and the retrieved second key K.sub.2, the processor 40 generates the encryption key K.sub.enc. In step 8, the server 2 uses the derived encryption key K.sub.enc to decrypt data D transmitted by the terminal 3.
(46) Possibly, the MME only sends the partial key K.sub.part to the server 2 if the server 2 transmits a request to the MME for receiving the partial key (not specifically shown in
(47) In
(48)
(49) Steps 1-3 of
(50) The MME receives the application message AM via the receiving interface 52 and, in step 6, using the transmitting interface 54, the MME forwards the application message to the server 2. Optionally, the MME could also transmit an identification of the terminal 3 transmitting the application message, M2M_ID, to the server 2. However, for all of the embodiments described herein, such identification could also be included within the application message formed in the terminal 3.
(51) In step 6, the partial key K.sub.part is extracted from the application message received over the receiving interface 43, the second key K.sub.2 is retrieved from the storage 45 and, by applying the key generation algorithm A.sub.3 to the extracted partial key K.sub.part and the retrieved second key K.sub.2, the processor 40 generates the encryption key K.sub.enc. In step 7, the server 2 uses the derived encryption key K.sub.enc to decrypt data U transmitted by the terminal 3. Steps 6 and 7 of
(52) In
(53) Some exemplary ways for deriving the encryption key K.sub.enc include the following:
K.sub.enc=A.sub.1(RAND,K.sub.M2M,Alg-ID(ENC)) (7)
K.sub.enc=A.sub.1(SQN⊕AK,K.sub.M2M,Alg-ID(ENC)) (8)
K.sub.enc=A.sub.1(RAND,SQN⊕AK,K.sub.M2M,Alg-ID(ENC)) (9)
(54) Similar to the algorithms A.sub.2 and A.sub.3, the key generation algorithm A.sub.1 could comprise key derivation function (KDF) standardized by 3GPP 33.220.
(55) In step 2, the encrypter 33 of the terminal 3 uses the derived encryption key K.sub.enc to encrypt data D that should be transmitted to the server 2. The terminal 3 then forms an application message by including the data D encrypted under K.sub.enc, E.sub.Kenc (D), and, in step 3, the terminal 3 transmits the application message, via the transmitter 34, to the MME.
(56) Similar to the description in
(57) In step 4, using the transmitting interface 54, the MME forwards the application message to the server 2 as well as the first key K.sub.1 and, optionally, an identification of the terminal 3 transmitting the application message, M2M_ID. In other embodiments, the MME may provide the first key to the server 2 separately from the application message, e.g. upon receipt of a request from the server 2 to provide the first key. In any case, the first key K.sub.1 is transferred unencrypted from the MME to the server 2, while the data D is still encrypted by encryption key K.sub.enc.
(58) In step 5, at the server 2, the second key K.sub.2 is retrieved from the storage 45 and, by applying the key generation algorithm A.sub.1 to the received first key K.sub.1 and the retrieved second key K.sub.2, the processor 40 generates the encryption key K.sub.enc. In step 6, the server 2 uses the derived encryption key K.sub.enc to decrypt data D transmitted by the terminal 3.
(59) Similar to
(60) Alternatively, in the embodiment illustrated in
(61) It should be appreciated that in the above embodiments, authentication and encryption can be used separately. Authentication is not required to be used every time the terminal 3 needs to send data. In some embodiments, every time the network performs a new AKA, new cryptographic session keys K.sub.enc and K.sub.int for securing the data between terminal 3 and server 2 may be generated. However, in other embodiments, there may be no need to generate an encryption key K.sub.enc every time data is exchanged between terminal 3 and the application server 2. The key K.sub.enc can be re-used as often as the terminal 3 or server 2 desires. Both the terminal 3 and the server 2 can request for a new cryptographic session key to be agreed on (e.g. when the key is thought to be compromised or when a set amount of time has elapsed). The network node may then assist the terminal 3 and the server 2 in establishing a new cryptographic session key as described above.
(62) For clarity reasons only the relevant steps of the security procedures are depicted in
(63) Furthermore, the embodiments shown in
(64) One embodiment of the invention may be implemented as a program product for use with a computer system. The program(s) of the program product define functions of the embodiments (including the methods described herein) and can be contained on a variety of computer-readable storage media. Illustrative computer-readable storage media include, but are not limited to: (i) non-writable storage media (e.g., read-only memory devices within a computer such as CD-ROM disks readable by a CD-ROM drive, ROM chips or any type of solid-state non-volatile semiconductor memory) on which information is permanently stored; and (ii) writable storage media (e.g., floppy disks within a diskette drive or hard-disk drive or any type of solid-state random-access semiconductor memory, flash memory) on which alterable information is stored.