VPN 서비스가 낯설지 않은 세상이다.

사용하지는 않더라도, 인터넷에 울리는 '워낭소리'를 회피하거나 해외 접근이 차단된 쇼핑몰
이용, 강제로 사용자 거주 지역 웹 사이트로 자동 연결되는 사이트의 타국 버전을 이용하는 용도로 쓸 수 있다는 내용을
들어본 적이 있을 것이다.
VPN이란 Virtual Private Network의 약자로, 우리말로 풀어쓰면 가상
사설 망쯤으로 해석된다. 쉽게 표현하자면 서울에 있는 사용자가 미국/ 중국에서 접속하는 것처럼 속일 수 있어 회사 내부에서만 접근할 수 있는 서버 관리자 페이지에 접속하거나 공유 폴더에 접속해 작업 내역을 업데이트 할 수 있고,
같은 원리로 접근이 차단된 사이트에 접속해 내용을 확인할 수 있다.

VPN은 인터넷을 통해 전세계 어디서나 이용할 수 있어 편리하고 구축 비용을 절감할 수
있지만 '인터넷'을 이용한다는 특성상 외부의 접근을 완전히 차단할 수 없기 때문에 VPN에는 필수적으로 보안(암호화)
솔루션이 적용되고, 사용자의 PC는 VPN 서버에서 제공하는 사설 IP를 사용하기 때문에 익명성도 보장된다.
단지, VPN 서비스를 이용할 경우 암호화 및 VPN 서버라는 중간 거점을 거치기 때문에
해당 사이트에 직접 연결할 때보다 속도가 저하될 수 밖에 없으며, 상용 VPN 업체들은 이러한 문제에 대응하기 위해
지역별로 서버를 운영하거나 상황에 맞게 암호화 기법을 선택적으로 사용한다.
인터넷이 막 태동하던 시기에야 VPN은 전용 장비가 필요한 고급 기능이었지만
2000년대에는 보급형 공유기에도 지원할 정도로 대중화된 기술로, 필요하다면 개인이라도 비용에 크게 구애받지 않고 사용할
수 있게 되었다.
이번 기사에서는 VPN 연결에 어떤 기술들이 쓰이는지 정리해 보았다.
빠르지만 심층 보안 어려운 PPTP/ L2TP
VPN은 오늘날 일반 소비자용 공유기에서도 찾아볼 수 있을 정도로 쉽게 접할 수 있게
되었지만, 이들 공유기는 전용 VPN 장비에 비해 낮은 성능의 AP가 쓰이는 만큼 높은 수준의 암호화시 성능 저하가 유발될
수 있다. 하지만 반대로 해커의 공격 대상이 될 가능성이 높지 않으므로 성능 저하 가능성을 감안해 적절한 수준의 암호화
알고리즘을 사용한다.

ipTIME의 일반 소비자용 공유기에서는 VPN 구성에 PPTP와 L2TP 두 가지 연결
방식을 지원한다. 그 중 PPTP(Point-to-Point Tunneling Protocol)는 마이크로소프트와
3com, Ascend Communications 컨소시엄을 통해 1999년 처음 표준이 제정되었다.
암호화에는 MS-CHAP와 MPPE 기반의 128bit 암호화 기법이 쓰이므로 다른
암호화 기법보다 성능 영향이 적고, 공표된지 20년 가까운 시간이 지난 만큼 대부분의 시스템에서 지원한다는 장점이 있다.
단지, 그만큼 오래된 규격이기 때문에 보안에 취약한 것이 단점으로, 보안 취약성 때문에
iOS 10과 Mac OS Sierra에서는 퇴출되었다. 때문에 특정 지역 접이 차단된 게임 플레이처럼 특별히 보안이
중요하지 않다면 사용할 수 있지만 추천되지는 않는다.

L2TP(Layer 2 Tunnel Protocol)는 PPTP와 달리 256bit
암호화와 데이터 무결성 확인과 이중 캡슐화를 통해 보다 강력한 보안성능을 제공하는 프로토콜로, PPTP의 취약점이
부각되면서 공유기에도 추가 지원하기 시작했다.
단지, 프로토콜이 UDP 포트 500을 사용하기 때문에 NAT 방화벽에 의해 차단될 수
있으므로 포트 포워딩이 필요할 수 있고, 이중 캡슐화 때문에 PPTP보다 시스템 많은 시스템 자원을 사용하며, 에드워드
스노든의 폭로에 따르면, 주로 함께 쓰이는 IPsec(Internet Protocol security) 암호화 기법이
NSA의 위협을 받고 있다는 의혹을 받고 있다.
이에 따라 상업용 VPN이나 민감한 자료를 다루는 경우 추천되지 않지만, IPsec
암호화 자체는 충분히 강력하므로 특별히 보안에 민감하지 않다면 L2TP도 나쁘지 않고, PPTP보다는 안정적인데다 iOS와
안드로이드를 비롯해 대부분의 운영체제에서 기본 지원한다.
때문에 특별히 고성능이 필요없는 공유기 VPN 서비스 사용자라면 PPTP 대신 보안이
강화된 L2TP 방식 사용이 권장된다.
본격적인 VPN 보안을 위한 OpenVPN
PPTP와 L2TP는 성능을 유지하면서 VPN을 위한 기본적인 암호화를 제공하고 일반
소비자용 공유기에도 지원할 정도로 쉽게 적용할 수 있지만, 2018년 10월 현 시점에서는 보안성에 대해서는 높은 평가를
받지 못하고 있다.

이에 따라 상용 서비스나 보안이 중시되는 환경에서는 다른 기법을 찾게 되는데, 대표적인
것이 2001년 5월 첫 규격이 발표된 OpenVPN이다. OpenVPN은 VPN 구축을 위한 오픈 소스 소프트웨어
솔루션으로 2018년 4월 현재 2.4.6 버전이 공개되었고, TCP와 UDP 프로토콜을 모두 이용 가능한 오픈소스 VPN
프로토콜이다.
SSL이나 TLS를 이용하여 패킷을 암호화하기 때문에 유효한 CA 인증서가 필요하지만
개인 사용자들은 OpenSSL 류의 자가 인증서를 이용해 VPN 서버를 생성하기도 한다. GPL 픈 소스인 덕에 포트가
배정되지 않아 PPTP나 L2TP가 막힌 곳에서도 연결될 수 있고, OpenSSL 기반 최대 256bit 암호화를
지원한다.
L2TP에 비해 빠르다고 평가되는 OpenVPN은 유료 VPN 서비스에서 해당
옵션 지원을 장점으로 내세우는 것을 쉽게 볼 수 있으며, 윈도우와 맥, 안드로이드, iOS 등 폭 넓은 플랫폼을 지원한다.
또한 서드파티 플러그인과 스크립트를 통해 동적 방화벽 업데이트, RADIUS 통합,
향상된 인증 시스템 등의 확장성, 윈도우, 맥 OS, 안드로이드, iOS 등 폭넓은 플랫폼에서 동작한다.
마이크로소프트의 SSTP

SSTP(Secure Socket Tunneling Protocol)는 마이크로소프트가
2007년 처음 발표한 규격으로 2018년 9월 기준 18.0 버전이 공개되었으며, SSL v3 규격을 사용하기 때문에
OpenVN과 같이 NAT 방화벽 문제에서 상대적으로 자유롭고, 윈도우 비스타 SP1 부터 내장되어 있어 윈도우의 원격
접속에 쓰인다.
리눅스와 다른 운영체제에서도 사용할 수 있지만 마이크로소프트 소유 IP이므로 아직은
윈도우 지원에 초점을 맞추었고, 당초 원격 접속을 위해 개발되었으므로 VPN 서비스용으로는 찾아보기 어렵지만, SoftEther VPN과 PureVPM 등
일부 VPN 업체에서 SSTP 기반 서비스를 지원한다.