[Network]

[Network] VPN 개요 및 IPSec VPN - Transport Mode, Tunnel Mode, AH & ESP 헤더, Interent Key Exchange(IKE)

starterr 2025. 2. 24. 16:39
반응형

A. 개요

  • VPN 이란 공인망을 통한 사설망 연결과 데이터 암호화를 모두 해결하기 위해 탄생한 기술 혹은 장비를 의미.
  • VPN은 공인 인터넷을 사이에 둔 사설망과 사설망이 공인 IP로의 NAT와 같은 제약 없이 사설 IP를 이용해 통신할 수 있도록 지원하며 데이터의 암호화를 제공.
  • VPN은 공인 인터넷에서 IP 패킷을 캡슐화함과 동시에 데이터의 암호화/인증방식을 협상함.
    • 협상 과정을 거친 후 캡슐화된 패킷이 오고 가기 때문에 아무리 공인 인터넷상이라 하더라도 외부인이 이 패킷을 쉽게 탈취할 수 없다.
    • 이 기술을 터널링(Tunneling)이라 하며 보통 VPN 터널 뚫렸다의 그 터널 맞음.
    • 여기에 사용된 프로토콜을 터널링 프로토콜이라 부름.

장점

1. 비용이 저렴하다

2. 설치가 간편하다.

단점

1. 아무리 암호화가 되었다 하여도 외부에 노출되기 때문에 전용 회선과 비교 시 보안에 취약하다.

2. 인터넷이 끊기면 패킷이 제대로 전달되지 않을 수 있다.

B. IPSec VPN

  • Site to Site 방식. 다른 말로 Network to Network 방식이다.
  • 사설망과 사설망을 연결하고자 할 때 IPSec VPN을 사용하는게 일반적이다.
  • 사설 네트워크는 서로 중복이 되면 안된다.
  • 패킷을 암호화함으로써 L3의 단점인 데이터 암호화를 해결한다.
    • 이는 IPSec 프로토콜이 있기에 가능하다.
  • 패킷의 이동과 암호화는 전적으로 VPN이 책임진다.
    • VPN 하단 장비와 PC들은 패킷 이동과 암호화를 신경 쓰지 않고 라우팅을 통해 상대편 네트워크로 이동할 수 있다.

IPSec VPN
IPSec VPN
IPSec VPN
IPSec VPN

초록색은 본사

빨간색은 지사

파란색은 인터넷

위의 그림처럼 여러 가지의 형태로 IPSec VPN 구성을 할 수 있다.

1. IPSec 프로토콜

  • IP 패킷의 암호화와 인증, 암호화를 위한 키 관리를 담당하는 프로토콜 스위트
  • IPSec의 역할
    • 안전한 터널을 생성한다.
    • 패킷을 인증할 수단을 제공한다.
    • 패킷을 암호화할 키를 관리 및 제공한다.

Transport Mode & Tunnel Mode

Transport Mode & Tunnel Mode
Transport Mode & Tunnel Mode

Transport Mode(이하 전송 모드)

  • 단말에서 단말로 직접 터널을 연결하는 방식
  • IP Header를 변형하지 않고 그대로 사용하면서 IP Header를 제외한 데이터 부분만을 인증 혹은 보호하며 단말이 이 모든 과정을 담당하기에 단말과 단말 간 통신이 가능하다.

Tunnel Mode(이하 터널 모드)

  • VPN을 양쪽 네트워크에 두고 VPN 간 터널을 연결할 것인지를 결정하고 운용하는 방식
  • 새로운 IP Header(공인 IP)를 추가적으로 씌워 기존의 IP Header (사설 IP)를 캡슐화하고 IP 패킷 전체를 인증 혹은 보호한다.
  • VPN 장비가 이를 도맡아 하므로 사설 네트워크 간 통신이 가능하다.
  • 요즘 사용하는 대부분의 IPSec VPN은 터널모드이다.

2. AH & ESP 헤더

  • AH 헤더와 ESP 헤더는 IPSec 터널이 생성된 이후 VPN이 패킷을 암호화/인증할 때 사용된다.
  • 이 두 헤더를 사용하는 이유는 IPSec 터널 내를 흐르는 데이터 패킷을 암호화하고 인증하여 외부 침임으로부터 보호하는 것이다.
    • 왜? 인터넷이 처음 설계되었을 때 IP 패킷의 암호화는 고려되지 않고 만들어졌기 때문

2-1. AH(Authentication Header)

  • AH는 IP 패킷의 무결성을 입증하기 위한(변질되지 않았음을 인증) 프로토콜 헤더
    • 패킷의 암호화에는 전혀 관여하지 않는다.
  • 페이로드와 헤더를 인증한 후 인증 데이터를 생성하여 AH 헤더에 이를 포함시켜 패킷에 부착.
    • 그 후 New IP Header(공인 IP)를 추가로 씌워 기존 AH 헤더, IP 헤더와 IP 페이로드를 캡슐화. (하기 그림 참조)

AH 헤더가 추가된 IP 패킷
AH 헤더가 추가된 IP 패킷
AH 헤더가 추가된 IP 패킷
AH 헤더가 추가된 IP 패킷

  • AH 헤더에는 인증 데이터가 존재함.
  • 인증데이터? = 사설 IP에 대한 정보가 있는 IP 헤더와 IP 페이로드, 그리고 뉴 IP 헤더를 해쉬 알고리즘(HMAC, MD5, SHA 등)을 이용해 고정 크기의 블록으로 만든 것이다.

2-2. ESP(Encapsulating Security Payload)

  • ESP 헤더는 AH 헤더의 인증 기능에 더 해 AH 헤더의 약점인 패킷 암호화 기능을 갖춘 프로토콜 헤더이다.
  • 암호 알고리즘(DES, 3 DES, AES)과 함께 암호화 키를 사용하여 패킷을 암호화한다.
    • 그래서 일반적으로 IPSec VPN을 사용한다고 하면 대부분 패킷에 ESP 헤더를 부착하여 사용하는 것을 뜻한다.
  • ESP는 패킷의 페이로드와 IP 헤더를 암호화하고 ESP 헤더와 선택사항인 인증 데이터를 부착한 후 New IP Header(공인 IP)를 씌워 패킷을 캡슐화한다. (하기 그림 참조)

ESP 헤더가 추가된 IP 패킷
ESP 헤더가 추가된 IP 패킷

  • ESP 트레일러 : 패킷을 암호화하면 필수적으로 생성되는, 페이로드와 인증 데이터를 구분하기 위한 "Padding"과 내부 프로토콜 헤더에 관한 정보를 가지고 있다.
  • ESP 헤더 : IP헤더와 IP 페이로드 그리고 ESP 트레일러를 암호화한다.
  • ESP Auth : 암호화한 IP 헤더 & 페이로드, 트레일러에 해쉬 알고리즘을 적용한 인증 데이터

ESP 헤더
ESP 헤더

  • SPI(Security Parameter Index) : 이는 Security Association의 식별번호이다.
    • 그럼 Security Association은 무엇이냐?
      • 이는 VPN과 VPN이 데이터를 안전하게 교환하기 위해 쌍방 간에 합의되는 사항이다.
      • 즉, SA는 VPN 간의 협약이다. = SPI는 VPN 간의 협약의 식별번호란 뜻이다.
      • SA에는 VPN 간 서로 인증할 방법, 터널의 유지 시간, 인증 데이터를 생성하기 위한 해쉬 알고리즘 합의 등등 많은 정보들이 포함된다.

3. Interent Key Exchange(IKE)

  • IKE는 IPSsec의 SA 생성을 위한 "복합 프로토콜"이다.
    • 복합 프로토콜이라 부른 이유
      • IKE가 새롭게 설계한 프로토콜이 아닌 ISAKMP (Internet Security Association and Key Management Protocol)라는 키 교환 프로토콜의 구조와 설계, 메시지 포맷을 명시한 프로토콜을 기반으로 OAKLEY, SKEME와 같은 키 교환 프로토콜을 결합하여 만든 프로토콜이기 때문이다.
  • UDP Port 500을 사용한다.
  • IPSec VPN 사용 시 VPN 간의 안전한 교환이 필수적일텐데 이를 실현하기 위해 IKE가 존재한다.
    • 즉, IKE는 IPSec 터널을 생성하고 상대방을 인증하며, 패킷을 암호화/인증할 알고리즘과 암호화 키를 안정적으로 교환할 수 있는 과정을 정의한 프로토콜이다.

IKE Phase 1 (ISAKMP SA)

VPN간 안전한 Phase 2 SA 교환을 위한 Phase 1 터널 생성과 상대방(Peer VPN) 인증(IKE Phase 1, ISAKMP SA)

-> IPSec 터널을 생성하여 패킷을 암호화/인증하기 이전에 '패킷(데이터)의 암호화 알고리즘 결정 및 암호화 키 교환'을 위한 환경을 마련하는 것이다.

-> 터널의 생성과정 중 상대방을 인증하기 위한 수단( 암호화/인증할 알고리즘, 암호화 키 교환)을 수행한다.


IKE Phase 2 (IPSec SA)

패킷(데이터)의 암호화 알고리즘 결정과 암호화 키 교환(IKE Phase 2, IPSec SA)

-> IPSec 터널이 생성된 상태에서 패킷을 암호화/인증할 수단을 교환하여 패킷 교환 준비를 끝마치는 과정이다.

-> 패킷을 암호화할 암호 알고리즘, 암호화 키를 교환한다.

-> 1번 과정에서 생성된 터널을 "기반"으로 새로운 터널을 생성한다.

4. IKE 터널 생성 과정

1. IKE Phase 1 (ISAKMP SA)

  • IKE Phase 1의 목표는 ISAKMP SA를 협상하여 안전한 터널을 생성하고 상대방을 인증하는 것이다.
    • 안전한 터널?? = 암호화된 패킷의 교환에 직접적인 영향을 미치는 수단(IKE Phase 2 SA)을 암호화하여 전달할 수 있는 터널을 의미한다.
  • IKE Phase 1의 목표를 위해 아래 3가지를 수행한다.
    • ISAKMP SA 제안 및 협의
    • 인증 정보 교환을 통한 상대방 VPN (Peer VPN) 인증
    • 인증 정보 암호화 및 Phase 2에서 사용할 암호화 키 생성
  • "ISAKMP SA" 내용은 다음과 같다.
    • Hash : 인증 정보 교환 시 인증 정보가 변질되지 않았음을 증명하기 위한 해쉬 코드 첨부에 사용되는 해쉬 알고리즘 (MD5, SHA)
    • Authentication : 상대방 VPN을 인증하기 위한 방법 (Pre-shared Key, RSA Encryption, RSA Signature)
    • DH(Diffie-Hellman) Group : 인증 정보를 암호화할 키를 생성하는 대칭키 교환 알고리즘으로 Phase 2에서 사용 (DH Group 1, DH Group 2, DH Group 5)
    • Lifetime : Phase 1 Tunnel이 유지되는 시간, 다시 말해 새로운 키를 생성하는 주기를 의미 (통상적으로 86400초)
    • Encryption : 키 교환 알고리즘과 함께 인증 정보를 암호화할 암호화 알고리즘 (AES, DES, 3 DES)

IKE Phase 1
IKE Phase 1

Step 1.

VPN 간 사용 가능한 SA를 협의한다. 한쪽이 먼저 ISAKMP 세트(위에 5개)를 제안하면 상대방 VPN이 확인 후, 자신이 사용 가능한 ISAKMP 세트 중 일치하는 것을 확인하여 답변을 보낸다.

Step 2.

1번 과정에서 결정된 DH 키 교환 알고리즘을 사용, 키 재료를 교환하여 VPN간 공통적인 대칭키를 생성한다. 이 대칭키는 인증 정보 암호화 및 Phase 2의 대칭키 생성에 사용된다.

Step 3.

1번 과정에서 결정된 해쉬 알고리즘 및 암호화 알고리즘과 2번에서 생성된 대칭키를 이용하여 인증 정보를 암호화하여 서로에게 전송함으로써 인증 과정을 마치고 서로를 인증하며 터널을 생성한다.

위 과정을 통해 2대의 VPN은 서로 인증하고 공통으로 사용 가능한 대칭키를 확보하였다.

Phase 2에서 교환할 SA를 암호화할 준비를 마쳤다. = Phase 1 터널이 생성되었다.

2. IKE Phase 2

  • IKE Phase 2의 목표는 Phase 1에서 생성된 안전한 터널을 기반으로 패킷을 암호화/인증할 실질적인 SA을 협의하고 "패킷"을 암호화하여 전송할 터널을 생성하는 것이다.
  • 목표를 위해 아래의 2가지를 실시한다.
    • IPSec SA 제안 및 협의
    • 패킷을 암호화할 암호화 키 생성 및 인증
  • 참고로 Phase 2 터널에서 오가는 SA는 모두 Phase 1에서 생성한 대칭키 / 결정한 암호화 알고리즘에 의해 암호화된다는 것이다.
  • Phase 2의 터널은 패킷을 암호화/인증하기 위한 SA를 다시 한번 협상하게 되며 이 과정에서 Phase 1에서 생성한 대칭키에 키 재료를 추가로 교환하여 새로운 대칭키를 만든다. 이 키는 "패킷"을 암호화하는 데 사용되는 키이다.
  • IPSec SA는 아래와 같다
    • IPSec Protocol : 패킷 인증/암호화를 위한 프로토콜 헤더 선택 (AH / ESP)
    • Encapsulation Mode : IPSec 터널의 운용 모드 선택 (Transport / Tunnel)
    • Encryption : 패킷을 암호화할 암호화 알고리즘 선택 (AES, DES, 3 DES)
    • Authentication : 패킷을 인증할 해쉬 알고리즘 선택 (MD5, SHA)
    • Lifetime : Phase 2 Tunnel이 유지되는 시간, 다시 말해 Phase 1의 대칭키를 기반으로 키를 재생성하는 주기를 의미 (Phase 1보다 낮게 책정, < 86400초)
    • Perfect Forward Secrecy(PFS, Option) : 키를 주기적으로 교환하도록 강제하는 기능 설정, 옵션 사항

IPSec VPN
IPSec VPN

Step 1.

한쪽 VPN이 먼저 IPSec 세트를 제안하면 상대방 VPN이 이를 확인한 후 자신이 사용 가능한 IPSec 세트 중 일치하는 것을 확인하여 답변을 보낸다. 여기에 패킷에 실질적인 영향을 주는 AH / ESP, Transport / Tunnel Mode, 암호화 알고리즘, 해쉬 알고리즘, PFS 등이 포함된다.

IPSec VPN의 사용 목적에 해당하는 SA를 협의하는 과정이다.

앞서 IPSec VPN은 Phase 1에서 생성한 대칭키를 기반으로 Phase 2에서 추가적인 키 재료(Key Materials)를 서로에게 보내 새로운 대칭키를 생성한다고 말씀드렸는데요. 이를 위해 랜덤 난수 값인 'Nonce'를 교환합니다. 상대방 VPN이 IPSec SA 확인 답변과 함께 'Nonce'를 반대편 VPN에 전송합니다. 이 'Nonce'는 새로운 대칭키를 생성하기 위한 키 재료로 사용될 뿐만 아니라 재전송 공격(Replay Attack)을 방지하기 위한 수단으로 사용됩니다. SA에 협의된 Nonce는 한 번만 사용되고 더 이상 사용되지 않습니다. 해커가 이 Nonce가 포함된 암호화 패킷을 훔쳐 전송하더라도 '한 번만 사용되어야 할 이 패킷'이 또 사용되었으므로 VPN이 이를 알아채고 거부할 수 있죠. 말 그대로 '재전송'된 패킷임을 알아차리고 거부하는 것입니다. 다시 말하면 이 'Nonce'를 통해 서로를 인증한다고 볼 수 있습니다.
(재전송 공격 : 해커가 암호화된 패킷을 가로챈 후, 가공하지 않고 '재전송'하여 마치 송신자인 행세를 하는 공격)

Step 2.

한쪽 VPN이 마찬가지로 Nonce를 상대방 VPN에게 전송한다. 그리하여 새로운 대칭키가 탄생하며 이 대칭키는 패킷을 암호화하는 데 사용된다.

마지막으로 눈여겨볼 점은 Phase 1 터널과 Phase 2 터널의 'Lifetime'입니다. 본래 암호화 키는 오래 사용되면 사용될수록 보안이 약화됩니다. 아무리 암호화된 패킷이라 하더라도 동일한 암호화 키에 의해 패턴이 반복된다면 공격에 취약해지기 마련이죠. 소위 말해 '키가 닳는다'라고 표현합니다. 그렇기에 터널을 새롭게 생성하여 새로운 키를 생성합니다.

그럼 "Phase 2의 터널만을 새롭게 생성하면 되는 것이 아닌가?" 하는 의문이 들 수 있습니다. 이 글을 자세히 보신 분은 기억하시겠지만 Phase 2의 대칭키는 Phase 1의 대칭키와 수학적으로 연관이 깊다고 말씀드렸죠. Phase 1의 대칭키를 기반으로 Phase 2의 대칭키가 만들어집니다. 그렇기에 Phase 1와 Phase 2 터널 모두 Lifetime을 갖는 것입니다. 이를 떠나 Phase 2에서 키의 교환 주기를 강제해 보안을 더욱 강화하기 위해 사용하는 것이 바로 Perfect Forward Secrecy(이하 PFS)이며 PFS를 통해 생성되는 대칭키는 Phase 1의 대칭키와 아무런 관련이 없습니다.

5. 패킷의 전달 과정

5-1. 헤더의 변화

토폴로지
토폴로지

10.10.10.0/24에 소속된 10.10.10.10의 주소를 가진 PC A가 10.10.20.0/24에 소속된 10.10.20.10의 주소를 가진 PC C와 통신을 하고 싶다고 할 때 통신 과정을 알아보겠다.

1. A에서 패킷을 만든다. 패킷의 내용은 다음과 같다.

PC 1에서 만들어진 패킷
PC 1에서 만들어진 패킷

2. PC A의 게이트웨이인 VPN으로 패킷이 이동하고 해당 VPN 장비에 의해 패킷은 암호화되어 전송된다.

PC 1 측의 VPN 장비가 암호화한 패킷
PC 1 측의 VPN 장비가 암호화한 패킷

3. 암호화된 패킷은 인터넷을 통해 반대 VPN 장비에 도달하여 복호화 및 해쉬 알고리즘을 이용해 데이터가 변질되었는지 확인을 한다. 이때 복호화가 가능한 이유는 터널 생성과정에서 동일한 대칭키를 획득하였기에 가능한 것이다.

4. 오리진 목적지를 확인한 후 VPN 장비에서 PC C로 전달이 된다.

5-2. 목적지의 변화

토폴로지
토폴로지

1. PC A에서는 아래와 같이 게이트웨이를 넥스트 홉으로 만들어 패킷을 보낸다.

나갈 통로가 한 곳뿐이니.. 당연한 소리

PC 1 패킷
PC 1 패킷

2. PC A 측의 VPN 장비는 넥스트 홉으로 Tunnel IP를 사용한다.

  • Tunnel IP란?
    • IPSec VPN 끼리 상대방 VPN을 넥스트 홉으로 지정하기 위해 사용하는 IP를 뜻한다.
    • 172.16.0.0 - 172.16.128.0 범위만 사용한다.
    • 다른 IP와 겹쳐선 안된다.

터널 아이피 추가
터널 아이피 추가

2. 다시 PC A측의 VPN 장비는 넥스트 홉으로 Tunnel IP를 사용하여 패킷을 넥스트 홉인 PC C 측의 VPN 장비로 전송한다.

Tunnel IP가 넥스트 홉으로 바뀜
Tunnel IP가 넥스트 홉으로 바뀜

3. PC C측의 VPN 장비가 패킷을 확인 후 PC C로 전달한다.


[Network] 1. 네트워크 공격 위협 개요

[Network] 1. 네트워크 공격 위협 개요

네트워크 공격 위협 개요네트워크 해킹 개요1. 의미 - 보안의 기본 요소에 따라 기밀성, 무결성, 가용성의 침해를 통해 네트워크 상에서 발생되는 해킹을 의미 2. 네트워크 위협 요소 - 여러 통신

infoofit.tistory.com

[AWS] 클라우드 서비스 종류(IaaS, PaaS, SaaS) 비교

[AWS] 클라우드 서비스 종류(IaaS, PaaS, SaaS) 비교

A. 클라우드 개요1. 클라우드란?클라우드란 언제나, 어느곳에서나 원하는 만큼의 IT 리소스를 손쉽게 사용할 수 있게 하는 서비스입니다. 이러한 클라우드 컴퓨팅 환경이 널리 보급 되면서 기업

infoofit.tistory.com

반응형