Public Key Pinning Extension for HTTP
RFC 7469
Internet Engineering Task Force (IETF) C. Evans
Request for Comments: 7469 C. Palmer
Category: Standards Track R. Sleevi
ISSN: 2070-1721 Google, Inc.
April 2015
Public Key Pinning Extension for HTTP
Abstract
This document defines a new HTTP header that allows web host
operators to instruct user agents to remember ("pin") the hosts'
cryptographic identities over a period of time. During that time,
user agents (UAs) will require that the host presents a certificate
chain including at least one Subject Public Key Info structure whose
fingerprint matches one of the pinned fingerprints for that host. By
effectively reducing the number of trusted authorities who can
authenticate the domain during the lifetime of the pin, pinning may
reduce the incidence of man-in-the-middle attacks due to compromised
Certification Authorities.
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 5741.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc7469.
Evans, et al. Standards Track [Page 1]
RFC 7469 Public Key Pinning Extension for HTTP April 2015
Copyright Notice
Copyright (c) 2015 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
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.
Evans, et al. Standards Track [Page 2]
RFC 7469 Public Key Pinning Extension for HTTP April 2015
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 5
2. Server and Client Behavior . . . . . . . . . . . . . . . . . 5
2.1. Response Header Field Syntax . . . . . . . . . . . . . . 5
2.1.1. The Pin Directive . . . . . . . . . . . . . . . . . . 6
2.1.2. The max-age Directive . . . . . . . . . . . . . . . . 7
2.1.3. The includeSubDomains Directive . . . . . . . . . . . 7
2.1.4. The report-uri Directive . . . . . . . . . . . . . . 7
2.1.5. Examples . . . . . . . . . . . . . . . . . . . . . . 8
2.2. Server Processing Model . . . . . . . . . . . . . . . . . 9
2.2.1. HTTP-over-Secure-Transport Request Type . . . . . . . 9
2.2.2. HTTP Request Type . . . . . . . . . . . . . . . . . . 9
2.3. User Agent Processing Model . . . . . . . . . . . . . . . 10
2.3.1. Public-Key-Pins Response Header Field Processing . . 10
2.3.2. Interaction of Public-Key-Pins and Public-Key-Pins-
Report-Only . . . . . . . . . . . . . . . . . . . . . 11
2.3.3. Noting a Pinned Host - Storage Model . . . . . . . . 11
2.3.4. HTTP-Equiv <Meta> Element Attribute . . . . . . . . . 13
2.4. Semantics of Pins . . . . . . . . . . . . . . . . . . . . 13
2.5. Noting Pins . . . . . . . . . . . . . . . . . . . . . . . 14
2.6. Validating Pinned Connections . . . . . . . . . . . . . . 15
2.7. Interactions with Preloaded Pin Lists . . . . . . . . . . 16
2.8. Pinning Self-Signed End Entities . . . . . . . . . . . . 16
3. Reporting Pin Validation Failure . . . . . . . . . . . . . . 16
4. Security Considerations . . . . . . . . . . . . . . . . . . . 19
4.1. Maximum max-age . . . . . . . . . . . . . . . . . . . . . 19
4.2. Using includeSubDomains Safely . . . . . . . . . . . . . 20
4.3. Backup Pins . . . . . . . . . . . . . . . . . . . . . . . 21
4.4. Interactions With Cookie Scoping . . . . . . . . . . . . 21
4.5. Hostile Pinning . . . . . . . . . . . . . . . . . . . . . 21
5. Privacy Considerations . . . . . . . . . . . . . . . . . . . 22
Show full document text