DNS over HTTPS

DNS over HTTPS(DoH)는 도메인 네임 시스템(DNS) 확인을 HTTPS 프로토콜을 통해 처리하기 위한 통신 규약이다. 중간자 공격에 의한 DNS 데이터의 도청과 조작을 방지하여 사용자의 개인 정보 보호와 보안을 강화하는 것을 목표로 한다.[1] 2018년 3월 Google과 Mozilla 재단은 DNS over HTTPS의 테스트를 진행했으며[2][3] Cloudflare는 Mozilla와 함께 모든 DNS 기록을 매일 삭제하고 있음을 밝혔다.[4]

보안에 더해 DNS over HTTPS의 또 다른 목표는 성능을 향상시키는 것이다. ISP DNS 리졸버(resolver)는 테스트에서 많은 경우 크게 늦은 응답 속도를 보였으며, 웹 페이지의 로드와 같이 하나의 서비스를 제공하는 데 있어 많은 주소를 해결할 필요성에 의해 커질 수 있는 문제를 야기한다.[1]

기술 세부 사항[편집 | 원본 편집]

DNS over HTTPS 는 국제 인터넷 표준화 기구에 의해 RFC 8484로 지정된 표준이다.[5] 이는 HTTP/2와 HTTPS를 사용하며, 기존 UDP응답으로 반환되는 "와이어 형식" DNS응답 데이터를 application/dns-message 유형의 HTTPS 페이로드로 지원한다.[1][6] HTTP/2가 사용될 경우 서버는 HTTP/2 서버 푸시를 통해 클라이언트가 이점을 얻을 것으로 예상되는 값을 보낼 수 있다.[7]

구현 시나리오[편집 | 원본 편집]

DNS over HTTPS는 DNS 리졸버(resolver)에 의한 재귀적 DNS 확인에 사용된다. 리졸버(DoH clients)는 쿼리 엔드포인트를 호스팅하는 DoH 서버에 대한 접근을 필요로 한다.[7]

DNS over HTTPS는 운영 시스템에서 기본적으로 지원되지 않으며, 이에 따라 사용을 원할 경우 추가 소프트웨어를 추가 소프트웨어를 설치해야 한다. 이는 세 구현 방법으로 나뉠 수 있다.

  • 애플리케이션 내 DoH 구현
    일부 브라우저는 DoH 구현이 내장되어 시스템의 DNS 기능을 무시해 쿼리 수행이 가능하다. 단점으로 구성이 잘못되었거나 DoH 지원이 부족하여 애플리케이션이 DoH 쿼리를 건너뛰는 경우 이를 사용자에게 알리지 않을 수 있다.
  • 로컬 네트워크의 네임서버에 DoH 프록시 설치
    클라이언트 시스템은 계속해서 기존 (포트 53 또는 853) DNS를 통해 로컬 네트워크의 네임서버를 쿼리하며, 인터넷상의 DoH 서버에 연결하여 DoH를 통해 필요한 응답을 수집한다. 이는 최종 사용자에 대한 투명성을 지닌다.
  • 로컬 시스템에 DoH 프록시 설치:
    운영 시스템이 로컬에서 실행 중인 DoH 프록시를 쿼리하도록 구성된다. 앞서 언급한 방법과 달리 DoH를 사용하려는 각 시스템에 프록시를 설치해야 하므로 대규모 환경에서는 많은 작업이 필요할 수 있다.

모든 시나리오에서 DoH 클라이언트는 직접적으로 네임서버를 쿼리하지 않는다. 대신 클라이언트는 전통적인 (포트 53 또는 853) 쿼리를 사용하여 DoH 서버를 신뢰한다. 이에 따라 DoH는 종단간 암호화 프로토콜로서의 자격을 얻지 못하며, hop-to-hop으로 암호화되고 DNS over TLS가 일관되게 사용되는 경우에만 가능하다.

공용 DNS 서버의 DoH 사용[편집 | 원본 편집]

DNS over HTTPS의 서버 구현은 일부 공용 DNS제공자를 통해 무료 사용이 가능하다.[8]

지원 클라이언트[편집 | 원본 편집]

  • Android: 9.0 Pie(파이) 버전에서 자체적으로 지원하며, Google DNS 설정과[9] Cloudfare DNS 설정[10]을 통해 사용할 수 있다.
  • Dnscrypt-proxy[11]
  • Firefox(웹 브라우저): 62버전 이후에서 사용할 수 있다.[12]
  • DNSCrypt-proxy: 로컬 DNS → DNS over HTTPS 프록시의 구성이 가능하다.[13]
  • doh-php-client: PHP 구현이 가능하다.[14]
  • Technitium DNS Client: C# .NET 크로스 플랫폼 실행이 가능하다.[15]
  • Technitium DNS Server: DNS-over-HTTPS 전달자가 있는 로컬 DNS 서버를 지원한다.[16]
  • Intra — Android에서 모든 DNS쿼리를 사용자가 선택한 DNS-over-HTTPS서버로 라우팅할 수 있다.[17]
  • Android, iOS용 Cloudflare 1.1.1.1 클라이언트 앱[18]
  • curl: 7.62.0.버전 이후에서 사용할 수 있다.[19]
  • iOS: 14버전부터 사용할수 있다.

대안[편집 | 원본 편집]

같이 보기[편집 | 원본 편집]

관련 사이트[편집 | 원본 편집]

각주

  1. 1.0 1.1 1.2 Richard, Chirgwin, “IETF protects privacy and helps net neutrality with DNS over HTTPS (en)”, 2017년 12월 14일 작성. 2018년 3월 21일 확인.
  2. DNS-over-HTTPS | Public DNS | Google Developers (en), Google Developers,. 2018년 3월 21일에 확인.
  3. (영어) Catalin, Cimpanu, “Mozilla Is Testing "DNS over HTTPS" Support in Firefox (en-us)”, 2018년 3월 20일 작성. 2018년 3월 21일 확인.
  4. (영어) DNS over HTTPS (DoH): Ultimate Guide (.pdf) - SSL Retail, sslretail.com,. 2019년 2월 11일에 확인.
  5. (영어) RFC 8484 - DNS Queries over HTTPS (DoH), IETF Tools,. 2019년 2월 11일에 확인.
  6. (영어) P, Hoffman. RFC 8484 - DNS Queries over HTTPS (en), datatracker.ietf.org,. 2018년 5월 20일에 확인.
  7. 7.0 7.1 (영어) P, Hoffman. draft-ietf-doh-dns-over-https-08 - DNS Queries over HTTPS (en), datatracker.ietf.org,. 2018년 5월 20일에 확인.
  8. (영어) DNS over HTTPS Implementations (en-us) (2018년 4월 27일). 2018년 4월 27일에 확인.
  9. (영어) Stephen Pinkerton (2019.01.25.). Get Started  , Google Developers,. 2019.02.12.에 확인.
  10. (영어) Stephen Pinkerton (2018.08.16.). Enable Private DNS with 1.1.1.1 on Android 9 Pie, The Cloudflare Blog,. 2019.02.12.에 확인.
  11. https://github.com/jedisct1/dnscrypt-proxy
  12. (영어) Improving DNS Privacy in Firefox.
  13. (영어) DNSCrypt-proxy v2.0.
  14. (영어) DNS over HTTPS PHP Client.
  15. (영어) DNS over HTTPS C# Client.
  16. (영어) Technitium DNS Server as DNS-over-HTTPS Proxy.
  17. (영어) Intra on Play Store.
  18. (영어) Catalin, Cimpanu. Cloudflare launches Android and iOS apps for its 1.1.1.1 service (en), ZDNet,. 2018년 12월 13일에 확인.
  19. (영어) DoH in curl.
Wikipedia-ico-48px.png이 문서에는 영어판 위키백과의 DNS over HTTPS 문서 882739170 판을 번역한 내용이 포함되어 있습니다.