Re: [Taps] Paul Wouters' Discuss on draft-ietf-taps-interface-23: (with DISCUSS and COMMENT)

Michael Welzl <michawe@ifi.uio.no> Thu, 14 December 2023 05:41 UTC

Return-Path: <michawe@ifi.uio.no>
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 372A5C14CEFF; Wed, 13 Dec 2023 21:41:58 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.005
X-Spam-Level:
X-Spam-Status: No, score=-2.005 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_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=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 (2048-bit key) header.d=ifi.uio.no
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 zIoVhXi5p8xk; Wed, 13 Dec 2023 21:41:53 -0800 (PST)
Received: from mail-out01.uio.no (mail-out01.uio.no [IPv6:2001:700:100:10::50]) (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 F0F60C14F602; Wed, 13 Dec 2023 21:41:51 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ifi.uio.no; s=key2309; h=References:To:Cc:In-Reply-To:Date:Subject:Mime-Version: Content-Type:Message-Id:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=JI21td6O7PtRXzhqRzmnOhAyjPeTB+teOR3dz9LjqXc=; b=KeULcNcXcugPnWtUgz1U4mzkz2 Vu3uvjw/Wj7nKv+dy7tmhunH4L5Z+u6AFV/G+ZpKNacA0mU/jM/s07qQQQYObrN6cmO+ZkwU5NGz5 Qav/i+q4oyPQaPwoWE9NL3B4qZbfisGEmzpFuUhZ+cjFBBj7WvV4jSgEbNyUD/Dod+Gx1M5i+gkfB 88SZOGRN/Wz636Zjp5hMopnXdWpaZJ661DS1q2eH0JZWdLzskwkNWE9AxeHCbHKNr9dzgvEX1tSLq NRDh8mAZltBaSs/biXHPN6fl8J6DznmQMZCgPz4YTLPMkpEwtkQzMUdVy14HbTnG9x7VJ6nNy39f8 knzSTG0w==;
Received: from mail-mx02.uio.no ([129.240.10.43]) by mail-out01.uio.no with esmtps (TLS1.2) tls TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from <michawe@ifi.uio.no>) id 1rDeTl-002Xg1-0w; Thu, 14 Dec 2023 06:41:49 +0100
Received: from 178.165.198.175.wireless.dyn.drei.com ([178.165.198.175] helo=smtpclient.apple) by mail-mx02.uio.no with esmtpsa (TLS1.2:ECDHE-ECDSA-AES256-GCM-SHA384:256) user michawe (Exim 4.96.2) (envelope-from <michawe@ifi.uio.no>) id 1rDeTj-000DZq-2L; Thu, 14 Dec 2023 06:41:49 +0100
From: Michael Welzl <michawe@ifi.uio.no>
Message-Id: <A2614D36-4851-4170-BD0F-8106A60A82B7@ifi.uio.no>
Content-Type: multipart/alternative; boundary="Apple-Mail=_D95192FD-0F91-407E-BF84-10CC734A1C83"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\))
Date: Thu, 14 Dec 2023 06:41:38 +0100
In-Reply-To: <170243242231.33861.516142555398666090@ietfa.amsl.com>
Cc: The IESG <iesg@ietf.org>, draft-ietf-taps-interface@ietf.org, taps-chairs@ietf.org, taps WG <taps@ietf.org>, Anna Brunström <anna.brunstrom@kau.se>
To: Paul Wouters <paul.wouters@aiven.io>
References: <170243242231.33861.516142555398666090@ietfa.amsl.com>
X-Mailer: Apple Mail (2.3696.120.41.1.1)
X-UiO-SPF-Received: Received-SPF: neutral (mail-mx02.uio.no: 178.165.198.175 is neither permitted nor denied by domain of ifi.uio.no) client-ip=178.165.198.175; envelope-from=michawe@ifi.uio.no; helo=smtpclient.apple;
X-UiO-Spam-info: not spam, SpamAssassin (score=-4.9, required=5.0, autolearn=disabled, AWL=-0.096, HTML_MESSAGE=0.001, TVD_RCVD_IP=0.001, T_SCC_BODY_TEXT_LINE=-0.01, UIO_HTTP=0.2, UIO_MAIL_IS_INTERNAL=-5)
X-UiO-Scanned: A674929B273F8BFF5CA932BB5EC3790168F7A83A
X-UiOonly: 7896818A069A9571E4A2206A0DB83079A344C0CD
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/p503YNOez1pmNbOsyHw0MhWINxM>
Subject: Re: [Taps] Paul Wouters' Discuss on draft-ietf-taps-interface-23: (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: Thu, 14 Dec 2023 05:41:58 -0000

Dear Paul,

We have addressed all discuss as well as comment items by splitting emails up into github issues, and discussed and handled them all there.
As part of the process of addressing so many comments, it seems we have overlooked that we never actually formulated an email response to you; we’re very sorry!

Below, I’m answering your DISCUSS items by pointing at the relevant issue or PR, and summarizing the result of the discussion in line in the email:

> ----------------------------------------------------------------------
> DISCUSS:
> ----------------------------------------------------------------------
> 
> [updated for -24, although I feel most of my questions have not been discussed yet]
> 
> - netflows vs IP flows?
> 
> Is TAPS only meant for flows or does it also support IP transport.
> I don't see an example that would embody "setup a connection to 192.0.1.1 port
> 80, but require IPsec. I guess it could be added, eg a WithVPN("IPsec") or
> something, but I'm not sure you can specify credentials without those being
> interpreted to be for the port 80 in this example ? Is this specifically out
> of scope, or just not (yet) specified?
> 
> Related, lets say you want to only use a flow if it goes over TOR, I guess one
> could introduce a WithTOR() transport requirement. I'm a bit concerned that
> without an IANA registry for functions, this might cause conflicts in the future.

https://github.com/ietf-tapswg/api-drafts/issues/1357 <https://github.com/ietf-tapswg/api-drafts/issues/1357>

We think that the architecture described in draft-ietf-taps-arch allows for such things (IP transport or the TOR suggestion). One way of scoping to TOR or IPsec or a set of proxies with the interface that we have is by scoping to a PvD that provides those capabilities; specifying a PvD is supported by our interface.

Other than that, the interface document does not specify bindings for doing such things, and we see such extensions as a possibility for the future. Our consensus was also that creating an IANA registry can be done at such a later time (if needed, i.e. in case TAPS really does become a big success).


> - single credentials for multiple protocols?
> 
> Does this document cause encouraging of re-using of key pairs for
> different protocols (eg TLS and IKEv2, or TLS 1.2 and QUIC). This
> might have security implications (eg using RSA as RSA-PKCS1.5 as
> well as RSA-PSS)

https://github.com/ietf-tapswg/api-drafts/pull/1430 <https://github.com/ietf-tapswg/api-drafts/pull/1430>

Please refer to this separate thread:
https://mailarchive.ietf.org/arch/msg/taps/HDKOexqM0348TH_EQqTS85U4dX0/ <https://mailarchive.ietf.org/arch/msg/taps/HDKOexqM0348TH_EQqTS85U4dX0/>


> - Hostname vs FQDN
> 
> Can WithHostname be unqualified? (God I hope not!)
> If not, can the call WithHostname be renamed to WithFQDN ?
> If it can be unqualified, how does one deal with credentials
> and identifiers, eg with a 'search domain' containing multiple
> domains, RemoteSpecifier.WithHostname("mail") could end up on
> either mail.example.com <http://mail.example.com/> or mail.example.net <http://mail.example.net/> (or heaven forbid,
> the .mail TLD)
> 
> It seems a little text is added that says "RECOMMENDED to not use unqualified",
> but that raises the question on why even support it? It's just too
> dangerous imho.

https://github.com/ietf-tapswg/api-drafts/issues/1360 <https://github.com/ietf-tapswg/api-drafts/issues/1360>
and https://github.com/ietf-tapswg/api-drafts/pull/1398 <https://github.com/ietf-tapswg/api-drafts/pull/1398> 

Regarding “why even support it”, we think the reason to make this not a MUST is that sometimes there can be unqualified names provided by the user, etc, and the application might not even know it is unqualified, so we can’t really guarantee it won’t be. The system will have some behavior for this.


> - WithPort and WithService, but not WithProtocol
> 
> How does one choose their syslog service transport protocol, since syslog
> over udp and tcp are valid and both have the same service name? Or does
> WithService accept values like "514/udp" ?

https://github.com/ietf-tapswg/api-drafts/issues/1361 <https://github.com/ietf-tapswg/api-drafts/issues/1361>

Normally, an endpoint ought not to request a specific transport protocol or protocol stack. The Transport Services Implementation is responsible for mapping the API to a specific available transport Protocol Stack and managing the available network interfaces and paths. When specifically needed, this automated selection could be over-ridden (e.g., to test a specific protocol stack).

For such purposes, we have now added WithProtocol.


> - ALPN
> 
> I don't see a WithALPN method for setting the ALPN.

https://github.com/ietf-tapswg/api-drafts/issues/1362 <https://github.com/ietf-tapswg/api-drafts/issues/1362>
https://github.com/ietf-tapswg/api-drafts/pull/1399 <https://github.com/ietf-tapswg/api-drafts/pull/1399>

This is now there, but not as a “WithALPN” method - instead we decided to put this together with the security parameters.


> - Preconnection vs Listener

https://github.com/ietf-tapswg/api-drafts/issues/1363 <https://github.com/ietf-tapswg/api-drafts/issues/1363>
https://github.com/ietf-tapswg/api-drafts/pull/1429 <https://github.com/ietf-tapswg/api-drafts/pull/1429>

The comment here was: "The arch document talks about Preconnection, Connection and Listener but this document in Section 3 places Listener as a Preconnection.”
This was a misunderstanding, created from lack of clarity in our text: a Listener is created from a Preconnection.


Cheers,
Michael (on behalf of the authors)