본문 바로가기
네트워크/Network

[Network] VPN에 대한 원리, 오해와 진실

by jamong1014 2024. 4. 18.
반응형

오래전부터 VPN 관련 이야기를 해보고 싶었지만 여력이 없어 포스팅하지 못했다.

그래서 이번 포스팅은 VPN에 대한 오해와 진실 그리고 좀 더 자세한 원리에 대해 알아보도록 하겠다.

 

목차

  1. VPN의 원리
  2. 게임용 VPN의 대한 오해와 진실

1. VPN의 원리

먼저 VPN은 모두가 다 알다시피 암호화/터널링이 대표적이다.

클라이언트에서 행하는 모든 것들을 암호화 하고 VPN 서버를 통해 전송하여 ISP에 대한 정책에 대해서 우회할 수 있고 또한 터널링을 통해 라우팅 하여 LAN TO LAN 송수신을 할 수 있는 것이 특징이다.

 

https://adguard-vpn.com/ko/what-is-vpn/how-does-vpn-work.html

 

여기까지는 모두가 상식적으로 아는 사실이고 좀더 구체적인 원리를 살펴보자.

 

1. VPN을 이용하면 ISP측에서 클라이언트에서 발생되는 트래픽이 무엇인지 알 수 없는 이유는 기본적으로 외부 VPN 서버에 접속할 때 선택한 VPN 프로토콜에 따라 초기 설정과 암호화 키값에 대한 교환 등의 과정이 이루어지고, 그 정보를 기반하여 클라이언트는 로컬에서 생성되는 데이터를 암호화하여 VPN 서버로 전송된다.

 

여기서 원리를 모르는 사람들이 헷갈리는 것이 클라이언트->ISP 라우터->VPN 서버->구글로 통신한다 했을 때 VPN 서버까지의 데이터가 ISP를 거치니깐 ISP 측의 감청이 가능한 것이 아니냐라는 의문점?.. 을 가질 수 있지만  VPN 서버에 접속하자마자 그 이후부터의 데이터들은 클라이언트 즉 로컬에서 암호화하여 보내기 때문에 ISP의 제약을 받지 않는 것이다.

 

2. 이제 ISP 라우터를 통하여 외부 VPN 터널링, 즉 라우팅이 이루어지는 것이다.

이 때도 역시 클라이언트에서부터 암호화가 된 데이터를 전송하기 때문에 ISP는 데이터를 볼 수 없는 상태이다.

 

3. VPN 서버에 도착하게 되고 최종 목적지에 정상적인 데이터를 전달하기 위해  VPN 서버에서 데이터를 복호화하여 원래의 형태로 되돌리는 것이다.

그 이후 목적지에서는 요청을 처리하고 그 결과를 다시 VPN 서버로 보낸다.

 

4. VPN 서버는 목적지로부터 받은 데이터를 다시 암호화하고 클라이언트로 전송 후 다시 데이터를 복호화하여 사용자가 볼 수 있도록 하는 것이다.

 

그럼 VPN 서버 측 ISP는 복호화가 이루어지니깐 트래픽을 볼 수 있는거 아닌가?

볼 수 있다. 하지만 의미가 없는 상황이다.

그 데이터가 어디서 왔는지(즉, 원래 클라이언트의 실제 IP 주소)는 알 수 없기 때문이다. VPN을 사용함으로써, 사용자의 실제 IP 주소는 VPN 서버의 IP 주소로 대체되기 때문..

 

구글 측 또는 최종 목적지에서 vpn 패킷인걸 알 수 있나?

위에서 이해했으면 알겠지만 복호화 후 데이터 전달이기 때문에 일반 패킷과 다름이 없다.

즉 구분되지 않는다.

 

하지만 클라이언트와 VPN 서버 사이에서는 패킷 암호화 여부를 알 수 있다.

암호화 프로토콜인 PPTP는 1723/tcp

IKEv2 는 500, 4500/udp 등등을 통해 알 수 있음

 

그럼 VPN 서버에서는 사용자가 뭘 했는지 알 수 있나?

알 수 있다. 서버단에서 복호화가 이루어지기 때문에 사용자가 어디에 접속했는지 그 내용 또한 볼 수 있다.

밑에서 이야기 할거지만 무료 VPN 서버 운영자가 돈 버는 방법이 이것이다.

본인들 VPN 서버에 사용자들이 연결해서 어느 사이트에서 뭘했는지 파악해서 광고 업체에 판매하는것이다.

 


2. 게임용 VPN의 대한 오해와 진실

사실 이 이야기가 메인이다.

이제 위 원리를 이해한 것을 기반하여 게임용 VPN에 대해 알아보자

 

일단 단도직입적으로 이야기 하자면 게임용 VPN이라는 것은 없다.

게임에만 적용되는 VPN 이란건 존재하지 않는다는 소리다.

 

즉 대부분의 게임용 VPN이라고 하는 것은 VPN이 아닌 모두 프록시 형태이다.

프록시는 말 그대로 중계 서버를 통해 데이터를 전송하는 것인데 여기서 VPN과 프록시의 차이점은 VPN은 OSI 7 layer 에서 3 레벨 즉 네트워크 계층의 라우팅을 해주므로 가상 IP를 사용하는 본사와 지사의 내부망을 VPN으로 연결해서 (LAN to LAN) 상호 데이터 교환이 이루어진다. 프록시는 X (보안도 X)

 

그럼 게임용 프록시 형태로 이루어지는 것들은 어떻게 속도를 높이는 걸까?

게임에서 사용하는 그래픽, 아이콘 등인 정적인 콘텐츠들을 게임 서버에서 계속 실시간 다운받으면 시간이 많이 걸린다.

그런데 해외 게임의 경우는 이런 걸 다운 받는데 더 많은 시간이 소모된다.

 

그래서 게임 서버를 연결하기 전에 프록시 서버에 정적인 콘텐츠를 저장해 두고 없는 것들만 게임 서버에서 받으면 속도가 빨라지는 원리이다.

 

물론 모든 게임용 프록시가 이런 형태를 가지는 것은 아니다.

 

대표적인 원리는 최적의 라우팅 경로를 제공해 주는 것이다.

게임 서버 관련해서 지리적인 지연 문제 즉 넷코드 문제가 많이 발생하는데 이를 해결하기 위해 게임용 VPN이라는 것을 이용하여 일부 해결할 수 있다는 점이다.

 

원리는 간단하다. 예를 들어 서울에서 부산을 간다고 할 때 대전, 대구 쪽으로 가야 빨리 가는데 강원도나 전라도로 우회해서 가는 경우가 있을 수 있다. 이럴 때 대전이나 대구에 위치한 서버를 가진 VPN이나 프록시를 사용하면 핑이 줄어들 수 있다는 것이다.

 

다시 말해 라우팅 정책이 비효율적으로 빙빙 돌아가야 하는 경로를 근접 VPN 서버 또는 프록시 서버를 이용하여 비효율적인 라우팅 정책에 구애받지 않고 최적의 경로를 통해 데이터를 전달할 수 있다는 원리이다.


그럼 무료 VPN이라고 제공해 주는 소프트웨어들은??

대부분 모두 프록시형태이다.

직접 사용해 보면 알겠지만 네트워크 어댑터의 종류로 파악할 수 있다.

 

 

WAN Miniport 가 아닌 그 외 tap으로 시작하는 어댑터라면 거진 프록시 형태라고 볼 수 있다.

또한 Openvpn을 제외하고는 대부분 윈도우에서 별도의 프로그램 없이 수동 설정이 가능하다.

 

추가로 VPN 서버를 운영하려면 서버 운영비, 회선비 등 상당한 비용이 많이 드는데 무료로 서비스한다면 그 비용을 다른 방법을 번다는 뜻이다.

상당수 무료 VPN은 광고창을 띄어서 광고료를 받거나, 그 사용자가 방문한 사이트를 추적해서 그 정보를 광고사에 팔아 돈을 버는 방식으로 이루어진다고 한다.

 

또한 무료로 다운받고 사용할 수 있는 VPN이라는 소프트웨어는 VPN으로 위장한 악성 해킹 프로그램일 확률이 있기 때문에 다른 사용자들의 후기, 신뢰할 수 있는 회사인지 사전에 확인하고 사용해야 한다.

 

 

참고 문헌

https://coreavpn.net/china-internet.htm#proxy

 

반응형

댓글