Remix.run Logo
Molly: An Improved Signal App(molly.im)
130 points by dtj1123 4 hours ago | 52 comments
raphman 5 minutes ago | parent | next [-]

The Whisperfish [1] project (a Signal messenger for Sailfish OS) maintains an independent Signal client library written in Rust [2]. It works quite well - unless Signal decides to change their protocols or kick non-standard clients.

[1] https://gitlab.com/whisperfish/whisperfish

[2] https://github.com/whisperfish/presage

n3dm 27 minutes ago | parent | prev | next [-]

I've used Molly for over a year. Overnight it lost the device registration and will not contact the servers to re-register. The backup feature also does not work which left me dead in the water for several days with no fix. I switched back to signal and had to start a new database. It was a disaster. YMMV

landr0id 3 hours ago | parent | prev | next [-]

> Contains no proprietary blobs, unlike Signal

What "proprietary blobs" does Signal have?

I'll also just add: it's probably not a good idea to use any modifications to an E2EE messenger unless you are comfortable with those privacy/security guarantees possibly being violated by the 3rd party code.

The only exception to this would be if I really trusted the goals of the 3rd party, like Graphene.

grishka 2 hours ago | parent | next [-]

> What "proprietary blobs" does Signal have?

As they say in the Github readme, FCM and Google Maps.

FCM doesn't technically require a blob — it's just that Google wants you to think it does. I reverse engineered their library and it turned out to be a criminally over-engineered wrapper around two broadcast receivers. So, the Mastodon app is proudly the first app ever to both support FCM push notifications, and be 100% open-source.

landr0id 2 hours ago | parent | next [-]

>As they say in the Github readme, FCM and Google Maps.

Thanks, I didn't notice that. Reading this, I'm kind of surprised that Signal doesn't offer an OpenStreetMaps build as it seems like it'd be more inline with their philosophy.

tomtomtom777 an hour ago | parent [-]

The app doesn't even recognize geo:.. links, which makes degoogling rather hard.

nicoburns 2 hours ago | parent | prev [-]

Oo, do you have a link for your implementation? I will soon be looking at creating a library to support FCM (android push notifications) in Android apps written in Rust. And having a simpler interface with the OS (esp. if it therefore doesn't require building a non-syste library) would be incredibly helpful.

GranPC 2 hours ago | parent [-]

Looks like this is the first commit where it was added: https://github.com/mastodon/mastodon-android/commit/a0cbf0fa...

nicoburns 2 hours ago | parent [-]

Thanks! It looks like that repo is GPL though, which I respect but isn't going to work for my usage (where I'm trying to build a generic UI toolkit that can be used by all sorts of applications including closed source ones).

TeMPOraL 27 minutes ago | parent | prev | next [-]

OTOH it's nice to have an alternative client. If E2EE messenger system is going to lock itself down hard, trying to "protect" itself from the user even harder than third party adversaries, then I personally see no point - might as well use Whatsapp.

I miss the times IM software respected, or at least didn't fight hard to defeat, the end-user's freedom to computing on their own device, which includes viewing and sending messages through whatever interface they see fit, including indirectly as part of a script/automation. But that was all before E2EE era, hell, before mobile dominance.

anonym29 3 hours ago | parent | prev [-]

Firebase, GMS (Google Mobile Services). The Alphabet Corporation is part of many security and privacy conscious users' threat model, and these users aren't generally thrilled about leaking even limited message metadata like timing to their adversary, particularly when that adversary is known to cooperate with global passive adversaries.

There are actually two builds of Molly: Molly and Molly-FOSS. IIRC Molly uses regular Firebase, which can be faster and more reliable but comes with the above tradeoffs, while Molly-FOSS uses UnifiedPush.

Your point about exercising caution with forks of encrypted messaging apps is a great rule of thumb, and in general, social proof should NOT substitute for competent software security specialists reading and evaluating source code, but given you seem to trust GrapheneOS, it's worth noting that they've formally endorsed Molly: https://xcancel.com/GrapheneOS/status/1769277147569443309

landr0id 2 hours ago | parent [-]

> Your point about exercising caution with forks of encrypted messaging apps is a great rule of thumb, and in general, social proof should NOT substitute for competent software security specialists reading and evaluating source code

Also a great point :) And thank you for the reference.

mid-kid 2 hours ago | parent | prev | next [-]

This app's killer feature for me is that it's actually available on F-Droid, unlike its upstream.

Happy user for many years now, thanks for the support!

EffrafaxOfWug an hour ago | parent [-]

There is also a signal build in the fdroid repo of the Guardian Project

analogpixel 17 minutes ago | parent | prev | next [-]

Does it lock me out of the app like signal if I don't update the app every few weeks? I'm looking for an app that never needs to be updated; Oh, I guess that is email.

k_bx an hour ago | parent | prev | next [-]

> multi-device

Can someone explain, is this different from adding (up to 5) devices to your Signal account? Are these devices all "primary" or something?

jeltz 44 minutes ago | parent [-]

Signal's official Android app does not support being linked, only the iOS and desktop apps support that. This is why I use Molly.

I would ideally want to not have one device being the master and the rest linked to it (e.g. Element can do that for Matrix) but that might be a too big change. And as far as I know Molly does not try to solve that.

automathematics 31 minutes ago | parent [-]

I just saw a blog post they’re working on this in the official app, though! Finally. Fingers crossed.

throawayonthe 2 hours ago | parent | prev | next [-]

i use it only because it happens to have a convenient 'supply trust chain' on GrapheneOS: (built-in) App Store -> Accrescent[0] -> Molly (seems to ship the 'FOSS' version)

i don't use any of the enhancements, but it does receive notifications over the websocket it keeps open in the background vs only waking up on an FCM push notification like the regular app

i wonder if the supply chain risk of having a second entity (that signs the apks!) involved is really worth it to anyone... hope signal can be published on Accrescent or similar someday :p

[0] https://accrescent.app/

jdironman 2 hours ago | parent | prev | next [-]

What about the server portion? that's the thing I would like to have forked / open source.

some_furry 2 hours ago | parent [-]

Good news! https://github.com/signalapp/Signal-Server

chipheat 3 hours ago | parent | prev | next [-]

Seems interesting, but are there any screenshots?

contact9879 2 hours ago | parent [-]

it looks just like signal with a purple theme

amelius 3 hours ago | parent | prev | next [-]

> Protects database

What database?

This page is clearly written for developers that are already familiar with it.

From this I can already predict this project is going nowhere.

anonym29 3 hours ago | parent [-]

>What database?

The local database used by Signal to organize every message, every contact, every profile photo, every attachment, every group, basically every dynamic piece of data you interact with in the app.

Signal is basically a UI layer for a database. The in-transit encryption is genuinely good enough to be textbook study material for cryptographers, but the at-rest encryption became a joke the moment they stopped using your pin to encrypt the local DB and requiring it to open the app.

As someone who's been enthusiastic about Signal since it was TextSecure and RedPhone, the changes made over the years to broaden the userbase have been really exciting from an adoption perspective, and really depressing from a security perspective.

TL;DR of Molly is that it fixes/improves several of those security regressions (and adds new security features, like wiping RAM on db lock) while maintaining transparent compatibility with the official servers, and accordingly, other people using the regular Signal client.

chc4 3 hours ago | parent | next [-]

Signal is an end-to-end encrypted messaging app. People continue to breathlessly mentioning the lack of database encryption as a problem, but that never made it a real security issue: its job is not, and has never been, dissuading an attacker who has local access to one of the ends, especially because that is an incoherent security boundary (just like the people who were very upset about Signal using the system keyboard which is potentially backdoored - if your phone is compromised, of course someone will be be able to read your Signal messages).

franga2000 2 hours ago | parent [-]

Database encryption isn't comparable to the keyboard drama. Protecting against malware in your keyboard can be done by using a different meyboard and is of course out of scope.

But if my phone gets taken and an exploit is used to get root access on it, I don't want the messages to be readable and there's nothing I can do about it. It's not like I can just use a different storage backend.

It's also a very simple solution - just let me set an encryption password. It's not an open-ended problem like protecting from malware running on the device when you're using it.

XorNot an hour ago | parent [-]

If someone has root access to your apparently unencrypted phone, then they can just launch the Signal app directly and it'll decrypt the database for them.

Which is to say this is an incoherent security boundary: you're not encrypting your phone's storage in a meaningful way, but planning to rely on entering a pin number every time you launch Signal to secure it? (Which in turn is also not secure because a pin is not secure without hardware able to enforce lock outs and tamper resistance...which in this scenario you just indicated have been bypassed).

franga2000 an hour ago | parent [-]

Any modern Android is encrypted at rest, but if your phone is taken after first unlock, they get access to the plaintext storage. That's the attack vector.

A passphrase can be long, not just a short numeric PIN. It can be different from the phone unlock one. It could even be different for different chats.

tapoxi 2 hours ago | parent | prev | next [-]

Isn't the phone filesystem encrypted?

anonym29 2 hours ago | parent [-]

Depends on quite a few other factors, but if someone with a GrayKey or Cellebrite appliance gets your phone, there's a good chance they can get in both in BFU and AFU states, even if locked. Once unlocked (or broken into), stock Signal offers you zero protection, while Molly forces them to start a brute force attack against the password you gave Molly.

This is less true for fully patched GrapheneOS devices than it is for fully patched iOS and other Android devices, but this space is basically a constantly evolving cat and mouse game. We don't get a press release when GrayKey or Cellebrite develop a new zero day, so defense in depth can be helpful even for hardened platforms like GOS.

littlestymaar 2 hours ago | parent | prev | next [-]

> As someone who's been enthusiastic about Signal since it was TextSecure and RedPhone, the changes made over the years to broaden the userbase have been really exciting from an adoption perspective, and really depressing from a security perspective.

As always, it depends on your threat model.

I use signal because I value my privacy and don't trust Facebook. Not because I'm an activist. So I'm in the target group for Signal's new behavior and I welcome it (especially since to use it to share personal information that I don't want Facebook or advertisers to get, I need my parents and in-laws to use it as well, so it must be user friendly enough).

I wish they continue moving forward in that direction by the way and allow shared pictures to be stored directly on the phone's main memory (or at least add an opt-in setting for that), because the security I get from it not being is zero and the usability suffers significantly.

anonym29 2 hours ago | parent [-]

You're absolutely right that the appropriate level of security does depend on someone's threat model, but I do want to point out that you don't need to be an activist to benefit from privacy.

I'm a really big fan of the airport bathroom analogy. When you use the restroom in the airport, you close the stall door behind you.

You're not doing anything wrong, you have nothing to hide, and everyone knows what you're doing. But you take actions to preserve your privacy anyway, and that's good.

Everyone deserves privacy, and the psychological comfort that comes with it. Dance like nobody's watching, encrypt like everyone is :)

stavros 27 minutes ago | parent [-]

That's not the point the GP was making. They meant "I'd rather give up a bit of privacy for a big increase in usability, as I'm not in the group of people that needs extreme privacy". I happen to agree with them, I get more benefit from a fairly-private messaging app my friends can use than from an extremely-private messaging app nobody in my social circle can use.

bawolff 2 hours ago | parent | prev [-]

Meh, most phones have full disk encryption. For the average person, encryption at rest in signal doesn't provide very much.

anonym29 2 hours ago | parent [-]

I mentioned some of the pragmatic constraints of fully trusting typical Android / iOS FDE to fully protect the confidentiality of Signal messages in another comment above that I would encourage you to read.

That said, Molly definitely isn't designed for the average person's threat model, that's totally true, but it's also worth noting that just because someone isn't aware of a certain risk in their threat model, that doesn't mean they will never benefit from taking steps to proactively protect themselves from that risk.

IMO, security and privacy are best conceptualized not as binary properties where you either have it or you don't, but rather as journeys, where every step in the right direction is a good one.

I'd always encourage everyone to question their own assumptions about security and never stop learning, it's good for your brain even if you ultimately decide that you don't want to accept the tradeoffs of an approach like the one Molly takes towards at-rest encryption.

IshKebab an hour ago | parent | prev | next [-]

https://github.com/mollyim/mollyim-android/blob/285650e38613...

I'm pretty unconvinced that this is a sane or useful thing to do.

saghm an hour ago | parent | next [-]

Is there a specific part you're referring to? For those of us who don't read or write Java frequently, it's not clear whether it's worth it to spend time reading the code without at least having some sense of whether you might be making a compelling point or not.

wakawaka28 43 minutes ago | parent | prev [-]

You need to be more specific. Lots of security-conscious apps wipe their memory. Memory contains, among other things, the decrypted text and private keys for the app. RAM is known to hold data longer than you'd want, and it can be swapped out onto persistent storage like the internal SSD. If you don't know that wiping memory is a basic and common feature for apps like this, then you're not qualified to have an opinion. Now if you think wiping the memory is ineffective, inefficient, or superceded by a bigger issue, then we might have something to talk about.

slurrpurr 2 hours ago | parent | prev | next [-]

What is the point of this? Just use the regular signal app. It may be more safe, but are the developers trustworthy enough?

Tepix an hour ago | parent [-]

It has various improvements and you can also use your private signal server. I believe it also lets you backup your data! How about that for digital sovereignty.

dtj1123 2 minutes ago | parent | next [-]

Wasn't aware you could run your own signal server. How difficult is it to set up?

slurrpurr an hour ago | parent | prev [-]

Signal also lets you backup your data, for a small subscription

g-mork 3 hours ago | parent | prev | next [-]

Extra privacy features and named after UK slang for MDMA, hrm.

sumuyuda 3 hours ago | parent [-]

Molly is the American slang, Mandy is the UK slang for MDMA.

worik 3 hours ago | parent | prev | next [-]

What are the advantages of this?

Mindless2112 3 hours ago | parent [-]

It supports linking two Android devices.

cowmix 3 hours ago | parent [-]

This is huge. There's been 3rd party Signal library for this for years -- and for some reason I can't determine, the developers have opted NOT to do this.

jeltz 32 minutes ago | parent [-]

Yeah, the Signal team's roadmap seems very strange to me as an outsider. There are some low hanging fruits which they just seem to refuse to fix.

And given how in this case Molly could fix it it cannot have been that hard to fix.

immibis an hour ago | parent | prev [-]

Can't wait to see how the lawsuit goes. Moxie is infamously protective of Signal.

Tepix an hour ago | parent | next [-]

The Signal Android app is AGPL licensed. What should the lawsuit be about?

jsiepkes an hour ago | parent | prev [-]

Moxie hasn't been affiliated with Signal for years. He stepped back years ago.