<?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.6.17 (Ruby 2.7.4) -->


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

]>


<rfc ipr="trust200902" docName="draft-chariton-ipcaa-00" category="std" consensus="true" submissionType="IETF" updates="8659, 6844" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="IP-CAA">DNS CAA Resource Record Property for IP Address Certificates</title>

    <author fullname="Antonios A. Chariton">
      <organization>Google</organization>
      <address>
        <email>aac@google.com</email>
      </address>
    </author>

    <date year="2022" month="December" day="02"/>

    <area>Security</area>
    <workgroup>Limited Additional Mechanisms for PKIX and SMIME</workgroup>
    <keyword>lamps</keyword>

    <abstract>


<t>This document specifies a new DNS CAA Resource Record Property that allows an
IP Address holder to specify one or more Certification Authorities (CAs)
authorized to issue certificates for that IP Address.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://daknob.github.io/draft-chariton-ipcaa/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-chariton-ipcaa/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        WG Working Group mailing list (<eref target="mailto:spasm@ietf.org"/>),
        which is archived at <eref target="https://datatracker.ietf.org/wg/lamps/about/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/spasm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/daknob/draft-chariton-ipcaa"/>.</t>
    </note>


  </front>

  <middle>


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

<t>The CAA Resource Records specified in <xref target="RFC8659"/> allow a domain holder to
limit the CAs that are authorized to issue certificates for that domain.
However, there is no mechanism to provide the same functionality for IP
Addresses that can be included in certificates.</t>

<t>This document specifies a new Property for CAA records that exist in the
Reverse DNS Zones that can achieve the same effect.</t>

<t>A new Property is required so as not to interfere with certificate issuance for
the subdomains of these two zones, and <spanx style="verb">issue</spanx> and <spanx style="verb">issuewild</spanx> continue to be
valid.</t>

</section>
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>

<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>

</section>
<section anchor="defined-terms"><name>Defined Terms</name>
<t>This document uses the same defined terms as Section 2.2 of <xref target="RFC8659"/>. The
following term is redefined in this document:</t>

<dl>
  <dt>Relevant Resource Record Set (Relevant RRset):</dt>
  <dd>
    <t>A set of CAA Resource Records resulting from calculating the IP Address
Reverse DNS FQDN for an IP Address.</t>
  </dd>
</dl>

<t>The following terms are additionally defined:</t>

<dl>
  <dt>IP Address:</dt>
  <dd>
    <t>An IPv6 or IPv4 address.</t>
  </dd>
  <dt>Reverse DNS Zones:</dt>
  <dd>
    <t>The DNS zones ip6.arpa and in-addr.arpa.</t>
  </dd>
  <dt>IP Address Reverse DNS FQDN:</dt>
  <dd>
    <t>The FQDN that corresponds to an IP Address within the Reverse DNS Zones that
can be calculated by using the algorithms described in Section 2.5 of
<xref target="RFC3596"/> and Section 3.5 of <xref target="RFC1035"/>.</t>
  </dd>
</dl>

</section>
</section>
<section anchor="relevant-resource-record-set"><name>Relevant Resource Record Set</name>
<t>In order to determine the Relevant RRset, a compliant CA must calculate the
IP Address Reverse DNS FQDN.</t>

<t>Then, it must apply the algorithm specified in Section 3 of <xref target="RFC8659"/> for
the calculated FQDN. The search stops at the Reverse DNS Zones, but does not
include them.</t>

</section>
<section anchor="caa-ip-property"><name>CAA ip Property</name>
<t>If the <spanx style="verb">ip</spanx> Property Tag is present in the Relevant RRset for an IP Address, it
is a request that Issuers:</t>

<t><list style="numbers">
  <t>Perform CAA issue restriction processing for the IP Address, and</t>
  <t>Grant authorization to issue certificates containing that IP Address to the
holder of the issuer-domain-name or a party acting under the explicit authority
of the holder of the issuer-domain-name.</t>
</list></t>

<t>The CAA <spanx style="verb">ip</spanx> Property Value has the following sub-syntax (specified in ABNF as
per <xref target="RFC5234"/>):</t>

<figure><artwork><![CDATA[
issue-value = *WSP [issuer-domain-name *WSP]
   [";" *WSP [parameters *WSP]]

issuer-domain-name = label *("." label)
label = (ALPHA / DIGIT) *( *("-") (ALPHA / DIGIT))

parameters = (parameter *WSP ";" *WSP parameters) / parameter
parameter = tag *WSP "=" *WSP value
tag = (ALPHA / DIGIT) *( *("-") (ALPHA / DIGIT))
value = *(%x21-3A / %x3C-7E)
]]></artwork></figure>

<t>The following CAA RRset requests that no certificates be issued for the IP
Address "2001:db8::1" by any Issuer other than ca1.example.net:</t>

<figure><artwork><![CDATA[
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa
                                              CAA 0 ip "ca1.example.net"
]]></artwork></figure>

<t>The following CAA RRset requests that no certificates be issued for the IP
Address "192.0.2.2" by any Issuer other than ca2.example.org:</t>

<figure><artwork><![CDATA[
2.2.0.192.in-addr.arpa  CAA 0 ip "ca2.example.org"
]]></artwork></figure>

<t>The following CAA RRset requests that no certificates be issued for the IP
Address "192.0.2.1" by any Issuer other than ca1.example.net, and that no
certificates be issued for the domain "1.2.0.192.in-addr.arpa" by any Issuer
other than ca2.example.org:</t>

<figure><artwork><![CDATA[
1.2.0.192.in-addr.arpa  CAA 0 ip    "ca1.example.net"
1.2.0.192.in-addr.arpa  CAA 0 issue "ca2.example.org"
]]></artwork></figure>

<t>An <spanx style="verb">ip</spanx> Property Tag where the issue-value does not match the ABNF grammar <bcp14>MUST</bcp14>
be treated the same as one specifying an empty issuer-domain-name. For
example, the following malformed CAA RRset forbids issuance:</t>

<figure><artwork><![CDATA[
e.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa
                                                        CAA 0 ip "%%%%%"
]]></artwork></figure>

<t>The CAA <spanx style="verb">ip</spanx> Property Tag <bcp14>MUST</bcp14> be ignored if the FQDN is not a valid IP Address
Reverse DNS FQDN.</t>

<t>An Issuer <bcp14>MAY</bcp14> choose to specify parameters that further constrain the issue of
certificates by that Issuer -- for example, specifying that certificates are to
be subject to specific validation policies, billed to certain accounts, or
issued under specific trust anchors.</t>

<t>For example, if ca1.example.net has requested that its customer that wants a
certificate with the IP Address 192.0.2.32 specified their account number
"110995" in each of the customer's CAA records using the (CA-defined) "account"
parameter, it would look like this:</t>

<figure><artwork><![CDATA[
32.2.0.192.in-addr.arpa  CAA 0 issue "ca1.example.net; account=110995"
]]></artwork></figure>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>
<t>The same Security Considerations described in Section 5 of <xref target="RFC8659"/> apply
to this document. On top of these, as the IP Address Reverse DNS FQDN is not
checked by CAs that do not comply to this document, the critical flag,
described in Section 4.5 of <xref target="RFC8659"/>, may have reduced efficacy.</t>

</section>
<section anchor="deployment-considerations"><name>Deployment Considerations</name>
<t>The same Deployment Considerations described in Section 6 of <xref target="RFC8659"/> apply
to this document. On top of these, deployment of CAA <spanx style="verb">ip</spanx> Property Tags will
increase the amount of DNS queries required when issuing certificates for IPv6
addresses, as it can include up to 32 DNS queries to the ip6.arpa zone if there
are no Relevant RRsets.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>
<t>The "Certification Authority Restriction Properties" registry needs to be
updated to include the following entry:</t>

<dl>
  <dt>Tag:</dt>
  <dd>
    <t>ip</t>
  </dd>
  <dt>Meaning:</dt>
  <dd>
    <t>Authorization Entry by IP Address</t>
  </dd>
  <dt>Reference:</dt>
  <dd>
    <t>This document</t>
  </dd>
</dl>

</section>


  </middle>

  <back>


    <references title='Normative References'>





<reference anchor='RFC8659' target='https://www.rfc-editor.org/info/rfc8659'>
<front>
<title>DNS Certification Authority Authorization (CAA) Resource Record</title>
<author fullname='P. Hallam-Baker' initials='P.' surname='Hallam-Baker'><organization/></author>
<author fullname='R. Stradling' initials='R.' surname='Stradling'><organization/></author>
<author fullname='J. Hoffman-Andrews' initials='J.' surname='Hoffman-Andrews'><organization/></author>
<date month='November' year='2019'/>
<abstract><t>The Certification Authority Authorization (CAA) DNS Resource Record allows a DNS domain name holder to specify one or more Certification Authorities (CAs) authorized to issue certificates for that domain name. CAA Resource Records allow a public CA to implement additional controls to reduce the risk of unintended certificate mis-issue.  This document defines the syntax of the CAA record and rules for processing CAA records by CAs.</t><t>This document obsoletes RFC 6844.</t></abstract>
</front>
<seriesInfo name='RFC' value='8659'/>
<seriesInfo name='DOI' value='10.17487/RFC8659'/>
</reference>



<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author fullname='S. Bradner' initials='S.' surname='Bradner'><organization/></author>
<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' target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></author>
<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='RFC3596' target='https://www.rfc-editor.org/info/rfc3596'>
<front>
<title>DNS Extensions to Support IP Version 6</title>
<author fullname='S. Thomson' initials='S.' surname='Thomson'><organization/></author>
<author fullname='C. Huitema' initials='C.' surname='Huitema'><organization/></author>
<author fullname='V. Ksinant' initials='V.' surname='Ksinant'><organization/></author>
<author fullname='M. Souissi' initials='M.' surname='Souissi'><organization/></author>
<date month='October' year='2003'/>
<abstract><t>This document defines the changes that need to be made to the Domain Name System (DNS) to support hosts running IP version 6 (IPv6).  The changes include a resource record type to store an IPv6 address, a domain to support lookups based on an IPv6 address, and updated definitions of existing query types that return Internet addresses as part of additional section processing.  The extensions are designed to be compatible with existing applications and, in particular, DNS implementations themselves.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='STD' value='88'/>
<seriesInfo name='RFC' value='3596'/>
<seriesInfo name='DOI' value='10.17487/RFC3596'/>
</reference>



<reference anchor='RFC1035' target='https://www.rfc-editor.org/info/rfc1035'>
<front>
<title>Domain names - implementation and specification</title>
<author fullname='P. Mockapetris' initials='P.' surname='Mockapetris'><organization/></author>
<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='RFC5234' target='https://www.rfc-editor.org/info/rfc5234'>
<front>
<title>Augmented BNF for Syntax Specifications: ABNF</title>
<author fullname='D. Crocker' initials='D.' role='editor' surname='Crocker'><organization/></author>
<author fullname='P. Overell' initials='P.' surname='Overell'><organization/></author>
<date month='January' year='2008'/>
<abstract><t>Internet technical specifications often need to define a formal syntax.  Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications.  The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power.  The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges.  This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='STD' value='68'/>
<seriesInfo name='RFC' value='5234'/>
<seriesInfo name='DOI' value='10.17487/RFC5234'/>
</reference>




    </references>



<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

</section>


  </back>

<!-- ##markdown-source:
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
qUfGR8FQJIUMPrN/A+P8Cex3GgAA

-->

</rfc>

