Giter VIP home page Giter VIP logo

omemo-im's Introduction

screen screen screen screen

OMEMO Instant Messenger

OMEMO IM: Simple & Secure Instant Messaging

Intro

  • OMEMO Instant Messenger is a clean rebuild of the popular Android Jabber client "Conversations". It includes minor graphical and user friendly feature improvements consisting of:

    • A free to use community chat server "omemo.im" integrated into it's client.
    • A newer blue App color design with matching logo.
    • Easier to understand account creation wizard for ordinary users by simplifying description and removing technical jargon at startup.
    • Client State Indication is enabled by default to mimic other WhatsApp style Messengers that show when your contact was last seen online.
    • Removed Green Background on received messages option by default because it doesn't look cool.

Features

  • End-to-end encryption with OMEMO or OpenPGP
  • Send and receive images as well as other kind of files
  • Indication when your contact has read your message
  • Intuitive UI that follows Android Design guidelines
  • Pictures / Avatars for your Contacts
  • Syncs with desktop client
  • Conferences (with support for bookmarks)
  • Address book integration
  • Multiple accounts / unified inbox
  • Very low impact on battery life

How do I create an account?

XMPP, like email, is a federated protocol, which means that there is not one company you can create an official XMPP account with. Instead there are hundreds, or even thousands, of providers out there. One of those providers is our very own omemo.im. If you don’t want to use omemo.im check our Servers to find another provider. Or maybe your university has one. Or you can run your own. Or ask a friend to run one. Once you've found one, you can use OMEMO IM to create an account. Just select register new account on server within the create account dialog.

Domain hosting

Using your own domain not only gives you a more recognizable Jabber ID, it also gives you the flexibility to migrate your account between different XMPP providers. This is a good compromise between the responsibilities of having to operate your own server and the downsides of being dependent on a single provider.

Security

Why are there two end-to-end encryption methods and which one should I choose?

  • OMEMO works even when a contact is offline, and works with multiple devices. It also allows asynchronous file-transfer when the server has HTTP File Upload. However, OMEMO not widely support and is currently implemented only by a handful of clients.
  • OpenPGP (XEP-0027) is a very old encryption method that has some advantages over OMEMO but should only be used by people who know what they are doing.

How do I use OpenPGP

Before you continue reading you should note that the OpenPGP support in Conversations is experimental. This is not because it will make the app unstable but because the fundamental concepts of PGP aren't ready for widespread use. The way PGP works is that you trust Key IDs instead of JID's or email addresses. So in theory your contact list should consist of Public-Key-IDs instead of JID's. But of course no email or XMPP client out there implements these concepts. Plus PGP in the context of instant messaging has a couple of downsides: It is vulnerable to replay attacks and it is rather verbose.

To use OpenPGP you have to install the open source app OpenKeychain and then long press on the account in manage accounts and choose renew PGP announcement from the contextual menu.

OMEMO is grayed out. What do I do?

OMEMO has two requirements: Your server and the server of your contact need to support PEP. Both of you can verify that individually by opening your account details and selecting Server info from the menu. The appearing table should list PEP as available. The second requirement is mutual presence subscription. You can verify that by opening the contact details and see if both check boxes Send presence updates and Receive presence updates are checked.

How does the encryption for conferences work?

For conferences only OMEMO and OpenPGP are supported as encryption method..

OMEMO

OMEMO encryption works only in private (members only) conferences that are non-anonymous.

The server of all participants need to pass the OMEMO Compliance Test. In other words they either need to run version 18.01+ of ejabberd or have the omemo_all_access module installed on Prosody.

The owner of a conference can make a public conference private by going into the conference details and hit the settings button (the one with the gears) and select both private and members only.

If OMEMO is grayed out long pressing the lock icon will reveal some quick hints on why OMEMO is disabled.

OpenPGP

Every participant has to announce their OpenPGP key (see answer above). If you would like to send encrypted messages to a conference you have to make sure that you have every participant's public key in your OpenKeychain. Right now there is no check in Conversations to ensure that. You have to take care of that yourself. Go to the conference details and touch every key id (The hexadecimal number below a contact). This will send you to OpenKeychain which will assist you on adding the key. This works best in very small conferences with contacts you are already using OpenPGP with. This feature is regarded experimental. Conversations is the only client that uses XEP-0027 with conferences. (The XEP neither specifically allows nor disallows this.)

Note: Future build versions of OMEMO Instant Messenger envisions to remove OpenPGP as well as Unencrypted and force the use of OMEMO E2EE only. Such that it is not possible to send an non-E2EE message from the client.

What clients do I use on other platforms

There are XMPP Clients available for all major platforms.

Windows / Linux

For your desktop computer we recommend that you use Gajim. You need to install the plugins OMEMO, HTTP Upload and URL image preview to get the best compatibility with Conversations. Plugins can be installed from within the app.

iOS

Zom or Chatsecure.

How do I build OMEMO Instant Messenger

Make sure to have ANDROID_HOME point to your Android SDK. Use the Android SDK Manager to install missing dependencies.

git clone https://github.com/froghorn82/omemo-im.git
cd omemo-im
./gradlew assembleCompat or assembleFree

omemo-im's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

omemo-im's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.