Re: [Captive-portals] Roman Danyliw's Discuss on draft-ietf-capport-api-07: (with DISCUSS and COMMENT)

Tommy Pauly <tpauly@apple.com> Wed, 10 June 2020 18:08 UTC

Return-Path: <tpauly@apple.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 AAD523A0A29; Wed, 10 Jun 2020 11:08:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 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, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, 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=apple.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 Z9bvFKI0N6Fn; Wed, 10 Jun 2020 11:08:47 -0700 (PDT)
Received: from ma1-aaemail-dr-lapp02.apple.com (ma1-aaemail-dr-lapp02.apple.com [17.171.2.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B4CB03A0A26; Wed, 10 Jun 2020 11:08:47 -0700 (PDT)
Received: from pps.filterd (ma1-aaemail-dr-lapp02.apple.com [127.0.0.1]) by ma1-aaemail-dr-lapp02.apple.com (8.16.0.42/8.16.0.42) with SMTP id 05AHtWBd015410; Wed, 10 Jun 2020 11:08:44 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=from : message-id : content-type : mime-version : subject : date : in-reply-to : cc : to : references; s=20180706; bh=8O8Bs73pKhfJzioG8eXj0tBZoddemPVyCuPr+AgzSZE=; b=gYa0COV8NP9kJ36fTKNNXNI5aWZdSA5asS33AyxuNdk4itimf7iZOPxiJkzEp65JdCbI IhFSkUeiRHicQ/N0LzD70hHKMHH2H3k/tR57FmFuMV3k3D942AoPT0ZAWI6Q4m6T0eyW kdU/pdauwlpwyCnJ4RgjqAIu7TCmLmXrdkK0caqhhjigdmWZGtK9YRk+e+aPe42fo49n jZ5+vzkb6pkoTBdQb7KTxjJn2Ao9X4BMNlfCNDiz25G0z5HjNJl7mLEQ4N2uJzQ6eARR YIE2Z4TR+AWB2RVpHFmDC24FnZItkXWAIbUc4PZZRFEmEvOf0W0uESb2nFkdgCeoiH98 zQ==
Received: from rn-mailsvcp-mta-lapp01.rno.apple.com (rn-mailsvcp-mta-lapp01.rno.apple.com [10.225.203.149]) by ma1-aaemail-dr-lapp02.apple.com with ESMTP id 31g7tshvv8-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Wed, 10 Jun 2020 11:08:44 -0700
Received: from rn-mailsvcp-mmp-lapp03.rno.apple.com (rn-mailsvcp-mmp-lapp03.rno.apple.com [17.179.253.16]) by rn-mailsvcp-mta-lapp01.rno.apple.com (Oracle Communications Messaging Server 8.1.0.5.20200312 64bit (built Mar 12 2020)) with ESMTPS id <0QBQ00R6I2EJ4790@rn-mailsvcp-mta-lapp01.rno.apple.com>; Wed, 10 Jun 2020 11:08:43 -0700 (PDT)
Received: from process_milters-daemon.rn-mailsvcp-mmp-lapp03.rno.apple.com by rn-mailsvcp-mmp-lapp03.rno.apple.com (Oracle Communications Messaging Server 8.1.0.5.20200312 64bit (built Mar 12 2020)) id <0QBQ00S001ZKIR00@rn-mailsvcp-mmp-lapp03.rno.apple.com>; Wed, 10 Jun 2020 11:08:43 -0700 (PDT)
X-Va-A:
X-Va-T-CD: 162fe9460b6f3dd6db7248c3cd1a8625
X-Va-E-CD: f53332d59651a9fa46df7ba8b699475a
X-Va-R-CD: dac0c89c238389838463431ef6dda2c9
X-Va-CD: 0
X-Va-ID: ae9d9d2e-7882-4be2-94c0-91f88e198da3
X-V-A:
X-V-T-CD: 162fe9460b6f3dd6db7248c3cd1a8625
X-V-E-CD: f53332d59651a9fa46df7ba8b699475a
X-V-R-CD: dac0c89c238389838463431ef6dda2c9
X-V-CD: 0
X-V-ID: e2901eab-6541-4540-b723-64ae79a4c19f
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216, 18.0.687 definitions=2020-06-10_11:2020-06-10, 2020-06-10 signatures=0
Received: from [17.232.172.83] (unknown [17.232.172.83]) by rn-mailsvcp-mmp-lapp03.rno.apple.com (Oracle Communications Messaging Server 8.1.0.5.20200312 64bit (built Mar 12 2020)) with ESMTPSA id <0QBQ00PGG2EEWF00@rn-mailsvcp-mmp-lapp03.rno.apple.com>; Wed, 10 Jun 2020 11:08:43 -0700 (PDT)
From: Tommy Pauly <tpauly@apple.com>
Message-id: <EA4FFE1A-31A0-4DCE-BF2D-1D9449EE0C5A@apple.com>
Content-type: multipart/alternative; boundary="Apple-Mail=_540DBA17-5EDE-4F7D-A235-96FC843547C0"
MIME-version: 1.0 (Mac OS X Mail 13.4 \(3608.80.7.2.3\))
Date: Wed, 10 Jun 2020 11:08:43 -0700
In-reply-to: <159175749592.8662.1482979746870215476@ietfa.amsl.com>
Cc: The IESG <iesg@ietf.org>, draft-ietf-capport-api@ietf.org, capport-chairs@ietf.org, captive-portals@ietf.org, Martin Thomson <mt@lowentropy.net>
To: Roman Danyliw <rdd@cert.org>
References: <159175749592.8662.1482979746870215476@ietfa.amsl.com>
X-Mailer: Apple Mail (2.3608.80.7.2.3)
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216, 18.0.687 definitions=2020-06-10_11:2020-06-10, 2020-06-10 signatures=0
Archived-At: <https://mailarchive.ietf.org/arch/msg/captive-portals/x1_ug9gE-8PoPBIvuh_j_Toccps>
Subject: Re: [Captive-portals] Roman Danyliw's Discuss on draft-ietf-capport-api-07: (with DISCUSS and COMMENT)
X-BeenThere: captive-portals@ietf.org
X-Mailman-Version: 2.1.29
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: Wed, 10 Jun 2020 18:08:50 -0000

Hi Roman,

Thanks for your comments! I’ve updated our working copy with this commit:

https://github.com/capport-wg/api/commit/ef6f9afe84f2e49827560b5e2e8f292966107896 <https://github.com/capport-wg/api/commit/ef6f9afe84f2e49827560b5e2e8f292966107896>

The full editor’s copy can be viewed here:

https://capport-wg.github.io/api/draft-ietf-capport-api.html <https://capport-wg.github.io/api/draft-ietf-capport-api.html>

> On Jun 9, 2020, at 7:51 PM, Roman Danyliw via Datatracker <noreply@ietf.org> wrote:
> 
> Roman Danyliw has entered the following ballot position for
> draft-ietf-capport-api-07: Discuss
> 
> When responding, please keep the subject line intact and reply to all
> email addresses included in the To and CC lines. (Feel free to cut this
> introductory paragraph, however.)
> 
> 
> Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
> for more information about IESG DISCUSS and COMMENT positions.
> 
> 
> The document, along with other ballot positions, can be found here:
> https://datatracker.ietf.org/doc/draft-ietf-capport-api/
> 
> 
> 
> ----------------------------------------------------------------------
> DISCUSS:
> ----------------------------------------------------------------------
> 
> “Discuss discuss”.  Section 4 says “The API server endpoint MUST be accessed
> using HTTP over TLS (HTTPS) and SHOULD be served on port 443 [RFC2818].”  There
> is also various guidance on verifying the API server identity and access to
> revocation and time resources.  However, the way I read the definition of the
> “Captive Portal API Server” per Section 2 and per Figure 1 of
> draft-ietf-capport-architecture, the API server is logically different than the
> service at the user-portal-url URL (i.e., Web Portal Server in the
> architecture).
> 
> Section 7.1 helpfully points out “Information passed between a client and a
> Captive Portal system may include a user's personal information, such as a full
> name and credit card details.  Therefore, it is important that Captive Portal
> API Servers do not allow access to the Captive Portal API over unencrypted
> sessions.”  The first sentence is makes sense, but the second, while true,
> doesn’t follow the first for me.  PII and credit card information would be the
> kind of input you would provide to the _Web Portal Server_ not the Captive
> Portal API (of course both are part of the overall Captive Portal system).

This has been updated to:

Information passed between a client and the user-facing web portal may include a user's personal information, such as a full name and credit card details. Therefore, it is important that both the user-facing web portal and the API server that points a client to the web portal are only accessed over encrypted connections.


>  I
> feel there is missing guidance roughly on the order of the user-portal-url
> “provides the URL of a web portal _that MUST be accessed over TLS_ with which a
> user can interact.” (and the venue-info-url SHOULD use TLS too).

Good point. This was implicit in some of our text, but needed to be stated:

- "user-portal-url" (string): provides the URL of a web portal that MUST be accessed over TLS with which a user can interact.
- "venue-info-url" (string): provides the URL of a webpage or site that SHOULD be accessed over TLS on which the operator of the network has information that it wishes to share with the user (e.g., store info, maps, flight status, or entertainment).


> 
> Both this draft and draft-ietf-capport-rfc7710bis-07 are fundamentally
> providing pointers to other resources.  Would it be out of scope for this
> document to place restrictions on what the API is capable of pointing to?  If
> not here, then where?
> 
> 
> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
> 
> Thanks for describing the protocol interaction within the reference
> architecture of draft-ietf-capport-architecture.
> 
> ** Ben points to a few places to tighten up the TLS mechanics (e.g.,
> referencing BCP195, non-OCSP stapling revocation) which I won't repeat here. 
> These are important.

Indeed. Please see responses to Ben’s comments.
> 
> ** Are there any retry behavior to specify for the client?  Say the client
> tries to the visit the API URL and the server returns an HTTP 500 error? Or,
> the API server doesn’t respond at all?

I’ve added this text to clarify:

Client behavior for issuing requests for updated JSON content is implementation-specific, and can be based on user interaction or the indications of seconds and bytes remaining in a given session. If at any point the client does not receive valid JSON content from the API server, either due to an error or due to receiving no response, the client SHOULD continue to apply the most recent valid content it had received; or, if no content had been received previously, proceed to interact with the captive network as if the API capabilities were not present.

> 
> ** Editorial Nits
> 
> -- Section 4.1. Typo.  s/mechnism/mechanisms/
> 
> -- Section 6.  Typo.  s/the the/the/
> 
> -- Section 6.  Typo. s/extenal/external/
> 
> 

Thanks! Fixed all of these.

Best,
Tommy
>