<?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.19 (Ruby 3.1.2) -->


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

]>


<rfc ipr="trust200902" docName="draft-li-acme-dns-update-00" category="info" submissionType="IETF">
  <front>
    <title abbrev="DNS Update for ACME">Secure DNS RR Update for ACME DNS Based Challenges</title>

    <author initials="R." surname="Li" fullname="Ruochen Li">
      <organization>Huawei Int. Pte Ltd</organization>
      <address>
        <postal>
          <country>Singapore</country>
        </postal>
        <email>li.ruochen@huawei.com</email>
      </address>
    </author>
    <author initials="H." surname="Wang" fullname="Haiguang Wang">
      <organization>Huawei Int. Pte Ltd</organization>
      <address>
        <postal>
          <country>Singapore</country>
        </postal>
        <email>wang.haiguang.shieldlab@huawei.com</email>
      </address>
    </author>
    <author initials="Z." surname="Lei" fullname="Zhongding Lei">
      <organization>Huawei Int. Pte Ltd</organization>
      <address>
        <postal>
          <country>Singapore</country>
        </postal>
        <email>lei.zhongding@huawei.com</email>
      </address>
    </author>

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

    
    <workgroup>Automated Certificate Management Environment</workgroup>
    

    <abstract>


<?line 72?>

<t>This document outlines how ACME DNS based challenges can be performed via DNS dynamic updates.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-li-acme-dns-update/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        WG Working Group mailing list (<eref target="mailto:acme@ietf.org"/>),
        which is archived at <eref target="https://datatracker.ietf.org/wg/acme/about/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/acme/"/>.
      </t>
    </note>


  </front>

  <middle>


<?line 76?>

<section anchor="introduction"><name>Introduction</name>

<t>The ACME protocol <xref target="RFC8555"/> provides a means to automate certificate issuance that allows a CA/RA to verify that a client has control of identifiers in the requested certificate via domain control validation (DCV) challenges. For DNS <xref target="RFC1035"/> identifiers, dns-01 challenge specified in <xref target="RFC8555"/> and dns-account-01 challenges specified in <xref target="I-D.ietf-acme-dns-account-label"/> require the client to create a DNS resource record (RR) on the authoritative nameserver under the domain "<spanx style="verb">&lt;challenge-specific-label&gt;.&lt;domain-to-validate&gt;</spanx>" to prove control of the domain in the DNS identifier. However, the procedure to update DNS records is not specified.</t>

<t><xref target="RFC2136"/> defines the DNS UPDATE message which instructs an authoritative nameserver to add or delete RRs or RRsets from a specified zone. It can further be secured using a message authentication code (MAC) in a TSIG RR <xref target="RFC8945"/>. To set up the shared key used for the TSIG RR, <xref target="RFC2930"/> specifies the TKEY RR which can be used to establish or delete this shared secret, where the message that carries the TKEY RR needs to be authenticated using TSIG with a previously established secret or SIG(0) <xref target="RFC2931"/>.</t>

<t>This document outlines how an ACME client can perform DNS resource record updates to complete ACME DNS based challenges automatically, and how to do so securely via authenticated DNS update messages. The procedures defined in this document are designed to facilitate implementation and bridge the gap in <xref target="RFC8555"/>.</t>

<t>[[Comment: <xref target="RFC2930"/> is being updated at <xref target="I-D.eastlake-dnsop-rfc2930bis-tkey"/>. Relevant sections in this document will be updated if this draft is accepted.]]</t>

</section>
<section anchor="requirements-language"><name>Requirements Language</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 anchor="terminology"><name>Terminology</name>

<t><list style="symbols">
  <t><strong>OAM</strong> (or <strong>O&amp;M</strong>): Operations and management, as per <xref target="BCP161"/> (<xref target="RFC6291"/>), an entity or system that is responsible for management of resources in a network.</t>
</list></t>

</section>
<section anchor="general-architecture"><name>General Architecture</name>

<t>OAM is responsible for configuration of ACME clients in a network. OAM first configures a domain name and an initial authentication key for the ACME client, and sets relevant resource records and access control settings on the authoritative nameserver <xref target="RFC9499"/>. The ACME client then applies for a certificate for that domain name from the ACME server through ACME protocol with DNS-based challenges that requires configuring certain DNS records. The ACME client completes a challenge by establishing a transaction key using the initial authentication key, and then provision the required resource records on the authoritative nameserver, authenticated using the transaction key. The ACME server then fetches the resource records to validate the challenge, and proceeds with certificate issuance.</t>

<figure><artset><artwork  type="svg"><svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="181px" preserveAspectRatio="none" version="1.1" viewBox="0 0 402 181" width="402px">
  <defs/>
  <g>
    <!--entity OAM-->
    <g id="elem_OAM">
      <polygon fill="white" points="84.5,125,94.5,115,157.0779,115,157.0779,154.0679,147.0779,164.0679,84.5,164.0679,84.5,125" stroke="black" stroke-width="0.5"/>
      <line x1="147.0779" x2="157.0779" y1="125" y2="115" stroke="black" stroke-width="0.5"/>
      <line x1="84.5" x2="147.0779" y1="125" y2="125" stroke="black" stroke-width="0.5"/>
      <line x1="147.0779" x2="147.0779" y1="125" y2="164.0679" stroke="black" stroke-width="0.5"/>
      <text fill="black" font-family="sans-serif" font-size="14" x="99.5" y="149.9659">OAM</text>
    </g>
    <!--entity ACME Client-->
    <g id="elem_ACME_20Client">
      <polygon fill="white" points="193,125,203,115,312.5897,115,312.5897,154.0679,302.5897,164.0679,193,164.0679,193,125" stroke="black" stroke-width="0.5"/>
      <line x1="302.5897" x2="312.5897" y1="125" y2="115" stroke="black" stroke-width="0.5"/>
      <line x1="193" x2="302.5897" y1="125" y2="125" stroke="black" stroke-width="0.5"/>
      <line x1="302.5897" x2="302.5897" y1="125" y2="164.0679" stroke="black" stroke-width="0.5"/>
      <text fill="black" font-family="sans-serif" font-size="14" x="208" y="149.9659">ACME Client</text>
    </g>
    <!--entity Authoritative Nameserver-->
    <g id="elem_Authoritative_20Nameserver">
      <polygon fill="white" points="16,16,26,6,226.0434,6,226.0434,45.0679,216.0434,55.0679,16,55.0679,16,16" stroke="black" stroke-width="0.5"/>
      <line x1="216.0434" x2="226.0434" y1="16" y2="6" stroke="black" stroke-width="0.5"/>
      <line x1="16" x2="216.0434" y1="16" y2="16" stroke="black" stroke-width="0.5"/>
      <line x1="216.0434" x2="216.0434" y1="16" y2="55.0679" stroke="black" stroke-width="0.5"/>
      <text fill="black" font-family="sans-serif" font-size="14" x="31" y="40.9659">Authoritative Nameserver</text>
    </g>
    <!--entity ACME Server-->
    <g id="elem_ACME_20Server">
      <polygon fill="white" points="261,16,271,6,385.0697,6,385.0697,45.0679,375.0697,55.0679,261,55.0679,261,16" stroke="black" stroke-width="0.5"/>
      <line x1="375.0697" x2="385.0697" y1="16" y2="6" stroke="black" stroke-width="0.5"/>
      <line x1="261" x2="375.0697" y1="16" y2="16" stroke="black" stroke-width="0.5"/>
      <line x1="375.0697" x2="375.0697" y1="16" y2="55.0679" stroke="black" stroke-width="0.5"/>
      <text fill="black" font-family="sans-serif" font-size="14" x="276" y="40.9659">ACME Server</text>
    </g>
    <!--link Authoritative Nameserver to ACME Server-->
    <g id="link_Authoritative_20Nameserver_ACME_20Server">
      <path d="M226.34,30.5 C237.79,30.5 249.25,30.5 260.7,30.5 " fill="none" id="Authoritative_20Nameserver-ACME_20Server" stroke="black" stroke-width="1.0"/>
    </g>
    <!--link OAM to ACME Client-->
    <g id="link_OAM_ACME_20Client">
      <path d="M157.61,139.5 C169.28,139.5 180.96,139.5 192.64,139.5 " fill="none" id="OAM-ACME_20Client" stroke="black" stroke-width="1.0"/>
    </g>
    <!--link Authoritative Nameserver to ACME Client-->
    <g id="link_Authoritative_20Nameserver_ACME_20Client">
      <path d="M150.3,55.25 C172.17,72.98 201.93,97.1 223.79,114.82 " fill="none" id="Authoritative_20Nameserver-ACME_20Client" stroke="black" stroke-width="1.0"/>
    </g>
    <!--link ACME Server to ACME Client-->
    <g id="link_ACME_20Server_ACME_20Client">
      <path d="M307.46,55.25 C295.86,72.98 280.08,97.1 268.49,114.82 " fill="none" id="ACME_20Server-ACME_20Client" stroke="black" stroke-width="1.0"/>
    </g>
    <!--link Authoritative Nameserver to OAM-->
    <g id="link_Authoritative_20Nameserver_OAM">
      <path d="M121,55.25 C121,72.98 121,97.1 121,114.82 " fill="none" id="Authoritative_20Nameserver-OAM" stroke="black" stroke-width="1.0"/>
    </g>
    <!--SRC=[oyjFILLGydVqLUBA0pCTdNrT5PnpCbFpIk12fIKP-KMP9OabcMMf2dw9kQd5gKLbgKKeMeAXGboubIleega5smiNXLcApm1CjKZcOPF6QnJOsm00]-->
  </g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[┌──────────────────────────┐     ┌─────────────┐
│                          │     │             │
│ Authoritative Nameserver ├─────┤ ACME Server │
│                          │     │             │
└──┬─────────────────────┬─┘     └──────┬──────┘
   │                     │              │       
   │                     │              │       
┌──┴──┐                 ┌┴──────────────┴──────┐
│     │                 │                      │
│ OAM ├─────────────────┤      ACME Client     │
│     │                 │                      │
└─────┘                 └──────────────────────┘
]]></artwork></artset></figure>

<t>It is assumed that the ACME client and the authoritative nameserver can be managed by OAM (i.e. OAM is capable of and authorized for configuring the ACME client and the authoritative nameserver).</t>

</section>
<section anchor="use-cases"><name>Use Cases</name>

<t>The procedures outlined in this document provide a standardized way for ACME clients to respond to DNS based challenges. They can be applied to scenarios where clients use DNS based challenges to apply for certificates via ACME. They are especially useful if there are a large number of clients from different vendors.</t>

<section anchor="cloud-computing"><name>Cloud Computing</name>

<t>In a typical cloud environment, there can be hundreds or even thousands of entities (applications, servers, etc.) that require certificates, and certificates often need to be renewed or replaced. Managing these certificates manually is error-prone, time-consuming, and can lead to security vulnerabilities and operational inefficiencies. Therefore, the cloud environment could benefit from ACME which allows each entity to apply for its own certificate automatically. DNS based ACME Challenges cam be used for entities that do not act as web servers.</t>

</section>
<section anchor="g-core-network"><name>5G Core Network</name>

<t>The 5G core networks are service-based and consist of network functions (NFs) that communicate with one another via TLS connections, authenticated using X.509 (PKIX) certificates <xref target="RFC5280"/>. Since NFs in a 5G network may come from different vendors, they could benefit from a standardized certificate management protocol such as ACME <xref target="TR33.876"/>. While ACME has proved to be very effective for the web, special considerations are needed if we want to deploy it in 5G networks which have more constraints. Section 5 of <xref target="TR33.776"/> outlines some key issues regarding application of ACME in a 5G system. Notably, 5.1 ACME initial trust framework and 5.3 Aspects of challenge validation point out that there is a need to define procedures for an NF to follow when proving its identity to ACME servers.</t>

<t>Similar to the cloud scenario, some 5G NFs are consumer NFs that do not expose web servers. They can therefore benefit from DNS based ACME challenges that do not require setting up a web server.</t>

</section>
</section>
<section anchor="procedure-overview"><name>Procedure Overview</name>

<t>Assumptions:</t>

<t><list style="numbers" type="1">
  <t>OAM has pre-established trust relationship with the authoritative nameserver, so that it is able to update DNS records and configurations of the authoritative nameserver. This can be carried out through DNS UPDATE messages authenticated with TSIG <xref target="RFC8945"/>.</t>
  <t>OAM can securely perform certain maintenance operations on target ACME clients and the authoritative nameserver. See <xref target="maintenance"/>.</t>
  <t>The authoritative nameserver is accessible by the CA/RA/ACME server.</t>
</list></t>

<t>General Procedure:</t>

<t><list style="numbers" type="1">
  <t>OAM configures an initial TSIG authentication key on the ACME client for authenticating it against the authoritative nameserver on which ACME DCV DNS records are hosted. OAM also registers the initial authentication key on the authoritative nameserver and configures its permissions.</t>
  <t>The ACME client uses initial authentication parameters to establish a transaction key for TSIG <xref target="RFC8945"/> with the authoritative nameserver via TKEY <xref target="RFC2930"/>; or the ACME client uses the initial authentication key as the transaction key.</t>
  <t>The ACME client uses the transaction key to authenticate its DNS UPDATE <xref target="RFC2136"/> message that configures an ACME DCV DNS record.</t>
</list></t>

<figure><artset><artwork  type="svg"><svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="514px" preserveAspectRatio="none" version="1.1" viewBox="0 0 435 514" width="435px">
  <defs/>
  <g>
    <line x1="28" x2="28" y1="58.1358" y2="457.1381" stroke="black" stroke-width="0.5"/>
    <line x1="176.1602" x2="176.1602" y1="58.1358" y2="457.1381" stroke="black" stroke-width="0.5"/>
    <line x1="378.8524" x2="378.8524" y1="58.1358" y2="457.1381" stroke="black" stroke-width="0.5"/>
    <rect fill="white" height="52.1358" rx="2.5" ry="2.5" width="46.5779" x="5" y="5" stroke="black" stroke-width="0.5"/>
    <text fill="black" font-family="sans-serif" font-size="14" x="12" y="26.9659">OAM</text>
    <text fill="black" font-family="sans-serif" font-size="14" x="26.4689" y="46.0339"> </text>
    <rect fill="white" height="52.1358" rx="2.5" ry="2.5" width="46.5779" x="5" y="456.1381" stroke="black" stroke-width="0.5"/>
    <text fill="black" font-family="sans-serif" font-size="14" x="12" y="478.104">OAM</text>
    <text fill="black" font-family="sans-serif" font-size="14" x="26.4689" y="497.172"> </text>
    <rect fill="white" height="33.0679" rx="2.5" ry="2.5" width="93.5897" x="130.1602" y="24.0679" stroke="black" stroke-width="0.5"/>
    <text fill="black" font-family="sans-serif" font-size="14" x="137.1602" y="46.0339">ACME Client</text>
    <rect fill="white" height="33.0679" rx="2.5" ry="2.5" width="93.5897" x="130.1602" y="456.1381" stroke="black" stroke-width="0.5"/>
    <text fill="black" font-family="sans-serif" font-size="14" x="137.1602" y="478.104">ACME Client</text>
    <rect fill="white" height="52.1358" rx="2.5" ry="2.5" width="99.7497" x="329.8524" y="5" stroke="black" stroke-width="0.5"/>
    <text fill="black" font-family="sans-serif" font-size="14" x="336.8524" y="26.9659">Authoritative</text>
    <text fill="black" font-family="sans-serif" font-size="14" x="339.4004" y="46.0339">Nameserver</text>
    <rect fill="white" height="52.1358" rx="2.5" ry="2.5" width="99.7497" x="329.8524" y="456.1381" stroke="black" stroke-width="0.5"/>
    <text fill="black" font-family="sans-serif" font-size="14" x="336.8524" y="478.104">Authoritative</text>
    <text fill="black" font-family="sans-serif" font-size="14" x="339.4004" y="497.172">Nameserver</text>
    <polygon fill="black" points="164.955,176.3719,174.955,180.3719,164.955,184.3719,168.955,180.3719" stroke="black" stroke-width="1.0"/>
    <line x1="28.2889" x2="170.955" y1="180.3719" y2="180.3719" stroke="black" stroke-width="1.0"/>
    <text fill="black" font-family="sans-serif" font-size="13" x="35.2889" y="130.2979">1</text>
    <text fill="black" font-family="sans-serif" font-size="13" x="46.7249" y="86.0328">OAM creates</text>
    <text fill="black" font-family="sans-serif" font-size="13" x="46.7249" y="103.7389">configurations of</text>
    <text fill="black" font-family="sans-serif" font-size="13" x="46.7249" y="121.4449">ACME client,</text>
    <text fill="black" font-family="sans-serif" font-size="13" x="46.7249" y="139.1509">including its</text>
    <text fill="black" font-family="sans-serif" font-size="13" x="46.7249" y="156.8569">initial</text>
    <text fill="black" font-family="sans-serif" font-size="13" x="46.7249" y="174.5629">authentication key</text>
    <polygon fill="black" points="367.7272,243.49,377.7272,247.49,367.7272,251.49,371.7272,247.49" stroke="black" stroke-width="1.0"/>
    <line x1="176.955" x2="373.7272" y1="247.49" y2="247.49" stroke="black" stroke-width="1.0"/>
    <text fill="black" font-family="sans-serif" font-size="13" x="183.955" y="223.975">2</text>
    <text fill="black" font-family="sans-serif" font-size="13" x="195.3911" y="206.2689">Transaction authentication</text>
    <text fill="black" font-family="sans-serif" font-size="13" x="195.3911" y="223.975">key establishment using</text>
    <text fill="black" font-family="sans-serif" font-size="13" x="195.3911" y="241.681">initial authentication key</text>
    <rect fill="white" height="61" width="239" x="57" y="260.49" stroke="black" stroke-width="0.5"/>
    <text fill="black" font-family="sans-serif" font-size="13" x="61" y="278.387">ACME client applies for certificate via</text>
    <text fill="black" font-family="sans-serif" font-size="13" x="61" y="296.093">ACME, and proceed to the next step</text>
    <text fill="black" font-family="sans-serif" font-size="13" x="61" y="313.799">after receiving a DNS based challenge</text>
    <polygon fill="black" points="367.7272,381.7261,377.7272,385.7261,367.7272,389.7261,371.7272,385.7261" stroke="black" stroke-width="1.0"/>
    <line x1="176.955" x2="373.7272" y1="385.7261" y2="385.7261" stroke="black" stroke-width="1.0"/>
    <text fill="black" font-family="sans-serif" font-size="13" x="183.955" y="362.2111">3</text>
    <text fill="black" font-family="sans-serif" font-size="13" x="195.3911" y="344.505">DNS update using the</text>
    <text fill="black" font-family="sans-serif" font-size="13" x="195.3911" y="362.2111">previously established</text>
    <text fill="black" font-family="sans-serif" font-size="13" x="195.3911" y="379.9171">transaction key</text>
    <rect fill="white" height="43" width="265" x="43" y="398.7261" stroke="black" stroke-width="0.5"/>
    <text fill="black" font-family="sans-serif" font-size="13" x="47" y="416.6231">The DNS based challenge can be validated</text>
    <text fill="black" font-family="sans-serif" font-size="13" x="47" y="434.3291">by the ACME server</text>
    <!--SRC=[RP6xRiCm34LtVmMHEGKwToWGf1sJ3iteXPRfXAXC2H9bD7zVIYcG1pBfTIyFBuL5WvHve0IhrrNNHKpAZYEAmkfhi-jb1PWXu7p_jDdkFc7hcKIRmDO7GT5JIAoel50lUvmfKreeDVaekUkiABoyLokyWR709KAb3Bsu81CVIp9t4CDFTjUGhY7NTcHnlemiHs3DxSpAw6s7XZOHk-Q67pftbM4emnhga50oklRueEt5r41PSV2SJtFrbLmXLy2Jyac24WHBrmO1SDChO8osoJ2518viH5Er4YoC_yere8mGKt148sW00u3Ghq9MYYR2IQrq8aUyr6OGFlRVC60skJkXzoH7if1ZQ-G-RLMME5RY9KajtajCj70esT_4jMgzwCrqdcOxcFy97XmA31OBFLVQQDBXt6Xj6fVVlpRv1m00]-->
  </g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[     ┌───┐                                         ┌─────────────┐
     │OAM│           ┌───────────┐                 │Authoritative│
     │   │           │ACME Client│                 │Nameserver   │
     └─┬─┘           └─────┬─────┘                 └──────┬──────┘
       │1 OAM creates      │                              │       
       │configurations of  │                              │       
       │ACME client,       │                              │       
       │including its      │                              │       
       │initial            │                              │       
       │authentication key │                              │       
       │──────────────────>│                              │       
       │                   │                              │       
       │                   │2 Transaction authentication  │       
       │                   │key establishment using       │       
       │                   │initial authentication key    │       
       │                   │─────────────────────────────>│       
       │                   │                              │       
      ┌─────────────────────────────────────────┐         │       
      │ACME client applies for certificate via  │         │       
      │ACME, and proceed to the next step       │         │       
      │after receiving a DNS based challenge    │         │       
      └─────────────────────────────────────────┘         │       
       │                   │   3 DNS update using the     │       
       │                   │   previously established     │       
       │                   │   transaction key            │       
       │                   │─────────────────────────────>│       
       │                   │                              │       
      ┌──────────────────────────────────────────┐        │       
      │The DNS based challenge can be validated  │        │       
      │by the ACME server                        │        │       
     ┌└──────────────────────────────────────────┘ ┌──────┴──────┐
     │OAM│           │ACME Client│                 │Authoritative│
     │   │           └───────────┘                 │Nameserver   │
     └───┘                                         └─────────────┘
]]></artwork></artset></figure>

</section>
<section anchor="maintenance"><name>Maintenance Functions</name>

<t>In order to set up initial authentication keys for ACME clients that apply for certificates to be authenticated by the authoritative nameserver, the ACME clients and the authoritative nameserver need to support certain maintenance operations from the OAM system.</t>

<t>For ACME clients:</t>

<t><list style="symbols">
  <t>Adjusting configurations (authoritative nameserver address, ACME server address, etc.)</t>
  <t>OAM to generate the symmetric TSIG key and configure it on the ACME client</t>
</list></t>

<t>For the authoritative nameserver:</t>

<t><list style="symbols">
  <t>Adjusting configurations (TSIG key, etc.)</t>
  <t>Updating DNS records (editing zone files)</t>
</list></t>

</section>
<section anchor="certificate-issuance-procedure"><name>Certificate Issuance Procedure</name>

<section anchor="initial-authentication-key"><name>Initial Authentication Key</name>

<t>OAM configures the target ACME client's initial authentication key, and configures the corresponding parameters on the authoritative nameserver, so that the authoritative nameserver can verify the identity of the ACME client.</t>

<t><list style="numbers" type="1">
  <t>OAM generates a TSIG secret key for the ACME client</t>
  <t>OAM configures the ACME client's domain name and TSIG secret key</t>
  <t>OAM provisions the TSIG secret key to the authoritative nameserver</t>
</list></t>

</section>
<section anchor="transaction-key-establishment"><name>Transaction Key Establishment</name>

<t>After setting up the initial authentication key, the ACME client possesses a key that can be used to authenticate DNS messages sent to the authoritative nameserver. However, using the same key over a long period of time may not be desirable. It is therefore <bcp14>RECOMMENDED</bcp14> to establish a separate TSIG transaction key for this purpose. The transaction key can be safely deleted after use or after a short period of time.</t>

<t>Although <bcp14>NOT RECOMMENDED</bcp14>, the ACME client can use the initial authentication key as the transaction key, if key establishment methods specified here or access control settings in <xref target="kac"/> are not supported by the authoritative nameserver.</t>

<section anchor="tsig-transaction-key-establishment"><name>TSIG Transaction Key Establishment</name>

<t>The ACME client can establish a TSIG transaction key with the authoritative nameserver through a TKEY exchange <xref target="RFC2930"/>.</t>

<t>Note that the TKEY RR provides an inception field and an expiration field that define a validity interval for the TSIG key to be established. It is <bcp14>RECOMMENDED</bcp14> to set a short interval (within a day) so that the key can be safely discarded afterwards.</t>

</section>
</section>
<section anchor="domain-control-validation"><name>Domain Control Validation</name>

<section anchor="acme-client-performs-dns-update"><name>ACME Client Performs DNS Update</name>

<t>The ACME client updates ACME DCV DNS records using DNS UPDATE messages <xref target="RFC2136"/>. Transactional security is to be applied to DNS UPDATE messages via TSIG, using a key established in previous steps.</t>

<t>This work follows <xref target="RFC3007"/> to authenticate DNS UPDATE messages.</t>

</section>
<section anchor="acme-challenges"><name>ACME Challenges</name>

<t>The DNS update method specified in this document supports dns-01 from <xref target="RFC8555"/>, dns-account-01 from <xref target="I-D.ietf-acme-dns-account-label"/> and other DNS based challenges.</t>

</section>
</section>
</section>
<section anchor="kac"><name>Access Control for Authentication Keys</name>

<t>The authoritative nameserver <bcp14>MUST</bcp14> be pre-configured for fine-grained access control for TSIG keys used for DCV and/or transaction key establishment. This section specifies how DCV update keys and transaction key establishment keys are to be configured.</t>

<section anchor="kacu"><name>DCV Update Permissioning</name>

<t>The authoritative nameserver <bcp14>SHALL</bcp14> implement fine-grained permissioning to only allow each ACME client's transactional TSIG keys to be used for updating ACME DCV DNS records relevant to the ACME client's assigned domain.</t>

<t>As an example, the authoritative nameserver <bcp14>MAY</bcp14> be configured to allow keys under domains with a format of <spanx style="verb">_acme-dns-key.&lt;domain-to-validate&gt;[.&lt;tkey-domain&gt;]</spanx> to be used to UPDATE (add or remove) one or many of the DCV DNS records below:</t>

<t><list style="symbols">
  <t>TXT records under <spanx style="verb">_acme-challenge.&lt;domain-to-validate&gt;</spanx> (dns-01)</t>
  <t>TXT records under <spanx style="verb">_*._acme-challenge.&lt;domain-to-validate&gt;</spanx> (dns-account-01)</t>
</list></t>

<t>Note that the authoritative nameserver <bcp14>MAY</bcp14> also verify that the wildcard in the domain name above is a valid base32 encoded string.</t>

</section>
<section anchor="transaction-key-establishment-permissioning"><name>Transaction Key Establishment Permissioning</name>

<t>When using TKEY RR to establish transactional TSIG keys, the key used for authenticating the key establishment <bcp14>SHALL</bcp14> only be allowed to perform key establishment for specific domains (key ids).</t>

<t>As an example, the authoritative nameserver <bcp14>MAY</bcp14> be configured to allow keys under domains with a format of <spanx style="verb">_key-exchange-key.&lt;key-domain&gt;[.&lt;tkey-domain&gt;]</spanx> to be used to establish the following transaction keys:</t>

<t><list style="symbols">
  <t>TSIG key under <spanx style="verb">_acme-dns-key.&lt;key-domain&gt;.&lt;tkey-domain&gt;</spanx>, established via a TKEY RR</t>
</list></t>

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

<t>DNS Updates via UDP messages are sent in plaintext, which may be vulnerable to eavesdropping and tampering. This can be mitigated by using DoT <xref target="RFC7858"/> or DoH <xref target="RFC8484"/>.</t>

<t>The TSIG authentication mechanism incorporates a validity period, which is set by the client and verified by the server, to defend against replay attack. However, DNS update requests, even using TSIG for authentication, are not idempotent, and therefore a replay attack is possible within the validity period. This can be avoided by using marker RRs in the Update request, as per section 5 of <xref target="RFC2136"/>. Alternatively, DoT or DoH can be used so that the request can be protected by TLS.</t>

<t>As per <xref target="kac"/>, the initial authentication keys and transaction authentication keys should be configured with fine-grained permission control to prevent access to unauthorized resources.</t>

<t>When establishing transactional TSIG keys via TKEY, it is <bcp14>RECOMMENDED</bcp14> to set a short validity interval (e.g., within a day), and use each transactional TSIG key only once or for a short period of time.</t>

<t>This work follows recommendations set out in <xref target="I-D.ietf-dnsop-domain-verification-techniques"/> by integrating challenge types proposed in <xref target="I-D.ietf-acme-dns-account-label"/>.</t>

</section>
<section anchor="operational-considerations"><name>Operational Considerations</name>

<t><list style="numbers" type="1">
  <t>ACME clients <bcp14>SHOULD</bcp14> clean up DCV DNS records once the respective ACME challenges are completed, i.e., once the "status" field of the challenge is "valid" or "invalid".</t>
  <t>ACME clients <bcp14>SHOULD</bcp14> delete transactional TSIG keys stored on the authoritative nameserver after use (via TKEY RRs).</t>
</list></t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document has no IANA actions.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

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



<referencegroup anchor="BCP161" target="https://www.rfc-editor.org/info/bcp161">
  <reference anchor="RFC6291" target="https://www.rfc-editor.org/info/rfc6291">
    <front>
      <title>Guidelines for the Use of the "OAM" Acronym in the IETF</title>
      <author fullname="L. Andersson" initials="L." surname="Andersson"/>
      <author fullname="H. van Helvoort" initials="H." surname="van Helvoort"/>
      <author fullname="R. Bonica" initials="R." surname="Bonica"/>
      <author fullname="D. Romascanu" initials="D." surname="Romascanu"/>
      <author fullname="S. Mansfield" initials="S." surname="Mansfield"/>
      <date month="June" year="2011"/>
      <abstract>
        <t>At first glance, the acronym "OAM" seems to be well-known and well-understood. Looking at the acronym a bit more closely reveals a set of recurring problems that are revisited time and again.</t>
        <t>This document provides a definition of the acronym "OAM" (Operations, Administration, and Maintenance) for use in all future IETF documents that refer to OAM. There are other definitions and acronyms that will be discussed while exploring the definition of the constituent parts of the "OAM" term. This memo documents an Internet Best Current Practice.</t>
      </abstract>
    </front>
    <seriesInfo name="BCP" value="161"/>
    <seriesInfo name="RFC" value="6291"/>
    <seriesInfo name="DOI" value="10.17487/RFC6291"/>
  </reference>
</referencegroup>

<reference anchor="RFC1035">
  <front>
    <title>Domain names - implementation and specification</title>
    <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
    <date month="November" year="1987"/>
    <abstract>
      <t>This RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System. It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="13"/>
  <seriesInfo name="RFC" value="1035"/>
  <seriesInfo name="DOI" value="10.17487/RFC1035"/>
</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="RFC2136">
  <front>
    <title>Dynamic Updates in the Domain Name System (DNS UPDATE)</title>
    <author fullname="P. Vixie" initials="P." role="editor" surname="Vixie"/>
    <author fullname="S. Thomson" initials="S." surname="Thomson"/>
    <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
    <author fullname="J. Bound" initials="J." surname="Bound"/>
    <date month="April" year="1997"/>
    <abstract>
      <t>Using this specification of the UPDATE opcode, it is possible to add or delete RRs or RRsets from a specified zone. Prerequisites are specified separately from update operations, and can specify a dependency upon either the previous existence or nonexistence of an RRset, or the existence of a single RR. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2136"/>
  <seriesInfo name="DOI" value="10.17487/RFC2136"/>
</reference>

<reference anchor="RFC2930">
  <front>
    <title>Secret Key Establishment for DNS (TKEY RR)</title>
    <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
    <date month="September" year="2000"/>
    <abstract>
      <t>This document describes a Transaction Key (TKEY) RR that can be used in a number of different modes to establish shared secret keys between a DNS resolver and server. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2930"/>
  <seriesInfo name="DOI" value="10.17487/RFC2930"/>
</reference>

<reference anchor="RFC5280">
  <front>
    <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
    <author fullname="D. Cooper" initials="D." surname="Cooper"/>
    <author fullname="S. Santesson" initials="S." surname="Santesson"/>
    <author fullname="S. Farrell" initials="S." surname="Farrell"/>
    <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <author fullname="W. Polk" initials="W." surname="Polk"/>
    <date month="May" year="2008"/>
    <abstract>
      <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5280"/>
  <seriesInfo name="DOI" value="10.17487/RFC5280"/>
</reference>

<reference anchor="RFC7858">
  <front>
    <title>Specification for DNS over Transport Layer Security (TLS)</title>
    <author fullname="Z. Hu" initials="Z." surname="Hu"/>
    <author fullname="L. Zhu" initials="L." surname="Zhu"/>
    <author fullname="J. Heidemann" initials="J." surname="Heidemann"/>
    <author fullname="A. Mankin" initials="A." surname="Mankin"/>
    <author fullname="D. Wessels" initials="D." surname="Wessels"/>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <date month="May" year="2016"/>
    <abstract>
      <t>This document describes the use of Transport Layer Security (TLS) to provide privacy for DNS. Encryption provided by TLS eliminates opportunities for eavesdropping and on-path tampering with DNS queries in the network, such as discussed in RFC 7626. In addition, this document specifies two usage profiles for DNS over TLS and provides advice on performance considerations to minimize overhead from using TCP and TLS with DNS.</t>
      <t>This document focuses on securing stub-to-recursive traffic, as per the charter of the DPRIVE Working Group. It does not prevent future applications of the protocol to recursive-to-authoritative traffic.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7858"/>
  <seriesInfo name="DOI" value="10.17487/RFC7858"/>
</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="RFC8484">
  <front>
    <title>DNS Queries over HTTPS (DoH)</title>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <author fullname="P. McManus" initials="P." surname="McManus"/>
    <date month="October" year="2018"/>
    <abstract>
      <t>This document defines a protocol for sending DNS queries and getting DNS responses over HTTPS. Each DNS query-response pair is mapped into an HTTP exchange.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8484"/>
  <seriesInfo name="DOI" value="10.17487/RFC8484"/>
</reference>

<reference anchor="RFC8555">
  <front>
    <title>Automatic Certificate Management Environment (ACME)</title>
    <author fullname="R. Barnes" initials="R." surname="Barnes"/>
    <author fullname="J. Hoffman-Andrews" initials="J." surname="Hoffman-Andrews"/>
    <author fullname="D. McCarney" initials="D." surname="McCarney"/>
    <author fullname="J. Kasten" initials="J." surname="Kasten"/>
    <date month="March" year="2019"/>
    <abstract>
      <t>Public Key Infrastructure using X.509 (PKIX) certificates are used for a number of purposes, the most significant of which is the authentication of domain names. Thus, certification authorities (CAs) in the Web PKI are trusted to verify that an applicant for a certificate legitimately represents the domain name(s) in the certificate. As of this writing, this verification is done through a collection of ad hoc mechanisms. This document describes a protocol that a CA and an applicant can use to automate the process of verification and certificate issuance. The protocol also provides facilities for other certificate management functions, such as certificate revocation.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8555"/>
  <seriesInfo name="DOI" value="10.17487/RFC8555"/>
</reference>

<reference anchor="RFC8945">
  <front>
    <title>Secret Key Transaction Authentication for DNS (TSIG)</title>
    <author fullname="F. Dupont" initials="F." surname="Dupont"/>
    <author fullname="S. Morris" initials="S." surname="Morris"/>
    <author fullname="P. Vixie" initials="P." surname="Vixie"/>
    <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
    <author fullname="O. Gudmundsson" initials="O." surname="Gudmundsson"/>
    <author fullname="B. Wellington" initials="B." surname="Wellington"/>
    <date month="November" year="2020"/>
    <abstract>
      <t>This document describes a protocol for transaction-level authentication using shared secrets and one-way hashing. It can be used to authenticate dynamic updates to a DNS zone as coming from an approved client or to authenticate responses as coming from an approved name server.</t>
      <t>No recommendation is made here for distributing the shared secrets; it is expected that a network administrator will statically configure name servers and clients using some out-of-band mechanism.</t>
      <t>This document obsoletes RFCs 2845 and 4635.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="93"/>
  <seriesInfo name="RFC" value="8945"/>
  <seriesInfo name="DOI" value="10.17487/RFC8945"/>
</reference>


<reference anchor="I-D.eastlake-dnsop-rfc2930bis-tkey">
   <front>
      <title>Secret Key Agreement for DNS: The TKEY Resource Record</title>
      <author fullname="Donald E. Eastlake 3rd" initials="D. E." surname="Eastlake">
         <organization>Independent</organization>
      </author>
      <author fullname="Mark P. Andrews" initials="M. P." surname="Andrews">
         <organization>Internet Systems Consortium</organization>
      </author>
      <date day="21" month="October" year="2024"/>
      <abstract>
	 <t>   RFC 8945 provides efficient authentication of Domain Name System
   (DNS) protocol messages using shared secret keys and the Transaction
   Signature (TSIG) resource record (RR).  However, it provides no
   mechanism for setting up such keys other than configuration.  This
   document describes the Transaction Key (TKEY) RR that can be used in
   a variety of modes to establish shared secret keys between a DNS
   resolver and server.  This document obsoletes RFC 2930.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-eastlake-dnsop-rfc2930bis-tkey-01"/>
   
</reference>


<reference anchor="I-D.ietf-acme-dns-account-label">
   <front>
      <title>Automated Certificate Management Environment (ACME) DNS Labeled With ACME Account ID Challenge</title>
      <author fullname="Antonios Chariton" initials="A." surname="Chariton">
         <organization>Independent Contributor</organization>
      </author>
      <author fullname="Amir Omidi" initials="A." surname="Omidi">
         <organization>Spirl</organization>
      </author>
      <author fullname="James Kasten" initials="J." surname="Kasten">
         <organization>Google</organization>
      </author>
      <author fullname="Fotis Loukos" initials="F." surname="Loukos">
         <organization>Google</organization>
      </author>
      <author fullname="Stanislaw A. Janikowski" initials="S. A." surname="Janikowski">
         <organization>Google</organization>
      </author>
      <date day="13" month="November" year="2024"/>
      <abstract>
	 <t>   This document outlines a new DNS-based challenge type for the ACME
   protocol that enables multiple independent systems to authorize a
   single domain name concurrently.  By adding a unique label to the DNS
   validation record name, the dns-account-01 challenge avoids CNAME
   delegation conflicts inherent to the dns-01 challenge type.  This is
   particularly valuable for multi-region or multi-cloud deployments
   that wish to rely upon DNS-based domain control validation and need
   to independently obtain certificates for the same domain.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-acme-dns-account-label-00"/>
   
</reference>




    </references>

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



<reference anchor="RFC2931">
  <front>
    <title>DNS Request and Transaction Signatures ( SIG(0)s )</title>
    <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
    <date month="September" year="2000"/>
    <abstract>
      <t>This document describes the minor but non-interoperable changes in Request and Transaction signature resource records ( SIG(0)s ) that implementation experience has deemed necessary. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2931"/>
  <seriesInfo name="DOI" value="10.17487/RFC2931"/>
</reference>

<reference anchor="RFC3007">
  <front>
    <title>Secure Domain Name System (DNS) Dynamic Update</title>
    <author fullname="B. Wellington" initials="B." surname="Wellington"/>
    <date month="November" year="2000"/>
    <abstract>
      <t>This document proposes a method for performing secure Domain Name System (DNS) dynamic updates. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3007"/>
  <seriesInfo name="DOI" value="10.17487/RFC3007"/>
</reference>

<reference anchor="RFC8792">
  <front>
    <title>Handling Long Lines in Content of Internet-Drafts and RFCs</title>
    <author fullname="K. Watsen" initials="K." surname="Watsen"/>
    <author fullname="E. Auerswald" initials="E." surname="Auerswald"/>
    <author fullname="A. Farrel" initials="A." surname="Farrel"/>
    <author fullname="Q. Wu" initials="Q." surname="Wu"/>
    <date month="June" year="2020"/>
    <abstract>
      <t>This document defines two strategies for handling long lines in width-bounded text content. One strategy, called the "single backslash" strategy, is based on the historical use of a single backslash ('\') character to indicate where line-folding has occurred, with the continuation occurring with the first character that is not a space character (' ') on the next line. The second strategy, called the "double backslash" strategy, extends the first strategy by adding a second backslash character to identify where the continuation begins and is thereby able to handle cases not supported by the first strategy. Both strategies use a self-describing header enabling automated reconstitution of the original content.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8792"/>
  <seriesInfo name="DOI" value="10.17487/RFC8792"/>
</reference>

<reference anchor="RFC9499">
  <front>
    <title>DNS Terminology</title>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <author fullname="K. Fujiwara" initials="K." surname="Fujiwara"/>
    <date month="March" year="2024"/>
    <abstract>
      <t>The Domain Name System (DNS) is defined in literally dozens of different RFCs. The terminology used by implementers and developers of DNS protocols, and by operators of DNS systems, has changed in the decades since the DNS was first defined. This document gives current definitions for many of the terms used in the DNS in a single document.</t>
      <t>This document updates RFC 2308 by clarifying the definitions of "forwarder" and "QNAME". It obsoletes RFC 8499 by adding multiple terms and clarifications. Comprehensive lists of changed and new definitions can be found in Appendices A and B.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="219"/>
  <seriesInfo name="RFC" value="9499"/>
  <seriesInfo name="DOI" value="10.17487/RFC9499"/>
</reference>


<reference anchor="I-D.ietf-dnsop-domain-verification-techniques">
   <front>
      <title>Domain Control Validation using DNS</title>
      <author fullname="Shivan Kaul Sahib" initials="S. K." surname="Sahib">
         <organization>Brave Software</organization>
      </author>
      <author fullname="Shumon Huque" initials="S." surname="Huque">
         <organization>Salesforce</organization>
      </author>
      <author fullname="Paul Wouters" initials="P." surname="Wouters">
         <organization>Aiven</organization>
      </author>
      <author fullname="Erik Nygren" initials="E." surname="Nygren">
         <organization>Akamai Technologies</organization>
      </author>
      <date day="21" month="October" year="2024"/>
      <abstract>
	 <t>   Many application services on the Internet need to verify ownership or
   control of a domain in the Domain Name System (DNS).  The general
   term for this process is &quot;Domain Control Validation&quot;, and can be done
   using a variety of methods such as email, HTTP/HTTPS, or the DNS
   itself.  This document focuses only on DNS-based methods, which
   typically involve the Application Service Provider requesting a DNS
   record with a specific format and content to be visible in the domain
   to be verified.  There is wide variation in the details of these
   methods today.  This document provides some best practices to avoid
   known problems.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-dnsop-domain-verification-techniques-06"/>
   
</reference>


<reference anchor="TR33.776" target="https://www.3gpp.org/ftp/Specs/archive/33_series/33.776/33776-030.zip">
  <front>
    <title>Technical Specification Group Services and System Aspects; Study of Automatic Certificate Management Environment (ACME) for the Service Based Architecture (SBA) (Release 19)</title>
    <author >
      <organization>3rd Generation Partnership Project</organization>
    </author>
    <date year="2024" month="May"/>
  </front>
<refcontent>3GPP TS:33.776 V0.3.0</refcontent></reference>
<reference anchor="TR33.876" target="https://www.3gpp.org/ftp/Specs/archive/33_series/33.876/33876-i01.zip">
  <front>
    <title>Technical Specification Group Services and System Aspects; Study on automated certificate management in Service-Based Architecture (SBA) (Release 18)</title>
    <author >
      <organization>3rd Generation Partnership Project</organization>
    </author>
    <date year="2023" month="July"/>
  </front>
<refcontent>3GPP TS:33.876 V18.0.1</refcontent></reference>


    </references>

</references>


<?line 287?>

<section anchor="example-dns-authoritative-nameserver-configurations"><name>Example DNS Authoritative Nameserver Configurations</name>

<t>Note: '\' line wrapping per <xref target="RFC8792"/>.</t>

<section anchor="bind9"><name>BIND9</name>

<t>In BIND9, TSIG keys, while not stored in DNS, also have FQDNs as key names.</t>

<t>In the named configuration file, a zone can be configured to support <xref target="RFC2136"/> updates using a key identified by an FQDN using the <spanx style="verb">update-policy</spanx> statement.</t>

<t>Note that it is not possible to configure BIND9 to support the general access control strategy specified in <xref target="kacu"/>, because each zone to be updated needs to be configured explicitly.</t>

<t>Command to generate TSIG key for <spanx style="verb">f9657a41-610c-414a-828a-fc88250f9165.amf.tsig.</spanx>:</t>

<figure><sourcecode type="sourcecode"><![CDATA[
tsig-keygen -a HMAC-SHA512 f9657a41-610c-414a-828a-fc88250f9165.am\
f.tsig.
]]></sourcecode></figure>

<t>Example <spanx style="verb">named</spanx> configuration that grants the key permission to update TXT records for <spanx style="verb">*.f9657a41-610c-414a-828a-fc88250f9165.amf.5gc.mnc001.mcc001.3gppnetwork.org.</spanx>:</t>

<figure><sourcecode type="sourcecode"><![CDATA[
//named.conf

key "f9657a41-610c-414a-828a-fc88250f9165.amf.tsig." {
    algorithm hmac-sha512;
    secret "MhKYgOU+mb1nLegdky3zPydpIFlhhBD4ic9WcjbCBLHFh+Rb+my8of\
    1pGcChMBfiWrnLdn0lnmL1t4iTMb4LNw==";
};

zone "5gc.mnc001.mcc001.3gppnetwork.org." {
    type primary;
    update-policy {
        grant f9657a41-610c-414a-828a-fc88250f9165.amf.tsig. wildc\
        ard *.f9657a41-610c-414a-828a-fc88250f9165.amf.5gc.mnc001.\
        mcc001.3gppnetwork.org. TXT;
    };
}
]]></sourcecode></figure>

</section>
</section>


  </back>

<!-- ##markdown-source:
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
HwDI8JGk8n8Ao+RUQqdFAAA=

-->

</rfc>

