요약
- RFC 3519는 UDP를 사용하고 홈 에이전트가 관측한 외부 발신 주소와 포트를 실효적인 케어오브 로케이터로 삼아, 모바일 IPv4 데이터가 NAT를 가로지를 수 있게 했습니다.
- 모바일 IP 인증은 등록 메시지 내부의 케어오브 주소를 보호했을 뿐, NAT가 다시 쓴 외부 튜플은 보호하지 않았습니다. 짧은 수명, 킵얼라이브, IPsec은 그 로케이터를 인증하지 않은 채 결과를 제한했습니다.
문제는 두 가지 유용한 설계의 불일치에서 시작됐습니다. 모바일 IPv4는 홈 에이전트가 전역적으로 의미 있는 케어오브 주소로 트래픽을 터널링할 것으로 기대했습니다. 한편 NAPT는 하나의 공용 주소를 공유하는 여러 사설 호스트를 구분할 수 있는 TCP 또는 UDP 포트를 기대했습니다. 순수한 IP-in-IP에는 그런 포트 쌍이 없었기 때문에, 모바일 IP의 UDP 등록 교환이 성공하는 동안에도 데이터 터널링은 실패할 수 있었습니다.
RFC 3519는 빠져 있던 전송 계층 식별자를 도입했습니다. 모바일 노드는 등록 요청에 UDP 터널 요청 확장을 추가했습니다. 홈 에이전트는 UDP 터널 응답으로 답하고, IP-in-UDP, GRE-in-UDP 또는 UDP 내 최소 캡슐화 중 하나를 선택할 수 있었으며, 포트 434를 사용했습니다. 데이터와 이후의 등록은 동일한 발신 포트를 유지해 변역기가 사용 가능한 매핑을 보존할 수 있도록 했습니다.
긍정적인 응답은 정확히 어떤 의미였을까요. 홈 에이전트가 해당 모바일리티 바인딩에 대해 UDP 터널링에 동의했다는 뜻입니다. 홈 에이전트가 번역된 주소-포트 튜플을 인증했거나, NAT가 그 튜플을 얼마나 오래 유지할지 측정했거나, 다음 인바운드 데이터그램이 모바일 노드에 도달할 것임을 증명했다는 뜻은 아니었습니다.
NAT를 감지하기 위해 홈 에이전트는 등록 요청의 외부 발신 주소와 메시지 내부에 담긴 케어오브 주소를 비교했습니다. 불일치가 있으면 모바일 노드가 변역기 뒤에 있을 가능성을 시사했습니다. UDP 터널링이 허용된 경우, 홈 에이전트는 일반적으로 관측된 발신 주소를 실효적인 케어오브 주소로 사용했습니다.
이 결정은 두 개의 근거 영역을 결합했습니다. 모바일-홈 또는 포린-홈 인증 확장은 메시지 내 케어오브 주소를 포함한 등록 필드를 보호했습니다. 반면 외부 헤더의 주소와 UDP 포트는 NAT가 다시 쓸 수 있었습니다. 바로 그 외부 값이 홈 에이전트가 반환 트래픽에 필요한 것이었지만, 인증 확장의 적용 범위 밖이었습니다.
RFC 3519는 이 결과를 숨기지 않았습니다. 경로상의 공격자는 등록 요청의 IP와 UDP 헤더를 변경해 결과 모바일리티 바인딩을 다른 곳으로 유도할 수 있었습니다. 요청을 변경한 뒤에는 더 이상 트래픽을 조작할 필요가 없었습니다. 바인딩이 만료되거나 모바일 노드가 다시 등록할 때까지 홈 에이전트는 거짓 실효 로케이터를 계속 사용하게 됩니다.
특수한 포린 에이전트 경로는 이 경계를 더 선명하게 만들었습니다. 모바일 노드가 자체 배치(co-located) 케어오브 주소를 쓰면서 포린 에이전트를 통해 등록하는 경우, 등록 요청과 최종 터널이 서로 다른 포트를 통과할 수 있었습니다. 따라서 홈 에이전트는 하프 바운드 상태에서 모바일 노드의 첫 킵얼라이브를 기다린 뒤에야 터널 포트를 알게 됩니다.
등록 교환을 관측한 주체는 가짜 킵얼라이브로 경쟁할 수 있었습니다. RFC 3519는 킵얼라이브의 외부 발신 IP 주소가 등록 요청과 일치할 것을 요구해, 공격자를 그 주소의 다른 포트로 제한했습니다. 그러나 포트는 여전히 인증되지 않았습니다. 정당한 첫 킵얼라이브를 즉시 보내면 경쟁 창을 줄일 뿐, 관측된 포트가 서명된 신원이 되지는 않았습니다.
킵얼라이브에는 또 다른 목적이 있었습니다. NAT는 유휴 기간 동안 매핑을 버릴 수 있습니다. RFC 3519는 UDP로 캡슐화된 ICMP 에코 요청과 응답 메시지를 사용해 모바일 노드가 잃어버린 매핑을 감지할 수 있게 했습니다. 재전송 후에도 응답이 없으면 모바일 노드는 다시 등록하고, 새 튜플을 홈 에이전트에 노출하고, 그 네트워크에 맞게 간격을 단축할 수 있었습니다—최소 10초 미만으로는 줄일 수 없었습니다.
기본 간격은 110초였고, 홈 에이전트가 다른 값을 제안할 수 있었습니다. 그러나 RFC는 홈 에이전트가 매핑 소실을 동적으로 보정하는 것을 금지했습니다. 신뢰할 수 있게 할 정보가 부족하기 때문입니다. 고장 신호에 더 가까운 모바일 노드가 적응을 담당했습니다. 이는 명시적인 지식의 국지화였지, 보편적인 NAT 타이머가 아니었습니다.
세 가지 수명은 서로 어긋날 수 있었습니다. 인증된 모바일리티 바인딩은 여전히 유효할 수 있습니다. NAT 매핑은 이미 사라졌을 수 있습니다. 홈 에이전트가 옛 주소로 계속 보내는 동안 새 발신 패킷이 새 매핑을 만들 수도 있습니다. 따라서 바인딩 수신, 매핑 수신, 전달 수신은 서로 다른 객체였습니다.
이 문서는 보수적이고 짧은 바인딩 수명을 권고했습니다. 짧은 수명은 개입이 멈춘 뒤 악의적 우회나 미감지 이동이 얼마나 오래 지속될지를 제한했습니다. 그러나 외부 헤더의 변경을 막지는 못했습니다. 이 완화는 나쁜 상태가 대표하는 시간을 줄였을 뿐, 입력의 권위를 개선하지는 않았습니다.
IPsec 역시 좁은 역할을 유지했습니다. RFC 3519는 중간 네트워크를 신뢰할 수 없을 때 사용자 데이터 기밀성을 IPsec이 보호할 수 있다고 했고, UDP 방식은 이동 중에 IPsec 연관관계를 바꾸지 않고 IPsec 관련 트래픽을 운반할 수 있다고 했습니다. 동시에 IPsec은 이 문서가 기술한 우회 공격을 막지 못하며, 탈취된 사용자 데이터를 기밀로 유지하는 것 외에는 방어가 없다고 명시했습니다. 내용의 비밀성과 목적지에 대한 권위는 별개였습니다.
UNSAF 논의는 이례적으로 솔직했습니다. 이 메커니즘은 번역된 주소를 모바일 노드에 노출하지 않았지만, 홈 에이전트는 여전히 보호되지 않은 실효 케어오브 주소에 의존했습니다. 더 강한 설계는 경로상의 번역을 발견하고, 각 변역기의 권위를 검증하고, 관련 NAT 주소를 서명된 등록 안에 담는 것이었을 것입니다. RFC 3519는 기존 NAT와의 호환성을 제공했을 뿐, 신뢰 간극이 사라졌다고 주장하지 않았습니다.
IANA의 모바일 IPv4 레지스트리는 새 메시지, 요청 및 응답 확장, 오류 코드를 기록합니다. 이 할당은 구현들이 비트와 값에 합의하도록 해 줍니다. 그러나 이것이 하나의 살아 있는 매핑, 하나의 인증된 외부 튜플, 하나의 성공한 터널을 증명하지는 않습니다.
RFC 3519의 지속적인 교훈은 인증이 실패했다는 것이 아닙니다. 인증된 객체가 인증되지 않은 경로 근거와 결합해 결과가 중대한 상태를 만들 수 있다는 것입니다. 등록은 유효하면서 실효 케어오브 로케이터는 거짓일 수 있었습니다. 좋은 운영은 이 두 진술을 동시에 보존해야 합니다.
출처
- https://www.rfc-editor.org/rfc/rfc3519.html
- https://www.rfc-editor.org/rfc/rfc3519.txt
- https://www.rfc-editor.org/info/rfc3519
- https://datatracker.ietf.org/doc/rfc3519/
- https://datatracker.ietf.org/doc/rfc3519/history/
- https://www.rfc-editor.org/errata_search.php?rfc=3519
- https://www.rfc-editor.org/rfc/rfc3344.html
- https://www.rfc-editor.org/rfc/rfc2003.html
- https://www.rfc-editor.org/rfc/rfc2004.html
- https://www.rfc-editor.org/rfc/rfc2784.html
- https://www.rfc-editor.org/rfc/rfc3024.html
- https://www.rfc-editor.org/rfc/rfc2663.html
- https://www.rfc-editor.org/rfc/rfc3022.html
- https://www.rfc-editor.org/rfc/rfc3424.html
- https://www.iana.org/assignments/mobileip-numbers/mobileip-numbers.xhtml
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://heng.lu/on-reality-layers-symbolic-power-and-why-clarity-feels-so-hostile/
- https://heng.lu/minimum-initial-specification-localized-future-decision-voluntary-adoption-internet-coordination-system/
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





