ChatSecure-iOS VS otrv4

Compare ChatSecure-iOS vs otrv4 and see what are their differences.

ChatSecure-iOS

ChatSecure is a free and open source encrypted chat client for iOS that supports OTR and OMEMO encryption over XMPP. (by ChatSecure)

otrv4

Off-the-Record Messaging Protocol version 4. -This is a draft- This repository is a mirror of http://bugs.otr.im/otrv4/otrv4 (by otrv4)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
ChatSecure-iOS otrv4
6 6
3,123 191
0.2% 0.5%
0.0 0.0
almost 2 years ago over 1 year ago
Objective-C
GNU General Public License v3.0 or later -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

ChatSecure-iOS

Posts with mentions or reviews of ChatSecure-iOS. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-09.

otrv4

Posts with mentions or reviews of otrv4. We have used some of these posts to build our list of alternatives and similar projects.
  • OTR Version 4
    1 project | news.ycombinator.com | 5 Dec 2023
  • Off-the-Record Messaging
    1 project | news.ycombinator.com | 20 Feb 2022
    I may have missed something here, but the write-up seems to be missing the main problem with OTR, which is that both parties need to be online at the same time to do the key-exchange to set up the session - at least in OTRv3 (https://otr.cypherpunks.ca/Protocol-v3-4.0.0.html)

    This is why the Double Ratchet Algorithm was created (back in 2013!) where you prepublish a pool of one-time-keys which can be used to establish sessions without you having to be online - as well as defining how to ratchet the message keys forwards both by new DH exchanges and simple hash ratchets (hence the name Double Ratchet).

    OTRv3 has the sole advantage that you can trivially tunnel it over any existing synchronous transport (e.g. an IRC DM), given it doesn't have the concept of setting up sessions asynchronously. However, this is a bit of a moot point these days, given modern messaging systems like Matrix, XMPP and Signal natively support the Double Ratchet via Olm, OMEMO & libsignalprotocol respectively - so OTRv3 really is a bit of a historical curiosity at this point.

    Meanwhile OTRv4 does introduce the idea of offline conversation initialisation (https://github.com/otrv4/otrv4/blob/master/otrv4.md#offline-...), but it doesn't seem to have got much traction, relative to the fairly ubiquitous Double Ratchet. (Has anyone seen it in the wild? It looks like coy.im might speak it? https://github.com/otrv4 seems fairly dead :/)

    Finally, lots of E2EE research is going into efficient shared ratchets for group communication rather than 1:1 sessions - such as MLS (https://datatracker.ietf.org/wg/mls/about/), DMLS (https://matrix.uhoreg.ca/mls/decentralised.html) and DCGKA (https://www.cylab.cmu.edu/news/2021/11/23-group-messaging.ht...).

  • A Stick Figure Guide to the Advanced Encryption Standard (AES)
    1 project | news.ycombinator.com | 3 Feb 2022
    AES gets all the marketing glory. You ask the company how are they doing security? Marketing person says: "It's secure we're using AES.". AES is often the only technical word they use when they say it's secure in product brochures because they know this is going to satisfy a clueless CISO with a purchasing budget to cover their behind.

    But fast forward from 2009 take a look at OTR and their decision[1] to switch from AES to ChaCha20 (see https://github.com/otrv4/otrv4/blob/master/architecture-deci...) - the whole document is very interesting and pretty brief to highlight why AES might not be the best choice:

    > We use ChaCha20 as the encryption stream cipher because it is faster than AES in software-only implementations, it is not sensitive to timing attacks and has undergone rigorous analysis ([3], [4] and [5]). We chose this over AES as future advances in cryptanalysis might uncover security issues with it, its performance on platforms that lack dedicated hardware is slow, and many AES implementations are vulnerable to cache-collision timing attacks [[6]].

    But AES is so much faster because some SSD's can offload it to hardware right? See:

    256-bit AES encryption broken in SandForce SSD controllers: https://techreport.com/news/23096/256-bit-aes-encryption-bro...

    Self-encrypting SSDs can easily be cracked: https://portswigger.net/daily-swig/self-encrypting-ssds-can-...

    Crucial and Samsung SSDs' Encryption Is Easily Bypassed: https://www.tomshardware.com/news/crucial-samsung-ssd-encryp...

    ...

    So it seems to me that if I have a large number of architectures and devices my software might be running on which is outside my control then the ability to predict how my crypto implementation will affect the performance of my device is a good enough reason alone to not use AES. But I might be wrong maybe others can throw in some thoughts here.

  • Off-the-Record Messaging Protocol version 4 draft
    1 project | news.ycombinator.com | 17 Jan 2021
  • Why Jabber reigns across the Russian cybercrime underground
    1 project | news.ycombinator.com | 17 Jan 2021
    OTRv3 is definitely not considered secure now, there is an unimplemented (and possibly unfinished) OTRv4 that updates the crypto though:

    https://github.com/otrv4/otrv4

  • Is there a good reason not to replace PGP with Cryptocurrency based cryptography?
    1 project | /r/privacytoolsIO | 28 Dec 2020
    So you shouldn't be using Cryptocurrency based communication or PGP at all. You should be using modern deniable protocols like The Signal Protocol (in Signal), OTRv4 (work in progress, no implementations yet), OMEMO (e.g. ChatSecure), and MEGOLM (used by Element).

What are some alternatives?

When comparing ChatSecure-iOS and otrv4 you can also consider the following projects:

siskin-im - (M) Public Project of Tigase Messenger for iOS devices based on Tigase Swift XMPP library.

end-to-end - End-To-End is a crypto library to encrypt, decrypt, digital sign, and verify signed messages (implementing OpenPGP)

Monal - Monal for XMPP (iOS and macOS)

Xabber - Open-source XMPP client for Android

OnionShare - Securely and anonymously share files, host websites, and chat with friends using the Tor network

HiddenVM - HiddenVM — Use any desktop OS without leaving a trace.

RetroShare - RetroShare is a Free and Open Source cross-platform, Friend-2-Friend and secure decentralised communication platform.

Conversations - Conversations is an open source XMPP/Jabber client for Android [Moved to: https://github.com/iNPUTmice/Conversations]

threema-ios - Threema App for iOS.

prism-break

Dash-iOS - Dash for iOS was discontinued. Please check out Dash for macOS instead.

AESCrypt-ObjC