IPSec

From CS Wiki

개요

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

보안성

특징 설명 적용기술
기밀성 암호화된 트래픽을 통해 데이터 노출 방지
  • ESP프로토콜
  • 대칭키 암호화
비연결형 무결성 메시지가 위변조되지 않았음을 보장 AH의

메시지 인증 코드(MAC)

데이터 원천 인증 정상 사용자로부터 송신된 데이터임을 보장 AH의

메시지 인증 코드(MAC)

재전송 공격 방지 순서 번호를 유지하여 재전송 공격 방지 보안 연관(Security Association)의

순서 번호(Sequence Number)

접근제어 패킷의 허용, 폐기 보호 등 적용 보안 정책(Security Policy)
제한된 트래픽 흐름의 기밀성 패킷의 출발지와 목적지에 대한 정보를 제한적으로 암호화 ESP프로토콜/터널 모드

아키텍처

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에 들어간다.