ChatSecure

Free and open source encrypted chat for iOS.

ChatSecure v4.1.0 - Media Messaging

ChatSecure v4.1.0 - Media Messaging

OMEMO file transfer

This release contains major improvements to how media messages are handled. We’ve added support for both XEP-0363: HTTP Upload and the aesgcm:// scheme, allowing for mobile-friendly asynchronous end-to-end encrypted file transfers.

Previously we used a rather obscure protocol called OTRDATA that utilized OTR TLVs to send arbitrary data through existing OTR sessions. It worked reasonably well… sometimes. It was subject to throttling by XMPP servers, had a lot of encoding overhead, and wouldn’t work unless both parties were online and were in an active OTR session.

This new file transfer mechanism was designed to work well with OMEMO, and should handle multiple devices and group chats once that work is completed. To see if your server supports XEP-0363, check the “Server Information” section of your account details. If not, contact your server administrator or in the meantime test it out on a server from this list.

Up next will be improvements to group chat, multi-device conversation history, and better reliability of push notifications. If you like what we’re doing, don’t forget that sustainable open source starts with you! Thank you so much to everyone who has pledged their support! ❤️

Download the latest ChatSecure version here:

download chatsecure on the app store

What’s new in 4.1.0

  • XEP-0363: HTTP Upload support for much faster and reliable media messaging. [1]
  • XEP-0352: Client State Indication. Helps reduce network usage when running in the background.
  • End-to-end encryption for file transfers in OMEMO or OTR sessions [2].
  • Inline media previews for incoming URLs. (Optional)
  • Bug fixes and refactoring.
  • Tor 0.3.0.9

Caveats

  • Your server administrator must enable support for XEP-0363. See mod_http_upload for Prosody [3] and ejabberd [4] for more details.
  • Encrypted file transfer is required in OMEMO/OTR, but has limited compatibility for receiving clients. Users on the other end will receive aesgcm:// links [2].
  • Inline media previews are enabled by default, but can be disabled on a per-account basis. This feature should be disabled if you have extreme privacy concerns or do not trust your contacts. This setting is always disabled for Tor accounts.
  • Known bug related to adding friends and setting up the first OMEMO session. These will be addressed in a future release.
References
  1. https://xmpp.org/extensions/xep-0363.html
  2. https://github.com/iNPUTmice/ImageDownloader
  3. https://modules.prosody.im/mod_http_upload.html
  4. https://docs.ejabberd.im/admin/configuration/#mod-http-upload
  5. https://xmpp.org/extensions/xep-0352.html

Changelog: https://github.com/chatsecure/chatsecure-ios/compare/v4.0.9…v4.1.0

Written By
Chris Ballinger

ChatSecure v4.0.9 - Sustainable Open Source Starts With You

ChatSecure v4.0.9 - Sustainable Open Source Starts With You

Coffee Beer Gift Heart Emojis

The v4.0.9 release marks the beginning of a fundraising experiment to measure the long term viability of user-driven open source privacy software development. ChatSecure has been around for over five(!) years now, and grown from a small hobby project to a full time mission to prevent the centralization of communication.

This growth wouldn’t have been possible without the generous funding and support of organizations like The Guardian Project, OpenITP, and the Open Technology Fund along the way. The open source privacy software scene would not be nearly as vibrant without grant funding, and many projects you’ve heard of receive large amounts of funding from similar sources.

Unfortunately there are large risks with this funding model:

  • Funders generally do not support ongoing software maintenance. Grants require specific milestones and deliverables.
  • The grant cycle can be very long. It can take over a year and multiple iterations between a concept and secured funding.
  • Even after multiple rounds of negotiation, funders may ultimately decide not to fund your vision.
  • Fundraising is a full time job. For a small team, that means less time can be spent on improving the product.
  • There’s also the elephant in the room. Although “Internet freedom” appropriations may be safe for now, a large chunk of this funding pool could also quickly dry up, leaving many projects scrambling to keep the lights on.

Other funding models don’t work well either for tools in this space. Venture capital is incapable of funding “privacy software” products without eventually introducing something to monetize you by violating your privacy. The upfront cost of paid App Store builds prevents vulnerable users without reliable access to payment services from downloading the app. Services like Patreon may work for some projects, but most rarely receive enough funds to actually pay anyone for development. Offering white labels and consulting services can also work to fund core development, but it doesn’t scale well and can take a considerable amount of time.

❤️ This Is For You

You, the user, are the reason this project exists. We’ve now put the power of direct funding in your hands. There are quite a few of you now, and if a relatively small fraction of you can contribute a few bucks a month, you will prove that open source privacy software development can be sustainable.

You can now show your continued support directly within the app. The current options are ☕️ $2.99/mo, 🍺 $5.99/mo, and 🎁 $19.99/mo. Hopefully these are enough choices for now, and we’re welcome to any feedback or suggestions. If you’re already a supporter, or don’t have the spare cash right now, you can help in other ways like improving a translation, submitting a bug report, or simply spreading the word.

Thank you so much for your support!

Download the latest ChatSecure version here:

download chatsecure on the app store

Written By
Chris Ballinger

ChatSecure v4.0 - OMEMO and Signal Protocol

ChatSecure v4.0 - OMEMO and Signal Protocol

We’re excited to announce the release of ChatSecure v4.0, our largest step forward in usability since the addition of push messaging six months ago. The most significant new feature is OMEMO Encryption, a mobile-friendly encryption scheme pioneered by Conversations that adapts Signal Protocol to the XMPP world.

Using OTR on mobile has always been problematic because it was designed for desktop computers and synchronous conversations. For example, if you don’t have an active OTR session, you can’t start a new secure session if your contact is offline. Even if you do have an OTR session, it can go stale if one of the sides is purged from RAM due to low memory. This can lead to messages that disappear into the ether with no standardized way for the recipient to indicate which message they couldn’t decrypt.

OMEMO fixes all of these problems, and opens doors to new features that were impossible with OTR, like multi-client support, encrypted group chat, and more reliable file transfers. Multi-client conversations would work particularly well with our planned Desktop client, so we’re excited to add support for these features in future releases.

There are some other major changes in this release that improve the user experience, such as the outgoing message queue and enhanced identity management. The message queue automatically negotiates OMEMO and OTR sessions and allows you to resend messages in case of failure.

Image of Profile View

The new profile view allows you to view a contact’s OMEMO and OTR fingerprints, change each fingerprint’s trust settings, and modify the default encryption method. We’ve made important changes to the way trust is handled for new contacts by adopting the TOFU or “trust on first use” model. The first time you see OMEMO or OTR fingerprints for a contact, they will appear as trusted and marked with “TOFU” in the user interface. Any subsequent fingerprints will be untrusted and need to be manually verified. In this release you can compare fingerprints out-of-band by pressing on the cell and bringing up the system share dialog, but we plan to streamline the fingerprint comparison process in the future.

There are hundreds of other changes under the hood that fix bugs, improve performance, and enhance reliability. On the roadmap for v4.1 and beyond are improvements to group chat, including OMEMO encryption, multi-device chat history synchronization (XEP-0313 MAM), read receipts (aka chat markers XEP-0333), improved file transfer, and more.

We’re excited to see people experience this new frontier for XMPP usability. We will be working with the Zom project to bring OMEMO support to their suite of apps, and we expect other apps will start adopting OMEMO as well.

Thank you to everyone who helped make this release a reality!

Download on the App Store

Download ChatSecure on the App Store

Written By
Chris Ballinger

The End of ChatSecure Android

The End of ChatSecure Android

The developers of the Android version have hard forked the code and are no longer maintaining the upstream version. If you still use ChatSecure Android you should migrate to another app immediately. For a similar user experience and the best compatibility with the latest features of ChatSecure iOS, we recommend downloading Conversations.

The development of ChatSecure iOS is unaffected by this change and we will continue to release new features and updates.

Written By
Chris Ballinger

ChatSecure iOS v3.2.3 - XMPP Push

ChatSecure iOS v3.2.3 - XMPP Push

We’re excited to announce that XMPP push (XEP-0357) is now available, finally allowing users to receive push messages from any contact. This feature is only available when used with compatible XMPP servers, and requires special modules to be enabled for Prosody (mod_cloud_notify) or ejabberd (mod_push).

Our next release will focus on OMEMO support for multi-device asynchronous end-to-end encryption, which will provide huge usability gains over OTR on mobile devices. Thankfully the GPL + App Store licensing issues concerning SignalProtocol have been resolved. You can try OMEMO today in other apps such as Conversations, Gajim, and Cryptocat.

v3.2.3 changes:

  • XMPP push for supported servers (XEP-0357)
  • Improved subscription requests UI
  • Basic vCard nickname support
  • Fix issues with missing messages during stale OTR sessions
  • Improved IPv6 support for NAT64/DNS64
  • Fix some issues with presence/availability
  • Added button to view your password
  • Fix issue where message view would appear multiple times
  • Automatically start OTR sessions when contact is online
  • Send error messages back to contact when messages cannot be decrypted

Download on the App Store.

Written By
Chris Ballinger

Older ›