Re: [TLS] Concerns with draft-kinnear-tls-client-net-address

Yoav Nir <ynir.ietf@gmail.com> Mon, 25 March 2019 19:37 UTC

Return-Path: <ynir.ietf@gmail.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0666012008B; Mon, 25 Mar 2019 12:37:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 Le4G_hytnbFH; Mon, 25 Mar 2019 12:37:26 -0700 (PDT)
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com [IPv6:2a00:1450:4864:20::42a]) (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 6A48A120089; Mon, 25 Mar 2019 12:37:26 -0700 (PDT)
Received: by mail-wr1-x42a.google.com with SMTP id w10so11612463wrm.4; Mon, 25 Mar 2019 12:37:26 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=UsmXuHsEI4XdRS0Nhawe4lzMp+FCECxNl2miX1R8Zwk=; b=Q14U1HkJ8/H3AsF216wKcDe3M5ZuKPMjj1Ugd8KWY1Uvlhyu8z8gMc8CsMqN2b246Y 40M1oDe4G5g9tO4P9/RU02Z++lgqB+XzJGMkaKkoIXfagl3JVGC1HXG13l7amaMqpXsj tKeA4JCQSWYLSG8TZoovrZBQWJsjVYfhq/OYGWgbCC9WFc32dhnS5xUI/Os8tlthYziI xDsoEnScMvfgw0l8R03OKCjZZhsQHgrdnylH4wDyyKmAvwBpsQ0nX46yWGJZv/QiuzLH PYsaLEJyndp77pMe2PkjbAY710zmjlT29aYr27Gcb2y77re0qj4QPC/iKh0uTyC5VBrP yV6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=UsmXuHsEI4XdRS0Nhawe4lzMp+FCECxNl2miX1R8Zwk=; b=EaaPf3quW/FivrI0UsDnC1gNqfL+8v+gMHS9YHIvTXx8Wp2Dk/qJfQcphgOUOZokiF Kp3dxOf7nR6o1Klp1EGPWI/NGXxhogdfjICRnQJ2EcYsxrbzS+2zDwSn4B1HaqPld6jE rGSF4XUKtQZ7hz7C4ThbvH+CCwhidmVEAgTA9AVz4q54xuBZiEa7cif1Q/EWid/ogcf2 MJVjcrswb0yH1oVqAW1VjvPtwj7NK5vw91Ecc+yxNUqVNU9aOt3S6pXleNb063sDAnBt DFYJsa+BLjIyORFxOZjJx00SVvVUTp8gBVw7+YMAFxpVP9k35dsZJXJFv4wmzDydrIP/ 52eg==
X-Gm-Message-State: APjAAAV7VKYcE3NpQENwcnwrhtRQ7+3I2zEt1p7AAyxra+n3mWQ253hh Bg/QIRg/zH1j7bj15BgCDCQ=
X-Google-Smtp-Source: APXvYqxetKXU+eUOhdHK9X8EBo3njymyNEBgF+EfcwtmRwu0QihTRs+A+m2avWnJCDC/dZowiJgQcg==
X-Received: by 2002:a5d:6887:: with SMTP id h7mr18005946wru.122.1553542644954; Mon, 25 Mar 2019 12:37:24 -0700 (PDT)
Received: from [10.96.4.243] (94-74-228-155.client.rionet.cz. [94.74.228.155]) by smtp.gmail.com with ESMTPSA id r63sm26964810wmr.32.2019.03.25.12.37.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 25 Mar 2019 12:37:23 -0700 (PDT)
From: Yoav Nir <ynir.ietf@gmail.com>
Message-Id: <351AC04D-7C6F-4E4C-831A-D72B2EE96DF9@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_4C409FB5-450E-458B-BE86-1DC53C5C3C97"
Mime-Version: 1.0 (Mac OS X Mail 12.2 \(3445.102.3\))
Date: Mon, 25 Mar 2019 20:37:20 +0100
In-Reply-To: <6878605.ZEUvsGRTm6@pintsize.usersys.redhat.com>
Cc: "<tls@ietf.org>" <tls@ietf.org>, David Schinazi <dschinazi.ietf@gmail.com>, draft-kinnear-tls-client-net-address@ietf.org
To: Hubert Kario <hkario@redhat.com>
References: <CAPDSy+4brMwvwWp0zMb4SYqOFC5jtk=R1uKB4jKPD+Han36Hbg@mail.gmail.com> <1755991.yLsQ4jojd4@pintsize.usersys.redhat.com> <890AF854-FE00-45D6-81C6-95A09393AEFF@gmail.com> <6878605.ZEUvsGRTm6@pintsize.usersys.redhat.com>
X-Mailer: Apple Mail (2.3445.102.3)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/Ii4LwRvqzaEs3_7LXNFI5grbyqU>
Subject: Re: [TLS] Concerns with draft-kinnear-tls-client-net-address
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 25 Mar 2019 19:37:29 -0000


> On 25 Mar 2019, at 19:38, Hubert Kario <hkario@redhat.com> wrote:
> 
> On Monday, 25 March 2019 19:31:24 CET Yoav Nir wrote:
>>> On 25 Mar 2019, at 19:23, Hubert Kario <hkario@redhat.com> wrote:
>>> 
>>> On Monday, 25 March 2019 14:58:29 CET Yoav Nir wrote:
>>>> Yeah, so this looks very much like the IKE mechanism (the draft even says
>>>> so)
>>>> 
>>>> In IKE the reason for this is to detect NAT because IPsec does not
>>>> traverse
>>>> NAT. We need to detect the NAT so as to choose an IPsec variant that
>>>> traverses NAT.  If the server (or IKE Responder) lies, you might use the
>>>> NAT Traversing method when it’s not required, or if the server is really
>>>> good at lying, you might not use NAT Traversal when you should.
>>>> 
>>>> With the proposed TLS extension, I would like to see a better analysis
>>>> for
>>>> what happens if the server lies.  What happens if the client uses the
>>>> answer to do geolocation?  We can easily take this to a “gay kid in
>>>> Uganda”
>>>> scenario.
>>>> 
>>>> But I think the more interesting question is why do it at this layer? 
>>>> Why
>>>> not use some web service such as the API version of
>>>> https://www.whatismyip.com <https://www.whatismyip.com/>
>>>> <https://www.whatismyip.com/ <https://www.whatismyip.com/> <https://www.whatismyip.com/ <https://www.whatismyip.com/>>> ?  The
>>>> answer is a property of the device, not to the socket.  We might as well
>>>> have the device figure this out.
>>> 
>>> how is it property of device? at best, it's a property of a LAN. And a LAN
>>> may have multiple Internet uplinks, every other connection may end up
>>> with a different IP (albeit from a small pool), so a public IP of any
>>> particular connection does not reliably indicate public IP of subsequent
>>> connections.
>> It’s perhaps a property of the device at the current connection
>> configuration. Pretty much any consumer device will have a preferred
>> network where the default route is. Any phone with a metered and a
>> non-metered connection will prefer the non-metered connection, and PCs will
>> use the link where the default route is.  It is a reasonable approximation
>> to assume that the web service connection to whatismyip will follow the
>> same path as your other TLS connection.
>> 
>> Servers may have more complicated routing tables, where the “regular” TLS
>> connection might be using a dedicated link while the connection to
>> whatismyip is going to the “Internet”.  I don’t think this is the scenario
>> that this draft is working on.
>> 
>> An interesting twist even for consumer devices may be where one of the two
>> connections chooses IPv4 while the other chooses IPv6.  In that case, they
>> might end up on different links if, for example, the metered connection
>> offers IPv6 while the non-metered connection does not, or vice versa.
> 
> I already gave you an example of situation where that's not the case.
> 
> You can have a router with two Internet links that routes the connections to a 
> different ISP either based on a round-robin fashion or as a fallback when a 
> connection dies.
> 
> Neither of which would be visible to the device connected to a WiFi behind 
> such a router. The client in the context of this I-D.

True.  As far as NAT detection, the answer would be the same — such a client is behind NAT regardless of which Internet link the router chooses, so keepalives are necessary anyway.  For the other use cases, I’m not so sure.  If a client has two “real” IP addresses, what is it supposed to do about identifying ASNs?  Deciding whether to reuse connections to DNS is directly related to the presence of a NAT, so it’s the same as NAT detection.