<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version  -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-shoemaker-caa-ip-01" category="std">

  <front>
    <title abbrev="CAA-IP">Certification Authority Authorization (CAA) Validation for IP Addresses</title>

    <author initials="R.B." surname="Shoemaker" fullname="Roland Bracewell Shoemaker">
      <organization>ISRG</organization>
      <address>
        <email>roland@letsencrypt.org</email>
      </address>
    </author>

    <date year="2017" month="September" day="13"/>

    <area>General</area>
    
    

    <abstract>


<t>The Certification Authority Authorization (CAA) RFC specifies a method for users
to restrict which Certificate Authorities (CAs) are authorized to issue certificates
for their DNS domain names. This document extends that specification to provide
a method for holders of IP addresses to do the same.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>This document describes an extension to RFC 6844 <xref target="RFC6844"/> which allows for
the use of Certification Authority Authorization DNS Records to be used to
restrict issuance of certificates to IP addresses instead of just DNS names.
This is done by defining a new lookup mechanism for IPv4 and IPv6 addresses
as previously a mechanism only existed for DNS names.</t>

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

<t>In this document, the key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL
NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” are to be
interpreted as described in BCP 14, RFC 2119 <xref target="RFC2119"/>.</t>

</section>
<section anchor="mechanism" title="Mechanism">

<t>Before issuing a certificate containing a IP address a compliant CA MUST check
for the relevant CAA Resource Record set. If such a record set exists a CA MUST
NOT issue a certificate unless the records in the set are consistent with the
request and the policies of the CA.</t>

<t>A certificate request MAY specify more than one IP address in which case CAs
MUST verify the CA Resource Record set for all the IP addresses specified in
the request.</t>

<t>As defined in RFC 2818 <xref target="RFC2818"/> IP addresses in certificates must match
exactly with the requested URI so CAs MUST NOT consider CAA records with the
“issuewild” tag to be part of the relevant Resource Record set for a IP
address.</t>

<t>Unlike the mechanism defined in RFC 6844 <xref target="RFC6844"/> this mechanism doesn’t
involve climbing the DNS tree and only requires querying a single DNS name. The
relevant Resource Record set for a given IP address is found by querying the
reverse mapping zone for the IP for CAA records.</t>

<t>Given a certificate request containing the IPv6 address “2001:db8::1” the relevant
query for the reverse mapping within the IP6.ARPA <xref target="RFC3596"/> zone would be:</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. IN CAA
]]></artwork></figure>

<t>And for a request containing the IPv4 address “192.0.2.1” the relevant query for
the reverse mapping within the IN-ADDR.ARPA <xref target="RFC1034"/> zone would be:</t>

<figure><artwork><![CDATA[
1.2.0.192.in-addr.arpa. IN CAA
]]></artwork></figure>

<t>When doing queries CAs SHOULD either use a resolver that chases CNAME records or
manually chase CNAMEs themselves in order to allow for zone delegations <xref target="RFC2317"/>.</t>

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

<section anchor="certification-authority-restriction-properties" title="Certification Authority Restriction Properties">

<t>Change the contents of the Meaning column for the “issue” Tag to say
“Authorization Entry by Domain or IP address” and add “draft-shoemaker-caa-ip” to the
References column.</t>

</section>
</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference  anchor='RFC1034' target='https://www.rfc-editor.org/info/rfc1034'>
<front>
<title>Domain names - concepts and facilities</title>
<author initials='P.V.' surname='Mockapetris' fullname='P.V. Mockapetris'><organization /></author>
<date year='1987' month='November' />
<abstract><t>This RFC is the revised basic definition of The Domain Name System.  It obsoletes RFC-882.  This memo describes the domain style names and their used for host address look up and electronic mail forwarding.  It discusses the clients and servers in the domain name system and the protocol used between them.</t></abstract>
</front>
<seriesInfo name='STD' value='13'/>
<seriesInfo name='RFC' value='1034'/>
<seriesInfo name='DOI' value='10.17487/RFC1034'/>
</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 initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<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='RFC2317' target='https://www.rfc-editor.org/info/rfc2317'>
<front>
<title>Classless IN-ADDR.ARPA delegation</title>
<author initials='H.' surname='Eidnes' fullname='H. Eidnes'><organization /></author>
<author initials='G.' surname='de Groot' fullname='G. de Groot'><organization /></author>
<author initials='P.' surname='Vixie' fullname='P. Vixie'><organization /></author>
<date year='1998' month='March' />
<abstract><t>This document describes a way to do IN-ADDR.ARPA delegation on non-octet boundaries for address spaces covering fewer than 256 addresses.  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='20'/>
<seriesInfo name='RFC' value='2317'/>
<seriesInfo name='DOI' value='10.17487/RFC2317'/>
</reference>



<reference  anchor='RFC2818' target='https://www.rfc-editor.org/info/rfc2818'>
<front>
<title>HTTP Over TLS</title>
<author initials='E.' surname='Rescorla' fullname='E. Rescorla'><organization /></author>
<date year='2000' month='May' />
<abstract><t>This memo describes how to use Transport Layer Security (TLS) to secure Hypertext Transfer Protocol (HTTP) connections over the Internet.  This memo provides information for the Internet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='2818'/>
<seriesInfo name='DOI' value='10.17487/RFC2818'/>
</reference>



<reference  anchor='RFC3596' target='https://www.rfc-editor.org/info/rfc3596'>
<front>
<title>DNS Extensions to Support IP Version 6</title>
<author initials='S.' surname='Thomson' fullname='S. Thomson'><organization /></author>
<author initials='C.' surname='Huitema' fullname='C. Huitema'><organization /></author>
<author initials='V.' surname='Ksinant' fullname='V. Ksinant'><organization /></author>
<author initials='M.' surname='Souissi' fullname='M. Souissi'><organization /></author>
<date year='2003' month='October' />
<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='RFC6844' target='https://www.rfc-editor.org/info/rfc6844'>
<front>
<title>DNS Certification Authority Authorization (CAA) Resource Record</title>
<author initials='P.' surname='Hallam-Baker' fullname='P. Hallam-Baker'><organization /></author>
<author initials='R.' surname='Stradling' fullname='R. Stradling'><organization /></author>
<date year='2013' month='January' />
<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. CAA Resource Records allow a public Certification Authority 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 certificate issuers. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6844'/>
<seriesInfo name='DOI' value='10.17487/RFC6844'/>
</reference>




    </references>




  </back>
</rfc>

