IT Study/Network 쉽게 이해하기
[ 네트워크 쉽게 이해하기 26편 ] VPN(Virtual Private Network, 가상사설망)이란?
sungchan41
2018. 2. 10. 21:58
반응형
VPN(Virtual Private Network, 가상사설망)이란?
1. 사설망(Private Network)과 공중망(Public Network)
VPN에 대한 이해를 위해서는 먼저 사설망(Private Network)과 공중망(Public Network)에 대한 이해가 필요하다.
- 사설망(Private Network)이란 특정한 회사나 조직이 소유하고 독점적으로 사용하는 네트워크를 의미한다. 위키피디아에서는 “사설 IP 주소 공간을 이용하는 네트워크이며 RFC 1918과 RFC 4193 표준을 준수한다. 이러한 주소는 가정, 사무실, 기업 랜에 쓰인다”라고 설명하고 있다. 쉽게 말해서 우리가 가정에서 공유기 내부에서 사설 IP로 사용하고 있는 네트워크가 대표적인 사설망이라고 보면 된다.
- 공중망(Public Network)은 사설망과 대칭되는 개념으로 불특정 다수의 사용자에게 서비스를 제공하는 통신망으로 우리가 흔히 쓰고 있는 인터넷이 대표적인 공중망이라고 볼 수 있다.
우리가 알고 있는 대표적인 사설망으로는 회사 내부의 네트워크, 행정전산망이나 금융 기관에서 사용하고 있는 금융망 등을 들 수 있는데, 사설망은 보안과 일정한 통신 품질을 제공한다는 면에서 공중망에 비해 장점이 있다.
그런데 은행 등에서 본점과 지점을 사설망으로 연결하고자 할 경우에는 어떻게 연결할 것인지를 고민해보자. 가장 안전하게 연결하고 싶다면 본점과 지점을 전용회선으로 연결하고 이를 사설망으로 구축하면 될 것이다. 그러나 전용회선의 경우 보안성이나 품질 면에서는 인터넷 망에 비해서 뛰어날 수도 있으나(최근에는 인터넷이 품질이나 속도는 더 뛰어나다) 직접 전용망을 구축하거나 통신 사업자에게서 전용망을 임대하고 이를 연결하기 위한 전용 네트워크 장비를 도입하는데 막대한 비용이 소요된다.
2. VPN의 개념
본격적으로 VPN은 인터넷을 이용하여 고비용의 사설망을 대체하는 효과를 얻기 위한 기술로 인터넷망과 같은 공중망을 사용하여 둘 이상의 네트워크를 안전하게 연결하기 위하여 가상의 터널을 만들고 암호화된 데이터를 전송할 수 있도록 구성된 네트워크라고 정의할 수 있으며, 다시 정리하자면 공중망 상에서 구축되는 논리적인 전용망이라고 할 수 있다. 위키피디아에서는 다음과 같이 VPN을 정의하고 있다.
공중 네트워크를 통해 한 회사나 몇몇 단체가 내용을 바깥 사람에게 드러내지 않고 통신할 목적으로 쓰이는 사설 통신망이다. 가상 사설망에서 메시지는 인터넷과 같은 공공망 위에서 표준 프로토콜을 써서 전달되거나, 가상 사설망 서비스 제공자와 고객이 서비스 수준 계약을 맺은 후 서비스 제공자의 사설망을 통해 전달된다.
|
|
전용망 연결 |
VPN 연결 |
위의 그림에서와 같이 본점과 지점간에 전용망을 연결하는 것과 공중망(인터넷) 상에서 VPN 터널을 구성하고 VPN을 연결하는
것이 논리적으로 동일하다고 할 수 있으며, VPN은 인터넷을 통해 전용망과 같은 사설 네트워크를 구성할 수 있도록 해주는
기술이라고 이해하면 된다.
것이 논리적으로 동일하다고 할 수 있으며, VPN은 인터넷을 통해 전용망과 같은 사설 네트워크를 구성할 수 있도록 해주는
기술이라고 이해하면 된다.
3. VPN 터널링 프로토콜
VPN 연결을 구성하는 가장 중요한 요소인 VPN 터널링 프로토콜은 크게 VPN 연결 지점간에 오가는 데이터 패킷의 암호화, VPN 터널의 생성 및 관리, 그리고 암호화 키 관리를 수행한다. 터널링 프로토콜은 데이터가 전송 네트워크를 통과할 수 있도록 하는 라우팅 정보를 포함한 헤더와 개인데이터를 캡슐화한다. 캡슐화된 프레임은 헤더에 추가되어 있는 라우팅 정보를 기반으로 인터넷과 같은 공중망을 경유하여 터널의 엔드포인트로 전송되고 목적지에 도달하면 디캡슐화 되어 최종 목적지로 향하게 된다. 대표적인 VPN 터널링 프로토콜로는 PPTP(Point-to-Point Tunneling Protocol), L2TP(Layer 2 Tunneling Protocol), IPsec(IP Security) 등을 들 수 있다.
3.1 PPTP(Point-to-Point Tunneling Protocol)
PPTP는 PPP(Point-to-Point) 접속을 확장하여 원격 사용자와 사설망 사이의 보안 접속을 제공하는 Layer 2 터널링 프로토콜로 마이크로소프트, 3Com 등이 공동으로 제안하였다. PPTP는 인터넷 프로토콜인 TCP/IP를 그대로 이용하면서도 외부인이 접근할 수 없는 별도의 가상사설망을 구축할 수 있도록 해주는 프로토콜이다. PPTP를 사용하여 VPN 사용자(클라이언트)는 PPP(우리가 흔히 쓰는 다이얼업 방식의 인터넷 연결이 여기에 해당된다) 방식으로 서버에 접속한 후 인증을 받으면 VPN 터널이 생성되고 이를 통해 VPN 연결이 가능해진다. 주로 외부에서 사내의 서버에 접속하기 위해 널리 이용되며 Microsoft Windows, 안드로이드 등 다양한 OS에서 기본적으로 제공하고 있다.
위의 그림은 Windows와 안드로이드에 기본으로 내장된 VPN 클라이언트에서 PPTP를 지원하는 예를 나타내고 있다.
위의 그림은 PPTP 프로토콜의 캡슐화 및 암호화 과정을 나태낸다. 그림에서와 같이 터널링된 데이터에 대해서 PPTP 프로토콜은 수정된 버전의 GRE(Generic Routing Encapsulation)를 사용하여 PPP 프레임을 캡슐화하고 캡슐화된 PPP 프레임의 페이로드에 대해 암호화나 압축을 수행하게 된다. 이 때 PPP 프레임은 MS-CHAP v2 또는 EAP-TLS 인증 프로세스에서 생성된 암호화 키를 사용하여MPPE(Microsoft Point-to-Point Encryption, Microsoft 지점 간 암호화)로 암호화할 수 있다. 사용자 인증은 PPP 인증을 이용한다.
3.2 L2TP (Layer 2 Tunneling Protcol)
L2TP는 Microsoft가 제안한 PPTP와 Cisco가 제안한 L2F(Layer 2 Forwarding) 프로토콜을 결합한 것으로 PPTP의 장점과 L2F의 장점을 하나로 모으자는 의도로 개발된 프로토콜이다. PPTP와는 달리 L2TP는 IP 네트워크(UTP/IP) 뿐만 아니라 IP 전송계층이 없는 WAN 구간에서도 사용이 가능하며 X25, 프레임 릴레이, ATM(Asynchronous Transfer Moder) 등 다양한 네트워크를 지원한다는 장점이 있다. PPTP에 비해서 L2TP는 다음과 같은 차이점을 갖는다.
- PPTP는 IP기반의 네트워크만 지원하는 반면 L2TP는 패킷 중심의 지점간 연결이기만 하면 통신이 가능하다. L2TP는 IP(TCP가 아닌 UDP 사용), 프레임 릴레이 PVC(permanent virtual circuit), X.25 VC(virtual circuit), ATM VC에서 사용할 수 있다.
- PPTP는 두 지점 사이에 하나의 터널만 가능하지만 L2TP는 두 지점 사이에 여러개의 터널을 사용할 수 있으며 터널에 따른 QoS를 적용할 수 있다.
- PPTP와 달리 PPP 데이터 그램을 암호화하지 않으므로 암호화에는 IPsec(IP Security)를 사용하는데 이러한 L2TP와 IPsec의 조합을 L2TP/IPsec이라고 한다.
L2TP/IPsec의 캡슐화는 L2TP 캡슐화와 IPsec 캡슐화의 두 단계로 구성된다.
위의 그림과 같이 PPP 프레임(PPP 헤더+IP 데이터그램)이 L2TP 헤더 및 UDP 헤더와 함께 래핑된다.
다음으로 L2TP 메시지가 IPsec ESP(Encapsulating Security Payload) 헤더 및 트레일러, 메시지 무결성과 인증을 제공하는 IPsec 인증 트레일러, 최종 IP 헤더와 함께 래핑된다. IP 헤더에는 VPN 클라이언트와 VPN 서버에 해당하는 원본 및 대상 IP 주소가 포함되어 있다. 이 때, L2TP 메시지는 IKE(Internet Key Exchange) 협상 프로세스에서 생성된 암호화키를 사용하여 DES(Date Encryption Standard) 또는 3DES(Triple DES)로 암호화된다. L2TP에서는 인증서 혹은 사전 공유키를 사용하여 인증을 수행한다.
3.3 IPsec(IP Security)
IPsec은 VPN 터널링의 업계 표준 프로토콜로 강력한 사용자 인증과 암호화를 제공하는 Layer 3 프로토콜이다. IETF IPsec Working Group에 의해 제안되었으며 데이터 송신자의 인증을 허용하는 인증 헤더(AH)와, 송신자의 인증 및 데이터 암호화를 함께 지원하는 보안 페이로드 캡슐화(ESP: Encapsulating Security Payload)의 두 종류의 보안 서비스를 제공한다.
- 인증 헤더(Authentication Header, AH): 데이터의 무결성과 인증 및 재사용 방지를 위한 헤더로 페이로드는 암호화하지 않아 완전한 기밀을 보장하지는 않으나 Replay Attack을 방지함
- 보안 페이로드 캡슐화(Encapsulating Security Payload, ESP): 데이터의 무결성과 인증 및 기밀성을 제공, 트랜스포트 계층 세그먼트를 암호화할 경우와 전체 IP 패킷을 암호화할 경우에 사용
IPsec은 보안 게이트웨이 간의 연결 상태에 따라 터널 모드와 전송(Transport) 모드의 두가지 모드로 나뉘어진다.
[출처: http://www.c-jump.com]
터널 모드에서는 IP 헤더와 페이로드를 모두 암호화하지만 전송 모드에서는 페이로드만 암호화하는데 두 모드의 특징은 다음과 같다.
- 전송(Transport) 모드
- IP 페이로드만 암호화되고 IP 헤더는 변하지 않음
- 패킷에 작은 바이트(byte)만 더해지는 장점이 있음
- 공용 네트워크상에서 패킷의 마지막 출발지와 목적지를 식별할 수 있으므로 QoS 등이 가능함
- 클라이언트가 패킷에 대한 암호화, 복호화를 수행함
- IP 헤더가 암호화되지 않으므로 Layer 4 이상에서는 트래픽을 분석할 수 있음
- 터널(Tunnel) 모드
- IP 헤더와 페이로드가 모두 암호화되며 새로운 패킷의 페이로드가 됨
- 라우터가 IPsec 프록시처럼 동작하게 하고 라우터가 호스트 대신에 암호화를 수행함
- 출발지의 라우터가 패킷을 암호화하고 IPsec을 통해 전달함
- 목적지의 라우터는 IPsec을 통해 전달된 패킷을 복호화 함
- 단말이 IPsec을 수정할 필요가 없으며 트래픽을 분석할 수 없다는 장점이 있음
IPsec은 LAN-to-LAN 방식의 VPN과 Dialup-To-LAN 방식을 동시에 지원할 뿐 아니라 IPv6를 필수적으로 지원하도록 되어 있어서 확장성에 유리하다는 장점과 함께 서로 다른 VPN 제품들 간의 호환성을 극대화할 수 있다는 점에서 많은 장점이 있으나 IP 프로토콜 처리 비용 증가 및 통신 지연으로 인한 성능 저하의 우려가 존재한다. 출처 : http://gotocloud.co.kr/
반응형