Re: Proposed XMPP Extension: XMPP Decentralized ID (XID)
Goffi <[email protected]> Sun, 07 Jun 2026 18:43:50 +0200
| Newsgroups | gmane.network.jabber.standards-jig |
|---|---|
| Message-ID | <[email protected]> |
--===============6156454627023139242== Content-Type: multipart/signed; boundary="nextPart8FqZ6lm4TKiaGvq-r-hXCw"; micalg="pgp-sha512"; protocol="application/pgp-signature" --nextPart8FqZ6lm4TKiaGvq-r-hXCw Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8"; protected-headers="v1" From: Goffi <[email protected]> To: XMPP Standards <[email protected]> Date: Sun, 07 Jun 2026 18:43:50 +0200 Message-ID: <[email protected]> In-Reply-To: <[email protected]> References: <[email protected]> MIME-Version: 1.0 Hi Georg, Le mardi 2 juin 2026, 19:16:56 heure d=E2=80=99=C3=A9t=C3=A9 d=E2=80=99Euro= pe centrale Georg Lukas a=20 =C3=A9crit : > Personally, I have VERY strong feelings about trying to shoehorn XMPP > into a different line on Zooko's triangle. There are many other > protocols out there that use cryptographic keys as identities and > optimize routing, storage and E2EE on top of that, making the whole > construct significantly more robust and secure than we ever could > achieve with an overlay on top of XMPP. This is not an attempt to do anything about Zooko's triangle. The XID is no= t=20 meant to be humanly meaningful, we have JID for that. It's mean't to be a D= NS- independent ID. It's not coming from nowhere, it's inspired and made to be compatible with= =20 Peer ID from libp2p which is a reference and widely used. It's based on a=20 widely used algorithm (Ed25519) which is used almost directly, only adapted= to=20 XMPP mechanisms. Any other option would probably be more complicated, and=20 would have to fit XMPP mechanism anyway. > Is this XEP about adding a moderately-secure cryptographic proof to your > account in order to make a XEP-0283 Moved possible if the server dies, > or is this about having a strong cryptographic identity that can be used > on multiple JIDs at the same time and would allow redirecting traffic > from one to the other? I have a fear that it was designed for the > former, but gives developers enough rope to be used for the latter. This XEP is about having a DNS independent ID. The main use case why I need= =20 that is for severless identification, but it's also useful in various other= =20 used cases, including Moved. I can be used explicitly with several JID at t= he=20 same time (because it's not tied to JID), but redirecting traffic is anothe= r=20 story, there be dragons. Not the puprose of this protoXEP. >=20 > The former use case can probably be implemented with a small subset of > this protocol, or even with a signed OMEMO record on the user's pubsub. OMEMO is per-device, that's not a good fit. And it's far more complicate to= =20 implement. Definitely not the purpose of this XEP nor a good fit. > As written, there is no out-of-band mechanism to verify / exchange XIDs, > so a malicious server can just create its own MitM XIDs for all accounts > that try to publish one, and there is no easy way around that without OOB. There is one to share private key with QR code, but not to verify indeed, g= ood=20 point, I'll add it. > [SNIP] > Detail notes on the XEP: > [SNIP] >=20 > =C2=A75.1 Publishing >=20 > Publishing a signed record containing the XID, the JID and a timestamp > (+ validity?) would prevent somebody from maliciously publishing foreign > XIDs on their pubsub in order to try to circumvent routing or to exhaust > resources. Indeed, as said in previous reply, will be integrated in future revision if= =20 it's accepted. =20 > [SNIP] >=20 > =C2=A76. Identity Challenge >=20 > I fear this protocol is full of failure cases. Off the top of my head: >=20 > [SNIP] Probably, that's what experimental and standard@ are for. This specificatio= n=20 didn't aimed at being perfect on first version, and that's why feedbacks fo= r=20 the community with people like you are important. >=20 >=20 > =C2=A78. Server Mapping >=20 > What is this part supposed to achieve? As I read it, this is about the > JID used on an individual c2s link between a server and its > client, and allowing the client to use a XID instead of the > authenticated JID. Given that the client knows both JID and XID, and the > server knows the JID and could authenticate the XID, this is merely > cosmetic? >=20 > I can see benefits in a protocol that would allow XID-based routing (i.e > a client sends a message to=3DXID and the local server would route it > according to the JID that has been authenticated for that destination > XID). However, such a protocol would impose a significant cryptographic > responsibility upon the server, upon its s2s links (to other servers > publishing XIDs), and would require a global XID routing table in order > to work reliably. >=20 > Ideally, in such a scenario, message payloads should be encrypted to the > private key corresponding to the destination XID, in order to not leak > any relevant content to somebody intercepting the routing process ;-) Yeah, the idea was to use XID instead of JID, and the current section is=20 mostly cosmetic indeed. I see a particular use case where it's extremely=20 useful, it's for publisher attribute in pubsub (mentioned in business model= ),=20 and other field (where the JID is used (like in XEP-0277). Today if we chan= ge=20 the server and copy the items, they would all be marked as invalid publishe= r=20 because of that. But maybe that could be moved to a separate specification. Best, Goffi --nextPart8FqZ6lm4TKiaGvq-r-hXCw Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part. Content-Transfer-Encoding: 7Bit -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEsNZvWyEnjW9SVudbKqmcu6xuKwwFAmoln8YACgkQKqmcu6xu Kwzk7AgAgIL0Zjg/J/Q2Jta/3vjaaauvYM1OT2kQKMlQQ6puauzmUjAGr0Fk3+f5 wO5t3X8kSvKiZ/w/AVvQ27L9XCYQCnEbqKAvMcpTdb98HI5WMS2Rf8QyI2jqnX7N tB1LM97abwY2XP7EpOrASa8yJdbA6aC2a/gwJdIAPAz3Tkkv/AXKtiiEvze+GlYp tL5AttbNUfQkwP2iJkpnnN+FBMVkzUs48BwD+AS32KpYQeH2si857x/6V+UJ+Mww +RdzCtZIpS2Zkx3tiJ+TrZXDJt6Gd7wAcjKeph76ZP4/7D7eeenQM5vs+WS3dVzg nlPENGTyyMwOxlwn6wRabm8qSU8cFg== =IyZZ -----END PGP SIGNATURE----- --nextPart8FqZ6lm4TKiaGvq-r-hXCw-- --===============6156454627023139242== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Standards mailing list -- [email protected] To unsubscribe send an email to [email protected] --===============6156454627023139242==--