* 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헤더는 암호화되어 있기 때문에, 터널/보안 게이트웨이와 종단 노드 구간의 트래픽 흐름의 기밀성은 보장됨 |
* IPSec 동작 모드
1) 터널 모드 (Tunnel Mode) : IP패킷 전체를 보호, 그 위에 새로운 IP 헤더를 추가
- IP 헤더 전체를 캡슐화 하여, 전송구간 주소 정보를 담은 New IP 헤더를 추가하여, 최초 출발지와 최종 목적지에 대한 트래픽 기밀성을 보장 (단, New IP 헤더로 인해, 보안/터널 게이트웨이 구간 정보는 노출되어 제한적 트래픽 흐름의 기밀성 보장)
- 보통, 물리적으로 떨어진 본/지사 사이 다수의 사용자 호스트와 서버로 구성된 환경(터널/보안GW 또는 종단 노드와 터널/보안GW 구간)의 IP 패킷 보호가 목적 (ex- VPN 환경)
2) 전송 모드 (Transport Mode) : 기존 IP 헤더 대부분 그대로 이용, IP의 상위 프로토콜 데이터(TCP 헤더, 데이터 Payload)만 보호
- 보통 종단(End-Point) 구간의 IP 패킷 보호 목적으로 주로 사용
- IP 헤더를 보호하지 않기 때문에 트래픽 흐름(최초SRC, 최종Dst)이 분석될 수 있음
* 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 주요 헤더 필드 | 내용 |
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) 송신 절차
- 전송하는 패킷에 대해 보안정책 데이터베이스(SPD)를 검색하여, 일치하는 엔트리가 없을 시 패킷 삭제(Discard)
- SPD에 일치하는 엔트리가 있을 시, 정책에 따라 처리(Discard = 삭제 / Bypass = 허용 / Protect = SAD 검색)
- 보안 연관 데이터베이스(SAD)에 일치하는 엔트리가 있으면 IPSec 처리 수행 후 전송 / 일치하는 엔트리가 없을 시, IKE(인터넷 키교환) 과정을 수행하여 SA 생성하는 과정 수행
2) 수신 절차
- IP 프로토콜의 protocol 필드를 조사하여, 보호되지 않는 IP 패킷인지, IPSec 패킷인지 확인
- 비보호 패킷의 경우 SPD를 검색하여 첫 번째 엔트리의 정책에 따라 행위 지정(Bypass = 상위 계층 전달 / Discard, Protect = 패킷 삭제)
- 보호 패킷(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 등)
'Information Security > Security Solution' 카테고리의 다른 글
DB 암호화 (Database Encryption) (0) | 2021.01.12 |
---|---|
SSL / TLS (Secure Sockets Layer / Transport Layer Security) (0) | 2021.01.12 |
가상 사설망 (VPN - Virtual Private Network) (0) | 2021.01.12 |
SIEM (Security Information and Event Management) (0) | 2021.01.12 |
위험 관리 시스템(RMS - Risk Management System) (0) | 2021.01.12 |