[Docs] [txt|pdf|xml|html] [Tracker] [WG] [Email] [Diff1] [Diff2] [Nits]

Versions: (draft-hallambaker-donotissue) 00 01 02 03 04 05 06 07 08 09 10 11 RFC 6844

Internet Engineering Task Force                          P. Hallam-Baker
Internet-Draft                                         Comodo Group Inc.
Intended status: Standards Track                            R. Stradling
Expires: March 10, 2012                                   Comodo CA Ltd.
                                                               B. Laurie
                                                             Google Inc.
                                                            Sept 7, 2011


    DNS Certification Authority Authorization (CAA) Resource Record
                         draft-ietf-pkix-caa-02

Abstract

   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.

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on March 10, 2012.

Copyright Notice

   Copyright (c) 2011 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect



Hallam-Baker, et al.     Expires March 10, 2012                 [Page 1]

Internet-Draft    Certification Authority Authorization        Sept 2011


   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.


Table of Contents

   1.  Definitions  . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1.  Requirements Language  . . . . . . . . . . . . . . . . . .  3
     1.2.  Defined Terms  . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
     2.1.  The CAA RR type  . . . . . . . . . . . . . . . . . . . . .  5
   3.  Certification Authority Processing . . . . . . . . . . . . . .  6
     3.1.  Canonical Domain Name  . . . . . . . . . . . . . . . . . .  7
     3.2.  Use of DNS Security  . . . . . . . . . . . . . . . . . . .  7
     3.3.  Archive  . . . . . . . . . . . . . . . . . . . . . . . . .  7
   4.  Mechanism  . . . . . . . . . . . . . . . . . . . . . . . . . .  7
     4.1.  Syntax . . . . . . . . . . . . . . . . . . . . . . . . . .  7
       4.1.1.  Canonical Presentation Format  . . . . . . . . . . . .  9
     4.2.  CAA issue Property . . . . . . . . . . . . . . . . . . . .  9
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . .  9
     5.1.  Mis-Issue by Authorized Certification Authority  . . . . . 10
     5.2.  Suppression or spoofing of CAA records . . . . . . . . . . 10
       5.2.1.  Applications . . . . . . . . . . . . . . . . . . . . . 10
       5.2.2.  Certification Authorities  . . . . . . . . . . . . . . 10
     5.3.  Denial of Service  . . . . . . . . . . . . . . . . . . . . 11
     5.4.  Abuse of the Critical Flag . . . . . . . . . . . . . . . . 11
   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 11
     6.1.  Registration of the CAA Resource Record Type . . . . . . . 11
     6.2.  Certification Authority Authorization Properties . . . . . 11
   7.  Normative References . . . . . . . . . . . . . . . . . . . . . 12
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 12


















Hallam-Baker, et al.     Expires March 10, 2012                 [Page 2]

Internet-Draft    Certification Authority Authorization        Sept 2011


1.  Definitions

1.1.  Requirements Language

   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 RFC 2119 [RFC2119].

1.2.  Defined Terms

   The following terms are used in this document:

   Authorization Entry  An authorization assertion that grants or denies
      a specific set of permissions to a specific group of entities.

   Canonical Domain Name  A Domain Name that is not an alias.

   Canonical Domain Name Value  The value of a Canonical Domain Name.
      The value resulting from applying alias transformations to a
      Domain Name that is not canonical.

   Certificate  An X.509 Certificate, as specified in RFC 5280
      [RFC5280].

   Certification Policy (CP)  Specifies the criteria that a
      Certification Authority undertakes to meet in its issue of
      certificates.

   Certification Practices Statement (CPS)  Specifies the means by which
      the criteria of the Certification Policy are met.  In most cases
      this will be the document against which the operations of the
      Certification Authority are audited.

   Certification Authority (CA)  An entity that issues Certificates in
      accordance with a specified Certification Policy.

   Domain  The set of resources associated with a DNS Domain Name.

   Domain Name  A DNS Domain name as specified in RFC 1035 [RFC1035] and
      revisions.

   Domain Name System (DNS)  The Internet naming system specified in RFC
      1035 [RFC1035] and revisions.

   DNS Security (DNSSEC)  Extensions to the DNS that provide
      authentication services as specified in RFC 4033 [RFC4033] and
      revisions.




Hallam-Baker, et al.     Expires March 10, 2012                 [Page 3]

Internet-Draft    Certification Authority Authorization        Sept 2011


   Extended Issuer Authorization Set  The most specific Issuer
      Authorization Set that is active for a domain.  This is either the
      Issuer Authorization Set for the domain itself, or if that is
      empty, the Issuer Authorization Set for the corresponding Public
      Delegation Point.

   Issuer Authorization Set  The set of Authorization Entries for a
      domain name that are flagged for use by Issuers.  Analogous to an
      Access Control List but with no ordering specified.

   Public Delegation Point  A Domain Name that is obtained from a public
      DNS registry.

   Public Key Infrastructure X.509 (PKIX)  Standards and specifications
      issued by the IETF that apply the X.509 [X.509] certificate
      standards specified by the ITU to Internet applications as
      specified in RFC 5280 [RFC5280] and related documents.

   Resource Record (RR)  A set of attributes bound to a Domain Name.

   Relying Party  A party that makes use of an application whose
      operation depends on use of a Certificate for making a security
      decision.

   Relying Application  An application whose operation depends on use of
      a Certificate for making a security decision.


2.  Introduction

   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.

   Conformance with a published CAA record is a necessary but not
   sufficient condition for issue 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 Statement.  In the
   case of a public CA that validates certificate requests as a third
   party, the certificate will be typically issued under a public root
   certificate embedded in one or more relevant Relying Applications.

   Criteria for inclusion of embedded root certificates in applications
   are outside the scope of this document but typically require the CA
   to publish a Certificate Practices Statement (CPS) that specifies how



Hallam-Baker, et al.     Expires March 10, 2012                 [Page 4]

Internet-Draft    Certification Authority Authorization        Sept 2011


   the requirements of the Certificate Policy (CP) are achieved and
   provide an annual audit statement of their performance against their
   CPS performed by an independent third party auditor.

   It is the intention of the authors to propose the CAA record defined
   in this document as the basis for CA validation requirements to be
   proposed in organizations that publish validation requirements.

   CAA records only describe the current state of Certification
   Authority certificate issue authority.  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 it was issued.  Thus Relying Applications MUST NOT use failure
   to conform to currently published CAA records specifying issue
   authorization as a certificate validity criteria.

2.1.  The CAA RR type

   A CAA RR publishes a CAA property entry that corresponds to the
   specified domain name.  Multiple property entries MAY be associated
   with the same domain name by publishing multiple CAA RRs at that
   domain name.  Each property entry MAY be tagged with one or more of
   the following flag values:

   Critical  If set, indicates that the corresponding property entry tag
      MUST be understood if the semantics of the CAA record are to be
      correctly understood by the specified audience.

      Issuers MUST NOT issue certificates for a domain if the Extended
      Issuer Authorization Set contains unknown property entry tags that
      have both the Issuer and Critical bits set.

   Issuer  Specifies that the corresponding Property Entry is to be used
      by Issuers and forms part of the Issuer Authorization Set for the
      domain.

   The following properties are defined:

   issue <Domain Name> [; <tag=value> ]*  The policy property entry
      declares an authorization entry granting authorization to issue
      under the specified Certificate Policy to the holder of the
      specified domain.

   The following example informs CAs that certificates must not be
   issued except by the holder of the domain name 'ca.example.net' or an
   authorized agent thereof.  Since the policy is published at the
   Public Delegation Point, the policy applies to all subordinate



Hallam-Baker, et al.     Expires March 10, 2012                 [Page 5]

Internet-Draft    Certification Authority Authorization        Sept 2011


   domains under example.com.

   $ORIGIN example.com
   .       CAA 1 issue "ca.example.net"

   A certificate issuer MAY specify additional parameters that allow
   customers to specify additional parameters governing certificate
   issue.  For example, the Certification Policy under which the
   certificate is to be issued or the authentication process to be used.

   $ORIGIN example.com
   .       CAA 1 issue "ca.example.net; account=230123"

   The syntax and semantics of such parameters is left to site policy
   and is outside the scope of this document.

   Future versions of this specification MAY use the critical flag to
   introduce new semantics that MUST be understood for correct
   processing of the record, preventing Certification Authorities that
   do not recognize the record from issuing certificates.

   In the following example, the property 'tbs' is flagged as critical.
   The example.net CA is not authorized to issue under either policy
   unless the processing rules for the 'tbs' property tag are
   understood.

   $ORIGIN example.com
   .       CAA 1 issue "ca.example.net; policy=ev"
   .       CAA 129 tbs "Unknown"

   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 issue of the certificate and
   verification by a relying party.


3.  Certification Authority Processing

   Before issue of a certificate, a compliant CA MUST check for
   publication of a relevant CAA Resource Record(s) and if such
   record(s) are published, that the certificate requested is consistent
   with them.  If the certificate requested is not consistent with the
   relevant CAA RRs, the CA MUST NOT issue the certificate.

   The Issuer Authorization Set for a domain name consists of the set of
   all CAA Authorization Entries declared for the canonical form of the
   specified domain.



Hallam-Baker, et al.     Expires March 10, 2012                 [Page 6]

Internet-Draft    Certification Authority Authorization        Sept 2011


   The Extended Issuer Authorization Set for a domain name consists of
   the Issuer Authorization Set for that domain name if it is non-empty.
   Otherwise the Extended Issuer Authorization Set for a domain name
   consists of the Issuer Authorization Set for the corresponding Public
   Delegation Point for that domain name.

   If the Extended Issuer Authorization Set for a domain name is not
   empty, a Certification Authority MUST NOT issue a certificate unless
   it conforms to at least one authorization entry in the Extended
   Issuer Authorization Set.

3.1.  Canonical Domain Name

   The DNS defines the CNAME and DNAME mechanisms for specifying domain
   name aliases.  The canonical name of a DNS name is the name that
   results from performing all DNS alias operations.

   A Certification Authority MUST perform CNAME and DNAME processing as
   defined in the DNS specifications 1035 [RFC1035] to resolve CAA
   records.

3.2.  Use of DNS Security

   Use of DNSSEC to authenticate CAA RRs is strongly recommended but not
   required.  A CA MUST NOT issue certificates if doing so would
   conflict with the corresponding extended issuer authorization set
   whether the corresponding DNS records are signed or not.

   Use of DNSSEC allows a CA to acquire and archive a non-repudiable
   proof that they were authorized to issue certificates for the domain.

3.3.  Archive

   A compliant CA SHOULD maintain an archive of the DNS transactions
   used to verify CAA eligibility.

   In particular a CA SHOULD ensure that where DNSSEC data is available
   that the corresponding signature and NSEC/NSEC3 records are preserved
   so as to enable later compliance audits.


4.  Mechanism

4.1.  Syntax

   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.



Hallam-Baker, et al.     Expires March 10, 2012                 [Page 7]

Internet-Draft    Certification Authority Authorization        Sept 2011


   A domain name MAY have multiple CAA RRs associated with it and a
   given property MAY be specified more than once.

   The CAA data field contains one property entry.  A property entry
   consists of the following data fields:

   +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  |
   +----------------+----------------+...+---------------+
   +----------------+----------------+.....+---------------+
   | Data byte 0    | Data byte 1    |.....| Data byte m-1 |
   +----------------+----------------+.....+---------------+

   Where n is the length specified in the tag length field and m is the
   remaining octets in the data field (m = d - n - 2) where d is the
   length of the data section.

   The data fields are defined as follows:

   Flags  One octet containing the following fields:

      Bit 0: 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.

         A Certification Authority MUST NOT issue certificates for any
         Domain that contains a CAA critical property for an unknown or
         unsupported property type that has the issuer bit set.

      Bit 7: Issuer Use  If set, the property entry contains an
         Authorization Entry that forms part of the Issuer Application
         Authorization Set for the corresponding domain.

      Note that according to the conventions set out in RFC 1035
      [RFC1035] Bit 0 is the Most Significant Bit and Bit 7 is the Least
      Significant.  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.

   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.







Hallam-Baker, et al.     Expires March 10, 2012                 [Page 8]

Internet-Draft    Certification Authority Authorization        Sept 2011


   Tag  The property identifier, a sequence of ASCII characters.

      Tag values MAY contain ASCII characters a through z and the
      numbers 0 through 9.  Tag values MUST NOT contain any other
      characters.  Matching of tag values is case insensitive.

   Value  A sequence of octets representing the property value.
      Property values are encoded as binary values and MAY employ sub-
      formats.

      The length of the value field is specified implicitly as the
      remaining length of the enclosing Resource Record data field.

4.1.1.  Canonical Presentation Format

   The canonical presentation format of the CAA record is as follows:

   CAA <flags> <tag> <data>

   Where:

   flags  Is an unsigned integer between 0 and 15.

   tag  Is a non-zero sequence of ASCII letter and numbers in lower
      case.

   data  Is the ascii text Encoding of the value field

4.2.  CAA issue Property

   [TBS]


5.  Security Considerations

   CAA Records provide an accountability control.  They are intended to
   deter rather than prevent undesired behavior.

   While a Certification Authority can choose to ignore published CAA
   records, doing so increases the both the probability that they will
   mis-issue a certificate and the consequences of doing so.  Once it is
   known that a CA observes CAA records, malicious registration requests
   will disproportionately target the negligent CAs that do not, and so
   the mis-issue rate amongst the negligent CAs will increase.  Since
   the CA could clearly have avoided the mis-issue by performing CAA
   processing, the likelihood of sanctions against the negligent CA is
   increased.  Failure to observe CAA issue restrictions provides an
   objective criteria for excluding issuers from embedded roots of



Hallam-Baker, et al.     Expires March 10, 2012                 [Page 9]

Internet-Draft    Certification Authority Authorization        Sept 2011


   trust.

   In contrast, a Certification Authority that processes CAA records
   correctly can reasonably claim that any residual mis-issue event
   could have been avoided had the Domain Name holder published
   appropriate CAA records.

5.1.  Mis-Issue by Authorized Certification Authority

   Use of CAA records does not provide protection against mis-issue by
   an authorized Certification Authority.

   Domain name holders SHOULD ensure that the CAs they authorize to
   issue certificates for their domains employ appropriate controls to
   ensure that certificates are only issued to authorized parties within
   their organization.

   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.

5.2.  Suppression or spoofing of CAA records

   Suppression of the CAA record or insertion of a bogus CAA record
   could enable an attacker to obtain a certificate from a CA that was
   not authorized to issue for that domain name.

5.2.1.  Applications

   Applications performing CAA checking SHOULD mitigate the risk of
   suppresion or spoofing of CAA records by means of DNSSEC validation
   where present.  In cases where DNSSEC validation is not available,
   CAA checking is of limited security value.

5.2.2.  Certification Authorities

   Since a certificate issued by a CA can be valid for several years,
   the consequences of a spoofing or suppression attack are much greater
   for Certification Authorities and so additional countermeasures are
   justified.

   A CA MUST mitigate this risk by employing DNSSEC verification
   whenever possible and rejecting certificate requests in any case
   where it is not possible to verify the non-existence or contents of a
   relevant CAA record.

   In cases where DNSSEC is not deployed in a corresponding domain, a CA
   SHOULD attempt to mitigate this risk by employing appropriate DNS



Hallam-Baker, et al.     Expires March 10, 2012                [Page 10]

Internet-Draft    Certification Authority Authorization        Sept 2011


   security controls.  For example all portions of the DNS lookup
   process SHOULD be performed against the authoritative name server.
   Cached data MUST NOT be relied on but MAY be used to support
   additional anti-spoofing or anti-suppression controls.

5.3.  Denial of Service

   Introduction of a malformed or malicious CAA RR could in theory
   enable a Denial of Service attack.

   This specific threat is not considered to add significantly to the
   risk of running an insecure DNS service.

5.4.  Abuse of the Critical Flag

   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.

   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 is going to
   investigate the cause and report the reason to the customer who was
   deceived.  It is thus unlikely that the attack would succeed and the
   attempt might lay the perpetrator open to civil or criminal
   sanctions.


6.  IANA Considerations

6.1.  Registration of the CAA Resource Record Type

   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 RFC 5395
   [RFC5395] and located at
   http://www.iana.org/assignments/dns-parameters.

             Value and meaning                                Reference
-----------  ---------------------------------------------    ---------
CAA          257 Certification Authority Restriction          [RFC-THIS]

6.2.  Certification Authority Authorization Properties

   IANA has created the Certification Authority Authorization Properties
   registry with the following initial values:




Hallam-Baker, et al.     Expires March 10, 2012                [Page 11]

Internet-Draft    Certification Authority Authorization        Sept 2011


             Meaning                                          Reference
-----------  -----------------------------------------------  ---------
issue        Authorization Entry by Domain                    [RFC-THIS]
auth         Reserved
path         Reserved
policy       Reserved

   Addition of tag identifiers requires a public specification and
   expert review as set out in RFC5395 [RFC5395]


7.  Normative References

   [RFC1035]  Mockapetris, P., "Domain names - implementation and
              specification", STD 13, RFC 1035, November 1987.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC4033]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "DNS Security Introduction and Requirements",
              RFC 4033, March 2005.

   [RFC4055]  Schaad, J., Kaliski, B., and R. Housley, "Additional
              Algorithms and Identifiers for RSA Cryptography for use in
              the Internet X.509 Public Key Infrastructure Certificate
              and Certificate Revocation List (CRL) Profile", RFC 4055,
              June 2005.

   [RFC5280]  Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
              Housley, R., and W. Polk, "Internet X.509 Public Key
              Infrastructure Certificate and Certificate Revocation List
              (CRL) Profile", RFC 5280, May 2008.

   [RFC5395]  Eastlake, D., "Domain Name System (DNS) IANA
              Considerations", RFC 5395, November 2008.

   [X.509]    International Telecommunication Union, "ITU-T
              Recommendation X.509 (11/2008): Information technology -
              Open systems interconnection - The Directory: Public-key
              and attribute certificate frameworks", ITU-T
              Recommendation X.509, November 2008.









Hallam-Baker, et al.     Expires March 10, 2012                [Page 12]

Internet-Draft    Certification Authority Authorization        Sept 2011


Authors' Addresses

   Phillip Hallam-Baker
   Comodo Group Inc.

   Email: philliph@comodo.com


   Rob Stradling
   Comodo CA Ltd.

   Email: rob.stradling@comodo.com


   Ben Laurie
   Google Inc.

   Email: benl@google.com

































Hallam-Baker, et al.     Expires March 10, 2012                [Page 13]


Html markup produced by rfcmarkup 1.109, available from https://tools.ietf.org/tools/rfcmarkup/