[Captive-portals] Re: seeking review comments on revised CAPPORT considerations in brski-cloud

Tommy Pauly <tpauly@apple.com> Mon, 30 June 2025 03:27 UTC

Return-Path: <tpauly@apple.com>
X-Original-To: captive-portals@mail2.ietf.org
Delivered-To: captive-portals@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 9ECBA3B58553 for <captive-portals@mail2.ietf.org>; Sun, 29 Jun 2025 20:27:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.798
X-Spam-Level:
X-Spam-Status: No, score=-2.798 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=apple.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MKt0u8j3ZROv for <captive-portals@mail2.ietf.org>; Sun, 29 Jun 2025 20:27:34 -0700 (PDT)
Received: from ma-mx02.apple.com (ma-mx02.apple.com [17.23.4.17]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 8C1F83B5854E for <captive-portals@ietf.org>; Sun, 29 Jun 2025 20:27:34 -0700 (PDT)
Received: from mr55p01nt-mtap05.apple.com (mr55p01nt-mtap05.apple.com [10.170.185.195]) by st47p01nt-mxp02.apple.com (Oracle Communications Messaging Server 8.1.0.27.20250130 64bit (built Jan 30 2025)) with ESMTPS id <0SYN0H77ZG9W2200@st47p01nt-mxp02.apple.com> for captive-portals@ietf.org; Mon, 30 Jun 2025 03:27:34 +0000 (GMT)
X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-06-27_05,2025-06-27_01,2025-03-28_01
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=cc : content-transfer-encoding : content-type : date : from : in-reply-to : message-id : mime-version : references : subject : to; s=20180706; bh=XvmXLT8DL19wdLvRODyNDUJzLSnDkyDud88YmSfz+aU=; b=WAua9MlhOcEMqR6X/fD77u6EPY7dZUdt+dDmbHWGngW30d88ZHOTczcuM6i9zv95EX/+ szBwL63Y4WOF6uOrK/UzsoVj9g5LKOxknV7bAmefupntVwdKExEUV1XvHQbgMM4dPx9N MuAPy1wXsV9TUtx7dn+b3/SpBWdOnJA4mt5CYMJXmzPxXTM33jgCEpG1HMQgu2vKK+oB /AyUkusMJheSbGAx+klmsHlspLvxzPACjI0K08lhp1+6gwHqW6/cp21DdKaL75RocRlx iowDehv4rEfhXVJ+NWibT507W6aEbOUL/OCAVGgPnwR737G0yFqItcfJ/v1wpKstAx0y fw==
Received: from mr55p01nt-mmpp05.apple.com (mr55p01nt-mmpp05.apple.com [10.170.185.201]) by mr55p01nt-mtap05.apple.com (Oracle Communications Messaging Server 8.1.0.27.20250130 64bit (built Jan 30 2025)) with ESMTPS id <0SYN1KSXXG9WPQ60@mr55p01nt-mtap05.apple.com>; Mon, 30 Jun 2025 03:27:32 +0000 (GMT)
Received: from process_milters-daemon.mr55p01nt-mmpp05.apple.com by mr55p01nt-mmpp05.apple.com (Oracle Communications Messaging Server 8.1.0.27.20250130 64bit (built Jan 30 2025)) id <0SYN1VP00FM0XW00@mr55p01nt-mmpp05.apple.com>; Mon, 30 Jun 2025 03:27:32 +0000 (GMT)
X-Va-A:
X-Va-T-CD: 4f730284dbb5a82fcc8b1e5c2a0835df
X-Va-E-CD: f5c38f7c12e8310ebed65903b1045689
X-Va-R-CD: 4e37325ce09d2c86c558f1dee72c7db9
X-Va-ID: c4fedf1c-9301-460d-b065-b19cd4c5a151
X-Va-CD: 0
X-V-A:
X-V-T-CD: 4f730284dbb5a82fcc8b1e5c2a0835df
X-V-E-CD: f5c38f7c12e8310ebed65903b1045689
X-V-R-CD: 4e37325ce09d2c86c558f1dee72c7db9
X-V-ID: 8552145c-148b-4a6a-b532-99c255ada265
X-V-CD: 0
X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-06-27_05,2025-06-27_01,2025-03-28_01
Received: from smtpclient.apple (usrmr4-acrelay-qa-002.ts.apple.com [100.70.146.108]) by mr55p01nt-mmpp05.apple.com (Oracle Communications Messaging Server 8.1.0.27.20250130 64bit (built Jan 30 2025)) with ESMTPSA id <0SYN1WF0KG9V3400@mr55p01nt-mmpp05.apple.com>; Mon, 30 Jun 2025 03:27:32 +0000 (GMT)
Content-type: text/plain; charset="utf-8"
Content-transfer-encoding: quoted-printable
From: Tommy Pauly <tpauly@apple.com>
MIME-version: 1.0 (1.0)
Date: Sun, 29 Jun 2025 20:27:21 -0700
Message-id: <C651FAFC-8884-46FA-B0B4-0D0E2330863D@apple.com>
References: <11335.1751223139@obiwan.sandelman.ca>
In-reply-to: <11335.1751223139@obiwan.sandelman.ca>
To: Michael Richardson <mcr+ietf@sandelman.ca>
X-Mailer: iPhone Mail (23A285a)
Message-ID-Hash: HHEVPBDK7LRTYIGFW5CVXQAL3FM77IVP
X-Message-ID-Hash: HHEVPBDK7LRTYIGFW5CVXQAL3FM77IVP
X-MailFrom: tpauly@apple.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-captive-portals.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: captive-portals@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Captive-portals] Re: seeking review comments on revised CAPPORT considerations in brski-cloud
List-Id: Discussion of issues related to captive portals <captive-portals.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/captive-portals/czKwsEAbid5O2P6iHQ5Ah_3Uw7w>
List-Archive: <https://mailarchive.ietf.org/arch/browse/captive-portals>
List-Help: <mailto:captive-portals-request@ietf.org?subject=help>
List-Owner: <mailto:captive-portals-owner@ietf.org>
List-Post: <mailto:captive-portals@ietf.org>
List-Subscribe: <mailto:captive-portals-join@ietf.org>
List-Unsubscribe: <mailto:captive-portals-leave@ietf.org>


> On Jun 29, 2025, at 11:52 AM, Michael Richardson <mcr+ietf@sandelman.ca> wrote:
> 
> 
> https://github.com/anima-wg/brski-cloud/pull/239/files fixes some text based
> upon the IoTDIR review.  But, the entire section on interactions with captive
> portals could due with some review from the people on this list.
> 
> Original text is at:
> https://www.ietf.org/archive/id/draft-ietf-anima-brski-cloud-15.html#name-captive-portals
> 
> If you don't want to read the entire document, Figures 1/2 and the time
> sequence diagrams in section 4 might be enough.  If you need more RFC8995
> background, there is a 4min screencast at https://brski.org/brski-impls.html,
> which is watchable at 2x speed.
> 
> Slightly changed text (as of #239 above) is:
> 
>  ## Captive Portals
> 
>  A Pledge might find itself deployed in a network where a captive portal or
>  an intelligent home gateway that provides access control on all connections
>  is also deployed.
> 
>  Captive portals that do not follow the requirements of Section 1 of
>  {{?RFC8952}} MAY forcibly redirect HTTPS connections.
>  While this is a deprecated practice as it breaks TLS in a way that most
>  users can not deal with, it is still common in many networks.

I would question using a normative MAY here; clearly, it’s something the network can do and often will do, but it seems like this is more a statement of practice than saying “you MAY do this” as a thing we’d recommend. I would probably say “might”. 

Tommy
> 
>  When the Pledge attempts to connect to any Cloud Registrar, an incorrect
>  connection will be detected because the Pledge will be unable to verify the
>  TLS connection to its Cloud Registrar via DNS-ID check Section 6.3 of
>  {{RFC9525}}.
>  That is, the certificate returned from the captive portal will not match.
> 
>  At this point a network operator who controls the captive portal, noticing
>  the connection to what seems a legitimate destination (the Cloud Registrar),
>  MAY then permit that connection.  This enables the first connection to go through.
> 
> {MCR: yes, this seems very optimistic!}
> 
>  The connection is then redirected to the Registrar via 307, or to an EST
>  server via "est-domain" in a voucher.
>  If it is a 307 redirect, then a Provisional TLS connection will be
>  initiated, and it will succeed.
>  The Provisional TLS connection does not do DNS-ID verification ({{RFC9525,
>  Section 6.3}}), so the forced redirection to a captive portal system will
>  not be detected.
>  However, the subsequent BRSKI POST of a voucher request will most likely be
>  met by a 404 or 500 HTTP code.
>  Even if somehow it did work (because the captive portal was in fact an
>  attacker), any returned voucher would not be signed by a trusted MASA.
> 
>  It is RECOMMENDED therefore that the Pledge look for {{?RFC8910}}
>  attributes in DHCP, and if present, use the {{?RFC8908}} API to learn if it
>  is captive.
> 
>  The scenarios outlined here when a Pledge is deployed behind a captive
>  portal may result in failure scenarios, but do not constitute a security
>  risk, so long as the Pledge is correctly verifying all TLS connections as
>  per {{BRSKI}}.
> 
> --
> Michael Richardson <mcr+IETF@sandelman.ca>   . o O ( IPv6 IøT consulting )
>           Sandelman Software Works Inc, Ottawa and Worldwide
> 
> 
> 
> 
> _______________________________________________
> Captive-portals mailing list -- captive-portals@ietf.org
> To unsubscribe send an email to captive-portals-leave@ietf.org
> <signature.asc>