Oddbean new post about | logout

Notes by simplex | export

 Our criticism of recently published 
Wired article: "Wired's Attack on Privacy"

https://simplex.chat/blog/20241016-wired-attack-on-privacy.html 
 If nobody was paying attention, it would not have been a problem. But many people, beyond the niche of technologists and privacy supporters, are misled to see privacy as something that enables rather than reduces crime, and it may have very damaging consequences for democracy – it's a real threat. So this response is necessary. 
 New security review by Trail of Bits and new v6.1 released – better calls, better iOS notifications and better user experience!

https://simplex.chat/blog/20241014-simplex-network-v6-1-security-review-better-calls-user-experience.html 
 v6.1-beta.0 is released with support for SOCKS proxies both in iOS (via TestFlight) and Android (via Github releases as direct APK download: https://github.com/simplex-chat/simplex-chat/releases/tag/v6.1.0-beta.0).

You can host your own SOCKS proxy (this one looks good: https://github.com/heiher/hev-socks5-server) or you can try ours, if you use preset servers (it won't allow connecting to any other servers directly, but you can still send messages to anybody who uses other servers): 

Address: 139.162.173.97
Port: 443
Username: user
Password: YJHolWSzTfOny7es 
 Answering your questions about "private message routing" in SimpleX network:

1. Does SimpleX protect IP addresses?  Yes.
2. Doesn't private message routing reinvent Tor?  No.
3. Why don't you embed Tor?  Tor is great, but not for all.

Read more in FAQ: https://simplex.chat/faq/#does-simplex-protect-my-ip-address 
 https://securemessagingapps.com by is the great comparison of messaging apps, but there are several incorrect statements about @SimpleXChat there. Commenting in thread 🧵 below. 
 1. Main reasons why the app isn't recommended: Provide a transparency report.

It is available online and updated at least quarterly, or if anything changes: https://simplex.chat/transparency/ 
 2. Company jurisdiction: UK

We disagree that there are any jurisdictions that are particularly good for privacy.

Also, this might important for centralised services, like Threema, where the users can't host servers, and much less important for decentralized network, such as SimpleX, where there are hundreds (if not thousands) of servers that we don't control. 
 3. Cryptographic primitives. Curve25519 / XSalsa20 256 / Poly1305 (downgraded for the absence of PQ encryption).

We added PQ encryption in March this year: https://simplex.chat/blog/20240314-simplex-chat-v5-6-quantum-resistance-signal-double-ratchet-algorithm.html

This is done in the same way as Apple describes as PQ3 here: https://security.apple.com/blog/imessage-pq3/

it provides stronger protection than Signal design where PQ encryption only applies to the initial key exchange. 
 4. Directory service could be modified to enable a MITM attack? Yes

This is incorrect, as there is no user directory service at all (and no knowledge of even the number of users), and MITM by servers is not possible by design, even without optional security code verification (that exists to mitigate MITM by the channel you used to pass one-time invitation link, e.g. email). 
 5. Does the company log timestamps/IP addresses? Yes

This is incorrect, we never logged IP addresses and access timestamps of the users.

Further, the private message routing that is now enabled by default for all users prevents such logging by any 3rd party servers with modified code:

https://simplex.chat/blog/20240604-simplex-chat-v5.8-private-message-routing-chat-themes.html 
 6. Is the design well documented? Somewhat

The design documentation was reviewed in preparation for design security audit in July 2024 - report is about to be published. 
 Thanks to our users who highlighted these inaccuracies to us! 
 It is not the same. Build reproducibility means that every time you build the app from the source code you would get exactly the same result, identical byte by byte. It would allow independent parties to validate that the apps that we distribute via different channels are built from the source code we publish.

The problem is that to achieve this quality requires that the build process is deterministic, and in general case it is not:
- some libraries may embed timestamps during compilation.
- compilers my use random numbers for some identifiers.
- etc.

We plan to solve this problem, but it is much harder than it may seem. 
 Please fill this survey about SimpleX Chat: https://gdlgeuc34xt.typeform.com/to/XAKc5N1l 

It is a smaller version of the survey we did last year, please answer again if you answered then.

Thank you! 
 Opened now again - was limited to 100 responses 
 Announcing $1.3m pre-seed investment from  @jack and 
Asymmetric VC in SimpleX Chat 🚀

https://simplex.chat/blog/20240814-simplex-chat-vision-funding-v6-private-routing-new-user-experience.html

Also SimpleX Chat v6.0 stable is now released with the new user experience and private message routing – details in the post. 
 In case you missed the news, #ChatControl is back on the agenda of the EU governments: https://www.patrick-breyer.de/en/take-action-to-stop-chat-control-now/

We wrote before that strong e2e encryption is the only way to protect children online: https://simplex.chat/blog/20240601-protecting-children-safety-requires-e2e-encryption.html

Write to the MPs you voted for – every single letter can change the outcome.

And huge thanks to Patrick Breyer for fighting this insanity. 
 If any applicable legislation were to be passed, then we will be getting a legal advice based on its final wording about what is the course of action that is both legal and also benefits our users most.

At this point it would be unprofessional to speculate about it. 
 Please note: we do NOT control the domain simplexchat.org

It might be a phishing site to collect the data (it has an exact copy of our website https://simplex.chat).

We submitted the complaint to the domain registrar (GNAME).

Do NOT download anything from simplexchat.org, obviously. 
 SimpleX Chat v6.0-beta.4 is released!

It is stable to use, and please let us know any issues - any help testing it is really great!

You can get beta version for iOS from Apple TestFlight, and for Android from GitHub or from our F-Droid repo (it's still in review in Play Store beta channel): https://simplex.chat/downloads/

The final release will be published on 8/14, together with the announcements.

https://m.primal.net/Jsqo.jpg  
 We love Nostr as a publishing platform that offers unparalleled censorship resistance. But NIP44 does NOT provide most of the important qualities of e2e encryption:

- break-in recovery.
- repudiation (deniability).
- visibility of connection graph to observers.
- fixed message sizes (although it can be provided by the specific app)
- resistance to Shore algorithm (PQ encryption).

It's unclear whether it provides forward secrecy, but the spec implies that it does not - I might be wrong here.

We wrote this post about the qualities of e2e encryption and why they are important: https://simplex.chat/blog/20240314-simplex-chat-v5-6-quantum-resistance-signal-double-ratchet-algorithm.html 
 The future of privacy depends on you!

https://simplex.chat/blog/20240704-future-of-privacy-enforcing-privacy-standards.html

To make privacy a non-negotiable obligation of technology providers:
- support noyb.eu legal actions.
- write to your elected representatives.
- explain the value privacy to your friends. 
 Because I specifically do not want to use any public currency blockchain - I want an accounting method, not money. There many useful legal differences when the flow of money is the opposite to the flow of cryptographic keys. Read the doc. 
 Talking  at MoneroKon in 25 min!  Watch the livestream here: https://youtube.monerokon.org/ 
 The new SimpleX release hides IPs with onion routing.

Next he's going to do blockchain vouchers ... 
 No, not like Session at all.

We are not going to throw away double ratchet, and we are not going to create cryptocurrencies based on public blockchains. If we ever replace double ratchet with any other scheme, we would replace it with the more secure one, not with a less secure one like Session did.

We are moving to a very different direction from Session's: https://simplex.chat/blog/20240516-simplex-redefining-privacy-hard-choices.html

Also, the design of the  private routing achieves the level of metadata privacy that onion routing in Session doesn’t provide - I can comment more on it, but here is the post: https://simplex.chat/blog/20240604-simplex-chat-v5.8-private-message-routing-chat-themes.html

I understand that Session fans might be angry about my criticism of Session, but its crisis is of their own doing - Session's decision to remove double ratchet was a wrong one - users who choose Session need double ratchet, at least.

The path for Session to regain users' trust would be:
1) get double ratchet back, with all its qualities, and figure out how to solve multidevice without compromising encryption security - I’d happily collaborate on that, as an acceptable solution doesn’t exist yet.
2) make node ownership optionally transparent and let clients choose nodes owned by known and different operators (to avoid unknown operators who potentially collude undermining onion routing promises - these promises only hold under the assumption that operators of nodes chosen for the circuit do not collude).
3) decentralise media storage in the same way messages are decentralised - Session may as well adopt XFTP protocol we designed - it's independent from messaging, and that can create some collaboration points too.
4) add a notification when another device access the same profile via recovery code.
5) protect access to recovery code in the app with PIN.

In its current state Session is simply dangerous to use for any scenarios requiring privacy and security.

Solving points 4 and 5 would remove Session from "dangerous" territory and make it simply “not too secure”.  I don't understand why it wasn't already done after the public conversation with Keith several months ago, see the links here: https://x.com/SimpleXChat/status/1755216356159414602

Solving 1 would make it secure. Solving 2 and 3 would make it private.

It's correct to point out SimpleX network limitations, and we work on resolving them.

But by misleading the audience about Session level of privacy and security you are creating risks that may cost some people their lives or freedom - this is really bad for the community and detrimental for your reputation as well. 
 We are upgrading the preset SimpleX relays to the new version - it is compatible only with the apps starting from v5.5.3 (released early February) - please upgrade to the latest version and ask your friends to upgrade too. 
 SimpleX Chat v5.7 released:

- quantum resistant e2e encryption with contacts enabled by default.
- forward messages without revealing the source and save them to private notes.
- in-call sounds and switching sound sources.
- customizable profile images - from square to circle.
- better network connection management.

Also, we added Lithuanian interface language to Android and desktop apps - thanks to our users!

Read more: https://simplex.chat/blog/20240426-simplex-legally-binding-transparency-v5-7-better-user-experience.html 
 The post about SimpleX Chat v5.6 release with quantum resistant end-to-end encryption and also about how SimpleX network protocols will be moving to nonprofit governance:

https://
simplex.chat/blog/20240323-sim
plex-network-privacy-non-profit-v5-6-quantum-resistant-e2e-encryption-simple-migration.html

Esra'a Al Shafei has just joined SimpleX Chat team to help us deliver these goals - welcome! 
 Updated "SimpleX Chat Privacy Policy and Conditions of Use"

The updated document: https://github.com/simplex-chat/simplex-chat/blob/stable/PRIVACY.md

The changes: https://github.com/simplex-chat/simplex-chat/pull/3796/files

TL;DR:
- it clarifies that we develop software for communication network, and not a communication service.
- it highlights the requirement of AGPLv3 license to publish any code modifications, and our commitment to run unmodified code.

Let us know any comments / questions! 
 Improving repudiation (deniability) in SimpleX protocols

Please send any questions/comments!

We believe that repudiation (aka deniability) is very important for communications. See this discussion with Session CTO about it, for example:
https://twitter.com/JefferysKee/status/1754336020857029013
https://twitter.com/SimpleXChat/status/1754455524068720762 
https://twitter.com/JefferysKee/status/1754762787119919587
https://twitter.com/SimpleXChat/status/1754840209936543977

Currently only a part of SimpleX protocol stack provides it – client-to-client e2e encryption, that includes double ratchet (aka Signal) algorithm in one of the layers.

Client-relay protocol, on another hand, does not provide it, and as relays are chosen by the recipients, a modified relay can provide non-repudiation for sent messages, which is undesirable in the context of private communications.

We believe there should be a possibility for digital off-the-record conversations, in the same way as it is possible for in-person meetings - while recipient can keep the memory and even transcript, it should not be a strong proof to a third party.

This proposal adds repudiation to client-relay protocol by replacing cryptographic signature with authenticator (see this WIP document for the details: https://github.com/simplex-chat/simplexmq/blob/ep/cmd-auth/rfcs/2024-02-03-deniability.md).

It is already mostly implemented and will be fully rolled out by v5.7.

A more detailed post about repudiation importance and its acceptance in society and legal systems is coming. 
 Yes, but in Session it is sadly achieved it at a cost of compromising security - and the recovery phrase is just two taps away, to be copied unnoticeably even by technically incompetent attacker… 
 Repudiation is the important quality for any private conversation - it gives digital conversation the same properties as face to face - you can plausibly deny it. And yes, non-repudiation can be added in the context where it is needed. 
 What the metadata privacy in Matrix chat like? 
 I don’t think you can equate the amount of metadata available to Matrix and Signal servers with what is available to SimpleX servers - it’s actually less than what is available to Nostr relays users connect to. Putting them in one list, however flattering, implies a similar amount of metadata available, which is very far from reality and is misleading. 
  @Vitor Pamplona Thanks for the suggestions. We did indeed consider various ideas about how to reduce the persistence queue ID, but the to rotate the queues to another server periodically seemed simpler and providing better metadata protection. The current approach also allows some basic protection from resource exhaustion attacks.

What I don't quite follow - if the same key A is used to retrieve the messages how it is any better than having queue ID from the perspective of correlating messages to the users? Wouldn't it still identify the user any better, and now instead of mapping IP addresses to queues, the server could map IP addresses to the messages... Maybe I don't understand what you propose?

The ideas we considered were about trying to avoid any persistent IDs entirely, e.g. via some kind of DHT tables, and something like this might happen in "v3" of the protocols (we are currently still moving to "v2"). 
 Would be good to look at the spec. 
 SimpleX Chat v5.5 is released – with private notes and group history!

https://simplex.chat/blog/20240124-simplex-chat-infrastructure-costs-v5-5-simplex-ux-private-notes-group-history.html


Also in this release:
- simpler UX to connect - paste SimpleX links to search bar.
- improved message delivery and reduced battery usage.
- fully encrypted files and media in the app storage.
- reveal secrets in messages by tapping.
- many other improvements.

Downloads page: https://simplex.chat/downloads/

#privacy #security #messenger 
 Thank you for all the support this year - it's been epic!

These are the last releases this year!

New in v5.4.2:
- faster sending messages to groups.
- lower CPU usage (except armv7 devices).
- on iOS: improved notifications and smaller video sizes
- many fixes!

In addition to that, v5.5-beta.0 has:
- new simpler UI for making connections.
- optional visible history in groups.
- reveal the secret texts by tapping.

Get them via our downloads page:  https://simplex.chat/downloads/

Happy new year! 
 A talk about SimpleX Chat at BornHack 2023 conference by Peter Stuge:

https://media.ccc.de/v/bornhack2023-56143-simplex-chat-simple-m (recently uploaded)

The talk was made when v5.2 was the latest, with lots of progress since:
- local file encryption
- desktop client
- using mobile from desktop
etc.

Thank you! 
 Simplex Chat v5.4 is released – link mobile and desktop apps via secure quantum resistant protocol.

Also in v5.4:

- Many group improvements:
  - faster to join and more reliable. Once you upgrade to v5.4, join the new users' group and find other groups in SimpleX directory.
  - create groups with incognito profile.
  - block group members to reduce noise.
- Better calls: faster to connect, with screen sharing on desktop.
- Many other fixes and improvements.

Read more in the post: https://simplex.chat/blog/20231125-simplex-chat-v5-4-link-mobile-desktop-quantum-resistant-better-groups.html

Install the apps via downloads page: https://simplex.chat/downloads/ 
 SimpleX Chat v5.4.0-beta.3!

Share screen/window in desktop video calls!

Lots of group improvements:
- create groups incognito.
- block some members just for you.
- etc.

Lots of fixes - more stable connections, more stable sending files, fixed file sharing and many crashes.

Get it from GitHub, our F-Droid repo, Play Store beta and TestFlight for iOS: https://simplex.chat/downloads/

Also, iOS and Android (aarch64 only for now – it didn't change for arvm7a devices) are built using the new version of the GHC compiler that should reduce the battery consumption a bit - please share how battery consumption changed for you, comparing with the previous version. 
 RIP Chat Control?

https://european-pirateparty.eu/historic-agreement-on-chatcontrol-european-parliament-wants-to-safeguard-secure-encryption/ while I always believed that "Chat Control" as it was proposed would be dead on arrival, and unenforceable, it's always great to see common sense prevail. Some win for #privacy and #security of communications. The fight is far from over though. 
 https://freedom.tech/simplex-chat-review/ - a fantastic review of SimpleX Chat by @Seth For Privacy 
 SimpleX Chat is now available via AppImage hub!

https://www.appimagehub.com/p/2093289 
 SimpleX Chat desktop for Windows is released in v5.4-beta.0!

https://github.com/simplex-chat/simplex-chat/releases/tag/v5.4.0-beta.0 
 SimpleX Chat v5.3 is released – with new desktop app and local file encryption!

Also in this release:
- group improvements.
- simplified incognito mode
- better app responsiveness, stability and 40% reduced memory usage.
- new privacy settings: show last messages & save draft.

Added 6 new interface languages thanks to our users - Arabic, Bulgarian, Finnish, Hebrew, Thai and Ukrainian.

Read more: https://simplex.chat/blog/20230925-simplex-chat-v5-3-desktop-app-local-file-encryption-directory-service.html

Downloads page: https://simplex.chat/downloads/

#privacy #security #messenger 
 Yep, there was a broken M1 binary a the one uploaded now is fixed (in 5.3.1) 
 Working on it - this week seems likely! 
 F-droid is always a bit behind, you can check our fdroid repo: https://simplex.chat/fdroid 
 Via export in database settings, but you can’t use one profile in both devices yet 
 I don’t think that marketing Session in competitor’s threads is a viable replacement for lost deniability and forward secrecy, and for the fact that whoever has passphrase can read user’s messages without them knowing. So no, I don’t think anybody needs to use session, even Signal seems a better trade off. 
 Hm… where do I find my public key for NIP-05? npub address isn’t it, right? 
 Thanks all - got it! 
 Verified! 
 There is a desktop app beta via GitHub releases but it can only work with a separate profile for now - it’ll be announced soon!