20장. IP 보안 (IPsec)
학습 목표
- IPsec의 개요와 이점을 제시한다.
- 전송 모드와 터널 모드의 차이를 설명한다.
- 보안 연관(SA)의 개념과 SAD/SPD의 차이를 이해한다.
- 송·수신 패킷에 대한 IPsec 처리 흐름을 요약한다.
- ESP(Encapsulating Security Payload)의 개요를 제시한다.
- SA 결합 방법과 IKEv2의 개요를 제시한다.
20.1 IPsec 개요
IP 수준에서 보안을 구현하면 보안 메커니즘이 없는 애플리케이션을 포함한 모든 분산 애플리케이션에 보안을 제공할 수 있다. IPv4와 IPv6 모두에서 사용 가능하다.
IPsec 응용
- 인터넷을 통한 지사 간 보안 연결: VPN으로 전용선 대체
- 인터넷을 통한 원격 접근: 출장자/재택 근무자의 안전한 접속
- 파트너와의 엑스트라넷/인트라넷: 인증·기밀성·키 교환
- 전자상거래 보안 강화: 앱 계층 보안에 추가적 보안 계층
IPsec의 이점
- 방화벽/라우터에 구현 시 경계를 넘는 모든 트래픽에 강력한 보안 적용
- 전송 계층 아래에서 동작 → 애플리케이션에 투명
- 최종 사용자에게 투명 → 교육·키 관리 부담 없음
- 필요 시 개별 사용자에게도 보안 제공 가능
IPsec 문서 구조
| 범주 | 설명 | 핵심 RFC |
|---|---|---|
| 아키텍처 | 개념, 요구사항, 메커니즘 | RFC 4301 |
| AH | 메시지 인증용 확장 헤더 (현재 사용 비권장) | RFC 4302 |
| ESP | 암호화 + 인증 캡슐화 | RFC 4303 |
| IKE | 키 관리·SA 협상 | RFC 7296 (IKEv2) |
| 암호 알고리즘 | 암호화, MAC, PRF, 키 교환 | 다수 RFC |
IPsec 서비스
접근 제어, 비연결 무결성, 데이터 출처 인증, 재전송 패킷 거부, 기밀성(암호화), 제한적 트래픽 흐름 기밀성.
전송 모드 vs 터널 모드
| 구분 | 전송 모드 | 터널 모드 |
|---|---|---|
| 보호 범위 | IP 페이로드(상위 계층 세그먼트) | 전체 원본 IP 패킷 |
| IP 헤더 | 원본 헤더 유지 (보호 안 됨) | 새 외부 IP 헤더 추가. 원본 헤더는 암호화됨 |
| 사용 시나리오 | 호스트 간 종단 통신 | 게이트웨이(방화벽/라우터) 간 VPN, 또는 호스트-게이트웨이 |
| 트래픽 분석 | 가능 (원본 헤더 노출) | 차단 (원본 주소 은닉) |
| 전송 모드 SA | 터널 모드 SA | |
|---|---|---|
| ESP | IP 페이로드 암호화. 인증 선택 시 페이로드만 인증 (IP 헤더 제외) | 전체 내부 IP 패킷 암호화. 인증 선택 시 내부 패킷 전체 인증 |
| AH | IP 페이로드 + IP 헤더 일부 인증 | 내부 IP 패킷 전체 + 외부 IP 헤더 일부 인증 |
20.2 IPsec 정책
보안 연관 (Security Association, SA)
단방향 논리 연결. 쌍방향 보안 교환에는 2개의 SA가 필요하다.
SA를 고유하게 식별하는 3요소:
| 파라미터 | 설명 |
|---|---|
| SPI (Security Parameters Index) | 32비트 부호 없는 정수. 수신 시스템이 SA를 선택하는 데 사용 |
| 목적지 IP 주소 | SA의 종단점 (호스트 또는 게이트웨이) |
| 보안 프로토콜 식별자 | AH 또는 ESP |
SAD (Security Association Database)
각 SA에 대한 파라미터를 정의:
SPI, 시퀀스 번호 카운터, 시퀀스 카운터 오버플로 플래그, 재전송 방지 윈도우, AH 정보(인증 알고리즘·키·수명), ESP 정보(암호화+인증 알고리즘·키·IV·수명), SA 수명(시간/바이트), IPsec 프로토콜 모드(전송/터널/와일드카드), 경로 MTU.
SPD (Security Policy Database)
IP 트래픽을 특정 SA(또는 SA 미적용)에 매핑한다. 각 SPD 항목은 셀렉터로 정의:
- 원격/로컬 IP 주소
- 다음 계층 프로토콜
- 이름 (사용자 ID)
- 로컬/원격 포트
SPD 정책 3가지: DISCARD (폐기), BYPASS (IPsec 미적용 통과), PROTECT (IPsec 적용)
IP 트래픽 처리
송신 패킷:
- SPD 검색 → 일치 항목 없음: 폐기
- DISCARD: 폐기 / BYPASS: 그대로 전송
- PROTECT: SAD 검색 → SA 없으면 IKE로 SA 생성 → ESP/AH 처리 후 전송
수신 패킷:
- 패킷 유형 판별 (일반 IP vs IPsec)
- 일반 IP: SPD 검색 → BYPASS이면 상위 계층으로 전달, 아니면 폐기
- IPsec 패킷: SAD 검색 → SA 없으면 폐기, 있으면 ESP/AH 처리 후 상위 계층으로 전달
20.3 ESP (Encapsulating Security Payload)
기밀성, 데이터 출처 인증, 비연결 무결성, 재전송 방지, 제한적 트래픽 흐름 기밀성을 제공한다. GCM 등 인증 암호화 알고리즘과 함께 사용 가능.
ESP 형식
| 필드 | 크기 | 설명 |
|---|---|---|
| SPI | 32비트 | SA 식별 |
| 시퀀스 번호 | 32비트 | 단조 증가 카운터 (재전송 방지) |
| 페이로드 데이터 | 가변 | 전송 모드: 상위 계층 세그먼트 / 터널 모드: 전체 IP 패킷 |
| IV | 가변 (선택) | 암호화 알고리즘이 요구 시 |
| TFC 패딩 | 가변 (선택) | 터널 모드에서 트래픽 흐름 기밀성용 |
| 패딩 | 0~255바이트 | 블록 크기 정렬, 32비트 정렬, 길이 분석 방지 |
| 패드 길이 | 8비트 | 패딩 바이트 수 |
| 다음 헤더 | 8비트 | 페이로드 내 첫 번째 헤더 유형 (TCP, UDP 등) |
| ICV | 가변 | 무결성 검사값 (인증 선택 시) |
암호화 범위: 페이로드 데이터 + 패딩 + 패드 길이 + 다음 헤더
인증(ICV) 범위: SPI + 시퀀스 번호 + 암호문 (= ESP 헤더 + 암호화된 부분)
ICV는 암호화 후에 계산된다. 이는 복호화 전에 재전송/위조 패킷을 빠르게 탐지·폐기할 수 있게 하여 DoS 공격의 영향을 줄인다. 또한 복호화와 무결성 검사의 병렬 처리가 가능하다.
재전송 방지 서비스
송신: SA 생성 시 시퀀스 카운터를 0으로 초기화, 패킷마다 증가. 에 도달하면 SA를 종료하고 새 SA를 협상해야 한다.
수신: 윈도우 크기 (기본 64)의 슬라이딩 윈도우 사용:
- 윈도우 내부의 새 패킷 → MAC 검증 후 슬롯 표시
- 윈도우 오른쪽의 새 패킷 → MAC 검증 후 윈도우를 이동하고 슬롯 표시
- 윈도우 왼쪽 또는 인증 실패 → 폐기 (감사 이벤트)
전송 모드 ESP vs 터널 모드 ESP
전송 모드: ESP 헤더가 IP 헤더 바로 뒤(전송 계층 헤더 앞)에 삽입. 전송 계층 세그먼트 + ESP 트레일러가 암호화됨. IP 헤더는 노출.
터널 모드: 원본 IP 패킷 전체가 암호화되고, 새 외부 IP 헤더로 캡슐화. 중간 라우터는 외부 헤더만 처리 → 원본 출발/도착 주소가 은닉되어 트래픽 분석 차단.
내부 네트워크의 호스트는 IPsec을 구현할 필요 없이, **보안 게이트웨이(방화벽/라우터)**에서 암호화·인증을 수행한다. 키 분배 대상이 줄어들고, 호스트의 처리 부담이 감소한다.
20.4 SA 결합
단일 SA는 AH 또는 ESP 하나만 구현. 두 서비스를 모두 사용하거나 호스트-게이트웨이 간 별도 보안이 필요하면 SA 번들을 구성한다.
결합 방식
| 방식 | 설명 |
|---|---|
| 전송 인접 (Transport Adjacency) | 동일 IP 패킷에 여러 보안 프로토콜을 터널링 없이 적용. 단일 수준 결합만 가능 |
| 반복 터널링 (Iterated Tunneling) | 다중 IP 터널링을 통해 여러 보안 계층 적용. 각 터널이 다른 IPsec 지점에서 시작/종료 가능 |
인증 + 기밀성 결합 방법
| 방법 | 순서 | 특징 |
|---|---|---|
| ESP 인증 옵션 | 암호화 → 인증 | 단일 SA. 인증은 암호문에 적용 |
| 전송 인접 | 내부 ESP(암호화만) + 외부 AH(인증) | 2개 SA. 인증이 IP 헤더까지 포함 → 범위가 더 넓음 |
| 전송-터널 번들 | 내부 AH(인증) + 외부 ESP 터널(암호화) | 인증이 평문에 적용 → 암호화로 인증 데이터 보호. 복호화 없이 인증 정보 저장 가능 |
4가지 기본 SA 결합 시나리오
| 사례 | 구성 | 설명 |
|---|---|---|
| Case 1 | 호스트* ↔ 호스트* | 종단 간 IPsec. 전송/터널 모드 모두 가능 |
| Case 2 | 게이트웨이* ↔ 게이트웨이* | 단순 VPN. 터널 모드 단일 SA |
| Case 3 | 호스트* ↔ 게이트웨이* + 게이트웨이* ↔ 호스트* | Case 1 + Case 2 결합. 게이트웨이 간 터널 + 호스트 간 종단 보안 |
| Case 4 | 원격 호스트* ↔ 게이트웨이* + 내부 호스트* | 원격 접근. 원격 호스트-방화벽 간 터널 + 선택적 호스트 간 SA |
(* = IPsec 구현)
20.5 IKE (Internet Key Exchange)
IPsec의 키 관리·SA 협상 프로토콜. Diffie-Hellman 키 교환을 기반으로 하되, 그 약점을 보완한다.
DH의 약점과 IKE의 대응
| DH 약점 | IKE 대응 |
|---|---|
| 당사자 신원 정보 없음 | 인증 (전자서명, 공개키 암호, 대칭키 암호) |
| 중간자 공격 취약 | DH 교환을 인증 |
| 클로깅 공격 (위조 공개키로 계산 부하 유발) | 쿠키 교환 — 위조 출처에서는 응답을 받지 못함 |
| 재전송 공격 | 논스 사용 |
IKE 쿠키 3요구사항
- 특정 당사자에 의존 (위조 주소로 대량 요청 방지)
- 발급자만 생성·검증 가능 (저장 불필요)
- 생성·검증이 빠름
권장 구현: MD5(출발 IP, 도착 IP, 출발 포트, 도착 포트, 로컬 비밀값)
IKEv2 교환
(a) 초기 교환 (Initial Exchanges) — 4 메시지:
| 교환 | 메시지 | 내용 |
|---|---|---|
| IKE_SA_INIT | 요청 | HDR, SAi1, KEi, Ni (암호 알고리즘 제안, DH 공개값, 논스) |
| 응답 | HDR, SAr1, KEr, Nr, [CERTREQ] | |
| IKE_AUTH | 요청 | HDR, SK{IDi, [CERT], [CERTREQ], [IDr], AUTH, SAi2, TSi, TSr} |
| 응답 | HDR, SK{IDr, [CERT], AUTH, SAr2, TSi, TSr} |
- IKE_SA_INIT: IKE SA를 수립 — 이후 모든 IKE 메시지가 암호화·인증됨
- IKE_AUTH: 상호 인증 + 첫 번째 IPsec SA 수립 (SAD에 배치)
SK{...}는 IKE SA의 키로 암호화 + MAC 보호됨을 의미한다. IKE_SA_INIT에서 수립된 보안 채널 위에서 동작한다.
(b) CREATE_CHILD_SA 교환: 추가 SA 생성
(c) INFORMATIONAL 교환: 관리 정보, 오류 메시지, 알림 교환
20.6 암호 스위트
VPN 스위트 (RFC 4308)
| VPN-A | VPN-B | |
|---|---|---|
| ESP 암호화 | 3DES-CBC | AES-128-CBC |
| ESP 무결성 | HMAC-SHA1-96 | AES-XCBC-MAC-96 |
| IKE 암호화 | 3DES-CBC | AES-128-CBC |
| IKE PRF | HMAC-SHA1 | AES-XCBC-PRF-128 |
| IKE 무결성 | HMAC-SHA1-96 | AES-XCBC-MAC-96 |
| IKE DH 그룹 | 1024비트 MODP | 2048비트 MODP |
NSA Suite B 스위트 (RFC 6379)
| GCM-128 | GCM-256 | GMAC-128 | GMAC-256 | |
|---|---|---|---|---|
| ESP 암호화/무결성 | AES-GCM-128 | AES-GCM-256 | Null | Null |
| ESP 무결성 | Null | Null | AES-GMAC-128 | AES-GMAC-256 |
| IKE 암호화 | AES-CBC-128 | AES-CBC-256 | AES-CBC-128 | AES-CBC-256 |
| IKE PRF | HMAC-SHA-256 | HMAC-SHA-384 | HMAC-SHA-256 | HMAC-SHA-384 |
| IKE DH 그룹 | 256비트 ECP | 384비트 ECP | 256비트 ECP | 384비트 ECP |
- ESP에 **인증 암호화(GCM)**를 사용하여 단일 알고리즘으로 기밀성+무결성 동시 제공
- DH에 **타원곡선 그룹(ECP)**을 사용하여 RSA보다 짧은 키로 동등/상위 보안 달성
- 인증에 ECDSA 사용
주요 용어
| 한글 | 영문 |
|---|---|
| 재전송 방지 서비스 | anti-replay service |
| 인증 헤더 | Authentication Header (AH) |
| 캡슐화 보안 페이로드 | Encapsulating Security Payload (ESP) |
| 인터넷 키 교환 | Internet Key Exchange (IKE) |
| IP 보안 | IPsec |
| 보안 연관 | security association (SA) |
| 보안 연관 데이터베이스 | Security Association Database (SAD) |
| 보안 정책 데이터베이스 | Security Policy Database (SPD) |
| 보안 파라미터 인덱스 | Security Parameters Index (SPI) |
| 전송 모드 | transport mode |
| 터널 모드 | tunnel mode |