와이어가드 정의
와이어가드는 보안에 초점을 두고 단순함과 쉬운 사용을 대표적인 특징으로 내세우는 가상 사설망(VPN)으로, 검증된 암호화 프로토콜과 알고리즘을 사용해 데이터를 보호한다. 원래는 리눅스 커널용으로 개발됐지만 지금은 윈도우, 맥OS, BSD, iOS, 안드로이드에도 배포할 수 있다.VPN은 기업에 없어서는 안 되는 요소다. 원격 지사를 회사의 주 네트워크에 연결하고 외근 중인 직원이 회사 내부 애플리케이션을 사용하기 위한 방편이며 클라우드 서버가 온프레미스 서버와 동일한 네트워크에 위치할 수 있도록 한다.
현존하는 대부분의 VPN 솔루션은 오래 전에 만들어져 상당히 느리며 과잉 설계됐다. 그래서 보안과 간소함에 초점을 둔 와이어가드 프로젝트가 시작됐다.
보안 연구원이며 커널 개발자인 제이슨 도넨펠드는 2017년 침투 테스트 작업 중에 사용할 은밀한 트래픽 터널링 솔루션을 물색하던 중 와이어가드에 대한 아이디어를 떠올렸다. 기존 옵션을 살펴봤지만 IPsec, 오픈VPN과 같은 VPN 터널은 성능이 좋지 않은데다 적절히 구성하고 관리하기도 어려웠다.
그래서 여타 터널링 기술을 방대한 코드베이스와 수많은 스위치와 손잡이기 덕지덕지 달린 비대한 프로젝트로 유도한 기존 설계의 몇몇 의사 결정을 배제한 채 완전히 새로운 VPN 프로토콜과 구현을 직접 만들기로 했다.
와이어가드의 암호화 작동 방식
우선 와이어가드 프로토콜은 암호화 민첩성, 즉 다양한 암호화, 키 교환, 해싱 알고리즘에 대한 선택권을 제공한다는 개념을 버렸다. 다른 기술에서 이 개념이 불안전한 환경의 원인이 됐기 때문이다. 대신 와이어가드는 철저한 테스트와 피어 리뷰를 거친 현대적 암호화 기초 요소를 사용한다. 결과적으로 사용자가 변경하거나 잘못 구성할 수 없는 강력한 기본 암호화가 설정된다. 사용되는 암호화 프리미티브에서 심각한 취약점이 발견되는 경우 새 버전의 프로토콜이 나온다. 또한 피어 간에 프로토콜 버전을 협상하는 메커니즘이 있다.
와이어가드는 메시지 인증을 위해 폴리1305(Poly1305)와 함께 차차20(ChaCha20) 대칭 암호화를 사용한다. 이 조합은 암호화 하드웨어 가속 기능이 없는 임베디드 CPU 아키텍처에서 AES에 비해 성능이 더 우수하다. 타원 곡선 디피-헬만(ECDH) 키 합의에는 커브25519(Curve25519)를, 해싱에는 SHA-3보다 빠른 BLAKE2를 사용하며, 전달 보안을 제공하는 노이즈(Noise) 프레임워크 기반의 1.5-RTT(Round Trip Time) 핸드셰이크를 사용한다. 또한 키 사칭, 서비스 거부, 리플레이 공격에 대한 기본 보호 기능과 일부 양자 암호 내성도 포함한다.
와이어가드 프로토콜에서 각 피어는 오픈SSH의 키 기반 인증과 비슷한 방식으로 짧은 공개 키를 통해 다른 피어에 식별된다. 공개 키는 와이어가드 개발진이 크립토키 라우팅(cryptokey routing)으로 지칭하는 새로운 개념의 일부이며 터널 내의 각 피어에 할당되는 IP 주소를 설정하는 데도 사용된다.
또한 와이어가드는 인식하지 않은 피어로부터 오는 어떠한 패킷에도 응답하지 않으므로 은밀성을 제공한다. 네트워크 스캔으로는 시스템에서 와이어가드가 실행 중임이 드러나지 않는다. 데이터 교환이 없을 때는 피어(클라이언트와 서버 역할을 동시에 할 수 있음) 간의 연결이 비활성화된다.
와이어가드 프로토콜은 민간 분야와 학계의 여러 보안 연구 팀의 리뷰를 거쳤고 다양한 컴퓨터 모델에서 공식적으로 검증됐다.
와이어가드의 주 구현은 리눅스용이며 커널 모듈 형태로 제공된다. 코드는 손쉽게 감사할 수 있도록 작성되는데, 도넨펠드의 말로는 ‘한 나절이면 다 읽을 수 있다’고 한다.
그 자체로 10만 줄 이상의 코드로 구성된 데다 또 다른 방대한 코드베이스인 오픈SSL에 의존하는 오픈VPN과 비교하면 와이어가드 커널 모듈의 코드는 약 4,000줄에 불과하고 암호화 코드도 내장돼 있다. 즉, 다른 VPN 프로젝트에 비해 공격 표면이 작고 비인증 패킷에 응답하지 않으므로 공격하기 훨씬 더 어렵다.
와이어가드의 성능은?
리눅스에서 와이어가드는 전적으로 커널 공간에서만 작동하므로 사용자 공간에 위치하면서 가상 네트워크 인터페이스 드라이버를 사용하는 오픈VPN에 비해 성능이 훨씬 더 좋다. 프로젝트 자체 웹사이트를 포함해 다양한 와이어가드의 벤치마크를 보면 동일한 하드웨어에서 오픈VPN에 비해 성능과 연결 속도가 4배 이상 빠르며 IPsec 기반 VPN에 비해서도 더 빠르다.다만 안드로이드, iOS, 맥OS, 오픈BSD, 윈도우용 와이어가드 구현은 고(Go) 메모리 안전 프로그래밍 언어로 작성된다. 와이어가드 커널 모듈을 통합한 몇몇 커뮤니티 지원 안드로이드 펌웨어 프로젝트를 제외하면 리눅스 외의 와이어가드 구현은 사용자 공간에서 실행되므로 커널 구현과 같은 성능상의 이점은 없다. 그렇다 해도 대부분의 경우 오픈VPN과 대등하거나 앞선다.
와이어가드, 리눅스 커널에 어떻게 통합되는가
와이어가드 커널 모듈은 모든 주요 리눅스 배포판과 일부 특수 배포판의 패키지 리포지토리에서 받을 수 있다. 도넨펠드는 2018년부터 주 리눅스 커널에 직접 와이어가드를 통합하기 위한 작업을 진행하고 있다. 이를 위해서는 리눅스 커널의 암호화 API와 네트워킹 스택에 상당한 변화가 필요하기 때문에 진행 속도는 느리지만 리누스 토발즈로부터 좋은 평가를 받았다.토발즈는 1년 전 리눅스 커널 메일링 리스트에서 “와이어가드를 커널에 포함하기 위해 제이슨 도넨펠드가 풀 요청을 한 것을 봤다”면서, “전에도 말했지만 나는 와이어가드가 정말 좋고, 곧 커널에 병합되기를 바란다. 코드가 완벽하지 않을 수도 있지만 훑어본 결과 오픈VPN, IPsec의 참담함에 비교하면 예술이다”라고 밝혔다.
도넨펠드는 원래 징크(Zinc)라는 새롭고 더 단순한 암호화 API를 리눅스 커널에 병합하는 계획을 세웠었다. 도넨펠드에 따르면, 징크는 대부분의 사용 사례에서 지나치게 복잡한 기존 커널 암호화 API에 비해 애플리케이션에서 암호화 작업을 쉽게 할 수 있게 해준다. 도넨펠드는 징크에 대한 프레젠테이션에서 리눅스 암호화 API를 “곧잘 장애를 일으키고 사용하기는 터무니없이 어려운 정신나간 ‘엔터프라이즈’ API”라고 표현했다.
두 번째 암호화 API를 병합하려는 도넨펠드의 시도에 대한 다른 커널 개발자들의 반응은 제각각이었다. 커널 개발자들은 기능 중복, 그리고 기존 API의 문제를 고치는 대신 새로운 API를 도입해야 하는지 여부에 대해 여러가지 우려를 표했다. 징크 패치 제출에 관한 메일링 리스트 토론은 4월에 중단됐지만 최근 한 커널 개발자가 나서서 징크 기능의 대부분을 기존 암호화 API에 통합했고 이 변경 사항은 11월에 커널에 병합됐다. 도넨펠드는 타협안을 받아들였고 결과에 대해서도 대체로 만족감을 표했다.
도넨펠드는 와이어가드 프로젝트 메일링 리스트에 보낸 메시지에서 “더 이상 ‘징크’라는 이름으로 불리지 않고 내가 좋아했던 설계상의 의사 결정 일부가 반영되지 않았지만 우리가 추구했던 부분을 대부분 담았다고 생각하며, 몇 가지 다른 조각은 한 번에 하나씩 업스트림이 가능할 것”이라고 말했다.
이는 리눅스 네트워킹 서브시스템으로 와이어가드를 업스트림하는 과정의 막힘을 해소한 중요한 진전이다. 마찬가지로 시간이 다소 걸릴 수 있지만 일단 통합이 이뤄지면 와이어가드는 새 커널 버전을 사용하도록 업데이트되는 많은 디바이스로 진출할 수 있게 된다. 모든 부분이 계획대로 진행된다면 와이어가드는 4월 전후로 출시될 예정인 리눅스 커널 5.6에 포함된다.
도넨펠드는 “와이어가드에는 전반적으로 별 문제가 없겠지만 이제 사람들이 패치 제출을 진지하게 받아들일 이유가 생긴 만큼 앞으로 리뷰 피드백이 많을 것으로 예상한다”고 말했다.
리눅스 커널 자체의 일부가 된다고 해서 즉시 와이어가드가 광범위하게 배포되지는 않는다. 특히 임베디드 디바이스는 새 커널 버전을 받아들이는 속도가 매우 느리기 때문이다. 그러나 라우터 및 기타 임베디드 디바이스를 위한 오픈WRT 커뮤니티 펌웨어와 유비퀴티(Ubiquiti) 네트워킹 디바이스에 사용되는 엣지OS(EdgeOS)에서는 이미 와이어가드를 사용할 수 있다.
윈도우와 새로운 TUN 드라이버
도넨펠드와 다른 와이어가드 개발자들은 윈도우에서 와이어가드의 성능을 개선하기 위해 윈턴(Wintun)이라는 새롭고 더 단순한 오픈소스 TUN 드라이버를 만들었다. 윈도우는 네이티브 TUN 가상 디바이스를 제공하지 않는다. 오픈VPN이나 소프트이더(SoftEther)와 같은 프로젝트에 이를 위한 드라이버가 있지만 오래 전에 만들어졌고 여러가지 문제점이 있다.도넨펠드는 3월에 보낸 이메일에서 윈턴 프로젝트를 발표하면서 “이 두 프로젝트는 NDIS5 시대에 작성된 다음 나중에 NDIS6으로 이식됐다. 따라서 레이어 2 에뮬레이션 없이 네이티브 레이어 3 터널링을 가능하게 해주는 윈도우 7의 NdisMediumIP와 같은 요소의 이점을 활용하지 못한다. 또한 오픈VPN의 tap-windows6과 같은 드라이버는 네트워크 구성을 위해 커널 내부에서 DHCP를 에뮬레이션하는 등 다소 문제의 소지가 있는 방식으로 작동한다. 언제나 그렇듯이 나는 협소한 사용 사례에서 ‘올바르고 따분한’ 방식으로 작업을 수행하는, 우리가 동작을 훤히 예측할 수 있는 작고 단순한 것을 원했고 그게 레이어 3 TUN”이라고 말했다.
윈턴 역시 징크, 와이어가드 자체와 마찬가지로 단순함, 감사 편의성, 보안에 초점을 둔다. 오픈VPN 프로젝트의 개발자들도 오래된 자체 드라이버의 대안으로 사용하기 위해 윈턴에 오픈VPN 지원을 추가하는 작업을 하고 있다.
와이어가드가 기업용으로 준비되는 시점은?
와이어가드는 아직 공식적으로 안정화 버전에 이르지 않았지만 이미 프로덕션에서도 사용되고 있다. 일부 상용 VPN 서비스 제공업체는 와이어가드 서버를 제공하고 있고 와이어가드를 중심으로 한 메시 네트워킹 툴을 제작하기 위한 작업도 계속 진행 중이다. 그러나 와이어가드는 아직 “기업용 요건”을 충족하지 않으며, 앞으로 충족하게 될지 여부도 불투명하다. 개발자들이 소수의 일부 사용자나 엣지 케이스에만 필요할 새로운 기능을 추가하기를 꺼리기 때문이다. 그게 다른 여러 프로젝트가 지나치게 복잡해진 원인이다
와이어가드를 기초로 해서 더 복잡한 솔루션이 만들어질 수는 있다. 예를 들어 기업에서는 자동화된 방식으로 많은 수의 컴퓨터에 새로운 소프트웨어를 배포하고 구성해야 하지만, 여러 피어에 걸친 공개 키의 분산과 키 관리는 와이어가드 자체에서는 다루지 않으므로 별도의 툴로 구현해야 한다. editor@itworld.co.kr
함께 보면 좋은 콘텐츠
Sponsored
Surfshark
“유료 VPN, 분명한 가치 있다” VPN 선택 가이드
ⓒ Surfshark VPN(가상 사설 네트워크, Virtual Private Network)은 인터넷 사용자에게 개인 정보 보호와 보안을 제공하는 중요한 도구로 널리 인정받고 있다. VPN은 공공 와이파이 환경에서도 데이터를 안전하게 전송할 수 있고, 개인 정보를 보호하는 데 도움을 준다. VPN 서비스의 수요가 증가하는 것도 같은 이유에서다. 동시에 유료와 무료 중 어떤 VPN을 선택해야 할지 많은 관심을 가지고 살펴보는 사용자가 많다. 가장 먼저 사용자의 관심을 끄는 것은 별도의 예산 부담이 없는 무료 VPN이지만, 그만큼의 한계도 있다. 무료 VPN, 정말 괜찮을까? 무료 VPN 서비스는 편리하고 경제적 부담도 없지만 고려할 점이 아예 없는 것은 아니다. 보안 우려 대부분의 무료 VPN 서비스는 유료 서비스에 비해 보안 수준이 낮을 수 있다. 일부 무료 VPN은 사용자 데이터를 수집해 광고주나 서드파티 업체에 판매하는 경우도 있다. 이러한 상황에서 개인 정보가 유출될 우려가 있다. 속도와 대역폭 제한 무료 VPN 서비스는 종종 속도와 대역폭에 제한을 생긴다. 따라서 사용자는 느린 인터넷 속도를 경험할 수 있으며, 높은 대역폭이 필요한 작업을 수행하는 데 제약을 받을 수 있다. 서비스 제한 무료 VPN 서비스는 종종 서버 위치가 적거나 특정 서비스 또는 웹사이트에 액세스하지 못하는 경우가 생긴다. 또한 사용자 수가 늘어나 서버 부하가 증가하면 서비스의 안정성이 저하될 수 있다. 광고 및 추적 위험 일부 무료 VPN은 광고를 삽입하거나 사용자의 온라인 활동을 추적하여 광고주에게 판매할 수 있다. 이 경우 사용자가 광고를 보아야 하거나 개인 정보를 노출해야 할 수도 있다. 제한된 기능 무료 VPN은 유료 버전에 비해 기능이 제한될 수 있다. 예를 들어, 특정 프로토콜이나 고급 보안 기능을 지원하지 않는 경우가 그렇다. 유료 VPN의 필요성 최근 유행하는 로맨스 스캠은 인터넷 사기의 일종으로, 온라인 데이트나 소셜 미디어를 통해 가짜 프로필을 만들어 상대를 속이는 행위다. 이러한 상황에서 VPN은 사용자가 안전한 연결을 유지하고 사기 행위를 방지하는 데 도움이 된다. VPN을 통해 사용자는 상대방의 신원을 확인하고 의심스러운 활동을 감지할 수 있다. 서프샤크 VPN은 구독 요금제 가입 후 7일간의 무료 체험을 제공하고 있다. ⓒ Surfshark 그 외에도 유료 VPN만의 강점을 적극 이용해야 하는 이유는 다음 3가지로 요약할 수 있다. 보안 강화 해외 여행객이 증가함에 따라 공공 와이파이를 사용하는 경우가 늘어나고 있다. 그러나 공공 와이파이는 보안이 취약해 개인 정보를 노출할 위험이 있다. 따라서 VPN을 사용하여 데이터를 암호화하고 개인 정보를 보호하는 것이 중요하다. 서프샤크 VPN은 사용자의 개인 정보를 안전하게 유지하고 해킹을 방지하는 데 유용하다. 개인정보 보호 인터넷 사용자의 검색 기록과 콘텐츠 소비 패턴은 플랫폼에 의해 추적될 수 있다. VPN을 사용하면 사용자의 IP 주소와 로그를 숨길 수 있으며, 개인 정보를 보호할 수 있다. 또한 VPN은 사용자의 위치를 숨기고 인터넷 활동을 익명으로 유지하는 데 도움이 된다. 지역 제한 해제 해외 여행 중에도 한국에서 송금이 필요한 경우가 생길 수 있다. 그러나 IP가 해외 주소이므로 은행 앱에 접근하는 것이 제한될 수 있다. VPN을 사용하면 지역 제한을 해제해 해외에서도 한국 인터넷 서비스를 이용할 수 있다. 따라서 해외에서도 안전하고 편리하게 인터넷을 이용할 수 있다. 빠르고 안전한 유료 VPN, 서프샤크 VPN ⓒ Surfshark 뛰어난 보안 서프샤크 VPN은 강력한 암호화 기술을 사용하여 사용자의 인터넷 연결을 안전하게 보호한다. 이는 사용자의 개인 정보와 데이터를 보호하고 외부 공격으로부터 사용자를 보호하는 데 도움이 된다. 다양한 서버 위치 서프샤크 VPN은 전 세계 곳곳에 여러 서버가 위치하고 있어, 사용자가 지역 제한된 콘텐츠에 액세스할 수 있다. 해외에서도 로컬 콘텐츠에 손쉽게 접근할 수 있음은 물론이다. 속도와 대역폭 서프샤크 VPN은 빠른 속도와 무제한 대역폭을 제공하여 사용자가 원활한 인터넷 경험을 누릴 수 있도록 지원한다. 온라인 게임, 스트리밍, 다운로드 등 대역폭이 필요한 활동에 이상적이다. 다양한 플랫폼 지원 서프샤크 VPN은 다양한 플랫폼 및 디바이스에서 사용할 수 있다. 윈도우, 맥OS, iOS, 안드로이드 등 다양한 운영체제 및 디바이스에서 호환되어 사용자가 어디서나 안전한 인터넷을 즐길 수 있다. 디바이스 무제한 연결 서프샤크 VPN은 무제한 연결을 제공하여 사용자가 필요할 때 언제든지 디바이스의 갯수에 상관없이 VPN을 사용할 수 있다.