IPsec

4 minute read

IPsec (IP Security)

Network Layer (L3) 상에서 IP Packet 단위로 ‘인증’, ‘암호화’, ‘키관리’를 하는 Internet Protocol Suite.

IPsec은 Internet Protocol Security의 약어로서 통신 중 network layer에서의 보안을 위한 표준이다. IPsec은 인터넷 상에서 VPN(Virtual Private Network)을 구현하는데 사용될 수 있도록 IETF (Internet Engineering Task Force)에서 개발된 protocol set이다. 이는 네트워크상의 IP layer에서의 보안에 중점을 두었으며, 사설 및 공중망을 사용하는 TCP/IP 통신을 보다 안전하게 유지하기 위한 end-to-end encryption과 authentication을 제공한다.

출처 : https://wodonggun.github.io/wodonggun.github.io/study/What-is-IPsec.html

  • VPN에서 Internet 경유 구간에 일종의 보안 통로인 Tunnel을 형성해줌 (L3에서 동작)
  • 대부분의 OS에서 IPsec 기능을 직접 제공
  • 차세대 인터넷 프로토콜인 IPv6에서는 IPsec을 기본적으로 포함

관련 RFC (Request for Comment)

  • [RFC 2411] : IP Security Document roadmap
  • [RFC 2401] : Security Architecture for Internet Protocol
  • [RFC 2402] : IP Authentication Header
  • [RFC 2406] : IP Encapsulating Security Payload (ESP)
  • [RFC 2408] : Internet Security Association and Key Management Protocol (ISAKMP)
  • [RFC 2407] : The Internet IP Security Domain of Interpretation for ISAKMP
  • [RFC 2409] : The Internet Key Exchange (IKE)
  • [RFC 3554] : On the Use of Stream Control Transmission Protocol (SCTP) with IPsec
  • [RFC 4308] : Cryptographic Suites for IPsec

IPsec 주요 보안 서비스

출처 : https://itragdoll.tistory.com/52

  • 통신 상대방 인증 (Peer Authentication)
  • 데이터 원천 (근원지) 인증 (Data Origin Authentication)

    • Message Authentication Code를 통해 IP Packet이 올바른 송신처로부터 온 것임을 보장
  • 비연결형 무결성 (Connectionelss Integrity)
    • Message Authentication Code (MAC)를 통해 각 IP Packet 별로 무결성 보장
    • 송신 측에서 인증데이터 / MAC 값을 계산하여 전송하고 수신 측에서 이를 검증
  • 기밀성 (Confidentiality)
    • 대칭 암호화를 통해 기밀성을 제공. 단, AH Protocol은 암호화를 지원하지 않으며 ESP Protocol만 암호화를 지원
    • (제한된 트래픽 흐름의 기밀성) ESP/터널모드의 경우 New IP헤더를 통해 터널 / 보안 게이트웨이 구간의 트래픽 흐름 정보는 노출되지만 원본 IP 헤더는 암호화되어 있기 때문에 터널/보안 게이트웨이와 종단 노드 구간의 트래픽 흐름의 기밀성은 보장
  • 접근 제어 (Access Control)
    • 보안 정책을 통해 송수신 IP패킷에 대한 시스템 접근을 제어
    • 접근 제어 방식은 IP 패킷의 허용, 폐기, 보호 등이 있음
  • 재생공격 방지 (Replay Attack Protection) 등
    • 송신 측에서 IP 패킷별로 순서번호(Sequence Number)를 전송하고 수신측에서 해당 보안연관(SA : Security Association)에 순서번호를 유지하고 이를 검증함으로써 Replay attack을 방지

    Replay Attack

    A replay attack (also known as playback attack) is a form of network attack in which a valid data transmission is maliciously or fraudulently repeated or delayed. This is carried out either by the originator or by an adversary who intercepts the data and re-transmits it, possibly as part of a spoofing attack by IP packet substitution. This is one of the lower-tier versions of a man-in-the-middle attack.

    Another way of describing such an attack is: “an attack on a security protocol using replay of messages from a different context into the intended (or original and expected) context, thereby fooling the honest participant(s) into thinking they have successfully completed the protocol run.”

    Security Association (SA)

    An SA is a set of IPsec specifications that are negotiated between devices that are establishing an IPsec relationship. These specifications include preferences for the type of authentication, encryption, and IPsec protocol that shuold be used when establishing the IPsec connection. An SA can be either unidirectional or bidirectional, depending on the choices made by the network administrator. An SA is uniquely identified by a Security Parameter Index (SPI), an IPv4 or IPv6 destination address, and a security protocol (AH or ESP) identifier.

    http://elearning.kocw.net/document/lec/2011_2/andong/Network/06.pdf

    SA : IP 보안 프로토콜, 프로토콜의 운용모드, 보안 알고리즘, 보안 키와 키의 수명 등에 대한 통신 쌍방 간의 합의

    • 키 관리 프로토콜(ISAKMP)은 SA의 설정 및 해제 기능 담당
    • 각 Host는 송신과 수신 트래픽을 위해 별도의 SA 설정

IPsec 운용 모드

IP의 내용(Payload)만을 보호하느냐, 아니면 Header까지 모두 보호하느냐에 따라서 전자는 전송 모드 (Transport mode), 후자는 터널 모드 (Tunnel mode)라고 구분한다.

1. Transport Mode

Transport mode는 아래의 그림과 같이 Tunnel의 범위가 끝단에서 끝단까지 그려져 있다. 이는 Transport layer라는 L4는 End-to-End의 데이터 전송을 보장하기 때문이다.

IPsec-transport-mode

이미지 출처 : https://brunch.co.kr/@younggiseo/97

IPsec-transport-mode-Header

이미지 출처 : https://reakwon.tistory.com/108

보낼 데이터가 OSI 7 Layer의 L4까지만 내려온 상태에서 데이터 보호 절차를 거친다. 출발지와 도착지의 정보를 담고 있는 IP Header가 IPsec Header 밖에 위치하므로 암호화되지 않는다. 따라서 IP Header는 보호되지 않는다.

2. Tunnel Mode

Internet Protocol을 완벽하게 보안처리하기 위한 송수신 기기간의 가상 파이프로 메시지를 주고 받아 ‘터널링’을 구축했다라고도 부른다. 끝단과 끝단이 아니라 가운데 장비 간에 기둥 모양의 파이프가 그려진다.

IPsec-tunnel-mode

이미지 출처 : https://brunch.co.kr/@younggiseo/97

IPsec-tunnel-mode-Header

이미지 출처 : https://reakwon.tistory.com/108

L3에서 주고받는 Data 전체 (data + IP Header)를 암호화하고 Header가 부착된다. 출발지와 도착지 주소 정보를 갖는 IP Header도 암호화되므로 네트워크 상에서 이 Packet이 어디로 가는지 식별할 수 없게 된다. 따라서 Tunnel 입구를 지나칠 때 도착지인 반대편 장비(목적지)에 대한 주소 정보가 포함된 새로운 IP Header를 추가한다. 즉 최초 출발지와 최종 목적지에 대한 Traffic의 기밀성(Confidentiality)은 보장된다. 단, 새로 추가된 IP Header의 구간 정보는 식별 가능하므로 전송 도중 유출될 수 있다 (제한적 Traffic 흐름의 기밀성). 보통은 Router가 이러한 새로운 Header를 추가해 준다.

Protocol

IPsec은 인증에 대해서만 검사하는 Authentication Header (AH) Protocol과 Payload 전체를 보호하여 기밀성(Confidentiality)을 제공하는 Encapsulating Security Payload (ESP) Protocol을 제공한다.

1. Authentication Header (AH) Protocol

발신지 Host를 인증하고 IP Packet의 무결성(Integrity)을 보장한다. Authentication을 위해 Hash 알고리즘과 대칭 키가 사용되어 Message Digest를 생성하고 Header에 삽입한다. AH는 인증과 무결성은 보장하지만 기밀성은 보장하지 않는다.

  • Authentication Header의 구성

    IPsec-AH-configuration

    이미지 출처 : https://reakwon.tistory.com/108

  • Packet Processing (출처 : https://themeat.tistory.com/104)
    • Outbound
      1. SA 조사 (SA Lookup)
      2. 일련번호 생성 (Sequence Number Generation)
      3. 무결성 검사 값 검증 (ICV Verification)
      4. 조각화 (Fragmentation)
    • Inbound
      1. 재조립 (Reassembly)
      2. SA 조사
      3. 일련번호 검증 (Sequence Number Verification)
      4. 무결성 검사 값 검증 (ICV Verification)
  • Transport mode에서의 AH

    AH-transport-header

  • Tunnel mode에서의 AH

    AH-Tunnel-header

2. Encapsulating Security Payload (ESP) Protocol

Message Authentication Code와 암호화를 사용해 인증과 기밀성을 제공한다. 또한 AH가 보장하는 IP Packet의 무결성 등 AH가 제공하는 모든 서비스를 모두 보장할 수 있다. 인증과 암호화는 선택적으로 적용할 수 있어 인증만 적용하거나 인증 + 암호화 모두 적용 가능하다.

  • Encapsulating Security Payload Header의 구성

    IPsec-ESP-configuration

    이미지 출처 : https://reakwon.tistory.com/108

  • Packet Processing (출처 : https://themeat.tistory.com/104)
    • Outbound
      1. SA 조사 (SA Lookup)
      2. 패킷 암호화 (Packet Encryption)
      3. 일련번호 생성 (Sequence Number Generation)
      4. 무결성 검사 값 검증 (ICV Verification)
      5. 조각화 (Fragmentation)
    • Inbound
      1. 재조립 (Reassembly)
      2. SA 조사
      3. 일련번호 검증 (Sequence Number Verification)
      4. 무결성 검사 값 검증 (ICV Verification)
      5. 패킷 복호화
  • Transport mode에서의 ESP

    ESP-transport-header

  • Tunnel mode에서의 ESP

    ESP-Tunnel-header

Reference

  1. https://reakwon.tistory.com/108
  2. https://brunch.co.kr/@younggiseo/97
  3. https://itragdoll.tistory.com/52
  4. https://www.juniper.net/documentation/en_US/junos/topics/topic-map/overview-of-ipsec.html#id-overview-of-ipsec
  5. https://en.wikipedia.org/wiki/Replay_attack
  6. http://www.ktword.co.kr/abbr_view.php?m_temp1=2029
  7. https://wodonggun.github.io/wodonggun.github.io/study/What-is-IPsec.html
  8. http://elearning.kocw.net/document/lec/2011_2/andong/Network/06.pdf
  9. https://themeat.tistory.com/104