Re: [websec] Consensus call: Issue #57 (max-max-age)

Trevor Perrin <trevp@trevp.net> Sat, 18 May 2013 17:40 UTC

Return-Path: <trevp@trevp.net>
X-Original-To: websec@ietfa.amsl.com
Delivered-To: websec@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6964321F8FF2 for <websec@ietfa.amsl.com>; Sat, 18 May 2013 10:40:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.357
X-Spam-Level: *
X-Spam-Status: No, score=1.357 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FH_RELAY_NODNS=1.451, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_PBL=0.905, RCVD_IN_SORBS_DUL=0.877, RDNS_NONE=0.1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4DpiIox3sJpW for <websec@ietfa.amsl.com>; Sat, 18 May 2013 10:40:44 -0700 (PDT)
Received: from mail-we0-x22b.google.com (mail-we0-x22b.google.com [IPv6:2a00:1450:400c:c03::22b]) by ietfa.amsl.com (Postfix) with ESMTP id DF43521F8FEB for <websec@ietf.org>; Sat, 18 May 2013 10:40:43 -0700 (PDT)
Received: by mail-we0-f171.google.com with SMTP id u55so4049547wes.2 for <websec@ietf.org>; Sat, 18 May 2013 10:40:42 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:x-originating-ip:in-reply-to:references :date:message-id:subject:from:to:cc:content-type:x-gm-message-state; bh=fOH4Xq39TB+Rx3jq2NUd6QQAXfqoUlUntC+8jVk28Ws=; b=PI6fUK9ANFBk7MoDAu0VoeAlz72Yjhi5MdoZcb1rJfSmLy/0WK/ocCh/8NrTnbKpEd XKhdBwfOaHXpDk9bdjybXT7H7z3tF8nibWrEE7sMofq6xjk7Z5+HGj8xiw56ysxguuTD 1rpRH1U61uQwhAOHdmbsbXvnu1bfkmzbT40yldQWdE5L+NssKHSrWDCo8koJXJhbN54t IXc1CaaSJZhPeS+Egl9D255xsIPXq+7Us803wFUvuBJWMn/cB6xuOojpYPMWs5pH8Gch HXWjUc9oq1KcD856uyFLSzHzkWZuxaQRzdOTHhM7e8771T/znnPOkIbpNwvEgP5udS7p f3iA==
MIME-Version: 1.0
X-Received: by 10.194.61.50 with SMTP id m18mr6519512wjr.49.1368898842902; Sat, 18 May 2013 10:40:42 -0700 (PDT)
Received: by 10.217.110.129 with HTTP; Sat, 18 May 2013 10:40:42 -0700 (PDT)
X-Originating-IP: [76.21.8.64]
In-Reply-To: <5194918A.7030300@gondrom.org>
References: <43C5DE99-43EB-42FC-8F61-24F9A9429FD1@checkpoint.com> <CA+cU71=Q_QkHqiQ95AZgw8Bi7U_mgCi4icMypwFUp1C6i=apUA@mail.gmail.com> <518EE510.9060600@it.aoyama.ac.jp> <8450797E-818C-445C-ABD2-1B8F9AE1DBB9@checkpoint.com> <5194918A.7030300@gondrom.org>
Date: Sat, 18 May 2013 10:40:42 -0700
Message-ID: <CAGZ8ZG0SWZD9e-NP2RhQMQ-=F5JUCCytF2NYTdWH7u13hhBqqQ@mail.gmail.com>
From: Trevor Perrin <trevp@trevp.net>
To: Tobias Gondrom <tobias.gondrom@gondrom.org>
Content-Type: multipart/alternative; boundary="047d7b66f8e743e78104dd0199d8"
X-Gm-Message-State: ALoCoQmAW+5go2m5zaWCxb5VeaNoyzT6Nh42AiRJyNep3lA1AnpnIJ9heq/z7a+K/g/DnfUhWVTE
Cc: IETF WebSec WG <websec@ietf.org>
Subject: Re: [websec] Consensus call: Issue #57 (max-max-age)
X-BeenThere: websec@ietf.org
X-Mailman-Version: 2.1.12
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: Sat, 18 May 2013 17:40:48 -0000

Hi Tobias, all,

I think Tobias gives a fair summary of the arguments against a 30-day spec
limit.  Let me summarize the opposing arguments:


On Thu, May 16, 2013 at 12:58 AM, Tobias Gondrom <tobias.gondrom@gondrom.org
> wrote:

>
> as mentioned before: I believe a time limit of 1 month is too short
> considering that some of the high profile use cases (banks, etc.) may
> only have monthly or bi-monthly usage. In which case the key pin would
> regularly expire before people return to the site and the protection is
> null.
>

You're assuming that pin assertions (like HPKP headers) are only processed
by individual browsers.

I hope pin assertions will *also* be processed by web crawlers to create
pin lists which are made available to browsers (via preloaded lists, secure
links, online lookups, etc.)

In that case, having pins last a month (instead of shorter) keeps the
frequency of re-crawling sites and re-downloading pin lists manageable.
 Longer pins wouldn't be a big improvement.



> And regarding some of the concerns of pro-longed malicious bricking by
> an attacker after an attack has been resolved:
> Two scenarios:
> 1. I believe if we have a time limit of more than 1 month we need a
> different mechanism (e.g. user actively flushing the key cache) anyway.
> 2. in the case of high frequency sites (like you mentioned Facebook),
> imagine even a 1 month brick time would already be considered
> unacceptable too long by most users (in fact probably everything above a
> few hours would be considered too long) and trigger user action to flush
> the cache.
>

Agreed that a 30-day limit is not, by itself, sufficient mitigation against
"malicious bricking by an attacker after an attack".  I suspect pinning
will need several additional mechanisms to prevent, limit, and recover from
such attacks.  "Pin activation" is one mechanism I think is particularly
helpful, for this case.

A 30-day spec limit is more important for other reasons:
 1) Domain name transfers (sales, disputes, reclaiming hijacked domains,
etc.)
 2) Preventing long-term lock-in.  E.g. you are pinned to CA keys which you
lose trust in and suspect might be participating in MITM attacks; you are
not bricked, but you are unable to change to a different CA and assert new
CA pins until the old pins expire.
 3) Pruning the amount of pin history you must keep your site consistent
with (Do you remember what pins you or the previous domain owner asserted 6
month ago? 6 years ago? ever?  They might still be out there, waiting to
trip you up).

In each of these cases, the site has a decision to make:
 1) When can the site start using its new domain name?
 2) When can the site change pinned keys?
 3) What certificate chains are consistent with extant pins?

Having a mandated 30-day limit makes these questions easier:
 1) The site can always use a new domain name 30 days after acquiring it.
 2) The site can always change pinned keys 30 days after last asserting the
pin.
 3) The site only has to consider pin assertions from the last 30 days.

If browsers can take "creative" approaches to pin limits, per Tom Ritter
[1], it's harder for sites to make these decisions.  Sites would need to
know what algorithms / parameters every browser is using and has used in
the past.  And if some browsers made bad decisions and store excessively
long pins, the site will have to decide whether it's OK to make changes
even if some users will have problems.


Anyways, I think making things safe and simple for site operators is more
important than browser creativity, or trying to maximize pinning's security
benefits.  That's why I still prefer a spec-mandated limit.  And I think 30
days strikes a good balance between security benefits and safety, and is
easy to remember and explain.


Trevor


[1] http://www.ietf.org/mail-archive/web/websec/current/msg01597.html