2. Mobile IPv6 보안 이슈
3. Mobile IPv6 보안 해결 방안
4. 결론
I. 서 론
지금까지 IETF Mobile IP WG(Working Group)에서는 수 차례에 걸쳐 Mobile IPv6 드래프트에 대한 수정, 개선작업을 해오면서 최종 표준안(RFC)을 만들고자 하였으나, 최근 보안문제가 새롭게 대두되면서 새로운 국면을 맞고 있다고 할 수 있다. 즉, 기존의 Mobile IPv6 드래프트에는 이동환경에서 이동단말이 이동하여 대응노드로 바인딩 업데이트 메시지를 전송할 때, IPsec을 이용하여 메시지를 보호하는 것을 기본으로 하였으나, IPng WG에서도 문제가 되었듯이 글로벌 PKI를 기본으로 하는 IPsec의 도입은 현실적으로 어려움이 있고, 실제로 Mobile IPv6에서 대응노드와 이동노드가 수시로 키를 교환해야 하는 상황에서는 IPsec의 이용은 확장성 및 성능면에서 매우 비효율적이라는 것이 현재의 분석이다.
이러한 보안문제가 해결될 때까지는 최종적인 표준문서(RFC)로의 제정이 지연될 것으로 예상되며, 현재 문제를 해결하고자 하는 다각적인 노력이 진행되고 있다. 최근 여러 개인 드래프트들을 통해서 다각적인 해결 방안이 제시되었으나, 각 방법들의 장단점들 때문에 어떤 방안을 적용할 지에 대해서는 논란의 여지가 많은 상황이다. 이런 상황에서 WG에서는 Mobile IPv6 Design Team을 구성하였고 이후 충분한 논의를 통해 모아진 의견은 Recommendation을 통하여 정리하였고, 다시 토론을 통하여 결론을 정리하였다.
본 문서에서는 현재 Mobile IP WG에서 논의되고 있는 보안 이슈들과 함께, Mobile IPv6 Design Team의 논의 결과와 최근의 논의를 중심으로 만들어진 문서인 16 버전의 드래프트와 이전버전과의 차이를 비교, 분석하였다.
II. Mobile IPv6 보안 이슈
Mobile WG에서는 Mobile IPv6 보안 문제가 제기되면서, 이를 해결하기 위해 Mobile IPv6 Design Team(DT)을 결성하였다. DT는 다음 네 가지 이슈들에 대한 의견을 모으고 솔루션을 찾기 위해 구성되었으며, Mobile WG에서는 몇 주 동안 다음 이슈들을 시작으로 하여 더불어 파생하는 다른 이슈들에 대해서 심층적으로 논의하고 있다.
첫번째 이슈는 이동환경에서 Home Address Option(HAO)를 사용할 때 발생할 수 있는 공격을 어떻게 막을 것인가에 대한 것이고, 둘째는 라우팅 헤더를 사용함으로써 발생할 수 있는 공격을 어떻게 막을 것인가에 대한 것이고, 셋째는 바인딩 업데이트를 수행할 때 발생할 수 있는 공격으로부터 안전하게 바인딩 업데이트를 수행할 수 있는 방법에 관한 것이고 마지막으로, 바인딩을 위한 시그널링 메시지를 전송할 때, 피기백킹 기능을 계속 가능하도록 할 것인지에 대한 것이다.
본 장에서는 위 네 가지 이슈들에 대해서 세부적으로 조사하여 문제의 심각성을 파악하고 DT에서 권고하는 해결 방안들을 분석하고자 한다.
1. Home Address Option(HAO) 문제[1]
HAO를 사용할 경우 발생할 수 있는 보안상의 문제점은 공격자가 DoS(Denial of Service) 공격에 HAO를 사용할 수 있다는 것이다. 정확히 말하자면, HAO는 공격자가 자신의 위치를 숨길 수 있는 방법을 제공한다.
DoS 공격의 기본 시나리오는 다음과 같다. 우선 공격자(attacker)는 공격대상(victim)을 선택한 후, 도달 가능한 다른 IPv6 노드 또는 노드 집합(reflector)을 선택한다. 공격자는 자신의 주소를 IPv6 패킷 헤더의 소스주소와 목적지 주소를 각각 자신의 주소와 reflector 주소로 설정하고, HAO에는 victim의 주소를 넣어 패킷을 전송한다. Reflector는 도착한 IPv6 패킷을 처리하여 응답 메시지를 전송하는데, 수신한 패킷에 HAO을 갖고 있으므로 Mobile IPv6에서 정의하는 HAO 처리방식에 따라서, 소스주소와 HAO의 주소를 교체한다. 따라서, reflector는 victim으로부터 패킷이 보내졌다고 판단하므로, 응답 패킷을 victim으로 전송한다. Victim은 소스주소가 reflector인 패킷을 받게 되고 원래 송신자인 attacker의 주소는 알지 못한다. 따라서 reflector는 의미 없는 패킷들을 수신하게 되고 이 패킷들은 통신 자원을 소모 시킴으로써, reflector의 정상적인 다른 통신을 방해하는 것이다.
DoS 공격을 막는 두 가지 기본 방식은 ingress filtering과 tracing기술이다. Ingress filtering은 소스 주소의 사용을 제한하여 잘못된 주소의 사용을 막는 방식이고 tracing 기술은 공격이 발생한 후에 사용될 수 있는 추적 기법이다. Ingress filtering 방식은 현재의 인터넷 망에서 부분적으로 전개되어 있고 차세대 인터넷 망에서도 지속될 것으로 기대되는 반면 tracing 기술은 아직 널리 분포되지 않아 당분간 사용하기 어렵고, 그 사용시기를 예측하기 힘들다. Tracing 방식을 사용하고자 하는 경우, victim은 진행상황을 파악하기 위해 일정 시간을 기다려야 하고 상대 ISP가 자신의 망을 attacker로부터 보호하기 위해 필터를 설치할 때까지 기다려야 하므로 시간 소비적인 방법이다. 또한, 현재 정의된 tracing 기술로는 DoS attack을 다룰 수 없다. 왜냐하면 일반 tracing 기술은 reflector와 victim에게만 ICMP trace 패킷을 전송하므로 victim은 reflector때문에 attacker의 위치를 알아낼 수 없기 때문이다.
또한, HAO의 정의에 따라서 HAO에 들어가는 주소는 패킷 소스가 위치한 망과 같을 필요가 없으므로, 일반적인 필터링 기법을 사용하는 ingress filtering으로는 이 공격을 막을 수가 없다. 이런 문제를 해결하고자 DT에서는 4가지 대안을 제시하였다.
첫째는 infrastructure-based ingress filtering기법을 사용하는 것이다. 이 방법은 AAA (Authentication, Authorization and Accounting)와 같은 글로벌 infrastructure로 지능적인 ingress filtering을 수행하도록 하는 것이다. 글로벌한 인프라가 필요한 이유는 특정 구역에만 설치된 경우에 일부의 사용자만이 이 개선된 ingress filtering을 사용할 수 있기 때문이다. 즉 인프라에 속하지 않은 사용자들은 Mobile IPv6를 사용하지 않을 것이기 때문에 Mobile IPv6의 전개를 지연시킬 수 있는 요인이 될 수 있으므로, 글로벌 인프라를 구축하지 않는다면 의미가 없다.
두번째 방법은 infrastructure-less ingress filtering 기법을 사용하는 것이다. 현재는 AAA와 같은 글로벌 인프라와 RR(Return Routability)/CGA(Cryptographically Generated Address) 방법들이 address ownership을 보장할 수 있는 유일한 방법으로 알려져 있는데, 이런 방법들을 사용하지 않고 address ownership을 보장할 수 있는 방법을 말한다. 기본 프로세싱은 다음과 같다. 우선, 이동단말은 대응노드로 소스주소가 HoA(Home Address)인 메시지를 전송하면 이 메시지를 라우터에서 가로채어 이동단말로 AR(Authentication Request)를 전송한다. 이동단말은 이 AR에 대해서 address ownership을 보장하기 위해서 라우터를 대응노드와 같다고 가정하고 RR이나 CGA 방법을 사용한 후, 메시지를 재전송하게 된다. 이 방법은 현재의 ingress filtering 모델을 확장하지 않고 사용할 수 있으며, 이론적으로 HAO를 제거하므로 패킷 사이즈가 줄어든다. 하지만 망의 추가적인 지원이 필요하므로 Mobile IPv6의 도입을 지연시킬 수 있으며 프리픽스별로 필터링 규칙을 갖는다면 라우터에서 각 이동단말이 사용할 수 있는 HAO를 추적하기 위해 단말별로 정보를 가져야 할 필요가 있어 확장성에 문제가 있다. 또한 라우터에서 추가적인 프로세싱이 요구되므로 이에 따른 지연이 발생할 수 있으며, 구조적으로 end-to-end 방식과 network-centric 방식 중에서 선택해야 하며 두 방식 모두 확장하기 어렵고 전개가 늦어질 수 있다.
세번째 방법은 대응노드에서 HAO를 갖고 있는 패킷을 수신했을 때, 바인딩 정보 혹은 IPsec SA(Security Association)가 존재하는 경우에만 HAO 처리하도록 제한하는 것이다. 모든 대응노드에서 홈 어드레스의 validity를 체크한 후 HAO를 처리하도록 하는 방식으로 이동단말이 대응노드로 직접 패킷을 전송하기 위해서 대응노드는 이동단말의 상태정보를 갖고 있어야 하며 대응노드에서 authenticated state를 생성하지 않고서는 이동단말에서 대응노드로 패킷을 직접 전송하는 것은 불가능하다. 이 방식은 end-to-end 속성을 갖고 있으며 망에서 지원해야 할 별도의 기능이 필요 없다. 하지만 삼각경로 라우팅이 완전히 제거되어 필요한 경우에도 사용할 수 없게 될 것이며, 바인딩 캐시 엔트리의 속성을 변경해야 하는 단점이 있다. 즉, 현재 Mobile IPv6 규격에서는 바인딩 캐시 엔트리가 삭제되면 응답 패킷을 HA를 거쳐서 라우팅 되도록 지원하는 반면 이 방식에서는, 종료된 바인딩 캐시 엔트리에 해당하는 HAO를 가진 패킷을 수신할 경우 패킷을 버린다. 따라서, 이동단말이 이 사실을 알기 전까지 블랙홀에 빠지게 된다. 이 문제를 해결할 수 있는 방법으로 바인딩 캐시 엔트리와 매치하지 않는 HAO에 대해서 ICMP 에러 메시지를 생성하여 패킷 소스로 전송함으로써, 이 HAO로 인한 추가적인 reflection 문제의 발생을 막을 수 있다.
네번째 방법은 reflected 패킷에 추가적인 정보를 갖도록 처리하는 것이다. 대응노드는 reflected 패킷에 패킷을 생성한 소스 주소를 포함하도록 하기위해 HAO에 대응하는 목적지 옵션을 정의하여 이용하는 방법으로 이를 위해서 Mobile IPv6 표준규격을 수정하는 것은 어렵지 않다. 하지만 이 방식은 예방이 아니라 추적을 위한 것으로서 victim의 ISP는 attacker가 보낸 패킷을 IP 소스 주소를 이용하여 필터링하는 방법으로는 공격을 피할 수 없고 HAO 정보를 보고 필터링을 해야 제대로 걸러낼 수 있다. 즉, 예방이 가능하게 하려면 방화벽에 추가적인 기능을 구현해야 하고, HAO를 포함하는 패킷을 수신하였을 때, 이에 대응하는 옵션을 포함한 응답을 전송하도록 하거나 UDP 응용을 위해서 IPv6 소켓 API를 수정해야 할 필요가 있다.
DT에서는 위 문제에 대해서 세번째 방법을 권고하고 있다. 바인딩 정보 혹은 IPsec SAs가 존재하는 경우에 HAO를 처리하는 방식을 선택하는 것이 Mobile IPv6를 가장 빠르고 넓게 전개할 수 있기 때문이다. 또한, Mobile IPv6의 양방향 터널링과 경로 최적화 부분은 같은 RFC에서 동시에 진행 할 것을 권고하였으며, 경로 최적화는 모든 IPv6 노드에서 구현할 것을 권고하였다.
2. Unverified HAO 처리[2-4]
DT에서 권고하는 방식은 패킷 전송자가 HAO의 HoA에 대한 owner임을 verifying하지 않고 처리하는 것에 있어서 보안의 취약성이 나타남을 고려한 것으로서 Unverified HAO (UnvHAO)의 사용은 권고하지 않았다. 이에 대해서Charlie Perkins는 메일링 리스트를 통해 태그를 이용하여 UnvHAO를 처리하자는 새로운 제안을 하였으나 DT에서는 Mobile IPv6 기본 규격에서 대응노드는 UnvHAO를 처리하지 않아야 하고 UnvHAO 메시지에 대해서 새로운 종류의 error notification을 정의하여 에러 메시지로 응답할 수 있도록 하는 방법을 취하도록 결론지었다. 또한 이 에러메시지를 받은 이동단말은 홈 에이전트를 통해서 bi-directional 터널링으로 패킷을 전송하도록 확장할 것을 권고하였다.
3. 피기백킹(Piggybacking) 문제[5,6]
Mobile IPv6 드래프트 15 버전에서는 바인딩 업데이트/요청/응답 메시지를 다른 패킷에 피기백킹으로 전송할 수 있도록 명시하고 있다. 하지만, 피기백킹으로 전송되는 바인딩 업데이트 메시지를 보호하기 위해서는 IPsec 규격과 구현에 수정이 필요하다.
이런 문제로 피기백킹을 구현함에 있어서 제한을 두는 것은 피기백킹의 상대적인 장점을 고려할 때 비효율적일 수 있다. 따라서 이러한 trade-off를 고려하여 피기백킹 구현을 어떻게 할 것인가에 대한 몇 가지 방법들이 제안되고 있으며 DT에서 권고하는 방식은 다음과 같다.
첫번째 방법은 Mobile IPv6에서 바인딩 업데이트 메시지의 피기백킹을 사용하지 않도록 명시하는 것이다. 피기백킹을 사용하지 않는다면 바인딩 업데이트 메시지를 보호하기 위해 IPsec을 사용할 때 규격이나 구현상으로 제약이 없어지지만 추후에 피기백킹 기능을 추가하는 경우에 모든 노드가 이 기능을 지원할 수 있는 것이 아니기 때문에 송/수신자간에 협상을 필요로 한다.
두번째 방법은 피기백킹을 항상 옵션으로 하도록 명시하는 것으로서, 링크의 종류에 따라서 스루풋과 레이턴시가 개선될 수 있지만, 개선 사항이 링크의 종류에 의존적이며, 피기백킹을 사용함으로써 역효과를 줄 수도 있다. 또한 이런 경우 바인딩 업데이트를 보호하기위해 IPsec을 사용하는 경우, IPsec 규격과 구현상에 확장이 필요하다.
세번째는 통신중인 두 노드간의 협상을 전제로 피기백킹을 옵션으로 명시하는 방법으로 이 방식은 두번째 방법에서 발생할 수 있는 문제, 즉 역효과를 내는 경우를 막을 수 있지만 피기백킹 사용을 협상하기 위한 시그널링을 명시할 필요가 있고 이동단말에서도 추가적인 동작이 요구된다.
DT에서는 IPsec의 확장을 필요로 하는 방법은 권고하지 않으며, IPsec을 사용할 경우라도 RR/CGA를 함께 사용할 것을 권고한다. RR/CGA 방식은 이동단말과 대응노드 사이에 RO (Route Optimization) 과정을 보호하기 위해 사용될 것이다. 바인딩 업데이트/요청/응답 메시지들과 RR/CGA 메시지들은 피기백킹이 아닌 새로운 메시지 집합으로 구현할 것을 권고한다.
4. 라우팅 헤더 문제[7,8]
라우팅 헤더는 Mobile IPv6에서 이동단말로 패킷을 전송할 때 상위계층에 투명하게 통신할 수 있도록 지원하기 위해서 사용된다. 또한, 소스 라우팅에 사용되기 때문에 트래픽 엔지니어링 또는 멀티호밍 같은 환경에서 라우팅 헤더를 이용해서 동적으로 ISP를 선택할 수 있다.
하지만, 현재 Mobile IPv6에서 사용하도록 한 Type 0의 라우팅 헤더는 호스트나 라우터에서 모두 처리 가능하며, 여러 개의 주소를 담아서 전송될 수 있기 때문에 reflection attack에 이용될 수도 있다. 대표적인 attack의 예는 그림에서 보는 바와 같다.
(그림 1)은 웹서버를 목적지로 하는 패킷은 통과시키고 호스트 1을 목적지로 하는 패킷은 막아내는 필터링 규칙을 갖는 방화벽을 attacker가 라우팅 헤더를 이용해 통과하는 예를 보이고 있다. 호스트 1은 목적지를 웹서버로 하고 라우팅 헤더에 호스트 2의 주소를 넣음으로써, 방화벽을 통과하여 웹서버로 패킷을 전달할 수 있고, 라우팅 헤더의 처리 규칙에 따라서 웹서버는 목적지 주소를 호스트 2로 바꿔 내부망에 있는 목적지로 전달할 수 있게 된다. 즉 호스트 1에서 보낸 패킷이 통과해서는 안될 방화벽을 통과하여 호스트 2로 전송되는 경우이다.
이 문제를 막기 위해서 DT에서는 세 가지 방안을 제시하고 이에 대한 의견을 수렴하였다.
첫번째 방법은 라우팅 헤더 자체를 안전하게 사용하는 것이다. 이 방식은 라우팅 헤더의 사용을 엄격히 하여 방화벽에서 별도의 처리를 필요로 하지 않도록 한다. 즉, 호스트나 내부 라우터들은 라우팅 헤더를 처리하여 내보낼 수 없도록 하는 것이다. 이 방법은 모든 호스트와 라우터에서 라우팅 헤더를 처리하여 전송하는 것을 제한하기 때문에 초기에 의도한 목적으로 유용하게 사용될 수 없고, Mobile IPv6에서만 유용하게 사용되는 단점이 있다.
두번째 방법은 방화벽의 기능을 강화하는 것으로 이 방법은 방화벽에서 Mobile IPv6는 지원하면서 방화벽 통과 문제를 막기 위해 필요한 규칙을 사용하자는 것인데, 이 방법은 방화벽의 규칙이 복잡해지고 강화된 필터링으로 인해서 RO에 실패하는 경우도 발생할 수 있는 문제점이 있다.
세번째 방법은 Mobile IPv6에 적합한 다른 방법을 모색하자는 것인데 즉, 기존의 라우팅 헤더를 사용하지 말고 새로운 Destination option, 새로운 확장 헤더 또는 새로운 라우팅 헤더 타입을 정의하여 사용하자는 내용이다.
DT에서는 세번째 방법을 권고한다. 왜냐하면 라우팅 헤더의 사용에 대해 방화벽 관리자가 갖고 있는 의심을 제거함으로써, 보안의 취약성을 우려하여 Mobile IPv6기능을 정지시키는 것을 방지할 수 있기 때문이다. 또한 다른 방법들 즉, 라우팅 헤더를 처리하는 방화벽 규칙을 강화하는 것은 복잡할 뿐만 아니라 Mobile IPv6를 지원하지 않을 수도 있다. 그리고 세번째 방법을 사용할 경우, 기존의 라우팅 헤더를 사용하지 않음으로써, 다른 목적으로 라우팅 헤더를 사용할 경우에도 아무런 영향을 받지 않기 때문에 안전하다. 반면, 이 방법을 사용하고자 하는 경우, 기존의 Mobile IPv6 구현이 바뀌어야 하고 드래프트 문서도 수정되어야 하지만, 최종 규격(RFC)이 아니라 진행단계이므로 그리 어렵지 않을 것으로 예상된다.
5. 바이딩 업데이트 인증(Authentication) 문제[9-11]
지난 Mobile IPv6 드래프트가 아직 last call 상태에 들어가지 못한 이유가 바인딩 업데이트 부분에서 보안의 취약성이 문제로 제기되었기 때문에다. 기존에는 IPsec을 이용하여 바인딩 업데이트 메시지를 보호하도록 하였는데, 바인딩 업데이트를 강력하게 인증하기 위해 이 방법을 사용하려면 글로벌 PKI(Public Key Infrastructure) 구조를 구축해야 하고, 이것은 현재 인터넷 상황에서 가능하지도 강조되지도 않는다. 대신 이동단말과 대응노드 사이에 바인딩 업데이트를 안전하게 교환하기 위해서 BSA(Binding Security Association)를 설정하는 등의 약한 인증방법이 사용된다.
바인딩 업데이트에 있어서 발생할 수 있는 보안 문제를 경우별로 살펴보면 다음과 같다.
첫번째로 이동단말이 홈 에이전트로 바인딩 업데이트 메시지를 전송할 때, attacker는 어떤 이동단말에 대해 현재 위치한 곳과 다른 곳에 위치해 있다는 정보를 줄 수 있고, 홈 에이전트가 이 정보를 받아들인다면, 이동단말은 패킷을 받지 못하는 반면 다른 노드가 원하지 않는 패킷을 수신하게 된다.
두번째로, 대응노드로 바인딩 업데이트 메시지를 전송할 때, 악의를 가진 이동단말이 자신의 HoA를 victim의 HoA로 설정하여 거짓 정보를 알릴 경우, 대응 노드가 이 정보를 받아들인다면, 대응노드에서 victim으로 전송하고자 하는 패킷은 이동단말을 거치게 되므로 이동단말은 availability와 confidentiality를 모두 위협한다. 악의를 가진 이동단말이 자신의 CoA(Care-of Address)를 거짓으로 알리는 경우, 대응노드는 이동단말로 보내는 패킷을 모두 거짓 CoA로 전송하여 DoS 공격을 할 수 있다. 대응노드로 의미 없는 바인딩 업데이트 메시지를 한꺼번에 많이 전송할 경우에는 대응노드에서 그 메시지가 invalid함을 눈치채기 전에 자원을 고갈시켜 의미 있는 패킷들을 처리할 수 없게 만든다(DoS 공격). 또한 Attacker는 오래된 바인딩 업데이트 메시지를 replay 하여 패킷들을 이동단말의 예전 위치로 전달시켜 이동 단말이 패킷을 수신하지 못하게 만들 수 있다.
이런 공격들을 막기 위해서 이동단말이 바인딩 업데이트 메시지를 전달할 때 홈 에이전트로는 IPsec ESP(Encapsulation Security Payload)를 사용하여 패킷을 보호하고, 대응노드로 바인딩 업데이트 메시지를 전송할 때에는 보안을 위한 기본 메커니즘으로 RR을 이용하여 HoA와 CoA가 도달가능한지를 확인한 후 메시지를 전송하는 방식을 적용하고, 필요한 경우에 RR 방식보다 더 강력한 메커니즘을 추가적으로 사용하는 방향으로 의견이 모아졌다.
III. Mobile IPv6 보안 해결 방안
DT에서는 메일링 리스트를 통하여 draft-ietf-mobileip-ipv6-15.txt를 업데이트 하기 위한 토론을 계속해왔고, 여기서 모아진 의견들을 반영하여 미완성 문서인 draft-ietf-mobileip-ipv6-pre16.txt를 review하고자 메일링 리스트에 발표하여 토론하였다. 현재는 draft-ietf-mobileip-ipv6-16.txt가 발표되어 Mobile IP 워킹 그룹 드래프트가 업데이트 되었고, 이 문서는 앞 장에서 논의되었던 보안 이슈와 그 해결방안으로 제시된 메커니즘들이 포함되어 있다.
인터넷 드래프트 버전 16[12,13]이 이전 버전인 draft-ietf-mobileip-ipv6-15.txt 와 비교하여 크게 변경된 사항은 바인딩 생성/관리에 연관된 모든 메시지들을 교환하기 위해서 Mobility 헤더를 정의하여 사용하는 것이다. Mobility 헤더는 Mobile IPv6 전용으로 정의된 IPv6 확장 헤더이며, Next Header 필드의 값이 62인 경우에 Mobility 헤더가 위치하도록 정의하였다. 이밖에도 라우팅 헤더 Type 2를 정의하여 사용하도록 하는 등 이전 버전의 드래프트와 차이가 크다.
이 차이를 <표 1>에서 요약하였고, 각 항목에 대해서 세부적으로 살펴보고자 한다.

¡ 새로운 바인딩 업데이트 인증 메커니즘
이동단말은 이동을 감지한 후 자신의 바인딩 정보를 홈 에이전트와 대응노드로 전송하게 된다. 이때 홈 에이전트와는 SA을 갖고 IPsec ESP를 이용하여 데이터의 기밀성을 보장한다. 또한 정확한 패킷 ordering과 replay protection을 위해서 바인딩 업데이트 메시지의 시퀀스 넘버 필드의 길이를 16비트로 확장하였다.
대응노드로 바인딩 업데이트 메시지를 전송할 때에는 RR 메커니즘을 사용하여 여러 유형의 공격으로부터 메시지를 보호한다. RR 메커니즘의 기본 동작은 (그림 2)와 같다.

RR 메커니즘을 수행하기 위해서 새로 정의된 메시지는 <표 2>에서 정리하였다.
위 메시지들은 각각 Mobility 헤더의 타입필드의 값에 따라서 데이터 필드에 담겨져 전송된다. 위 절차에 따라서 HoA와 CoA에 대해서 각각 reachability와 validity를 체크한 후, 바인딩 업데이트를 전송함으로써 바인딩 업데이트 권한을 가진 이동 노드를 인증할 수 있고, 안전하게 바인딩 업데이트 과정을 수행할 수 있다.
¡ Mobile IPv6 시그널링을 위해 새로운 IPv6 프로토콜 정의
<표 2>에서 정리한 RR 시그널링을 위해서 새로운 IPv6 확장 헤더로 Mobile IPv6 전용의 Mobility 헤더를 정의하였다. Next Header 필드의 값이 62인 경우에 Mobility 헤더가 위치하게 된다. Mobility 헤더는 홈 에이전트/대응노드/이동단말 모두 사용하며, 데이터 필드에 들어가는 정보는 바인딩 정보교환을 위한 바인딩 업데이트/요청/응답 메시지와 RR 메커니즘을 위한 HoTI/CoT/HoT/CoT 메시지들이 있고, 바인딩 업데이트 메시지에 들어가는 파라미터 값으로는 Nonce, Authentication 값들이 있다.
¡ HAO의 사용을 제한
드래프트 버전16에서는 모든 노드가 HAO를 포함한 메시지를 받았을 때, 우선 자신의 바인딩 캐시 정보를 확인하여 CoA-HoA의 바인딩 정보를 갖고 있는 경우에만 HAO를 처리할 수 있도록 제한하고 있다. 그 이유는 앞 장에서 설명한 것처럼 HAO를 이용한 reflection 공격을 방지하기 위함이다.
¡ Binding Missing 메시지 추가
HAO의 사용을 제한하였기 때문에 대응노드는 수신한 패킷에 대한 바인딩 정보를 갖고 있지 않은 경우 HAO의 부적절한 사용을 이동 단말로 알려야 하며, 이를 위해 Binding Missing 메시지를 정의하고 있다. Binding Missing 메시지를 수신한 이동 단말은 자신의 바인딩 업데이트 리스트에 대응노드에 대한 엔트리의 존재여부를 체크하여, 엔트리가 존재하고 이전에 계속 통신한 정보를 갖고 있지 않은 경우에 바인딩 업데이트 리스트의 엔트리를 삭제한다. HAO를 사용하는 경우는 홈 망을 벗어난 이동 단말이 대응노드로 패킷을 전송할 때 목적지 노드에게 홈 주소를 알리기 위한 것인데, 바인딩 업데이트 엔트리가 존재하는데 이전에 통신한 정보가 없다는 것이 의미하는 바는 일정 기간동안 데이터 교류가 없어서 대응노드에서 저장하고 있는 바인딩 정보의 lifetime이 종료되어 엔트리가 삭제되었음을 말한다. 따라서 이런 경우에 필요에 따라 바인딩 업데이트를 하기 위해 RR 메커니즘을 다시 시작한다.
¡ Authentication Data
Authentication Data가 서브옵션으로 포함되는 것이 아니라, 바인딩 업데이트/요청/응답 메시지 내에 파라미터 값으로 반드시 포함되도록 설정되었다.
¡ 시퀀스 넘버 필드가 16비트로 확장
Home Registration을 replay attack으로부터 막기 위해서 바인딩 업데이트/응답 메시지의 시퀀스 넘버 필드를 16 비트로 확장하여 이용한다.
¡ 라우팅 헤더 Type 2를 정의하여 사용
기존 라우팅 헤더 Type 0을 사용하였으나, 앞 장에서 설명한 문제점들 때문에 Mobile IPv6를 위해서 새로운 타입의 라우팅 헤더를 정의하였다. 특징은, 오직 한 개의 주소(이동단말의 HoA) 만을 운반하도록 하고 segment left 값을 항상 1로 설정하도록 하였다. 또한 이 헤더를 처리하려는 IPv6 노드들은 여기에 포함된 주소가 자신의 HoA인지를 먼저 확인한 후 처리하도록 하였다.
¡ 라우터의 동작변경
새로운 타입의 라우팅 헤더가 정의되면서 모든 라우터에서 이전 라우팅 헤더와 차별하여 처리할 수 있도록 동작을 변경하였다.
¡ 각 노드의 동작변경
이동단말, 대응노드, 홈 에이전트에서 새로운 인증 방법 RR이 포함됨에 따라 동작을 수정하고 추가하였다.
¡ 피기백킹
Destination Option이 아니라 new IPv6 protocol을 사용하기 때문에 피기백킹은 더 이상 불가능하지만 별도의 스펙에서 피기백킹 지원문제와 피기백킹과 IPsec을 함께 사용함으로써 발생하는 문제들을 다룰 수 있도록 하였다.
IV. 결 론
본 문서에서는 Mobile IPv6 드래프트가 RFC로 제정되는 데 문제가 되었던 보안의 취약성을 살펴보았고, 이를 해결하고자 노력했던 Mobile IPv6 DT와 메일링 리스트 참여자들의 여러 가지 의견들을 모아 도출해낸 해결방법에 대해서 알아보았다. 또한, 메일링 리스트를 통한 토론 으로 맺어진 결과들을 현재 드래프트에 반영시켜 발표한 16 버전의 드래프트와 이전버전과의 차이를 비교, 분석하였다. 가장 큰 차이는 보안에 관한 설계가 포함되었다는 점으로서, Mobile Ipv6를 개발하고자 하는 여러 연구단체와 기업체에서는 보안책이 포함된 문서에 따라 개발하는 것이 추후 RFC에 맞추어 업그레이드 할 때 용이할 것으로 보인다. 현재, 16번 버전에서 문맥상으로 또 기술적으로 다듬어야 하는 부분들을 정리하여 드래프트 17번 버전이 공개된 상태이며, 곧 18번 버전으로 업데이트 될 것으로 예상된다.
<참 고 문 헌>
[1] Mobile IPv6 Design Team, “Home Address Option: design team recommendation,” Mobile IP mailing list, February 12, 2002.
[2] Charlie Perkins, “A new proposal for handling Home Address destination options,” Mobile IP mailing list, February 15, 2002.
[3] Mobile IPv6 Design Team, “Mobile IPv6 Security Issues(Update on issues Closed and Open),” Mobile IP mailing list, February 23, 2002.
[4] Mobile IPv6 Design Team, “Unverified HAO Processing - Recommendation note,” Mobile IP mailing list, March 5, 2002.
[5] Mobile IPv6 Design Team, “Piggybacking - DT recommendation,” Mobile IP mailing list, February 13, 2002.
[6] Mobile IPv6 Design Team, “Design team recommendation: New recommendation on piggybacking,” Mobile IP mailing list, February 26, 2002.
[7] Mobile IPv6 Design Team, “Routing headers: design team recommendation,” Mobile IP mailing list, January 24, 2002.
[8] Mobile IPv6 Design Team, “Mobile IPv6 Security Issues(Update on issues Closed and Open),” Mobile IP mailing list, March 13, 2002.
[9] Mobile IPv6 Design Team, “BU Authorization method: design team recommendation,” Mobile IP mailing list, February 5, 2002.
[10] Mobile IPv6 Design Team, “Design team note: Why the ‘one bit’ is needed and why it is sufficient,” Mobile IP mailing list, February 26, 2002.
[11] Mobile IPv6 Design Team, “Design team note: bidding down attacks,” Mobile IP mailing list, February 26, 2002.
[12] INTERNET-DRAFT, “Mobility Support in IPv6,” draft-ietf-Mobileip-ipv6-16.txt, March 22, 2002.
[13] D. Johnson and C.E. Perkins, “Mobility Support in IPv6,” draft-ietf-Mobileip-ipv6-15.txt, work in progress.
이동성 지원을 위한 Mobile IPv6 관련 보안 이슈.pdf추가 자료(TTA)

Comments List
醫