USIM을 단순하게 얘기하자면

  • 네트웍의 서버가 구분할 수 있는 ID(IMSI)
  • 네트웍의 서버와 같은 암호값(K)
  • 암호학 함수 계산 능력

을 가지고 있는 스마트 카드(반도체 칩)이다.

(USIM: Universal Subscriber Identity Module, IMSI: International Mobile Subscriber Identity, K: Key)

네트웍과 단말이 서로 저 ID와 암호값을 실제로 주고 받으면서 인증을 하는 경우, 옆에서 듣고 있는 사람이 있는 경우 쉽게 보안이 깨지니까...
1) 단말이 ID(IMSI)를 얘기하면, 
2) 네트웍이 랜덤한 값(RAND)와 네트웍 쪽에서 RAND와 네트웍의 암호(K_n)를 네트웍 검증용 암호학 함수를 돌린 값(AUTN)을 전달한다.
3) USIM은 RAND와 자신이 가진 암호(K)를 가지고 네트웍 검증용 암호학 함수를 돌린 값이 네트웍이 준 AUTN과 같은지 확인해서 네트웍이 같은 암호를 가지고 있는지를 확인하고, RAND와 자신이 가진 암호(K)를 가지고 단말 검증용 암호학 함수를 돌린 값(RES)를 네트웍에 전달한다.
4) 네트웍은 단말이 전달한 RES 값과 RAND와 자신이 가진 암호(K_n)를 가지고 단말 검증용 암호학 함수를 돌려서 나온 값이 같은지 확인하여, 단말기가 같은 암호를 갖고 있는지를 확인한다.
대충 위와 같은 형식으로 네트웍이 단말을, 단말이 네트웍을 인증하는데...

(RAND: Random, K_n: Key Network, AUTN: Authentication Network, RES: Result)

네트웍인 척 하는 놈이나 단말인 척 하는 놈이 옆에서 듣고 있다가, RAND를 고정한 값으로 사용해서 상대를 속일 수 있다.
그래서, 암호값 K에 순서라는 SQN(Sequence)을 붙여서, SQN의 갯수만큼 K를 들고 있는다.
그리고, 매번 SQN 값을 올려서, 암호값 K를 바꾸는 식으로 서로를 인증한다. 
하다보면, 양쪽의 SQN값이 틀려질 수도 있어서, 네트웍이나 단말이 암호값 순서를 서로 맞추는 Re-sync의 절차도 가지고 있다.
(SQN의 값을 다사용하면, 암호 K를 다 쓴 것과 같아서, 다시 처음부터 암호를 사용하지 않고, USIM이 수명을 다한 걸로 치고, 새로운 USIM을 사용해야 하게 된다. 그렇지만 일반적인 사용자의 이용 수준에서는 그런 일은 벌어지지 않고, 같은 시험용 USIM으로 단말기를 바꿔가며 시험해대던 나도 십몇년 동안 두어번 겪는 수준이다.)

그리고, 단말기에는 USIM말고 USIM이 꽂힌 단말(스마트폰)이 있고, 이 녀석도 ID를 갖는데, 이걸 IMEI라고 부른다.

(IMEI: International Mobile Equipment Identity)

위의 인증 1) 단계에서 단말기는 IMSI와 IMEI를 동시에 올려서, 어떤 단말기에 어떤 USIM이 꽂혀있는지를 알려준다.
만약에서 가입자가 기변(기기변경)을 금지해놓았거나(유심보호서비스), 사업자가 보조금 등의 이유로 다른 단말기를 쓰지 못하게 하는 경우에 IMSI-IMEI 조합이 다른 경우 망에 접속을 허락하지 않는다.

그런데, 이번 SKT의 USIM 정보가 탈취 당했다는데, 사용자 전체 USIM을 교체하는 방식으로 대처하고 있는 걸로 봐서는...

AuC(Authentication Center)라고, USIM의 모든 정보를 가지고 있는 서버가 털린 것으로 보인다.

위의 절차에서 네트웍이라고 뭉뚱그리긴 했지만, 실제로 단말을 인증하는 교환기는 AuC에 요청해서 매번 또는 몇번에 한번 K_n 값들을 받아서 처리한다.
그렇기 때문에 교환기 등이 털렸다 치더라도, 몇번 껐다 켜면 SQN 값이 돌아가서 문제가 없을 텐데, USIM을 교체한다는 것은 AuC가 털렸을 가능성이 높다.

AuC에 USIM 정보를 집어넣는 일의 경우, 요즘은 어떤지 모르겠는데, USIM 회사에 USIM 생산을 의뢰하고, 물건은 물류를 통해서 받지만, 그 USIM 들의 K 값들은 직접 USIM 회사로 두/세명이 출장을 가서, 전체 정보를 암호학적으로 분리한 것을 별도의 물리 매체로 나눠주고, 그 물리매체들을 AuC에 꽂아서 전체 데이터를 다시 합성해서 AuC에 입력하는 방식으로 보안을 유지한다고 들었고, USIM 발주할 때마다 보안 실사나 물리 매체 받으러 여러명이 출장가는 걸 봤었다.

하여간, 탈취한 정보를 가지고, 일반인은 구할 수 없는 Writable한 USIM에 탈취한 USIM을 정보를 넣어 복제 USIM을 만들어서, 
아무 휴대폰에 꽂으면, 네트웍은 USIM이 가진 ID와 암호값이 동일하니, 자동 기변을 허용해둔 상태라면, 네트웍은 별 의심없이 새로운 위치에서 망에 접속을 허가하고, 이전에 접속되어 있던 원 사용자의 단말기의 접속을 끊어버린다. 
그렇기 때문에 USIM 변경과 유심보호서비스를 하라고 하는 것이다. 

뭐, 그럼, 이번 얘기는 여기까지...

美泥.

: