본문 바로가기

보안

보안기사 - IP 보안(IPsec)

IP 보안 - IPsec(IP Security)

IETF에서 IP보안을 위해 개방형 구조로 설계한 표준 (-> 특정 플랫폼에 종속X)
IP(네트워크) 계층 보안에 대해 안정적이고 표준화된 기초를 제공
종단 노드 구간 또는 보안/터널 게이트웨이 구간에 IP 패킷 보안 서비스를 제공해주는 네트워크 계층 보안 프로토콜
IP계층에서 직접 보안 서비스를 제공함에 따라 상위 계층 프로그램 변경 필요X
IPv6에서 IPsec을 기본적으로 포함

보안서비스 제공 (RFC2401 표준 정의)

  1. 기밀성 (Confidentiality)
    메시지가 제3자에 의해 도청되어도 그 내용을 알 수 없음을 보장
    대칭 암호화를 통해 기밀성 제공
    단, AH 프로토콜은 암호화 지원X, ESP 프로토콜만 암호화 지원

  2. 비연결형 무결성 (Connectionless Integrity)
    메시지가 위변조 되지 않았음을 보장
    메시지 인증 코드(MAC:Message Authentication Code)를 통해 각 IP 패킷별로(순서 상관X) 무결성 보장
    송신측에서 인증 데이터/MAC값을 계산하여 전송하고 수신측에서 이를 검증

  3. 데이터 원천 인증/송신처 인증 (Data Origin Authentication)
    수신한 메시지가 올바른 송신처로부터 온 것임을 보장
    메시지 인증 코드(MAC)를 통해 IP패킷이 올바른 송신처로부터 온 것임을 보장

  4. 재전송 공격 방지(Protection Against Replays)
    송신측에서 IP패킷별로 순서번호를 전송하고 수신측에서 해당 보안연관(SA:Security Association)에 순서번호를 유지하고 이를 검증함으로써 재전송 공격 방지

  5. 접근 제어(Access Control)
    보안정책(SP:Security Policy)을 통해 송수신 IP패킷에 대한 시스템 접근을 제어
    접근 제어 방식은 IP패킷의 허용, 폐기, 보호 등이 있다

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

    트래픽 흐름이란 해당 패킷이 어디에서 출발해서 어디를 목적지로 향해 가는지에 대한 정보를 의미 (IP헤더를 보면 알 수 있다)
    ESP/터널모드의 경우 New IP 헤더를 통해 터널/보안 게이트웨이 구간의 트래픽 흐름 정보는 노출되지만 원본 IP 헤더는 암호화되어 있기 때문에 터널/보안 게이트웨이와 종단 노드 구간의 트래픽 흐름의 기밀성은 보장

IPsec 동작 모드


전송 모드 (Transport Mode)


  • 보호 범위
    IP 패킷의 payload를 보호하는 모드, 즉 IP의 상위 프로토콜(전송계층) 데이터를 보호(ex. ICMP, TCP, UDP,...)
    IP 패킷의 payload만 IPsec으로 캡슐화하고 IP 헤더는 그대로 유지하므로 네트워크상 패킷 전송에 문제X
    IP 헤더를 보호하지 않기 때문에 트래픽 흐름(최초 출발지, 최종 목적지) 분석 가능

  • 보호 구간

    일반적으로 종단 노드 구간의 IP 패킷 보호를 위해 사용
    (종단 노드 간에 secure channel 형성)
    종단 노드에 IPsec 모듈 필요

터널 모드 (Tunnel Mode)


  • 보호 범위
    IP패킷 전체를 보호하는 모드
    IP패킷 전체를 IPsec으로 캡슐화하여 IP 헤더를 식별할 수 없기 때문에 네트워크상 패킷 전송이 불가능 -> 전송구간 주소 정보를 담은 New IP 헤더를 추가
    원본 IP헤더를 보호하기 때문에 최초 출발지 및 최종 목적지에 대한 트래픽 정보의 기밀성을 보장
    단, 새로운 IP헤더를 통해 보안/터널 게이트웨이 구간 정보는 노출 -> '제한적 트래픽 흐름의 기밀성을 보장해준다'

  • 보호 구간
    [양쪽 터널/보안 게이트웨이 구간 IP 패킷 보호]


    [종단노드와 터널/보안 게이트웨이 구간 IP 패킷 보호]


    일반적으로 터널/보안 게이트웨이 구간 또는 종단 노드와 터널/보안 게이트웨이 구간의 IP 패킷 보호를 위해 사용
    터널/보안 게이트웨이 구간 IP 패킷 보호는 물리적으로 떨어진 위치의 본,지점 사이에 다수의 사용자 호스트와 서버로 구성된 VPN 환경을 예로 들 수 있다
    종단 노드와 터널/보안 게이트웨이 구간 IP 패킷 보호는 외부 사용자 호스트와 본,지점 사이의 VPN 환경 구성을 예로 들 수 있다. 이 경우 외부 사용자 호스트는 IPsec을 위한 VPN 클라이언트 프로그램이 필요

IPsec 세부 프로토콜


AH(Authentication Header) 프로토콜

[AH 프로토콜 Header 정보]

AH 프로토콜은 메시지 인증 코드(MAC)를 이용해 인증(무결성, 송신처 인증)을 제공
기밀성(암호화)는 제공X
송신측에서 MAC 알고리즘과 인증키를 통해 인증 데이터를 계산해 전송하고 수신측에서 이를 검증
인증 데이터 계산에는 IP헤더의 변경 가능한 필드를 제외한 IP 패킷 전체를 대상으로 함
IP 헤더의 전송 중 변경 가능한 필드는 TTL, Header Checksum, NAT 환경에서의 Source IP 등

* 메시지 인증코드 (MAC)
1. 무결성(Integrity) : 메시지 위변조X
2. 송신처 인증 : HMAC(Hash based MAC), CMAC(Cipher based MAC)
3. 부인방지(non-repudiation) 보장X

  • 주요 헤더 필드
    SPI (Security Parameter Index) : 현재 연결에 대한 보안연관(SA) 식별자
    순서번호 (Sequence Number) : 재전송 공격을 방지하기 위한 필드로 정상적인 환경에서는 패킷 재전송이 발생해도 일련번호는 항상 1씩 증가하기 때문에 재전송 공격 방지 가능
    인증데이터 (Authentication Data) : IP 헤더의 변경 가능한 필드를 제외한 IP패킷 전체에 대한 MAC값(ICV)을 설정

  • AH 프로토콜 동작모드

    전송모드 : IP 헤더의 전송 중 변경 가능한 필드를 제외한 IP 패킷 전체를 인증

    터널모드 : New IP 헤더의 전송 중 변경 가능한 필드를 제외한 New IP 패킷 전체를 인증

ESP(Encapsulating Security Payload) 프로토콜

[ESP 프로토콜 Header/Trailer/Auth 정보]

ESP 프로토콜은 MAC과 암호화를 이용해 인증(무결성, 송신처 인증)과 기밀성을 제공
인증과 암호화를 선택적으로 적용 가능(인증만 or 인증+암호화)
AH는 변경가능한 IP 헤더 필드를 제외한 IP 패킷 전체를 인증하지만 ESP는 IP헤더 인증X

  • ESP 헤더 필드 (설명은 AH 참고)
    SPI (Security Parameter Index)
    순서번호 (Sequence Number)

  • ESP 트레일러 필드
    블록 암호를 위한 패딩 정보와 전송하는 페이로드의 프로토콜 타입(next header) 정보를 포함

  • ESP Auth 필드
    인증 데이터 정보를 저장

  • ESP 프로토콜 동작모드

    전송모드 : IP 페이로드와 ESP 트레일러를 암호화하고 암호화된 데이터와 ESP 헤더를 인증
    터널모드 : 원본 IP 패킷 전체와 ESP 트레일러를 암호화하고 암호화된 데이터와 ESP 헤더를 인증

SA(Security Association)와 SP(Security Policy)


  • 보안연관(SA: Security Association)
    둘 사이에 논리적 연결 상태를 유지하는 동안 적용할 보안 설정 정보
    단방향성/일방향성을 갖기 때문에 대상 호스트와 송수신을 모두 하려면 2개의 SA가 필요(A->B, B->A)
    보안연관 데이터베이스(SAD) : 여러 SA들을 저장해놓은 DB
    • 주요 항목
      SPI(Security Parameter Index) : 보안연관 식별자
      Sequence Numebr Counter : 패킷의 순서번호 카운터
      Anti-Replay Window : Replay-Attack을 방어하기 위한 윈도우값
      AH/ESP 정보 : AH 및 ESP 프로토콜 정보(MAC 알고리즘, 대칭키 알고리즘, 관련 키 정보 등)
      Lifetime : 세션 만료 기간
      Mode : IPsec 동작모드(전송, 터널)
      Path MTU : 경로의 MTU값
  • 보안정책(SP: Security Policy)
    패킷을 송수신할 때 적용할 보안의 종류를 정의하는 것
    IP 패킷 허용(Bypass), 폐기(Discard), IPsec 적용(Protect) 등
    보안정책 데이터베이스(SPD) : 보안정책들을 저장해놓은 DB

IPsec 패킷 송수신 절차


  • 송신 절차
  1. 전송할 패킷에 대해서 보안정책데이터베이스(SPD) 검색
  2. SPD에 일치하는 엔트리가 없으면 패킷 삭제
  3. 있으면 첫번째 엔트리의 정책에 따라 처리
    Discard -> 해당 패킷 삭제
    Bypass -> 해당 패킷 송신
    Protect -> 보안연관 데이터베이스(SAD) 검색
  4. SAD에 일치하는 엔트리가 있으면 IPsec처리를 수행한 후 전송
    없으면 인터넷 키교환(IKE) 과정을 수행해 SA를 생성
  • 수신 절차
  1. IP프로토콜의 protocol 필드를 조사해 보호되지 않는 패킷인지 IPsec(AH/ESP) 패킷인지 확인
  2. 보호되지 않는 IP패킷이면 SPD를 검색해 정책에 따라 처리(Bypass -> 상위계층으로 전달, Discard/Protect -> 패킷 삭제)
  3. IPsec 패킷이면 SAD검색해 일치하는 엔트리가 없으면 패킷 삭제
    있으면 IPsec처리 수행한후 상위 계층으로 전달

인터넷 키교환(IKE: Internet Key Exchange)

보안 관련 설정들(SA)을 생성, 협상 및 관리하는 프로토콜. 500/udp

  1. IKE 1단계(phase 1)
    IKE 2단계에서 사용할 메시지들을 어떻게 보호할 것인지를 협상하며 IKE용 마스터키 생성.(IKE 2단계를 위한 선행단계)
    이 단계를 통해 생성된 SA를 'IKE SA'라 하고, 양방향성(송수신 모두 이용)을 가짐
    다음 2가지 중 1가지 모드로 구현
    • Main mode
      3쌍의 메시지(6개)를 교환하는 방식으로 Aggressive Mode에 비해 단계가 많지만 세션ID를 암호화하기 때문에 보안성이 높다
    • Aggressive Mode
      Main mode보다 빠른 버전으로 3개의 메시지를 교환하는 방식. 협상을 빠르게 할 수 있지만 세션ID를 암호화하지 않아 보안성이 낮다
  2. IKE 2단계(phase 2)
    실질적인 데이터를 어떤 방식으로 보호할 것인지를 협상.
    이 단계를 통해 생성된 SA를 'IPsec SA'라 한다
    1단계를 통해 생성된 키를 이용해 메시지가 보호되며 Quick Mode를 통해 구현
    - 3번의 메시지 교환을 통해 IPsec 통신을 위한 SA 및 키 협상이 이루어짐
    - 이 때 생성되는 SA는 단방향성을 가진다 (수신용 SA와 송신용 SA가 생성)

'보안' 카테고리의 다른 글

보안기사 - 라우터 보안  (0) 2020.05.04
보안기사 - 전송계층 보안 (SSL/TLS)  (0) 2020.05.03
보안기사 - VPN  (0) 2020.04.29
보안기사 - 무선랜 보안  (0) 2020.04.28
보안기사 - 무선랜  (0) 2020.04.26