Re: [Captive-portals] Questions about PvD/API

David Bird <dbird@google.com> Sat, 19 August 2017 00:52 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 DCD17132408 for <captive-portals@ietfa.amsl.com>; Fri, 18 Aug 2017 17:52:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 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, SPF_PASS=-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=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 VlYikjEgBAiy for <captive-portals@ietfa.amsl.com>; Fri, 18 Aug 2017 17:52:19 -0700 (PDT)
Received: from mail-qk0-x234.google.com (mail-qk0-x234.google.com [IPv6:2607:f8b0:400d:c09::234]) (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 61200132223 for <captive-portals@ietf.org>; Fri, 18 Aug 2017 17:52:19 -0700 (PDT)
Received: by mail-qk0-x234.google.com with SMTP id o124so52807688qke.3 for <captive-portals@ietf.org>; Fri, 18 Aug 2017 17:52:19 -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=Ti/mL/stEnGyh4H+v4Zd7JEYEJHZDWzA4ssjRbYqysQ=; b=bRMxfLEcyI9UESu+lboTqwf4O02uhlBQ74f8iJ2zrL9XTe5GfmleP4hEEzOuXKqTGQ dndYUX/OYv8CdWOzT1mPzvkI9hFkJ0G13re9WNHli4WKI20MCuU/Jxzi0wp43yqSgehS 5yl01Vhtb4A5wBhvsAQkiFEURZe1zBkeBjebrlfhzdASmXGwbtVHq+aedWD6Ywtyt3tL 8skJYzHQCl5xqrU0U8EkpYQICroMHDvquP7CiPnpGAUboYiF7Ecd/nwcGvJhnQgxR6uw yjMt9a22CrTiZAIsZA4jU59YVB+a0DOEOP734yiKtZ/YNhtv1Uhnl3ju8F12wFgtLz4S 0tCw==
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=Ti/mL/stEnGyh4H+v4Zd7JEYEJHZDWzA4ssjRbYqysQ=; b=Ik/LozibXKts12U+bqeJsmtEDpe+kyRwnxPk/FakGYDcE/ig/ISNfDcR6luNavQBu8 5VrS2Vr6UBBhsdA3MWnJUWGZDSNvD3sWKTBmoGMXaxDzVByGjczXkOoEMQ1x59JOyzUy iA4e8jZ6qOhRogHGUbJgtWunpP+2kwGNNAz3aAQNTWCAR3ElRM2VFI7omo6QWRf8qfc1 W14hlZpP8MjPCUq2ZvCfWRxLI6iqzUIft2wWFYnSl1OTBmokvs0vyeECOtH22WZ3dBnz PZMfM/RGn5ZVtK1pvtKDQaptCc3xoOuBUrEuHeeabaG7udmbAIxUACseSG4Jf7tZS3Mq 9cug==
X-Gm-Message-State: AHYfb5ikEMHwVsSQXQcIF3Jx4hrzcnCr7BXRXKGFqMn4mce6CWFAOp5I LfFmtZw10HUGGwmY1am3ZWROC5OdSx4O
X-Received: by 10.55.198.25 with SMTP id b25mr4967998qkj.280.1503103938184; Fri, 18 Aug 2017 17:52:18 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.12.148.217 with HTTP; Fri, 18 Aug 2017 17:52:17 -0700 (PDT)
In-Reply-To: <A5B74413-32D8-4FE4-BDF7-DAA95266AAF4@apple.com>
References: <CADo9JyU+XGYFWdNeXOBw1O43Pjyn0jZhGxDTb7VbLF+Jg4Xj4w@mail.gmail.com> <CAAedzxq4UhueFW=U-Tuc1gvG8Tapc7VE7BM2Akt9OXuzN3jLyQ@mail.gmail.com> <CADo9JyW0J7xzaosG5PJOFPHMy2g6vZ1cVpW6_YsuOdaKWqumkQ@mail.gmail.com> <A5B74413-32D8-4FE4-BDF7-DAA95266AAF4@apple.com>
From: David Bird <dbird@google.com>
Date: Fri, 18 Aug 2017 17:52:17 -0700
Message-ID: <CADo9JyUJTPRT9454VdZEM1nwFfxPSrMX3+Uk9i325uboQUya7g@mail.gmail.com>
To: Tommy Pauly <tpauly@apple.com>
Cc: Erik Kline <ek@google.com>, captive-portals@ietf.org, "Eric Vyncke (evyncke)" <evyncke@cisco.com>
Content-Type: multipart/alternative; boundary="001a11479ae84c41c3055710a880"
Archived-At: <https://mailarchive.ietf.org/arch/msg/captive-portals/GgfX6XgzHY1W9hkym8qG4A2NRXs>
Subject: Re: [Captive-portals] Questions about PvD/API
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: Sat, 19 Aug 2017 00:52:23 -0000

Thanks Tommy,

I don't dispute that PvD provides an elegant set of solutions --
particularly in enterprise and other 'private' networks. I question,
however, the value in public(/guest) access -- where everyone wants you to
access their network over others, for 'retail analytic' or
branding/attribution(/exploit) purposes.

Another way to see the PvD integration/deployment:

1. Today, we join a network, always do a probe, which redirects to captive
portal
2. A PvD URL is provide, so a captive portal notification is generated to
the user (is that what 'we just make a connection directly' means?)
3. We may have also gotten RFC7710 URL, there are potentially two APIs in
play at the same time, which is extra confusing (?)
4. The first NAS vendor release products with support, venues deploy and
start 'fiddling' with the new feature and URL to PvD end-points
5. The first UE vendor releases products with support, start using it at
said venues... complain to vendor about problems unique to this new device
6. In some networks, users complain that *only* their new PvD device is
seeing a captive portal, while all their other devices do not. Staff at the
coffee shop don't believe me; all their devices work too.

I think there are fundamental issues in splitting what should be 'network
notification' into web APIs....

1. Tomorrow, we join a network, always do a probe, which redirects to
captive portal

It wasn't clear in your e-mail if RFC7710 can be used *without* providing a
URL, or is there a PvD specific DHCP option?

Thanks,
David


On Wed, Aug 16, 2017 at 9:20 AM, Tommy Pauly <tpauly@apple.com> wrote:

> Hi David,
>
> You mention in one of your emails that you'd expect there to be many
> "broken PvD" deployments, which would either necessitate ignoring PvD and
> using legacy mechanisms, or else having the user face a broken portal. My
> impression is that if client-side deployments fail closed—that is, if there
> is a PvD advertised, but it does not work well, then we treat the network
> as broken. If this client behavior is consistent from the start of
> deployment, then I would think that deployments would notice very quickly
> if they are broken. The fundamental part of the PvD being advertised is in
> the RAs—if our DHCP or RAs are broken on a network, we generally are going
> to be broken anyhow.
>
> As far as where the API resides, I appreciate your explanation of the
> various complexities. My initial take is this:
>
> - Where a PvD is being served is up to the deployment, and determined by
> the entity that is providing the RAs. To that end, the server that hosts
> the API for extended PvD information may be very different for
> enterprise/carrier scenarios than in captive portals for coffee shops.
> - For the initial take for Captive Portals, I would co-locate the "PvD
> API" server with the "Captive API" and "Captive Web Server". Presumably,
> the device that was previously doing the HTTP redirects would be able to do
> the similar coordination of making sure the PvD ID that is given out to
> clients matches the PvD API server (which is the same as the "Captive Web
> Server").
>
> For the captive use-case, I see the integration of PvDs as an incremental
> step:
>
> 1. Today, we join a network, always do a probe, which may get redirected
> to a captive web server
> 2. With RFC 7710, we would join a network and do the same as (1), unless
> the captive URL is given in the DHCP/RA and we just make a connection
> directly.
> 3. With the Captive API draft, we can interact with the portal other than
> just showing a webpage; but this may still be bootstrapped by 7710 if not
> using another mechanism
> 4. With PvDs, the mechanism in 7710 is generalized to support APIs other
> than just captive, and can indicate that no captive portal or other
> extended info is present; and the PvD API in this form is just a more
> generic version of the captive API that allows us to use the same mechanism
> for other network properties that aren't specifically captive (like
> enterprise network extended info, or walled gardens)
>
> Getting into the arms race of people avoiding the captive probes: if
> someone doesn't want to interact with the client OS's captive portal
> system, they can and likely will not change anything and just keep
> redirecting pages. Hopefully if a better solution becomes prevalent enough
> in the future, client OS's will be able to just ignore and reject any
> network that redirects traffic, and the only supported captive portals
> would be ones that interact in specified ways and advertise themselves as
> captive networks. In order to get to this point, there certainly needs to
> be a carrot to incentivize adoption. My goal with the more flexible
> interaction supported by PvD is that we will allow the networks to provide
> a better user experience to people joining their networks, and integrate
> with client OS's to streamline the joining process (notification of the
> network being available, who owns it, how to accept and how to pay), the
> maintenance process (being able to integrate time left or bytes left on the
> network into the system UI), and what is allowed or not on the network.
>
> Thanks,
> Tommy
>
>
> On Aug 16, 2017, at 6:51 AM, David Bird <dbird@google.com> wrote:
>
> My question about where the PvD API resides was somewhat rhetorical. In
> reality, I'm sure you will find all of the above - In the NAS (e.g. Cisco),
> at the hotspot services provider, and something hosted next to the venues
> website. It depends mostly on how this URL is configured, and by whom. (One
> could imagine people doing all sorts of things).
>
> My question more specifically for the authors is, how would Cisco
> implement PvD for Guest/Public access and would it actively stop avoiding
> Apple captive portal detection? Or, would turning on PvD just make that
> 'feature' easier to implement?
>
> On Tue, Aug 15, 2017 at 5:19 PM, Erik Kline <ek@google.com> wrote:
>
>> Randomly selecting Tommy and Eric so this bubbles up in their inbox.
>>
>> On 2 August 2017 at 10:36, David Bird <dbird@google.com> wrote:
>> > Could an author of PvD help me understand the following questions for
>> each
>> > of the diagrams below I found on the Internet -- which represent some
>> > typical hotspot configurations out there...
>> >
>> > - Where would the API reside?
>> >
>> > - Who 'owns' the API?
>> >
>> > - How does the API keep in-sync with the NAS? Who's responsible for that
>> > (possibly multi-vendor, multi-AAA) integration?
>> >
>> > 1) Typical Hotspot service company outsourcing:
>> > http://cloudessa.com/wp-content/uploads/2013/08/shema-Captiv
>> ePortalSolution_beta2b.png
>> >
>> > 2) Same as above, except venue owns portal:
>> > http://cloudessa.com/wp-content/uploads/2013/07/solutions_
>> hotspots-co-working-cloudessa_2p1.png
>> >
>> > 3) Now consider the above, but the venue has more roaming partners and
>> > multi-realm RADIUS setup in their Cisco NAS:
>> > http://www.cisco.com/c/en/us/td/docs/wireless/controller/8-3
>> /config-guide/b_cg83/b_cg83_chapter_0100111.html
>> > describes many options -- including separate MAC authentication sources,
>> > optional portals for 802.1x (RADIUS) authenticated users, and so much
>> > more...
>> >
>> > "Cisco ISE supports internal and external identity sources. Both
>> sources can
>> > be used as an authentication source for sponsor-user and guest-user
>> > authentication."
>> >
>> > Also note this interesting article:  the section Information About
>> Captive
>> > Bypassing and how it describes how to avoid Apple captive portal
>> > detection!!! "If no response is received, then the Internet access is
>> > assumed to be blocked by the captive portal and Apple’s Captive Network
>> > Assistant (CNA) auto-launches the pseudo-browser to request portal
>> login in
>> > a controlled window. The CNA may break when redirecting to an ISE
>> captive
>> > portal. The controller prevents this pseudo-browser from popping up."
>> >
>> >
>> >
>> > _______________________________________________
>> > Captive-portals mailing list
>> > Captive-portals@ietf.org
>> > https://www.ietf.org/mailman/listinfo/captive-portals
>> >
>>
>
>
>