On Fri, Oct 19, 2012 at 7:29 AM, Tom Ritter <t...@ritter.vg> wrote:

>>>>>
> The UA MUST observe these conditions when noting a host:
>
>    o  The UA MUST note the pins if and only if it received the
>       Public-Key-Pins response header field over an error-free TLS
>       connection. If the host is a Pinned Host, this includes the
>       validation added in Section 2.4
>
>    o  The UA MUST note the pins if and only if the TLS connection was
>       authenticated with a certificate chain containing at least one of
>       the SPKI structures indicated by at least one of the given
>       fingerprints.  (See Section 2.4.)
>
>    o  The UA MUST note the pins if and only if the given set of pins
>       contains at least one pin that does NOT refer to an SPKI in the
>       certificate chain.  (That is, the host must set a Backup Pin; see
>       Section 3.1.)
>
>    If the Public-Key-Pins response header field does not meet all three
>    of these criteria, the UA MUST NOT note the host as a Pinned Host.
>    A Public-Key-Pins response header field that meets all these critera is
>    known as a Valid Pinning Header.
>
>    The UAs MUST ignore Public-Key-Pins response header fields received on
>    connections that do not meet the first criteria. If the UA recives
>    a Public-Key-Pins header from a Pinned Host that meets the first
>    criteria, but not the following two, the UA MUST discard any previously
>    set Pinning Metadata for that host in its non-volatile store.
> <<<<

Thanks again, Tom. I've adopted this in my copy.

By the way, people can follow my copy here:
https://code.google.com/p/key-pinning-draft

>> (a) simply have the validity time be the same as for HSTS;
>> (b) the same as HSTS but with a 30-day maximum;
>> (c) the current attempt to mirror TACK, except clarified and with examples; 
>> or
>> (d) something else.
>>
>> Of these, I think I currently like (b) best. Thoughts?
>
> I think A.  I believe (without evidence) there are institutions that
> would eventually like to use this that have customers that work with
> them on a quarterly or annual basis.  Likewise, I believe (without
> evidence) that a institution who was risk adverse would mitigate that
> risk by pinning to several large CA roots, not by saying "Oh well our
> customers can't access us for the next 30 days, but it's only 30 days
> who cares - but 60, that would be unacceptable!"

Makes sense. Any other votes?

> I do like TACK's notion of 'growing' out pins but only in a "That
> sounds like a feature we're anticipating people wanting" way.  If
> people actually hold off on deploying this because of that and that
> alone, it SHOULD be possible to add a new directive, ignored by older
> browsers who don't implement it.

Makes sense.

> Public-Key-Pins: max-age=600; grow-to=86400;
> pin-sha1="4n972HfV354KP560yw4uqe/baXc=";
>
> The spec should probably note that directives not understood should be
> ignored, and not invalidate the header, to allow for future expansion.
>  Right?

Yes. In fact Chrome's implementation does do that. I thought I had
specified it in this I-D, but apparently not. I propose this
parapgrah:

<t>For forward compatibility, the UA MUST ignore any unrecognized
Public-Key-Pins header directives, while still processing those
directives
it does recognize. <target xref="header-syntax" /> specifies the two
directives max-age and pins, but future specifications and
implementations
might use additional directives.</t>

at the end of the Noting Pins section.
_______________________________________________
websec mailing list
websec@ietf.org
https://www.ietf.org/mailman/listinfo/websec

Reply via email to