[websec] HSTS ABNF still broken: requires leading semi-colon

=JeffH <Jeff.Hodges@KingsMountain.com> Fri, 23 March 2012 23:01 UTC

Return-Path: <Jeff.Hodges@KingsMountain.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 050BF21F855D for <websec@ietfa.amsl.com>; Fri, 23 Mar 2012 16:01:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -98.746
X-Spam-Level:
X-Spam-Status: No, score=-98.746 tagged_above=-999 required=5 tests=[AWL=-0.851, BAYES_50=0.001, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, RDNS_NONE=0.1, USER_IN_WHITELIST=-100]
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 sgmy6sT6ipiv for <websec@ietfa.amsl.com>; Fri, 23 Mar 2012 16:01:29 -0700 (PDT)
Received: from oproxy8-pub.bluehost.com (oproxy8.bluehost.com [IPv6:2605:dc00:100:2::a8]) by ietfa.amsl.com (Postfix) with SMTP id 6320221F855A for <websec@ietf.org>; Fri, 23 Mar 2012 16:01:29 -0700 (PDT)
Received: (qmail 521 invoked by uid 0); 23 Mar 2012 22:01:38 -0000
Received: from unknown (HELO box514.bluehost.com) (74.220.219.114) by oproxy8.bluehost.com with SMTP; 23 Mar 2012 22:01:38 -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=J0MDEtXeHzkRQwsygsGbeXfvc3izN6UndZMlA3jv5D0=; b=os/Ly6pToR1FXrjJXlawDjg38GUZWJXkLWB+RR1obgf0KrrSrBkxhOOVz3Rzfz3DZmIPnQuBwV4VRDb68x9+PRphiGJY08lRj6Rd6THTQY4UiNpmIATdfEuhTwVT2KUo;
Received: from outbound4.ebay.com ([216.113.168.128] helo=[10.244.137.56]) by box514.bluehost.com with esmtpsa (TLSv1:CAMELLIA256-SHA:256) (Exim 4.76) (envelope-from <Jeff.Hodges@KingsMountain.com>) id 1SBDU6-00062Y-Jo for websec@ietf.org; Fri, 23 Mar 2012 17:01:26 -0600
Message-ID: <4F6D00C2.6090805@KingsMountain.com>
Date: Fri, 23 Mar 2012 16:01:22 -0700
From: =JeffH <Jeff.Hodges@KingsMountain.com>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.28) Gecko/20120313 Thunderbird/3.1.20
MIME-Version: 1.0
To: 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 216.113.168.128 authed with jeff.hodges+kingsmountain.com}
Subject: [websec] HSTS ABNF still broken: requires leading semi-colon
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: Fri, 23 Mar 2012 23:01:30 -0000

James.H.Manger@team.telstra.com wrote:
 >
 > The ABNF for the Strict-Transport-Security header looks wrong. It now
 > *requires* a leading ";" before the first directive.

yes, it's broken as you indicate, and you aren't the only person to have 
noticed it.

I apologize (to all), I didn't thoroughly vet the suggested change to the ABNF 
before incorporating it. doh.

I suspect Julian just didn't look closely at his suggestion before posting it..

   https://www.ietf.org/mail-archive/web/websec/current/msg01020.html


 > I suggest the following ABNF.
 >
 >   Strict-Transport-Security = "Strict-Transport-Security" ":"
 >                                  directive *( ";" directive )
 >
 >   directive                 = [ token [ "=" ( token | quoted-string ) ] ]


Well, I've been counseled in the past (and agree with it) that having an ABNF 
production that is potentially totally null is not such a good idea.

Perhaps this approach addresses this problem and is closer to what Julian 
intended..

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

      directive                 = token [ "=" ( token | quoted-string ) ]

?

thanks,

=JeffH