Re: [Taps] Roman Danyliw's Discuss on draft-ietf-taps-interface-22: (with DISCUSS and COMMENT)

"Brian Trammell (IETF)" <ietf@trammell.ch> Tue, 14 November 2023 16:22 UTC

Return-Path: <ietf@trammell.ch>
X-Original-To: taps@ietfa.amsl.com
Delivered-To: taps@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C786EC14CE31 for <taps@ietfa.amsl.com>; Tue, 14 Nov 2023 08:22:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.103
X-Spam-Level:
X-Spam-Status: No, score=-2.103 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=trammell.ch
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5ZeY0SZNKDzd for <taps@ietfa.amsl.com>; Tue, 14 Nov 2023 08:22:26 -0800 (PST)
Received: from smtp-190d.mail.infomaniak.ch (smtp-190d.mail.infomaniak.ch [185.125.25.13]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D4D64C15152B for <taps@ietf.org>; Tue, 14 Nov 2023 08:22:24 -0800 (PST)
Received: from smtp-2-0000.mail.infomaniak.ch (unknown [10.5.36.107]) by smtp-2-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4SVBQk4qwhzMq23b; Tue, 14 Nov 2023 16:22:22 +0000 (UTC)
Received: from unknown by smtp-2-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4SVBQk0JKfzMpnPp; Tue, 14 Nov 2023 17:22:21 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=trammell.ch; s=20191114; t=1699978942; bh=gg2yzxA1Bl1kar47ye1a6qp4OMo31uR47dz4LH4REUE=; h=From:Subject:Date:In-Reply-To:Cc:To:References:From; b=JHHTNi70Afl4MiW0CsyKFzGoIFHp1wuWgkX8TRdhPUIbsCf7nSMhFp1ifIf34WY0Y G+08PdxbyqQ9sWZZ/nO1/EOwT4QZkmI0x0F86B7Ld9g7RDYD3+iIJqht52IF1APaGX jPzwHXimMiF453jn2r1ebnGzPtMVRAPc9Xt/O6iU=
From: "Brian Trammell (IETF)" <ietf@trammell.ch>
Message-Id: <FAE5EBC2-026D-4A2A-A5F5-FFC6E08CD8B4@trammell.ch>
Content-Type: multipart/alternative; boundary="Apple-Mail=_05041099-7AA5-45BD-AAAB-90B147B3828B"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.200.91.1.1\))
Date: Tue, 14 Nov 2023 17:22:11 +0100
In-Reply-To: <BN2P110MB1107DF28382D392A4FDBB281DCC1A@BN2P110MB1107.NAMP110.PROD.OUTLOOK.COM>
Cc: The IESG <iesg@ietf.org>, "draft-ietf-taps-interface@ietf.org" <draft-ietf-taps-interface@ietf.org>, "taps-chairs@ietf.org" <taps-chairs@ietf.org>, "taps@ietf.org" <taps@ietf.org>, "anna.brunstrom@kau.se" <anna.brunstrom@kau.se>
To: Roman Danyliw <rdd@cert.org>, Paul Wouters <paul@nohats.ca>
References: <169393624961.57527.10448223141659236366@ietfa.amsl.com> <02AC9951-CD5A-46AB-9B82-01B434FC5131@trammell.ch> <BN2P110MB1107DF28382D392A4FDBB281DCC1A@BN2P110MB1107.NAMP110.PROD.OUTLOOK.COM>
X-Mailer: Apple Mail (2.3774.200.91.1.1)
X-Infomaniak-Routing: alpha
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/lOyCgj8zJ1vIa9YF7QsEdhxnbyU>
Subject: Re: [Taps] Roman Danyliw's Discuss on draft-ietf-taps-interface-22: (with DISCUSS and COMMENT)
X-BeenThere: taps@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "IETF Transport Services \(TAPS\) Working Group" <taps.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/taps>, <mailto:taps-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/taps/>
List-Post: <mailto:taps@ietf.org>
List-Help: <mailto:taps-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/taps>, <mailto:taps-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Nov 2023 16:22:30 -0000

hi Roman,

(inline per tradition)

> On 28 Sep 2023, at 23:01, Roman Danyliw <rdd@cert.org> wrote:
> 
> Hi Brian!
> 
> Thanks for the response and sorry for the delay.  More inline ...
> 
>> -----Original Message-----
>> From: iesg <iesg-bounces@ietf.org <mailto:iesg-bounces@ietf.org>> On Behalf Of Brian Trammell (IETF)
>> Sent: Thursday, September 7, 2023 7:29 AM
>> To: Roman Danyliw <rdd@cert.org <mailto:rdd@cert.org>>
>> Cc: The IESG <iesg@ietf.org <mailto:iesg@ietf.org>>; draft-ietf-taps-interface@ietf.org <mailto:draft-ietf-taps-interface@ietf.org>; taps-
>> chairs@ietf.org <mailto:chairs@ietf.org>; taps@ietf.org <mailto:taps@ietf.org>; anna.brunstrom@kau.se <mailto:anna.brunstrom@kau.se>
>> Subject: Re: [Taps] Roman Danyliw's Discuss on draft-ietf-taps-interface-22:
>> (with DISCUSS and COMMENT)
>> 
>> hi Roman!
>> 
>> Thanks for the questions. Points not addressed inline below will be tracked at
>> https://github.com/ietf-taps/api-drafts/issues, but there’s a DISCUSS here, so
>> let’s discuss. :)
>> 
>>> On 5 Sep 2023, at 19:50, Roman Danyliw via Datatracker <noreply@ietf.org>
>> wrote:
>>> 
>>> ----------------------------------------------------------------------
>>> DISCUSS:
>>> ----------------------------------------------------------------------
>>> 
>>> ** Section 6.3.  I’m having trouble understanding the level of
>>> abstraction used to specify the SecurityParameter API if the desired
>>> outcome is an interoperable solution.  My top-line concern is around
>>> what are the defined security parameters are where are they formally
>>> defined. The API examples seem to suggest they are “identity,
>>> server-certificate, client-certificate, key-pair, supported-group, ciphersuite,
>> signature-algorithm, and pre-shared-key.”
>> 
>> This is an artifact of trying to balance between two sometimes-opposing goals
>> with the TAPS interface work:
>> 
>> (1) The interface specification has to be malleable enough to fit with the
>> existing “built environment” of the platforms that will implement it; concepts
>> that are ancillary to a transport services implementation should be left
>> undefined so that system implementors can build TAPS into their platforms
>> without completely changing how the platform works. IOW we’re not going to
>> define your PKI for you, or your interfaces for managing protocol selection
>> policy, because you should already have these things, because it’s not useful for
>> the purposes of application interoperability to do so, and because we need to
>> set the boundaries of scope somewhere if we want to be done in the ‘20s.
>> 
>> (2) The interface specification has to be rigid enough to be usefully
>> interoperable; i.e., two different applications of TAPS on the same platform
>> using the interface in the same way should result in indistinguishably-
>> equivalent communications, while an application using TAPS on one platform
>> that is minimally ported to a different platform should result in unsurprisingly-
>> equivalent communications (the distinction here being that different Transport
>> Services system implementations might differ in meaningful-to-the-platform
>> ways, i.e. in terms of the policy priorities in racing or indeed in the set of
>> underlying stacks implemented).
>> 
>> Basically what we’re doing here is guessing (educatedly, but still) about the
>> minimum-interference shape with how existing systems do X (in this case,
>> security property management), under the assumption that these platforms get
>> it right. I think we got this balance mostly right everywhere, but security is the
>> hardest place to do so, precisely because of the rigidity and the formality
>> required in the security space pushes toward an imbalance on the latter.
> 
> Thanks for explaining the goal and the intent.  The tensions between those goals is clear.
> 
> [snip]
> 
>> I do think we need to make some changes to the doc to address these points.
>> I’d suggest the following:
>> 
>> - Define the highest usable level of abstraction for these parameters
>> - Reiterate the principle that the exact set of values for available enumerations
>> and the exact data formats for each security parameter are platform-
>> dependent.
>> 
>> If this would be an acceptable resolution to the DISCUSS, I’ll file the issue and
>> put together the PR.
> 
> The above plan makes sense.  Thanks for laying out.  I would also recommend that the text calibrate the expectations of an "abstract API" and degree of expected interoperability.  Inspirationally, the abstract notes that this API is "intended to replace the BSD sockets API as the common interface to the transport layer, in an environment where endpoints could select from multiple interfaces and potential transport protocols."  That's a very helpful touchstone.  If I squint at the BSD socket API, I see two key differences from what's presented in the current text.  Because one could read the .h file, the BSD sockets interface was clear on:
> 
> (a)  data structures and data types.  This draft introduces complicated abstractions with limited definition or underlying representation (e.g., "identity", "ciphersuite").  Additionally, there is no sense of where enumerated values would come from.  
> 
> (b) function prototypes.  This draft has illustrative examples of pseudo-code, but the canonical list of functions and their associated prototypes isn't clear.
> 
> Per the goals you outlined in (1) and (2) above, it is clear how this ambiguity serves goals (1), but it seems to impede (2).

I believe that the changes in -23 (just submitted), among (many) other things, implement this (specifically https://github.com/ietf-tapswg/api-drafts/pull/1430); please take a look.

(+Paul — this change also addresses the points you raised in your DISCUSS re: security properties)

Thanks, cheers,

Brian