idnits 2.17.1 draft-hallambaker-webseccaa-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (April 8, 2015) is 3299 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'RFC2119' is mentioned on line 77, but not defined == Missing Reference: 'This' is mentioned on line 219, but not defined ** Obsolete normative reference: RFC 6844 (Obsoleted by RFC 8659) Summary: 1 error (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Internet Engineering Task Force (IETF) Phillip Hallam-Baker 2 INTERNET-DRAFT Comodo Group Inc. 3 Intended Status: Standards Track April 8, 2015 4 Expires: October 10, 2015 6 Title 7 draft-hallambaker-webseccaa-00 9 Abstract 11 DNS Publication of HTTP Strict Security and Key Pinning Declarations 13 Status of This Memo 15 This Internet-Draft is submitted in full conformance with the 16 provisions of BCP 78 and BCP 79. 18 Internet-Drafts are working documents of the Internet Engineering 19 Task Force (IETF). Note that other groups may also distribute 20 working documents as Internet-Drafts. The list of current Internet- 21 Drafts is at http://datatracker.ietf.org/drafts/current/. 23 Internet-Drafts are draft documents valid for a maximum of six months 24 and may be updated, replaced, or obsoleted by other documents at any 25 time. It is inappropriate to use Internet-Drafts as reference 26 material or to cite them other than as "work in progress." 28 Copyright Notice 30 Copyright (c) 2015 IETF Trust and the persons identified as the 31 document authors. All rights reserved. 33 This document is subject to BCP 78 and the IETF Trust's Legal 34 Provisions Relating to IETF Documents 35 (http://trustee.ietf.org/license-info) in effect on the date of 36 publication of this document. Please review these documents 37 carefully, as they describe your rights and restrictions with respect 38 to this document. Code Components extracted from this document must 39 include Simplified BSD License text as described in Section 4.e of 40 the Trust Legal Provisions and are provided without warranty as 41 described in the Simplified BSD License. 43 Table of Contents 45 1. Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 46 2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 3 47 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 48 3. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 49 4. Record Format and Interpretation . . . . . . . . . . . . . . . 4 50 4.1. Record Format . . . . . . . . . . . . . . . . . . . . . . 4 51 4.1.1. HSTS . . . . . . . . . . . . . . . . . . . . . . . . 4 52 4.1.2. HPKP . . . . . . . . . . . . . . . . . . . . . . . . 4 53 4.2. Interpretation . . . . . . . . . . . . . . . . . . . . . 5 54 5. Security Considerations . . . . . . . . . . . . . . . . . . . 5 55 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 56 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 6 57 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 58 8.1. Normative References . . . . . . . . . . . . . . . . . . 6 59 8.2. Informative References . . . . . . . . . . . . . . . . . 6 60 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 6 62 1. Abstract 64 HTTP Strict Transport Security (HSTS) and Public Key Pinning (HPKP) 65 define security policies that provide Secure After First Use security 66 when published through HTTP over TLS. This specification defines a 67 mechanism allowing HSTS and HPKP assertions to be published using DNS 68 CAA records to support Secure On First Use mechanisms. 70 2. Definitions 72 2.1. Requirements Language 74 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 75 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 76 document are to be interpreted as described in RFC 2119 [RFC2119]. 78 3. Introduction 80 HTTP Strict Transport Security (HSTS) [RFC6797] defines a mechanism 81 enabling web sites to declare themselves accessible only via secure 82 connections and/or for users to be able to direct their user agent(s) 83 to interact with given sites only over secure connections. An HTTP 84 host declares itself an HSTS Host by issuing to UAs an HSTS Policy, 85 which is represented by and conveyed via the Strict-Transport- 86 Security HTTP response header field over secure transport (e.g., 87 TLS). 89 While signaling the security configuration of the HTTP server in-band 90 affords considerable deployment advantages, the security policy 91 enforcement is of the ?Secure After First Contact? type. Conveying 92 HSTS policy declarations inband does not and cannot provide security 93 on first contact. 95 One response to this limitation is the use of ?pre-loaded list? 96 registries as described in [RFC6797] section 14.6. Such lists are 97 frequently employed by HTTP clients supporting the HTTP Strict 98 Security mechanism. 100 The Certificate Authority Authorization record (CAA) [RFC6844] 101 provides an extensible mechanism for publishing assertions that 102 relate to the issue and use of PKIX certificates. This document 103 defines CAA tags for HTTP Strict Security (HSTS) and Public Key 104 Pinning (HPKP). 106 Unlike TLSA record specified by DANE [RFC6698], the syntax and 107 intended semantics of a HSTS or HPKP record are identical to the 108 corresponding HTTP headers. This affords considerable convenience in 109 provisioning as all that is necessary is to forward data from the 110 HTTP headers to the DNS service, a task which may be performed with 111 little or no code. 113 4. Record Format and Interpretation 115 The CAA record is an extensible DNS Resource Record defined for the 116 purpose of making assertions about CA issued PKIX keys in the DNS. 118 Although the intended semantics are identical, the context is not. In 119 particular, a CAA record is presented through the DNS rather than in- 120 band within the TLS protocol. While a CAA record MAY be authenticated 121 by a valid DNSSEC signature, such a signature only establishes that 122 the record is authoritative, it does not provide evidence of the 123 state of the TLS server to which the record refers. 125 The consequences of the difference in semantics are discussed in the 126 security considerations section. 128 4.1. Record Format 130 The CAA record has four fields: 132 * A flags field, permitting a criticality bit to be set. 134 * A tag length field specifying the length of the following 135 tag value 137 * An attribute tag. Reserved tag values are specified in the 138 IANA "Certification Authority Restriction Properties" 139 registry. 141 * A data block specifying the value. 143 4.1.1. HSTS 145 To publish a HTTP Strict Security declaration as a CAA record, the 146 following parameters are used: 148 * Flags = 0 150 * Tag Length = 4 152 * Tag = 'hsts' 154 * Value = The HTTP Strict Security policy declaration as 155 specified in [RFC6797]. 157 4.1.2. HPKP 159 To publish a Public Key Pinning declaration as a CAA record, the 160 following parameters are used: 162 * Flags = 0 163 * Tag Length = 4 165 * Tag = 'hpkp' 167 * Value = The Public Key Pinning policy declaration as 168 specified in [I-D.ietf-websec-key-pinning]. 170 4.2. Interpretation 172 A CAA record with a hsts or hpkp tag is an assertion that HTTPS 173 queries to the specified domain will return the data specified in the 174 Value section as a HTTP Strict-Transport-Security header or Public 175 Key Pinning header. 177 While the semantics of data presented through a CAA record are 178 identical to the presentation of the same record through a HTTP 179 header by a Web server operating on port 443 of the same domain, the 180 context in which the record is presented are different. In 181 particular, DNS records have an explicit expiry time while HTTP 182 transactions do not. 184 5. Security Considerations 186 HSTS and HPKP are security policy mechanisms that attempt to set a 187 minimum level of security. Providing additional channels through 188 which security policy can be published does not introduce new 189 security vulnerabilities affecting confidentiality or integrity but 190 does create new opportunities for denial of service. In particular, 191 self-inflicted denial of service attacks. 193 As noted previously, CAA records provide an out-of-band mechanism for 194 publication of HSTS and HPKP. Since the records are not presented by 195 the 197 CAA records with the hsts or hpkp tag MUST NOT be cached for longer 198 than the DNS expiry interval. 200 When used to compile pre-loaded lists, hsts and hpkp declarations 201 published by CAA records SHOULD be validated by an attempt to 202 establish a HTTP connection over TLs if possible and verifying that 203 the HTTP headers presented in the response are consistent. If this is 204 not possible (e.g. the Web site is not publicly visible), the list 205 compiler SHOULD re-verify the published CAA records on a regular 206 basis. 208 6. IANA Considerations 210 On publication, IANA should add the following entries to the 211 "Certification Authority Restriction Properties" registry: 213 Tag Meaning Reference 215 ----------- -------------------------------------- --------- 217 hsts Strict-Transport-Security [This] 219 hpkp Public-Key-Pins [This] 221 issue Authorization Entry by Domain [RFC6844] 223 7. Acknowledgements 225 TBS 227 8. References 229 8.1. Normative References 231 [RFC6797] Hodges, J.,Jackson, C.,Barth, A., "HTTP Strict Transport 232 Security (HSTS)", RFC 6797, November 2012. 234 [RFC6844] Hallam-Baker, P.,Stradling, R., "DNS Certification 235 Authority Authorization (CAA) Resource Record", RFC 6844, 236 January 2013. 238 [I-D.ietf-websec-key-pinning] Evans, C,Palmer, C,Sleevi, R, "Public 239 Key Pinning Extension for HTTP", Internet-Draft draft- 240 ietf-websec-key-pinning-21, 5 October 2014. 242 8.2. Informative References 244 [RFC6698] Hoffman, P.,Schlyter, J., "The DNS-Based Authentication of 245 Named Entities (DANE) Transport Layer Security (TLS) 246 Protocol: TLSA", RFC 6698, August 2012. 248 Author's Address 250 Phillip Hallam-Baker 251 Comodo Group Inc. 253 philliph@comodo.com