Table of Contents 1. Introduction |
2. NAS Security
A detailed description of the NAS security previously mentioned in LTE Security I[1] will be given below. A NAS security setup procedure consists of NAS signaling, between a UE and an MME, by a Security Mode Command message that the MME sends to the UE and a Security Mode Command message that the UE sends to the MME. Descriptions of the NAS security setup procedure by NAS messages and how NAS messages are delivered thereafter will be provided in Sections 2.1 and 2.2, respectively.
2.1 NAS Security Setup
(1) Delivering a Security Mode Command message
Figure 2 shows how a Security Mode Command message is delivered during the NAS security setup procedure. The MME, by sending a Security Mode Command message to the UE, informs the UE that it is authenticated by the network and the NAS security setup procedure for secure message delivery between them is initiated. The Security Mode Command message is integrity protected and then sent to the UE, which then derives NAS security keys (a ciphering key and an integrity key) and verifies the integrity of the message using the integrity key.
A simplified LTE authentication procedure that precedes the NAS security setup procedure is shown as and in Figure 2[1]. The same KASME is shared by the UE and the MME as a result of the LTE authentication. We will explain the NAS security setup procedure presuming the MME allocates a KSIASME to identify KASME as 1 ("001").
Figure 2. NAS security setup: Delivery of a Security Mode Command message
[MME] Selecting security algorithms
The MME selects ciphering and integrity algorithm to be applied to NAS messages based on UE Network Capability information included in the received Attach Request message from the UE. Figure 2 shows an example of selecting EEA1 for an encryption algorithm and EIA1 for an integrity algorithm, i.e., SNOW 3G algorithm (see LTE Security I [1]).
[MME] Deriving NAS security keys
The MME derives KNASint and KNASenc from KASME using the algorithm IDs and algorithm distinguishers of the selected security algorithms. Table 1 lists algorithm IDs and algorithm distinguishers [2].
KNASint = KDF(KASME, NAS-int-alg, Alg-ID)
KNASenc = KDF(KASME, NAS-enc-alg, Alg-ID)
Table 1. Security algorithm IDs and algorithm distinguishers [2]
* It is applied when using relay nodes. As relay is out of the scope of this document, user plane integrity algorithms are not discussed herein.
[MME] Generating NAS-MAC for integrity protection
The MME forms a Security Mode Command message to send to the UE and calculates NAS-MAC (Message Authentication Code for NAS for Integrity) using the selected EIA algorithm (EIA1) with input parameters such as the Security Mode Command message and KNASint derived in . Figure 3 shows how NAS-MAC is calculated using the following EIA algorithm input parameters[2]:
Figure 3. Calculation of NAS-MAC [2]
[UE ← MME] Sending a Security Mode Command message
The MME attaches the NAS-MAC calculated in to the Security Mode Command message and sends it to the UE. Here the message is integrity protected but not ciphered. Message parameters used are as follows:
[UE] Setting KASME identifier (KSIASME)
When the UE receives a Security Mode Command message from the MME, it sets KSIASME in the message as its KSIASME and uses it as an identifier of the current KASME.
[UE] Deriving NAS security keys
The UE, recognizing the NAS security algorithm that the MME selected, derives KNASint and KNASenc from KASME using the algorithm IDs and the algorithm distinguishers(see Table 1).
[UE] Verifying the integrity of the Security Mode Command message
The UE checks the integrity of the received Security Mode Command message by verifying the NAS-MAC included in the message. It recognizes the NAS integrity algorithm selected by the MME is EIA1 and calculates XNAS-MAC, a message authentication code, by using the selected EIA1 algorithm with the Security Mode Command message and KNASint derived in . Figure 4 shows how XNAS-MAC is calculated using the same EIA input parameters as in [2]. The UE verifies the integrity of the message by examining whether the XNAS-MAC calculated by itself matches the NAS-MAC calculated by the MME. If they match, it is guaranteed that the Security Mode Command message has not been manipulated (e.g., inserted or replaced) on the way.
Figure 4. Calculation of XNAS-MAC [2]
(2) Delivering Security Mode Complete message
Figure 5 illustrates how a Security Mode Complete message is delivered during the NAS security setup procedure. The UE, by sending a Security Mode Complete message to the MME, informs the MME that the same NAS security keys as MME's are derived in the UE and that the integrity of the Security Mode Command message is verified. The Security Mode Complete message is ciphered and integrity protected for transmission.
Figure 5. NAS security setup: Delivery of a Security Mode Complete message
[UE] Encrypting the message using the selected encryption algorithm (EEA1)
The UE forms and encrypts the Security Mode Complete message to be sent to the MME. The ciphered Security Mode Complete message (Cipher Text Block) is derived by performing bitwise XOR between the Security Mode Complete message (Plane Text Block) and the encryption key stream (Key Stream Block) generated using EEA1 algorithm with NAS encryption key (KNASenc). Figure 6 shows how NAS messages are encrypted [2]. EEA algorithm input parameters used to generate the key stream block are as follows:
Figure 6. Encryption of NAS message by the sender (UE) [2]
[UE] Generating NAS-MAC for integrity protection
The UE calculates NAS-MAC using EIA algorithm (EIA1) with the ciphered Security Mode Complete message and KNASint. Figure 3a shows how NAS-MAC is calculated using the following EIA algorithm input parameters:
Figure 3a. Calculation of NAS-MAC for the Ciphered Security Mode Complete message
[UE → MME] Sending the Security Mode Complete message
The UE attaches the NAS-MAC calculated in to the Security Mode Complete message and sends it to the MME. Here the message is integrity protected and ciphered, and all the NAS messages that the UE sends to the MME hereafter are securely delivered.
[MME] Verifying the Integrity of the Security Mode Complete message
The MME checks the integrity of the received Security Mode Complete message by verifying NAS-MAC included in the message. MME calculates XNAS-MAC, a message authentication code, by using the selected EIA1 algorithm with the Security Mode Complete message and KNASint. Figure 4a shows how XNAS-MAC is calculated using the same EIA input parameters as in . The MME verifies the integrity of the message by examining whether the XNAS-MAC calculated by itself matches the NAS-MAC calculated by the UE. If they match, it is guaranteed that the Security Mode Complete message has not been manipulated on the way.
Figure 4a. Calculation of XNAS-MAC for the Ciphered Security Mode Complete message
[MME] Decrypting of the Security Mode Complete message
After successful verification of the Security Mode Complete message, the MME decrypts the message using EEA algorithm (EEA1). Then the Security Mode Complete message, the original message generated by the UE, is derived through XOR between the ciphered Security Command Complete message and the key stream block. Figure 7 illustrates how the message is decrypted using the same EEA algorithm input parameters as in .
Figure 7. Decryption of the NAS message by the receiver (MME) [2]
2.2 After NAS Security Setup
Once the NAS security setup is completed as in Section 2.1, all the NAS messages between the UE and the MME thereafter are encrypted and integrity protected before being sent. Figure 8 shows how NAS messages are delivered between the UE and the MME after the NAS security setup.
Figure 8. Ciphering and integrity protection of the NAS Messages after the NAS security setup
When NAS messages are being sent, they are encrypted first and then integrity protected before being sent. The original NAS messages are first encrypted using an encryption key (KNASenc) and then integrity protected by including NAS-MAC calculated using an integrity key (KNASint) so that the messages are delivered as encrypted and integrity protected.
When received, however, the NAS messages are integrity verified first and then decrypted, which is in the opposite order of what has been done when they were sent. That is, the integrity of the NAS messages is verified first by comparing the XNAS-MAC calculated using the integrity key (KNASint) and the received NAS-MAC, and then the messages are decrypted to get the original NAS messages.
It is a nice document on LTE Security
I have two questions:
1. SQN, how to get this paremeters in UE side? Is it sent by MME?
2. "When RRC messages are being sent, they are encrypted first and then integrity protected before being sent."—— Can you confirm again? From 36.323, you can find the encrypted should be do first.
Hi Eric,
1) As gecuili said (thank you for the answer, gecuili!), SQN is concealed in AUTN in the form of (SQN)XOR(AK) (Please see TR, LTE Security I). When UE receives Authentication Request (RAND, AUTN, KSI_ASME) messages from MME, it computes AK and then derives SQN by performing bitwise XOR between AUTN and AK. (Please refer to the Figure 7 and 9 in 3GPP TS 33.102.)
SQNs are generated by HSS/AuC, and delivered to UE via MME.
2) Figure 12 is an error. When RRC messages are being sent, they are integrity protected first and then encrypted before being sent. We have corrected the error and updated this web post and pdf files. We are sorry for the error, and thank you for noticing us about that.
Hi, Eric
1.SQN is concealed in AUTN according to section 6.3.3 in 33.102. Also Figure 9 illustrates this well.
Hi,
AUTN is having sqn of 6 bytes. Nas count is of 3 byte (MSb being 0) only of which sqn is 1 byte. Also, with authentication, 33.401 says to reset the count.
I have 1 more question. which all part of nas msg is ciphered, does it include pd , security header and sqn of security protected msg ?
Hi jyothis,
"Plain NAS message" is ciphered. Then the ciphered NAS message and the NAS sequence number are integrity protected. Please refer to 4.4.4.1 and figure 9.1.2 in 3GPP TS 24.301.
(and/or you can see the the figure in 2.2. After NAS Security Setup on this post),
- 4.4.4.1
"When both ciphering and integrity protection are activated, the NAS message is first encrypted and then the encrypted NAS message and the NAS sequence number are integrity protected by calculating the MAC."
- Figure 9.1.2 (added some terms in blue by Netmanias)
Thanks,
Quick & great explanation.
What about the SN & AUTN part:
"AUTN is having sqn of 6 bytes. Nas count is of 3 byte (MSb being 0) only of which sqn is 1 byte. Also, with authentication, 33.401 says to reset the count."
I mean, the quote i made from 33.401, indicate that nas sn is not the one from AUTN, right ?
This is excellent work.
Hi,
Thanks for sharing such a nice info on LTE authentication and Security procedures. I have one doubt.
In NAS security, while handling Security mode command, Integrity is not known to UE, then does it try hit and trial method and genertate the IK and then X NAS MAC? in above example, UE striaghtly using ALGO-2 for integrity what if multiple Integrity algo supported by UE?
Hi,
"
[MME] Selecting security algorithms
The MME selects ciphering and integrity algorithm to be applied to NAS messages based on UE Network Capability information included in the received Attach Request message from the UE. Figure 2 shows an example of selecting EEA1 for an encryption algorithm and EIA1 for an integrity algorithm, i.e., SNOW 3G algorithm (see LTE Security I [1]).
"
This will guarante the integrity algorithm which MME selected is exist in UE. If UE supports multiple algo, they may select the most priority one.
Very nice write-up. Some questions:
1) Does all this occur using SRB1?
2) Is all this preceded by an "Authentication Complete" message from the UE?
3) Does all this occur before S1 bearers are set up and before an "Attach Complete" is sent to the UE?
4) How does UE distinguish between AS and NAS versions of the Security Mode command? Are they different message types in RRC?
Thanks.
Hello Team,
Good document, have a observation to share as below:-
In the figure Figure 2. NAS security setup: Delivery of a Security Mode Command message, isn't there a printing mistake for the step 3 and 7 for the alogorithm chosen at the MME and UE side for the generation for the Key ?
Thanks.
Hello Team,
Have aquery here,
Figure 5. NAS security setup: Delivery of a Security Mode Complete message, if the message itself has been encrypted already then how the UE comes to know that this is the security mode complete message cause the message is an important parameter for the generation of the MAC vlaue in the uplink direction.
Thanks.
Hello, Well explained. But I have a query. Why is SMC complete message in NAS security procedure is both integrity protected and ciphered while SMC complete message in AS security procedure is only integrity protected and not ciphered. Thanks.
Hello, A really good tutorial. May I ask,
Thank you very much,
Shu
hi all,
one question:
NAS: The Security Mode Complete message is ciphered and integrity protected for transmission
AS: the Security Mode Complete message is delivered as integrity protected
Why the AS Security Mode Complete message is not ciphered as the NAS?
i have been confusing on this a long time.
thanks a lot,
wenhao
The UE shall apply integrity protection using the indicated algorithm (EIA) and the integrity key, KRRCint immediately, i.e. integrity protection shall be applied to all subsequent messages received and sent by the UE, including the SECURITY MODE COMPLETE message.
The UE shall apply ciphering using the indicated algorithm (EEA), KRRCenc key and the KUPenc key after completing the procedure, i.e. ciphering shall be applied to all subsequent messages received and sent by the UE, except for the SECURITY MODE COMPLETE message which is sent un-ciphered.
Any one please please tell me why authentication is delayed in case of connected mode TAU only...Why not in idle mode TAU??
Hi All,
From UE perspective, NAS message is first ciphered & then integrity protected.
& in AS, message is first integrity protected & then ciphered.
Why there is such difference between AS & NAS? Please explain as I am not able to get the required information from other sources.
HI...
THE PAPER IS TOO GOOD...
IS THERE ANY IMPLEMANTATION CODE THAT YOU CAN PROVIDE SO THAT WE CAN PRACTICE PRACTICALLY???
The order of ciphering and integrity checking and verification is different across E-UTRAN and EPC. While in E-UTRAN Integrity checking and verification is followed by Ciphering, in EPC Ciphering is followed by Integrity Checking and Verification.
Can anyone comment as to why 3GPP followed a different strategy for EPC and E-UTRAN?
Hi,
Thanks for the detailed information to introduce the security system.
It's very useful.
I'd like to ask the same question as wrangler.
Why the order of integrity and encryption is different in NAS and AS layer? When sending a packet, in NAS, the encryption is performed first, then the integrity protection. But in AS layer, the protection order is reverse.
Useful :)
Can somebody explain how the NAS count wrap around works and how it should be handled? Both Downlink and Upliink
what all are AS messages are defined in lte call flow?
Very nice file!!!
I want to kown what tools do you have to make these nice figures? Thanks a lot!
Hi,
does the sequence number in NAS message needs to be incremented for retransmissions also?
Hi Guys,
im having a problem regarding the security mode complete, After eNodeB sends the Security Mode Command, the eNodeb sends the RRC_CONN_REFCG, the EnodeB doesnt recieve any security mode complete from the Ue, after 461ms, the MME Sends S1AP_Context_REL_CMD. Can any body help , what can be going on so that the Ue is not responding the security Mode command? I have no interference nor poor UL coverage.
Thanks,
Abdul
If the plain NAS message contains registration accept then does all the message should be encrypted(including the message type) or only perticular IEs will be encrypted?
Hi I have a questions,
which KDF is used to derive Knasenc and Knasint, how to decipher the signalling messages in NAS security layer?