본문 바로가기

Information Security/Security Solution

IPsec (IP Security Protocol)

반응형

* IPsec : 종단 노드(양쪽 끝 장비) 구간 또는 보안/터널 GW(IPSec을 지원하는 F/W, Router, VPN 등) 구간 내 취약한 IP 계층(3계층)무결성과 인증을 보장하는 보안 프로토콜

- IP 계층에 직접 보안서비스를 제공하여, 상위 계층 프로그램의 변경이 필요 없음

 

 

 

* IPsec 구성 요소

구성 요소 내용
프로토콜 AH (Authentication Header) : 데이터 인증, 비 연결형 무결성 보장
- 암호화 지원하지 않음
ESP (Encapsulation Security Payload) : 캡슐화를 통한 기밀성 보장
키 관리 방식 IKE (Internet Key Exchange) : 알고리즘을 이용한 공개 네트워크에서의 키 교환 방식
정책 SPD (Security Policy Database) : 패킷에 대한 보안 정책을 데이터베이스화
SAD (Security Authentication Database) : 보안연관들을 DB화 하여, 실제 파라미터를 저장

 

 

 

 

* 보안서비스 제공(RFC 2401 표준 정의)

보안서비스 특성 내용
기밀성
(Confidentiality)
- 메세지가 제 3자에 의해 도청되어도 그 내용을 알 수 없음을 보장
비연결형 무결성
(Connectionless Integrity)
- 메세지가 위, 변조되지 않았음을 보장


- 메세지 인증 코드(MAC : Message Authentication Code)를 통해 각 IP 패킷 별로(순서에 상관 없이) 무결성을 보장


- 송신측에서 인증 데이터(Authentication Data)/MAC 값을 계산하여 전송 후 수신측에서 이를 검증
데이터 원천 인증/송신처 인증
(Data Origin Authentication)
- 메세지 인증 코드(MAC)을 통해 IP 패킷이 올바른 송신처로부터 온 것임을 보장
재전송 공격 방지
(Protection Against Replays)
- 송신측에서 IP 패킷별로 Sequence Number를 전송, 수신측에서 해당 보안연관(SA : Security Association)에 순서번호를 유지하고 이를 검증하여 재전송 공격 방지


- IPSec은 패킷 전송 시 마다 순서번호를 1씩 증가시키며, 중복된 순서번호의 패킷이 수신될 시, 이를 재전송 공격으로 판단
접근 제어
(Access Control)
- 보안 정책(SP : Security Policy)를 통해 IP 패킷의 허용(Bypass), 폐기(Discard), 보호(Protect, IPSec 적용)등으로 송수신 IP 패킷에 대한 시스템 접근을 제어
제한된 트래픽 흐름의 기밀성
(Limited Traffic Flow Confidentiality)
- ESP/Tunnel Mode의 경우 NEW IP Header를 통해 터널/보안 게이트웨이 구간의 트래픽 흐름 정보는 노출되며, 원본 IP헤더는 암호화되어 있기 때문에, 터널/보안 게이트웨이와 종단 노드 구간의 트래픽 흐름의 기밀성은 보장됨

제한된 트래픽 흐름의 기밀성 (Limited Traffic Flow Confidentiality)

 

 

 

* IPSec 동작 모드

1) 터널 모드 (Tunnel Mode) : IP패킷 전체를 보호, 그 위에 새로운 IP 헤더를 추가
- IP 헤더 전체를 캡슐화 하여, 전송구간 주소 정보를 담은 New IP 헤더를 추가하여, 최초 출발지와 최종 목적지에 대한 트래픽 기밀성을 보장 (단, New IP 헤더로 인해, 보안/터널 게이트웨이 구간 정보는 노출되어 제한적 트래픽 흐름의 기밀성 보장)

- 보통, 물리적으로 떨어진 본/지사 사이 다수의 사용자 호스트와 서버로 구성된 환경(터널/보안GW 또는 종단 노드와 터널/보안GW 구간)의 IP 패킷 보호가 목적 (ex- VPN 환경)

Tunnel Mode
Tunnel Mode Secure Channel


2) 전송 모드 (Transport Mode) : 기존 IP 헤더 대부분 그대로 이용, IP의 상위 프로토콜 데이터(TCP 헤더, 데이터 Payload)만 보호

- 보통 종단(End-Point) 구간의 IP 패킷 보호 목적으로 주로 사용

- IP 헤더를 보호하지 않기 때문에 트래픽 흐름(최초SRC, 최종Dst)이 분석될 수 있음

Transport Mode
Transport Mode Secure Channel

 

 

 

* IPSec 세부 프로토콜

1) AH(Authentication Header) Protocol : 송신측에서 메세지 인증 코드(MAC) 알고리즘과 인증Key를 이용하여 인증 Data를 계산하여 전송, 수신측에서 검증하여 인증(무결성과 송신처 인증)을 제공
- 인증 Data 계산에는 IP 헤더의 변경 가능 필드(Mutual Field)를 제외(수신측 검증 실패 방지)한 IP 패킷 전체를 대상으로 함

- IP Header Mutual Field : TTL(Time To Live), Heder Checksum, NAT 환경에서의 Source IP 등

- 낮은 버전의 IPSec 모듈 문제점 : AH Protocol의 경우 NAT환경에서 Source IP가 변경되어, 이를 제외하고 계산해야 하나, 구형 IPSec 모듈의 NAT 환경에서 예외 처리가 되지 않아, 인증 데이터/MAC 값 오류로 장애가 발생할 수 있음
(이 경우 인증 데이터 계산에 IP를 포함하지 않는 ESP Protocol을 이용할 시, 정상적으로 통신이 가능)

AH Protocol Header Information

AH Protocol 주요 헤더 필드 내용
SPI
(Security Parameter Index)
- 현재 연결에 대한 보안 연관(SA) 식별자
Sequence Number - 재전송 공격 방지를 위한 필드


- 정상 환경에서는 패킷 재전송이 발생해도 일련 번호는 항상 1씩 증가하여 재전송 공격 방지가 가능.
Authentication Data - IP Header의 변경 가능(Mutual) 필드를 제외한 IP 패킷 전체에 대한 MAC값(또는 ICV(Integrity Check Value)와 동어)을 설정

- AH Protocol 동작 모드

- 전송 모드 : IP Hedaer의 Mutual Field를 제외한 IP 패킷 전체를 인증

- 터널 모드 : New IP Heder의 Mutual Field를 제외한 New IP 패킷 전체를 인증


2) ESP (Encapsulating Security Payload) Protocol : 메세지 인증 코드(MAC)와 암호화를 이용하여 인증(무결성과 송신처 인증 및 기밀성)을 제공하되, 인증과 암호화를 선택적으로 적용할 수 있다

- AH와 다르게, IP Header에 대한 인증을 하지 않음

ESP Protocol 내부 정보 내용
ESP Header Filed - SPI(Security Parameter Index) : 현재 연결에 대한 보안연관(SA) 식별자


- SN (Sequnece Number) : 재전송 공격 방지를 위한 필드
ESP Trailer Filed - 블록 암호를 위한 패딩 정보와, 전송하는 페이로드의 프로토콜 타입(Next Header) 정보를 담음
ESP Auth Filed - 인증 데이터 정보를 저장

- ESP 프로토콜 동작 모드

- 전송 모드 : IP Payload와 ESP 트레일러를 암호화 / 암호화된 데이터와 ESP Header를 인증

- 터널 모드 : Original IP 패킷 전체와 ESP 트레일러를 암호화 / 암호화된 데이터와 ESP Header를 인증

 

 

 

* 보안 연관 - SA (Security Association) : 둘 사이에 논리적 연결 상태를 유지하는 동안, 적용할 보안 설정 정보
- 단/일방향성으로 송/수신을 모두 하려면 2개의 SA가 요구

- 여러 SA를 저장해놓은 DB를 SAD(Security Association Database)라 함

SA 주요 항목 내용
SPI (Security Parameter Index) - 보안연관(SA) 식별자
Sequence Number Counter - 패킷의 순서번호 카운터
Anti-Replay Window - Replay Attack 방어를 위한 윈도우 값
AH/ESP 정보 - AH 및 ESP 프로토콜 정보(MAC 알고리즘, 대칭키 알고리즘, 관련 키 정보 등)
Lifetime - 세션 만료 기간
Mode - IPSec 동작 모드(전송 or 터널)
Path MTU - 경로의 MTU 값

 

 

 

* 보안 정책 - SP (Security Policy) : 패킷을 송/수신 했을 시, 적용할 보안의 종류를 정의하는 것

- Bypass (허용), Discard(폐기), Protect(IPSec 적용) 등

- SP들을 저장한 DB를 SPD(Security Policy Database)라 함

 

 

 

* IPSec 패킷 송/수신 절차

1) 송신 절차

IPSec 송신 절차

  1. 전송하는 패킷에 대해 보안정책 데이터베이스(SPD)를 검색하여, 일치하는 엔트리가 없을 시 패킷 삭제(Discard)
  2. SPD에 일치하는 엔트리가 있을 시, 정책에 따라 처리(Discard = 삭제 / Bypass = 허용 / Protect = SAD 검색)
  3. 보안 연관 데이터베이스(SAD)에 일치하는 엔트리가 있으면 IPSec 처리 수행 후 전송 / 일치하는 엔트리가 없을 시, IKE(인터넷 키교환) 과정을 수행하여 SA 생성하는 과정 수행

2) 수신 절차

IPSec 수신 절차

  1. IP 프로토콜의 protocol 필드를 조사하여, 보호되지 않는 IP 패킷인지, IPSec 패킷인지 확인
  2. 비보호 패킷의 경우 SPD를 검색하여 첫 번째 엔트리의 정책에 따라 행위 지정(Bypass = 상위 계층 전달 / Discard, Protect = 패킷 삭제)
  3. 보호 패킷(IPSec)의 경우 SAD를 검색하여, 일치하는 엔트리가 없을 시, 패킷을 폐기, 일치하는 엔트리가 있을 시, IPSec 처리를 수행 후 상위 계층으로 전달

 

 

 

* 인터넷 키교환(IKE - Internet Key Exchange) 프로토콜

- SA(보안 관련) 설정들을 생성, 협상 및 관리하는 프로토콜로, 500/UDP 포트 사용

IKE 단계별 조치 내용
IKE Phase 1 * IKE용 마스터 키 생성 단계 : Phase 2에서 사용할 메세지들을 어떻게 보호할 것인지 협상하는 단계


* Phase1에서 생성된 SA를 IKE SA라고 칭하며, 양방향성을 가진고 아래 중 1가지 모드로 구현됨


1) Main Mode : 3쌍의 메세지(6개의 메세지)를 교환하는 방식(Default)으로, Aggressive Mode에 비해 단계가 많으나, 세션 ID를 암호화하여 보안성이 높음


2) Aggressive Mode : Main Mode보다 빠른 버전으로 3쌍의 메세지가 아닌, 3개의 메세지를 교환하는 방식이며, 협상은 빠르나, 세션 ID를 암호화 하지 않아 보안성이 낮음
IKE Phase 2 * 1단계에서 생성한 IKE SA를 가지고, 실질적으로 데이터를 어떤 방식으로 보호할 것인지 협상하는 단계


* Phase2에서 생성된 SA를 IPSec SA라고 칭하며, IKE SA를 통해 메세지가 보호되며, Quick Mode를 통해 구현됨


* Quick Mode : 3번의 메세지 교환을 통해 IPSec 통신을 위한 SA 및 키 협상을 하며, 이때 생성되는 SA는 단방향성을 가져 수신용/송신용 SA가 따로 생성 됨

 

 

 

* 클라우드 환경 VPN 연동 : 최근 AWS, Azure 등 Public Cloud에 IPsec VPN 연결 시 아래와 같이 VPN 터널 구성

1) VPN 연결 시, IKE 설정 (IKEv1 메인 모드 또는 IKEv2)

2) 서로 간 지정된 암호인 PSK(Pre Shared Key) 이용

3) 알고리즘 설정한 정책 활용 (AES-128 or 256 SHA-1 or 2 등)

 

반응형