IKE를 이용한 터널 생성 과정은 두 단계로 나뉜다. 바로 IKE Phase 1 (ISAKMP SA) 와 IKE Phase 2 (IPSec SA) 인데, 이 두 단계가 각각 어떤 역할을 하는지 살펴본다.
IKE Phase 1 (ISAKMP SA)
Phase 1에서는 Phase 2 SA를 안전하게 교환할 수 있도록 터널을 먼저 생성하고 상대방을 인증한다. 크게 세 가지 과정으로 진행된다:
- 1. ISAKMP SA 제안 및 협의
- 2. 인증 정보 교환을 통한 상대방 VPN 인증
- 3. 인증 정보 암호화 및 Phase 2에서 사용할 암호화 키 생성
Phase 1의 목표는 ISAKMP SA를 협상해서 안전한 터널을 만드는 것이다. 여기서 ‘안전한 터널’이라는 건, Phase 2에서 사용하는 암호화 알고리즘과 대칭키를 안전하게 교환할 수 있는 공간을 뜻한다. 이 과정에서 대칭키를 생성하고, 상대방 VPN을 인증하며, 이 인증 정보를 대칭키로 암호화한다.
또한 Phase 1에는 Main Mode와 Aggressive Mode라는 두 가지 모드가 존재한다. Main Mode는 6개의 패킷을 주고받아야 하지만 보안이 높고, Aggressive Mode는 3개의 패킷으로 빠르게 협상이 이루어지지만 보안이 낮다. Phase 1에서 협의되는 ISAKMP SA 요소는 아래와 같다.
- Hash: 인증 정보가 변질되지 않았음을 증명하기 위한 해시 알고리즘 (MD5, SHA)
- Authentication: 상대방 VPN을 인증하기 위한 방법 (Pre-shared Key, RSA Encryption, RSA Signature)
- DH Group: 암호화 키를 생성하는 알고리즘 (DH Group 1, DH Group 2, DH Group 5)
- Lifetime: Phase 1 터널이 유지되는 시간 (보통 86400초)
- Encryption: 암호화 알고리즘 (AES, DES, 3DES)
IKE Phase 1 교환 과정
- SA 협의: 한쪽 VPN이 ISAKMP 세트를 제안하면 상대방이 사용 가능한 ISAKMP 세트 중 일치하는 것을 확인하고 답변을 보낸다.
- 키 재료 교환: Diffie-Hellman(DH) 키 교환 알고리즘을 사용해서 VPN 간 공통 대칭키를 생성한다.
- 인증 정보 암호화: 생성된 대칭키를 이용해 인증 정보를 암호화하고 서로에게 전송해서 인증을 마친다.
이 과정을 통해 두 VPN은 서로 인증하고, Phase 2에서 사용할 대칭키를 준비한다. 이로써 Phase 1 터널이 생성된 것이다.
IKE Phase 2 (IPSec SA)
Phase 2는 Phase 1에서 만들어진 안전한 터널을 이용해 패킷을 암호화/인증할 SA를 협의하고, 실제 패킷을 전송할 터널을 생성하는 과정이다. 목표는 두 가지로 요약할 수 있다:
- 1. IPSec SA 제안 및 협의
- 2. 패킷을 암호화할 암호화 키 생성 및 인증
Phase 2에서는 VPN 간 패킷이 오갈 수 있는 터널을 만들기 위해, Phase 1에서 생성한 대칭키에 추가적인 키 재료(Nonce)를 교환해 새로운 대칭키를 생성한다. Nonce는 재전송 공격을 방지하는 용도로도 사용된다. 이 과정에서는 다음과 같은 사항을 협의한다.
- IPSec Protocol: 패킷 인증/암호화를 위한 프로토콜 (AH / ESP)
- Encapsulation Mode: 터널의 운용 모드 (Transport / Tunnel)
- Encryption: 암호화 알고리즘 (AES, DES, 3DES)
- Authentication: 패킷 인증 해시 알고리즘 (MD5, SHA)
- Lifetime: Phase 2 터널의 유지 시간 (Phase 1보다 낮음, 보통 86400초 이하)
- Perfect Forward Secrecy(PFS): 키를 주기적으로 교환하도록 강제 (옵션)
IKE Phase 2 교환 과정
- 한쪽 VPN이 먼저 IPSec 세트를 제안하면 상대방이 확인 후 답변을 보낸다. 여기엔 IPSec 프로토콜, 암호화 알고리즘, 인증 방식, PFS 등이 포함된다.
- 각 VPN이 Nonce를 교환해서 Phase 1 대칭키를 기반으로 새로운 대칭키를 생성한다. 이 키는 패킷을 암호화하는 데 사용된다.
이제 두 VPN 간에 암호화된 패킷이 안전하게 전송될 수 있는 터널이 완성된 것이다. Phase 1 터널과 Phase 2 터널의 Lifetime은 보안 유지를 위해 일정 주기로 새롭게 생성된다. Phase 1 터널을 기반으로 Phase 2의 터널이 생성되므로, Phase 1과 Phase 2 모두 유효 시간을 갖는 것이다. PFS는 Phase 1 대칭키와 무관하게 새로운 대칭키를 생성해 키의 보안을 강화해준다.
다음엔 이 터널을 통해 VPN이 패킷을 전달하는 방식, 특히 IP 헤더의 변화를 중심으로 설명할 예정이다.