요약

  • RFC 3129는 IPsec 보안 연관(SA) 키를 Kerberos 티켓 세션 키에서 도출하는 방식을 제안하여, 다수의 쌍대별 장기 비밀을 중앙에서 관리되는 신뢰 관계로 대체했습니다.
  • 이 메모는 KINK를 IKE의 대체물로 제시하지 않았습니다. 오히려 제3자의 실시간 참여 없이 동작할 수 있는 IKE의 능력을 포기하는 대신, 중앙화된 인증·정책·계산 경제성을 취한다는 점을 명시적으로 밝혔습니다.
  • 이 문서가 남긴 교훈은 키 관리 복잡성이 사라지는 것이 아니라 재분배된다는 것입니다. 각 피어의 부담이 줄어들수록 KDC 가용성, realm 설계, 시간, 이름 지정, 로컬 인가에 대한 책임은 커집니다.

RFC 3129에서 가장 시사적인 등식은 암호학이 아니라 조직에 관한 것이었습니다. IPsec 피어 쌍마다 서로 다른 사전 공유 키를 사용하는 플릿은 메모가 말하는 O(n²) 배포 문제에 직면합니다. 반면 Kerberos realm은 Key Distribution Center에서 각 주체(principal)마다 하나의 장기 관계만 유지하면 됩니다. 이 비교는 단순화된 것이지만 진단은 오래 지속되었습니다. 보안 시스템은 암호 내부의 수학만큼이나, 사람이 관리해야 하는 관계의 수 때문에 실패합니다.

IPsec은 이미 보호와 협상을 분리해 두었습니다. RFC 2401은 보안 연관과 AH 또는 ESP를 통한 IP 트래픽 보호를 기술했고, RFC 2409는 IKE를 기술했습니다. IKE를 통해 두 피어는 상호 인증하고 파라미터를 협상하며 키 자료를 확립할 수 있었습니다. 이 피어 투 피어 속성은 강력했습니다. 두 기계는 새 키에 합의하기 위해 살아 있는 중앙 중개자를 필요로 하지 않았습니다.

그러나 이 독립성은 모든 경계에 부담을 부과했습니다. 각 피어는 상대를 인증할 방법이 필요했습니다. 확장 가능한 공개 키 인증은 인증서, 신뢰 경로, 서명 연산을 요구했습니다. Diffie–Hellman은 공유 비밀을 제공했지만 계산을 소모했고 응답자를 서비스 거부 압력에 노출시켰습니다. 사전 공유 대칭 키는 인증서를 피할 수 있었지만, 모든 피어가 다른 모든 피어와 비밀을 가져야 할 때는 번거로워졌습니다. 또한 조직이 동등하게 신뢰하지 않는 기계들에 걸쳐 사이트 정책을 표현하고 준수시켜야 했습니다.

RFC 3129는 Kerberos가 이 배분을 바꿀 수 있는지 물었습니다. 당시 RFC 1510으로 규정되어 있던 Kerberos V5는 이미 클라이언트가 KDC에 인증하고 서비스 티켓을 얻게 해 주었습니다. 티켓은 클라이언트가 알고 서비스가 회복할 수 있는 세션 키를 담고 있었습니다. 제안된 Kerberized Internet Negotiation of Keys, 즉 KINK는 이 세션 키를 IPsec SA 키의 기반으로 사용할 예정이었습니다.

이는 하나의 핸드셰이크를 다른 핸드셰이크로 바꾸는 것 이상이었습니다. 신뢰의 중요한 부분을 모든 쌍대 상호작용에서 행정 중심지로 옮긴 것입니다. 장기 대칭 키는 가능한 모든 쌍 사이가 아니라 주체와 KDC 사이에 존재할 수 있었습니다. PKINIT를 사용하는 경우 공개 키 연산은 최초 자격 증명 획득 시에 지불하고 여러 서비스에 대한 티켓에 걸쳐 분산 상환할 수 있었습니다. 정책은 realm 관리자가 관리할 수 있는 곳에 집중될 수 있었고, 단순히 모든 피어에 통보된 뒤 로컬 해석을 믿어야 하는 대신이었습니다.

이 메모는 대가에 관해 이례적으로 솔직했습니다. "KINK는 IKE의 대체물이 아니다"라는 취지를 명시적 표현으로 담고 있었습니다. IKE는 두 피어가 적극적으로 참여하는 제3자 없이 인증과 키 교환을 할 수 있었습니다. KINK는 그 속성을 재현할 수 없었습니다. 신뢰되는 제3자는 그러한 권위가 실행 가능하고 바람직한 곳에서만 유용했습니다.

이 한계야말로 문서에 역사적 중요성을 부여합니다. 중앙화는 공짜 단순화로 제시되지 않았습니다. 그것은 장애 도메인에 관한 선택이었습니다. KDC는 쌍대별 프로비저닝과 반복되는 공개 키 연산을 줄였지만, 동시에 새로운 보호 관계가 시작될 수 있는지를 티켓, 시계, 주체 이름, realm 관계, 도달 가능성이 결정하는 권위가 되었습니다.

요구사항은 저자들이 그 중심지가 모든 순간을 지배하지 못하도록 얼마나 세심하게 막으려 했는지 보여줍니다. 어느 쪽 IPsec 피어든 서비스 keytab을 갖고 있든 티켓 발급 티켓만 갖고 있든 개시할 수 있어야 했습니다. 응답자가 일반 서비스 티켓을 복호화할 수 없는 경우를 위해 user-to-user Kerberos가 필요했습니다. 피어는 여러 realm에 참여할 수 있어야 했습니다. 절대적 시계 오차는 우아하게 처리되어야 했습니다. 가장 중요한 것은, Kerberos 세션 티켓이 유효한 동안에는 KDC의 도움 없이 재키잉(rekeying)이 진행되어야 한다는 점이었습니다.

따라서 KDC는 데이터 경로에 앉거나, 패킷마다 또는 재키잉마다 승인하는 존재가 아니도록 설계되었습니다. KDC는 인증된 공유 자료와 유한한 권위 기간을 확립했습니다. 피어들은 여전히 암호를 협상하고, 전송 또는 터널 모드를 확립하고, AH 또는 ESP SA를 생성하고, 플로우 셀렉터를 설치하고, 상태를 수정·삭제하고, IPv4와 IPv6 위에서 동작해야 했습니다. 인증된 신원이 무엇을 보호할 수 있는지는 여전히 로컬 시스템이 결정했습니다.

이 구분이 중요한 이유는 인증이 쉽게 인가로 오해되기 때문입니다. 유효한 Kerberos 티켓은 주체가 누구인지 말해 주고 키 자료를 제공할 수 있습니다. 그것만으로 그 주체가 특정 서브넷을 위한 터널을 만들 수 있는지, 넓은 셀렉터를 선택할 수 있는지, 게이트웨이를 사칭할 수 있는지는 결정하지 못합니다. 그 선택들은 여전히 IPsec 정책과 로컬 관리에 남아 있습니다. 신원 증명을 KDC 쪽으로 옮긴다고 해서 모든 트래픽 결정이 그곳으로 옮겨지는 것은 아닙니다.

또한 RFC 3129는 프로토콜을 완성하지 않았습니다. 그것은 Informational 요구사항 메모였습니다. 5년 뒤 RFC 4430이 Standards Track의 KINK 명세를 제공하면서 RFC 3129를 명시적으로 자신의 요구사항 기반으로 다뤘습니다. 이 순서가 필수적입니다. 2001년은 옮겨야 할 부담과 살아남아야 할 속성을 정의했고, 2006년은 상호운용 가능한 프로토콜을 기술했습니다. 어느 문서의 공개도 넓은 배포나 IKE 대체를 증명하지 않습니다.

주변 표준들도 계속 진화했습니다. RFC 4120은 이후 원래의 Kerberos V5 명세를 대체했습니다. RFC 3961은 Kerberos 암호화 및 체크섬 프로파일을 핵심 프로토콜에서 분리했습니다. RFC 4556은 PKINIT를 표준화했습니다. IKE 자체는 RFC 4306을 통해 IKEv2가 되었고 이후 RFC 7296으로 이어졌습니다. RFC 6113은 Kerberos 사전 인증을 일반화했습니다. 역사는 하나의 깨끗한 분기를 선택하지 않았습니다. 각기 다른 제어 표면을 지닌 여러 신뢰 분배 방식을 발전시켰습니다.

따라서 RFC 3129의 O(n) 대 O(n²) 언어는 완전한 경제적 증명이 아니라 아키텍처적 프롬프트로 읽어야 합니다. KDC는 단순화된 모델에서 쌍대별 장기 비밀의 수를 줄입니다. 그러나 크로스 realm 신뢰, 재해 복구, 마스터 키 보호, keytab 순환, 자격 증명 갱신, 시계 규율, 감사, 용량 계획, 로컬 접근 규칙은 제거하지 않습니다. KDC는 광범위한 쌍대 의무의 메시를 더 적지만 더 중대한 몇몇 제도로 교환하는 것입니다.

이 교환은 사고 증거의 성격을 바꿉니다. 쌍대 모델에서 조사자는 어떤 피어 키 또는 인증서 경로가 실패했는지 묻습니다. Kerberos 기반 모델에서는 어떤 주체가 어떤 티켓을, 어떤 사전 인증을 통해, 어떤 realm 정책 아래, 어떤 수명으로 얻었는지, 그리고 서비스가 그 신원을 올바르게 인가했는지도 물어야 합니다. KDC 로그는 귀속(attribution)을 크게 강화할 수 있지만, 침해되거나 오구성된 권위는 또한 규모에 따라 신뢰를 발급할 수도 있습니다.

가용성도 같은 방식으로 변합니다. 기존 SA와 유효한 티켓은 일시적 KDC 중단을 넘어 살아남을 수 있으며, 특히 RFC 3129가 티켓 유효 기간 중 로컬 재키잉을 요구했기 때문입니다. 그러나 새 자격 증명, 만료된 티켓, 새로운 서비스 관계는 그렇지 않을 수 있습니다. 따라서 실제 중단 경계는 "KDC가 내려가면 모든 IPsec이 내려간다"가 아닙니다. 그것은 캐시된 자격 증명, 티켓 수명, SA 수명, 재키잉 규칙, 그리고 피어가 다시 중앙의 도움을 필요로 하는 시점 사이의 상호작용입니다.

메모의 보안 고려사항은 냉정한 결론을 전했습니다. Kerberos와 IPsec으로 구축된 시스템은 양쪽의 약점의 합집합을 물려받습니다. 두 성숙한 메커니즘을 결합한다고 어느 쪽의 실패 모드도 상쇄되지 않습니다. 또한 그 접점에서 새로운 약점이 생길 수 있으며, 프로토콜은 이를 다뤄야 했습니다.

그렇기 때문에 RFC 3129는 인터넷의 역사에서 자리를 차지합니다. 이 문서는 프로토콜 설계가 관리를 암호학의 일부로 인식한 순간을 기록했습니다. 결정적인 질문은 더 이상 두 종단점이 같은 키를 도출할 수 있는지만이 아니었습니다. 누가 누구를 알아야 하는지, 누가 정책을 부과할 수 있는지, 어떤 계산이 경계에서 반복되는지, 그리고 어떤 제도가 큰 네트워크를 관리 가능하게 만드는 권위로 신뢰받을지에 관한 것이었습니다.

KDC는 신뢰를 사라지게 하지 않았습니다. 신뢰를 판독 가능하고 재사용 가능하며 집중된 것으로 만들었습니다. 그것은 엄청난 운영상 이점이 될 수 있었습니다. 동시에 realm 거버넌스, 가용성, 침해를 여러 피어가 한꺼번에 나누는 결과로 만들 수도 있었습니다. RFC 3129의 성과는 프로토콜 완성을 선언하기 전에 이 거래의 양면을 요구사항에 담은 것입니다.

출처