Hacker News new | ask | show | jobs
by dwdbah 4784 days ago
Not sure I'd agree with over-engineered, but anyway.

End-to-end privacy with multi-device support has been specified in XMPP for years; the problem is that it's vastly complicated and therefore nobody ever implemented it.

In part this is because when XMPP was started, people wanted different things from multi-device - they wanted to be able to leave their desktop logged in, move to their laptop, and not have the conversation pop up there - there being no message-read state in XMPP. So instead, the idea was that you'd pull the archive from the server if you wanted it.

Later, Carbons were introduced, which basically says that if the message wouldn't normally come to "this" client, tell me about it anyway.

As for end-to-end... Well, the original RFCs include a method based on X.509 and CMS (RFC 3923). Never implemented. There's been various different concepts since (OTR-esque and XMLSEC based). None has yet got traction, but you'd be welcome to draw a line in the sand and implement one of them.

1 comments

they wanted to be able to leave their desktop logged in, move to their laptop, and not have the conversation pop up there

Did someone outside the XMPP-bubble really request that?

Why would you possibly want to not see the entire conversation when switching between multiple devices?

the problem is that it's vastly complicated and therefore nobody ever implemented it.

That's what I mean by over-engineered. As a matter of fact no single jabber client or server (that I know of) supports multi-device sync, not even without crypto. I.e. 13 years after its inception jabber (the "platform") still lacks fundamental functionality. Despite tens of thousands of lines of specification and lots of energy spent on absurdities like "transports".