Re: [websec] Public-Key-Pins-Report-Only

Chris Palmer <palmer@google.com> Fri, 04 April 2014 20:58 UTC

Return-Path: <palmer@google.com>
X-Original-To: websec@ietfa.amsl.com
Delivered-To: websec@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 75E211A00B4 for <websec@ietfa.amsl.com>; Fri, 4 Apr 2014 13:58:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.389
X-Spam-Level:
X-Spam-Status: No, score=-1.389 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NerAWcSQCSB4 for <websec@ietfa.amsl.com>; Fri, 4 Apr 2014 13:58:35 -0700 (PDT)
Received: from mail-ie0-x233.google.com (mail-ie0-x233.google.com [IPv6:2607:f8b0:4001:c03::233]) by ietfa.amsl.com (Postfix) with ESMTP id 092191A00CA for <websec@ietf.org>; Fri, 4 Apr 2014 13:58:34 -0700 (PDT)
Received: by mail-ie0-f179.google.com with SMTP id lx4so3953566iec.10 for <websec@ietf.org>; Fri, 04 Apr 2014 13:58:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=bDibj/ffzufxytKFYbHtdPpfu0v0AIkalGjrGfVk6u8=; b=emmBYP9iPsj87Io5fb+k50d/YUc0U6hO3s/g5SY3qvlQYbdkKaLXT1iYyzI2JRKNU3 xHTfT40wG0vubD8burAmltEoghntsOaVZVA6nLfyA8f7hR2pAvsgvEMA5IuBdISpfYOy NtMksOT//lw2HAnvUbF5rwiZ2WakndQrYgpWRoqLwjviRnIXZ4vR9zziNi2kWC+vALY/ s41Aw9dx2Vp2mtFBn3ikfIgEhqYfCGk+1hmCXDocXkiE6bVNCYIRgmsCDGiiXoDpSF8a USBNaTXOabjVpq/Te0Jk4Fj+fAhrS49Q2on1U7lzwYsm3lcPgOFqLOtGBAygUm+7OkmC J2vQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=bDibj/ffzufxytKFYbHtdPpfu0v0AIkalGjrGfVk6u8=; b=LEBjQO1X9xZNOf5IBHQ0EbylvP23D8zREyANmSybgqWlBksdoii0vSI68Bc/FcrV2o UYthqNAjB+1UjG8Q4v6ZQ/OxPCXieuwmdF/M75DQwCzp1+PMhyPwO09AkLzkg0FqwHWT wFv8f5ZtDOue9+Vz+NNbDb67hrPkhm80XZOabjG6BVmYMh9niK1Dql9745sae0BARvgS kPFikVQJUvafYilyJY4pHImR2RxPFrqK+InKnoGcRem+jXPHarod2WGS4A5UFlckzfnZ JSBvBmsijdgmoHWYVshHX/ZLcY27/qEptRSKejFTNX2JSpL1348jhhYFl13Eo8twkhwA 2OZg==
X-Gm-Message-State: ALoCoQlnBemd4QVjtQMGk/7G7o3GDTwcvbYG6h6F9cXl1b2efZAAfVuvHRm8OyBZrY+1vgR5I6cVMV5Pmz9Ta5vvdWkX3Kzxw0S+wHHAmd1gWVZrYmybkdCWsZN315qfkOO5ATMzD+QkBO+nhNtXiPXpR9pLtqdVNuAXLmb2zh1QmtQOw6X9xmpH6j1mTErjVLtVWONy7ruX
MIME-Version: 1.0
X-Received: by 10.50.136.168 with SMTP id qb8mr5712433igb.13.1396645110185; Fri, 04 Apr 2014 13:58:30 -0700 (PDT)
Received: by 10.64.165.2 with HTTP; Fri, 4 Apr 2014 13:58:30 -0700 (PDT)
In-Reply-To: <CAGZ8ZG1VNHVWx2xbW_CGJvNBMmrw7vGZ5uLxCo4Si9ZPv-7ihg@mail.gmail.com>
References: <CAGZ8ZG1VNHVWx2xbW_CGJvNBMmrw7vGZ5uLxCo4Si9ZPv-7ihg@mail.gmail.com>
Date: Fri, 04 Apr 2014 13:58:30 -0700
Message-ID: <CAOuvq23ON+n10Ow1k+ikpqFwt1NMeBTV8oFtvDaBtQPPcA_rcQ@mail.gmail.com>
From: Chris Palmer <palmer@google.com>
To: Trevor Perrin <trevp@trevp.net>
Content-Type: text/plain; charset="UTF-8"
Archived-At: http://mailarchive.ietf.org/arch/msg/websec/IS25l_iMgwPWD8TTdnrLPY8nwxg
Cc: IETF WebSec WG <websec@ietf.org>
Subject: Re: [websec] Public-Key-Pins-Report-Only
X-BeenThere: websec@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Web Application Security Minus Authentication and Transport <websec.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/websec>, <mailto:websec-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/websec/>
List-Post: <mailto:websec@ietf.org>
List-Help: <mailto:websec-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/websec>, <mailto:websec-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 04 Apr 2014 20:58:39 -0000

On Fri, Feb 21, 2014 at 12:24 AM, Trevor Perrin <trevp@trevp.net> wrote:

> How should HPKP's Public-Key-Pins-Report-Only header work?
>
> Does it only apply a check to the current TLS connection, or is the UA
> is expected to remember the pins and apply them to future connections?
>
> If the UA is expected to remember them, how do "Report-Only" pins
> interact with regular pins?  Do they override each other or are
> Report-Only pins tracked separately, so that a browser might have a
> Report-Only pin and a "regular" pin for the same site?

Good question, thanks. I've tried to answer it in the latest rev of
the draft (https://code.google.com/p/key-pinning-draft/):

=====

<t>When used in the Public-Key-Pins-Report-Only header, the UA SHOULD POST
reports for Pin Validation failures to the indicated report-uri, although
the UA MUST NOT enforce Pin Validation. That is, in the event of Pin
Validation failure when the host has set the Public-Key-Pins-Report-Only
header, the UA performs Pin Validation only to check whether or not it
should POST a report, but not for causing connection failure.</t>

<t>If a Host sets the Public-Key-Pins-Report-Only header, the UA SHOULD note
the Pins and directives given in the Public-Key-Pins-Report-Only header. If
the UA does note the Pins and directives in the Public-Key-Pins-Report-Only
header it SHOULD evaluate the specified policy and SHOULD report any
would-be Pin Validation failures that would occur if the report-only policy
were enforced.</t>

<t>If a Host sets both the Public-Key-Pins header and the
Public-Key-Pins-Report-Only header, the UA MUST note and enforce Pin
Validation as specified by the Public-Key-Pins header, and SHOULD note the
Pins and directives given in the Public-Key-Pins-Report-Only header. If the
UA does note the Pins and directives in the Public-Key-Pins-Report-Only
header it SHOULD evaluate the specified policy and SHOULD report any
would-be Pin Validation failures that would occur if the report-only policy
were enforced.</t>

<t>When used in the Public-Key-Pins header, the presence of a report-uri
directive indicates to the UA that in the event of Pin Validation failure it
SHOULD POST a report to the report-uri, in addition to terminating the
connection (as described in <xref
target="validating-pinned-connections"/>).</t>

=====

Does that clarify?