IPSec

IT위키

개요

  • 보안에 취약한 구조를 가진 IP의 보안을 위하여 국제 인터넷 기술 위원회(IETF)에서 설계한 표준(RFC2401)
  • IPv4에선 보안이 필요한 경우에만 선택적으로 사용하였지만 IPv6부턴 기본 스펙에 포함됨

SA(Security Association)

IPSec을 사용하는 두 Peer간의 협약
  • 주요 요소
    • Sequence Number Counter : 패킷의 일련번호 카운터
    • Anti-Replay Window : 재전송 공격을 방어하기 위한 윈도우 값
    • AH/ESP : 프로토콜 정보
    • Lifetime : 세션 만료기간
    • Mode : 동작모드(전송/터널)
    • Path MTU : 경로의 MTU 값

SP(Security Policy)

일종의 패킷 필터링 정책
  • Incoming Traffic과 Outgoing Traffic으로 구분하여 정책을 지정한다.
  • IP Packet의 허용/우회(Bypass), 폐기(Discard), 보호(Protection) 등을 지원한다.
  • 주요 요소
    • Source/Destination IP Address
    • Source/Destination Port
    • Name : DNS 식별자, X500 이름 등의 식별자를 적는다.
    • Transport Layer Protocol : TCP 또는 UDP

2+1 프로토콜

AH(Authentication Header)

AH (Authentication Header)는 IP Extension Header로서 IP Packet에 대한 인증을 제공한다.
  • 메세지 인증 코드(MAC)를 이용하며 무결성(Data Integrity)과 인증(Authentication) 기능 제공
  • 암호화는 제공되지 않음
  • 구성
    • Next Header(8bit) : Payload의 Data Type 으로 TCP는 6, UDP는 17
    • Payload Length(8bit) : Payload의 length
    • SPI(Security Parameters Index) : SA를 구분하기 위한 Index 값
    • Authentication Data : SHA, Keyed MD5, HMAC-MD5-96, HMAC-SHA-1-96등의 인증 정보

ESP(Encapsulating Security Payload)

새로운 데이터 IP Packet을 만들고 기존 IP Packet을 Data Payload에 넣어 감싸는 방식
  • AH가 가진 무결성과, 인증도 제공하고 추가적으로 대칭키 암호화를 통해 기밀성(Confidentiality) 제공
  • 구성
    • SPI(Security Parameters Index) : SA를 구분하기 위한 Index 값
    • IV(Initialization Vector) : CBC Encryption에 사용되는 초기 벡터
    • Padding : Payload Data 와 Authentication Data를 구분하기 위한 패딩
    • Pad Length : Padding의 Length
    • Next Header(8bit) : Payload의 Data Type 으로 TCP는 6, UDP는 17
    • Authentication Data : authentication value. AH와는 달리 authentication service가 선택되었을 경우에만 존재한다.

IKE(Internet key Exchange)

IKE 문서 보기
  • IPSec에서 키 교환에 사용되는 프로토콜
  • UDP 500 포트를 사용한다.
  • 종류
    • Manual Key Exchange : 관리자가 수동으로 각 종단에 키를 설치해둠
    • Simple Key Interchange : Sun Microsystems에서 제안. 표준으로 채택되지 않아 많이 사용하지 않음. 쉬운 구현이 장점.
    • Internet Security Association : 표준 채택

2가지 동작 모드

전송 모드(Transport Mode)

  • 보호 범위
    • IP 패킷 전체를 보호하는 것이 아니라 IP 헤더를 제외한 IP 패킷의 페이로드(Payload)만을 보호
    • IP 헤더는 암호화하지 않으므로 트래픽 경로는 노출된다.
  • 보호 구간
    • 일반적으로 종단 노드(End Node) 구간의 IP 패킷 보호를 위해 사용한다.

AH의 경우

Original IP Header AH Original Payload
  • 기존 IP Header는 그대로 있고 기존 Payload 앞에 AH가 붙어서 새로운 Payload가 된다.

ESP의 경우

Original IP Header ESP Header Original Payload(암호화) ESP Trailer ESP Authentication
  • 기존 IP Header는 그대로 있고 기존 Payload를 ESP로 감싼 것이 새로운 Payload가 된다.
  • Original Payload는 암호화된 상태이다.
  • Original Payload, ESP Trailer 에 대한 인증정보가 ESP Authentication에 들어간다.

터널 모드(Tunneling Mode)

  • 보호 범위
    • IP 패킷 전체를 보호하는 모드로 패킷 전체를 보호한다.
    • 암호화된 패킷에 IP 패킷에 IPSec 헤더를 추가하여 라우팅을 수행한다.
    • IPSec 헤더는 구간 간 이동에 대한 정보만 있으므로 종단 정보(출발지, 목적지)와 트래픽 경로는 보호된다.
  • 보호 구간
    • 일반적으로 터널/보안 게이트웨이 구간 또는 종단 노드와 터널/보안 게이트웨이 구간의 IP 패킷 보호를 위해 사용한다.

AH의 경우

New IP Header AH Original IP Header Original Payload
  • IP Header가 새로 생성되고 기존 IP Packet전체가 Payload가 된다.

ESP의 경우

New IP Header ESP Header Original IP Header(암호화) Original Payload(암호화) ESP Trailer ESP Authentication
  • IP Header가 새로 생성되고 기존 IP Packet전체를 암호화하여 ESP로 감싼 것이 새로운 Payload가 된다.
  • Original IP Header와 Original Payload 는 암호화된 상태이다.
  • Original IP Header, Original Payload, ESP Trailer 에 대한 인증정보가 ESP Authentication에 들어간다.

보안성

  • 기밀성
    • 메시지가 도청되어도 암호화되어 있어서 내용을 알 수 없다.
    • 단, ESP 프로토콜을 사용했을 경우에 한한다.
  • 비연결형 무결성 : 메시지 인증 코드를 이용해 패킷별로 무결성을 검증한다.
  • 데이터 인증 : 메시지 인증 코드를 이용해 올바른 송신자로부터 온 것임을 검증한다.
  • 재전송 공격 방지 : SA별로 일련번호를 유지하여 재전송 공격을 방지한다.
  • 접근 제어 : SP를 이용한 접근제어 정책을 설정할 수 있다.
  • 제한된 트래픽 기밀성
    • 터널링 모드일땐 원본 IP패킷 전체를 암호화하여 출발지 목적지의 기밀성을 유지할 수 있다.
    • 단 새로운 IP 헤더를 통해 게이트웨이 구간 정보는 노출된다.
    • 전송 모드 사용 시 데이터만 암호화되며 트래픽 흐름 기밀성은 제공되지 않는다.