1. 들어가면서

최근 한국수력원자력의 내부자료유출 사건 기사를 보면 용의자가 중국 선양에 있는 VPN(가상 사설망)업체를 통해 한수원에 접속하여 정보를 빼낸 듯 하다는 말이 많이 나타난다. 예전의 농협 전산망 중단 사건 때도 VPN을 거쳐 농협 전산망에 접속한 흔적을 발견했다는 기사가 나곤 했다. 여기에 공통적으로 해킹의 수단으로 사용된 것이 VPN인데 해커들이 VPN을 통해 IP 주소를 우회해서 접속하였다는 것으로 마치 VPN이 IP 주소를 우회하는 수단으로 오해를 받고 있다.  뿐만 아니라 스마트폰 등에서도 VPN 앱을 검색하면 수많은 VPN 앱이 나타나는데, 대부분의 용도가 차단된 사이트를 우회해서 접속하거나 혹은 자신의 IP를 감추는데 사용할 수 있다고 되어 있다.

이러한 기사나 앱의 용도로 보면 VPN은 마치 보안을 뚫기 위한 도구로 오해하기 쉬우나 실제로 VPN은 안전한 네트워크 접속을 위한 도구로 개발되었으며 용도에 맞게 사용한다면 보안을 강화하는데 큰 도움을 줄 수 있다. 이 글에서는 VPN에 대한 유래와 기본적인 개념에 대해서 설명하고자 한다.

2. 사설망(Private Network)과 공중망(Public Network)

VPN에 대한 이해를 위해서는 먼저 사설망(Private Network)과 공중망(Public Network)에 대한 이해가 필요하다.

  • 사설망(Private Network)이란 특정한 회사나 조직이 소유하고 독점적으로 사용하는 네트워크를 의미한다.   위키피디아에서는 “사설 IP 주소 공간을 이용하는 네트워크이며 RFC 1918과 RFC 4193 표준을 준수한다. 이러한 주소는 가정, 사무실, 기업 랜에 쓰인다”라고 설명하고 있다.  쉽게 말해서 우리가 가정에서 공유기 내부에서 사설 IP로 사용하고 있는 네트워크가 대표적인 사설망이라고 보면 된다.
  • 공중망(Public Network)은 사설망과 대칭되는 개념으로 불특정 다수의 사용자에게 서비스를 제공하는 통신망으로 우리가 흔히 쓰고 있는 인터넷이 대표적인 공중망이라고 볼 수 있다.

우리가 알고 있는 대표적인 사설망으로는 회사 내부의 네트워크, 행정전산망이나 금융 기관에서 사용하고 있는 금융망 등을 들 수 있는데, 사설망은 보안과 일정한 통신 품질을 제공한다는 면에서 공중망에 비해 장점이 있다.

그런데 은행 등에서 본점과 지점을 사설망으로 연결하고자 할 경우에는 어떻게 연결할 것인지를 고민해보자. 가장 안전하게 연결하고 싶다면 본점과 지점을 전용회선으로 연결하고 이를 사설망으로 구축하면 될 것이다. 그러나 전용회선의 경우 보안성이나 품질 면에서는 인터넷 망에 비해서 뛰어날 수도 있으나(최근에는 인터넷이 품질이나 속도는 더 뛰어나다) 직접 전용망을 구축하거나 통신 사업자에게서 전용망을 임대하고 이를 연결하기 위한 전용 네트워크 장비를 도입하는데 막대한 비용이 소요된다.

보라넷전용선

위의 그림은 2000년대 초반 데이콤(현재는 LG U+)에서 서비스하던 보라넷 전용선의 가격이다. 그림에서 볼 수 있듯이 512Kbps의 속도를 내는 전용선을 임대하는 경우에도 수십에서 수백만원의 비용을 지불해야만 했음을 알 수 있다. 이러한 이유로 고가의 전용망을 대체하여 인터넷을 이용하여 사설망처럼 안전한 전용 네트워크를 구성하고자 하는 요구가 생겨났는데, 이러한 요구로 개발된 것이 바로 VPN(Virtual Private Network,  가상 사설망)이다. 최근의 기업 전용선 서비스는 저 당시의 전용선 서비스와는 달리 인터넷 망을 이용하여 고정 IP를 부여하는 서비스가 대부분으로 엄밀한 의미에서의 사설망이라고 볼 수는 없다. 물론 최근에도 기관간에 전용망을 구축해주는 서비스는 통신사업자들이 계속 수행하고 있으나, 그 비용은 여전히 높은 실정이다.

3. VPN의 개념

앞에서 설명한대로 VPN은 인터넷을 이용하여 고비용의 사설망을 대체하는 효과를 얻기 위한 기술로 인터넷망과 같은 공중망을 사용하여 둘 이상의 네트워크를 안전하게 연결하기 위하여 가상의 터널을 만들고 암호화된 데이터를 전송할 수 있도록 구성된 네트워크라고 정의할 수 있으며 공중망 상에서 구축되는 논리적인 전용망이라고 할 수 있다. 위키피디아에서는 다음과 같이 VPN을 정의하고 있다.

공중 네트워크를 통해 한 회사나 몇몇 단체가 내용을 바깥 사람에게 드러내지 않고 통신할 목적으로 쓰이는 사설 통신망이다. 가상 사설망에서 메시지는 인터넷과 같은 공공망 위에서 표준 프로토콜을 써서 전달되거나, 가상 사설망 서비스 제공자와 고객이 서비스 수준 계약을 맺은 후 서비스 제공자의 사설망을 통해 전달된다.

전용망-2

전용망 연결

vpn-1

VPN 연결

위의 그림에서와 같이 본점과 지점간에 전용망을 연결하는 것과 공중망(인터넷) 상에서 VPN 터널을 구성하고 VPN을 연결하는 것이 논리적으로 동일하다고 할 수 있으며, VPN은 인터넷을 통해 전용망과 같은 사설 네트워크를 구성할 수 있도록 해주는 기술이라고 이해하면 된다.

4. VPN 터널링 프로토콜

VPN 연결을 구성하는 가장 중요한 요소인 VPN 터널링 프로토콜은 크게 VPN 연결 지점간에 오가는 데이터 패킷의 암호화, VPN 터널의 생성 및 관리, 그리고 암호화 키 관리를 수행한다.  터널링 프로토콜은 데이터가 전송 네트워크를 통과할 수 있도록 하는 라우팅 정보를 포함한 헤더와 개인데이터를 캡슐화한다. 캡슐화된 프레임은 헤더에 추가되어 있는 라우팅 정보를 기반으로 인터넷과 같은 공중망을 경유하여 터널의 엔드포인트로 전송되고 목적지에 도달하면 디캡슐화 되어 최종 목적지로 향하게 된다.

대표적인  VPN 터널링 프로토콜로는 PPTP(Point-to-Point Tunneling Protocol), L2TP(Layer 2 Tunneling Protocol), IPsec(IP Security) 등을 들 수 있다.

4.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에서 기본적으로 제공하고 있다.

pptpScreenshot_2015-01-03-00-18-57

위의 그림은 Windows와 안드로이드에 기본으로 내장된 VPN 클라이언트에서 PPTP를 지원하는 예를 나타내고 있다.

pptp-capsule

위의 그림은 PPTP 프로토콜의 캡슐화 및 암호화 과정을 나태낸다. 그림에서와 같이 터널링된 데이터에 대해서 PPTP 프로토콜은 수정된 버전의 GRE(Generic Routing Encapsulation)를 사용하여 PPP 프레임을 캡슐화하고 캡슐화된 PPP 프레임의 페이로드에 대해 암호화나 압축을 수행하게 된다. 이 때 PPP 프레임은 MS-CHAP v2 또는 EAP-TLS 인증 프로세스에서 생성된 암호화 키를 사용하여 MPPE(Microsoft Point-to-Point Encryption, Microsoft 지점 간 암호화)로 암호화할 수 있다. 사용자 인증은 PPP 인증을 이용한다.

4.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 캡슐화의 두 단계로 구성된다.

l2tp-capsule

위의 그림과 같이 PPP 프레임(PPP 헤더+IP 데이터그램)이 L2TP 헤더 및 UDP 헤더와 함께 래핑된다.

ipsec-capsule

다음으로  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에서는 인증서 혹은 사전 공유키를 사용하여 인증을 수행한다.

4.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) 모드의 두가지 모드로 나뉘어진다.

 터널 모드에서는 IP 헤더와 페이로드를 모두 암호화하지만 전송 모드에서는 페이로드만 암호화하는데 두 모드의 특징은 다음과 같다.

  • 전송(Transport) 모드
    • IP 페이로드만 암호화되고 IP 헤더는 변하지 않음
    • 패킷에 작은 바이트(byte)만 더해지는 장점이 있음
    • 공용 네트워크상에서 패킷의 마지막 출발지와 목적지를 식별할 수 있으므로 QoS 등이 가능함
    • 클라이언트가 패킷에 대한 암호화, 복호화를 수행함
    • IP 헤더가 암호화되지 않으므로 Layer 4 이상에서는 트래픽을 분석할 수 있음
  • 터널 모드
    • IP 헤더와 페이로드가 모두 암호화되며 새로운 패킷의 페이로드가 됨
    • 라우터가 IPsec 프록시처럼 동작하게 하고 라우터가 호스트 대신에 암호화를 수행함
    • 출발지의 라우터가 패킷을 암호화하고 IPsec을 통해 전달함
    • 목적지의 라우터는 IPsec을 통해 전달된 패킷을 복호화 함
    • 단말이 IPsec을 수정할 필요가 없으며 트래픽을 분석할 수 없다는 장점이 있음

IPsec은 LAN-to-LAN 방식의 VPN과 Dialup-To-LAN 방식을 동시에 지원할 뿐 아니라 IPv6를 필수적으로 지원하도록 되어 있어서 확장성에 유리하다는 장점과 함께 서로 다른 VPN 제품들 간의 호환성을 극대화할 수 있다는 점에서 많은 장점이 있으나 IP 프로토콜 처리 비용 증가 및 통신 지연으로 인한 성능 저하의 우려가 존재한다.

5. 맺음말

이상으로 VPN의 유래와 개념에 대해서 간략하게 살펴보았다. 서두에서 언급한 바와 같이 VPN은 인터넷과 같은 공중망에서 전용망과 같은 보안 네트워크를 구현하기 위해 개발된 기술로 결코 해킹을 위한 IP 우회 수단이 아니라는 점을 이 글을 통해 전하고자 한다. 다음에는 VPN의 주요 사용 사례와 실제 VPN을 구축하는 내용에 대해서 논하고자 한다.