Additional comments on draft-stark-expect-ct-00

=JeffH <Jeff.Hodges@KingsMountain.com> Thu, 24 November 2016 01:01 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 493C8129593 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 23 Nov 2016 17:01:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.398
X-Spam-Level:
X-Spam-Status: No, score=-8.398 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-1.497, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RTBDhhwUT_AR for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 23 Nov 2016 17:01:07 -0800 (PST)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AB624128874 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 23 Nov 2016 17:01:07 -0800 (PST)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1c9iLO-0004uw-AE for ietf-http-wg-dist@listhub.w3.org; Thu, 24 Nov 2016 00:56:54 +0000
Resent-Date: Thu, 24 Nov 2016 00:56:54 +0000
Resent-Message-Id: <E1c9iLO-0004uw-AE@frink.w3.org>
Received: from mimas.w3.org ([128.30.52.79]) by frink.w3.org with esmtps (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <Jeff.Hodges@kingsmountain.com>) id 1c9iLH-0004sG-5z for ietf-http-wg@listhub.w3.org; Thu, 24 Nov 2016 00:56:47 +0000
Received: from gproxy9-pub.mail.unifiedlayer.com ([69.89.20.122]) by mimas.w3.org with smtp (Exim 4.84_2) (envelope-from <Jeff.Hodges@kingsmountain.com>) id 1c9iLA-0002tQ-V9 for ietf-http-wg@w3.org; Thu, 24 Nov 2016 00:56:41 +0000
Received: (qmail 11222 invoked by uid 0); 24 Nov 2016 00:56:18 -0000
Received: from unknown (HELO CMOut01) (10.0.90.82) by gproxy9.mail.unifiedlayer.com with SMTP; 24 Nov 2016 00:56:18 -0000
Received: from box514.bluehost.com ([74.220.219.114]) by CMOut01 with id BcwD1u00X2UhLwi01cwGXg; Wed, 23 Nov 2016 17:56:16 -0700
X-Authority-Analysis: v=2.1 cv=QtDNgzCd c=1 sm=1 tr=0 a=9W6Fsu4pMcyimqnCr1W0/w==:117 a=9W6Fsu4pMcyimqnCr1W0/w==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=IkcTkHD0fZMA:10 a=L24OOQBejmoA:10 a=48vgC7mUAAAA:8 a=QIhr-27iAAAA:8 a=1XWaLZrsAAAA:8 a=wLPFoA7D8s_kOfo565QA:9 a=QEXdDO2ut3YA:10 a=w1C3t2QeGrPiZgrLijVG:22 a=cgaYBWEFosGJW4rWv5Lf:22 a=nJcEw6yWrPvoIXZ49MH8:22
Received: from [173.224.162.79] (port=22385 helo=[192.168.93.253]) by box514.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.86_1) (envelope-from <Jeff.Hodges@KingsMountain.com>) id 1c9iKl-0008Fy-Dt for ietf-http-wg@w3.org; Wed, 23 Nov 2016 17:56:15 -0700
To: IETF HTTP WG <ietf-http-wg@w3.org>
From: =JeffH <Jeff.Hodges@KingsMountain.com>
Message-ID: <401e7f4a-a5aa-b9d5-63a8-b3fbde4e814e@KingsMountain.com>
Date: Wed, 23 Nov 2016 16:56:14 -0800
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.4.0
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - box514.bluehost.com
X-AntiAbuse: Original Domain - w3.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - KingsMountain.com
X-BWhitelist: no
X-Source-IP: 173.224.162.79
X-Exim-ID: 1c9iKl-0008Fy-Dt
X-Source:
X-Source-Args:
X-Source-Dir:
X-Source-Sender: ([192.168.93.253]) [173.224.162.79]:22385
X-Source-Auth: jeff.hodges+kingsmountain.com
X-Email-Count: 5
X-Source-Cap: a2luZ3Ntb3U7a2luZ3Ntb3U7Ym94NTE0LmJsdWVob3N0LmNvbQ==
Received-SPF: pass client-ip=69.89.20.122; envelope-from=Jeff.Hodges@kingsmountain.com; helo=gproxy9-pub.mail.unifiedlayer.com
X-W3C-Hub-Spam-Status: No, score=-3.6
X-W3C-Hub-Spam-Report: AWL=0.280, BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, W3C_IRA=-1, W3C_WL=-1
X-W3C-Scan-Sig: mimas.w3.org 1c9iLA-0002tQ-V9 a5115701d80c57ab1396550b0ba5411b
X-Original-To: ietf-http-wg@w3.org
Subject: Additional comments on draft-stark-expect-ct-00
Archived-At: <http://www.w3.org/mid/401e7f4a-a5aa-b9d5-63a8-b3fbde4e814e@KingsMountain.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/32980
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Here's some additional comments on "Expect-CT"
<https://tools.ietf.org/html/draft-stark-expect-ct>

HTH,

=JeffH


In the below, "the I-D" refers to the above I-D.

1. Spec title

Having a title of "HTTP Expect-CT" (HECT) would be more accurate
because, like HSTS and HPKP, the mechanism is particular to HTTP (and
actually HTTP-over-secure-transport)


2. Expect-CT header field syntax

The behavior of a valueless Expect-CT header field is presently not
defined, although it is syntactically correct: both 'enforce' and
'report-uri' are OPTIONAL, and 'max-age' is only REQUIRED if 'enforce'
is present. In HSTS [RFC6797], a valueless strict-transport-security
header field violates the syntax (because 'max-age' is always required)
and thus is explicitly ignored.

Also, the Expect-CT syntax presently defines the below as a valid
Expect-CT header field..

  Expect-CT: enforce; report-uri="https://example.org"; max-age=86400

..which will ostensibly not yield "report-only" behavior, i.e., UA's
CT-policy will be enforced AND will submit reports of violations of "the
UA's CT policy". Is that directive combination intended? If so, perhaps
this might be termed an "enforce-and-report" expect-ct policy.


3. Terminology

The I-D does not have terminology of "known expect-ct host" (as in HSTS 
& HPKP) ?

"known/unknown" can be a useful distinction and spec-writing shorthand,
see e.g.: <https://tools.ietf.org/html/rfc6797#section-14.3>, the parag
after the two bulleted parags. I.e. a host can be an "expect-ct host" 
but be unknown as one from the perspective of a particular UA instance.

The I-D could use a terminology section tho I note HPKP [RFC7469] does
not have one.


4. Is expect-ct policy host-wide or connection-specific?

Is expect-ct policy host-wide, a la HSTS - i.e., applied to all ports
on a host? Or is it specific to just that particular secure transport
connection over which the Expect-CT header field was received?  If it is
connection-specific, should not the port be explicitly part of the
storage model, as well as the host's domain name?

The I-D implies that expect-ct policy is connection-specific, and that 
makes sense to me because it is specific to characteristics of the 
server's certificate returned on that connection. It would be good to 
explicitly state this.


5. server-initiated expect-ct policy deletion?

Is there no "max-age=0" ability for an Expect-CT host to signal a UA to
remove it from the UA's Expect-CT cache?


6. clarify characteristics of report-only

Emily Stark <estark@google.com> wrote on Monday, November 21, 2016
at 3:28 PM:
>
> - Caching in report-only mode: I can be convinced that this is
> useful, in case where you are e.g. rolling out a CT-compliant
> certificate in conjunction with Expect-CT (for example if you have a
>  config that turns on CT and also turns on Expect-CT in report-only
> mode, and the config didn't make it out to a few of your servers).
> Will be especially convinced if site owners say that this is how they
> want it to work.

I am thinking that it would be useful to cache report-only expect-ct
policies, e.g. to satisfy the above use case.

Thus max-age would be required in the header field value whether either
or both report-uri and enforce directives are present. (see #2)

And then we can have max-age=0 be the policy deletion mechanism :) (see #5).


7. User agent and server implementation advice, sec cons

The I-D might have similar UA and server implementation
advice/considerations, as well as security considerations, as HSTS
and/or HPKP. Something to think about, though I note HPKP does not
feature distinct UA and server implementation advice/considerations 
sections, though it does have a distinct "privacy considerations" 
section which HSTS lacks.


end