AnemoneLabs / unmessage

Privacy enhanced instant messenger
GNU General Public License v3.0
42 stars 7 forks source link

custom (?) Double Ratchet Algorithm implementation vs OMEMO #39

Open adrelanos opened 7 years ago

adrelanos commented 7 years ago

What's the difference between your (?) implementation of Double Ratchet Algorithm and OMEMO?

Would it be sensible to use OMEMO instead?

felipedau commented 7 years ago

What's the difference between your (?) implementation of Double Ratchet Algorithm and OMEMO?

Would it be sensible to use OMEMO instead?

Great question!

The actual implementation of the Double Ratchet Algorithm we use is pyaxo. And that is intended to be a Python package which is as close as possible to the specification.

What unMessage's protocol does is initializing Double Ratchet states and then using those states to encrypt the payload of unMessage's packets (that is something that OMEMO does as well). However what we should discuss here is how unMessage and OMEMO (and others) handle these conversations. The biggest difference is that OMEMO provides privacy, but not anonymity. Using servers and too much metadata (such as XMPP) are the main issues.

What we intend to do with unMessage is not relying on servers and metadata. Unfortunately, those goals are constantly conflicting with usability and that is a challenge we face on every feature we start working.

Your question asks for a much more detailed answer and this is far from that. Comparing unMessage's protocol to others is something we should definitely have in our specification. I am going to use this issue to track the development on that.

(Please let me know if you would like any clarification in any aspect)

Thanks @adrelanos!

adrelanos commented 7 years ago

Makes sense! Thank you for the explanation!