Patent ID: 12206774

DETAILED DESCRIPTION OF THE DRAWINGS

An example embodiment and its potential advantages are understood by referring toFIGS.1through5of the drawings. In this document, like reference signs denote like parts or steps.

FIG.1shows an architectural drawing of a system100of an example embodiment.FIG.1shows two PLMNs110equipped with a first Network Function120that in a sending case is, for example, an Access and Mobility Function (AMF). The PLMNs each further comprise a Security Edge Proxy (SEPP)130. The SEPP of one PLMN acts as a sending SEPP130or sSEPP and another one as a receiving SEPP130or rSEPP for one message. The SEPP130is a network node at the boundary of an operator's network that receives a message such as an HTTP request or HTTP response from the network function AMF120, applies protection for sending, and forwards the reformatted message through a chain of intermediate nodes such as IP eXchanges (IPX)140towards the rSEPP130.

The rSEPP130receives a message sent by the sSEPP and forwards the message towards a second network function within its operator's network, e.g. an Authentication Server Function (AUSF)150. The message can alternatively be sent towards any other network function of the second network. In some cases, two SEPPs130also communicate with each other, e.g., regarding their mutual connections.

The intermediate node140or intermediary in short is, for example, a network node outside the operator's network.

Notice that the rSEPP130and sSEPP130may simultaneously act in both roles and that their structure may also be similar or identical, so both are denoted by same reference sign130while their role in delivery of a particular message is identified by use of the prefix “s” or “r” indicating whether they send or receive.

FIG.2shows a block diagram of an apparatus200according to an embodiment. The apparatus may be used as a first network function120, a SEPP130, an intermediate node140, or a second network function150.

The apparatus200comprises a data storage230such as a memory. The data storage may comprise a persistent memory232that comprises computer program code2322and data2324, and a work memory234. The apparatus200further comprises a processing circuitry220including, for example, at least one processor for controlling the operation of the apparatus200using the computer program code2322, a communication circuitry210for communicating with other entities. The communication circuitry210comprises, for example, a local area network (LAN) port; a wireless local area network (WLAN) circuitry; Bluetooth circuitry; cellular data communication circuitry; or satellite data communication circuitry. The processing circuitry220comprises, for example, any one or more of: a master control unit (MCU); a microprocessor; a digital signal processor (DSP); an application specific integrated circuit (ASIC); a field programmable gate array; and a microcontroller.

FIG.3shows a flow chart of process300of an example embodiment in a first Security Edge Proxy, comprising:

305. forming a transport layer security, TLS, protected first control plane connection between the first security edge proxy and the second security edge proxy so that the first security edge proxy is a TLS client and the second security edge proxy is a TLS server for the first control plane connection; and
310. forming a TLS protected second control plane connection between the first security edge proxy and the second security edge proxy so that the first security edge proxy is a TLS server and the second security edge proxy is a TLS client for the second control plane connection; wherein
the forming of the TLS protected first control plane connection comprises forming a first shared secret, such as TLS 1.3 exporter_master_secret; and
the forming of the TLS protected second control plane connection comprises forming a second shared secret, such as TLS 1.3 exporter_master_secret; the method further comprising:
315. obtaining a first master key from the first shared secret;
320. obtaining a second master key from the second shared secret;
325. forming a first unique identifier (e.g., N32-f context ID) representing a logical connection context information for message protection on a first logical connection that is associated with the first control plane connection;
330. forming a second unique identifier (e.g., N32-f context ID) representing a logical connection context information for message protection on a second logical connection that is associated with the second control plane connection;
335. forming, based on the first master key and the first unique identifier, a first session key for first logical connection encryption (e.g., for encrypting a request to the second security edge proxy130and for decrypting a first logical connection response from the second security edge proxy130);
340. forming a first initialization vector randomizer (such as salt) for the encryption of the first logical connection; and
345. forming, based on the second master key and the second unique identifier, a second session key for second logical connection encryption (e.g., for decrypting a request from the second security edge proxy130and for encrypting a second logical connection response to the second security edge proxy130).

In an example embodiment, both the first and the second security edge proxies130form their own N32-f pre-context IDs which are then exchanged between the two SEPPs130and combined to form a unique N32-f context ID.

In an example embodiment, the first logical connection is an N32-f connection.

In an example embodiment, the second logical connection is an N32-f connection.

In an example embodiment, the process300ofFIG.3further comprises forming350the first master key using a TLS exporter function associated with the first control connection.

In an example embodiment, the process300ofFIG.3further comprises forming355the second master key using a TLS exporter function associated with the second control connection.

In an example embodiment, the process300ofFIG.3further comprises protecting360the first logical connection by application layer security using the first and second session keys obtained in steps335and345. In an example embodiment, the process300ofFIG.3further comprises protecting365the second logical connection protected by application layer security. The application layer security may employ JSON Web Encryption, JWE.

In an example embodiment, the process300ofFIG.3further comprises employing370different application layer security cipher suites for the first and second logical connections. Alternatively, the application layer security may employ same cipher suite for the first and second logical connections.

The first network function may be an Access and Mobility Function, AMF. The first network function may be an Authentication Server Function, AUSF. The second network function may be an Access and Mobility Function, AMF. The second network function may be an Authentication Server Function, AUSF.

FIG.4shows a signaling chart of an example embodiment. InFIG.4, the first Security Edge Proxy130initiates a first control plane connection (e.g., N32-c) connection setup. The first Security Edge Proxy130performs this initiation using a N32-f pre-context ID. In an example embodiment, the N32-f pre-context ID is an identifier value with which the Security Edge Proxy130identifies a set of security related configuration parameters, when it receives a protected message from the second Security Edge Proxy130that is in a different PLMN.

The second Security Edge Proxy130responds420using the same N32-f pre-context ID and the first control plane connection is established430between the first and second Security Edge Proxies130. For this connection, the first Security Edge Proxy130is a TLS client and the second Security Edge Proxy130is a TLS server so that the first Security Edge Proxy130can send requests to the second Security Edge Proxy130on the first control plane connection and get respective responses from the second Security Edge Proxy130, but not vice versa. After the first control plane connection is established430, both first and second Security Edge Proxies130derive440N32-f context IDs for subsequent N32-f connections.

A second control plane connection is established as the first control plane connection, but in the reverse order, i.e. the second Security Edge Proxy130initiates410′ a second control plane connection, the first Security Edge Proxy130responds420′ and the second control plane connection is established430′ and the N32-f context IDs are derived440′, as in steps410to440but with opposite actors and a different pre-context ID and resulting different N32-f context ID.

In an example embodiment, the second N32-c connection need not send the Parameter Exchange message for setting up cipher suites or exchange of modification policies or other configuration parameters as all these have been taken care of by the first N32-c connection setup. The second control plane connection may set up cipher suites and/or exchange modification policies or other configuration parameters based on the first control plane connection setup.

In an example embodiment, on each N32-c connection, the two Security Edge Proxies130exchange different N32-f pre-context IDs which may be combined to derive two N32-f context IDs, one per N32-c connection. Two contexts may be created in each Security Edge Proxy130, one per each N32-c connection.

In an example embodiment, two Security Edge Proxies130are expected to agree on a common cipher suite for both the TLS connections. In this case, the two N32-f context IDs refer to the same security context. However, if required the Security Edge Proxies130may setup two N32-c connections with a unique cipher suite for each connection. The context IDs then point to different security contexts.

FIG.4shows two N32-c connections wherein each Security Edge Proxy130initiates establishment of one N32-c connection. The two Security Edge Proxies130exchange pre-context IDs and derive N32-f Context ID.

In an example embodiment, for each N32-c connection, the Security Edge Proxies130generate an N32-f Master key using TLS exporter function associated with each N32-c connection. Two N32-f Master keys result, each bound to a specific TLS connection associated with the N32-c connection. The Master Key is now used to generate a set of session keys, e.g., as described in the following.

In an example embodiment, the master key is obtained from the TLS exporter using three arguments that are: Label, Context, Length (in octets) of desired output. For the N32-f Master key derivation, the label may be “EXPORTER_3GPP_N32_MASTER”, the Context may be “ ” (the empty string) and the Length may be 64.

In an example embodiment, a pair of session keys and initialization vector (IV) randomizers or salts is derived for each Security Edge Proxy130to use when it sets up a N32-f connection to send protected API messages across the N32 interface.

NOTE: In a pair of session keys and IV salts, one session key/IV salt may be used by the client SEPP to send a Request, while the second session key/IV salt is used by the server SEPP for the response. Terms “Client” and “Server” are used in the context of the N32-c connection.

In an example embodiment, each pair of session keys and IV salts are derived using one N32-f Master key and the corresponding N32-f Context ID associated with the N32-c connection.

In an example embodiment, following labels for the security keys are used: “request_key” and “response_key”.

In an example embodiment, to generate the IV salts, the labels are: “request_iv_salt” and “response_iv_salt”.

FIG.5shows a connection chart of an example embodiment. InFIG.5, there are four N32-f connections established between two Security Edge Proxies130:1-1 and 1-2 are N32-f connections for two messages initiated by the first Security Edge Proxy130for messages sent by Network Functions within PLMN-1. These messages are protected by one pair of keys/salts associated with N32-c connection initiated by the first Security Edge Proxy130.2-1 and 2-2 are N32-f connections for two messages initiated by the second Security Edge Proxy130for messages sent by Network functions within PLMN-2. These messages are protected by one pair of keys/salts associated with N32-c connection initiated by the second Security Edge Proxy130.

FIG.5also shows network elements AMF-1510and AMF-2520of a first PLMN, AUSF530and UDM540in the first PLMN as well as corresponding network elements in the second PLMN.

In an example embodiment, SEPP 1 forms a first TLS protected N32-c connection between with SEPP 2 so that SEPP 1 and SEPP 2 are respectively a TLS client and server. A TLS protected second N32-c connection between with SEPP 2 so that SEPP 1 and SEPP 2 are respectively a TLS server and client. On forming the first and second TLS protected N32-c connections, respective first and second shared secrets are formed. First and second master keys are obtained from the first and second shared secrets, respectively. N32-f context IDs are created by each SEPP on setup of the first and second N32-c connections. Based on the first master key and the first N32-f context ID, a first session key is produced for encryption of a first N32-f request to the second security edge proxy and correspondingly a second session key is produced for decryption of a second N32-f request from SEPP 2.

As used in this application, the term “circuitry” may refer to one or more or all of the following:(a) hardware-only circuit implementations (such as implementations in only analogue and/or digital circuitry) and;(b) combinations of hardware circuits and software, such as (as applicable):(i) a combination of analogue and/or digital hardware circuit(s) with software/firmware; and(ii) any portions of hardware processor(s) with software (including digital signal processor(s)), software, and memory(ies) that work together to cause an apparatus, such as a mobile phone or server, to perform various functions); and(c) hardware circuit(s) and or processor(s), such as a microprocessor(s) or a portion of a microprocessor(s), that requires software (e.g., firmware) for operation, but the software may not be present when it is not needed for operation.

This definition of circuitry applies to all uses of this term in this application, including in any claims. As a further example, as used in this application, the term circuitry also covers an implementation of merely a hardware circuit or processor (or multiple processors) or portion of a hardware circuit or processor and its (or their) accompanying software and/or firmware. The term circuitry also covers, for example and if applicable to the particular claim element, a baseband integrated circuit or processor integrated circuit for a mobile device or a similar integrated circuit in server, a cellular network device, or other computing or network device.

Without in any way limiting the scope, interpretation, or application of the claims appearing below, a technical effect of one or more of the example embodiments disclosed herein is that inter-network network function messaging can be bi-directionally protected. Another technical effect of one or more of the example embodiments disclosed herein is that each SEPP may send HTTP based control plane messages independently over the N32 interface. Yet another technical effect of one or more of the example embodiments disclosed herein is that keys used for protection on N32-f connection are closely tied or associated with each N32-c connection. This may provide a clean cryptographic separation between different logical channels.

Embodiments may be implemented in software, hardware, application logic or a combination of software, hardware and application logic. In an example embodiment, the application logic, software or an instruction set is maintained on any one of various conventional computer-readable media. In the context of this document, a “computer-readable medium” may be any non-transitory media or means that can contain, store, communicate, propagate or transport the instructions for use by or in connection with an instruction execution system, apparatus, or device, such as a computer, with one example of a computer described and depicted inFIG.2. A computer-readable medium may comprise a computer-readable storage medium that may be any media or means that can contain or store the instructions for use by or in connection with an instruction execution system, apparatus, or device, such as a computer.

If desired, the different functions discussed herein may be performed in a different order and/or concurrently with each other. Furthermore, if desired, one or more of the before-described functions may be optional or may be combined. Moreover, where reference is made to one component or entity, its functions may be distributed to or more sub-units, e.g. instead of one processor, a plurality of processors may perform some, though not necessarily all, operations of one entity.

Although various aspects are set out in the independent claims, other aspects comprise other combinations of features from the described embodiments and/or the dependent claims with the features of the independent claims, and not solely the combinations explicitly set out in the claims.

It is also noted herein that while the foregoing describes example embodiments, these descriptions should not be viewed in a limiting sense. Rather, there are several variations and modifications which may be made without departing from the scope as defined in the appended claims.