같은 사전 공유 키로 설정된 두 게이트웨이가 핸드셰이크를 마치고, 패킷 캡처에는 회선을 건너는 비밀이 보이지 않는다. 사람들이 기억하는 부분은 그것이다. 흥미로운 부분은 각 버전이 비밀을 안다는 증명을 위해 실제로 무엇을 계산하는가이며, IKEv1과 IKEv2는 그 증명을 서로 다른 입력으로 구성하고 그 과정에서 서로 다른 정보를 드러낸다. 두 추적을 나란히 읽으면 차이는 겉모습이 아니게 된다.

증명이 달성해야 하는 것

Diffie-Hellman은 양쪽에 공통 값을 주지만 그 공개 절반은 지켜보는 사람도 계산할 수 있다. 그것만으로는 신원에 대해 아무것도 증명하지 못한다: 키 교환을 마친 공격자는 당신의 게이트웨이와 같은 공통 값을 가진다. 인증 단계는 그 교환을 의도한 양측만 가진 비밀과, 그들이 합의한 신원 및 매개변수에 묶기 위해 존재한다.

그 묶음이 있기 때문에 해시는 키보다 많은 것을 덮는다. 비밀만 덮는다면 공격자는 다른 신원이나 제안을 가진 다른 교환으로 그것을 재생할 수 있다.

IKEv1 Main Mode: SKEYID를 유도한 뒤 증명하기

Main Mode는 여섯 개의 메시지를 실행한다. 첫 쌍이 보안 연관을 협상하고, 둘째 쌍이 Diffie-Hellman 공개 값과 nonce를 교환하며, 셋째 쌍은 방금 수립된 암호화 아래에서 신원과 인증 해시를 나른다. RFC 2409가 이 구성을 정의하며, 사전 공유 키 인증에서는 SKEYID가 비밀과 두 nonce에서 유도되고, 이후 키 자료는 SKEYID, Diffie-Hellman 공통 값, 쿠키, 상수에서 유도된다.

다섯 번째와 여섯 번째 메시지의 해시는 Diffie-Hellman 값, 두 쿠키, 제안, 송신자 신원을 대상으로 SKEYID를 키로 삼아 계산된다. 수신자는 자신이 설정한 비밀로 다시 계산한다. 불일치가 나면 교환은 끝나고, 비밀 자체는 결코 페이로드가 되지 않는다.

Aggressive Mode는 같은 작업을 세 개의 메시지로 압축하므로, 암호화된 경로가 생기기 전에 신원과 인증 해시가 오간다. 추측 가능한 비밀에는 실제 노출이며, 비밀이 전송되었는지와는 별개의 문제다. IKEv1은 RFC 9395로 폐기되었으므로 오래된 추적은 진단 연습이지 배포 대상이 아니다.

IKEv2: 다른 유도와 다른 AUTH 페이로드

IKEv2는 IKEv1의 키 일정을 재사용하지 않는다. 초기 IKE 키는 nonce와 Diffie-Hellman 공통 값으로 만든 시드에서 나오고, 자식 보안 연관은 그로부터 유도된다. 사전 공유 키는 시드에 전혀 들어가지 않는다.

그다음 인증이 AUTH 페이로드로 나타난다. 공유 키 인증에서는 RFC 7296이 비밀의 패딩된 형태를 규정하며, 고정 문자열Key Pad for IKEv2로 비밀을 해시한 뒤, 그 패딩된 키로 서명된 교환 데이터와 신원을 해시한다. 검증자는 같은 값을 재구성할 수 있지만, 관찰자는 비밀 없이는 할 수 없다.

무엇이 바뀌었는지 보라. IKEv1에서는 인증 해시가 존재하기 전에 비밀이 키 일정에 반죽된다. IKEv2에서는 키 일정이 비밀과 무관하고 증명은 서명된 옥텟에 묶인 별도의 페이로드이며, 개념적 보장은 같고 기계가 다르므로 매개변수 이름과 캡처가 일대일로 대응하지 않는다.

관찰자가 실제로 아는 것

Diffie-Hellman 공개 값, 제안, nonce, 쿠키는 두 버전 모두에서 보인다. 신원은 IKEv1 Aggressive Mode에서 보이고 다른 경우에는 보호된다. 비밀은 결코 보이지 않는다.

그 마지막 문장에는 말해 둘 한계가 있다. 약한, 사람이 고른 비밀은 추측으로 공격할 수 있다: 공격자는 후보 비밀에 대해 인증 값이 무엇이 될지 계산해 비교한다. IKEv1 Aggressive Mode는 증거가 평문으로 드러나므로 이 비용을 가장 낮추고, 표준도 일반적으로 낮은 엔트로피의 비밀을 경고한다. 비밀을 보내지 않는 것과 나쁜 비밀을 안전하게 만드는 것은 같지 않다.

이 비교를 어떻게 쓸 것인가

상대 쌍마다 하나의 고유한 비밀을 쓰고, 무작위 원천에서 생성하며, 배포한 것과 같은 프로비저닝 경로로 교체한다. 비밀이 모든 지사로 나가는 설정 템플릿에 들어 있다면 한 곳의 침해가 모든 곳의 침해다.

운영 비용이 감당할 만한 곳에서는 공유 비밀을 추측하는 문제가 사라지고 각 상대에 고유한 신원이 주어지므로 인증서 기반 인증을 우선하라. 사전 공유 키를 남긴다면 길게 유지하고 범위를 좁히며, IKE 버전을 상호운용의 세부가 아니라 보안 결정으로 다루어야 한다.

관련 글