VPN - Virtual Private Network
VPN은 가상 사설 망을 의미하는 것으로 "망"처리에 효율적입니다. 대상 중계 서버를 통해 모든 네트워크 신호를 암호화 송수신 할 수 있습니다. 그 과정에서 VPN으로 연결된 컨넥션끼리 망을 구성할 수도 있어, 멀리 연결된 PC끼리도 내부망으로 연결 한 것 처럼 네트워킹 환경을 구성할 수 있습니다.
예를 들어서PC 2 대가 존재하고, 이 2대만 끼리 통신할 수 있도록 구성하고자 합니다. 통신하는 내용에는 아주 중요한 기밀 자료가 있으며, 보안 문제가 존재하기 때문에 외부 인터넷 망을 통해서 전송할 수는 없습니다.
위 상황에서, 이상적으로 안전하게 통신하는 방법은 PC 2대만 서로 인터넷을 연결하는 방법입니다. 또는 내부 사설망을 구축해서 2대만 연결되도록 구축하고, 외부 인터넷과는 단절시키는 방법이 존재합니다. 하지만 이는 2대의 PC가 서로 가까운 위치에 존재해야 한다는 문제점이 존재합니다.
만약 컴퓨터 A가 서울에 있고, 컴퓨터 B가 부산에 있다면, 사설 내부망을 구축하는 건 현실적으로 불가능합니다. 그렇기 때문에 VPN을 사용해서 외부 네트워크 망을 통해 서로 두 대가 통신할 수 있도록 하되, 서로 통신되는 모든 패킷 데이터들을 암호화 통신함으로써 사실상 허락된 두 PC외에는 데이터를 알아볼 수 없도록 합니다. 특히 망을 구성한다는 점에서, 하나의 프로그램에만 적용되는 것이 아니라, 연결된 PC에 전역적으로 암호화된 내부망 통신을 구현할 수 있습니다.서버 측면이 아니라 일반 사용자의 입장에서 볼 때, VPN을 사용하면 중계 서버와 일반 사용자 컴퓨터 간의 패킷 데이터들이 암호화 처리 되어 통신되므로 보안이 취약한 네트워크 환경에서도 중계 서버까지 안전하게 통신할 수 있습니다.
일반적인 사용자 통신 상황
예를 들어, 상기 표와 같은 환경에서 사용자가 암호화되지 않은 웹 사이트에 접속하고 중요한 정보를 제출하는 경우 중간 단계에서 라우팅되는 장비들은 패킷을 열어볼 수 있게 됩니다. 사용자가 대상 웹 페이지에 접속할 때 많은 지점들을 거쳐가야 하기 때문에 그 과정에서 데이터가 기술적으로 노출될 수 있습니다. 또는 ARP 공격같은 기법들을 활용하여 라우트되는 경로가 아니더라도 같은 망에 존재하는 다른 사용자의 패킷을 열어 볼 수도 있습니다. 특히 대상 웹 페이지가 SSL 등으로 안전하게 암호화되어 있지 않다면 통신 내용까지 확인할 수 있게 됩니다.
사용자 - 망 관리자 - 외부 인터넷 - 대상 서버 웹 페이지
VPN이 적용된 사용자 통신 상황
하지만 암호화된 VPN 사설망을 사용하면, 위 데이터들이 VPN 서버망에 도착할 때 까지는 모두 암호화 통신되기 때문에 안전하게 보호됩니다. 물론 목적지 웹 페이지가 암호화 되어 있지 않고, 일반 외부 네트워크 망에 존재하는 웹 서버라면 VPN 서버에서 대상 서버 웹 페이지를 가는 동안 노출될 우려가 있습니다. 하지만, 사용자 단에 존재하는 망 관리자 등이 내 네트워크 활동을 확인할 수 없기 때문에 엄격하게 감시되고 있는 네트워크 환경에서 유용하게 활용할 수도 있습니다.
특히 서버를 운영하는 입장에서도, VPN은 매우 유용합니다.
사용자 - 망 관리자 - 외부 인터넷 - VPN 서버 - 외부 인터넷 - 대상 서버 웹 페이지
일반적인 사용자 통신 상황
멀리 떨어진 두 서버 간 중요한 자료를 송수신 하고자 하는 경우 두 서버는 외부 네트워크를 통해 통신해야 합니다. 이 상황에서, 서버 A와 서버 B가 사용하는 소프트웨어가 암호화 통신을 사용하지 않는다면 외부 인터넷을 통해 데이터를 전송하는 과정에서 데이터가 노출될 수 있습니다.
서버 A - 외부 인터넷 - 서버 B
VPN이 적용된 사용자 통신 상황
하지만 암호화된 VPN 사설망을 구축하면, 서버 데이터들이 VPN 서버를 통해 암호화 통신하기 때문에, 서버 A, 서버 B 모두 암호화된 채로 송수신 할 수 있습니다. 특히 위 상황에서는 서버에서 사용하는 프로그램이 암호화 구현이 되어 있지 않더라도 VPN 서버와 통신하면서 암호화 하기 때문에 안전하게 통신할 수 있습니다.
결과적으로 VPN을 사용하면, 암호화가 지원되지 않는 소프트웨어에서도 VPN 서버 간 암호화 통신을 통해 내부망 통신처럼 안전하게 보호할 수 있습니다.
물론 VPN 없이 소프트웨어 간 암호화 통신을 통해 데이터를 안전하게 보호할 수 있지만, VPN을 사용하면 모든 패킷 송수신을 보호할 수 있기 때문에 관리 측면, 보안 측면에서 신경 써야 할 문제가 더 줄어들고 유용합니다.
사용자 입장에서도 안전하지 않은 무선 네트워크나 공공 네트워크를 사용할 때 VPN를 사용함으로써 공공 무선 네트워크 망으로 부터 VPN 서버까지 안전하게 전송할 수 있습니다. 적어도 공공 무선 네트워크에 연결한 다른 사용자가 내 네트워크 활동을 훔쳐볼 수 없습니다.
서버 A - 외부 인터넷 - 서버 전용 VPN 서버 - 외부 인터넷 -서버 B
구축 예시
간단한 VPN 사용 예시를 살펴봅니다.
서버 - 멀리 떨어진 컴퓨터 끼리 내부망을 구축하고 싶을 때
가상 사설망을 구축하는 방법을 통해 대상 PC끼리만 안전하게 통신할 수 있습니다.
사용자 - 공공 무료 WIFI에서 안전한 통신을 하고 싶을 때
가상 사설망을 구축하는 방법을 통해 무선 네트워크에 연결된 다른 기기의 알 수 없는 패킷 위협 또는 통신 데이터 노출로부터 안전하게 보호할 수 있습니다. 예를 들어, 버스의 공공 무선 인터넷을 사용하지만 집에 설치한 VPN 서버를 통해 마치 집에서 인터넷을 하는 것 처럼 이용할 수 있습니다.
서버 - 멀리 떨어진 컴퓨터의 내부망에 접근하고 싶을 때
별도의 작업이 필요할 수 있습니다.
물론 VPN 서버를 구축하는 방법도 여러가지가 존재하기 때문에 안전하게 구축하고 높은 암호화 수준을 사용하는 등 안정적인 방법을 따라야 합니다.