핵심 인사이트 (3줄 요약)

  1. 본질: ESP 금고에 데이터를 넣어 보내기 전에, 양쪽 방화벽(서울과 부산)이 서로 멱살을 잡고 "우리 무슨 암호화 공식 쓸래? 비밀번호 열쇠(Key)는 뭘로 할래?"를 사전에 팽팽하게 협상(Negotiation)하고 합의하는 준비 단계가 바로 IKE(Internet Key Exchange)와 ISAKMP 프로토콜이다.
  2. SA (Security Association, 보안 연관): 두 방화벽이 길고 긴 IKE 협상을 끝내고 "오케이, 우리는 AES-256 암호화에 Key는 abcd로 합의 봤다!"라고 **서로 도장을 찍고 맺은 최종 합의문(계약서)**을 뜻한다. 이 계약서가 있어야만 비로소 ESP 금고로 데이터를 쏠 수 있다.
  3. 2단계 협상 (Phase 1 & Phase 2): 이 협상은 너무 깐깐해서 두 번에 걸쳐 일어난다. Phase 1은 "협상하는 과정 자체를 해커가 못 보게 감쌀 메인 텐트를 치는 작업(ISAKMP SA)"이고, Phase 2는 "그 안전한 텐트 안에서 실제 사용자 데이터를 암호화할 진짜 규칙을 정하는 작업(IPsec SA)"이다.

Ⅰ. 개요 및 필요성 (Context & Necessity)

  • 개념: IPsec 통신을 개시하기 전에, 양단 간에 인증, 암호화 알고리즘, 해시 알고리즘 등을 동적으로 협상하고 세션 키(Key)를 안전하게 교환하여 SA(Security Association)를 설립하는 프레임워크 (RFC 2409, 7296). UDP 500번 포트 사용.

  • 필요성: 나(서울 방화벽)와 너(부산 방화벽)가 암호화 통신(ESP)을 하려면 똑같은 암호 키(열쇠)를 가져야 한다. 예전엔 관리자가 서울 가서 키 치고, 부산 가서 키 치는 수동 작업을 했다(Manual Key). 장비가 100대가 되면? 키가 유출되면? 수동으로는 절대 관리가 안 된다. "컴퓨터 지들끼리 알아서 만나서 협상하고, 주기적으로 1시간마다 새로운 해킹 불가 열쇠(디피-헬만 알고리즘)로 자동 교체하게 만들자!" 이것이 IKE의 존재 이유다.

  • 💡 비유: IKE는 국가 정상회담의 **"사전 실무진 조율 회의"**와 같습니다.

    • 대통령(실제 데이터, ESP)이 만나서 회의를 하기 전에, 실무진(IKE)이 먼저 만나 "통역사는 누구로 할지, 경호원은 몇 명 배치할지, 비밀번호는 뭘 쓸지" 룰을 다 정합니다.
    • 합의가 다 끝나서 최종 싸인된 합의문이 바로 **SA(보안 연관)**입니다.
    • 합의문(SA)이 찢어지거나 유효기간(Lifetime)이 다 지나면 통신은 즉각 끊어집니다.

📢 섹션 요약 비유: ESP가 적진을 돌파하는 "방탄 트럭"이라면, IKE와 SA는 그 트럭이 출발하기 전에 정비공과 군인들이 모여 **"차문 비밀번호는 뭐로 하고, 타이어는 방탄으로 끼울지 합의하고 서류에 싸인하는 엄격한 출정 준비 과정"**입니다.


Ⅱ. IKE의 Phase 1과 Phase 2 (Deep Dive)

VPN 트러블슈팅의 99%는 이 IKE 협상 단계에서 터진다. 왜 굳이 두 번이나 협상할까? "진짜 중요한 회의를 하려면, 그 회의실부터 도청이 안 되게 막아야 하기 때문"이다.

1. Phase 1 (메인 모드 / 어그레시브 모드) - 텐트 치기

  • 목표: 앞으로 진행할 Phase 2 협상 내용(진짜 열쇠 교환)을 해커가 훔쳐보지 못하도록, 양쪽 방화벽끼리 안전한 보안 텐트(ISAKMP SA)를 하나 치는 것이다.
  • 협상 항목:
    • 서로 내가 진짜 서울 방화벽이 맞다는 신분증 검사 (Pre-Shared Key 방식이나 인증서 방식).
    • 텐트를 칠 때 쓸 암호화(DES, AES), 해시(MD5, SHA) 방식 합의.
  • 결과물: 해커가 절대 도청할 수 없는 튼튼한 1차 보안 채널(ISAKMP SA)이 하나 뚫린다. (이 터널 뚫는 데 쓰는 게 디피-헬만(Diffie-Hellman) 키 교환 마법이다).

2. Phase 2 (퀵 모드) - 진짜 데이터용 룰 정하기

  • 목표: Phase 1에서 쳐둔 안전한 텐트 안에서, 실제 직원들의 데이터(IPsec ESP)를 어떻게 암호화해서 날려 보낼지 진짜 룰(IPsec SA)을 합의하는 것이다.
  • 협상 항목:
    • "직원 데이터는 AES-256으로 암호화하자."
    • "보호해야 할 사내망 대역은 192.168.10.x 대역이다. (Proxy ID)"
  • 결과물: 실제로 패킷이 날아다닐 2개의 단방향 터널(가는 터널 1개, 오는 터널 1개)이 완성된다. 드디어 핑(Ping)이 나간다!
 ┌─────────────────────────────────────────────────────────────┐
 │                IPsec IKE 협상 (Phase 1 & 2) 2중 터널 도식       │
 ├─────────────────────────────────────────────────────────────┤
 │                                                             │
 │   [ 서울 방화벽 ] ══════════════════════════════▶ [ 부산 방화벽 ] │
 │                                                             │
 │   ================== [ Phase 1 보안 텐트 (ISAKMP SA) ] =========== │
 │   ║                                                         ┃ │
 │   ║  ───────── [ Phase 2 (서울->부산 IPsec SA 터널) ] ──────▶  ┃ │
 │   ║  ◀───────── [ Phase 2 (부산->서울 IPsec SA 터널) ] ──────  ┃ │
 │   ║                                                         ┃ │
 │   =========================================================== │
 │                                                             │
 │   * 만약 Phase 1 텐트가 안 쳐지면? -> Phase 2는 시작조차 못 하고 터짐. │
 │   * T/S: "IKE 1단계 실패? 비번(PSK) 틀렸네! 2단계 실패? 서브넷 틀렸네!"│
 └─────────────────────────────────────────────────────────────┘

3. 실무에서의 트러블슈팅 (왜 VPN이 안 뚫릴까?)

방화벽 엔지니어의 숙명이다. IKE 협상이 깨지는 3대 원인은 다음과 같다.

  1. Pre-Shared Key(비밀번호) 오타: 서울은 Cisco123인데 부산은 cisco123으로 쳤다. (Phase 1 실패).
  2. 제안서(Proposal) 불일치: 서울은 최신 암호 AES-256을 던졌는데, 낡은 부산 장비는 DES밖에 모른다. 합의 결렬. (Phase 1/2 실패).
  3. Proxy ID 불일치: 서울은 "우리 10.x 망이랑 저쪽 20.x 망 통신하자"고 했는데, 부산은 "어? 난 30.x 망이랑 통신할 건데?" 라며 보호할 대상이 다를 때 결렬. (Phase 2 실패).

📢 섹션 요약 비유: IKE 협상은 두 마피아 보스가 거래할 때, 1단계로 부하들을 보내 비밀번호를 대고 **안전한 밀실(Phase 1)**을 확보한 뒤, 2단계로 보스들이 그 밀실 안에서 만나 **진짜 무기 거래 조건(Phase 2)**을 도장 찍는 고도로 치밀한 이중 보안 프로세스입니다.