IPSec: Difference between revisions
From CS Wiki
No edit summary |
|||
(15 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
=개요= | |||
* 보안에 취약한 구조를 가진 IP의 보안을 위하여 국제 인터넷 기술 위원회(IETF)에서 설계한 표준(RFC2401) | |||
* IPv4에선 보안이 필요한 경우에만 선택적으로 사용하였지만 IPv6부턴 기본 스펙에 포함됨 | *보안에 취약한 구조를 가진 IP의 보안을 위하여 국제 인터넷 기술 위원회(IETF)에서 설계한 표준(RFC2401) | ||
*IPv4에선 보안이 필요한 경우에만 선택적으로 사용하였지만 IPv6부턴 기본 스펙에 포함됨 | |||
==보안성== | |||
{| class="wikitable" | |||
!특징 | |||
!설명 | |||
!적용기술 | |||
|- | |||
|기밀성 | |||
|암호화된 트래픽을 통해 데이터 노출 방지 | |||
| | |||
*ESP프로토콜 | |||
*대칭키 암호화 | |||
|- | |||
|비연결형 무결성 | |||
|메시지가 위변조되지 않았음을 보장 | |||
|AH의 | |||
메시지 인증 코드(MAC) | |||
|- | |||
|데이터 원천 인증 | |||
|정상 사용자로부터 송신된 데이터임을 보장 | |||
|AH의 | |||
메시지 인증 코드(MAC) | |||
|- | |||
|재전송 공격 방지 | |||
|순서 번호를 유지하여 재전송 공격 방지 | |||
|보안 연관(Security Association)의 | |||
순서 번호(Sequence Number) | |||
|- | |||
|접근제어 | |||
|패킷의 허용, 폐기 보호 등 적용 | |||
|보안 정책(Security Policy) | |||
|- | |||
|제한된 트래픽 흐름의 기밀성 | |||
|패킷의 출발지와 목적지에 대한 정보를 제한적으로 암호화 | |||
|ESP프로토콜/터널 모드 | |||
|} | |||
=아키텍처= | |||
==SA(Security Association)== | ==SA(Security Association)== | ||
== SP(Security Policy)== | ;IPSec을 사용하는 두 Peer간의 협약 | ||
; 일종의 패킷 필터링 정책 | |||
* Incoming Traffic과 Outgoing Traffic으로 구분하여 정책을 지정한다. | *'''주요 요소''' | ||
* | **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)=== | ||
* IPSec에서 키 교환에 사용되는 프로토콜 | |||
* UDP 500 포트를 사용한다. | ;[[IKE|IKE 문서 보기]] | ||
* 종류 | |||
** Manual Key Exchange : 관리자가 수동으로 각 종단에 키를 설치해둠 | *IPSec에서 키 교환에 사용되는 프로토콜 | ||
** Simple Key Interchange : Sun Microsystems에서 제안. 표준으로 채택되지 않아 많이 사용하지 않음. 쉬운 구현이 장점. | *UDP 500 포트를 사용한다. | ||
** Internet Security Association : 표준 채택 | *종류 | ||
**Manual Key Exchange : 관리자가 수동으로 각 종단에 키를 설치해둠 | |||
**Simple Key Interchange : Sun Microsystems에서 제안. 표준으로 채택되지 않아 많이 사용하지 않음. 쉬운 구현이 장점. | |||
**Internet Security Association : 표준 채택 | |||
==2가지 동작 모드== | ==2가지 동작 모드== | ||
===전송 모드(Transport Mode)=== | ===전송 모드(Transport Mode)=== | ||
==== 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)=== | ||
==== 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 | ||
|} | |} | ||
==== 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에 들어간다. | ||
[[분류:보안]] | |||
[[분류:프로토콜]] | |||
[[분류:정보보안기사]] | |||
Latest revision as of 19:33, 21 June 2022
개요[edit | edit source]
- 보안에 취약한 구조를 가진 IP의 보안을 위하여 국제 인터넷 기술 위원회(IETF)에서 설계한 표준(RFC2401)
- IPv4에선 보안이 필요한 경우에만 선택적으로 사용하였지만 IPv6부턴 기본 스펙에 포함됨
보안성[edit | edit source]
특징 | 설명 | 적용기술 |
---|---|---|
기밀성 | 암호화된 트래픽을 통해 데이터 노출 방지 |
|
비연결형 무결성 | 메시지가 위변조되지 않았음을 보장 | 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]
- 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에 들어간다.