IPSec: Difference between revisions

From CS Wiki
No edit summary
 
(8 intermediate revisions by 5 users not shown)
Line 1: Line 1:
==개요==
=개요=
* 보안에 취약한 구조를 가진 IP의 보안을 위하여 국제 인터넷 기술 위원회(IETF)에서 설계한 표준(RFC2401)
* IPv4에선 보안이 필요한 경우에만 선택적으로 사용하였지만 IPv6부턴 기본 스펙에 포함됨


== 보안성 ==
*보안에 취약한 구조를 가진 IP의 보안을 위하여 국제 인터넷 기술 위원회(IETF)에서 설계한 표준(RFC2401)
*IPv4에선 보안이 필요한 경우에만 선택적으로 사용하였지만 IPv6부턴 기본 스펙에 포함됨
 
==보안성==
{| class="wikitable"
{| class="wikitable"
! 특징
!특징
! 설명
!설명
! 적용기술
!적용기술
|-
|-
| 기밀성
|기밀성
| 암호화된 트래픽을 통해 데이터 노출 방지
|암호화된 트래픽을 통해 데이터 노출 방지
| * ESP프로토콜
|
* 대칭키 암호화
*ESP프로토콜
*대칭키 암호화
|-
|-
| 비연결형 무결성
|비연결형 무결성
| 메시지가 위변조되지 않았음을 부장
|메시지가 위변조되지 않았음을 보장
| 메시지 인증 코드(MAC)
|AH의
메시지 인증 코드(MAC)
|-
|-
| 데이터 원천 인증
|데이터 원천 인증
| 정상 사용자로부터 송신된 데이터임을 보장
|정상 사용자로부터 송신된 데이터임을 보장
| 메시지 인증 코드(MAC)
|AH의
메시지 인증 코드(MAC)
|-
|-
| 재전송 공격 방지
|재전송 공격 방지
| 순서 번호를 유지하여 재전송 공격 방지
|순서 번호를 유지하여 재전송 공격 방지
| 순서 번호(Suquence Number)
|보안 연관(Security Association)의
순서 번호(Sequence Number)
|-
|-
| 접근제어
|접근제어
| 패킷의 허용, 폐기 보호 등 적용
|패킷의 허용, 폐기 보호 등 적용
| 보안연관(Security Association)
|보안 정책(Security Policy)
|-
|-
| 제한된 트래픽 흐름의 기밀성
|제한된 트래픽 흐름의 기밀성
| 패킷의 출발지와 목적지에 대한 정보를 제한적으로 암호화
|패킷의 출발지와 목적지에 대한 정보를 제한적으로 암호화
| ESP프로토콜/터널 모드
|ESP프로토콜/터널 모드
|}
|}
=아키텍처=


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


== SP(Security Policy)==
;IPSec을 사용하는 두 Peer간의 협약
; 일종의 패킷 필터링 정책
 
* Incoming Traffic과 Outgoing Traffic으로 구분하여 정책을 지정한다.
*'''주요 요소'''
* IP Packet의 허용/우회(Bypass), 폐기(Discard), 보호(Protection) 등을 지원한다.
**Sequence Number Counter : 패킷의 일련번호 카운터
* '''주요 요소'''
**Anti-Replay Window : 재전송 공격을 방어하기 위한 윈도우 값
** Source/Destination IP Address
**AH/ESP : 프로토콜 정보
** Source/Destination Port
**Lifetime : 세션 만료 기간
** Name : DNS 식별자, X500 이름 등의 식별자를 적는다.
**Mode : 동작모드(전송/터널)
** Transport Layer Protocol : TCP 또는 UDP
**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 프로토콜==
==2+1 프로토콜==
===AH(Authentication Header)===
===AH(Authentication Header)===
;AH (Authentication Header)는 IP Extension Header로서 IP Packet에 대한 인증을 제공한다.
;AH (Authentication Header)는 IP Extension Header로서 IP Packet에 대한 인증을 제공한다.
* 메세지 인증 코드(MAC)를 이용하며 무결성(Data Integrity)과 인증(Authentication) 기능 제공
 
* 암호화는 제공되지 않음
*메세지 인증 코드(MAC)를 이용하며 무결성(Data Integrity)과 인증(Authentication) 기능 제공
* 구성
*암호화는 제공되지 않음
** Next Header(8bit) : Payload의 Data Type 으로 TCP는 6, UDP는 17
*구성
** Payload Length(8bit) : Payload의 length
**Next Header(8bit) : Payload의 Data Type 으로 TCP는 6, UDP는 17
** SPI(Security Parameters Index) : SA를 구분하기 위한 Index 값
**Payload Length(8bit) : Payload의 length
** Authentication Data : SHA, Keyed MD5, HMAC-MD5-96, HMAC-SHA-1-96등의 인증 정보
**SPI(Security Parameters Index) : SA를 구분하기 위한 Index 값
**Authentication Data : SHA, Keyed MD5, HMAC-MD5-96, HMAC-SHA-1-96등의 인증 정보


===ESP(Encapsulating Security Payload)===
===ESP(Encapsulating Security Payload)===
; 새로운 데이터 IP Packet을 만들고 기존 IP Packet을 Data Payload에 넣어 감싸는 방식
 
* AH가 가진 무결성과, 인증도 제공하고 추가적으로 대칭키 암호화를 통해 기밀성(Confidentiality) 제공
;새로운 데이터 IP Packet을 만들고 기존 IP Packet을 Data Payload에 넣어 감싸는 방식
* 구성
 
** SPI(Security Parameters Index) : SA를 구분하기 위한 Index 값
*AH가 가진 무결성과, 인증도 제공하고 추가적으로 대칭키 암호화를 통해 기밀성(Confidentiality) 제공
** IV(Initialization Vector) : CBC Encryption에 사용되는 초기 벡터
*구성
** Padding : Payload Data 와 Authentication Data를 구분하기 위한 패딩
**SPI(Security Parameters Index) : SA를 구분하기 위한 Index 값
** Pad Length : Padding의 Length
**IV(Initialization Vector) : CBC Encryption에 사용되는 초기 벡터
** Next Header(8bit) : Payload의 Data Type 으로 TCP는 6, UDP는 17
**Padding : Payload Data 와 Authentication Data를 구분하기 위한 패딩
** Authentication Data : authentication value. AH와는 달리 authentication service가 선택되었을 경우에만 존재한다.
**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(Internet key Exchange)===
;[[IKE|IKE 문서 보기]]
;[[IKE|IKE 문서 보기]]
* IPSec에서 키 교환에 사용되는 프로토콜
 
* UDP 500 포트를 사용한다.
*IPSec에서 키 교환에 사용되는 프로토콜
* 종류
*UDP 500 포트를 사용한다.
** Manual Key Exchange : 관리자가 수동으로 각 종단에 키를 설치해둠
*종류
** Simple Key Interchange : Sun Microsystems에서 제안. 표준으로 채택되지 않아 많이 사용하지 않음. 쉬운 구현이 장점.
**Manual Key Exchange : 관리자가 수동으로 각 종단에 키를 설치해둠
** Internet Security Association : 표준 채택
**Simple Key Interchange : Sun Microsystems에서 제안. 표준으로 채택되지 않아 많이 사용하지 않음. 쉬운 구현이 장점.
**Internet Security Association : 표준 채택


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


==== AH의 경우 ====
*보호 범위
**IP 헤더를 제외한 IP 패킷의 페이로드(Payload)만을 보호
**IP 헤더는 암호화하지 않으므로 트래픽 경로는 노출된다.
*보호 구간
**일반적으로 종단 노드(End Node) 구간의 IP 패킷 보호를 위해 사용한다.
 
====AH의 경우====
{| class="wikitable"
{| class="wikitable"
| Original IP Header
|Original IP Header
! AH
!AH
| Original Payload
|Original Payload
|}
|}
* 기존 IP Header는 그대로 있고 기존 Payload 앞에 AH가 붙어서 새로운 Payload가 된다.
 
*기존 IP Header는 그대로 있고 기존 Payload 앞에 AH가 붙어서 새로운 Payload가 된다.


====ESP의 경우====
====ESP의 경우====
{| class="wikitable"
{| class="wikitable"
| Original IP Header
|Original IP Header
! ESP Header
!ESP Header
| Original Payload(암호화)
|Original Payload(암호화)
! ESP Trailer
!ESP Trailer
! ESP Authentication
!ESP Authentication
|}
|}
* 기존 IP Header는 그대로 있고 기존 Payload를 ESP로 감싼 것이 새로운 Payload가 된다.
 
* Original Payload는 암호화된 상태이다.
*기존 IP Header는 그대로 있고 기존 Payload를 ESP로 감싼 것이 새로운 Payload가 된다.
* Original Payload, ESP Trailer 에 대한 인증정보가 ESP Authentication에 들어간다.
*Original Payload는 암호화된 상태이다.
*Original Payload, ESP Trailer 에 대한 인증정보가 ESP Authentication에 들어간다.


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


==== AH의 경우 ====
*보호 범위
**IP 패킷 전체를 보호
**암호화된 패킷에 IP 패킷에 IPSec 헤더를 추가하여 라우팅을 수행한다.
**IPSec 헤더는 구간 간 이동에 대한 정보만 있으므로 종단 정보(출발지, 목적지)와 트래픽 경로는 보호된다.
*보호 구간
**일반적으로 터널/보안 게이트웨이 구간 또는 종단 노드와 터널/보안 게이트웨이 구간의 IP 패킷 보호를 위해 사용한다.
 
====AH의 경우====
{| class="wikitable"
{| class="wikitable"
! New IP Header
!New IP Header
! AH
!AH
| Original IP Header
|Original IP Header
| Original Payload
|Original Payload
|}
|}
* IP Header가 새로 생성되고 기존 IP Packet전체가 Payload가 된다.


==== ESP의 경우====
*IP Header가 새로 생성되고 기존 IP Packet전체가 Payload가 된다.
 
====ESP의 경우====
{| class="wikitable"
{| class="wikitable"
! New IP Header
!New IP Header
! ESP Header
!ESP Header
| Original IP Header(암호화)
|Original IP Header(암호화)
| Original Payload(암호화)
|Original Payload(암호화)
! ESP Trailer
!ESP Trailer
! ESP Authentication
!ESP Authentication
|}
|}
* IP Header가 새로 생성되고 기존 IP Packet전체를 암호화하여 ESP로 감싼 것이 새로운 Payload가 된다.
* Original IP Header와 Original Payload 는 암호화된 상태이다.
* 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 헤더를 통해 게이트웨이 구간 정보는 노출된다.
** 전송 모드 사용 시 데이터만 암호화되며 트래픽 흐름 기밀성은 제공되지 않는다.


[[분류:보안]]
[[분류:보안]]
[[분류:프로토콜]]
[[분류:프로토콜]]
[[분류:정보보안기사]]
[[분류:정보보안기사]]

Latest revision as of 19:33, 21 June 2022

개요[edit | edit source]

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

보안성[edit | edit source]

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

메시지 인증 코드(MAC)

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

메시지 인증 코드(MAC)

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

순서 번호(Sequence Number)

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

아키텍처[edit | edit source]

SA(Security Association)[edit | edit source]

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

SP(Security Policy)[edit | edit source]

일종의 패킷 필터링 정책
  • 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 프로토콜[edit | edit source]

AH(Authentication Header)[edit | edit source]

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)[edit | edit source]

새로운 데이터 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)[edit | edit source]

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

2가지 동작 모드[edit | edit source]

전송 모드(Transport Mode)[edit | edit source]

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

AH의 경우[edit | edit source]

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

ESP의 경우[edit | edit source]

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)[edit | edit source]

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

AH의 경우[edit | edit source]

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

ESP의 경우[edit | edit source]

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