Re: [Dots] Magnus Westerlund's Discuss on draft-ietf-dots-signal-call-home-11: (with DISCUSS)

mohamed.boucadair@orange.com Mon, 21 December 2020 13:03 UTC

Return-Path: <mohamed.boucadair@orange.com>
X-Original-To: dots@ietfa.amsl.com
Delivered-To: dots@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 392DC3A0FB6; Mon, 21 Dec 2020 05:03:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.096
X-Spam-Level:
X-Spam-Status: No, score=-2.096 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=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=orange.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 TLZkD6E7O1Jr; Mon, 21 Dec 2020 05:03:52 -0800 (PST)
Received: from relais-inet.orange.com (relais-inet.orange.com [80.12.70.35]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EF8E03A0FCE; Mon, 21 Dec 2020 05:03:51 -0800 (PST)
Received: from opfednr06.francetelecom.fr (unknown [xx.xx.xx.70]) by opfednr23.francetelecom.fr (ESMTP service) with ESMTP id 4D005y1Jpkz5vZL; Mon, 21 Dec 2020 14:03:50 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=orange.com; s=ORANGE001; t=1608555830; bh=4RK391EFUKN5qs+ZnUWa97Zke9SwvvTLBY0g3tm2Nc4=; h=From:To:Subject:Date:Message-ID:Content-Type: Content-Transfer-Encoding:MIME-Version; b=jc+6Pxua/YR2LRc/nq1PXozTXOmI5vstt4KSYN07mHVusd4mWBcVsWNqhjk92F2aD uoKGGLTppWjmnbjoHQmHQRZrrDe6hZB6WbBwRiIu4TvrtG021AFecTuFsMIqVLVi2e 6SMCmW2OPdqnMZMDCu3OM86k6KYHiXs3khLfaJAyYvXvU/kiUcxXAPBf8bZ1REBxOE G40mSWqK1q2G1Un+jryiUkqF7t5thEY7sAQf/WnJumeMgCE9wFWHyhTcI3apBgNoK4 EEvsXuq66sFo6XF7OIxAM/NGnC+LGxtv+dy9Cfd+Oh+/fg8RHPMfdAwPSNiqVC1Bbr Ewr9leuTo8JJA==
Received: from Exchangemail-eme6.itn.ftgroup (unknown [xx.xx.13.104]) by opfednr06.francetelecom.fr (ESMTP service) with ESMTP id 4D005x6Sn9zDq8H; Mon, 21 Dec 2020 14:03:49 +0100 (CET)
From: mohamed.boucadair@orange.com
To: Magnus Westerlund <magnus.westerlund@ericsson.com>, "iesg@ietf.org" <iesg@ietf.org>, "magnus.westerlund=40ericsson.com@dmarc.ietf.org" <magnus.westerlund=40ericsson.com@dmarc.ietf.org>, "supjps-ietf@jpshallow.com" <supjps-ietf@jpshallow.com>
CC: "valery@smyslov.net" <valery@smyslov.net>, "dots@ietf.org" <dots@ietf.org>, "dots-chairs@ietf.org" <dots-chairs@ietf.org>, "draft-ietf-dots-signal-call-home@ietf.org" <draft-ietf-dots-signal-call-home@ietf.org>
Thread-Topic: [Dots] Magnus Westerlund's Discuss on draft-ietf-dots-signal-call-home-11: (with DISCUSS)
Thread-Index: AQHW1IEMs9vsdNy1dUKXFtQUcezc5qn7Z94AgAAI8ICAABFlgIAACniAgABCigCAAM7vgIABuBMAgAMSigCAAAn2YA==
Date: Mon, 21 Dec 2020 13:03:49 +0000
Message-ID: <14908_1608555829_5FE09D35_14908_286_4_787AE7BB302AE849A7480A190F8B9330315A056A@OPEXCAUBMA2.corporate.adroot.infra.ftgroup>
References: <160821536495.8335.5498062431481972966@ietfa.amsl.com> <26637_1608218552_5FDB77B8_26637_63_1_787AE7BB302AE849A7480A190F8B93303159F25D@OPEXCAUBMA2.corporate.adroot.infra.ftgroup> <83fe6f11ec1cfcfd1f4c4493854c8ce6eaa542f4.camel@ericsson.com> <135d01d6d495$9b1b94e0$d152bea0$@jpshallow.com> <75351574777c1f8100f15474ff5c755f6334645a.camel@ericsson.com> <13d001d6d4bc$1c543870$54fca950$@jpshallow.com> <9a304e2ec6886de19ec54d2d56309442db652a02.camel@ericsson.com> <154a01d6d5ff$9d022ab0$d7068010$@jpshallow.com> <6d2f00810b5bc9ec3e8ab10fa7e75b824e0f9003.camel@ericsson.com>
In-Reply-To: <6d2f00810b5bc9ec3e8ab10fa7e75b824e0f9003.camel@ericsson.com>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.114.13.247]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/dots/oJjYVeyyRcgIyltb6Tj5jOqYqgI>
Subject: Re: [Dots] Magnus Westerlund's Discuss on draft-ietf-dots-signal-call-home-11: (with DISCUSS)
X-BeenThere: dots@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "List for discussion of DDoS Open Threat Signaling \(DOTS\) technology and directions." <dots.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dots>, <mailto:dots-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dots/>
List-Post: <mailto:dots@ietf.org>
List-Help: <mailto:dots-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dots>, <mailto:dots-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 21 Dec 2020 13:03:54 -0000

Hi Magnus,

Thank you for sharing your thoughts. 

We considered seriously the use of a distinct port vs. using the one that is already assigned to dots-signal. We documented the rationale in an appendix and also provided a detailed answer to why we think reusing the existing port is not that straightforward. We already answered why SRV records are not sufficient. Please refer to the message we shared with you early in this thread: https://mailarchive.ietf.org/arch/msg/dots/GQP-QCmC-4XtJHPmsPR_quuyO0c/ ((4) Why not using a dynamic port number following, e.g., draft-ietf-dots-server-discovery?). 

Also, we are familiar with existing BCPs. Please trust me, if dots-call-home was the same service as dots-signal, we wouldn't make the request. "DOTS server" and "DOTS client" are distinct and fully decoupled services. 
dots-call-home is a distinct service vs dots-signal in the same way netconf/restconf-call-home is a distinct service vs netconf/restocnf. As a reminder, *** three (3) *** additional port numbers were assigned in rfc8071#section-6 for the call-home in addition to the already assigned *** four (4) *** port numbers for NETCONF.

The proposal to define a (DTLS) dispatcher and the internal machinery to steer the traffic to a specific service is, if it works, a ** new service ** per se, that it is worth to be assigned a dedicated port on it owns: "One service, one port". Yet, we don't have evidence that service is feasible/works. What would be helpful for the community in the future, is that tsv area provides a spec of such service and evidence that it works without side effects. With that service defined, protocols running on DTLS can be muxed on that port number. Nevertheless, we need to remind that the dispatcher service might be similar in its goals to TCPMUX, which is *** obsoleted *** for reasons documented in RFC7805.

Cheers,
Med

> -----Message d'origine-----
> De : Magnus Westerlund [mailto:magnus.westerlund@ericsson.com]
> Envoyé : lundi 21 décembre 2020 12:03
> À : iesg@ietf.org; magnus.westerlund=40ericsson.com@dmarc.ietf.org;
> supjps-ietf@jpshallow.com; BOUCADAIR Mohamed TGI/OLN
> <mohamed.boucadair@orange.com>
> Cc : valery@smyslov.net; dots@ietf.org; dots-chairs@ietf.org; draft-
> ietf-dots-signal-call-home@ietf.org
> Objet : Re: [Dots] Magnus Westerlund's Discuss on draft-ietf-dots-
> signal-call-home-11: (with DISCUSS)
> 
> Hi,
> 
> I will start my Christmas vacation tomorrow, so don't expect any
> more responses
> until after the 7th of December.
> 
> I am hearing what you are saying about implementability. However, I
> have the
> feeling that the WG design process have failed to take into account
> some
> relevant aspects here.
> 
> 1. You are using COAP which do share high level semantics with HTTP.
> Thus,
> different functionalites can easily be defined to work in parallel
> on a server.
> Thus it could have been easy to ensure that individual or coloated
> dots-signal
> and dots-call-home could be co-locate. Especially as you do have it
> part of what
> is considered.
> 
> 2. You got a port for dots-signal to enable firewalls and routers
> etc to
> identify and handle this traffic, otherwise I think dots-signal
> would have been
> leaned hard on using the default COAP port. Expecting to consume
> another port
> just because you didn't consider the constraints, which RFC6335 is
> clear with I
> think is tough for me to swallow.
> 
> 3. You have several ways of designing yourself out of these issues
> that has been
> raised. I understand this might be considered a late surprise, but
> it shouldn't
> if you had read the in force BCP.
> 
> My next question, do you actually need a fixed port at all for this.
> The service
> name enables you to do SRV look ups to find port and IP address for
> the service.
> Isn't that sufficient if you still want to run it on dedicated port
> compared to
> DOTS-signal?
> 
> Cheers
> 
> Magnus Westerlund
> 
> 
> 
> On Sat, 2020-12-19 at 12:08 +0000, supjps-ietf@jpshallow.com wrote:
> > Hi Magnus,
> >
> > Please see inline.
> >
> > Regards
> >
> > Jon
> >
> > > -----Original Message-----
> > > From: Magnus Westerlund [mailto:magnus.westerlund@ericsson.com]
> > > Sent: 18 December 2020 09:53
> > > To: iesg@ietf.org;
> magnus.westerlund=40ericsson.com@dmarc.ietf.org; supjps-
> > > ietf@jpshallow.com; mohamed.boucadair@orange.com
> > > Cc: valery@smyslov.net; dots@ietf.org; dots-chairs@ietf.org;
> draft-ietf-
> > > dots-
> > > signal-call-home@ietf.org
> > > Subject: Re: [Dots] Magnus Westerlund's Discuss on draft-ietf-
> dots-signal-
> > > call-
> > > home-11: (with DISCUSS)
> > >
> >
> > ...
> > > > > So I think there are several possible implementation paths
> for this. I
> > > > > see
> > > > > at least
> > > > > two.
> > > > >
> > > > > First, do a 5-tuple connect on UDP to filter that particular
> UDP flow,
> > > > > process the
> > > > > DTLS handshake for this socket and then based on ALPN decide
> on target
> > > > > process and then hand over the socket and the DTLS state to
> the right
> > > > > process.
> > > >
> > > > [Jon] UDP has no concept of accept().  If you do a connect()
> on a socket
> > > > that
> > > > you have just received data on, then that updates the 5 tuple
> and then
> > > > only
> > > > receives traffic matching the tuple as expected. However, it
> appears not
> > > > possible to leave the original socket ready for the next
> packet (from
> > > > different IP etc.) and set up a new socket to specifically
> handle the
> > > > stream
> > > > matching the packet just received, bind(same_port), do the
> connect() on it
> > > > etc. (the bind(same_port)fails in my test).
> > >
> > > So I don't have a code exmample for this available, but I
> thought you can
> > > make
> > > it work with so_reuseport/so_reuseaddr. There are some downside
> in that the
> > > new
> > > socket can receive packets prior to the connect that just
> arrive.
> > >
> >
> > [Jon] I was using SO_REUSEADDR, but have found a bug in my test
> code so I now
> > able to bind(same_port).  While a new socket and connect() can be
> done to
> > match a new UDP client, it needs to be thought through when this
> is done - the
> > arrival of the first UDP packet, when the DTLS APLN is known, or
> when the DTLS
> > handshake is complete.  The DOTS stack we have is
> > https://tools.ietf.org/html/rfc8782#section-3 Figure 3
> >
> > DOTS
> > CoAP
> > DTLS
> > UDP
> > IP
> >
> > [Jon] It is unclear to me as to how you can hand off a DTLS
> context to a
> > different, non identical process along with its socket (this may
> be possible
> > with OpenSSL, not sure about other TLS libraries - there is
> limited kernel
> > AF_KTLS support which may help).  DTLS session resumption then
> also gets a lot
> > more complicated.
> >
> > [Jon] Then there is the challenge of how the received DTLS context
> + socket
> > are integrated into the CoAP & DTLS stack on the receiving
> application so that
> > things keep working.  In my port, it is the CoAP library that
> handles the
> > sockets, not the DOTS application which would mean having
> customized code for
> > the CoAP library - not ideal for maintenance long term.
> >
> > [Jon] My surmise would be that implementors would say "forget this
> complexity
> > with its inherent risks and just use a non-standard port"
> >
> > > >
> > > > >
> > > > > Secondly, is to run some type of front end dispatcher that
> processes the
> > > > > packets
> > > > > and tracks all the different DTLS connection and have secure
> message
> > >
> > > passing
> > > > > between the front end dispatcher and the different servers.
> But this do
> > > > > requie
> > > > > another security model and trust relationship between the
> dispatcher and
> > >
> > > the
> > > > > servers.
> > > >
> > > > [Jon] This does complicate things.  The DOTS signal channel
> requires
> > > > mutual
> > > > authentication of the agents and introducing some sort of man-
> in-middle
> > > > that
> > > > changes the network flow IP addresses etc. and potentially
> changes
> > > > encryption
> > > > characteristics breaks this mutual authentication.  It is not
> easy to
> > > > change
> > > > how the base DOTS signal works.
> > >
> > > Sorry, I don't understand why you bring in changes to network
> flow IP
> > > address. I
> > > said secure communication here, and I mean internal to the
> server software
> > > between processes.
> >
> > [Jon] I latched on to "different servers" as possibly having
> different backend
> > IPs.  Here, we actually have a DOTS server (sends responses) and a
> DOTS client
> > (generates requests) that traffic needs to be steered to.
> >
> > > Basic interprocess communication here. Also, it might be
> > > that
> > > you can start the DTLS processing in the dispatcher and then
> hand over the
> > > DTLS
> > > state and only have encrypted UDP payloads being dispatached.
> >
> > [Jon] As above, it is unclear to me as to how you can hand off a
> DTLS context
> > to a different, non identical, process along with its socket and
> then
> > integrate the received DTLS context into the different
> application.
> >
> > >
> > > I would note that I think a lot of this dicsussion comes from
> that the
> > > implementation you made so far has been done based on the
> assumption that
> > > there
> > > would be a new port and separation rather than designing for
> coloaction. If
> > > we
> > > take the step beyond your current implenentation from a protocol
> perspective
> > > in
> > > an implementation built for co-location is there really any
> significant
> > > issues
> > > here?
> >
> > [Jon] I am the sort of person that needs to implement something to
> prove
> > something is practically feasible, find what the issues are and
> what needs to
> > be changed based on a specification and then debate how the spec
> needs to be
> > updated to make it usable.
> >
> > [Jon] DOTS call home did come later to the table after the initial
> DOTS was
> > done which created the DOTS client and DOTS server as different
> applications
> > in the implementations done to date.  Adding in the DOTS call home
> logic was
> > very simple (with different port) - simple addition of accepting
> new
> > connections on the call home DOTS client which triggered the
> client logic
> > start up and initiating connections on the call home DOTS server
> and
> > associated configuration logic.
> >
> > [Jon] While it is only software and hence not impossible, it is
> significant
> > work to merge the client and server into a single application as
> well as
> > having to maintain separate applications for running on limited
> resource
> > devices.  We do not want to put in barriers to implementation of
> this draft by
> > making it complex to implement.  Hence using a different port for
> the client
> > service and the server service.
> >
> > >
> > >
> > > Cheers
> > >
> > > Magnus Westerlund
> >
> >

_________________________________________________________________________________________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.

This message and its attachments may contain confidential or privileged information that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and delete this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
Thank you.