Re: [Model-t] Definition of an intermediary

Joachim Fabini <joachim.fabini@tuwien.ac.at> Thu, 23 December 2021 08:59 UTC

Return-Path: <joachim.fabini@tuwien.ac.at>
X-Original-To: model-t@ietfa.amsl.com
Delivered-To: model-t@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ED5543A146A for <model-t@ietfa.amsl.com>; Thu, 23 Dec 2021 00:59:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.75
X-Spam-Level:
X-Spam-Status: No, score=-3.75 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, NICE_REPLY_A=-1.852, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
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 Mxjbw1QYgIAP for <model-t@ietfa.amsl.com>; Thu, 23 Dec 2021 00:59:20 -0800 (PST)
Received: from secgw1.intern.tuwien.ac.at (secgw1.intern.tuwien.ac.at [IPv6:2001:629:1005:30::71]) (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 E5C2B3A1467 for <model-t@iab.org>; Thu, 23 Dec 2021 00:59:18 -0800 (PST)
Received: from totemomail (localhost [127.0.0.1]) by secgw1.intern.tuwien.ac.at (8.14.7/8.14.7) with ESMTP id 1BN8xFUj016607 for <model-t@iab.org>; Thu, 23 Dec 2021 09:59:15 +0100
Received: from localhost ([127.0.0.1]) by totemomail (Totemo SMTP Server) with SMTP ID 41 for <model-t@iab.org>; Thu, 23 Dec 2021 09:59:14 +0100 (CET)
Received: from edge13a.intern.tuwien.ac.at (edge13a.intern.tuwien.ac.at [IPv6:2001:629:1005:30::66]) by secgw1.intern.tuwien.ac.at (8.14.7/8.14.7) with ESMTP id 1BN8xEtH016592 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=FAIL) for <model-t@iab.org>; Thu, 23 Dec 2021 09:59:14 +0100
Received: from mbx19c.intern.tuwien.ac.at (2001:629:1005:30::83) by edge13a.intern.tuwien.ac.at (2001:629:1005:30::66) with Microsoft SMTP Server (TLS) id 15.0.1497.26; Thu, 23 Dec 2021 09:59:14 +0100
Received: from [IPv6:2001:871:222:b67e:2178:558e:2a9:6979] (2001:871:222:b67e:2178:558e:2a9:6979) by mbx19c.intern.tuwien.ac.at (2001:629:1005:30::83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.922.13; Thu, 23 Dec 2021 09:59:14 +0100
To: model-t@iab.org
References: <aed0b88c-34db-46b3-847c-9a82b60c8a80@www.fastmail.com>
From: Joachim Fabini <joachim.fabini@tuwien.ac.at>
Message-ID: <813a116f-1f66-c559-43e0-dbf24c685472@tuwien.ac.at>
Date: Thu, 23 Dec 2021 09:59:13 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <aed0b88c-34db-46b3-847c-9a82b60c8a80@www.fastmail.com>
Content-Type: text/plain; charset="utf-8"
Content-Language: de-AT
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: mbx19b.intern.tuwien.ac.at (2001:629:1005:30::82) To mbx19c.intern.tuwien.ac.at (2001:629:1005:30::83)
Archived-At: <https://mailarchive.ietf.org/arch/msg/model-t/OORyEdROT1vlyc8dNDtEy60DPCI>
Subject: Re: [Model-t] Definition of an intermediary
X-BeenThere: model-t@iab.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussions of changes in Internet deployment patterns and their impact on the Internet threat model <model-t.iab.org>
List-Unsubscribe: <https://www.iab.org/mailman/options/model-t>, <mailto:model-t-request@iab.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/model-t/>
List-Post: <mailto:model-t@iab.org>
List-Help: <mailto:model-t-request@iab.org?subject=help>
List-Subscribe: <https://www.iab.org/mailman/listinfo/model-t>, <mailto:model-t-request@iab.org?subject=subscribe>
X-List-Received-Date: Thu, 23 Dec 2021 08:59:25 -0000

Hi Martin,

your informal description imho summarizes the main aspects of an
intermediary that have been of relevance to the model-t discussion so far.

As a more formal attempt (is there a need for such) I'd term an
intermediate (in the context of model-t) a system I that:
1. Is located on the commmunication path between two endpoints E1 and
E2, I != E1 and I != E2. I.e., intermediate I can access (r and/or w)
data exchanged between E1 and E2 at one or more protocol layers.
2. Stores state of E1, E2, and/or of the communication between E1 and E2
at various protocol layers.
3. Optionally modifies the communication between E1 and E2, acting as a
proxy (on various protocol layers) on behalf of E1 and/or E2 in their
supposed end-to-end communication. I.e., E1 observes the aggregated
behavior of I and E2, potentially
3a. not being aware of the presence of I at all and
3b. not being able to tell apart the contributions/modifications of I and E2

Additional observations:
- Wrt 3: The observation is valid the other way round, too: E2 may
experience the aggregated behavior of E1 and I without being able to
tell apart who contributed what - this can range from 100% I and 0% E1
(like in the case of a B2BUA) to 0% I and 100% E1 (case in which I is a
passive listener).
- Wrt 3: The observation is valid at any protocol layer
- Wrt 1: one may consider subpaths, too (e.g., load balancing, MPTCP,
SCTP, ... - I may be located on a subpath that does not transfer all of
the information).
- Wrt. 1: there may be multiple endpoints involved - thinking of the
multicast case.
- Wrt 3: the definitions above are supposed to capture both,
modifications in the value domain (changes, drops, additions at various
protocol layers), as well as in the timing domain (buffering, delay). My
personal background is covert and subliminal communication, so the
timing should be part of the state, too.

Essential is (again, imho) the observation that an endpoint E1 (or even
an external observer on the path between I and E1) can not tell apart
the contributions of E2 and I (in terms of value or timing domain,
protocol headers and protocol payload) - nor can it assess the
session/endpoint state stored by I.

regards
Joachim




On 23/12/2021 07:53, Martin Thomson wrote:
> One of the pieces of feedback on the -tmi draft was related to how it defines intermediary.
> 
> I want to explore that a little more, because I think that this is important.
> 
> The definition I have now concentrates on entities whose participation in the protocol is primarily the receipt and forwarding of messages from others, rather than the origination or termination of messages.
> 
> This was always my intent, but it's hard to get this right.  The more you dig into this, the harder it gets.  
> 
> Firstly, there are functions that require that an intermediary terminate or originate communication in ways that are more sophisticated than mere forwarding.  And these are, often, the most useful and interesting functions.
> 
> Does a video conference bridge that drops video from someone to save bandwidth act as an endpoint when it throws that data away?  Is a DNS recursive resolver or CDN node that serves from cache doing more than intermediate?  Maybe those can be viewed as simple time-shifting, so they still fit the basic definition.  However, is my mail provider doing more than intermediate when it provides me with a search function over my inbox?
> 
> Second, the potential for an intermediary to modify messages is often key to the operation of a protocol.  When does that modification turn the intermediary into a full participant?  A SIP B2BUA is often cast as a full protocol participant, which is certainly true from the perspective of how the protocol is engineered, but in the abstract it is indistinguishable from an intermediary, even if it doesn't strictly adhere to the SIP definition of a proxy.
> 
> Third, the nature of some protocols is that they mix communication with intermediaries with end-to-end messages.  SIP, SMTP, and HTTP share lineage and so all suffer from this to varying degrees.  My sense is that this is largely OK and that we can rely on some interpretation of intent to clear things up, though we might need to recognize that we might end up disagreeing on the specifics.
> 
> Are there other wrinkles that I've failed to identify?
> 
> I've started iterating on a definition here: https://github.com/martinthomson/tmi/pull/5
>