2018년 4월, Cloudflare(클라우드플레어)가 새로운 보안 도구를 출시했습니다. '1.1.1.1'이라는 이름의 이 서비스는 누구나 무료로 사용할 수 있는 개인용 DNS 주소로, DNS 보안을 강화하고 사용자의 개인정보를 보호하며, 나아가 네트워크 연결 속도까지 향상시킬 수 있습니다.
그런데 어떻게 작동할까요? 어떻게 사용해야 할까요? 그리고 어떤 DNS 프라이버시 위험을 개선해줄 수 있을까요? 지금부터 자세히 살펴보겠습니다.
DNS와 프라이버시의 문제점
도메인 네임 시스템(DNS)은 흔히 "인터넷의 전화번호부"라고 불립니다. 우리가 매일 사용하는 도메인(예: makeuseof.com)을 해당 사이트 웹 서버의 IP 주소와 연결해주는 역할을 하는 기술입니다.
물론 사이트의 IP 주소를 직접 입력해도 홈페이지에 접속할 수 있지만, 텍스트 기반의 URL이 훨씬 기억하기 쉽기 때문에 우리는 이를 사용합니다.
안타깝게도 DNS 기술에는 많은 프라이버시 문제가 있습니다. 이러한 문제는 시스템에서 일반적인 보안 조치를 모두 취했더라도 온라인 안전을 위협할 수 있습니다. DNS와 관련된 가장 심각한 프라이버시 문제들을 하나씩 확인해보겠습니다.
1. ISP가 지켜보고 있습니다
DNS의 작동 방식 특성상, DNS는 방문한 웹사이트의 기록처럼 작동합니다. 방문하는 사이트가 HTTPS를 사용하는지 여부와 상관없이, ISP(인터넷 서비스 제공업체), 모바일 통신사, 공용 Wi-Fi 제공업체는 모두 어떤 도메인을 방문했는지 정확히 알 수 있습니다.
더 걱정스러운 점은 2017년 중반부터 미국의 ISP들이 고객의 검색 데이터를 판매해 수익을 얻는 것이 허용되었다는 사실입니다. 실제로 이러한 관행은 전 세계적으로 흔하게 이루어지고 있습니다.
결국 여러분의 검색 기록은 거대 기업들의 돈벌이 수단이 되고 있는 셈입니다. 그렇기 때문에 항상 제3자 DNS 제공업체를 사용하는 것이 좋습니다.
2. 정부가 지켜보고 있습니다
ISP와 마찬가지로 정부 당국 역시 DNS 기록을 통해 어떤 사이트를 방문했는지 확인할 수 있습니다.
정치적 반대파, 성소수자(LGBTQ) 활동가, 대안 종교 등에 대해 관대하지 않은 국가에 거주하고 있다면, 그런 성격의 사이트를 방문하는 것만으로도 곤란한 상황에 처할 수 있습니다.
안타깝게도 DNS 조회 기록은 여러분을 잠재적으로 탄압할 수 있는 기관에게 여러분의 사적인 신념까지 고스란히 드러낼 수 있습니다.
3. 스누핑과 변조
DNS에는 "마지막 구간(last mile)" 암호화가 없다는 점에서도 위험에 노출되어 있습니다.
DNS에는 양측이 존재합니다. 콘텐츠 쪽의 '권한 있는(authoritative)' DNS와 ISP 쪽의 '재귀 리졸버(recursive resolver)'입니다. 쉽게 말해, DNS 리졸버는 질문("이 사이트는 어디에 있나요?")을 던지고, 권한 있는 DNS 네임서버는 그에 대한 답변을 제공한다고 이해하면 됩니다.
리졸버와 권한 있는 서버 사이를 오가는 데이터는 (이론상) DNSSEC에 의해 보호됩니다. 하지만 "마지막 구간", 즉 여러분의 컴퓨터(스텁 리졸버)와 재귀 리졸버 사이 구간은 안전하지 않습니다.
불행하게도 이 마지막 구간은 스누핑(엿보기)과 변조 시도에 수많은 기회를 제공합니다.
4. 중간자(Man-in-the-Middle) 공격
웹을 탐색할 때 컴퓨터는 네트워크 어딘가에 캐시된 DNS 데이터를 자주 활용합니다. 이는 페이지 로딩 시간을 단축하는 데 도움이 됩니다.
그러나 캐시 자체도 "캐시 포이즈닝(cache poisoning)"의 표적이 될 수 있습니다. 이는 일종의 중간자 공격입니다.
간단히 말해, 해커는 취약점과 잘못된 설정을 이용해 캐시에 허위 데이터를 삽입할 수 있습니다. 그러면 다음에 "오염된" 사이트에 접속하려고 할 때 범죄자가 통제하는 서버로 연결됩니다.
공격자는 목표 사이트까지 복제할 수 있기 때문에, 여러분은 리디렉션되었다는 사실조차 모른 채 아이디, 비밀번호 등 민감한 정보를 입력할 수 있습니다.
수많은 피싱 공격이 바로 이 과정을 통해 이루어집니다.
Cloudflare는 어떻게 작동하나요?
Cloudflare의 새로운 1.1.1.1 서비스는 DNS 기술과 관련된 많은 프라이버시 문제를 해결할 수 있습니다.
Cloudflare는 서비스를 공개하기 전에 오랫동안 브라우저 개발자들과 협의를 진행했으며, 그들의 권고 사항에 따라 도구를 개발했습니다.
1. Cloudflare DNS, 안전한가요?
네, 안전합니다. 추적도 없고 데이터 저장도 없습니다. Cloudflare는 DNS 사용자를 추적하거나 열람 습관을 기반으로 광고를 판매하지 않겠다고 공식 약속했습니다. 이러한 약속에 대한 소비자의 신뢰를 높이기 위해, IP 주소 조회 내역을 디스크에 저장하지 않겠다고 서약했으며 24시간 이내에 모든 DNS 로그를 삭제하겠다고 밝혔습니다.
실질적으로 이는 여러분의 DNS 기록이 ISP나 정부의 손에 넘어가지 않는다는 의미입니다. Cloudflare에조차 요청해서 열람할 기록 자체가 남지 않습니다.
2. 최첨단 기술
URL을 입력하고 Enter 키를 누르면 거의 모든 DNS 리졸버는 전체 도메인 이름("www", "makeuseof", "com")을 루트 서버, .com 서버 및 중개 서비스들에 전송합니다.
그러나 이 모든 정보는 불필요합니다. 루트 서버는 리졸버를 .com으로 안내만 하면 되고, 이후 조회 쿼리는 그 시점부터 진행될 수 있습니다.
이 문제를 해결하기 위해 Cloudflare는 스텁 리졸버와 재귀 리졸버를 연결하는 과정에서 이미 합의된 것과 제안된 다양한 DNS 프라이버시 보호 메커니즘을 폭넓게 적용했습니다. 그 결과 1.1.1.1은 필요한 최소한의 정보만 전송합니다.
3. 스누핑 방지
"Cloudflare DNS는 안전한가?"라는 질문에 대한 답은 분명히 '예'입니다. 1.1.1.1 서비스는 마지막 구간의 스누핑을 방지하는 기능인 DNS over TLS를 제공합니다.
DNS over TLS는 마지막 구간을 암호화합니다. 스텁 리졸버가 853번 포트에서 Cloudflare와 TCP 연결을 맺고, TCP 핸드셰이크를 시작하면 Cloudflare가 TLS 인증서를 제공하는 방식으로 작동합니다.
연결이 성립되는 즉시 스텁 리졸버와 재귀 리졸버 간의 모든 통신이 암호화됩니다. 그 결과 도청과 변조가 원천적으로 불가능해집니다.
4. 중간자 공격 대응
Cloudflare의 통계에 따르면, 재귀 리졸버와 권한 있는 서버 간의 연결을 보호하기 위해 DNSSEC을 사용하는 도메인은 전체의 10% 미만에 불과합니다.
DNS over HTTPS는 DNSSEC을 사용하지 않는 HTTPS 도메인의 보안을 강화하기 위한 신생 기술입니다.
암호화가 없으면 해커가 여러분의 데이터 패킷을 도청해 어떤 사이트를 방문하는지 알아낼 수 있습니다. 또한 암호화 부족은 앞서 설명한 것과 같은 중간자 공격에 취약하게 만듭니다.
Cloudflare DNS 사용 방법
새로운 1.1.1.1 서비스를 사용하는 것은 매우 간단합니다. Windows와 Mac에서의 설정 방법을 순서대로 설명하겠습니다.
Windows에서 Cloudflare DNS 설정하기
Windows에서 DNS 제공업체를 변경하려면 다음 단계를 따르세요:
- 시작 메뉴에서 설정 앱을 엽니다.
- 네트워크 및 인터넷 > 상태 > 네트워크 설정 변경 > 어댑터 옵션 변경으로 이동합니다.
- 사용 중인 연결을 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다.
- 아래로 스크롤하여 Internet Protocol Version 4(TCP/IPv4)를 선택한 후 속성을 클릭합니다.
- 다음 DNS 서버 주소 사용을 선택합니다.
- 첫 번째 줄에 1.1.1.1, 두 번째 줄에 1.0.0.1을 입력합니다.
- 확인을 누릅니다.
설정 적용을 위해 컴퓨터를 재시작해야 할 수도 있습니다.
Mac에서 Cloudflare DNS 설정하기
Mac을 사용 중이라면 다음 지침에 따라 DNS를 변경하세요:
- Apple 메뉴 > 시스템 환경설정 > 네트워크로 이동합니다.
- 창 왼쪽 패널에서 사용 중인 연결을 클릭합니다.
- 고급을 클릭합니다.
- DNS 탭을 선택하고 + 버튼을 클릭합니다.
- 입력란에 1.1.1.1과 1.0.0.1을 추가합니다.
- 확인을 클릭합니다.
스마트폰에서 Cloudflare DNS 설정하기
Android와 iOS에서 Cloudflare를 사용하려면 각 앱 스토어에서 무료 앱을 다운로드하면 됩니다. 이 앱은 Cloudflare의 비교적 최신 프로젝트로, 2018년 11월에야 출시되었습니다.
'1.1.1.1'이라는 이름의 이 앱은 Cloudflare의 DNS 서버를 간편하게 켜고 끌 수 있는 토글 버튼을 제공합니다. 물론 스마트폰의 기본 설정 메뉴를 통해 DNS를 변경할 수도 있지만, 설정 위치를 찾기 어려운 경우가 많고 일부 제조사는 아예 접근을 차단해두기도 합니다. 앱을 이용하면 초보자도 훨씬 쉽게 설정할 수 있습니다.
그리고 항상 VPN을 함께 사용하세요
좋은 DNS만큼이나 중요한 것은 온라인 개인정보 보호를 위해 항상 강력한 VPN을 사용하는 것입니다.
평판 좋은 VPN 제공업체라면 대부분 자체 DNS 주소도 함께 제공합니다. 하지만 경우에 따라서는 위에서 설명한 방법으로 DNS를 수동으로 업데이트해야 할 수 있습니다. 이를 놓치면 DNS 누출(DNS leak)이 발생할 수 있습니다.
VPN 제공업체가 자체 DNS 주소를 제공하더라도 Cloudflare의 주소를 대신 사용할 수 있으며, 실제로 그것이 권장됩니다. VPN 업체의 DNS가 새로운 1.1.1.1 서비스만큼 정교하거나 견고하지 않을 가능성이 높기 때문입니다.
믿을 만한 VPN 제공업체를 찾고 있다면 ExpressVPN, CyberGhost, Private Internet Access를 추천합니다.
더 깊이 알고 싶다면 DNS 서버의 개념과 DNS 캐시 포이즈닝의 작동 원리를 다룬 가이드도 함께 확인해보세요.