VPN, Proxy와 Tor - VPN

David Im·2022년 8월 22일
0

VPN & Proxy & Tor

목록 보기
2/2

본 글은 야간모드에 최적화 되어있습니다. 우측 상단에서 해 혹은 달모양을 클릭시어 velog 설정을 야간모드로 해주시면 더욱 편안하게 읽으실 수 있습니다.

저번에 작성했던 Proxy에 이어서 이번에는 VPN관련해서 알아보고 공부한 내용을 작성해보려고한다.

VPN(Virtual Private Network)


가상사설망으로써, 공용망을 사설망처럼 활용할 수 있는 것을 말한다.

프록시 서버와 마찬가지로 원격 서버를 통해 들어오는 네트워크 트래픽을 리라우팅하여 실제 IP 주소를 가상 IP 주소로 대체함으로써 웹사이트 측에서 사용자의 실제 IP 주소와 위치를 확인할 수 없도록 한다.

VPN을 사용하는 경우 일반적으로 통신하는 패킷간에 전부 암호화가 되어있는 형태가 많기 때문에 직접적으로 VPN 서버의 로그를 보지 않는 이상은 VPN 사용자의 정확한 IP등을 추적하기는 어렵다.

암호화라는 것이 단순한 암호화 된 통신을 제공하는 통로수준이 아닌, 정교한 프라이버시와 보안 정책을 갖춘 암호화된 터널을 통해 그 이상의 작업을 해낼 수 있다.

VPN은 프록시와 다르게 "운영 체제" 수준에서 동작하므로 브라우저나 백그라운드 앱에서 발생하는 모든 트래픽을 리디렉션할 수 있다는 차이점이 있다.

위에 설명한 것처럼 VPN은 여러 플랫폼 간의 네트워크 통신에서 암호화된 패킷을 제공하기때문에 온라인 사업자는 VPN을 사용하는 실제 유저의 통신을 알 수 없고, DNS, IP와 같은 개인 정보도 알 수 없다.

하지만 패킷을 전달하고 받는 사이의 암호화된 통신을 제공하는 것이 VPN 사업자이기때문에 VPN 사업자는 해당 VPN을 사용하는 사용자의 IP, DNS등의 개인정보를 가지고있기때문에 이것을 악의적으로 활용할 수도 있기때문에 반드시 노 로그 정책을 준수하는 VPN 사업자를 사용해야한다.

VPN의 동작 원리

설명하기 전에 아래와 같은 가정을 하고 예를 들어 설명을 해보겠다.

  • Alice(A) : 사용자 A
    ip : 218.x.x.x
  • Bob(B) : 인터넷 웹서비스 제공자 B (서버)
    ip : 211.x.x.x
  • Victor(가칭 V) : VPN 서비스 제공업체
    ip : 168.x.x.x
  • 일반적인 연결
    AliceBob에게 통신을 연결할 때 Victor를 거치지 않고, 일반적인 통신으로 연결한다고 하면, BobAlice가 접속한 것을 확인할 때 Alice의 ip인 218.x.x.x를 그대로 확인할 수 있게된다.

  • VPN을 통한 A -> B의 연결
    이때 만약 AliceVictor를 사용해서 Bob에게 접근한다고 해보자.
    AliceBob에게 연결하려고 시도하는 경우, Victor에게 우선 연결하게 되고, V는 Alice의 트래픽을 암호화하여 Bob에게 전달한다. 이때 Bob은 Alice가 접속한다 하더라도, Alice의 ip인 218.x.x.x를 확인할 수 없다.

    연결의 실제 주체는 Alice가 아닌 VictorBob에게 연결을 제공했기때문에 BobAlice의 ip가 218.x.x.x가 아니라 Victor의 ip인 168.x.x.x로 보이게 된다. 또한, Bob 내부에 속해 있는 다른 장비들과도 사설망을 이용해 통신이 가능하다.

  • VPN을 통한 B -> A의 연결
    그럼 반대인 BobAlice에게 전송할 때는 어떻게 될까?
    A -> B와 유사하다. Bob에서 부터 받은 데이터는 Victor로 전달되고 Victor는 데이터를 암호화해서 해당 VPN에 속해있는 Alice에게 전달한다.
    당연히 BobVictor의 ip인 168.x.x.x가 수신자로 알고 있다. Victor내부에서 해당 트래픽을 받아서 Alice에게 도착한 트래픽이라고 전달해주는것이다.

즉 정리해보면, 아래와 같다.

  • 일반적인 연결

A -> 외부네트워크 -> B

  • VPN을 통한 A -> B 혹은 B-> A 연결

A -> 외부네트워크 -> VPN -> 외부네트워크 -> B
B -> 외부네트워크 -> VPN -> 외부네트워크 -> A

왜 위와 같이 통신을 진행할까?

AliceVictor는 물리적으로 연결된 장비가 아닌데 항상 Victor를 거치는 통신을 진행하는지 이유를 살펴보면, VPN이라는 뜻 그대로, 가상(virtual)으로 AliceVictor의 네트워크 안에 연결된 상태이다. 이 상태를 외부에서는 Victor의 네트워크에 속한 상태라고 보는것이다. 그렇기 때문에 모든 통신이 Victor를 거쳐 가는것.

같은 원리로 해당 사이트가 검열등으로 접근할 수 없는 상태더라도, 우리는 다른 네트워크를 통해 접근하는 것이 되기 때문에 해당 사이트에 대해서 우회를 해서 접근을 할 수 있는 것이다..!

그럼 VPN이 어떻게 패킷을 암호화해서 전달하는지 그 과정을 알아온 내용을 보도록하자.

VPN이 암호화된 통신을 송수신하는 방법

  1. 가상 사설망 서비스에 연결하면 VPN 서버로 클라이언트를 인증
    ➡️ Alice가 VPN 서버에 접속하면 VPN 서버는 Alice에게 통신을 인가

  2. 이후 서버는 주고받는 모든 데이터에 암호화 프로토콜을 적용
    ➡️ Alice로 가는 모든 데이터를 암호화 적용

  3. VPN 서비스는 인터넷을 통해 암호화된 “터널”을 생성합니다. 이를 통해 사용자와 목적지 간에 이동하는 데이터를 보호가 가능해진다.
    ➡️ Alice를 위한 전용 통신 터널을 개설하고, 이 터널을 지나는 모든 데이터를 암호화 적용

  4. 각 데이터 패킷이 안전하게 유지되도록 VPN은 외부 패킷에 해당 패킷을 래핑한 다음 캡슐화를 통해 암호화한다.
    전송 중에 데이터를 안전하게 유지해주는 것이 VPN 터널의 핵심 요소이다.

  5. 데이터가 서버에 도달하면 암호 해독 프로세스를 통해 외부 패킷을 제거한다.

이 내용을 보면, 한마디로 일반적인 데이터 패킷위에 VPN 서버가 암호화를 위한 패킷을 덧붙이고 암호화 터널을 통해 데이터를 전송한다고 볼 수 있다.

다음은 VPN을 사용했을때의 장점 및 단점이다.

VPN의 장점

  1. 완벽하게 암호화된 보안 연결 및 프라이버시
  • 설명했듯이, VPN을 통하게 되면, 모든 통신에 대해 암호화된 터널과 패킷이 적용되어 송수신되기때문에 보안 및 프라이버시적으로 강점을 가져 갈 수 있다.
  1. 유동적이고 신뢰성이 높음
  • 외부에 있는 다른 장비들이 VPN을 통하게 되면 해당 네트워크 내부에 존재하는 장치인것처럼 활동할 수 있어 유동적이다.

VPN의 단점

  1. VPN 서비스 업체에 따라 다르지만, 공통적으로 네트워크 속도가 현저히 느려진다.
  • VPN을 통하게 되면 모든 데이터에 대해 암호화 패킷을 적용하고 별도의 터널을 통해 송수신을 함과 동시에 VPN 서버를 추가로 거쳐가는 과정이 추가되기 때문에 일반적으로 통신하는 것보다 적게는 수배에서 많게는 수십배까지도 느려질 수 있다.
    이를 통해 VPN 업체들은 무료, 유료 요금제 등을 통해 암호화 수준의 차이, 지역락 등을 구분하여 제공하기도 한다.

그렇다면 이전에 작성했던 프록시와 비슷한 느낌으로 앞에서 특정한 서버가 대신 트래픽을 받아서 처리해준다는 개념이 되는데 차이는 어떤 차이가 있을까?

VPN과 Proxy의 차이점

  1. 보안성
    가장 큰 차이점에 속하는 부분.
    프록시 - 단순히 네트워크 라우팅을 처리하는 용도나 ip 변경등의 단순목적으로 활용하기에 암호화 하지 않음
    VPN - 네트워크 라우팅을 포함해 송수신 트래픽 전체를 암호화한다

  2. 동작하는 체계의 수준
    프록시 - 응용프로그램 수준에서 동작 및 특정 앱,브라우저에 대해서만 라우팅 가능
    VPN - 운영체제 수준에서 동작하며, 모든 트래픽을 라우팅함

  3. 동작 속도
    프록시 - 암호화하지 않고 단순히 라우팅을 처리하거나, 오히려 트래픽 분할을 위해 캐시서버등을 활용하여 속도를 높이는 데 사용될 수 있음
    VPN - 모든 데이터를 암호화하여 송수신하기때문에 프록시에 비해 속도가 현저히 느림

  4. 서비스 정책
    프록시 - 기본적으로 무료이며, 개인이 구축하거나 기업체등에서 여러용도로 사용할 수 있음
    VPN - 기본적으로는 무료이지만, 암호화수준 및 지원 네트워크 지역 및 속도에 따라 유료 정책이 적용됨



마무리

확실히 유사성이 존재하는 두 방식이지만, 암호화라는 큰 차이점을 두고 나누어진다. 각각의 장단점 역시도 명확하며, 사용하는 목적도 다르게 느껴졌다. 프록시는 네트워크용으로, VPN은 개인이나 보안목적으로 사용한다는 점.
맨날 프록시, VPN 말만했지 정작 이렇게 깊숙이 들어와보니, 다른점이 많다는걸 새삼 다시 깨닫는다.
다음에는 Tor에 대해서 알아보고 정리해보도록 하겠다.

참고자료

profile
코더보다 개발자로, 결과와 과정의 시너지를 만들어 가고 싶은 주니어 개발자

0개의 댓글