brunch

You can make anything
by writing

C.S.Lewis

by 흐르는 강물처럼 Jan 20. 2021

VPN-1 (VPN의 역할, 대칭키/비대칭키)

VPN은 어디에 쓰는 장비이고, 대칭키와 비대칭키의 역할은 무엇인가요?

이번 글에서는 VPN에 대해 소개하도록 하겠습니다. VPN은 Virtual Private Network의 약자로 가상사설망을 뜻합니다. 독립된 하나의 건물 안의 구성된 네트워크나 대학 캠퍼스 같이 짧은 거리에 모여 있는 건물 간에 연결된 네트워크를 보통 LAN(Local Area Network)이라고 합니다. 그리고 이런 LAN들을 연결한 망을 WAN(Wide Area Network)이라고 하지요. 


아래 <그림 1>과 같이 서울, 부산, 대전 방송국은 하나의 LAN으로 구성되어 있고, 이렇게 여러 개의 방송국 LAN을 연결하는 망을 WAN이라고 할 수 있습니다. LAN은 단말 장비를 길어야 수십 미터에서 100미터 범위를 스위치라는 장비를 통해 연결하기 때문에 비교적 구성이 쉬운 편입니다. 하지만 WAN의 경우 LAN그룹 간의 거리가 수십 ~ 수백 km단위로 떨어져 있기 때문에 이런 망을 구성하기 위해서는 많은 비용이 발생됩니다.


일반적으로는 KT 같은 망 사업자의 네트워크망을 임대하여 구성하기 때문에 낮은 속도에 비해 많은 임차 비용이 발생하게 됩니다. 2000년 초~중반에는 PC방에서 1.5 Mbps의 속도를 제공하는 임대 사설망을 운영하기 위해서 한 달에 150만 원의 비용을 지불한 적도 있습니다.


< 그림 1 >  LAN과 WAN의 범위


이런 비용적인 문제를 해결하기 위해 등장한 기술이 VPN입니다. 인터넷의 보급이 급속도로 늘어나면서, 모든 조직은 저렴한 비용으로 인터넷 연결이 가능하게 되었습니다. 인터넷망은 일종의 공공망이라고 할 수 있습니다. 저렴한 비용에 빠른 속도로 통신이 가능한 장점이 있는 반면에 누구나 접속할 수 있기 때문에 사설망에 비해 기업들의 업무 트래픽을 보내기에는 보안성이 떨어지는 단점이 있습니다.


VPN 기술은 인터넷망을 사용할 때 발생될 수 있는 자료 유출의 문제를 해결하기 위해 별도의 장비를 통해 트래픽을 암호화해서 송신하고 수신하는 장비에서 암호화를 풀어서 클라이언트에 데이터를 전달하는 방식으로 동작합니다. 아래 <그림 2>와 같이 별도의 VPN 장비를 각 지역 국사 별로 설치하여 인터넷에 연결하고, 국사 간의 통신은 VPN을 통해 이루어지게 구성할 수 있습니다.


VPN 장비를 이용하게 되면, 별도의 전용선을 사용하므로 발생되는 망 임대료를 절감할 수 있고, 인터넷을 사용하므로 인한 낮은 비용 대비 높은 통신 속도를 장점을 누릴 수 있습니다. 그림의 빨간색 파이프는 실제로 터널을 만드는 것이 아니라 VPN 장비 간에 트래픽을 주고받을 때 트래픽이 암호화되어 전송되는 것을 논리적으로 표현한 것입니다.


< 그림 2 >  인터넷(공공망)을 이용한 VPN 통신 방식


그럼 VPN 장비 간에 어떻게 트래픽이 암호화되고 복호화(암호를 푸는 것) 되는지 알아보기 전에 암호 알고리즘에 대한 간략하게 설명이 필요할 것 같습니다. 문서를 암호화하기 위해서는 key가 필요합니다. 열쇠를 잠그기 위해 키가 필요하고, 열쇠를 풀기 위해서도 동일한 키가 필요하듯이 문서를 암호화하기 위해서는 어떤 방식으로 암호화할 건 지 결정할 암호화 알고리즘 종류와 암호화에 사용할 키값이 필요합니다.


아래 <그림 3>과 같이 현재 많이 사용하고 있는 암호화 알고리즘을 표시하였습니다. 크게 데이터를 암호화하기 위한 대칭키와 비대칭키 알고리즘과 데이터가 전송되는 중에 조작되었는지 여부를 확인할 때 사용하는 해쉬 함수가 있습니다.


< 그림 3 >  암호화 알고리즘의 종류


먼저 대칭키 알고리즘에 대해 알아보겠습니다. 데이터를 암호화할 때 무작위 값으로 생성된 특정한 길이의 문자열을 키로 사용하여 원하는 파일을 암호화할 때 사용하고 동일한 키로 복호화할 수 있는 방식이 대칭키 방식입니다. 그에 비해 암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 다르면 비대칭키 방식이라고 합니다.


아래 <그림 4>와 같이 평문을 암호화할 때 사용했던 키로 복호화할 때도 사용할 수 있는 방식이 대칭키 방식입니다. 데이터를 암/복호화하는 속도 측면에서 대칭키가 비대칭키 방식에 비해 월등히 빠르기 때문에 데이터를 암호화해서 전송할 때 이 방식이 주로 사용됩니다. 우리가 사용하는 VPN 뿐만 아니라 인터넷뱅킹, 전자메일, HTTPS 등 대부분의 데이터 암호화에는 대칭키 방식을 사용합니다.


이 방식은 암/복호화에 양쪽이 동일한 키를 사용하기 위해 통신이 필요한 양자 간 온라인으로 키를 전송해야 하는데 이때 중간에서 누군가 키를 가로채는 문제를 예방하기 위해 키 관리가 매우 중요합니다. 그래서 이런 대칭키를 안전하게 전송하기 위해 사용되는 기술이 바로 비대칭키 방식입니다.


<그림 4 >  암호화를 위한 대칭키, 비대칭키 비교


비대칭키 방식은 2개의 키가 쌍으로 동작합니다. 예를 들면 공개키를 이용하여 암호화하면 그것과 쌍을 이루는 개인키로만 풀 수 있으며, 반대로 개인키로 암호화하면 쌍으로 이루어진 공개키로만 암호를 풀 수 있습니다. 2개의 키는 보통 공개키와 개인키로 불립니다. 말 그래도 공개키는 아무나 사용할 수 있는 키이고, 개인키는 개인만 사용할 수 있게 개인이 보관하는 키로, 외부로 노출되지 않게 관리되어야 하는 키입니다. 이 비대칭키 방식은 크게 아래 2가지 목적으로 사용됩니다.


아래 <그림 5>와 같이 A의 개인키로 암호화해서 B에게 보내면 B는 A의 공개키를 이용해서 복호화할 수 있습니다. 공개키는 말 그래도 B뿐만 아니라 누구라도 구할 수 있는 키이기 때문에 A의 공개키를 통해서 누구나 복호화가 가능합니다. 이렇게 복호화가 된다는 것은 A만이 자신의 개인키로 암호화했다는 말이기 때문에 A가 작성한 문서라는 것이 증명됩니다. 일반 문서 대신에 인증서를 보내게 되면, A의 신분을 증명할 수 있는 인증수단으로 사용할 수 있는 것입니다. 그래서 이 방식을 다른 말로 전자서명이라고 하며 온라인상에서 본인임을 증명하는 목적으로 사용되고 있습니다.


< 그림 5 >  비대칭키를 이용한 전자서명(본인인증)


2번째 목적은 아래 <그림 6>과 같이 B라는 사용자가 A에게 문서를 보낼 때 A의 공개키로 암호화해서 보내는 것입니다. 이때 A는 자신만이 가지고 있는 개인키를 통해 복호화하여 문서 확인이 가능합니다. A에게 문서를 보내고 싶은 누구나 A의 공개키를 통해 암호화해서 A에게 보낼 수 있고, 이렇게 암호화된 문서는 A 이외에는 아무도 그 문서를 복호화할 수 없습니다. A의 개인키는 A만이 가지고 있기 때문입니다.


그래서 이런 방식을 전자 봉투라고 해서 특정인에게 내용을 안전하게 보내고 싶을 때 주로 사용하는 방식입니다. 앞에서 설명한 대칭키를 온라인으로 안전하게 보낼 때 바로 이 방식을 사용합니다. 이 방식이 사용되는 이유는 만약에 누군가가 중간에서 암호화된 대칭키를 가로챘다고 하더라도 A의 개인키가 없어서 대칭키를 복호화할 수 없는 특징이 있기 때문입니다.


< 그림 6 >  비대칭키를 이용한 전자 봉투(데이터 암호화)


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari