| 리포트 | 기술문서 | 테크-블로그 | 글로벌 블로그 | 원샷 갤러리 | 통신 방송 통계  | 한국 ICT 기업 총람 |

제품 검색

| 네트워크/통신 뉴스 | 기술자료실 | 자유게시판 |  
 
 
섹션 5G 4G LTE C-RAN/Fronthaul Gigabit Internet IPTV/UHD IoT SDN/NFV Wi-Fi Video Streaming KT SK Telecom LG U+ OTT Network Protocol CDN YouTube Data Center
 
스폰서채널 |

 

  스폰서채널 서비스란?
LTE Security II: NAS 및 AS Security
LTE Security II: NAS and AS Security
By Netmanias (tech@netmanias.com)
banner
코멘트 (19)
29
Page 2 of 5

 

 

 

 

목차

1. 시작하는 글

2. NAS Security

3. AS Security

4. Security Context

5. 마치는 글

 

 

2. NAS Security
 

LTE Security I 기술문서[1]에서 간단하게 기술되었던 NAS security에 대하여 상세히 기술한다. NAS security setup 절차는 UE와 MME 간에 NAS 시그널링 즉, MME가 UE에게 전송하는 Security Mode Command 메시지와 UE가 MME에게 전송하는 Security Mode Complete 메시지에 의해 이루어진다. 2.1 절에서는 NAS 시그널링에 의한 NAS security setup 절차를 기술하고 2.2 절에서는 NAS security setup 후 NAS 메시지를 송수신하는 과정을 설명한다.
 

2.1 NAS Security Setup
 

(1) Security Mode Command 메시지의 전달
그림 2는 NAS security setup 과정 중 Security Mode Command 메시지가 전달되는 과정을 나타낸다. MME는 UE에게 Security Mode Command 메시지를 전송함으로써, UE가 망에 의해 인증되었고 UE와 MME 간 안전한 메시지 전송을 위해 NAS security setup이 시작됨을 알린다. Security Mode Command 메시지는 무결성 보호되어 전송되고, 이를 수신한 UE는 NAS security 키들(암호화 키와 무결성 키)을 도출하고 무결성 키를 이용하여 무결성 여부를 검증한다.


NAS security setup의 선행 과정인 LTE 인증 과정[1]은 간략화하여 그림 2에 파란색 로 표시하였다. LTE 인증 결과 UE와 MME가 동일한 KASME를 공유하고 있고, MME는 KASME에 대한 식별자로 KSIASME 값을 1로 설정한 상태에서 NAS security setup 절차에 대한 설명을 시작한다.

 

그림 2. NAS security setup: Security Mode Command 메시지 전달

 

[MME] Security 알고리즘 선택
MME는 UE로부터 수신한 Attach Request 메시지에 포함된 UE Network Capability를 기반으로 NAS 메시지에 적용할 암호화 및 무결성 알고리즘을 선택한다. 그림 2는 암호화 알고리즘으로 EEA1을, 무결성 알고리즘으로 EIA1을 선택하여 SNOW 3G 알고리즘을 사용하는 경우이다(문서[1] 참조).


[MME] NAS security 키들을 도출
MME는 선택한 security 알고리즘에 대한 알고리즘 ID 및 알고리즘 구분자를 사용하여 KASME로부터 KNASintKNASenc를 도출한다. 표 1은 알고리즘 ID 및 알고리즘 구분자를 나타낸다[2].

   

 

표 1. Security 알고리즘 ID 및 알고리즘 구분자[2]

 

[MME] 무결성 보호를 위한 NAS-MAC 생성
MME는 UE에게 전송할 Security Mode Command 메시지를 구성하고, Security Mode Command 메시지와 에서 도출한 KNASint를, 선택한 EIA 알고리즘(EIA1)에 적용하여 NAS-MAC(Message Authentication Code for NAS for Integrity)을 구한다. 그림 3은 NAS-MAC 계산 과정을 나타내고[2], EIA 알고리즘 입력 파라미터는 다음과 같다.

  • Count: 하향 NAS count 값 (32-bit)
  • Message: NAS 메시지, 여기서는 Security Mode Command 메시지
  • Direction: 메시지 전달 방향으로 상향은 0이고 하향은 1임, 여기서는 1 (1-bit)
  • Bearer3: 베어러 ID로 상수 값임, 0으로 설정 (5-bit)
  • KNASint: NAS 무결성 키 (128-bit)

 

그림 3. NAS-MAC 계산[2]

 

[UE MME] Security Mode Command 메시지 전송
MME는 에서 계산한 NAS-MAC을 Security Mode Command 메시지에 포함시켜 UE에게 전송한다. 이 메시지는 무결성 보호는 되지만 암호화는 되지 않은 메시지이다. 메시지 파라미터는 다음과 같다.

  • KSIASME: KASME 식별자, 여기서는 KSIASME=1 (3-bit)
  • Replayed UE Security Capability: UE가 전송한 Attach Request 메시지에 있는 UE Network Capability 정보 중 UE Security Capability 정보로, UE가 지원하는 security 알고리즘들을 나타냄
  • NAS Ciphering Algorithm: MME가 선택한 NAS 암호화 알고리즘, 여기서는 EEA1
  • NAS Integrity Protection Algorithm: MME가 선택한 NAS 무결성 알고리즘, 여기서는 EIA1
     

[UE] KASME 식별자 (KSIASME) 설정
UE는 MME로부터 Security Mode Command 메시지를 수신하여 메시지 내의 KSIASME 값을 자신의 KSIASME 값으로 설정하고 현재 KASME에 대한 식별자로 사용한다.


[UE] NAS security 키들을 도출
UE는 MME가 선택한 NAS security 알고리즘을 인지하고 해당 알고리즘에 대한 알고리즘 ID와 알고리즘 구분자(표 1 참조)를 사용하여 KASME로부터 KNASint와 KNASenc를 도출한다.


[UE] Security Mode Command 메시지에 대한 무결성 확인
UE는 수신한 Security Mode Command 메시지에 포함된 NAS-MAC을 검증함으로써 무결성을 확인한다.

MME가 선택한 NAS 무결성 알고리즘이 EIA1임을 인지하고, Security Mode Command 메시지와 에서 도출한 KNASint을 EIA1에 적용하여 메시지 인증 코드 XNAS-MAC을 계산한다. 그림 4는 XNAS-MAC 계산 과정을 나타내고[2] EIA 입력 파라미터는 에서와 같다. UE는 자신이 계산한 XNAS-MAC이 MME가 계산한 NAS-MAC과 같은지 검사하여 무결성 여부를 확인한다. XNAS-MAC과 NAS-MAC이 같으면 Security Mode Command 메시지는 전송되어 오는 동안 변조(예, 제3자가 끼워넣음, 내용이 바뀜)되지 않았음이 보장된다.

 

그림 4. XNAS-MAC 계산[2]

 

(2) Security Mode Complete 메시지의 전달
그림 5는 NAS security setup 과정 중 Security Mode Complete 메시지가 전달되는 과정을 나타낸다. UE는 MME로 Security Mode Complete 메시지를 전송함으로써, UE에 MME와 동일한 NAS security 키가 도출되었고 Security Mode Command 메시지에 대한 무결성을 검증했음을 알린다. Security Mode Complete 메시지는 암호화되고 무결성 보호되어 전송된다.

 

그림 5. NAS security setup: Security Mode Complete 메시지 전달

 

[UE] 선택된 암호화 알고리즘(EEA1)을 사용하여 메시지 암호화
UE는 MME에게 전송할 Security Mode Complete 메시지를 구성하고 암호화한다. 암호화된 메시지 (Ciphered Text Block)는 Security Mode Complete 메시지 블록(Plane Text Block)과 NAS 암호화 키를 암호화 알고리즘(EEA1)에 적용하여 생성한 암호화 키 스트림 블록(Key Stream Block)을 비트 레벨에서 XOR을 수행함으로써 얻어진다. 그림 6은 암호화 과정을 나타낸다[2]. 키 스트림 블록을 생성하기 위한 EEA 알고리즘 입력 파라미터는 다음과 같다.

  • Count: 상향 NAS count 값 (32-bit)
  • Bearer: 베어러 ID로 상수 값임, 0으로 설정 (5-bit)
  • Direction: 메시지 전달 방향으로 상향은 0이고 하향은 1임, 여기서는 0 (1-bit)
  • Length: 키 스트림 블록의 길이
  • KNASenc: NAS 암호화 키 (128-bit)

 

그림 6. NAS 메시지 암호화[2]

 

[UE] 무결성 보호를 위한 NAS-MAC 생성
UE는 Security Mode Complete 메시지와 KNASint를 EIA 알고리즘(EIA1)에 적용하여 NAS-MAC을 계산한다.
NAS-MAC 계산 과정은 그림 3과 같고 EIA 알고리즘 입력 파라미터는 다음과 같다.

  • Count: 상향 NAS count 값 (32-bit)
  • Message: NAS 메시지, 여기서는 암호화된 Security Mode Complete 메시지
  • Direction: 메시지 전달 방향으로 상향은 0이고 하향은 1임, 여기서는 0 (1-bit)
  • Bearer: 베어러 ID로 상수 값임, 0으로 설정 (5-bit)
  • KNASint: NAS 무결성 키 (128-bit)

그림 3a. 암호화된 Security Mode Complete 메시지를 이용하여 NAS-MAC 계산

 

[UE MME] Security Mode Complete 메시지 전송
UE는 에서 계산한 NAS-MAC을 Security Mode Complete 메시지에 포함시켜 UE에게 전송한다. 이 메시지는 암호화되고 무결성 보호된 메시지로, 이후 UE가 MME에게 전송되는 NAS 메시지는 안전하게 전송된다.

 

[MME] Security Mode Complete 메시지에 대한 무결성 확인
MME는 수신한 Security Mode Complete 메시지에 포함된 NAS-MAC을 검증함으로써 무결성을 확인한다.
Security Mode Complete 메시지와 KNASint를 EIA 알고리즘(EIA1)에 적용하여 메시지 인증 코드 XNAS-MAC을 계산한다. XNAS-MAC 계산 과정은 그림 4에서와 같고 EIA 입력 파라미터는 에서와 같다. MME는 자신이 계산한 XNAS-MAC이 UE가 계산한 NAS-MAC과 같은지 검사하여 무결성 여부를 확인한다. XNASMAC과 NAS-MAC이 같으면 Security Mode Complete 메시지는 전송되어 오는 동안 변조되지 않았음이 보장된다.

그림 4a. 암호화된 Security Mode Complete 메시지를 이용하여 XNAS-MAC 계산

 

[MME] Security Mode Complete 메시지 복호화
Security Mode Complete 메시지에 대한 무결성 확인을 마친 MME는 EEA 알고리즘(EEA1)을 사용하여 메시지를 복호화한다. 암호화 블록이 키 스트림 블록과 XOR을 수행하여 UE가 발생한 원래 메시지인 Security Mode Complete 메시지가 얻어진다. 그림 7은 복호화 과정을 나타내고[2] EEA 알고리즘 입력 파라미터는 에서와 같다.

 

그림 7. NAS 메시지 복호화[2]

 

2.2 NAS Security Setup 후


2.1 절에서 UE와 MME 간에 NAS security setup을 마치고 나면 이후 UE와 MME 간 주고받는 NAS 메시지는 모두 암호화되고 무결성 보호되어 전송된다. 그림 8은 NAS security setup 후 UE와 MME 간 NAS 메시지 전송을 나타낸다.

 

그림 8. NAS security setup 후: NAS Message에 대한 암호화와 무결성 보호

 

NAS 메시지의 송신 과정은 먼저 암호화 과정을 거친 후 무결성 보호 과정을 거쳐 전송된다. 원래의 NAS 메시지는 먼저 암호화 키(KNASenc)를 사용하여 암호화되고 이어서 무결성 키(KNASint)로 계산한 NAS-MAC을 포함하여 무결성 보호됨으로써, 암호화되고 무결성 보호된 NAS 메시지로 전송된다. NAS 메시지의 수신 과정은 송신 과정의 역순으로 무결성 검증을 거친 후 복호화 과정을 거쳐 진행된다. 무결성 키(KNASint)로 계산한 XNAS-MAC과 수신한 NAS-MAC을 비교하여 검증을 마친 후 암호화 키(KNASenc)로 복호화하여 원래의 NAS 메시지를 얻는다.

 

 

Page 2 of 5
넷매니아즈 2011-09-07 18:43:10
Page 14 표2. LTE Security Context에 typo가 있어 수정하였습니다. --;;
[수정부분]
- Partial, Full 위치바뀜
- NAS/AS Security Key 기호 중 KSI로 되어 있는것 -> K로 수정
심정훈 2011-09-15 18:09:51
안녕하세요.
IV. Security Context 관련해서.. 조금더 자세히 설명좀 해주셨으면 합니다.
스펙에는
EPS Security Context는 type별로 full, partial, mapped로 구분되며
state는 current와 non-current로 구분된다고 되어 있습니다.
(full은 current, non-current가능, partial은 non-current 가능, mapped는 full and current 가능)
이 type과 state에 대해 좀더 자세히 설명해주실수 있는지요?
넷매니아즈 2011-09-23 12:25:22
업무 일정상 답변이 늦어졌습니다. --;;
아래에 EPS를 기준으로 간단히 작성했습니다. LTE Security 고수분들이 보완 설명해주시면 고맙겠습니다..

■ Native vs. Mapped
i) Native:
- EPS-AKA가 성공적으로 완료된 후 생기는 security context
- 재사용 가능(UE가 deregistered or switched off 될 때 저장되어 후에 망에 접속시 사용 가능). 재사용시 EPS-AKA 생략가능.
ii) Mapped:
- inter-system HO시 (예, UE가 UTRAN에서 E-UTRAN으로 이동시), 사용중이던 UMTS security context로부터 변환된 EPS security context.
- 재사용 못함 (UE가 deregistered 되면 저장 안되고 제거됨). 단말이 후에 망에 접속시 EPS-AKA 진행해야함.

■ Full vs. Partial
i) Full: Security Setup 수행 후 생기는 security context (Patial이 갖는 정보외에 무결성/암호화 알고리즘 ID와 key 가짐)
ii) Partial: EPS AKA 후 생기는 security context. Security Setup 수행 전임

■ Current vs. Non-current
i) Current: 현재 사용중인 security context
ii) Non-current: 현재 사용하지 않는 security context로 current 로 되기 전임. AS security context는 포함하지 않음

▶▶ 따라서 Native는 full or partial, Mapped는 full and current, Full은 current or non-current, Partial은 non-current 입니다.
양문수 2011-09-27 13:49:50
좋은 자료 감사합니다. 3페이지에 typo가 있는 것 같은데요. 첫번째 문단의 마지막줄에.. IP 패킷은 PDCP 계층에서 K_RRCenc를 이용하여 암호화..라고 되어 있는데.. K_UPenc 아닌가요??

그리고 궁금한 사항이 있어 문의 드립니다.
NAS SM Setup 과정에서는 단말이 NAS SM Complete를 기지국에 보낼때 Integrity + Ciphering 해서 보내잖아요. 그런데, RRC SM Setup 과정에서는 RRC SM Complete 메시지를 Integrity protection만 해서 보내는 이유는 무엇인지 궁금합니다.
양문수 2011-09-27 13:59:47
참.. 시간 되시면 H/O Security 관련 내용도 올려주시면 정말 감사하겠습니다.
전진욱 2011-10-03 14:02:16
관리자 님께서 잘 정리해주신 Security Context 관련 부연 설명입니다.

[Full vs Mapped]
* Partial : EPS AKA후 생기는 security context
- K_ASME
- eKSI
- UE security capablity (Implemented Integrity, Ciphering Algo. in the UE)

* Full : Partial security context + SMC 이후 선택된 NAS secruity Algo. + KDF를 통한 NAS security Keys
- IDs of seletected NAS integrity, ciphering Algo.
- K_NASint, K_NASenc


[UseCases]
1. Initail attach through EPS AKA :
EPS AKA 생성된 patial native security context (non-current)는,
SMC이후 full native security context (current) 가 됨.

2. Inter-RAT HO (UTRAN/GERAN -> EUTRAN) :
Full native security context (current) 는 HO후 non-current state가 되며,
Full mapped security context 가 current state가 됨.
전진욱 2011-10-03 14:03:47
위의 양문수 님 질문에 답변인데요. 제가 알기론

NAS SMC의 경우 optional이지만 Mobile ID (IMEI)를 요청할 수 도 있기 때문에,
Security Mode Complete 메시지는 encryption이 되어야 합니다.

RRC Security Mode Complete메시지에는 critical 한 information이 없으며,
RRC Security Mode Complete메시지를 eNB에서 받고 난후 ciphering을 activation하는 것이 error handling에 유리합니다.
전진욱 2011-10-03 15:29:58
해당 문서를 보다가 궁금한 점이 있어서 질문드립니다.

2.1 NAS Scurity Setup에서 NAS integrity protect를 위한 MAC 값 생성시
입력 파라미터인 BEARER에 들어갈 값이 NAS Sequence Number라고 되어 있습니다.

NAS Sequence Number는 COUNT에 들어가는 값이며,
BEARER에는 bearer ID가 들어 가야 할 거 같습니다.

실제 UE와 MME간 NAS signalling connection은 (SRB)는 하나이므로,
BEARER 에는 0x00이 들어가는게 아닌가요?

확인 부탁 드립니다.
감사합니다.
심정훈 2011-10-05 13:48:13
BEARER에는 bearer ID가 들어가는게 맞는것 같습니다.
스펙상에 BEARER은 (bearerID - 1)로 되어 있으니까.
NAS용 SRB2의 경우는 bearer이 1로, RRC용 SRB1이라면 0으로 설정되는게 맞을것 같습니다.
넷매니아즈 2011-10-05 20:13:35
안녕하세요.
다른 업무로 못 본 사이에 여러 논의가 되고 있었네요.. 잘못된 부분에 대해 지적해 주시고 의견주셔서 감사합니다.

AS integrity에서 MAC-I 계산을 계산할 때 입력되는 Bearer는 SRB 값이 사용되나,
NAS integrity에서 NAS-MAC을 계산할 때 입력되는 Bearer는 상수값으로 0으로 설정되고 사실상 사용되지 않습니다.
UE는 UE와 eNB 간에 여러 radio bearer를 가지므로 AS 레벨에서 bearer를 구별해주어야 하나,
UE와 MME 간에 NAS signaling connection은 하나만 존재하므로 NAS 레벨에서는 베어러를 구별할 필요가 없습니다만,
AS MAC(MAC-I)과 NAS MAC(NAS-MAC) 계산에 동일한 입력 파라미터를 사용하기 위하여 들어가 있습니다.

지적해 주신대로 page 3 typo와 page 4 NAS-MAC Bearer 설명을 수정하고,
추가로 page 10 AS 파라미터 일부를 수정하였습니다. --;;

■ 수정사항
1) page 3: K_RRCenc -> K_UPenc
2) page 4,6,7: Bearer 설명을 수정(-> Bearer: 상수값으로, 0으로 설정)하고, page 4에는 관련 설명 추가)
3) page 10: 3.1 AS Security Setup ⑤에서 파라미터 설명 수정
. RRC Count -> PDCP Count
. Bearer: Radio Bearer ID -> Bearer: Radio Bearer ID - 1

감사합니다.
최윤주 2012-07-06 16:23:09
자잘한 typo입니다. 그림 10의 UE side에 "K_RRCenc/K_RRCint"가 "K_NASenc/K_NASint"로 되어 있습니다.
넷매니아즈 2012-07-09 22:45:45
최윤주님,
네, typo네요. --;;; 수정해서 올렸답니다.
꼼꼼히 체크해주시고.. 감사합니다~
최윤주 2012-07-12 10:15:59
이번에는 질문입니다. ^^ 번거롭게 해드려 죄송하네요.
DRB ciphering관련해 궁금한 것이 있어서요.
1. 33.401에 보면 user plane ciphering을 위한 key derivation시에 BEARER가 input으로 들어가는데, DRB의 경우 이 값이 DRBIndex중 하위 5bit라고 볼 수 있을까요? 36.331에 SRB에 대해서는 BEARER를 SRB의 하위 5bit로 하라는 게 명시되어 있는데, DRB에 대한 부분을 제가 못찾았어요. Service Bearer(SIB1, SIB2, DRBs)별로 K_UPenc가 달라지는 게 맞나요?
2. Radio Bearer별로 K_UPenc가 달라진다면, RRCConnectionReconfiguration에 의해 DRB가 추가되는 경우 K_UPenc가 새롭게 생성되어야 할 것 같은데요. 이를 위해 RRCConnectionReconfiguration절차 이후에 securityModeCommand procedure가 수행되어야 하나요? 아니면 reconfiguration 메시지만으로 새로운 K_UPenc derivation해서 ciphering을 수행하나요?
강성환 2012-07-12 17:53:28
안녕하세요. 매일 눈팅만 하는 초보가 궁금한 사항이 있어서 글 남깁니다.
NAS Count는 UL와 DL로 이루어져 있고, 이는 각각 UE와 MME에 모두 저장되어 있는 것으로 아는데요. 혹시 잘못 알고 있나요?
그리고 TD에 "그림3.NAS-MAC 계산 과정"의 Count는 DL이 아니라 UL이 아닌가요?
그림 4의 Count는 DL이 되고
그림 6의 Count는 UL가 맞구
그림 7의 Count는 DL이 되는게 맞는지요?
알려주세요~~~ ^^
넷매니아즈 2012-07-19 23:54:48
최윤주님, 질문을 늦게 확인했습니다. --;;

33.401에서 EEA input parameter 설명시 radio bearer type을 구분하지 않은걸로 보아 DRB의 경우도 Bearer parameter는 drb id 하위 5-bit이 맞을 것 같습니다.
K_UPenc key는 DRB에 대해서만 적용되고요, UE에 대해 적용되는 값이라 DRB가 다르다고 달라지지 않습니다.

감사합니다.
넷매니아즈 2012-07-19 23:56:18
강성환님도 질문을 늦게 확인했습니다. --;;;

네, UL/DL NAS Count는 UE와 MME에 모두 저장되어 있고요.
(TS 23.401 Table 5.7.2-1 (MME에 저장된 UE Context)와 5.7.5-1 (UE Context)를 참고하셔요.)
그림 4의 Count는 DL이 맞고,
그림 6과 그림 7의 Count는 UL 입니다.
넷매니아즈 2012-08-27 22:26:48
2012년 8월 22일자로 한글 기술문서 업데이트되었습니다.
Netmanias 2014-10-16 20:16:48

2014년 10월 14일자로 한글 문서 업데이트 되었습니다. 

그림 12와 관련 설명을 수정하였고, 그림 8과 그림 12에 보조 그림을 추가하였습니다. 

 

주요변경사항: "3.2 AS Security Setup 후" 메시지 전달시 RRC 메시지에 대한 security 처리 순서 수정

      - 변경 전: Encryption 먼저 처리하고 그 다음에 integrity protection 처리 

      - 변경 후: Integrity protection 먼저 처리하고 그 다음에 encryption 처리

 

감사합니다. 

 

Yoo 2014-11-23 01:34:32

NAS 메시지들은 Ciphering 먼저 진행후 Integrity Protection 이 되는 반면,

AS 메시지들은 그 반대로 Integrity Protection 이후 Ciphering 을 진행하는 이유가 있을까요?

Thank you for visiting Netmanias! Please leave your comment if you have a question or suggestion.
Related Contents
05/23/2011
Netmanias Technical Documents
03/29/2011
Netmanias Technical Documents
02/09/2011
Netmanias Technical Documents
01/19/2011
Netmanias Technical Documents
09/10/2010
Netmanias Technical Documents

 

 

     
         
     

 

     
     

넷매니아즈 회원 가입 하기

2019년 1월 현재 넷매니아즈 회원은 49,000+분입니다.

 

넷매니아즈 회원 가입을 하시면,

► 넷매니아즈 신규 컨텐츠 발행 소식 등의 정보를

   이메일 뉴스레터로 발송해드립니다.

► 넷매니아즈의 모든 컨텐츠를 pdf 파일로 다운로드

   받으실 수 있습니다. 

     
     

 

     
         
     

 

 

비밀번호 확인
코멘트 작성시 등록하신 비밀번호를 입력하여주세요.
비밀번호