[websec] Strict-Transport-Security syntax redux

=JeffH <Jeff.Hodges@KingsMountain.com> Thu, 27 October 2011 18:03 UTC

Return-Path: <Jeff.Hodges@KingsMountain.com>
X-Original-To: websec@ietfa.amsl.com
Delivered-To: websec@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id 73F2021F8B06 for <websec@ietfa.amsl.com>; Thu, 27 Oct 2011 11:03:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -100.495
X-Spam-Status: No, score=-100.495 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, RDNS_NONE=0.1, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id y3CIUQRNEKg7 for <websec@ietfa.amsl.com>; Thu, 27 Oct 2011 11:03:41 -0700 (PDT)
Received: from oproxy5-pub.bluehost.com (oproxy5.bluehost.com [IPv6:2605:dc00:100:2::a5]) by ietfa.amsl.com (Postfix) with SMTP id C79DC21F88A0 for <websec@ietf.org>; Thu, 27 Oct 2011 11:03:41 -0700 (PDT)
Received: (qmail 26010 invoked by uid 0); 27 Oct 2011 18:03:41 -0000
Received: from unknown (HELO box514.bluehost.com) ( by cpoproxy2.bluehost.com with SMTP; 27 Oct 2011 18:03:41 -0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=kingsmountain.com; s=default; h=Content-Transfer-Encoding:Content-Type:Subject:To:MIME-Version:From:Date:Message-ID; bh=WBfB0bC0ackUqwbsDXBWdqdMJ9pru9J3h5Kw3I2Ot2o=; b=irjLqUVNEZjmOhOIWOUI8HM7Pv1C70Ajtw63vkvcACK2R0gNJtI+oOXUSyNkIEQBmvL9EOoj+fmMlcpISQDGWgS8eQKrQcuzSjxwD6jR2V8n9aTuztaPxApkJYgERjx1;
Received: from c-24-4-122-173.hsd1.ca.comcast.net ([] helo=[]) by box514.bluehost.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.76) (envelope-from <Jeff.Hodges@KingsMountain.com>) id 1RJUIn-0000kE-6d; Thu, 27 Oct 2011 12:03:41 -0600
Message-ID: <4EA99CFB.30801@KingsMountain.com>
Date: Thu, 27 Oct 2011 11:03:39 -0700
From: =JeffH <Jeff.Hodges@KingsMountain.com>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv: Gecko/20110921 Thunderbird/3.1.15
MIME-Version: 1.0
To: Julian Reschke <julian.reschke@gmx.de>, "Ryan Sleevi" <ryan-ietfhasmat@sleevi.com>, IETF WebSec WG <websec@ietf.org>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Identified-User: {11025:box514.bluehost.com:kingsmou:kingsmountain.com} {sentby:smtp auth authed with jeff.hodges+kingsmountain.com}
Subject: [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, 27 Oct 2011 18:03:42 -0000

I've been working with Julian on simplifying the STS header field syntax. 
Here's where it's presently at -- thoughts?

thanks again to Julian and Ryan for their earlier feedback.



5.1. Strict-Transport-Security HTTP Response Header Field

    The Strict-Transport-Security HTTP response header field indicates to
    a UA that it MUST enforce the HSTS Policy in regards to the host
    emitting the response message containing this header field.

    Note: this specification uses the augmented BNF (ABNF) notation from
    Section 2 of [RFC2616], including its rules for "implied linear
    whitespace (LWS)", and case-insensitivity of quoted-string literals.

    The ABNF syntax for the Strict-Transport-Security (STS) HTTP Response
    Header field is:

     Strict-Transport-Security = "Strict-Transport-Security" ":"
                                 directive *( ";" [ directive ] )

    STS directives:

     directive         = max-age | includeSubDomains | STS-d-ext

     max-age           = "max-age" "=" delta-seconds

     includeSubDomains = "includeSubDomains"

    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.

    Additional directives extending the the semantic functionality of
    the Strict-Transport-Security header field may be defined in other
    specifications, using the STS directive extension point (STS-d-ext)

     STS-d-ext     = token [ "=" ( token | quoted-string ) ]

    Defined in [RFC2616]:

     delta-seconds = <1*DIGIT, defined in [RFC2616], Section 3.3.2>
     token         = <token, defined in [RFC2616], Section 2.2>
     quoted-string = <quoted-string, defined in [RFC2616], Section 2.2>