Hi,

This is feedback for the latest PR to XEP-0359.

> The value of origin-id is spoofable and hence MUST not be used when
referencing other stanzas.

- This doesn't explain at all what "spoofable" means.
- origin-id's are supposed to be unique only within the scope of the
origin. In semi-anonymous MUCs, the origin is typically unknown, thus
the uniqueness scope is unknown and the origin-id can't be assumed
unique at all.
- I do think that using origin-id to reference other stanzas is still
possible with reasonable security for several usecases in "trusted"
conversations (e.g. direct chats, non-anonymous MUCs).

> The value tuple of 'id' and 'by' of the stanza-id element is
unspoofable iff all involved implementations follow the requirements of
this specification.

- This doesn't explain at all what "unspoofable" means.
- The sender or any relay of a message can insert or modify stanza-id's
with the by-attribute set to a third-party, as long as that message is
not routed through that third-party afterwards. 
  - A user's server can modify the stanza-id of MUC messages sent to
that user.
  - The sender can add stanza-id of a third-party server. Depending on
the usecase (for example semi-anonymous MUC messages), the recipient
will be unable to decide if the message was actually routed through
that server or not.
- All involved implementations include the sender and all entities in-
between, i.e. everyone that could spoof. Saying that something is
unspoofable just because the specification forbids everyone involved to
spoof sounds superfluous to me.

> The <referenced-stanza/> element can be used to reference another
stanza.

I don't think it's a good idea to add this element, for a lot of
reasons.

This XEP itself is (even if it was in Deferred state) widely
implemented. Adding something entirely new to it instead of in a new
XEP should be well-reasoned IMO. 

This newly added element is not within the self-imposed usecase of the
XEP (as is written in the abstract and introduction).

As I wrote in my previous message [1], I don't think requiring a by-
attribute is a good idea or even adding any value when referencing
messages. 

For all practical usecases, there will always only be a single by-
attribute that is valid (the bare JID of the MUC [2]) and for every
incoming message from a MUC, that value is already known implicitly. If
our current documentation/specification leads to people incorrectly
accepting stanza-id's with other values for the by-attribute, that's an
issue on it's own which may not even be solved by adding this
attribute.

In non-MUC messages, there generally is no stanza-id that could be used
for referencing a message in a way that can be understood by the
counterparties, so this newly proposed element would not even work for
referencing outside MUCs, making every XEP that would adopt this
element no longer work outside MUCs.

For MAM purposes, the stanza-id is used inside data forms, where using
this element is not really feasible.




All in all, I get the feeling this is a rushed change caused by
incorrect wording in XEP-0422 that caused misunderstanding while
creating XEP-0424. As we're currently in the process of deprecating
XEP-0422 and removing it from XEP-0424, we can take the opportunity to
also fix XEP-0424 to use the correct stanza-id instead.

Adding hints/notes to XEP-0359 to ensure this doesn't happen again is
probably a good idea though (even if I don't think the current wording
is good), as is to create a new informational XEP that describes the
rules for referencing messages in direct chats and groupchats,
including developer notes on what to take care of to implement this
correctly and spoof-safe.

If there is consensus that the latter is a good idea, I can create a
first draft for this.

Marvin


[1]
https://mail.jabber.org/pipermail/standards/2023-February/039171.html
[2] While I'm talking about MUCs exclusively here, I'd assume the same
to apply for any other groupchat system we may come up with that works
based on a single forwarding relay (MIX, etc)
_______________________________________________
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: standards-unsubscr...@xmpp.org
_______________________________________________

Reply via email to