VPN 잘 알고 사용하시나요?: VPN 가상사설망 원리

VPN 잘 알고 사용하시나요?: VPN 가상사설망 원리
Photo by Petter Lagson / Unsplash

들어가며

오늘은 VPN에 대해 함께 알아보려고 합니다. VPN은 '가상 사설망'으로도 알려져 있으며, 많은 사람들이 외부에서 내부 네트워크에 안전하게 접속할 때 사용합니다. 하지만 VPN의 정확한 원리와 작동 방식에 대해서는 정확히 알지 못하는 경우가 많습니다. 그래서 오늘은 VPN에 대해 좀 더 깊이 있게 알아보겠습니다.


VPN의 기본 개념

VPN은 Virtual Private Network의 약자로, 우리말로는 '가상 사설망'이라고 부릅니다. 일반적으로 VPN 우회라는 단어로 많이 접하게 되곤 하죠. 이 용어만 봐서는 정확히 어떤 기술인지, 왜 필요한지 이해하기가 어렵습니다. 그래서 VPN이 왜 중요한지, 기본 원리는 무엇인지 알아볼 필요가 있습니다.

VPN의 작동 원리

VPN 네트워크에 접속하게 되면, 사용자는 외부 네트워크에 있음에도 불구하고 내부 네트워크에 접속한 것처럼 행동할 수 있습니다. 예를 들어, IP 주소가 211.x.x.x인 A컴퓨터가 168.x.x.x의 B네트워크 VPN에 접속한다면, A컴퓨터의 IP는 168.x.x.x로 보여지게 됩니다. 이를 통해, B네트워크 (타 네트워크) 내의 다른 장비와도 통신이 가능해집니다.

A컴퓨터가 VPN에 접속한 상태에서 인터넷에 접속하게 되면, 그 통신은 B네트워크를 거쳐 진행됩니다. 즉, 'A -> B -> 인터넷'의 순서로 통신이 이루어집니다.

graph TD A[A컴퓨터] -->|VPN 접속| B[B네트워크] B -->|통신| C[인터넷]

VPN의 장단점

VPN을 사용하면 여러 가지 장점이 있습니다:

  1. 외부의 다른 통신 장비가 VPN이 속한 사설망에 접속하게 해, 내부 네트워크 장비처럼 통신할 수 있습니다.
  2. 보안 등의 이유로 내부 네트워크를 사용해야 할 때, 외부에서 안전하게 통신할 수 있습니다.
  3. 국내에서 접속하지 못하는 사이트도 접속할 수 있게됩니다. (!)

그러나 단점도 있습니다:

  1. VPN에 접속한 장비와 VPN 서버 사이의 통신은 암호화 되므로 네트워크 속도가 느려질 수 있습니다.

VPN의 보안 메커니즘

Tunneling

VPN의 중요한 보안 메커니즘 중 하나는 Tunneling입니다. 이는 데이터 패킷을 다른 패킷으로 감싸 보내는 기술로, 이를 통해 데이터가 외부로 노출되지 않습니다.

Encryption Algorithms

암호화 알고리즘은 다양하며, 각각의 알고리즘은 보안 수준과 속도에 영향을 미칩니다. 일반적으로 AES 256-bit 암호화가 많이 사용됩니다.

VPN 아키텍쳐 시각화

C4Context title VPN 아키텍처 컨텍스트 다이어그램 Person(사용자, "최종 사용자", "보안된 인터넷 접근을 위해 VPN 사용") System(VPN_클라이언트, "VPN 클라이언트", "사용자의 장치에서 실행되는 소프트웨어") System(VPN_서버, "VPN 서버", "VPN 트래픽을 처리하는 서버") System(대상_서버, "대상 서버", "사용자가 접근하려는 서버") SystemDb(암호화DB, "암호화 알고리즘 데이터베이스", "다양한 암호화 알고리즘을 저장") Enterprise_Boundary(VPN_서비스_제공자, "VPN 서비스 제공자") { System(VPN_인증, "VPN 인증 서버", "사용자 인증을 처리") System(VPN_API, "VPN API 서버", "클라이언트와 서버 간의 API 상호작용을 처리") } BiRel(사용자, VPN_클라이언트, "사용") BiRel(VPN_클라이언트, VPN_서버, "연결") Rel(VPN_서버, 대상_서버, "트래픽 라우팅") Rel(VPN_서버, VPN_인증, "인증 처리") Rel(VPN_서버, VPN_API, "API 상호작용") Rel(VPN_서버, 암호화DB, "암호화/복호화 처리") UpdateElementStyle(사용자, $fontColor="blue", $bgColor="grey") UpdateRelStyle(사용자, VPN_클라이언트, $textColor="green", $lineColor="green") UpdateRelStyle(VPN_서버, 대상_서버, $textColor="red", $lineColor="red") UpdateRelStyle(VPN_서버, VPN_인증, $textColor="orange", $lineColor="orange") UpdateRelStyle(VPN_서버, VPN_API, $textColor="purple", $lineColor="purple") UpdateRelStyle(VPN_서버, 암호화DB, $textColor="brown", $lineColor="brown") UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1")

함께 읽으면 좋은 글

VPN, VPS, VPC 도대체 무슨 차이일까?
VPN(Virtual Private Network) - 가상 사설망 🌍 디지털 시대에 우리를 보호하고 연결해주는 가상의 세계. 언제부턴가 우리의 삶에서 빠질 수 없는 VPN, VPS, VPC. 이 세 가지 기술은 어떻게 우리에게 인터넷 경험을 혁신을 주고 있을까요? 여러분, 이 세상 네트워크의 마법에 함께 빠져보시죠! 네트워크란? 물리적인 네트워크는 선으로 꼬여있고, 이더넷은 가까운 선으로 연결되어