Structured DNS Errors를 지원하는 AdGuard DNS
AdGuard DNS v2.10에서는 DNS-over-QUIC 구현만큼이나 중요한 Structured DNS Errors 기능을 추가했습니다. 따라서 AdGuard DNS는 공식 표준이 되기 전에 Structured DNS Errors를 구현한 세계 최초의 공용 DNS 리졸버가 되었습니다.
아래에서 이 기능이 왜 중요한지 자세히 설명해드리겠습니다. 하지만 시간이 부족하다면 여기 요약본을 참고하세요:
- 웹사이트가 DNS 수준에서 차단되면 사용자에게 차단 이유를 설명하지 않는 '이 사이트에 연결할 수 없습니다' 또는 '인터넷 연결 없음' 오류가 표시됩니다.
- 오류를 설명하기 위해 DNS 서버는 사용자를 설명이 포함된 자체 페이지로 리디렉션할 수 있습니다. 하지만 대부분의 웹사이트에 해당하는 HTTPS 웹사이트는 별도의 인증서가 필요합니다.
- 저희는 구조화된 DNS 오류Structured DNS Errors(SDE)라는 더 간단한 해결책을 찾았습니다. 이를 통해 웹사이트 차단 이유, 책임 주체, 연락처 정보와 같은 추가 정보를 DNS 응답으로 전송하여 브라우저가 이를 읽고 사용자에게 전달할 수 있도록 합니다.
- 이 시스템이 작동하려면 브라우저가 SDE를 지원해야 합니다. 저희는 브라우저가 SDE 지원을 구현하기를 기다리고 있습니다.
Structured DNS Errors란 무엇인가요?
DNS 수준 필터링은 널리 사용됩니다. AdGuard DNS의 사용자만 1억 명이 넘습니다. 사람들은 광고와 추적기를 차단하고 자녀를 보호하기 위해 DNS 필터링을 사용합니다. 사용자가 수동으로 DNS를 설정하지 않았더라도 국가 또는 회사의 정책으로 인해 DNS 필터링에 직면할 수 있습니다. 인터넷 사용자 수만큼이나 많은 사람들이 DNS에 의해 차단된 웹사이트를 경험했다고 가정해도 무방합니다.
DNS 수준 차단은 전체 도메인 접속을 차단합니다. 사용자가 https://example.com 도메인을 방문하려고 하면 브라우저가 DNS 요청을 하고 DNS 서버가 example.com 도메인이 차단되었다고 응답하여 브라우저에 ‘이 사이트에 연결할 수 없습니다’ 또는 ‘인터넷에 연결할 수 없습니다’라는 메시지가 표시됩니다.
사용자가 특정 도메인을 수동으로 차단하지 않은 경우 차단 이유가 불분명할 수 있습니다.
DNS 서비스와 사용자 간의 이러한 소통 부족은 문제입니다. DNS 서비스는 사용자를 더 자세한 설명이 있는 페이지로 리디렉션하여 사용자가 무슨 일이 발생했는지, 누구에게 연락해야 하는지 알 수 있도록 하는 등 이 문제를 해결할 수 있습니다.
하지만 문제점이 있을 수 있습니다:
- HTTP 웹사이트인 경우(즉, 연결이 암호화되지 않음) DNS 서버는 사용자를 암호화되지 않은 페이지로 안전하게 리디렉션할 수 있습니다.
- HTTPS 웹사이트인 경우, 브라우저는 인증서 인증을 수행하고 https://example.com 에 대한 유효한 인증서가 표시될 것으로 예상합니다. AdGuard DNS가 자체 페이지로 리디렉션하면 브라우저는 인증서 유효성 검사 오류를 발생시킵니다.
한 가지 해결책은 사용자의 기기에 특수 인증서를 설치하는 것입니다. 하지만 이 방법이 항상 가능하거나 안전한 것은 아닙니다. 훨씬 더 쉬운 방법이 있습니다. DNS 응답에 더 많은 정보를 보내는 것입니다.
DNS 응답에 더 많은 정보를 전송하기 위해 2020 Extended DNS Errors 표준이 도입되어 DNS 응답에 오류 코드와 함께 자세한 내용을 확인할 수 있는 EXTRA-TEXT
필드를 포함할 수 있게 되었습니다. Structured DNS Errors 초안에서는 브라우저에서 쉽게 읽고 사용자 친화적인 형식으로 표시할 수 있는 I-JSON(JSON의 제한된 프로필) 파일을 EXTRA-TEXT
필드에 추가할 것을 제안합니다.
이러한 I-JSON 파일에는 무엇이 포함되나요?
- 차단 이유
- 실수로 페이지가 차단된 경우 문의를 위한 연락처 정보
- 이 경우 DNS 필터링을 담당하는 단체(선택 사항)
- 기타 선택적 정보
이러한 시스템은 DNS 서비스와 사용자 간의 투명성을 높이고 사용자를 안전하게 보호합니다. 사용자가 웹사이트가 차단된 이유를 이해하면 암호화되지 않은 서버를 위해 안전한 DNS 서버를 포기할 가능성이 줄어듭니다.
Extended DNS Errors 및 Structured DNS Errors를 구현하려면 무엇이 필요하나요?
브라우저는 이를 지원해야 합니다. 결국, 브라우저는 단순한 연결 오류이든 웹사이트가 차단된 이유와 다음에 수행할 작업에 대한 자세한 설명이든 사용자에게 표시되는 정보를 결정합니다.
저희는 브라우저 담당자들에게 RFC8914에 대한 지원을 추가할 것을 요청합니다. 이러한 변화는 수십억 명의 사람들이 인터넷을 더욱 투명하고 사용자 친화적으로 만드는 데 도움이 될 것입니다.
Structured DNS Errors는 AdGuard DNS에서 어떻게 구현되나요?
브라우저에서 Structured DNS Errors를 지원하는 경우 어떻게 작동하는지 보여주는 데모 확장 프로그램을 만들었습니다. 이 확장 프로그램을 사용하면 AdGuard DNS에 의해 차단된 웹사이트를 방문하려고 하면 확장 프로그램이 SDE를 통해 전송된 정보를 읽고 설명 페이지를 표시합니다.
확장 프로그램은 Chrome 웹 스토어 또는 GitHub에서 다운로드할 수 있습니다.
기타 개선 사항 사용자와 단체를 위한 더욱 개인화된 경험
대상에는 대규모 단체뿐만 아니라 가정에 DNS를 설정하는 개인도 포함됩니다. 각 사용자의 요구 사항을 더 잘 이해하기 위해 목표와 예상 기기 수에 대한 정보를 수집하는 온보딩 설문조사를 추가했습니다.
이는 향후 DNS를 개인화하는 데 도움이 될 것입니다. 예를 들어 자동화 옵션이 필요한 사용자에게 자동화 옵션에 대한 자세한 정보를 제공할 수 있습니다.