Re: Alternative ways to keeps ODCID on the server
Eric Rescorla <ekr@rtfm.com> Tue, 04 February 2020 13:44 UTC
Return-Path: <ekr@rtfm.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 284A01200C4 for <quic@ietfa.amsl.com>; Tue, 4 Feb 2020 05:44:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Level:
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
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 OTr2-r1yMNZl for <quic@ietfa.amsl.com>; Tue, 4 Feb 2020 05:44:39 -0800 (PST)
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com [IPv6:2a00:1450:4864:20::134]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C5FDA120020 for <quic@ietf.org>; Tue, 4 Feb 2020 05:44:38 -0800 (PST)
Received: by mail-lf1-x134.google.com with SMTP id t23so12205466lfk.6 for <quic@ietf.org>; Tue, 04 Feb 2020 05:44:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=KONmK6LXjjEiybZb9A3Q5e2WUvwAzYX5vakZwPln7aI=; b=b0djeZuxX7kV/6X4k8M/2/WgyfL2clofG4iNKFKXVPJ2qsgQMAlyjyZgdxxQlU99iY LyV9GYedZRLm1h0RPo02yq/tm+N+OGdDGE4ARIc3Mje1delGyvG0Ml8MmiRunxoNcNvJ f+zOBQWionrMxCK1IOlcVHlVAZJ1AThlzu1EqIGlw/vvzKnLfQ+Bvrh8akXNSBDLfSW/ RfNIweZpzttvWZP3ZYrmJnhPQ55IW/s02I3evNDOnF6CDBnJfj2+C1IO2gZKNAxzksZx gQsgoQmIVnFf/oRgGpEzZ98Ts+clat3OILYYK54YZX2gy2fuDzKwfs+uTpM0z4u62Yn6 C2aA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=KONmK6LXjjEiybZb9A3Q5e2WUvwAzYX5vakZwPln7aI=; b=Kq2TAAnQh6LHjMIGMWAauH4E2O2kRAzQSpI/joBgyYgqOxeG8/mby5xi+UUy472DEj HBbSxEej2wskaR3sjF9nKx0P1xNitwDXue5voDKmA9lKP5WzvE/q3YPolssOTrudROgs Q2koIYcYOzNEakphHrXcZO0PpeD6PCnA2e9hB5RNOnyYI7w7SA5tnvCFPaWkRhZLQBOj RPBE1VpDYGnD0qAH9XhXsydzUKGRn2GUC/RPwUKr9iemcyHJKUJ/u37MGhV00S7EVKBD 4mKjEdCxrDofkuGDvWywF+hGs5vD0HfF1654iTx1JmrYpERj2N4r1Uu3b1Wavmi9szyr /ypg==
X-Gm-Message-State: APjAAAXaGacDmHSjq78nx3fe1VBivZ+j1CiSzYGhgVBAFM0GzMIQDayn FDIWeUg6n5TTfgloZNpMu5nLQkyQj1XObFYUJD1w8w==
X-Google-Smtp-Source: APXvYqz/kZtjZlt11voEqyq4cK3iN91FTm2o3cE8zAmIrynofvzKetEwBSOLZbDiM3L6lpQ1QiTyIFC5GpVfCixiU8Y=
X-Received: by 2002:a05:6512:64:: with SMTP id i4mr14898069lfo.55.1580823876944; Tue, 04 Feb 2020 05:44:36 -0800 (PST)
MIME-Version: 1.0
References: <20200124222434.GA8279@ubuntu-dmitri> <7b228c14-c0d3-6458-77ab-945e713ef429@huitema.net> <CAOYVs2qhPBtbjrVEXE+oMXWUWRBqhzDfZsiOatRW5Zd67e1sWg@mail.gmail.com> <ee0f625b-b260-9e3d-12b6-80291fc110eb@huitema.net> <CAKcm_gNKu5b__cjy5212pWN=PKwdZKX23rXHs423-u8hZMjr+w@mail.gmail.com> <20200125135411.GA19655@ubuntu-dmitri> <CANatvzyTHXog=46wwpmVshkYcY0YFGdvWXj0dGjKVUj0dXa7pA@mail.gmail.com> <f25d2034-0938-f716-c356-5873eeb58cda@huitema.net> <CAOYVs2pvLxvQFkwYY6FuT5wQ_OWjjvhSBoMpyrOn9Gh-qNiyQw@mail.gmail.com> <da59defa-ef61-d9ec-d3bd-a045316d0d19@huitema.net> <CAOYVs2qEL-GRN=zrN5JZbDrfLH33tyhZXwDfZ3GZYt16WWHipg@mail.gmail.com> <bd99f633-f28b-b99d-7529-9ee1d279a8ab@huitema.net> <CANatvzyPp7nWGurOyRp8a0_DKLXJ=AwYXwf+9h9kOpi4pHjwFw@mail.gmail.com>
In-Reply-To: <CANatvzyPp7nWGurOyRp8a0_DKLXJ=AwYXwf+9h9kOpi4pHjwFw@mail.gmail.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Tue, 04 Feb 2020 05:44:00 -0800
Message-ID: <CABcZeBNHeek2sk5zuQ_bT=4GLg8YwNMUqHeV97OorNWsUBA0gw@mail.gmail.com>
Subject: Re: Alternative ways to keeps ODCID on the server
To: Kazuho Oku <kazuhooku@gmail.com>
Cc: Christian Huitema <huitema@huitema.net>, Marten Seemann <martenseemann@gmail.com>, IETF QUIC WG <quic@ietf.org>, Dmitri Tikhonov <dtikhonov@litespeedtech.com>, Ian Swett <ianswett=40google.com@dmarc.ietf.org>
Content-Type: multipart/alternative; boundary="000000000000a35819059dc03d6d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/U4XqjltfOIO9_I7NxDFxUV5f0fg>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 04 Feb 2020 13:44:41 -0000
I also agree with dropping the MAY. This seems like a pretty clear case for connection failure. On Tue, Jan 28, 2020 at 3:58 PM Kazuho Oku <kazuhooku@gmail.com> wrote: > > > 2020年1月28日(火) 15:45 Christian Huitema <huitema@huitema.net>: > >> But then, the client that responded to a retry will fail the connection >> if the ODCID parameter is not there. There are two alternative in the bad >> token scenario: good faith client with an obsolete new token, or client >> that received a bad faith retry. In the first case, there is no harm >> completing the connection. In the second case, the client will drop it so >> there is only a modest issue of temporary resource allocation. >> > > While I agree that the two scenarios being described here are the > possibilities, I now tend to agree that the MAY can be dropped. Previously, > I missed the fact that ODCID has to be carried as a TP (as correctly > pointed out by Marten and Dmitri). > > Regarding attack scenarios, I'd argue that it would be awkward for an > attacker to only send a spoofed packet to the server-side, when a malicious > middlebox can also send a packet to the client. I'd also argue that there > are many other ways of spoofing a client-sent Initial packet, and that > having a defense just for retry tokens does not change the picture. > > Therefore, I think dropping the MAY is fine. I think a server can continue > to ignore the retry token when it assumes that it was spoofed, but my take > is that it's not worth writing it down. > >> On 1/27/2020 8:35 PM, Marten Seemann wrote: >> >> The client knows if it used a NEW_TOKEN token. More specifically, the >> client knows if it received and responded to a Retry packet. >> >> On Tue, Jan 28, 2020 at 11:21 AM Christian Huitema <huitema@huitema.net> >> wrote: >> >>> >>> On 1/27/2020 7:11 PM, Marten Seemann wrote: >>> >>> > That's actually what I implemented. If the token can be verified, >>> accept >>> > the connection, treat it as validated. If it cannot be verified, check >>> > whether the token is necessary, e.g., would any incoming connection >>> > trigger retry. If it is necessary, drop the connection; if not >>> > necessary, continue as if no token was there. >>> >>> Doesn't that defeat the purpose of the original_connection_id transport >>> parameter? We introduced it to prevent middleboxes from performing a Retry. >>> With this logic, a middlebox could perform a Retry, and then corrupt the >>> token on the second Initial to trick the server into accepting the >>> connection. >>> Furthermore, client implementation will check for the >>> original_connection_id TP, and fail the connection if this TP is missing. >>> >>> The spec also has language that I'd interpret as forbidding this: >>> If the server sends a Retry packet, it MUST include the Destination >>> Connection ID field from the client's first Initial packet in the transport >>> parameter. >>> >>> How do you reconcile that requirement with the "NEW TOKEN" mechanism? If >>> the Initial packet carries a NEW TOKEN, it will be accepted and there won't >>> be any ODCID transport parameter. >>> >>> -- Christian Huitema >>> >> > > -- > Kazuho Oku >
- Re: Alternative ways to keeps ODCID on the server Christian Huitema
- Alternative ways to keeps ODCID on the server Dmitri Tikhonov
- Re: Alternative ways to keeps ODCID on the server Marten Seemann
- Re: Alternative ways to keeps ODCID on the server Christian Huitema
- Re: Alternative ways to keeps ODCID on the server Ian Swett
- Re: Alternative ways to keeps ODCID on the server Dmitri Tikhonov
- Re: Alternative ways to keeps ODCID on the server Dmitri Tikhonov
- Re: Alternative ways to keeps ODCID on the server Kazuho Oku
- Re: Alternative ways to keeps ODCID on the server Marten Seemann
- Re: Alternative ways to keeps ODCID on the server Christian Huitema
- Re: Alternative ways to keeps ODCID on the server Marten Seemann
- Re: Alternative ways to keeps ODCID on the server Kazuho Oku
- Re: Alternative ways to keeps ODCID on the server Christian Huitema
- Re: Alternative ways to keeps ODCID on the server Eric Rescorla