It’s not clear to me that the problems that this extensions proposes to address 
can be addressed through use an extension to XMPP.  Extensions ought to be 
truly optional.  This ProtoXEP appears to be making mandates which are more 
appropriate made, if the community were to support them being made, in a 
revision of the XMPP base specification.

For instance, the ProtoXEP not only says "XMPP entities, which are routing 
stanzas, MUST NOT strip the message-id element from message stanzas” but seems 
to be rely on all servers adhering to this MUST NOT.  That’s never going to be 
case… certainly not for implementations not purporting to implement this 
extension… and likely not for some implementations which might purport to 
implement this extension.   This spec needs to consider and discuss what 
happens in face of elements it suggests be added are stripped by another entity.

I have a big problem with one ID to rule them all… and a bigger problem with 
the last ID being that ID (the overrride requirement).   To the extent IDs are 
needed, they need to “stable”.  This means they cannot be overridden.

For operational and security reasons, it unwise for one entity to rely on IDs 
for services it provides (such as MAM) provide by some other entity.  To the 
extent IDs are needed, we need per-entity IDs… possibly even per-enitty 
handling IDs (that is, when an IM handles a stanza for the second time (such as 
after being handled by an MUC service, it might need to separately ID the 
stanza).  This because stanza content can and will change as its handled by 
other entities.

It’s not clear to me how this id provided by this extension would or could be 
used in message type=error stanzas.  It’s not clear to me why this extension 
proposes a <message/> only solution, when it seems likely that stanza id= 
problems are not necessarily specific to message stanzas.

It seems that there’s many security risks here associated with ID forgery, 
replay, etc., but I’m not sure what, if any, mitigation is needed.

I suggest instead an element allowing entities to provide IDs in stanzas they 
originate or handle.

        <stanza-id xmlns=‘…’ id=‘ID’ provider=“JID”/>

where ID is some opaque ID and JID is the providers JID.  Servers which need to 
provide different IDs in different contexts can use different JIDs.  (or 
possibly better to allow a context attribute or something).

I’m not convinced having an extension providing an ID (whether by the ProtoXEP 
suggestion or mine or other) reliably solves any problem I’m faced with.

For the MUC use case, I rather we solve this as part of the MUC2 effort…

For the MAM case, to the extent what it offers in the current Experimental XEP 
is not sufficient, I suggest MAM XEP be modified to provide for reliable 
identification of archived content.

— Kurt

Reply via email to