SKT 해킹 관련 이런 저런 말들이 많아 사람들 사이에 많은 혼란스러움이 있다. SKT 해킹 관련 기사를 보면 HSS(Home Subscriber Server)가 해킹당했다고 합니다. HSS(Home Subscriber Server)가 해킹당했다는 것이 사실이라는 전제하에, SKT가 운영하고 있는 시스템의 Rel. 버전을 정확히 모르지만 현재의 3GPP(https://www.3gpp.org/) spec. 내용에 근거하여 글을 씁니다.
아래 설명에서 UE는 가입자 단말기(기기)를 의미합니다.
참고한 3GPP spec. 문서는 아래와 같습니다.
3GPP TS 23.002 version 18.0.0 Release 18
3GPP TS 23.003 version 18.7.0 Release 18
3GPP TS 23.008 version 18.1.0 Release 18
3GPP TS 23.271 version 18.0.0 Release 18
3GPP TS 33.102 version 18.0.0 Release 18
3GPP TS 33.401 version 18.3.0 Release 18
아래는 3GPP TS 23.002 version 18.0.0 Release 18 문서입니다. HSS는 4.1.1.1에 설명되어 있습니다.
1. 결론
결론이 가장 궁금할테니 결론부터 언급하겠습니다.
HSS에서 가입자(사용자)의 IMSI, Permanent Key(Secret Key), MSISDN 정보가 모두 해킹 당했다면 해커가 복제폰을 만들어 이동통신망(3G, LTE, 5G)에 인증 및 등록하여 악용할 수 있습니다.
USIM을 교체함으로써 가입자의 IMSI, Permanent Key(Secret Key)를 바꾸는 것이 바람직합니다.
아히의 내용은 관련 기술 내용이 궁금한 분들은 읽어보시기 바랍니다.
2. HSS(Home Subscriber Server)
HSS는 가입자에 대한 마스터 데이터베이스(DB)라 할 수 있습니다.
아래와 같은 사용자 관련 정보를 보유하며 다루고 있습니다.
- 사용자 식별, 번호 매기기 및 주소 정보;
- 사용자 보안 정보: 인증 및 권한 부여를 위한 네트워크 접근 제어 정보;
- 사용자 보안 정보: 인증 및 권한 부여를 위한 네트워크 접근 제어 정보;
- 시스템 간 수준에서의 사용자 위치 정보: HSS는 사용자 등록을 지원하고 시스템 간 위치 정보를 저장합니다. – 사용자 프로파일 정보
3. HSS가 저장하고 있는 정보
구체적으로 IMSI, Permanent Key(Secret Key), MSISDN 정보를 저장하고 있습니다.
3.1. IMSI(International Mobile Subscriber Identity)
가입자 고유의 값, USIM 및 CN(Core Network) 내 HSS에 저장
3.2. IMEI(International Mobile Equipment Identity)
단말기(기기) 고유의 값, 단말기 및 CN 내 EIR(Equipment Identity Register)에 저장[보통 HSS에 저장되지는 않으나 SKT에서 다르게 운용할 수도 있음]
3.3. Permanent Key(Secret Key)
가입자 인증을 위해 단말기와 HSS(정확히는 그 하위 요소인 AuC)가 사용하는 절대 노출되어서는 안되는 중요한 비밀 key 값
3.4 MSISDN(Mobile Station International ISDN Number)
단말기 전화번호
4. Initial Attach Procedure 중 Authentication 관련 개략적인 설명
4.1. 인증 절차의 흐름
- UE → 네트워크 (MME 또는 AMF)
- UE(User Equipment)는 네트워크와 연결 요청을 보낼 때 IMSI를 전송합니다. 이때 IMSI는 암호화된 형태로 보내지며, 이를 통해 네트워크는 HSS(또는 HLR)에서 해당 IMSI와 연결된 가입자 정보를 찾습니다.
- MME (Evolved NodeB 또는 gNB) → HSS
- MME는 UE의 IMSI를 사용하여 HSS에 요청을 보냅니다. HSS는 IMSI를 기준으로 K (고유 비밀키, 위에서 Permanent Key(Secret Key)라 한 것)를 찾고, 이 K를 사용하여 인증 벡터 (AV)를 생성합니다.
- 이 과정에서 RAND (무작위 난수), AUTN (인증 토큰), XRES (예상 응답값)가 생성됩니다.
- HSS → MME
- HSS는 K를 사용하여 인증 벡터 (AV)를 생성하고, 이를 MME에 전달합니다. MME는 이 인증 벡터를 UE에게 전달하여 인증을 요청합니다.
- MME → UE
- MME는 RAND와 AUTN을 UE에 전송하여 인증을 요청합니다. UE는 K를 사용하여 AUTN을 검증하고, RAND를 이용하여 응답값 (RES)을 계산합니다.
- UE → MME
- UE는 계산된 응답값 (RES)을 MME에 전송합니다.
- MME → HSS
- MME는 UE가 보낸 응답값 (RES)을 HSS의 예상 응답값 (XRES)과 비교하여 인증이 성공했는지를 확인합니다. 성공하면, 네트워크와 UE 간의 보안 세션이 설정됩니다.
4.2. IMEI의 사용
- IMEI는 인증 절차에서 핸드쉐이킹 과정에 직접적으로 사용되지 않지만, 단말기의 식별 및 보안 관점에서 중요한 역할을 합니다.
- IMEI는 보통 도난 방지 및 불법적인 기기 사용 방지를 위한 기능으로 사용되며, 네트워크에서 불법적으로 등록된 기기를 차단할 수 있습니다.
예를 들어, 도난된 기기는 IMEI가 네트워크 차단 목록에 올라가면 해당 기기는 서비스를 받을 수 없게 됩니다.