4 min read

5G SUCI

5G SUCI
Photo by wu yi / Unsplash

4G LTE에서는 전역 가입자 식별자로 IMSI (International Mobile Subscriber Identity)를 사용했다. 5G에서도 IMSI를 사용하지만, non-3GPP 액세스 망에서의 식별자로 NAI (Network Access Identifier)를 사용하기 때문에, IMSI와 NAI를 모두 포함하는 SUPI (SUbscriber Permanent Identifier)를 만들어냈다.

SUPI (IMSI)는 보안 상의 이유로 제한적으로 사용하는데, 대부분의 경우 SUPI 대신 5G-GUTI (5G Globally Unique Temporary Identifier)를 할당받아 가입자 식별자로 사용한다. 그러나 아직 5G-GUTI를 할당받지 못한 UE는 SUPI를 보내야 하는데, 이 때에도 SUPI 정보를 그대로 보내지 않고 SUCI (SUbscriber Concealed Identifier) 형식으로 바꾸어서 보낸다. 'concealed'는 encrypted라는 뜻으로, 즉 만에 하나 SUCI 정보가 외부로 노출돼도 UE가 의도할 경우 이의 SUPI 정보를 알 수 없도록 암호화한다는 것이다. AMF에 SUCI가 수신되면, AMF 건너 편에 있는 SBA (Service Base Architecture) 구조의 코어 망 내에서는 SUPI로 변환하여 전송한다.

5G 망 구조 및 SUPI/SUCI의 사용

SUCI Format

SUCI format

SUPI Type

해당 SUCI에 포함된 SUPI가 IMSI인지 NAI인지를 나타낸다. 0에서 7 사이의 값을 가진다.

  • 0 - IMSI
  • 1 - Network Specific Identifier (NAI 형식을 가진 식별자이다)
  • 2 .. 7 - future use

Home Network Identifier

SUPI Type에 따라 다음의 값을 가진다.

  • IMSI - MCC, MNC 정보가 들어간다.
  • Network Specific Identifier - NAI 형식 문자열 중 도메인 부분의 문자열이 된다.

Routing Indicator

1~4자리의 10진수 값을 가진다. 주어진 SUCI에 대해 SBA 코어 망 내부의 특정 AUSF 및 UDM에서 처리하도록 라우팅하기 위한 값이다. 보통 USIM 내에 저장하며, USIM 내에 없을 경우 0 값을 사용한다.

Protection Scheme ID

IMSI 또는 Network Specific Identifier가 conceal, 즉 암호화될 형식을 지정한다. 0에서 15 사이의 값을 가질 수 있는데 이 중 0~2 사이의 값만 정의되어 있다.

  • 0 - null-scheme
  • 1 - profile A
  • 2 - profile B

Home Network Public Key ID

SUPI 암호화에 사용하기 위해 Home Network에서 제공하는 public key 세트가 USIM에 저장되어 있고, 그 중 어떤 것을 사용했는지 나타내는 식별자를 의미한다. 0~255 사이의 값을 가진다. null-scheme 을 사용하는 경우 0의 값을 가진다.

Scheme Output

Protection Scheme ID에 따라 다음 세 가지 형식 중 하나를 가진다. IMSI의 MCC, MNC나 Network Specific Identifier의 도메인 영역은 앞의 Home Network Identifier에 별다른 변환 없이 들어가고, 여기에는 나머지 영역인 IMSI의 MSIN (Mobile Subscription Identification Number), Network Specific Identifier의 username 부분을 암호화해서 넣게 된다.

SUCI Scheme Output

처음 null-scheme인 경우에는 해당 영역을 추가 암호화 없이 넣는다. profile A의 경우 암호화 및 MAC 생성에 사용되는 256-bit 길이의 public key가 들어가고, 그 다음에 암호화된 MSIN 또는 username 값이 들어간다. 그 뒤에 64-bit MAC 값이 들어간다. profile B의 경우 public key의 길이가 더 긴 264-bit의 길이를 가지고 있는게 다르다.

SUCI Example

SUCI는 UE와 gNB, AMF 사이에서는 binary 형식의 인코딩된 IE로 들어가고, SBA 코어 망 내에서는 JSON 형식의 데이터 구조에 넣을 수 있도록 문자열 형식으로 구성된다. 여기서는 문자열 형식으로 살펴본다. 대상 SUPI는 IMSI로 다음과 같은 정보를 가진다.

IMSI    234150999999999
  - MCC:  234
  - MNC:  15
  - MSIN: 0999999999
Routing Indicator: 678
Home Network Public Key Identifier: 27

null-scheme:

'suci-0-234-15-678-0-0-0999999999'

profile A:

'suci-0-234-15-678-1-27-<pub_key>-<ciphered MSIN>-<MAC>'
— END OF POST.