First draft of slixmpp-omemo-release
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
This commit is contained in:
parent
c31354de53
commit
1b6dee1e36
1 changed files with 95 additions and 0 deletions
95
content/posts/slixmpp-omemo-release.md
Normal file
95
content/posts/slixmpp-omemo-release.md
Normal file
|
@ -0,0 +1,95 @@
|
|||
---
|
||||
title: "Slixmpp gets OMEMO support"
|
||||
date: 2019-02-23T22:06:50Z
|
||||
draft: true
|
||||
---
|
||||
|
||||
TL;DR: Developers can already experiment with the [slixmpp-omemo][slix-omemo] plugin.
|
||||
Please give us feedback on the [tracker] or in the [channel]!
|
||||
|
||||
|
||||
After [almost a year][opkode-gulash] since I started working on the [OMEMO]
|
||||
(end-to-end) encryption mechanism support for [Slixmpp], I am happy to finally
|
||||
announce a first release. I would like to get feedback, I am sure there are
|
||||
still plenty of things to improve, and so I encourage developers to do their
|
||||
worst, and report their findings.
|
||||
|
||||
This library provides an interface to [python-omemo].
|
||||
|
||||
You can find the code at
|
||||
[https://lab.louiz.org/poezio/slixmpp-omemo][slix-omemo].
|
||||
Documentation is available in the [README][slix-omemo-README], and there is
|
||||
also an [echo bot][slix-omemo-bot], with lots of comments.
|
||||
|
||||
Thanks to Syndace and [Daniel] for the help with the OMEMO implementation, and
|
||||
[mathieui] and [Link Mauve] for the help on Slixmpp, and moral support.
|
||||
|
||||
|
||||
[slix-omemo]: https://lab.louiz.org/poezio/slixmpp-omemo
|
||||
[tracker]: https://lab.louiz.org/poezio/slixmpp-omemo/issues
|
||||
[channel]: xmpp:slixmpp@muc.poez.io?join
|
||||
[opkode-gulash]: https://opkode.com/blog/2018-gulaschprogrammiernacht/
|
||||
[OMEMO]: https://xmpp.org/extensions/xep-0384.html
|
||||
[Slixmpp]: https://lab.louiz.org/poezio/slixmpp
|
||||
[slix-omemo-README]: https://lab.louiz.org/poezio/slixmpp-omemo/blob/master/README.rst
|
||||
[slix-omemo-bot]: https://lab.louiz.org/poezio/slixmpp-omemo/blob/master/examples/echo_client.py
|
||||
[python-omemo]: https://github.com/Syndace/python-omemo
|
||||
[Daniel]: https://gultsch.de
|
||||
[mathieui]: xmpp:mathieui@mathieui.net?message
|
||||
[Link Mauve]: xmpp:linkmauve@linkmauve.fr?message
|
||||
|
||||
|
||||
## Separate repository
|
||||
|
||||
As you may have noticed, this plugin is served via separate repository. This
|
||||
is for licensing purposes. As much as I like GPL and copyleft, Slixmpp is
|
||||
licensed under the MIT license, and this is probably not going to change.
|
||||
Fortunately for Slixmpp, this split should not last forever.
|
||||
|
||||
The [python-omemo] library that is used, developed by Syndace, is a complete
|
||||
reimplementation of the Signal Protocol, unlike [python-axolotl], which is a
|
||||
port of the original library implemented in Signal.
|
||||
|
||||
The only bits that prevent him for releasing his library under MIT is the
|
||||
wireformat, that has to be the same as the original implementation as
|
||||
specified in [XEP-0384][OMEMO]. Providing that we define another wireformat
|
||||
for all OMEMO implementations to use, this restriction will go away, (still
|
||||
easier said than done.)
|
||||
|
||||
[python-axolotl]: https://pypi.org/project/python-axolotl/
|
||||
|
||||
|
||||
## Why OMEMO?
|
||||
|
||||
There is still lots of things to be improved in OMEMO, the specification.
|
||||
|
||||
I would personally like to see what is usually called _Full Stanza
|
||||
Encryption_, (it's really only partial). Today, an OMEMO implementation will
|
||||
only encrypt the plaintext part of messages you send, and either leak
|
||||
everything else, (e.g., chatstates, receipts, corrections, xhtml-im), or
|
||||
effectively disable them, for privacy-conscious implementations.
|
||||
|
||||
I would also like to drop _Forward Secrecy_, in the context of Instant
|
||||
Messaging. And I would like to have a better way to manage all these device
|
||||
keys, and I know there are people working on this already.
|
||||
|
||||
Not having all these options heavily degrade user experience in my opinion,
|
||||
and that is my main concern.
|
||||
|
||||
Not having OMEMO though, is also not great either for user experience, as many
|
||||
implementations nowadays provide it, and some even enable it by default,
|
||||
making it impossible for us Slixmpp users to communicate with, without having
|
||||
to ask the sender to turn it off first.
|
||||
|
||||
While I would prefer to see other alternatives, this library should help with
|
||||
the current situation, and we can go back to work on fixing the world.
|
||||
|
||||
|
||||
## What's next?
|
||||
|
||||
Apart from the tons of bugs that I'll have to fix in the following days/weeks,
|
||||
now that we have the foundations, next step is to implement OMEMO in [Poezio].
|
||||
|
||||
Any help is welcome!
|
||||
|
||||
[Poezio]: https://poez.io
|
Loading…
Reference in a new issue