<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

  <!ENTITY RFC1034 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.1034.xml">
  <!ENTITY RFC1035 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.1035.xml">
    <!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
  <!ENTITY RFC2045 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2045.xml">
  <!ENTITY RFC2181 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2181.xml">  
  <!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
    <!ENTITY RFC5280 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5280.xml">
  <!ENTITY RFC3647 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3647.xml">
  <!ENTITY RFC3552 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3552.xml">
    <!ENTITY RFC3642 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3642.xml">    
    <!ENTITY RFC4033 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4033.xml">
  <!ENTITY RFC4034 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4034.xml">
  <!ENTITY RFC4035 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4035.xml">
  <!ENTITY RFC5155 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5155.xml">
  <!ENTITY RFC4055 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4055.xml">
  <!ENTITY RFC5234 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5234.xml">
  <!ENTITY RFC5226 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml">
  <!ENTITY RFC4648 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4648.xml">
    <!ENTITY RFC6195 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6195.xml">
    <!ENTITY RFC5070 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5070.xml">
    <!ENTITY RFC5234 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5234.xml">
  <!ENTITY RFC6546 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6546.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc category="std" docName="draft-ietf-pkix-caa-15" ipr="trust200902">

    <front>
        <title abbrev="Certification Authority Authorization">DNS Certification Authority Authorization (CAA) Resource Record</title>
        <author fullname="Phillip Hallam-Baker" initials="P. M." surname="Hallam-Baker">
            <organization>Comodo Group Inc.</organization>
            <address>
                <email>philliph@comodo.com</email>
            </address>
        </author>
        <author fullname="Rob Stradling" initials="R. N." surname="Stradling">
            <organization>Comodo CA Ltd.</organization>
            <address>
                <email>rob.stradling@comodo.com</email>
            </address>
        </author>

        <date day="18" month="October" year="2012" />

        <area>General</area>

        <workgroup>Internet Engineering Task Force</workgroup>

        <keyword>DNS</keyword>
        <keyword>DNSSEC</keyword>
        <keyword>PKIX</keyword>
        
        <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.
            </t>
        </abstract>
    </front>

  <middle>

    <section title="Introduction">
      <t>
        The Certification Authority Authorization (CAA) DNS Resource Record allows a
        DNS domain name holder to specify the Certification Authorities authorized
        to issue certificates for that domain. Publication of CAA resource records
        allow a public Certification Authority (CA) to implement additional
        controls to reduce the risk of unintended certificate mis-issue.
      </t>
      <t>
        Like the TLSA record defined in DNS-Based Authentication of Named Entities (DANE)
        <xref target="DANE"/>, CAA records are used as a part of a mechanism for checking PKIX
        certificate data. The distinction between the two specifications is that
        CAA records specify a authorization control to be performed by a certificate
        issuer before issue of a certificate and TLSA records specify a verification
        control to be performed by a Relying Party after the certificate is issued.
      </t>
      <t>
        Conformance with a published CAA record is a necessary but not sufficient
        condition for issueance of a certificate.
        Before issuing a certificate, a PKIX CA is required to validate the
        request according to the policies set out in its Certificate Policy.
        In the case of a public CA that validates certificate requests
        as a third party, the certificate will be typically issued under
        a public trust anchor certificate embedded in one or more relevant Relying Applications.
      </t>
      <t>
        Criteria for inclusion of embedded trust anchor certificates in applications
        are outside the scope of this document. Typically such criteria require the CA to publish a
        Certificate Practices Statement (CPS) that specifies how the requirements
        of the Certificate Policy (CP) are achieved. It is also common
        for a CA to engage an independent third party auditor to prepare an annual
        audit statement of its performance against its CPS.
      </t>
      <t>
        A set of CAA records describes only current grants of authority to issue
        certificates for the corresponding DNS domain.
        Since a certificate is typically valid
        for at least a year, it is possible that a certificate that is not
        conformant with the CAA records currently published was conformant
        with the CAA records published at the time that the certificate was issued.
        Relying Applications MUST NOT use CAA records as part of certificate
        validation.
      </t>
      <t>
        CAA Records MAY be used by Certificate Evaluators as a possible indicator
        of a security policy violation. Such use SHOULD take account of the
        possibility that published CAA records changed between the time a
        certificate was issued and the time at which the certificate was observed by the
        Certificate Evaluator.
      </t>
    </section>

    <section title="Definitions">
      <section title="Requirements Language">
        <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>
      </section>
      <section title="Defined Terms">
        <t>The following terms are used in this document:</t>
        <t>
          <list style="hanging">

            <t hangText="Authorization Entry:">
              An authorization assertion that grants or denies a specific set of permissions
              to a specific group of entities.
            </t>
            <t hangText="Certificate:">
              An X.509 Certificate, as specified in <xref target="RFC5280"/>.
            </t>
            <t hangText="Certificate Evaluator:">
              A party other than a Relying Party that evaluates the trustworthiness of
              certificates issued by Certification Authorities.
            </t>
            <t hangText="Certification Authority (CA):">
              An Issuer that issues Certificates in accordance with a specified
              Certificate Policy.
            </t>
            <t hangText="Certificate Policy (CP):">
              Specifies the criteria that a Certification Authority undertakes to meet
              in its issue of certificates.  See <xref target="RFC3647"/>.
            </t>
            <t hangText="Certification Practices Statement (CPS):">
              Specifies the means by which the criteria of the Certificate Policy
              are met. In most cases this will be the document against which the
              operations of the Certification Authority are audited.
              See <xref target="RFC3647"/>.
            </t>

            <t hangText="Domain:">
              A DNS Domain Name.
            </t>
            <t hangText="Domain Name:">
              A DNS Domain name as specified in <xref target="STD13"/>.
            </t>
            <t hangText="Domain Name System (DNS):">
              The Internet naming system specified in <xref target="STD13"/>.
            </t>
            <t hangText="DNS Security (DNSSEC):">
              Extensions to the DNS that provide authentication services as specified in
              <xref target="RFC4033"/>, <xref target="RFC4034"/>, <xref target="RFC4035"/>,
              <xref target="RFC5155"/>
            and revisions.
          </t>
            <t hangText="Issuer:">
              An entity that issues Certificates. See <xref target="RFC5280"/>.
            </t>
            <t hangText="Property:">
              The tag-value portion of a CAA Resource Record.
            </t>
            <t hangText="Property Tag:">
              The tag portion of a CAA Resource Record.
            </t>
            <t hangText="Property Value:">
              The value portion of a CAA Resource Record.
            </t>
            <t hangText="Public Key Infrastructure X.509 (PKIX):">
              Standards and specifications issued by the IETF that apply the
              <xref target="X.509"/> certificate standards specified
                by the ITU to Internet applications as specified in
                <xref target="RFC5280"/> and related documents.
              </t>
            <t hangText="Resource Record (RR):">
              A particular entry in the DNS including the owner name, class,
              type, time to live, and data, as defined in <xref target="STD13"/> and 
              <xref target="RFC2181"/>.
            </t>
            <t hangText="Resource Record Set(RRSet):">
              A set of Resource Records or a particularowner name, classand
              type. The time
              to live on all RRs with an RRSet is always the same but the data 
              may be different among RRs in the RRSet.
            </t>
            <t hangText="Relying Party:">
              A party that makes use of an application whose operation depends on
              use of a Certificate for making a security decision. See
              <xref target="RFC5280"/>.
            </t>
            <t hangText="Relying Application:">
              An application whose operation depends on
              use of a Certificate for making a security decision.
            </t>

          </list>
        </t>
      </section>
    </section>


      <section title="The CAA RR type">
        <t>
          A CAA RR consists of a flags byte and a tag-value pair referred to as 
          a property. Multiple properties MAY be associated
          with the same domain name by publishing multiple CAA RRs at that
          domain name. The following flag is defined:
        </t>
        <t>
          <list style="hanging">
            <t hangText="Issuer Critical:">
              If set (=1), indicates that the corresponding property entry
              tag MUST be understood if the semantics of the CAA
              record are to be correctly interpreted by an issuer.
            </t>
            <t>
              Issuers MUST NOT issue certificates for a domain if
              the relevant CAA Resource Record set contains unknown
              property entry tags that have the  Critical
              bit set.
            </t>
          </list>
        </t>
        <t>
          The following property tags are defined:
        </t>
        <t>
          <list style="hanging">
            <t hangText="issue &lt;Issuer Domain Name&gt; [; &lt;tag=value&gt; ]* :">
              The issue property entry authorizes the holder of the
              domain name &lt;Issuer Domain Name&gt; or a party acting under the 
              explicit authority of the holder of that domain name to issue
              certificates for the domain in which the property is published.
            </t>
            <t hangText="issue &lt;Issuer Domain Name&gt; [; &lt;tag=value&gt; ]* :">
              The issue property entry authorizes the holder of the
              domain name &lt;Issuer Domain Name&gt; or a party acting under the
              explicit authority of the holder of that domain name to issue
              wildcard certificates for the domain in which the property is published.
            </t>            
            <t hangText="iodef &lt;URL&gt; :">
              Specifies a URL to which an issuer
              MAY report certificate
              issue requests that are inconsistent with the issuer's Certification
              Practices or Certificate Policy, or that a certificate evaluator may
              use to report observation of a possible policy violation. The IODEF
              format is used
              <xref target="RFC5070"/>.
            </t>
          </list>
        </t>

        <t>
          The following example is a DNS zone file (see <xref target="RFC1035"/>) that
          informs CAs that certificates are not to be issued
          except by the holder of the domain name 'ca.example.net' or an
          authorized agent thereof.
          This policy applies to all subordinate domains under example.com.
        </t>
        <figure>
          <artwork>
<![CDATA[$ORIGIN example.com
.       CAA 0 issue "ca.example.net"]]>
          </artwork>
        </figure>
        <t>
          If the domain name holder specifies one or more iodef properties, a
          certificate issuer MAY report invalid certificate requests to that address.
          In the following example the domain name holder specifies that reports may
          be made by means of email with the IODEF data as an attachment, a Web
          service <xref target="RFC6546"/> or both:
        </t>
        <figure>
          <artwork>
<![CDATA[$ORIGIN example.com
.       CAA 0 issue "ca.example.net"
.       CAA 0 iodef "mailto:security@example.com"
.       CAA 0 iodef "http://iodef.example.com/"]]>
          </artwork>
        </figure>
        <t>
          A certificate issuer MAY specify additional parameters that allow
          customers to specify additional parameters governing certificate issuance.
          This might be the Certificate Policy under which the certificate is
          to be issued, the authentication process to be used might be specified
          or an account number specified by the CA to enable these parameters to be
          retrieved.
        </t>
        <t>
          For example, the CA 'ca.example.net' has requested its customer 'example.com' to 
          specify the CA's account number '230123' in each of the customer's CAA records.
        </t>
        <figure>
          <artwork>
<![CDATA[$ORIGIN example.com
.       CAA 0 issue "ca.example.net; account=230123"]]>
          </artwork>
        </figure>
        <t>
          The syntax of additional parameters is a sequence of 
          tag-value pairs as defined in section <xref target="ABNF"/>.
          The semantics of such parameters is left to site policy and is
          outside the scope of this document.
        </t>
        <t>
          The critical flag is intended to permit future versions CAA to 
          introduce new semantics that MUST be understood for
          correct processing of the record, preventing conforming CAs
          that do not recognize the new semantics from issuing
          certificates for the indicated domains.
        </t>
        <t>
          In the following example, the property 'tbs' is flagged as
          critical. Neither the example.net CA, nor any other issuer is
          authorized to issue under either policy unless the processing rules for the
          'tbs' property tag are understood.
        </t>
        <figure>
          <artwork>
<![CDATA[$ORIGIN example.com
.       CAA 0 issue "ca.example.net; policy=ev"
.       CAA 128 tbs "Unknown" ]]>
          </artwork>
        </figure>
        <t>
          Note that the above restrictions only apply to issue of certificates.
          Since the validity of an end entity certificate is typically a
          year or more, it is quite possible that the CAA records published
          at a domain will change between the time a certificate was issued and
          validation by a relying party.
        </t>

      </section>

    <section title="Certification Authority Processing" anchor="IssuerProcessing">

      <t>
        Before issuing a certificate, a compliant CA MUST check for publication
        of an relevant CAA Resource Record set. If such a record set
        exists, a CA
        MUST NOT issue a certificate unless the CA determines that either
        (1) the certificate request is consistent with the applicable
        CAA Resource
        Record set or (2) that an exception specified in the
        relevant Certificate
        Policy or Certification Practices Statement Applies.
      </t>
      <t>
        A certificate request MAY specify more than one domain name and MAY
        specify wildcard domains. Issuers MUST verify authorization for all
        the domains and wildcard domains specified in the request.
      </t>
      <t>
        The search for a CAA record climbs the DNS name tree from the 
        specified label up to but not including the DNS root '.'. 
      </t>
      <t>
        Given a request for a specific domain X, or a request for a wildcard 
        domain *.X, the relevant record set R(X) 
        is determined as follows:
      </t>
      <t>
        Let CAA(X) be the record set returned in response to performing a 
        CAA record query on the label X, P(X) be the DNS label immediately
        above X in the DNS hierarchy and A(X) be the target of a CNAME or
        DNAME alias record specified at the label X.
      </t>
      <t>
        <list style='symbols'>
          <t>
            If CAA(X) is not empty, R(X) = CAA (X), otherwise
          </t>
          <t>
            If A(X) is not null, and R(A(X)) is not empty, then R(X) = R(A(X)), otherwise
          </t>
          <t>
            If X is not a top level domain then R(X) = R(P(X), otherwise
          </t>
          <t>
            R(X) is empty.
          </t>

        </list>

      </t>

      <t>
        For example, if a certificate is requested for X.Y.Z the issuer will
        search for the relevant CAA record set in the following order:
      </t>
      <t>
        <list>
          <t>
            X.Y.Z
          </t>
          <t>
            Alias (X.Y.Z)
          </t>
          <t>
            Y.Z
          </t>
          <t>
            Alias (Y.Z)
          </t>
          <t>
            Z
          </t>
          <t>
            Alias (Z)
          </t>
          <t>
            Return Empty
          </t>
        </list>
      </t>
      <section title="Use of DNS Security">
        <t>
          Use of DNSSEC to authenticate CAA RRs is strongly RECOMMENDED but
          not required. An issuer MUST NOT issue certificates if doing so would
          conflict with the relevant CAA Resource Record set,
          irrespective of
          whether the corresponding DNS records are signed.
        </t>
        <t>
          DNSSEC provides a proof of non-existence for both DNS domains and 
          RR set within domains. DNSSEC verification thus enables
          an issuer to determine if the answer to a CAA record query is empty because
          the RR set is empty or if it is non-empty but the response has been
          supressed.
        </t>
        <t>
          Use of DNSSEC allows an issuer to acquire and archive a 
          proof that they were authorized to issue certificates for the domain.
          Verification of such archives MAY be an audit requirement to verify
          CAA record processing compliance. Publication
          of such archives MAY be a transparency requirement to verify
          CAA record processing compliance.
        </t>
      </section>
    </section>



    <section title="Mechanism">
      <section title="Syntax">
        <t>
          A CAA RR contains a single property entry consisting of a tag value pair.
          Each tag represents
          a property of the CAA record. The value of a CAA property is that
          specified in the corresponding value field.
        </t>
        <t>
          A domain name MAY have multiple CAA RRs associated with it
          and a given property MAY
          be specified more than once.
        </t>

        <t>
          The CAA data field contains one property entry.
          A property entry consists of the following data fields:
        </t>
        <figure>
          <artwork>
<![CDATA[+0-1-2-3-4-5-6-7-|0-1-2-3-4-5-6-7-|
| Flags          | Tag Length = n |
+----------------+----------------+...+---------------+
| Tag char 0     | Tag Char 1     |...| Tag Char n-1  |
+----------------+----------------+...+---------------+
+----------------+----------------+.....+----------------+
| Value byte 0   | Value byte 1   |.....| Value byte m-1 |
+----------------+----------------+.....+----------------+]]>
          </artwork>
        </figure>
        <t>
          Where n is the length specified in the Tag length field
          and m is the remaining octets in the Value field (m = d - n - 2)
          where d is the length of the RDATA  section.
        </t>
        <t>
          The data fields are defined as follows:
        </t>
        <t>
          <list style="hanging">
            <t hangText="Flags:">
              One octet containing the following fields:


              <list style="hanging">
                <t hangText="Bit 0: Issuer Critical Flag">
                  If the value is set (1), the critical flag is asserted and the
                  property
                  MUST be understood if the CAA record is to be correctly processed
                  by a certificate issuer.
                </t>
                <t>
                  A Certification Authority MUST NOT issue certificates for any
                  Domain that contains a CAA critical property for an unknown
                  or unsupported property tag that for which the issuer critical flag is set.
                </t>
              </list>
            </t>
            <t>
              Note that according to the conventions set out in  <xref target="RFC1035"/>,
              Bit 0 is the Most Significant Bit and Bit 7 is the Least Significant Bit.
              Thus the Flags value 1 means that bit 7 is set while a value of 128
              means that bit 0 is set according to this convention.
            </t>
            <t>
              All other bit positions are reserved for future use.
            </t>
            <t>
              To ensure compatibility with future extensions to CAA, DNS records
              compliant with this version of the CAA specification
              MUST clear (set to "0") all reserved flags bits.
              Applications that interpret CAA records MUST ignore the value of all
              reserved flag bits.
            </t>
            <t hangText="Tag Length:">
              A single octet containing an unsigned integer
              specifying the tag length
              in octets. The tag length MUST be at least 1 and
              SHOULD be no more than 15.
            </t>


            <t hangText="Tag:">The property identifier, a sequence of ASCII characters.</t>
            <t>
              Tag values MAY contain ASCII characters 'a' through 'z',
              'A' through 'Z'
              and the numbers 0 through 9. Tag values SHOULD NOT contain
              any other characters. Matching of tag values is case
              insensitive.
            </t>
            <t>
              Tag values submitted for registration by IANA MUST NOT contain
              any characters other than the (lowercase) ASCII characters 'a' through 'z'
              and the numbers 0 through 9.
            </t>

            <t hangText="Value:">
              A sequence of octets representing the property
              value. Property values are encoded as binary values and MAY employ
              sub-formats.
            </t>
            <t>
              The length of the value field is specified implicitly as the remaining
              length of the enclosing Resource Record data field.
            </t>
          </list>

        </t>

        <section title="Canonical Presentation Format" anchor="zoneformat">

          <t>
            The canonical presentation format of the CAA record is:
          </t>
          <figure>
            <artwork>
<![CDATA[CAA <flags> <tag> <value>]]>
            </artwork>
          </figure>
          <t>
            Where:
          </t>
          <t>
            <list style="hanging">
              <t hangText="Flags:">Is an unsigned integer between 0 and 255.</t>
              <t hangText="Tag:">
                Is a non-zero sequence of ASCII letter and
                numbers in lower case.
              </t>
              <t hangText="Value:">
                Is the &lt;character-string&gt; encoding of the value field as specified in 
                <xref target="RFC1035"/> section 5.1.
              </t>
            </list>
          </t>
        </section>
      </section>

      <section title="CAA issue Property" anchor="ABNF">
        <t>
          The issue property tag is used to request that certificate issuers
          perform CAA issue restriction processing for the domain and to
          grant authorization to specific certificate issuers.
        </t>
        <t>
          The CAA issue property value has the following sub-syntax (specified in
          ABNF as per <xref target="RFC5234"/>).
        </t>
        <figure>
          <artwork>
<![CDATA[Property = space [domain] space [";" *(space parameter) space]

domain = label *("." label)
label = (ALPHA / DIGIT) * ( ["-"] (ALPHA / DIGIT ))

space = *(SP / HTAB)

parameter =  tag "=" value

tag = 1* (ALPHA / DIGIT)

value = *VCHAR 
]]>
          </artwork>
        </figure>
        <t>
          For consistency with other aspects of DNS administration, 
          Domain name values are specified in Letter-Digit-Hyphen Label (LDH-Label)
          form.
        </t>
        <t>
          A CAA record with an issue parameter tag that does not specify a
          domain name
          is a request that certificate issuers
          perform CAA issue restriction processing for the corresponding
          domain without granting
          authorization to any certificate issuer.
        </t>
        <t>
          This form of issue restriction would be appropriate to specify that no
          certificates are to be issued for the domain in question.
        </t>
        <t>
          For example, the following CAA record set requests that
          no certificates be issued for the domain 'nocerts.example.com'
          by any certificate issuer.
        </t>
        <figure>
          <artwork>
<![CDATA[nocerts.example.com       CAA 0 issue ";"]]>
          </artwork>
        </figure>
        <t>
          A CAA record with an issue parameter tag that specifies a
          domain name
          is a request that certificate issuers
          perform CAA issue restriction processing for the corresponding
          domain and grants
          authorization to the certificate issuer specified by the domain name.
        </t>
        <t>
          For example, the following CAA record set requests that
          no certificates be issued for the domain 'certs.example.com'
          by any certificate issuer other than the example.net certificate issuer.
        </t>
        <figure>
          <artwork>
<![CDATA[certs.example.com       CAA 0 issue "example.net"]]>
          </artwork>
        </figure>
        <t>
          CAA authorizations are additive. thus the result of specifying both the empty
          issuer and a specified issuer is the same as specifying just the specified
          issuer alone.
        </t>
        <t>
          An issuer MAY choose to specify issuer-parameters that further constrain the
          issue of certificates by that issuer. For example specifying that certificates
          are to be subject to specific validation polices, billed to certain
          accounts or issued under specific trust anchors.
        </t>
        <t>
          The semantics of issuer-parameters are determined by the
          issuer alone.
        </t>
      </section>
      <section title="CAA issuewild Property">
        <t>
          The issuewild property has the same syntax and semantics as the issue property
          except that issuewild properties only grant authorization to issue 
          certificates that specify a wildcard domain
           and issuewild properties take precedence over issue properties
          when specified. Specifically:
        </t>
        <t>
          <list>
            <t>
              issuewild properties MUST be ignored when processing a request for
              a domain that is not a wildcard domain.
            </t>
            <t>
              If at least one issuewild property is specified in the relevant CAA
              record set, all issue properties MUST be ignored when processing
              a request for a domain that is a wildcard domain.
            </t>
          </list>
        </t>
      </section>
      <section title="CAA iodef Property">
        <t>
          The iodef property specifies a means of reporting certificate
          issue requests or cases of certificate issue for the corresponding
          domain, that violate the security policy of the issuer or the domain
          name holder.
        </t>
        <t>
          The Incident Object Description Exchange Format (IODEF) <xref target="RFC5070"/>
          is used to
          present the incident report in machine readable form.
        </t>
        <t>
          The iodef property takes a URL as its parameter. The URL scheme type
          determines the method used for reporting:
        </t>
        <t>
          <list style="hanging">
            <t hangText="mailto:">
              The IODEF incident report is reported as a MIME email attachment
              to an SMTP email that is submitted to the mail address specified.
              The mail message sent SHOULD contain a brief text message to alert
              the recipient to the nature of the attachment.
            </t>
            <t hangText="http or https:">
              The IODEF report is submitted as a web service request to the
              HTTP address specified using the protocol specified in
              <xref target="RFC6546"/>.
            </t>
          </list>
        </t>

      </section>

    </section>
    <section title="Security Considerations">
      <t>
        CAA Records assert a security policy that the holder of a domain name
        wishes to be observed by certificate issuers. The effectiveness of CAA
        records as an access control mechanism is thus dependent on observance of CAA
        constraints by issuers.
      </t>
      <t>
        The objective of the CAA record properties described in this document is
        to reduce the risk of certificate mis-issue rather than avoid reliance on
        a certificate that has ben mis-issued.
        DANE <xref target="DANE"/> describes a mechanism for avoiding reliance
        on mis-issued certificates.
      </t>
      <section title="Non-Compliance by Certification Authority">
        <t>
          CAA records offer CAs a cost-effective means of mitigating the risk
          of certificate mis-issue: The cost of implementing CAA checks is
          very small and the potential costs of a mis-issue event include the
          removal of an embedded trust anchor.
        </t>
      </section>
      <section title="Mis-Issue by Authorized Certification Authority">
        <t>
          Use of CAA records does not prevent mis-issue
          by an authorized Certification Authority. , i.e., a CA that is
          authorized to issue certificates for the domain in question by CAA records..
        </t>
        <t>
          Domain name holders SHOULD verify that the CAs they authorize to issue
          certificates for their domains employ appropriate controls to ensure
          that certificates are issued only to authorized parties within their
          organization.
        </t>
        <t>
          Such controls are most appropriately determined by the domain name
          holder and the authorized CA(s) directly and are thus out of scope
          of this document.
        </t>
      </section>
      <section title="Suppression or spoofing of CAA records">
        <t>
          Suppression of the CAA record or insertion of a bogus CAA record could
          enable an attacker to obtain a certificate from an issuer that was not
          authorized to issue for that domain name.
        </t>
        <t>
          Where possible, Issuers SHOULD perform DNSSEC validation to detect
          missing or modified CAA record sets. 
        </t>
        <t>
          In cases where DNSSEC is not deployed in a corresponding domain, an
          issuer SHOULD attempt to mitigate this risk by employing appropriate
          DNS security controls. For example all portions of the DNS lookup
          process SHOULD be performed against the authoritative name server.
          Data cached by third parties MUST NOT be relied on but MAY be used 
          to support additional anti-spoofing or anti-suppression controls.
        </t>
      </section>

      <section title="Denial of Service">
        <t>
          Introduction of a malformed or malicious CAA RR could in theory
          enable a Denial of Service attack.
        </t>
        <t>
          This specific threat is not considered to add significantly to
          the risk of running an insecure DNS service.
        </t>

        <t>
          An attacker could, in principle, perform a Denial of Service attack
          against an issuer by requesting a certificate with a maliciously long
          DNS name. In practice, the DNS protocol imposes a maximum name length
          and CAA processing does not exacerbate the existing need to mitigate
          Denial of Service attacks to any meaningful degree.
        </t>
      </section>
      <section title="Abuse of the Critical Flag">
        <t>
          A Certification Authority could make use of the critical flag
          to trick customers into publishing records which prevent
          competing Certification Authorities from issuing certificates
          even though the customer intends to authorize multiple
          providers.
        </t>
        <t>
          In practice, such an attack would be of minimal effect since
          any competent competitor that found itself unable to issue certificates
          due to lack of support for a property marked critical SHOULD
          investigate the cause and report the reason to the customer
          who will thus discover that they had been deceived.
        </t>
      </section>
    </section>

    <section title="IANA Considerations">
      <section title="Registration of the CAA Resource Record Type">
        <t>
          [Note to IANA, the CAA resource record has already been assigned.
          On issue of this draft as an RFC, the record should be updated to
          reflect this document as the authoritative specification and this
          paragraph (but not the following ones deleted]
        </t>
        <t>
          IANA has assigned Resource Record Type 257 for the CAA Resource
          Record Type and added the line depicted below to the registry named
          Resource Record (RR) TYPEs and QTYPEs as defined in BCP 42
          <xref target="RFC6195"/> and located at
          http://www.iana.org/assignments/dns-parameters.
        </t>
        <figure>
          <artwork>
<![CDATA[RR Name      Value and meaning                                Reference
-----------  ---------------------------------------------    ---------
CAA          257 Certification Authority Restriction          [RFC-THIS]]]>
          </artwork>
        </figure>
      </section>
      <section title="Certification Authority Authorization Properties">
        <t>
          [Note to IANA, this is a new registry that needs to be created and this
          paragraph but not the following ones deleted.]
        </t>
        <t>
          IANA has created the Certification Authority Authorization Properties
          registry with the following initial values:
        </t>
        <figure>
          <artwork>
<![CDATA[
Tag          Meaning                            Reference
-----------  ---------------------------------- ---------
issue        Authorization Entry by Domain      [RFC-THIS]
issuewild    Authorization Entry by Domain      [RFC-THIS]
iodef        Report incident by IODEF report    [RFC-THIS]
auth         Reserved                           <xref target="HB2011"/>
path         Reserved                           <xref target="HB2011"/>
policy       Reserved                           <xref target="HB2011"/>]]> 
          </artwork>
        </figure>
        <t>
          Although <xref target="HB2011"/>" has expired, deployed clients 
          implement the CAA properties specified in the draft and re-use of these
          property tags for a different purtpose could cause unexpected behavior.
        </t>
        <t>
          Addition of tag identifiers requires a public specification
          and expert review as set out in <xref target="RFC6195"/>
          Section 3.1.1..
        </t>
        <t>
          The tag space is designed to be sufficiently large that
          exhausting the possible tag space need not be a concern. The scope 
          of expert review SHOULD be limited to the question of whether the
          specification provided is sufficiently clear to permit implementation
          and to avoid unnecessary duplication of functionality.
        </t>
      </section>
      <section title="Certification Authority Authorization Flags">
        <t>
          IANA has created the Certification Authority Authorization Flags
          registry with the following initial values:
        </t>
        <t>
          <![CDATA[Flag         Meaning                            Reference
-----------  ---------------------------------- ---------
0            Issuer Critical Flag               [RFC-THIS]
1-7          Reserved>                          [RFC-THIS]]]>
        </t>
        <t>
          Assignment of new flags follows the 'RFC Required' policy set out
          in <xref target="RFC5226"/> section 4.1.
        </t>
      </section>
      <section title="Acknowledgements">
        <t>
          The authors would like to thank the following people who contributed
          to the design and documentation of this work item:  Chris       Evans,
          Stephen Farrell, Jeff   Hodges, Paul    Hoffman, Stephen        Kent,
          Adam    Langley, Ben    Laurie, Chris   Palmer, Scott   Schmit, Sean    Turner and
          Ben     Wilson.
        </t>
      </section>
    </section>

  </middle>



    <back>
        <references title="Normative References">
          <reference anchor="STD13">
            <front>
              <title abbrev="Domain Concepts and Facilities">Domain names - concepts and facilities</title>
              <author initials="P." surname="Mockapetris" fullname="P. Mockapetris">
                <organization>Information Sciences Institute (ISI)</organization>
              </author>
              <date year="1987" day="1" month="November"/>
            </front>
            <seriesInfo name="STD" value="13"/>
            <seriesInfo name="RFC" value="1034"/>
            <format type="TXT" octets="129180" target="http://www.rfc-editor.org/rfc/rfc1034.txt"/>
            <annotation>
              Mockapetris, P., "Domain names - implementation and
              specification", STD 13, RFC 1035, November 1987.
            </annotation>
            
          </reference>
 
            &RFC1035;
            &RFC2119;
          &RFC2181;
            &RFC4033;
          &RFC4034;
          &RFC4035;
          &RFC5226;
          &RFC5234;
            &RFC5280;            
            &RFC5070;
          &RFC5155;
            &RFC6195;
          &RFC6546;
          <reference anchor="DANE">
            <front>
              <title>draft-ietf-dane-protocol-23: Replace with reference to RFC before issue.</title>
              <author>
                <organization>
                  P. Hoffman., J. Schlyter
                  </organization>
              </author>
              <date year="2012"/>
            </front>
          </reference>
          <reference anchor="X.509">
                <front>
                    <title>
                        ITU-T Recommendation X.509 (11/2008): Information
                        technology - Open systems interconnection - The
                        Directory: Public-key and attribute certificate
                        frameworks
                    </title>
                    <author>
                        <organization>
                            International Telecommunication Union
                        </organization>
                    </author>
                    <date month="November" year="2008"/>
                </front>
                <seriesInfo name="ITU-T Recommendation" value="X.509"/>
                <format type="HTML" target="http://www.itu.int/itu-t/recommendations/rec.aspx?rec=X.509"/>
            </reference>


        </references>
        <references title="Informative  References">
            &RFC3647;
          <reference anchor="HB2011">
            <front>
              <title>
                DNS Certification Authority Authorization (CAA) Resource Record
              </title>
              <author initials="P" surname="Hallam-Baker" fullname="Phillip Hallam-Baker">
                <organization/>
              </author>
              <author initials="R" surname="Stradling" fullname="Rob Stradling">
                <organization/>
              </author>
              <author initials="B" surname="Laurie" fullname="Ben Laurie">
                <organization/>
              </author>
              <date month="May" day="10" year="2011"/>
              <abstract>
                <t>
                  The Certification Authority Authorization (CAA) DNS Resource Record allows a DNS domain name holder to specify the certificate signing certificate(s) 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.
                </t>
              </abstract>
            </front>
            <seriesInfo name="Internet-Draft" value="draft-hallambaker-donotissue-04"/>
            <format type="TXT" target="http://www.ietf.org/internet-drafts/draft-hallambaker-donotissue-04.txt"/>
          </reference>
        </references> 

    </back>
</rfc>
