<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-nottingham-public-resolver-errors-02" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <front>
    <title>DNS Filtering Details for Applications</title>
    <seriesInfo name="Internet-Draft" value="draft-nottingham-public-resolver-errors-02"/>
    <author initials="M." surname="Nottingham" fullname="Mark Nottingham">
      <organization>Cloudflare</organization>
      <address>
        <postal>
          <postalLine>Melbourne</postalLine>
          <postalLine>Australia</postalLine>
        </postal>
        <email>mnot@mnot.net</email>
        <uri>https://www.mnot.net/</uri>
      </address>
    </author>
    <author initials="D." surname="Adrian" fullname="David Adrian">
      <organization>Google</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>davidcadrian@gmail.com</email>
      </address>
    </author>
    <date year="2025" month="August" day="07"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 37?>

<t><xref target="I-D.ietf-dnsop-structured-dns-error"/> introduces structured error data for DNS responses that have been filtered. This specification allows more specific details of filtering incidents to be conveyed.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/mnot/public-resolver-errors"/>.</t>
    </note>
  </front>
  <middle>
    <?line 41?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Internet DNS resolvers are increasingly subject to legal orders that require blocking or filtering of specific names. Because such filtering happens during DNS resolution, there is not an effective way to communicate what is happening to end users, often resulting in misattribution of the issue as a technical problem, rather than a policy intervention.</t>
      <t>Some organizations, such as Lumen <xref target="lumen"/>, monitor legally-mandated filtering as a public service, tracking specific filtering incidents in publicly accessible databases. Public resolvers themselves may also choose to track filtering requests over time and make them available.</t>
      <t>This draft defines a mechanism for DNS resolvers to convey identifiers for entries in such databases, based upon the structured error data for DNS responses introduced by <xref target="I-D.ietf-dnsop-structured-dns-error"/>.</t>
      <t>A consuming party (e.g., a Web browser) can use this information to construct a link to the specific entry in the provider's database of filtering incidents. This enables user agents to direct users to additional context about the filtering incident they encountered.</t>
      <t>The information conveyed is a DNS Filtering Database Entry, specified in <xref target="entry-id"/>. This abstraction is necessary because allowing DNS resolvers to inject links or user-visible messages would bring unique challenges. DNS resolvers are often automatically configured by unknown networks and DNS responses are unauthenticated, so these messages can come from untrusted parties -- including attackers (e.g., the so-called "coffee shop" attack) that leverage many users' lack of a nuanced model of the trust relationships between all of the parties that are involved in the service they are using.</t>
      <t>This draft attempts to mitigate these risks by minimising the information carried in the DNS response to abstract, publicly registered identifiers associated with databases of filtering incidents -- the DNS Filtering Database Entry -- rather than arbitrary URLs. A consuming party can choose which database identifiers they support are are willing to direct their users to, without enabling every DNS server to surface arbitrary links and text, and without requiring every consuming party to independently track which URLs are in use.</t>
      <section anchor="example">
        <name>Example</name>
        <t>In typical use, a DNS query that is filtered might contain an Extended DNS Error Code 17 (see <xref target="RFC8914"/>) and an EXTRA-TEXT field "fdb", which is an array of references to filtering database entries:</t>
        <sourcecode type="json"><![CDATA[
{
  "fdbs": [
    {"db": "example",
    "id": "abc123"},
    {"db": "lumen",
    "id": "def456"}
  ]
}
]]></sourcecode>
        <t>This indicates that the filtering incident can be accessed in two different databases, and the ID associated with each database. In this example, the data is available in the "example" database at identifier "abc123", and in the "lumen" database at identifier "def456".</t>
        <t>An application that evaluates the DNS server and decides to present links to "example" to its users would look up "example" in a local copy of the DNS Filtering Incident Database Registry (see <xref target="registry"/>) and obtain the corresponding template (see <xref target="template"/>). For purposes of this example, assume that the registry entry for that value contains:</t>
        <artwork><![CDATA[
https://resolver.example.com/filtering-incidents/{id}
]]></artwork>
        <t>That template can be expanded using the value of "id" to:</t>
        <artwork><![CDATA[
https://resolver.example.com/filtering-incidents/abc123
]]></artwork>
        <t>The application could (but might not) then decide to convey some or all of this information to its user; for example, with a statement that conveys:</t>
        <ul empty="true">
          <li>
            <t>The webpage at www.example.net was blocked due to a legal request. Your DNS resolver may have more information about the legal request here:</t>
            <t>https://resolver.example.com/filtering-incidents/abc123</t>
          </li>
        </ul>
        <t>Note that there is no requirement for the resolver to construct links to any database, nor for results from any DNS server. The resolver both chooses which database providers it supports, and can evaluate whatever mechanisms it chooses to determine if and when to provide a link to the database entry.</t>
      </section>
      <section anchor="notational-conventions">
        <name>Notational Conventions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
    </section>
    <section anchor="data-types">
      <name>Data Types</name>
      <t>This section defines the data types used to look up the details of a filtering incident from a DNS error response. Note that these identifiers are not for presentation to end users.</t>
      <section anchor="entry-id">
        <name>DNS Filtering Database Entry</name>
        <t>A Filtering Database Operator ID is a string identifier for the operator of a database of filtering incidents. It uses the key "db".</t>
        <t>A Filtering Incident ID is a string identifier for a particular filtering incident. It might be specific to a particular request, but need not be. It uses the key "id".</t>
        <t>An object containing both a Filtering Database Operator ID and a Filtering Incident ID is a Filtering Database Entry.</t>
        <sourcecode type="json"><![CDATA[
{
  "db": "example",
  "id": "abc123"
}
]]></sourcecode>
      </section>
      <section anchor="entry-list">
        <name>DNS Filtering Database Entry List</name>
        <t>A DNS Filtering Database Entries list is an array of Filtering Database Entry objects. Each entry <bcp14>MUST</bcp14> be related to the same underlying incident.</t>
        <t>It is carried in the EXTRA-TEXT field of the Extended DNS Error with the JSON field name "fdbs". For example:</t>
        <sourcecode type="json"><![CDATA[
{
  "fdbs": [ { ... }, { ... }, ... ]
}
]]></sourcecode>
        <t>Different clients will implement support for a varying set of database operators. Resolvers provide a list of entries (rather than a single entry) so that they can support as many clients with diverse database sets as possible.</t>
      </section>
    </section>
    <section anchor="template">
      <name>Database Entry Resolution Templates</name>
      <t>An Incident Resolution Template is a URI Template <xref target="RFC6570"/> contained in the DNS Filtering Database Registry (<xref target="registry"/>) that, upon expansion, provides a URI that can be dereferenced to obtain details about the filtering incident.</t>
      <t>It <bcp14>MUST</bcp14> be a Level 1 or Level 2 template (see <xref section="1.2" sectionFormat="of" target="RFC6570"/>). It has the following variables from the Filtering Database Entry (see <xref target="entry-id"/>) available to it:</t>
      <dl>
        <dt>db:</dt>
        <dd>
          <t>the Filtering Database Operator ID</t>
        </dd>
        <dt>id:</dt>
        <dd>
          <t>the Filtering Incident ID</t>
        </dd>
      </dl>
      <t>For example:</t>
      <artwork><![CDATA[
https://resolver.example.com/filtering-incidents/{inc}
]]></artwork>
      <t>Applications <bcp14>MUST</bcp14> store a local copy of the DNS Filtering Database Registry (<xref target="registry"/>) for purposes of template lookup; they <bcp14>MUST NOT</bcp14> query the IANA registry upon each use. The registry is keyed by the Filtering Database Operator ID.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="extra-text-json-names">
        <name>EXTRA-TEXT JSON Names</name>
        <t>IANA will register the following fields in the "EXTRA-TEXT JSON Names" sub-registry established by <xref target="I-D.ietf-dnsop-structured-dns-error"/>:</t>
        <dl spacing="compact">
          <dt>JSON Name:</dt>
          <dd>
            <t>"fdbs"</t>
          </dd>
          <dt>Short Description:</dt>
          <dd>
            <t>a array of filtering database entries</t>
          </dd>
          <dt>Mandatory:</dt>
          <dd>
            <t>no</t>
          </dd>
          <dt>Specification:</dt>
          <dd>
            <t>this document</t>
          </dd>
        </dl>
      </section>
      <section anchor="registry">
        <name>The DNS Filtering Database Registry</name>
        <t>IANA will establish a new registry, the "DNS Filtering Database Registry." Its registration policy is first-come, first-served (FCFS), although IANA may refuse registrations that it deems to be deceptive or spurious.</t>
        <t>It contains the following fields:</t>
        <dl>
          <dt>Name:</dt>
          <dd>
            <t>The name of the DNS Filtering Database</t>
          </dd>
          <dt>Contact:</dt>
          <dd>
            <t>an e-mail address or other appropriate contact mechanism</t>
          </dd>
          <dt>Filtering Database Operator ID:</dt>
          <dd>
            <t>see <xref target="entry-id"/></t>
          </dd>
          <dt>Incident Resolution Template:</dt>
          <dd>
            <t>see <xref target="template"/></t>
          </dd>
        </dl>
        <t>The Incident Resolution Template can be updated by the contact at any time. However, operators <bcp14>SHOULD</bcp14> accommodate potentially long lag times for applications to update their copies of the registry.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This specification does not provide a way to authenticate that a particular filtering incident as experienced by an application was actually associated with the information presented. This means that an attacker (for example, one controlling a DNS resolver) can claim that a particular filtering incident is occurring when in fact it is not. However, a successful attack would need to reuse an existing DNS Filtering Database Operator ID and Filtering Incident ID that combine to expand to a URL that can be successfully dereferenced. Doing so is not currently thought to be particularly advantageous to an attacker to do so. Future iterations of this specification may introduce more robust protections.</t>
      <t>The details of DNS responses are not available to all applications, depending on how they are architected and the information made available to them by their host. As a result, this mechanism is not reliable; some applications will not be able to display this error information.</t>
      <t>Because the registry is first-come, first-served, Applications (such as Web browsers) will need to exercise judgement regarding which database operators' error messages they display to users. This decision might be influenced by the identity of the resolver producing the error message, the database operator, or local configuration.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.ietf-dnsop-structured-dns-error">
          <front>
            <title>Structured Error Data for Filtered DNS</title>
            <author fullname="Dan Wing" initials="D." surname="Wing">
              <organization>Citrix Systems, Inc.</organization>
            </author>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <author fullname="Neil Cook" initials="N." surname="Cook">
              <organization>Open-Xchange</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <date day="5" month="May" year="2025"/>
            <abstract>
              <t>   DNS filtering is widely deployed for various reasons, including
   network security.  However, filtered DNS responses lack structured
   information for end users to understand the reason for the filtering.
   Existing mechanisms to provide explanatory details to end users cause
   harm especially if the blocked DNS response is for HTTPS resources.

   This document updates RFC 8914 by signaling client support for
   structuring the EXTRA-TEXT field of the Extended DNS Error to provide
   details on the DNS filtering.  Such details can be parsed by the
   client and displayed, logged, or used for other purposes.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-dnsop-structured-dns-error-15"/>
        </reference>
        <reference anchor="RFC8914">
          <front>
            <title>Extended DNS Errors</title>
            <author fullname="W. Kumari" initials="W." surname="Kumari"/>
            <author fullname="E. Hunt" initials="E." surname="Hunt"/>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="W. Hardaker" initials="W." surname="Hardaker"/>
            <author fullname="D. Lawrence" initials="D." surname="Lawrence"/>
            <date month="October" year="2020"/>
            <abstract>
              <t>This document defines an extensible method to return additional information about the cause of DNS errors. Though created primarily to extend SERVFAIL to provide additional information about the cause of DNS and DNSSEC failures, the Extended DNS Errors option defined in this document allows all response types to contain extended error information. Extended DNS Error information does not change the processing of RCODEs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8914"/>
          <seriesInfo name="DOI" value="10.17487/RFC8914"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC6570">
          <front>
            <title>URI Template</title>
            <author fullname="J. Gregorio" initials="J." surname="Gregorio"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="M. Hadley" initials="M." surname="Hadley"/>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="D. Orchard" initials="D." surname="Orchard"/>
            <date month="March" year="2012"/>
            <abstract>
              <t>A URI Template is a compact sequence of characters for describing a range of Uniform Resource Identifiers through variable expansion. This specification defines the URI Template syntax and the process for expanding a URI Template into a URI reference, along with guidelines for the use of URI Templates on the Internet. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6570"/>
          <seriesInfo name="DOI" value="10.17487/RFC6570"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="lumen" target="https://lumendatabase.org/">
          <front>
            <title>Lumen</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 221?>

<section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to Lars Eggert, Tommy Pauly, Emily Stark, and Martin Thomson for their input to this specification.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
mCf/B1Rh40QrKAAA

-->

</rfc>
