본문으로 건너뛰기

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
ESPIP 페이로드 암호화. 인증 선택 시 페이로드만 인증 (IP 헤더 제외)전체 내부 IP 패킷 암호화. 인증 선택 시 내부 패킷 전체 인증
AHIP 페이로드 + 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 트래픽 처리

송신 패킷:

  1. SPD 검색 → 일치 항목 없음: 폐기
  2. DISCARD: 폐기 / BYPASS: 그대로 전송
  3. PROTECT: SAD 검색 → SA 없으면 IKE로 SA 생성 → ESP/AH 처리 후 전송

수신 패킷:

  1. 패킷 유형 판별 (일반 IP vs IPsec)
  2. 일반 IP: SPD 검색 → BYPASS이면 상위 계층으로 전달, 아니면 폐기
  3. IPsec 패킷: SAD 검색 → SA 없으면 폐기, 있으면 ESP/AH 처리 후 상위 계층으로 전달

20.3 ESP (Encapsulating Security Payload)

기밀성, 데이터 출처 인증, 비연결 무결성, 재전송 방지, 제한적 트래픽 흐름 기밀성을 제공한다. GCM 등 인증 암호화 알고리즘과 함께 사용 가능.

ESP 형식

필드크기설명
SPI32비트SA 식별
시퀀스 번호32비트단조 증가 카운터 (재전송 방지)
페이로드 데이터가변전송 모드: 상위 계층 세그먼트 / 터널 모드: 전체 IP 패킷
IV가변 (선택)암호화 알고리즘이 요구 시
TFC 패딩가변 (선택)터널 모드에서 트래픽 흐름 기밀성용
패딩0~255바이트블록 크기 정렬, 32비트 정렬, 길이 분석 방지
패드 길이8비트패딩 바이트 수
다음 헤더8비트페이로드 내 첫 번째 헤더 유형 (TCP, UDP 등)
ICV가변무결성 검사값 (인증 선택 시)

암호화 범위: 페이로드 데이터 + 패딩 + 패드 길이 + 다음 헤더

인증(ICV) 범위: SPI + 시퀀스 번호 + 암호문 (= ESP 헤더 + 암호화된 부분)

암호화 후 인증 (Encrypt-then-MAC)

ICV는 암호화 후에 계산된다. 이는 복호화 전에 재전송/위조 패킷을 빠르게 탐지·폐기할 수 있게 하여 DoS 공격의 영향을 줄인다. 또한 복호화와 무결성 검사의 병렬 처리가 가능하다.

재전송 방지 서비스

송신: SA 생성 시 시퀀스 카운터를 0으로 초기화, 패킷마다 증가. 23212^{32} - 1에 도달하면 SA를 종료하고 새 SA를 협상해야 한다.

수신: 윈도우 크기 WW (기본 64)의 슬라이딩 윈도우 사용:

  1. 윈도우 내부의 새 패킷 → MAC 검증 후 슬롯 표시
  2. 윈도우 오른쪽의 새 패킷 → MAC 검증 후 윈도우를 이동하고 슬롯 표시
  3. 윈도우 왼쪽 또는 인증 실패 → 폐기 (감사 이벤트)

전송 모드 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요구사항

  1. 특정 당사자에 의존 (위조 주소로 대량 요청 방지)
  2. 발급자만 생성·검증 가능 (저장 불필요)
  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{...} 표기

SK{...}는 IKE SA의 키로 암호화 + MAC 보호됨을 의미한다. IKE_SA_INIT에서 수립된 보안 채널 위에서 동작한다.

(b) CREATE_CHILD_SA 교환: 추가 SA 생성

(c) INFORMATIONAL 교환: 관리 정보, 오류 메시지, 알림 교환


20.6 암호 스위트

VPN 스위트 (RFC 4308)

VPN-AVPN-B
ESP 암호화3DES-CBCAES-128-CBC
ESP 무결성HMAC-SHA1-96AES-XCBC-MAC-96
IKE 암호화3DES-CBCAES-128-CBC
IKE PRFHMAC-SHA1AES-XCBC-PRF-128
IKE 무결성HMAC-SHA1-96AES-XCBC-MAC-96
IKE DH 그룹1024비트 MODP2048비트 MODP

NSA Suite B 스위트 (RFC 6379)

GCM-128GCM-256GMAC-128GMAC-256
ESP 암호화/무결성AES-GCM-128AES-GCM-256NullNull
ESP 무결성NullNullAES-GMAC-128AES-GMAC-256
IKE 암호화AES-CBC-128AES-CBC-256AES-CBC-128AES-CBC-256
IKE PRFHMAC-SHA-256HMAC-SHA-384HMAC-SHA-256HMAC-SHA-384
IKE DH 그룹256비트 ECP384비트 ECP256비트 ECP384비트 ECP
Suite B의 특징
  • 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