요약
- RFC 2409의 퀵 모드는 기존 페이즈 1 ISAKMP SA로 세 개의 메시지를 보호했습니다.
HASH(1)과HASH(2)는 제안과 nonce를 인증했고,HASH(3)는 응답자에게 최종 생존 증명을 제공했습니다. 규격에 명시된 기본 교환에는 네 번째 퀵 모드 확인 메시지가 없었습니다. - 전사(transcript)는 협상된 키 자료를 확립할 수 있었지만, 양쪽 엔드포인트가 호환되는 SA를 설치했는지, 의도된 셀렉터를 붙였는지, 보호된 패킷을 처리했는지, 응용 결과를 전달했는지는 증명하지 못했습니다. 이러한 주장에는 별도의 로컬 및 런타임 영수증이 필요했습니다.
퀵 모드에서 가장 정보가 되는 패킷은 사실상 아무것도 담지 않았습니다. 암호화된 본문에는HASH(3)만 있었습니다. 그 뒤에 새로운 제안이 따르지 않았습니다. 새로운 nonce도 따르지 않았습니다. 응답자로부터 돌아오는 네 번째 기본 퀵 모드 메시지도 없었습니다.
이런 간결함은 의도된 것입니다. 세 번째 메시지가 도착할 때쯤이면 교환은 이미 제안된 보안 결합(SA), 개시자의 nonce, 응답자의 선택과 nonce, 그리고 요청 시에는 새로운 디피-헬먼 값과 클라이언트 신원까지 전달한 뒤였습니다. 최종 해시는 암호학적 대화를 닫았을 뿐, 대화를 증거의 관점에서 대칭으로 만들지는 않았습니다.
RFC 2409는 RFC 2408이 의도적으로 열어둔 조각들로 IKE를 조립했습니다. ISAKMP가 메시지 프레임워크를 제공했습니다. IPsec DOI가 도메인별 제안 의미를 제공했습니다. IKE가 구체적인 교환, 인증 선택, 키 도출, 이후 협상을 보호하는 규칙을 제공했습니다. 비용이 많이 드는 하나의 인증된 채널이 이후의 수많은 SA 협상을 지원할 수 있어야 했기에 결과는 두 페이즈 구조가 되었습니다.
페이즈 1은 ISAKMP SA를 확립했습니다. 메인 모드는 반드시 구현해야 했고, 어그레시브 모드는 권장 사항이었습니다. 둘 다 임시 디피-헬먼 교환으로부터 인증된 키 자료를 만들었지만 신원과 보호를 다르게 배치했습니다. 퀵 모드는 페이즈 2에만 속했습니다. 퀵 모드는 인증된 페이즈 1 맥락을 빌려 ISAKMP가 아닌 SA, 그중에서도 AH나 ESP가 나중에 사용할 SA를 협상했습니다.
부모 상태와 자식 상태는 별개의 좌표를 가졌습니다. 개시자 쿠키와 응답자 쿠키 쌍이 ISAKMP SA를 식별했습니다. 새로운 메시지 ID가 하나의 퀵 모드 인스턴스를 식별했습니다. 각 인스턴스는 페이즈 1 최종 암호문 블록과 그 메시지 ID로부터 독립적인 첫 번째 초기화 벡터를 도출했기 때문에, 여러 퀵 모드가 하나의 전진하는 IV 체인을 공유하지 않고 동시에 진행될 수 있었습니다.
이 메시지 ID는 그 자체로 페이즈 2 메시지를 인증하지 않았습니다. 인증을 검증할 수 있는 상태를 선택했을 뿐입니다. 이 구분은 같은 4옥텟이 해시 입력 안에 등장하기 때문에 중요합니다. 조회 키는 전사의 나머지 부분에 암호학적으로 결합되었지만, 이 필드의 범위가 신원, 권한 또는 설치까지 확장되지는 않았습니다.
퀵 모드의 첫 번째 메시지는 암호화된 헤더 바로 뒤에 HASH를 배치하고, 그 바로 뒤에 SA 페이로드를 두었습니다. 이 메시지는HASH(1), 제안된 SA들, 개시자 nonceNi를 담았으며, 퀵 모드 키 교환과 클라이언트 신원 셀렉터를 담을 수도 있었습니다.HASH(1)은 메시지 ID와 해시 이후의 완전한 메시지, 즉 페이로드 헤더를 포함하고 암호화 패딩은 제외한 전체를 커버했습니다.
이 구조는 응답자에게 경계가 분명한 주장을 제공했습니다. 인증된 페이즈 1 키잉 상태를 가진 누군가가 이 메시지 ID 아래, 이 nonce와 이러한 선택적 신원과 함께, 바로 이 페이즈 2 제안을 형성했다는 것입니다. 응답자의 로컬 정책이 이 제안을 수락할 것이라는 말은 아니었고, IPsec SA가 이미 존재한다는 말도 아니었습니다.
두 번째 메시지는HASH(2), 선택된 SA, 응답자 nonceNr를 돌려보냈으며, 해당하는 경우 선택적 자료도 함께 담았습니다.HASH(2)는 응답의 나머지 앞에 개시자의 nonce를 더했습니다. RFC 2409는 이 추가를 생존 증명으로 묘사했습니다. 따라서 응답은 응답자의 선택을 개시자의 도전과 인증된 부모 상태에 결합했습니다.
개시자의 관점에서, 두 번째 메시지의 성공적인 복호화와 검증은 강력하지만 제한된 사실을 확립합니다. 페이즈 1 상태를 보유한 응답자가 개시자의 nonce를 사용해 이 퀵 모드 인스턴스에 응답했고, 자신만의 새 nonce를 제공했다는 것입니다. 양쪽이 제안을 일관되게 해석했다면 개시자는 같은 후보 키 자료를 도출할 수 있었습니다.
세 번째 메시지는HDR*, HASH(3)였습니다. 해시 입력은 0옥텟 하나로 시작해 메시지 ID,Ni,Nr를 이어붙였습니다. 응답자는 개시자가Nr을 수신했고, 최종 값을 형성하는 데 필요한 인증된 상태를 보유했음을 검증할 수 있었습니다. 이것이 기본 퀵 모드에서의 최종 생존 엣지였습니다.
이 엣지의 방향은 녹색 상태 배지 속에서 쉽게 잊힙니다.HASH(3)은 응답자가 받고, 개시자가 보냅니다. 검증이 성공하면 응답자는 개시자의 진행 상태에 대해 무언가를 알게 됩니다. 기본 전사에는 응답자가 세 번째 메시지를 받았거나 수락했다는 것을 개시자에게 증명하는 네 번째 퀵 모드 메시지가 없습니다.
이는 규격에 명시된 세 메시지 시퀀스로부터 도출한 추론이며, RFC 2409가 그 교환을 결함이라고 부르는 인용이 아닙니다. 프로토콜은 운영자가 나중에 원하는 모든 영수증을 생성하지 않아도 올바를 수 있습니다. 재전송 규칙, 보호된 트래픽, 구현 상태, 그리고 RFC 2408의 선택적 커밋(Commit) 메커니즘이 추가 신호를 제공할 수 있었습니다. 어느 것도 기본 퀵 모드 전사 자체가 담고 있는 내용을 바꾸지는 않습니다.
빠진 네 번째 엣지는 더 강한 비약도 막습니다. 네 번째 네트워크 확인 메시지조차 그 자체로 두 커널이 호환되는 패킷 처리 상태를 설치했다는 증명이 되지 않습니다. 협상은 IKE 프로세스 안에서 이루어졌습니다. 런타임 AH 또는 ESP 처리는 로컬 보안 결합 데이터베이스, 셀렉터, 수명, 시퀀스 상태, 경로, 인터페이스, 경우에 따라 하드웨어 오프로드에 의존했습니다. 메시지 영수증은 시스템 콜 영수증이 아닙니다.
RFC 2409의 키 도출 방식은 이 분리를 더 분명하게 만듭니다. 두 nonce는 자료를 새로 고치고, 재전송된 메시지가 가짜 SA를 만들지 못하게 막았습니다. 퀵 모드 KE 페이로드가 없으면KEYMAT은SKEYID_d, 프로토콜, SPI,Ni,Nr에서 나왔습니다. 새 키는 nonce에 대해 신선(fresh)했지만, 이 기본 구조는 페이즈 1의 지수 연산과 독립적인 완전 순방향 비밀성(PFS)을 페이즈 2 키에 부여하지 않았습니다.
양쪽이 선택적 KE 페이로드를 포함하면 또 하나의 디피-헬먼 교환을 수행하고 그 공유 비밀을KEYMAT에 혼합했습니다. 이는 생성된 페이즈 2 키에 PFS를 제공했습니다. 교환이 이 옵션을 사용하지 않아도 구현은 이 옵션을 지원해야 했습니다.
PFS는 암호학적 이력 속성입니다. 장기 또는 부모 자료가 나중에 유출될 때 노출되는 범위를 제한합니다. SAD 쓰기가 성공했는지, 셀렉터가 SPD에 들어갔는지, 양방향이 같은 변환을 사용했는지, 응용이 데이터를 받았는지에 대한 증거가 아닙니다. PFS를 '터널 설치됨'으로 표시하는 시스템은 서로 무관한 두 증명을 합쳐버립니다.
선택적 클라이언트 신원은 또 하나의 경계를 드러냅니다.IDci와IDcr은 IKE 피어가 그들을 대신해 협상한 트래픽 엔드포인트를 식별할 수 있었습니다. 이 신원들이 나타나면 협상 안의 모든 SA에 일관되게 적용되어야 했습니다. 따라서 인증된 페이즈 1 피어와 클라이언트 트래픽 주체는 관련될 수 있지만 동일할 필요는 없었습니다.
'피어가 인증됨'만 기록하는 감사는 권한 부여 단계를 놓칩니다. 게이트웨이 자격 증명은 IKE를 실행하는 장치를 인증할 수 있고, 퀵 모드 ID는 서브넷, 호스트 또는 프로토콜 셀렉터를 기술할 수 있습니다. 그 게이트웨이가 이 트래픽 관계를 수립할 수 있는지는 여전히 로컬 정책이 결정했습니다. 전사는 제안된 필드와 선택된 필드를 인증했을 뿐, 수신 조직의 규칙을 작성하지는 않았습니다.
제안에는 SA, 변환, SPI의 번들(bundles)이 포함될 수 있었습니다. 퀵 모드가 KE 페이로드나 클라이언트 신원을 담을 때 일관성 규칙은 모든 제안에 걸쳐 적용되었습니다. 이 규칙들은 하나의 전사가 서로 호환되지 않는 그룹이나 셀렉터 가정을 번들의 서로 다른 구성원에게 조용히 적용하는 것을 막았습니다.
메시지 계층의 일관성은 여전히 커널 앞에서 멈췄습니다. 응답자는 수락 가능한 변환을 선택하고HASH(2)를 만들 수 있었습니다. 개시자는 그것을 검증하고HASH(3)을 보낼 수 있었습니다. 그다음 어느 쪽 엔드포인트든 메모리, 정책 조정, 수명 변환, 장치 프로그래밍, 경로 결합, 셀렉터 설치에서 실패할 수 있었습니다. RFC 2409는 그런 로컬 영수증들을HASH(3)안에 넣지 않았습니다.
IV 규칙은 구현 경계를 눈에 보이게 만듭니다. 퀵 모드의 첫 번째 IV는 페이즈 1 최종 CBC 출력 블록과 페이즈 2 메시지 ID에서 도출되었습니다. 이후 메시지들은 그 퀵 모드 안에서 이전 암호문 블록으로 체이닝되었습니다. 동시에 진행되는 다른 교환들은 독립적인 체인을 도출했습니다.
RFC 2409는 구현이 암호문이 도착했다는 이유만으로 실행 중인 IV를 갱신하지 말라고 경고했습니다. 복호화된 메시지는 기본 정합성 검사를 통과하고 실제로 IKE 상태 머신을 전진시켜야 했습니다. 그렇지 않으면 유효한 쿠키를 가진 재전송 또는 위조 메시지가 암호 상태를 어긋나게 만들 수 있었습니다.
따라서 수신, 복호화, 검증, 상태 전진은 이미 IKE 내부에서 구분되는 네 가지 사건이었습니다. IPsec SA를 설치하고 보호된 패킷을 관찰하는 것은 적어도 두 가지를 더 추가합니다. 유용한 기록은 이 여섯 가지를 '연결됨'이라는 하나의 타임스탬프로 압축해서는 안 됩니다.
프로토콜 자체의 재전송 환경이 그 이유를 설명합니다. IKE는 UDP를 사용했고 ISAKMP의 타임아웃과 재전송 동작을 물려받았습니다. 최종 발신 메시지는 유실될 수 있었습니다. 발신자는 보호된 트래픽이나 다른 진행 신호를 보지 못하면 재전송할 수 있었습니다. 수신자는 재전송과 새로운 상태 전진을 구분해야 했습니다. 같은 바이트 시퀀스가 암호학적으로는 유효하면서도 운영상으로는 오래된 것일 수 있었습니다.
그래서 세 번째 해시는 범위가 한정된 영수증으로 이해하는 것이 가장 정확합니다. 이것은SKEYID_a와 부모 SA 아래에서 정확한 구조를 인증합니다. 두 nonce에 대한 지식을 응답자에게 증명합니다. 정의된 퀵 모드 교환을 닫습니다. 그러나 응답자가 로컬 설치 이후 서명한 영수증이 아니며, 패킷 카운터나 응용 관찰도 담고 있지 않습니다.
Lu Heng의 현실 계층 관점은 이 시퀀스를 증거 지도로 바꿉니다. 메시지 ID는 상관(correlation)에 속합니다.HASH(1)부터HASH(3)까지는 인증된 전사 진행에 속합니다.KEYMAT은 도출에 속합니다. 정책 일치는 로컬 권한에 속합니다. SAD 또는 SPD 변이는 실행 중인 코드에 속합니다. ESP 카운터는 패킷 처리에 속합니다. 서비스 검사는 사용자가 보는 결과에 속합니다.
대행(agency) 문제는 각 경계에서 나타납니다. 프로토콜 저자가 계산을 정의했습니다. 자격 증명 관리자가 페이즈 1 신원 결합을 책임졌습니다. 보안 팀이 권한을 부여했습니다. IKE 데몬이 협상했습니다. 커널 또는 가속기가 설치했습니다. 네트워크 운영이 패킷을 관찰했습니다. 응용 소유자가 유용성을 판단했습니다. 어떤 주체도 자신의 단계가 성공했다는 이유만으로 이후의 모든 주체를 대신해 진실을 말할 수 없었습니다.
최소 사양(minimum specification)의 원리도 같은 결과를 낳습니다. 공통 표준은 상호운용 가능한 메시지와 계산을 명시할 필요만 있었습니다. 각 호스트의 정책, 드라이버, 경로 테이블, 감사 저장소를 국유화할 필요는 없었습니다. 로컬의 자유가 보존된 만큼, 공통 전사가 담을 수 없는 증거에 대한 로컬의 책임도 보존되었습니다.
실행 코드 우위(running-code primacy)가 운영적 해법을 제공합니다. 쿠키와 메시지 ID는 보존하되, 페이즈 1 자격 증명 지문, 인증 결과,Ni,Nr, 전사 해시 검증, 선택된 제안, KEYMAT 생성 식별자, 정책 개정, 로컬 설치 호출, 런타임 SPI와 셀렉터, 패킷 카운터, 응용 테스트를 결합하십시오. 결합 자체가 증명입니다.
이 기록은 사후 분석을 후간주의로부터 보호합니다. 한쪽이HASH(2)를 검증하고HASH(3)을 발신했는데 다른 쪽이 세 번째 메시지를 전혀 기록하지 않았다면, 실패는 대칭적 전사 완성 이전에 있습니다. 양쪽 데몬이 퀵 모드를 닫았는데 한쪽 커널에 일치하는 SA가 없다면, 실패는 설치 단계에 있습니다. 양쪽 커널이 보호된 패킷을 세는데 응용이 실패한다면, 문제는 그보다 더 뒤에 있습니다.
RFC 2409는 1998년 11월에 발표되었습니다. RFC 4109는 이후 IKEv1의 알고리즘 요구 사항을 갱신했습니다. RFC 4306은 2005년에 분리된 RFC 2407, RFC 2408, RFC 2409 계열을 IKEv2로 대체했습니다. RFC 7296은 이후 IKEv2 인터넷 표준이 되었습니다. 2023년 IESG는 IKEv1을 Historic으로 이동시켰고, RFC 9395는 IKEv1을 폐기(deprecate)하고 관련 레지스트리를 닫았습니다.
역사적 지위가 교훈을 약화시키지는 않습니다. 현대 시스템도 여전히 인증된 제어 평면 교환을 데이터 평면 준비 완료에 대한 주장으로 바꾸어 담습니다. 세 번째 해시는 그 지름길이 왜 안전하지 않은지 보여줍니다. 그것은 퀵 모드를 닫았을 뿐, 양쪽 커널을 확인하지 않았습니다.
출처
- IETF Datatracker — RFC 2409 이력
- IETF 상태 변경 — IKEv1을 Historic으로 이동
- Lu Heng — 최소 초기 사양과 지역화된 결정
- Lu Heng — 대행 문제
- Lu Heng — 현실 계층과 상징 권력
- Lu Heng — 실행 코드 우위
- IANA IKEv1 및 IPsec 레지스트리
- RFC Editor — RFC 2409 정오표
- RFC Editor — RFC 2409 정보
- RFC 2407 — IPsec DOI
- RFC 2408 — ISAKMP
- RFC 2409 — IKE
- RFC 4109 — IKEv1 알고리즘 요구 사항
- RFC 4306 — IKEv2
- RFC 6071 — IPsec 및 IKE 문서 로드맵
- RFC 7296 — IKEv2 인터넷 표준
- RFC 9395 — IKEv1 폐기 및 레지스트리 폐쇄
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





