본문

RFC4740 : Diameter Session Initiation Protocol (SIP) Application #3. 동작_Delegated

다수의 SIP 서버를 운용하는 사업자의 경우 Diameter 클라이언트와 Diameter 서버간의 Round-trip과정이 줄어들길 바랄것이다. 이를 위해 Diameter 서버가 최종 authentication 검사를 SIP 서버에 위임(deligate)함으로써 round-trip을 줄이도록 할 수 있다. 14.1절에서는 이 시나리오에 대한 보안 고려사항에 대해 다룬다.


단, 이 시나리오는 Diameter 서버가 Session MD5(MD5-sess)를 사용하도록 설정된 경우에 적용하지 않는다. 왜냐하면 Diameter 서버는 client nonce로 하여금 H(A1)값을 계산한 후 Diameter 클라이언트에게 보내도록 요구하지만, client nonce는 이 시점에서 사용될 수 없을 것이기 때문이다.



[그림 3] authentication 검사를 SIP 서버에 위임(deligate)하는 과정


[그림 3]은 Diameter 서버의 지원을 받는 SIP User Agent에게 서비스를 제공하기위해 SIP 서버가 동적으로 할당되는 시나리오를 보여준다. 이것은 3rd Generation Partnership Project (3GPP) IP Multimedia Core Network Subsystem 과 같은 특정 시나리오에 해당할 수 있다.


첫번째 SIP 서버는 목적지가 home network domain인 SIP REGISTER 요청을 받는다. [그림 3]에서, SIP 서버는 administrative home domain의 edge에 위치해있다 가정한다. 이 SIP 서버내에 있는 Diameter 클라이언트는 Diameter User-Authorization-Request(UAR)메시지로 Diameter 서버에게 authorization을 요청하여 등록(registration)과정을 수행한다. 이 메시지에는 여러 Attribute-Value-Pairs(AVPs)들이 있겠지만, 그중에서도 SIP REGISTER 요청내에 존재하는 SIP Address-Of-Record(AOR)을 포함한다. Diameter 서버는 SIP AOR을 확인하고, 만약 home network에서 등록된 적법한 가입자인 경우, 등록과정을 진행하도록 허가한다. Diameter 서버는 Diameter User-Authorization-Answer(UAA) 메시지로 응답하며, 이를 통해 Diameter 클라이언트/SIP 서버로 하여금 사용자 인증에 대한 결과를 알게끔 한다. 만약 인증이 성공적이었다면, Diameter UAA 메시지에는 local SIP 서버([그림 3]에서는 SIP 서버 2)에 해당하는 주소를 나타낼 것이다.


인증이 성공적이었다면, SIP 서버 1은 SIP REGISTER 요청을 적절한 SIP 서버(SIP 서버 2)에 전달한다. SIP 서버 2 내에 있는 Diameter 클라이언트는 authentication 파라미터를 요청하기 위해 Diameter 서버에게 Diameter Multimedia-Auth-Request(MAR) 메시지를 보낸다. 이 요청은 이에 더불어 Diameter 서버가 SIP 서버 2에 대한 SIP/SIPS URI를 인지할 수 있도록하여, 해당 사용자에대한 또다른 요청에 대해 SIP 서버 2가 처리하도록 할 수 있다. Diameter 서버는 이에 대해 Diameter Multimedia-Auth-Answer(MAA)메시지로 응답하는데, 이때 메시지 내부에는 nonce 와 더불어 해당 가입자에 대한 인증 알고리즘에 필요한 모든 파라미터를 포함한다. MAA 메시지 중에서는 (RFC2617에 정의된 바와 같이) Digest-HA1 AVP가 있어서, H(A1)값을 가지고, 이 값을 통해 Diameter 클라이언트는 가입자로부터 기대되는 값을 계산해낼 수 있다. 그러면 Diameter 클라이언트는 SIP UA로부터의 challenge값에 상응하는 응답값과 자신이 계산해낸 기대값을 비교할 수 있다. MAA내의 Digest-HA1 AVP가 없을 경우 이는 6.2절에서와 같이, authentication과 authorization이 Diameter 서버에서 이루어질것이라는것을 나타낸다.


SIP 서버 2는 MAA 메시지 내에 있던 challenge에 근거하여 SIP 401 (Unauthorized) SIP 응답을 생성한다. 이 응답에는 SIP User Agent Client(UAC)가 적절한 credential을 사용하는데에 필요한 authentication 근거자료들을 포함한다. SIP 서버 1은 SIP 응답을 SIP UAC에 전달한다.


SIP 서버 1은 이전에 수신했던 REGISTER 요청에 이어, 사용자 credential을 포함하는 SIP REGISTER 요청을 받는다. 알아두어야 할 것은, IP 서버 1은 상태를 저장할 필요가 없으며, 또한, SIP 요청이 이전과 동일하게 SIP 서버 1에 도달할 필요가 없다는 것이다. (이전에 언급했던 여러개의 동일한 SIP 서버 시나리오를 생각해 보자) SIP 서버 1내의 Diameter 클라이언트는 Diameter UAR메시지를 보내어 DIameter 서버에 접속하고, 이를 통해 해당 사용자에게 할당된 SIP 서버를 알게된다. Diameter 서버는 SIP 서버 2의 SIP/SIPS URI을 포함한 Diameter UAA 메시지를 전송한다.(~11번)


UAA 메시지를 받은 SIP 서버 1은 SIP REGISTER 요청을 SIP 서버 2에게 보낸다. SIP 서버 2는 (Diameter 서버로부터 받은 H(A1)에 근거하여) 자신이 계산해놓은 값과 SIP UA로 받은 값을 비교함으로써 적법성 여부를 판별한다. 만약 적법한 경우, SIP 서버 2는 Diameter Server-Assignment-Request(SAR)메시지를 보내어 Diameter 서버로 하여금 authentication 절차의 완료를 확인하게 하고, 현재가입자 정보를 다루는 SIP 서버의 SIP/SIPS URI를 검증한다.Diameter SAR 메시지는 Diameter 서버로 하여금 가입자 profile을 SIP 서버에 보내도록 하는 목적도 있다. Diameter 서버는 Diameter Server-Assignment-Answer(SAA)메시지로 이에 응답한다. 만약 Result-Code AVP 값이 SIP 서버 2에게 어떠한 오류에 대해 언급하지 않는다면, SAA 메시지 내에는, 가입자에게 서비스를 제공하기 위하여, 0개 이상의 SIP 서버 2가 필요한 정보를 가지는 SIP-User-Data AVPs를 포함할 수 있다.


SIP 서버 2는 SIP 200(OK)메시지를 생성하고 이는 SIP 서버 1로 전달되어 결국 SIP UAC에 도달하게 된다.

댓글

Holic Spirit :: Tistory Edition

design by tokiidesu. powerd by kakao.