Re: [Gen-art] Genart last call review of draft-ietf-httpbis-cdn-loop-01

Mark Nottingham <> Tue, 18 December 2018 03:26 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 94A15130E3F; Mon, 17 Dec 2018 19:26:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key) header.b=fvVFuHti; dkim=pass (2048-bit key) header.b=RHT70j7Z
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 7gT_bUQwh_Dq; Mon, 17 Dec 2018 19:26:50 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 9226D123FFD; Mon, 17 Dec 2018 19:26:50 -0800 (PST)
Received: from compute3.internal (compute3.nyi.internal []) by mailout.nyi.internal (Postfix) with ESMTP id 9D35521FFF; Mon, 17 Dec 2018 22:26:49 -0500 (EST)
Received: from mailfrontend1 ([]) by compute3.internal (MEProxy); Mon, 17 Dec 2018 22:26:49 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; h= content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; s=fm1; bh=p cKUStmde4la+RRdX6mcDTnhK9O3UA4Q/jUVs5KytNc=; b=fvVFuHtiy2p46Mkvo URbeoWUntcmYWqKunIpACFglRqsfwoR2AZ9GMP0DYBcOKE19yu7QTjGV4JpzeqYe FvIhfe0yXedeHSPKAHaP5VDH9Iae3DOBfV74TllKXi0NfIsjjk/zIY+q79MufH/R EakcyvrwuGrq4YIo0J5ZYpIinx+5CxWKX74NCduvHlFx3uCIRNfBFEQeAYcxTJ72 0XvSHXv+H2E57JlR4FfCsQ1o1Io18GXK5OU1dzN57t7HZgLohqaBX4ARu1J5kQWN JZXdUU518UlPmCbAXHp1lWRYCWklyf6cqY/MCWuIanQhFfdBdqDnapqVd+s3lD7u TpqQw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; bh=pcKUStmde4la+RRdX6mcDTnhK9O3UA4Q/jUVs5Kyt Nc=; b=RHT70j7Zdps3SZ5n1ZozJ5r2vhMmEW+jPtPEVJgKWgzooIttLFGJwZsc+ hHbvAADrgIiYN0QYeIaUGDOaUbExxrFpnd7/e3Hq/cyrv+9rcKDPzA5m9zsTlsbI DQgbShAy9h6lEiHIv8wSXQEu/zNc8WakxqwLHWoB+0RfA0i1GS8s3YDcZp6Zdl2x DY+7tnXWPVnmSWfCCt+H0MA/I7bB3FKsy0EJgU34YOGU90VIK/rXBZfuFthwJQlQ ggSljSykOtDFXIEQ6k6n/18PVAidg0veGQ2dKmesaLXbfFt6r+chjzMSjNE9i6NZ 7rcDMrmLOu/mBW68/0hMu0T5SH6CQ==
X-ME-Sender: <xms:-GgYXLic8XE85w5in5h4zIEt9oF7VeQaWbwJ2bgwSAnP7A2F0ivAWg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedtkedrudeigedgieduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfquhhtnecuuegrihhlohhuthemucef tddtnecunecujfgurheptggguffhjgffgffkfhfvofesthhqmhdthhdtvdenucfhrhhomh epofgrrhhkucfpohhtthhinhhghhgrmhcuoehmnhhothesmhhnohhtrdhnvghtqeenucff ohhmrghinhepmhhnohhtrdhnvghtnecukfhppedugeegrddufeeirddujeehrddvkeenuc frrghrrghmpehmrghilhhfrhhomhepmhhnohhtsehmnhhothdrnhgvthenucevlhhushht vghrufhiiigvpedt
X-ME-Proxy: <xmx:-GgYXOaIt_LwavgiX9TLlfPGrg1_jK1bzXyDAlmeHuJG8KPqxmYbuQ> <xmx:-GgYXHUPHGKnub_A5vlhN3_cnxLWViFSYL-zMmBRlwaKelBQNpiunQ> <xmx:-GgYXGFSHxdkannZIl3vnk0fbFBZFx6aUB_Pw7hEYlJR_FwCeQx-xw> <xmx:-WgYXFVCg9iE1RJDzHJAU0xHuvujA3CSeuWYtBzyJo43c9MmY1CL2g>
Received: from (unknown []) by (Postfix) with ESMTPA id 26C99E4043; Mon, 17 Dec 2018 22:26:45 -0500 (EST)
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 12.0 \(3445.100.39\))
From: Mark Nottingham <>
In-Reply-To: <>
Date: Tue, 18 Dec 2018 14:26:43 +1100
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <> <> <>
To: "Joel M. Halpern" <>
X-Mailer: Apple Mail (2.3445.100.39)
Archived-At: <>
Subject: Re: [Gen-art] Genart last call review of draft-ietf-httpbis-cdn-loop-01
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "GEN-ART: General Area Review Team" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 18 Dec 2018 03:26:52 -0000

> On 18 Dec 2018, at 1:16 pm, Joel M. Halpern <> wrote:
> Thank you Mark.
> On the first item, please look carefully at the use of pronouns.  It took me several readings to realize which CDNS "they" referred to.

I've rewritten to:

Note that a CDN that allows customers to remove or modify the CDN-Loop header field (i.e., they do not implement this specification) remains an attack vector against both implementing and non-implementing CDNs.

> On the second item, it was not TLS protection I was referring to. Rather, I was imagining one bad cache stripping the loop prevention.  I think the real answer to that is that it is no worse than such a cache originating bad requests.

s/cache/intermediary/, but yes -- there isn't any (or at least significant) amplification.


> Yours,
> Joel
> On 12/17/18 6:53 PM, Mark Nottingham wrote:
>> Hi Joel,
>> Thanks for the review.
>>> On 4 Dec 2018, at 5:45 am, Joel Halpern <> wrote:
>> ...
>>>    This depends upon CDNs which have not been upgraded not stripping this
>>>    header.  While I can believe that is a reasonable assumption, it seems that
>>>    a paragraph explaining that it is the case, and if possible what experience
>>>    leads us to think it is the case, would be helpful.
>> I've added:
>> """
>> Note that if a CDN that does not implement this specification allows customers to remove or modify the CDN-Loop header field, that CDN could become an attack vector against other CDNs, even if they do implement it.
>> """
>>>    This document says that it is to protect against attackers causing loops.
>>>    If the attacker is an external customer, the advice in the security
>>>    considerations section makes sense.  The other apparent attack would be an
>>>    attacker in the network who strips the information each time it comes past.
>>>     I believe the reason this is only an apparent attack is that such an
>>>    attacker could almost as easily simply generate additional messages instead
>>>    of producing a loop.  If I have inferred this correctly, it seems useful to
>>>    state it.
>> CDN back-end connections are increasingly protected by HTTPS. Also, most back-end connections are over transit that's unlikely to meddle in these ways (unless a state actor is involved).
>> Even so, the spec already says:
>> """
>> The threat model that the CDN-Loop header field addresses is a customer who is attempting to attack
>> a service provider by configuring a forwarding loop by accident or malice.
>> """
>> .... which seems to address your concern. I'm wary of enumerating the attacks which this header doesn't prevent, since it's a necessarily open list. Inserting requirements like "back-end connections SHOULD be over HTTPS" are more appropriate for a general spec defining what a CDN is (and we're not there yet; this spec is a baby step towards that :).
>> Cheers,
>> --
>> Mark Nottingham

Mark Nottingham