단말이 IMS 시스템에서 서버에 등록을 하는 절차.
(VoLTE 통화를 위해서, 단말과 서버간의 사전 절차이다.
VoLTE는 데이타망과 유사한 통화전용LTE망 위에서 통화를 하는 것이므로, VoIP라고 볼 수도 있고,
기존의 CS망에서 통화하던게 발전한 것이므로 일반통화라고 볼 수도 있을 것 같은데..
아무래도 기본 통화로 상용되다 보니 VoIP라고 잘 부르진 않는다. )
1. 단말이 서버로 ID를 보낸다 (First Regi, integrity_protected필드=no)
2. 서버(CSCF)에서 401 unAuthorized 응답을 보낸다
3. 단말이 401응답속의 nonce(challenge)필드 값을 이용해서 도전과제를 풀어서 올린다. (Second Regi, integrity_protected필드=yes)
4. 서버(CSCF)에서 200OK를 보낸다.
이 중에서 3번 항목을 살펴보면
단말의 SIM에는 PUID(고유ID: From필드에 사용), PRID(인증용 ID: userName 필드에사용) 및 key, ck(암호키), ik(변조체크 키) 가 있는데
3번의 과정에서는 ck,ik,nonce+ 이것들을 이용해서 계산된 결과가 올라간다.
서버는 이 결과가 원하는 답이 맞을 경우 Regi를 해 주게 된다.
<인증 방식>
인증 방식에는 aka인증과 md5 인증이 있는데
요즘 단말들이 aka인지 md5인지를 결정하여 올려주는 관계로, 차이만 본다면
aka: 위에 언급한 것처럼 sim을 이용해서 인증. nonce이용
md5: 좀 더 간단한 인증으로 nonce가 아니고 n-nonce 필드를 이용.