<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.4 (Ruby 3.0.6) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC1034 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1034.xml">
<!ENTITY RFC1035 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml">
<!ENTITY RFC7515 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7515.xml">
<!ENTITY RFC8499 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8499.xml">
<!ENTITY RFC9364 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9364.xml">
]>


<rfc ipr="trust200902" docName="draft-pan-dnsop-authenticated-subdomain-whitelist-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="EFAS">Authenticated subdomain whitelist (ASDWL) for second-level domain (SLD)</title>

    <author initials="L." surname="Pan" fullname="Lanlan Pan">
      <organization></organization>
      <address>
        <postal>
          <city>Guangdong</city>
          <country>China</country>
        </postal>
        <email>abbypan@gmail.com</email>
      </address>
    </author>

    <date year="2025" month="February" day="23"/>

    <area>ops</area>
    <workgroup>dnsop</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 89?>

<t>This document describes about an authenticated subdomain whitelist (ASDWL) scheme to mitigate the random subdomain attacks on second-level domain (SLD).</t>



    </abstract>



  </front>

  <middle>


<?line 93?>

<section anchor="background"><name>Background</name>

<t>The DNS random subdomain attack, also referred to as DNS water torture attack or pseudo-random subdomain attack, represents a form of DDoS attack specifically targeting DNS services.
The attacker orchestrates huge amounts of bots to send queries to recursive resolvers. 
These queries are random subdomains under the victim domains, which are not currently cached in recursive resolvers. 
Consequently, the recursive resolvers must forward these queries to the authoritative servers responsible for the victim domains.
This process places a significant burden on both the recursive resolvers and the authoritative servers, potentially leading to service degradation or outright failure.</t>

<t>We describe an authenticated subdomain whitelist (ASDWL) scheme to mitigate DNS random subdomain attacks on second-level domains.</t>

</section>
<section anchor="terminology"><name>Terminology</name>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in <xref target="RFC2119"/>.</t>

<t>Basic terms used in this specification are defined in the documents <xref target="RFC1034"/>, <xref target="RFC1035"/>, <xref target="RFC8499"/>.</t>

<t><list style="symbols">
  <t>Authoritative Server: Described in <xref target="RFC8499"/>.</t>
  <t>Recursive Resolver: Described in <xref target="RFC8499"/>.</t>
</list></t>

</section>
<section anchor="prepare-private-key-and-certificate-for-asdwl"><name>Prepare Private Key and Certificate for ASDWL</name>

<t>The administor of SLD should generate a private key priv_wl used to sign the ASDWL, and issue an end-entity X.509 certificate Cert_wl for the corresponding public key pub_wl used to verify the ASDWL signature.</t>

</section>
<section anchor="structure-of-asdwl"><name>Structure of ASDWL</name>

<t>ASDWL followes the flattened JWS JSON serialization syntax, contains 3 parts: payload, header, and signature.</t>

<t><list style="symbols">
  <t>payload: Contains the whitelist subdomains information configured by the domain administrator of SLD.  <list style="symbols">
      <t>dom: Contains the name of SLD.</t>
      <t>date: Contains the publish date of the ASDWL.</t>
      <t>subdoms: Contains the subdomain whitelist of SLD. In this example, it means 'abc.example.com'.</t>
      <t>wildcard subdoms: Contains the wildcard subdomain zone whitelist of SLD. 
  In this example, it means '*.xxx.example.com' .</t>
    </list></t>
  <t>header: Contains the parameters for the ASDWL signature, followed the definition of JSON web signature and encryption header parameters in <xref target="RFC7515"/>.  <list style="symbols">
      <t>alg: Contains the signature algorithm. 
  In this example, ES256 means the ECDSA digital signature on Elliptic Curve NIST P-256 with SHA-256 message digest, followed the definition in <xref target="RFC7515"/>.</t>
      <t>x5c: Contains the X.509 certificate Cert_wl corresponding to the key priv_wl used to sign the ASDWL payload.</t>
    </list></t>
  <t>signature: Contains the signature of the payload, which is signed by priv_wl, and verified by Cert_wl.  <vspace blankLines='1'/>
    <figure><artwork><![CDATA[
  {
      'payload': {
          'dom': 'example.com',
          'date': '2023-12-25',
          'subdoms': [
              'abc'
          ],
          'wildcard subdoms': [
              'xxx'
          ]
      },
      'header': {
          'alg' : 'ES256',
          'x5c' : ....,
      },
      'signature': ...
  }
]]></artwork></figure>
  </t>
</list></t>

</section>
<section anchor="publish-asdwl"><name>Publish ASDWL</name>

<t>The administor of SLD should define a well-known subdomain '_asdwl.example.com' for the SLD 'example.com' to publish its ASDWL url address (marked as Url_wl).</t>

<t>And configure a DANE TLSA RR and a TXT RR for it.</t>

<t><list style="symbols">
  <t>TLSA RR: The TLSA RR indicates the digest of the public key of the ASDWL certificate Cert_wl.</t>
  <t>TXT RR: The TXT RR indicates the ASDWL url address Url_wl of ASDWL. In this example, the url is 'https://_asdwl.example.com/asdwl.json'.  <vspace blankLines='1'/>
    <figure><artwork><![CDATA[
  _443._tcp._asdwl.example.com. 3600 IN TLSA ( 3 1 1 
    d2abde240d7cd3ee6b4b28c54df034b97983a1d16e8a410e4561cb106618e971 )
            
  _asdwl.example.com. 3600 IN TXT 
    'url=https://_asdwl.example.com/asdwl.json'
]]></artwork></figure>
  </t>
</list></t>

</section>
<section anchor="get-asdwl"><name>Get ASDWL</name>

<t>When the authoritative server of SLD detects the random subdomain attack, 
it can attach the TLSA and TXT records of the well-known subdomain '_asdwl.example.com' to the DNS answer section.
And then the recursive resolver can get ASDWL of the SLD 'example.com' with the following steps:</t>

<t><list style="symbols">
  <t>Recursive resolver extracts Url_wl from the TXT RR, and downloads ASDWL.</t>
  <t>Recursive resolver extracts Cert_wl from the x5c parameter of ASDWL.</t>
  <t>Recursive resolver extracts the public key from Cert_wl.</t>
  <t>Recursive resolver validates the digest of extracted public key match the TLSA record.</t>
</list></t>

</section>
<section anchor="recursive-resolver-mitigates-random-subdomain-attacks-with-asdwl"><name>Recursive Resolver Mitigates Random Subdomain Attacks with ASDWL</name>

<t>Recursive resolver could mitigate random subdomain attacks with ASDWL:</t>

<t><list style="symbols">
  <t>Recursive resolver loads ASDWL payload of SLD ‘example.com’ into the DDoS whitelist module.</t>
  <t>Recursive resolver makes the mitigation on random subdomain attacks:  <list style="symbols">
      <t>Recursive resolver allows all the legitimate queries of the whitelist subdomains (subdoms) from clients, and sends the queries to the authoritative server.</t>
      <t>Recursive resolver allows all the legitimate queries of the whitelist wildcard subdomains (wildcard subdoms) from clients, only sends one query to ASsld for each wildcard subdomain zone, and store one response
  for all queries in each wildcard subdomain zone.</t>
      <t>Recursive resolver makes rate limiting responses on other subdomains queries when it could afford. Recursive resolver drops the queries of other subdomains when the traffic is overwhelmed.</t>
    </list></t>
</list></t>

</section>
<section anchor="authoritative-server-mitigates-random-subdomain-attacks-with-asdwl"><name>Authoritative Server Mitigates Random Subdomain Attacks with ASDWL</name>

<t>Authoritative server could mitigate random subdomain attacks with ASDWL:</t>

<t><list style="symbols">
  <t>Authoritative server detects that recursive resolver has sent many random subdomain
queries, identifies it may be potential victim recursive
resolver.</t>
  <t>Authoritative server makes the mitigation on random subdomain attacks:  <list style="symbols">
      <t>Authoritative server allows all the legitimate queries of the
  whitelist subdomains (subdoms) from recursive resolver.</t>
      <t>Authoritative server allows all the legitimate queries
  of the whitelist wildcard subdomains
  (wildcard subdoms) from recursive resolver.</t>
      <t>Authoritative server makes rate limiting responses on other subdomains queries from RS when it could afford. 
Authoritative server drops the queries of other subdomains from recursive resolver when the traffic is overwhelmed.</t>
    </list></t>
</list></t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>Through ASDWL, the authoritative server of SLD can give an explict subdomain list which recursive resolver should make best effort to serve.
The recursive resolver to gain the subdomain whitelist directly from the authoritative server of SLD from the Url_wl of ASDWL.</t>

<t>It is compatible with DNSSEC, heuristic rule defense systems, and  machine learning random subdomain defense systems <xref target="HeavyHitter"/> <xref target="DetectWaterTorture"/>.</t>

<t>If DNSSEC <xref target="RFC9364"/> has been deployed on the SLD 'example.com', then the recursive resolver could make DNSSEC validation on the RRSIGs of TLSA/TXT RRs.</t>

</section>


  </middle>

  <back>


    <references title='Normative References' anchor="sec-normative-references">

&RFC2119;
&RFC1034;
&RFC1035;
&RFC7515;
&RFC8499;
&RFC9364;


    </references>

    <references title='Informative References' anchor="sec-informative-references">

<reference anchor="HeavyHitter" target="in Proceedings of the fifth ACM/IEEE workshop on hot topics in web systems and technologies, 2017, pp. 1–6.">
  <front>
    <title>Mitigating dns random subdomain ddos attacks by distinct heavy hitters sketches</title>
    <author initials="S. L. F. Y. A. A. B.-B. E. C. and M." surname="Shagam" fullname="S. L. Feibish, Y. Afek, A. Bremler-Barr, E. Cohen, and M. Shagam">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="DetectWaterTorture" target="Journal of Information Processing, vol. 24, no. 5, pp. 793–801, 2016.">
  <front>
    <title>Detection of the dns water torture attack by analyzing features of the subdomain name</title>
    <author initials="Y. T. T. Y. R. K. M. K. and H." surname="Kishimoto" fullname="Y. Takeuchi, T. Yoshida, R. Kobayashi, M. Kato, and H. Kishimoto">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>


<?line 253?>



  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA8VZ3W7bOBa+11MQ7UXaga36N3EMDLBu4raZSdJsnKIzOxgE
tETb3Eiil5TjeIoA8w57s/t68yT7HVKSZVtOs50F1kURSjw85/DwO39UvV73
UplGos8Gi3QmklQGPBUhM4txqGIuE7acyVRE0qTs1WB0+vn8NZsozYwIVBLW
I3EvIpZRvhqdn772+HisxX2fDd8NRl6ogoTH4B5qPknrc57Uw8SoeZ2XpdUL
afVCWr3R8EJM9lmr0erWG616q+15L5lJeRLe8kglmEr1QnieSbXgcZ+dDW/e
eXKu7XuTthqN40bL45jsMzU33nIKPUi6d7cEdZIKnYi0fkqqeVCkz2QyUZ4X
qFAmoF2kk3rPm8s+w+8lC3jCFkYwrjVfsVdywngUsZUwrxkMMuNmxmZCC+jI
6ixVgRsYpaHexGRPq9g+MCLo02IMc5K+FROKCV9EqQFFPu8WOXKPLKd032P2
V8/+MugOinOfXfGkeOdsf86TCLqXJ14qjQ2uH1l+ajd/Oyu9JcuKtF96U2dX
yqQTHsxYu93odBobc2/lOJIKJ3uHlT5rriczTmuRgUxXffZ+wZNpqJLpmhLW
h86n9Vav3T1ek6tFkmqsOJnJhK+p5zMLhPULqGZkLKPySwFoRX3a4woI/MuU
Hv1AxQWB5yVKxzyV96JPB5XZlulJ0Go2j7dfHTYPsfT63QlN9t2w2Wh31sNu
NjzqNvNhr3Oc0x63DztWDo277eNi3Oo28vFRr9vLx73jZkHf6/SKcavdKGg6
3eNWsdZKzegbrYJn7+jwqBg3j3trHYjGI/QXVoCmHwS/X32QKfzEQSCLFBcy
lVOQJVNyJ6bhkCouRYwwVIbxNOXBnWHjFQvhzjIJUrgHGLKZ5WiYuRNpMLMI
B2uup8J6ILvSKhCCXNAwNWFAE5vISTpjg5OLN2fD4ZAtlb4zMzVnKmEzlcJT
5jIwtHYpxnAXk4oYGiQhS0UwS1SkplKYGiJJ86jG5nMg84/f/3noW8n7/Mn5
zsgnn3on5FiaWY397LPBRNzV2MBnb7WII6HrbxEQamzosxOFkFazci98Nprx
KY/JjqcCaqSfEcz0DVx9ocWGOd20xF6y3ZJRl0SNjVnyzJhkS57waPUbmX4i
OM0VNlrbnzTfMOoPaqGxjijP8jNWmaGNAbMau1eRz1qdGkuUz7rOSEfHbZip
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
eHFCtLFfZohhJFDiyZhskN/A5A5Z1Ye8ylL9awejIJLUI2fNDXo7p+Uz7nL8
/62Ku9U/dN2uT7aVVkm0yrSmToGYr0jnwcgAG5QTBUWuPZ1FtmmkfmGXZ3dT
7mKZFpP+ucJY8xSvp6zhDt/23ZGk80c0ymXZux36nKTLG8+FLikSUhS2WOeT
CblllYhQq/nmycHAO2yXeWBFCJggsVOyVViO91EsyOGrLkD+Ty4/qEpf3+j0
lbzWOZCnValmhlqM7oZxfslqR5SXGRp9Z0jXIRMLEiJe0Q1XcbeY324WArxc
QMWNU6bZN0eLSm7PdUbL4zkxY9dW/p9TwC5+TkSwhPuiwn+r1re7pRV3Pdrj
ntXIfZ6H7tnIMzx3RIvoUo7u7wFJbVFj9rsjtT9aLaaz/JbvazWjLb3oNV0C
PsxRO5RAwtyR2Y66Qv+spyKTwztAKchYaX7dLtxHlIqFIJjy7Ea36j4qlFhE
nzWKIuupLRRE2/2I552lZFMk+TkW0tcJG0JQoo6GJ3QFCOMaujPRyPLUGwqg
JP8O6xIJdhfMqGWMBNeJRdPOZ+PNdezLl9IH6MdHPO9+SLVXKmeTTBV31UJf
10FOEWosBPGdR2qFmk4l1QVx7emien04mZSsesziDi27vh6dvbegpRLxjauL
jb3Rpm97Y8ShbDiJFpOJ9x8fd9aFdyMAAA==

-->

</rfc>

