Re: [Captive-portals] Review of draft-wkumari-capport-icmp-unreach-01

David Bird <dbird@google.com> Sun, 02 April 2017 22:45 UTC

Return-Path: <dbird@google.com>
X-Original-To: captive-portals@ietfa.amsl.com
Delivered-To: captive-portals@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DB815129441 for <captive-portals@ietfa.amsl.com>; Sun, 2 Apr 2017 15:45:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 PsADaIeN2Y4A for <captive-portals@ietfa.amsl.com>; Sun, 2 Apr 2017 15:45:56 -0700 (PDT)
Received: from mail-qk0-x229.google.com (mail-qk0-x229.google.com [IPv6:2607:f8b0:400d:c09::229]) (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 C7DDB1267BB for <captive-portals@ietf.org>; Sun, 2 Apr 2017 15:45:53 -0700 (PDT)
Received: by mail-qk0-x229.google.com with SMTP id p22so101498592qka.3 for <captive-portals@ietf.org>; Sun, 02 Apr 2017 15:45:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=64N1oMMsK2eW9VH7jYa/RA5hZUFlKwCJg65esR9oeWc=; b=Lg+QJeGt2+2iHHrdKSbC5Kp8sey32ouOeuo7ioYxW06tPQzHbG6cbloFWrr537N4ZJ ArrRMog4ae1Q96/FbITDlLpcWjlkjEk6Ndl+/yY58E0OA74DIMOmbvlE7CSR4qCI3VWT ZpPv4Pq/khBcmWvKM3e+bqhdavrXBP6vcaiS5O54M5lq4poN9YYoPkBPSYBUfaVfaa+z 8ClWpJfJY5mIfeabLKOHEXCf05DfT5EAxid5u2wF8R7FAUkq8WgDZBu+ULA8+scf4olK ZCFUqp/w7Fyz2zvhGB8kdLf0yz/IS/5HamM4qz+xD6pAAFdvOX59wVnSpg/rQ0+mzspq PC0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=64N1oMMsK2eW9VH7jYa/RA5hZUFlKwCJg65esR9oeWc=; b=W89Zbr6ZoSdstc02eLO3H+94eWh1KvxvojY3UfYvest389CByHh5Zjp4zLLH1vsrO8 k0P5jZKrnqryBSlXVYoOIcQwKENFCJHB9kxVeHgleua19JFTjwB7c7atH00gDKRXeRbD g4BAtRptvGxJ15xzhOx0TcI8qNSn41y7gHfmkQkP2jAnRez8gBFnH9d9DTTGcUzq1MID BWkAjFX8VBcrcx3o8kIhKZayUTauoXCls0Wz1HL6E9GTWf1NOdZLgy4nyCuk3tl5pZsk /52G8wTZYBkBY/DR6d1sDeB90rm1yFAAcS2485bmY7++NhhlQOYBBCB/JCG5em9XQadJ t2tg==
X-Gm-Message-State: AFeK/H2cO/DgP7Lr0sOfEEQAvSjC6bV3FxImhne8vvHk/jYA3F0vu96pJvW8Sr0bt9/BZBUeVszNCnXX8kvTDG3Q
X-Received: by 10.55.88.196 with SMTP id m187mr12390292qkb.182.1491173152748; Sun, 02 Apr 2017 15:45:52 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.12.128.233 with HTTP; Sun, 2 Apr 2017 15:45:52 -0700 (PDT)
In-Reply-To: <20170402215421.7209037.76687.5297@sandvine.com>
References: <CABkgnnXkDSnn2C3cFtdcsX+chDMqnbZO9t5pp4dVMaVLQPXAig@mail.gmail.com> <CADo9JyXScL4sDtx13pPAanfAoBj0mE4f9D-pGRXDcmKqPz4K+Q@mail.gmail.com> <20170402190447.7209037.92389.5290@sandvine.com> <CADo9JyWMfjHqh-xi9kvCnXZTw_7WBaZ4eMNFi4hUD+v8OiKgPg@mail.gmail.com> <20170402215421.7209037.76687.5297@sandvine.com>
From: David Bird <dbird@google.com>
Date: Sun, 02 Apr 2017 15:45:52 -0700
Message-ID: <CADo9JyVGV4Jezve-dck-upJ8ytm5deZzjG-MCxLbVmoueMFzzw@mail.gmail.com>
To: Dave Dolson <ddolson@sandvine.com>
Cc: Martin Thomson <martin.thomson@gmail.com>, "draft-wkumari-capport-icmp-unreach@ietf.org" <draft-wkumari-capport-icmp-unreach@ietf.org>, "captive-portals@ietf.org" <captive-portals@ietf.org>
Content-Type: multipart/alternative; boundary="001a114edb5611ff9b054c36cef7"
Archived-At: <https://mailarchive.ietf.org/arch/msg/captive-portals/Qjo_62tKfPClP3DoH4gvstZSVM8>
Subject: Re: [Captive-portals] Review of draft-wkumari-capport-icmp-unreach-01
X-BeenThere: captive-portals@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Discussion of issues related to captive portals <captive-portals.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/captive-portals>, <mailto:captive-portals-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/captive-portals/>
List-Post: <mailto:captive-portals@ietf.org>
List-Help: <mailto:captive-portals-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/captive-portals>, <mailto:captive-portals-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 02 Apr 2017 22:45:58 -0000

I think it is helpful to think of it this way:

Validity is a way for the NAS to inform the UE of it's rate limiting
policy. As in, if you ask again within Validity, I'm going to ignore you.
(Also, the UE kernel or "icmpd" would hold on to that tuple for at least
that long for applications to query the Dest Unreach reason). This could
have security considerations, but a UE might decide to take the value with
a grain of salt and try a couple times in the meantime, just in case.

Delay is a way (albeit, largely vendor specific in how it would be
implemented with AAA infrastructures) for the NAS to poke the UE indicating
a future 'change in policy' to a specific flow (or overall). For a capport
compliant location, the UE knows it should 'suggest', not require, the user
visit the captive portal. Of course, the UE will continue connections past
the Delay timer, but will not be surprised when it starts to see capport
ICMP again. (The NAS who is enforcing max bytes up/down limitations --
common in hotspots -- is in a good position to calculate how long a session
has remaining in real-time).



On Sun, Apr 2, 2017 at 2:54 PM, Dave Dolson <ddolson@sandvine.com> wrote:

> Regarding Delay, what would be the harm in answering every blocked flow
> with an ICMP unreachable?
> If there is rate-limiting to the portal, that would be the client's
> responsibility.
>
>
> David Dolson
> Sandvine
> *From: *David Bird
> *Sent: *Sunday, April 2, 2017 5:04 PM
> *To: *Dave Dolson
> *Cc: *Martin Thomson; draft-wkumari-capport-icmp-unreach@ietf.org;
> captive-portals@ietf.org
> *Subject: *Re: [Captive-portals] Review of draft-wkumari-capport-icmp-
> unreach-01
>
> I don't disagree that ICMP should only be meant for signaling... each
> field needs to be considered separately.
>
> Session-ID : this bit of information is actually helping a UE determine
> authenticity [Marin's suggestion of the UE 'sampling' a few packets to
> random IPs and ports (to build a bit of entropy) and expect capport ICMP
> responding with a consistent SessionID].
>
> The Validity and Delay together help clarify a few things to the UE, like
> how often or when it should expect ICMP Dest Unreach (e.g. NAS sets
> Validity to 5s and does not repeated send ICMP back to the UE for the same
> tuple, while using Delay to indicate a soon to change SessionID).
>
> The PolicyID (probably poorly named) is meant as a 'hint' -- to help the
> portal know *something* about the reason you were sent to the portal -- be
> http redirect, rate limiting reasons, etc. This value shouldn't have much
> value, can be site specific, and it just informational.
>
>
>
> On Sun, Apr 2, 2017 at 12:04 PM, Dave Dolson <ddolson@sandvine.com> wrote:
>
>> David,
>> Thanks.
>> I see you have added more information to the ICMP packet. This of course
>> makes validating the ICMP message more important, whereas if the ICMP
>> packet were only a trigger to visit the API, it would be the API that
>> implements the security.
>>
>> ‎My opinion has been that the ICMP message should only say "unreachable
>> because captive portal", which makes the ICMP risk only a DoS concern -- no
>> different than ICMP today -- which if a real concern should be addressed
>> for the ICMP protocol in general.
>>
>>
>> David Dolson
>> Sandvine
>> *From: *David Bird
>> *Sent: *Saturday, April 1, 2017 8:18 PM
>> *To: *Martin Thomson
>> *Cc: *draft-wkumari-capport-icmp-unreach@ietf.org;
>> captive-portals@ietf.org
>> *Subject: *Re: [Captive-portals] Review of draft-wkumari-capport-icmp-unr
>> each-01
>>
>> I've updated the draft to -02 - sorry for not doing so sooner.
>>
>> Contributors (and co-authors) welcome!
>>
>>
>> On Sat, Apr 1, 2017 at 1:40 PM, Martin Thomson <martin.thomson@gmail.com>
>> wrote:
>>
>>> (As a contributor only.)
>>>
>>> David, Warren,
>>>
>>> Looking at this draft, I think that there are a few fairly major
>>> changes that this could benefit from.
>>>
>>> # Extension payload
>>>
>>> The presence of the extension is sufficient signaling for this channel.
>>>
>>> If we accept that there will be a protocol for asking the portal for
>>> basic information about connectivity, the UE/device/etc can query that
>>> interface for expiration time.
>>>
>>> The warning bit seems dangerous in this context given that it
>>> establishes a non-backwards-compatible behaviour.  To an entity that
>>> doesn't understand this extension, ICMP Unreachable means that the
>>> packet was not forwarded.  I don't think that an extension can safely
>>> change this.
>>>
>>> The one obvious caveat for this comment is if we determine that RFC
>>> 7710 is insufficient for advertisement of the captive portal URL.  In
>>> that case, we might consider adding the URL to the ICMP message.  I
>>> don't see any evidence that this is necessary yet, and that would
>>> compound the next issue, but it's something to consider.
>>>
>>> # Security considerations
>>>
>>> There is a fairly direct path between this message and a user visiting
>>> the site identified.  Now, it is well-accepted that it is easy to
>>> cause a user to visit any site, but nonetheless this needs to be
>>> discussed.  We can also offer some suggestions for reducing the use of
>>> this message by arbitrary endpoints.  For example, a device that
>>> receives this message might not act immediately, but instead trigger
>>> portal detection routines before opening a browser.  Those routines
>>> might involve sending more packets and looking for more ICMP
>>> unreachable packets.
>>>
>>> For this reason, I think that we should mandate the use of RFC 4884
>>> and a minimum size for the echo of the dropped packet.
>>>
>>
>>
>