Re: [websec] Strict-Transport-Security syntax redux

Adam Barth <ietf@adambarth.com> Thu, 29 December 2011 19:50 UTC

Return-Path: <ietf@adambarth.com>
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 65A7721F8B81 for <websec@ietfa.amsl.com>; Thu, 29 Dec 2011 11:50:55 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.977
X-Spam-Level:
X-Spam-Status: No, score=-2.977 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-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 pOw-eabUT7K2 for <websec@ietfa.amsl.com>; Thu, 29 Dec 2011 11:50:54 -0800 (PST)
Received: from mail-iy0-f172.google.com (mail-iy0-f172.google.com [209.85.210.172]) by ietfa.amsl.com (Postfix) with ESMTP id EFF2321F8B80 for <websec@ietf.org>; Thu, 29 Dec 2011 11:50:53 -0800 (PST)
Received: by iabz21 with SMTP id z21so2249763iab.31 for <websec@ietf.org>; Thu, 29 Dec 2011 11:50:53 -0800 (PST)
Received: by 10.42.155.136 with SMTP id u8mr25734232icw.12.1325188251597; Thu, 29 Dec 2011 11:50:51 -0800 (PST)
Received: from mail-iy0-f172.google.com (mail-iy0-f172.google.com [209.85.210.172]) by mx.google.com with ESMTPS id gf6sm80922577igb.1.2011.12.29.11.50.49 (version=SSLv3 cipher=OTHER); Thu, 29 Dec 2011 11:50:49 -0800 (PST)
Received: by iabz21 with SMTP id z21so2249678iab.31 for <websec@ietf.org>; Thu, 29 Dec 2011 11:50:49 -0800 (PST)
Received: by 10.42.148.1 with SMTP id p1mr583633icv.27.1325188249085; Thu, 29 Dec 2011 11:50:49 -0800 (PST)
MIME-Version: 1.0
Received: by 10.231.62.139 with HTTP; Thu, 29 Dec 2011 11:50:18 -0800 (PST)
In-Reply-To: <4EFC5F7B.7050304@gmx.de>
References: <4EAB66B3.4090404@KingsMountain.com> <4EABB25E.9000900@gmx.de> <4EFC5F7B.7050304@gmx.de>
From: Adam Barth <ietf@adambarth.com>
Date: Thu, 29 Dec 2011 11:50:18 -0800
Message-ID: <CAJE5ia_HhenArVey=5-ttLqh4-vbBE01TFZKuzAmAtHQJQJ3kQ@mail.gmail.com>
To: Julian Reschke <julian.reschke@gmx.de>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: IETF WebSec WG <websec@ietf.org>
Subject: Re: [websec] Strict-Transport-Security syntax redux
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: Thu, 29 Dec 2011 19:50:57 -0000

On Thu, Dec 29, 2011 at 4:39 AM, Julian Reschke <julian.reschke@gmx.de> wrote:
> Hi there,
>
> Looking at
> <http://tools.ietf.org/html/draft-ietf-websec-strict-transport-sec-03>.
>
> I note that the spec doesn't state what ABNF syntax it uses; something like
> <http://greenbytes.de/tech/webdav/rfc5988.html#rfc.section.2.p.2> should be
> added.
>
> Now for the actual ABNF
> (<http://tools.ietf.org/html/draft-ietf-websec-strict-transport-sec-03#section-5.1>):
>
>
>    Strict-Transport-Security = "Strict-Transport-Security" ":"
>                                    directive *( ";" [ directive ] )
>
> This works for me.
>
>
>    directive         = max-age | includeSubDomains | STS-d-ext
>
>    max-age           = "max-age" "=" delta-seconds
>
>    includeSubDomains = "includeSubDomains"
>
>
>    STS-d-ext     = token [ "=" ( token | quoted-string ) ]
>
> I would turn that around; a parser for STS should parse all directives the
> same way, thus:
>
>    directive         = token [ "=" ( token | quoted-string ) ]

As I wrote before, I don't think we should include quoted-string in
the grammar.  As far as I know, no one has implemented it and I have
no plans to implement quoted-string in Chrome.  Having quoted-string
in the grammar only leads to pain.,

Adam


> And then state that this spec defines two directives, and future specs can
> define more (maybe you need to state how to do that; "update" this spec? Add
> registry?)
>
> Then, for max-age and includeSubDomains, define their individual syntax
> separately, and don't forget to describe what to do with things like:
>
>  includeSubDomains="true"
>
> or
>
>  max-age
>
> or
>
>  max-age="10"
>
> Also:
>
>   The max-age directive MUST appear once in the Strict-Transport-
>   Security header field value.  The includeSubDomains directive MAY
>
>   appear once.  The order of appearance of directives in the Strict-
>   Transport-Security header field value is not significant.
>
> It would be better to state that *each* directive (including future ones)
> must appear only once, and that max-age is REQUIRED and includeSubDomains is
> OPTIONAL.
>
> (BTW: wouldn't it make sense to have a default for max-age so it can be made
> OPTIONAL?)
>
>
> Best regards, Julian
>
> _______________________________________________
> websec mailing list
> websec@ietf.org
> https://www.ietf.org/mailman/listinfo/websec