Shine's dev log

IPsec의 개념 본문

컴퓨터 네트워크

IPsec의 개념

dong1 2020. 8. 18. 18:49

1. Secure Protocols

 

tcp/ip 5계층에서 보안 관련된 프로토콜은 많이 존재한다. 대표적인 예를 들어보면 다음과 같다.

 

1) Application Layer - HTTPS, SSH, PGP, S/MIME

2) Transport Layer - SSL/TLS

3) Network Layer - IPsec, VPN

4) Data Link Layer - L2TP

 

오늘 정리해볼 내용은 이 중에서도 Network Layer에 위치하는 IPsec 라는 녀석이다.

 

 

 

2. IPsec이란?

 

  • IPsec는 Internet Protocol Security의 약자이다.
  • Network layer에서 IP패킷을 암호화하고 인증하는 등의 보안을 위한 표준이다.
  • 안전한 인터넷 프로토콜(IP) 통신을 위한 인터넷 프로토콜들의 모음이다.
  • IPSec가 제공하는 보안 서비스의 범위는 호스트나 보안게이트웨이 사이이다.
  • VPN을 구현하는데 사용되는 프로토콜이기도 하다.

즉 한마디로 정리해보면, network layer에서 IP 패킷을 보호하기 위해서 만들어진 프로토콜 표준의 프레임워크이다.

참고로 IPv4에서는 선택적으로 사용되었지만, IPv6부터는 기본 스펙으로 들어가게 된다. (애초에 IPv6를 위해 만들어졌다)

또한, 대부분의 VPN 서버와 클라이언트는 IPsec의 표준을 따른다.

 

 

 

3. IPsec의 기능

 

1) Confidentiality

 - 암호화를 통해 기밀성을 제공한다.

 

2) Integrity

 - HMAC을 통해 무결성을 제공한다.

 

3) Origin Authentication

 - 올바른 송신자로부터 온 것인지를 확인하는 송신자 인증을 제공한다.

 

4) Anti-replay protection

 - 재전송 공격(replay attack)을 막아준다.

 

5) Access control

 - 보안정책(SP)로 패킷 접근 제어한다.

 

6) Limited Traffic Flow Confidentiality

 - 패킷의 출발지와 도차지 정보를 제한적으로 암호화한다.

 

 

 

4. IPSec의 SA와 SP

 

  • SA (Security Association)

SA는 보안 통신을 지원하기 위해 두 peer 간에 공유 보안 속성을 설정하는 것이다. IPSec에서 고려하는 SA의 주요 요소는 다음과 같다.

 

1) Sequence Number Counter : 패킷의 Sequence number 설정을 위한 카운터

2) Anti-Replay Window : 재전송 공격 방어 위한 Window 값

3) AH/ESP : 프로토콜 정보

4) Lifetime : 세션 만료 기간

5) Mode : 동작모드 (Transport, Tunnel)

6) path MTU : 경로 MTU 값

 

IPSec 프로토콜을 통해 통신할 때 위의 요소들에 해당하는 공유 보안 속성을 잘 설정해야만 IPSec 통신을 잘 수행할 수 있다.

 

  • SP (Security Policy)

SP는 패킷을 필터링하기 위한 패킷 필터링 정책이라고 생각하면 된다.

 

외부에서 내부로 들어오는 Incoming Traffic과 내부에서 외부로 나가는 Outgoing Traffic으로 나누어 정책을 설정한다. IPSec 프로토콜에서는 SP를 통해 IP 패킷의 허용, 폐기. 보호 등을 관리한다. IPSec에서 고려하는 SP의 주요 요소는 다음과 같다.

 

1) Source / Destination IP Address : 송/수신 IP 주소

2) Source / Destination Port : 송/수신 포트 번호

3) Name : DNS 식별자 등의 이름

4) Transport Layer Protocol : TCP or UDP

 

 

 

4. IPsec의 프로토콜 종류

 

IPsec은 앞서 말했듯이 IP 패킷의 보안을 위해 만들어진 프로토콜들의 모음이다. 따라서 여러가지 프로토콜들이 존재한다. IPsec 프로토콜 패킷의 헤더에 따라 크게 두개의 프로토콜로 나눌 수 있다. 1) AH2) ESP 이다.

 

ㄷ또한 키 교환시 이용되는 프로토콜 3) IKE 가 있다.

 

참고로, IPsec의 헤더가 붙으면 IP 패킷의 크기가 기존의 MTU보다 커질 것이다. 이로 인한 fragmentation을 피하기 위해서는 MTU의 크기를 줄여야 한다.

 

 

1) AH 프로토콜 (Authentication Header 프로토콜)

 

  1.1) AH 프로토콜의 헤더

 

Authentication Header

 

Next Header : 프로토콜의 종류를 식별

Payload length : AH 패킷의 사이즈

Reserved : 나중에 사용될 것을 위한 잉여자리 (0으로 채워짐)

SPI(Security Parameters Index) : 패킷 처리를 위한 SA 정보를 찾을 때 parameters로 활용됨

Sequence Nuber Field : Sequence number를 담음

Authentication Data : 데이터 인증에 필요한 정보를 담음. (HMAC 값)

 

  1.2) AH 프로토콜의 기능

 

  • 무결성 보장
  • 송신자 인증
  • replay attack 방지

무결성 보장과 송신자 인증HMAC을 이용한다. checksum이나 TTL과 같은 특정 부분을 제외한 패킷의 모든 부분을 가지고 HMAC을 생성한다. 이 때 HMAC은 peer간에 공유된 비밀키를 바탕으로 생성된다. 따라서 HMAC을 통해 올바른 송신자로부터 온 패킷인지패킷이 중간에 변조없이 도착했는지를 알 수 있다.

 

그렇다면, 이 비밀키는 어디서 얻을 수 있을까?

비밀키는 DB에 저장되어 있고, SPI를 통해서 찾을 수 있다. SPI는 IPsec 프로토콜 헤더에 포함되어 있으므로, 받은 SPI를 가지고 DB를 찾아보면 비밀키를 얻을 수 있다. SPI는 IKE 교환 과정에서 destination으로부터 받는다.

 

replay attack 방지sequence number를 덧붙여서 실현한다.

 

참고로 AH 프로토콜은 암호화 기능은 제공하지 않는다.

 

  1.3) AH 프로토콜의 과정

 

AH protocol

 

 

2) ESP 프로토콜 (Encapsulated Security Payload 프로토콜)

 

  2.1) ESP 프로토콜의 헤더

 

Encapsulating Security Payload

 

SPI : 패킷 처리를 위한 SA 정보를 찾을 때 parameters로 활용됨

Sequence number : Sequence number를 담음

payload Data : 전송될 데이터

Padding : Payload와 Authentication Data 구분 위해 사용

Pad length : 패딩의 길이

Next header : 프로토콜의 종류를 식별

Authentication Data : 데이터 인증에 필요한 정보를 담음 (HMAC 값)

 

ESP 헤더의 가장 큰 특징으로는 데이터 앞에 위치하는것이 아니라 데이터를 감싸고 있다는 것이다.

 

 

  2.2) ESP 프로토콜의 기능

 

  • 기밀성 보장
  • 무결성 보장

이렇게 두가지 보안 기능을 제공한다. network layer에서 암호화를 통해 기밀성을 보장하므로, 그위의 레이어 (application layer, transport layer) 에서도 자동적으로 기밀성이 보장된다.

 

 

3) IKE (Internet Key Exchange) 프로토콜

 

앞서 IPSec가 올바르게 동작하기 위해서는 SA(Security Association) 설정과정이 필수적이라고 했다. 그렇다면, peer 간에 특정 요소에 어떤 설정 값을 사용할지 정하는 과정이 필요하다. 이러한 과정을 IKE라고 한다.

 

IKE 과정

 

위의 그림에서 볼 수 있듯이, IKE는 크게 두가지 단계로 구성된다.

 

[1단계]

IKE 알고리즘 자체의 SA를 설정하고 협상하는 단계이다. 이후 IPSec SA 관련 설정들을 안전하게 협상하는데 필요한 여러 SA들을 설정하는 단계로, IPSec SA 설정을 위한 기초 작업이라고 볼 수 있다.

 

[2단계]

IPSec 알고리즘의 SA를 설정하고 협상하는 단계이다. 2단계가 실질적인 IPSec 연결을 설정하는 단계라고 볼 수 있다. 이 과정에서 IPSec에 사용할 Sequence Number Counter, Window 크기, AH/ESP 프로토콜 정보, Mode 등을 설정한다.

 

이처럼 두 peer 간에 위와 같은 IKE 단계를 거쳐야 정확한 통신을 수행할 수 있다.

 

 

 

5. IPsec의 두가지 동작 모드

 

1) Transport mode

 

Transport mode packet

 

Transport mode

 

- 호스트 간의 통신과정에 적용 (End-to-end)

- 따라서 통신구간 전체에 적용

- 호스트들이 IPsec를 적용할 수 있어야 한다.

- 기존의 IP 헤더와 데이터 사이에 ESP/AH 헤더 추가.

- 가장 최소한의 헤더만 추가하므로 터널모드에 비해 효율적.

- ESP 프로토콜의 경우, authentication을 옵션으로 선택 가능

- 기존의 IP 헤더를 사용하므로, 트래픽 경로가 노출된다.

 

 

2) Tunnel mode

 

Tunnel mode packet

 

Tunnel mode

 

- IP 터널에 적용

- site-to-site, client-to-site에 적용

- 기존의 IP 패킷 전체를 encapsulate 한다.

- 기존의 IP 패킷 앞에 ESP/AH 헤더와 새로운 IP 헤더를 추가.

- 새로운 ESP/AH 헤더의 출발/도착 지점은 터널의 시작과 끝이다.

- local network 내에서는 암호화가 적용되지 않는다.

- 메시지가 특정 컴퓨터에서 왔다는 것을 보장 못한다. (특정 subnet에서 왔다는 것만 보장 가능)

- 게이트웨이 이후의 local network 내에서는 IPSec 프로토콜이 적용되지 않는다

 

 

 

6. 정리

 

모드 종류

전송 모드

터널 모드

보호 범위

IP 패킷의 payload

IP 패킷 전체

프로토콜 적용 구간

Host to host

Gateway to gateway

Gateway to host

보안상의 장점

최소한의 헤더만 추가하므로

효율적

전체 트래픽 경로 노출 방지 가능

보안상의 단점

트래픽 경로가 노출

전체 통신구간에서 프로토콜 적용 불가능

 

 

 

오늘 배운 내용을 정리해보면,

 

1. IPsec은 Network layer 에서 여러가지 암호화와 인증을 해주는 프로토콜이다.

 

2. IPsec은 기밀성, 무결성, 송신자인증, 재전송 공격 방지 등의 기능이 있다.

 

3. 메시지 인증만 해주는 AH 헤더와, 기밀성까지 보장해주는 ESP 헤더가 있다.

 

4. 호스트 사이에서 적용되는 transport mode와, 게이트웨이 사이에서 적용되는 tunnel mode 가 있다.

 

 

위 내용은 공부하며 정리한 것으로 오류가 있을 수 있습니다.