OMEMO support (#101)
Closed
Free Kurt opened 6 years ago

Any chance that Tigase iOS could put OMEMO support on their roadmap? https://conversations.im/omemo/

https://omemo.top shows that adoption of OMEMO in the XMPP client network in continuously growing and it'd be great to add Tigase iOS to the list of clients that support OMEMO message encryption.

wojciech.kapcia@tigase.net commented 6 years ago

Thank you for the suggestion. We are definitely thinking about implementing it however I can't give you a specific timeline. We would also accept contributions (given Tigase software is opensource).

Andrzej Wójcik (Tigase) commented 6 years ago

I've reviewed XEP and documentation for this feature and it looks like OMEMO, while being open specification uses libsignal-protocol-java GPLv3 compliant library, which would force us to:

To be honest, I'm not sure if we should embed those libraries. And even if we would decide to do so, we should do this in a separate library or directly in the client (not in TigaseSwift).

Either way, there is one more thing to consider. At libsignal-protocol-c there is a following statement:

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

As for cryptography support, we were also considering support for PGP/GPG for message exchange. In this case we could use some library, ie. ObjectivePGP which could be easily used in Swift, but we would need to check if licensing is correct for us. If so, then I would still put this feature only in the Messenger and not in the library). Alternatively, we would need to implement it on our own and most likely use OpenSSL to deal with encryption.

Note: From what I've seen access to encryption algorithms is very limited on iOS and macOS and requires usage (embedding) of cryptography library like ie. OpenSSL and our software may be classified as:

Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms.

Artur, let me know what you think about this. Should we implement or not? which route should we choose?

Artur Hefczyc commented 6 years ago

Andrzej Wójcik wrote:

Artur, let me know what you think about this. Should we implement or not? which route should we choose?

It would be really cool to have, however, it is not a priority to us at the moment. What I mean by this, is this:

  1. I would give green light to do it now if it takes no more than 3 days of work
  2. I agree, that if we use any third-party libraries it should only go to the client code, not the library code
  3. We should use as little third-part libraries as possible
issue 1 of 1
Type
New Feature
Priority
Blocker
Assignee
RedmineID
7511
Version
5.0
Issue Votes (0)
Watchers (0)
Reference
tigase/_clients/siskin-im#101
Please wait...
Page is in error, reload to recover