IPSec 편집하기

IT위키

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

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


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


;IPSec을 사용하는 두 Peer간의 협약
== SP(Security Policy)==
 
; 일종의 패킷 필터링 정책
*'''주요 요소'''
* Incoming Traffic과 Outgoing Traffic으로 구분하여 정책을 지정한다.
**Sequence Number Counter : 패킷의 일련번호 카운터
* IP Packet의 허용/우회(Bypass), 폐기(Discard), 보호(Protection) 등을 지원한다.
**Anti-Replay Window : 재전송 공격을 방어하기 위한 윈도우 값
* '''주요 요소'''
**AH/ESP : 프로토콜 정보
** Source/Destination IP Address
**Lifetime : 세션 만료 기간
** Source/Destination Port
**Mode : 동작모드(전송/터널)
** Name : DNS 식별자, X500 이름 등의 식별자를 적는다.
**Path MTU : 경로의 MTU 값
** Transport Layer Protocol : TCP 또는 UDP
 
==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
**Next Header(8bit) : Payload의 Data Type 으로 TCP는 6, UDP는 17
** Payload Length(8bit) : Payload의 length
**Payload Length(8bit) : Payload의 length
** SPI(Security Parameters Index) : SA를 구분하기 위한 Index 값
**SPI(Security Parameters Index) : SA를 구분하기 위한 Index 값
** Authentication Data : SHA, Keyed MD5, HMAC-MD5-96, HMAC-SHA-1-96등의 인증 정보
**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에 넣어 감싸는 방식
;새로운 데이터 IP Packet을 만들고 기존 IP Packet을 Data Payload에 넣어 감싸는 방식
* AH가 가진 무결성과, 인증도 제공하고 추가적으로 대칭키 암호화를 통해 기밀성(Confidentiality) 제공
 
* 구성
*AH가 가진 무결성과, 인증도 제공하고 추가적으로 대칭키 암호화를 통해 기밀성(Confidentiality) 제공
** SPI(Security Parameters Index) : SA를 구분하기 위한 Index 값
*구성
** IV(Initialization Vector) : CBC Encryption에 사용되는 초기 벡터
**SPI(Security Parameters Index) : SA를 구분하기 위한 Index 값
** Padding : Payload Data 와 Authentication Data를 구분하기 위한 패딩
**IV(Initialization Vector) : CBC Encryption에 사용되는 초기 벡터
** Pad Length : Padding의 Length
**Padding : Payload Data 와 Authentication Data를 구분하기 위한 패딩
** Next Header(8bit) : Payload의 Data Type 으로 TCP는 6, UDP는 17
**Pad Length : Padding의 Length
** Authentication Data : authentication value. AH와는 달리 authentication service가 선택되었을 경우에만 존재한다.
**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에서 키 교환에 사용되는 프로토콜
*IPSec에서 키 교환에 사용되는 프로토콜
* UDP 500 포트를 사용한다.
*UDP 500 포트를 사용한다.
* 종류
*종류
** Manual Key Exchange : 관리자가 수동으로 각 종단에 키를 설치해둠
**Manual Key Exchange : 관리자가 수동으로 각 종단에 키를 설치해둠
** Simple Key Interchange : Sun Microsystems에서 제안. 표준으로 채택되지 않아 많이 사용하지 않음. 쉬운 구현이 장점.
**Simple Key Interchange : Sun Microsystems에서 제안. 표준으로 채택되지 않아 많이 사용하지 않음. 쉬운 구현이 장점.
** Internet Security Association : 표준 채택
**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가 된다.
*기존 IP Header는 그대로 있고 기존 Payload를 ESP로 감싼 것이 새로운 Payload가 된다.
* Original Payload는 암호화된 상태이다.
*Original Payload는 암호화된 상태이다.
* Original Payload, ESP Trailer 에 대한 인증정보가 ESP Authentication에 들어간다.
*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가 된다.


*IP Header가 새로 생성되고 기존 IP Packet전체가 Payload가 된다.
==== ESP의 경우====
 
====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가 된다.  
*IP Header가 새로 생성되고 기존 IP Packet전체를 암호화하여 ESP로 감싼 것이 새로운 Payload가 된다.
* Original IP Header와 Original Payload 는 암호화된 상태이다.
*Original IP Header와 Original Payload 는 암호화된 상태이다.
* Original IP Header, Original Payload, ESP Trailer 에 대한 인증정보가 ESP Authentication에 들어간다.
*Original IP Header, Original Payload, ESP Trailer 에 대한 인증정보가 ESP Authentication에 들어간다.


[[분류:보안]]
[[분류:보안]]
[[분류:프로토콜]]
[[분류:프로토콜]]
[[분류:정보보안기사]]
[[분류:정보보안기사]]
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 IT위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)
원본 주소 "https://itwiki.kr/w/IPSec"