From dd6586fe9ef83127270443d362f2b59b44f6aacc Mon Sep 17 00:00:00 2001 From: epoberezkin Date: Thu, 16 May 2024 17:17:36 +0000 Subject: [PATCH] deploy: ed3365bb6d8284060a154dfc6452a8b79ef9a43e --- blog/20210914-simplex-chat-v0.4-released.html | 4 +- ...20220214-simplex-chat-ios-public-beta.html | 2 +- blog/20220308-simplex-chat-mobile-apps.html | 2 +- ...04-simplex-chat-instant-notifications.html | 4 +- .../20220524-simplex-chat-better-privacy.html | 4 +- ...ex-chat-new-privacy-security-settings.html | 4 +- ...e-export-import-protocol-improvements.html | 6 +- ...mplex-chat-v3.1-tor-groups-efficiency.html | 4 +- ...0220808-simplex-chat-v3.1-chat-groups.html | 10 +- ...0901-simplex-chat-v3.2-incognito-mode.html | 6 +- ...28-simplex-chat-v4-encrypted-database.html | 14 +- ...-chat-v4.2-security-audit-new-website.html | 6 +- ...1206-simplex-chat-v4.3-voice-messages.html | 8 +- ...mplex-chat-v4.4-disappearing-messages.html | 6 +- ...-simplex-chat-v4-5-user-chat-profiles.html | 4 +- ...230301-simplex-file-transfer-protocol.html | 6 +- ...328-simplex-chat-v4-6-hidden-profiles.html | 2 +- ...sion-funding-v5-videos-files-passcode.html | 8 +- ...sage-reactions-self-destruct-passcode.html | 10 +- ...x-chat-v5-2-message-delivery-receipts.html | 12 +- ...cal-file-encryption-directory-service.html | 10 +- ...sktop-quantum-resistant-better-groups.html | 8 +- ...implex-ux-private-notes-group-history.html | 8 +- ...tance-signal-double-ratchet-algorithm.html | 21 +- ...stant-e2e-encryption-simple-migration.html | 8 +- ...i-joined-simplex-chat-esraa-al-shafei.html | 2 +- ...416-dangers-of-metadata-in-messengers.html | 6 +- ...nsparency-v5-7-better-user-experience.html | 17 +- ...mplex-redefining-privacy-hard-choices.html | 544 ++++++++++++++++++ blog/images/20240314-comparison.jpg | Bin 142671 -> 142707 bytes blog/images/20240516-parliament.jpg | Bin 0 -> 114710 bytes blog/images/simplex-explained.svg | 82 +++ blog/index.html | 46 ++ blog/lang/fr-fr/README_fr/index.html | 40 +- docs/cli.html | 8 +- docs/directory.html | 2 +- docs/glossary.html | 2 +- docs/guide/app-settings.html | 8 +- docs/guide/chat-profiles.html | 12 +- docs/guide/making-connections.html | 2 +- docs/guide/managing-data.html | 2 +- docs/guide/privacy-security.html | 14 +- docs/guide/readme.html | 22 +- docs/lang/cs/cli.html | 2 +- docs/lang/cs/server.html | 2 +- docs/lang/fr/cli.html | 2 +- docs/lang/pl/cli.html | 10 +- docs/lang/pl/server.html | 2 +- docs/lang/pl/simplex.html | 2 +- docs/protocol/simplex-chat.html | 10 +- docs/server.html | 2 +- docs/themes.html | 4 +- docs/xftp-server.html | 2 +- faq/index.html | 24 +- feed.atom | 82 ++- feed.rss | 81 ++- privacy/index.html | 12 +- security/index.html | 2 +- transparency/index.html | 4 +- 59 files changed, 998 insertions(+), 231 deletions(-) create mode 100644 blog/20240516-simplex-redefining-privacy-hard-choices.html create mode 100644 blog/images/20240516-parliament.jpg create mode 100644 blog/images/simplex-explained.svg diff --git a/blog/20210914-simplex-chat-v0.4-released.html b/blog/20210914-simplex-chat-v0.4-released.html index 6f3583294a..50bdecfb18 100644 --- a/blog/20210914-simplex-chat-v0.4-released.html +++ b/blog/20210914-simplex-chat-v0.4-released.html @@ -390,10 +390,10 @@ window.addEventListener('scroll',changeHeaderBg);

Chat groups

To create a group use the /g <group> command. You can then invite contacts to the group by entering the /a <group> <name> command. Your contact(s) will need to use the /j accept command to accept the invitation to the group. To send messages to the group, simply enter #<group> <message>.

Please note: Groups are not stored on any server; they are maintained as a list of members in the app database. Sending a message to the group sends a message to each member of the group.

-

simplex-chat

+

simplex-chat

File transfer

Sharing files is simple! To send a file to a contact, use the /f @<contact> <file_path> command. The recipient will have to accept before the file is sent.

-

simplex-chat

+

simplex-chat

We're always looking for help!

We'd really appreciate your comments, criticism and support - a star on the GitHub repo, downloading and testing the chat or any contribution to the project will help a lot – thank you for all your support!

Please note: SimpleX Chat is in early stage development: we are still iterating protocols, improving privacy and security, so if you have communication scenarios requiring high security, you should consider some other options for now.

diff --git a/blog/20220214-simplex-chat-ios-public-beta.html b/blog/20220214-simplex-chat-ios-public-beta.html index a5bc4fb833..a797e0fbed 100644 --- a/blog/20220214-simplex-chat-ios-public-beta.html +++ b/blog/20220214-simplex-chat-ios-public-beta.html @@ -389,7 +389,7 @@ window.addEventListener('scroll',changeHeaderBg);
  • additional layer of E2E encryption in each message queue (to prevent traffic correlation when multiple queues are used in a conversation - something we plan later this year).
  • additional encryption of messages delivered from servers to recipients (also to prevent traffic correlation).
  • -

    You can read more details in our recent v1 announcement.

    +

    You can read more details in our recent v1 announcement.

    Join our public beta!

    Install the app via TestFlight, connect to us (via Connect to SimpleX team link in the app) and to a couple of your friends you usually send messages to - and please let us know what you think!

    We would really appreciate any feedback to improve the app and to decide which additional features should be included in our public release in March.

    diff --git a/blog/20220308-simplex-chat-mobile-apps.html b/blog/20220308-simplex-chat-mobile-apps.html index daabaccaa8..891aad2155 100644 --- a/blog/20220308-simplex-chat-mobile-apps.html +++ b/blog/20220308-simplex-chat-mobile-apps.html @@ -403,7 +403,7 @@ window.addEventListener('scroll',changeHeaderBg);
  • additional layer of E2E encryption in each message queue (to prevent traffic correlation when multiple queues are used in a conversation - something we plan later this year).
  • additional encryption of messages delivered from servers to recipients (also to prevent traffic correlation).
  • -

    You can read more technical details in our recent v1 announcement.

    +

    You can read more technical details in our recent v1 announcement.

    A big thank you to @angerman for making it possible to compile our Haskell code to mobile platforms and getting it approved on app stores - it has been a non-trivial project, and it is still ongoing.

    Install the apps and make a private connection!

    Once you install the app, you can connect to anybody:

    diff --git a/blog/20220404-simplex-chat-instant-notifications.html b/blog/20220404-simplex-chat-instant-notifications.html index 389928d219..5383f3ed19 100644 --- a/blog/20220404-simplex-chat-instant-notifications.html +++ b/blog/20220404-simplex-chat-instant-notifications.html @@ -381,7 +381,7 @@ window.addEventListener('scroll',changeHeaderBg);

    Instant notifications for SimpleX Chat mobile apps

    Published: April 04, 2022

    SimpleX Chat is the first chat platform that is 100% private by design - it has no access to your connections

    -

    Since we released SimpleX Chat mobile apps couple of weeks ago we've had a lot of excitement from our users - nearly 2000 people downloaded the app after the announcement!

    +

    Since we released SimpleX Chat mobile apps couple of weeks ago we've had a lot of excitement from our users - nearly 2000 people downloaded the app after the announcement!

    Huge thanks to everybody who downloaded and connected to us via the chat - there were many great questions and suggestions, and on some days I spent most of the time chatting to our users :)

    Since we released the app, we've added and released:

    diff --git a/blog/20220604-simplex-chat-new-privacy-security-settings.html b/blog/20220604-simplex-chat-new-privacy-security-settings.html index d662afa322..60c7239d8b 100644 --- a/blog/20220604-simplex-chat-new-privacy-security-settings.html +++ b/blog/20220604-simplex-chat-new-privacy-security-settings.html @@ -380,7 +380,7 @@ window.addEventListener('scroll',changeHeaderBg);

    SimpleX Chat v2.2 - the new privacy and security features

    Published: June 4, 2022

    -

    See v2 announcement for more information about SimpleX platform and how it protects your privacy by avoiding user identities of any kind in its design - SimpleX, unlike any other messaging platform, has no identity keys or any numbers that identify its users.

    +

    See v2 announcement for more information about SimpleX platform and how it protects your privacy by avoiding user identities of any kind in its design - SimpleX, unlike any other messaging platform, has no identity keys or any numbers that identify its users.

    New Privacy and Security settings in version 2.2

    Protect your chats

    @@ -403,7 +403,7 @@ window.addEventListener('scroll',changeHeaderBg);

    There is more

    You can discover additional features we are currently testing in Experimental Features - they will be announced later!

    More information

    -

    See v1 announcement for information on how SimpleX protects the security of the messages.

    +

    See v1 announcement for information on how SimpleX protects the security of the messages.

    Read about SimpleX design in whitepaper.

    diff --git a/blog/20220711-simplex-chat-v3-released-ios-notifications-audio-video-calls-database-export-import-protocol-improvements.html b/blog/20220711-simplex-chat-v3-released-ios-notifications-audio-video-calls-database-export-import-protocol-improvements.html index c4084c0a43..fde12c96dd 100644 --- a/blog/20220711-simplex-chat-v3-released-ios-notifications-audio-video-calls-database-export-import-protocol-improvements.html +++ b/blog/20220711-simplex-chat-v3-released-ios-notifications-audio-video-calls-database-export-import-protocol-improvements.html @@ -388,7 +388,7 @@ window.addEventListener('scroll',changeHeaderBg);
  • protocol privacy and performance improvements
  • Instant notifications for iOS

    -

    I wrote previously about our design for iOS notifications - this is now released. The app will offer to migrate the database when updated, and then you need to choose notifications mode – instant or periodic push notifications, or previously available periodic background refresh that does not use push notifications.

    +

    I wrote previously about our design for iOS notifications - this is now released. The app will offer to migrate the database when updated, and then you need to choose notifications mode – instant or periodic push notifications, or previously available periodic background refresh that does not use push notifications.

    To deliver the notifications to iOS devices we use our notification server, as there is a single private key that Apple issues for the app. This server has minimal amount of information about your chat activity:

    Database passphrase & export

    This page allows to change the database passphrase, export and import the database and configure the message retention period.

    -

    Read more in Managing Your Data page.

    +

    Read more in Managing Your Data page.

    Help & feedback

    This section has information on how to use the app and the links to connect to the team. Please use Send questions and ideas to connect to us via the chat to ask any questions, make any suggestions and report any issues.

    Support SimpleX Chat

    diff --git a/docs/guide/chat-profiles.html b/docs/guide/chat-profiles.html index d4c3a0cef3..01437f4d86 100644 --- a/docs/guide/chat-profiles.html +++ b/docs/guide/chat-profiles.html @@ -741,7 +741,7 @@ window.addEventListener('scroll',changeHeaderBg);

    To create an additional SimpleX Chat profile:

      -
    • Open the app settings.
    • +
    • Open the app settings.
    • Select "Your chat profiles".
    • Unlock option via fingerprint or PIN.
    • Tap on "+ Add profile”.
    • @@ -766,14 +766,14 @@ window.addEventListener('scroll',changeHeaderBg);

      When "Incognito Mode” is turned on, your currently chosen profile name and image are hidden from your new contacts. It allows anonymous connections with other people without any shared data – when you make new connections or join groups via a link a new random profile name will be generated for each connection.

      To toggle the incognito mode on/off:

      Please read more in this post.

      Edit your profile

      To edit your profile:

        -
      • Open the app settings.
      • +
      • Open the app settings.
      • Select your profile.
      • Tap on "Edit".
      • Input your desired profile name and/or update your full name.
      • @@ -784,11 +784,11 @@ window.addEventListener('scroll',changeHeaderBg);

        SimpleX Chat stores all user data only on client devices using a portable encrypted database format that can be exported and transferred to any supported device.

        To export your SimpleX Chat data:

          -
        • Open the app settings.
        • +
        • Open the app settings.
        • Select "Database passphrase & export".
        • Stop chat by toggling "Chat is running" (tap "Stop” in the confirmation dialog).
        • -
        • Confirm it with fingerprint or PIN, in case you have SimpleX Lock enabled.
        • -
        • If you didn't set it before, set a passphrase in "Database passphrase". Initially, the database is encrypted with a random passphrase that is stored in KeyChain (iOS) or with KeyStore (Android).
        • +
        • Confirm it with fingerprint or PIN, in case you have SimpleX Lock enabled.
        • +
        • If you didn't set it before, set a passphrase in "Database passphrase". Initially, the database is encrypted with a random passphrase that is stored in KeyChain (iOS) or with KeyStore (Android).
        • Tap on "Export database" - it won't allow exporting unless you have set a passphrase.
        • Save the file on your device or share it via any available option.
        diff --git a/docs/guide/making-connections.html b/docs/guide/making-connections.html index 16b8f5ee53..961680064a 100644 --- a/docs/guide/making-connections.html +++ b/docs/guide/making-connections.html @@ -742,7 +742,7 @@ window.addEventListener('scroll',changeHeaderBg);

        Private Connection — connect using an invitation link or QR code via video or in-person.

        Group Chat — Users have the option to create a secret group, share their contact link [which can be deleted later on], or generate a one-time invitation link.

        Your SimpleX contact address

        -

        You can create an optional long term address for other people to connect with you. Unlike 1-time invitation links, these addresses can be used many times, that makes them good to share online, e.g. on social media platforms, or in email signatures. That helps more people discover SimpleX Chat, so please do it!

        +

        You can create an optional long term address for other people to connect with you. Unlike 1-time invitation links, these addresses can be used many times, that makes them good to share online, e.g. on social media platforms, or in email signatures. That helps more people discover SimpleX Chat, so please do it!

        When people connect to you via this address, you will receive a connection request that you can accept or reject. You can configure an automatic acceptance of connection request and an automatic welcome message that will be sent to the new contacts. You can also share this address as part of your SimpleX profile, so group members can connect to you, and your contacts can share it with others - if this is something that you want.

        If you start receiving too many requests via this address it is always safe to remove it – all the connections you created via this address will remain active, as this address is not used to deliver the messages.

        diff --git a/docs/guide/managing-data.html b/docs/guide/managing-data.html index db8c2e6c20..b7dcf21a79 100644 --- a/docs/guide/managing-data.html +++ b/docs/guide/managing-data.html @@ -742,7 +742,7 @@ window.addEventListener('scroll',changeHeaderBg);

        Chat Database

        To open your chat database settings:

        Database passphrase

        diff --git a/docs/guide/privacy-security.html b/docs/guide/privacy-security.html index 6dcd0d6a7d..df3969d26f 100644 --- a/docs/guide/privacy-security.html +++ b/docs/guide/privacy-security.html @@ -739,7 +739,7 @@ window.addEventListener('scroll',changeHeaderBg);

        SimpleX Chat default configuration aims to balance privacy, security and convenience. You may want to change the default options.

        This page lists all the features and options that affect privacy and security.

        Privacy and Security settings

        -

        These settings are available in the Privacy & Security settings.

        +

        These settings are available in the Privacy & Security settings.

        Security code verification

        While SimpleX Chat always establishes connection via link passed via an independent channel, so it is already more protected than other apps, there are scenarios when the invitation links can be substituted in transit (MITM attack). To protect against such attacks, you should verify the security code with your contacts:

        @@ -758,19 +758,19 @@ window.addEventListener('scroll',changeHeaderBg);

      Read more in this post

      Database passphrase

      -

      When installed, the app generates a random passphrase for the chat database and stores it securely in KeyChain (iOS) or using KeyStore (Android, TPM module is used when available). You can set your own passphrase and also remove it from the device, in which case you will need to enter it every time you start the app, and notifications may be limited, in the Database passphrase & export settings.

      +

      When installed, the app generates a random passphrase for the chat database and stores it securely in KeyChain (iOS) or using KeyStore (Android, TPM module is used when available). You can set your own passphrase and also remove it from the device, in which case you will need to enter it every time you start the app, and notifications may be limited, in the Database passphrase & export settings.

      Incognito mode

      -

      This feature generates a random profile name for each new contact. Read more in Incognito mode.

      +

      This feature generates a random profile name for each new contact. Read more in Incognito mode.

      Hidden profiles

      -

      This feature allows to hide some of your chat profiles with the password. Read more in Hiding and muting chat profiles.

      +

      This feature allows to hide some of your chat profiles with the password. Read more in Hiding and muting chat profiles.

      Network settings

      -

      Transport isolation (BETA) allows to isolate you traffic with each contact in a different TCP connection (and Tor circuit).

      +

      Transport isolation (BETA) allows to isolate you traffic with each contact in a different TCP connection (and Tor circuit).

      Using Tor

       

      To connect to SMP relays (messaging servers) via Tor you need to install Orbot app.

      -

      Android: use Orbot app as SOCKS proxy on port 9050 (default) and enable Use SOCKS proxy.

      +

      Android: use Orbot app as SOCKS proxy on port 9050 (default) and enable Use SOCKS proxy.

      iOS: use Orbot app as VPN provider and enable VPN.

      -

      You can also change which server addresses are used with Use .onion hosts option.

      +

      You can also change which server addresses are used with Use .onion hosts option.

      diff --git a/docs/guide/readme.html b/docs/guide/readme.html index 7745934e9f..e12118dece 100644 --- a/docs/guide/readme.html +++ b/docs/guide/readme.html @@ -740,13 +740,13 @@ window.addEventListener('scroll',changeHeaderBg);

      Contents

      Quick start

      Create your first chat profile

      @@ -766,11 +766,11 @@ window.addEventListener('scroll',changeHeaderBg);

      When you just start using the app, you can tap "chat with the developers" to ask any questions or just to test the app - feel free to send any test messages.

      This button will disappear once you make the first connection. To connect to the developers later:

      Join some user groups

      -

      There are links to join several user groups on our GitHub page - join them to ask any questions and discuss ideas.

      +

      There are links to join several user groups on our GitHub page - join them to ask any questions and discuss ideas.

      You can also find some other user-managed groups via online search.

      To join a group via a link:

        @@ -789,10 +789,10 @@ window.addEventListener('scroll',changeHeaderBg);
      • They can either scan QR code or paste the link. If they opened the link in the browser, they need to tap "Open in mobile app" button on the page.

      Watch the video on the website that shows how it works.

      -

      You can also create a long-term contact address.

      +

      You can also create a long-term contact address.

      Explore the app

      Most app settings are shared for all profiles, but some settings are specific to chat profile.

      -

      Read more in App settings page.

      +

      Read more in App settings page.

      Many conversation actions are available via long-press or swipe – try them!

      diff --git a/docs/lang/cs/cli.html b/docs/lang/cs/cli.html index 0c40a5c376..2817515fc3 100644 --- a/docs/lang/cs/cli.html +++ b/docs/lang/cs/cli.html @@ -908,7 +908,7 @@ git checkout stable DOCKER_BUILDKIT=1 docker build --output ~/.local/bin .
      -

      Upozornění: Pokud narazíte na chybu verze `GLIBC_2.28' nenalezena, obnovte jej pomocí základního obrazu haskell:8.10.7-stretch (změňte jej ve svém lokálním Dockerfile).

      +

      Upozornění: Pokud narazíte na chybu verze `GLIBC_2.28' nenalezena, obnovte jej pomocí základního obrazu haskell:8.10.7-stretch (změňte jej ve svém lokálním Dockerfile).

      V libovolném operačním systému

        diff --git a/docs/lang/cs/server.html b/docs/lang/cs/server.html index 8a3a2609d0..8cb1c11ad5 100644 --- a/docs/lang/cs/server.html +++ b/docs/lang/cs/server.html @@ -831,7 +831,7 @@ window.addEventListener('scroll',changeHeaderBg);

        Přehled

        SMP server je relay server používaný k předávání zpráv v síti SimpleX. Aplikace SimpleX Chat mají přednastavené servery (pro mobilní aplikace jsou to smp11, smp12 a smp14.simplex.im), ale konfiguraci aplikace můžete snadno změnit a používat jiné servery.

        Klienti SimpleX pouze určují, který server bude použit pro příjem zpráv, a to pro každý kontakt (nebo spojení skupiny s členem skupiny) zvlášť, přičemž tyto servery jsou pouze dočasné, protože adresa pro doručování se může změnit.

        -

        Upozornění: když změníte servery v konfiguraci aplikace, ovlivní to pouze to, který server bude použit pro nové kontakty, stávající kontakty se na nové servery automaticky nepřesunou, ale můžete je přesunout ručně pomocí tlačítka "Změnit adresu příjmu" na stránkách s informacemi o kontaktech/členech - brzy bude automatizováno.

        +

        Upozornění: když změníte servery v konfiguraci aplikace, ovlivní to pouze to, který server bude použit pro nové kontakty, stávající kontakty se na nové servery automaticky nepřesunou, ale můžete je přesunout ručně pomocí tlačítka "Změnit adresu příjmu" na stránkách s informacemi o kontaktech/členech - brzy bude automatizováno.

        Instalace

        1. diff --git a/docs/lang/fr/cli.html b/docs/lang/fr/cli.html index cbbc768d83..ba6225bfcb 100644 --- a/docs/lang/fr/cli.html +++ b/docs/lang/fr/cli.html @@ -908,7 +908,7 @@ git checkout stable DOCKER_BUILDKIT=1 docker build --output ~/.local/bin .
          -

          Veuillez noter : Si vous rencontrez l'erreur version `GLIBC_2.28' non trouvée, reconstruisez-le avec l'image de base haskell:8.10.7-stretch(changez-la dans votre Dockerfile local).

          +

          Veuillez noter : Si vous rencontrez l'erreur version `GLIBC_2.28' non trouvée, reconstruisez-le avec l'image de base haskell:8.10.7-stretch(changez-la dans votre Dockerfile local).

          Utiliser Haskell stack

          (sur n'importe quel OS)

          diff --git a/docs/lang/pl/cli.html b/docs/lang/pl/cli.html index 8c032d52fc..4b411eaa7e 100644 --- a/docs/lang/pl/cli.html +++ b/docs/lang/pl/cli.html @@ -907,7 +907,7 @@ git checkout stable DOCKER_BUILDKIT=1 docker build --output ~/.local/bin .
          -

          Uwaga: Jeśli napotkasz błąd version `GLIBC_2.28' not found, przebuduj go z obrazem bazowym haskell:8.10.7-stretch (zmień go w Twoim lokalnym pliku Dockerfile).

          +

          Uwaga: Jeśli napotkasz błąd version `GLIBC_2.28' not found, przebuduj go z obrazem bazowym haskell:8.10.7-stretch (zmień go w Twoim lokalnym pliku Dockerfile).

          Używając Haskella na dowolnym systemie operacyjnym

            @@ -972,7 +972,7 @@ brew services start tor

            Po uruchomieniu czatu zostaniesz poproszony o podanie swojej "nazwy wyświetlanej" oraz opcjonalnej "pełnej nazwy" w celu utworzenia lokalnego profilu czatu. Nazwa wyświetlana jest aliasem, za pomocą którego kontakty mogą się do ciebie odnosić - nie jest ona unikalna i nie służy jako globalna tożsamość. Jeśli kilka kontaktów wybrało tę samą nazwę wyświetlaną, klient czatu dodaje numeryczną końcówkę (sufiks) do ich lokalnej nazwy wyświetlanej.

            Poniższy schemat przedstawia sposób łączenia się z kontaktem i wysyłania do niego wiadomości:

            - +

            Gdy już skonfigurujesz swój profil lokalny, wpisz /c (oznaczające /connect), aby utworzyć nowe połączenie i wygenerować zaproszenie. Wyślij to zaproszenie do swojego kontaktu za pośrednictwem dowolnego innego kanału komunikacji.

            Możesz utworzyć wiele zaproszeń, kilkukrotnie wpisując /connect i wysłać te zaproszenia do kontaktów, z którymi chcesz się połączyć.

            @@ -982,20 +982,20 @@ brew services start tor

            Użyj /help na czacie, by uzyskać listę pozostałych dostępnych komend.

            Grupy

            Aby utworzyć grupę, użyj /g <nazwa_grupy>, a następnie dodaj do niej kontakty za pomocą /a <nazwa_grupy> <nazwa_kontaktu>. Możesz wysyłać wiadomości do grupy wpisując #<nazwa_grupy> <wiadomość>. Użyj /help groups, by uzyskać listę pozostałych dostępnych komend.

            -

            simplex-chat

            +

            simplex-chat

            Uwaga: informacje o grupach nie są przechowywane na żadnym serwerze, są one zapisywane jako lista członków w bazie danych aplikacji klientów, do których będą wysyłane wiadomości.

            Wysyłanie plików

            Możesz wysłać plik do kontaktu za pomocą /f @<nazwa_kontaktu> <ścieżka_do_pliku> - odbiorca będzie musiał go zaakceptować przed rozpoczęciem wysyłania. Użyj /help files, by uzyskać listę pozostałych dostępnych komend.

            -

            simplex-chat

            +

            simplex-chat

            Możesz wysyłać pliki do grupy za pomocą /f #<nazwa_grupy> <ścieżka_do_pliku>.

            Adresy kontaktowe użytkowników

            Alternatywą dla jednorazowych linków zapraszających są adresy długoterminowe. Możesz je utworzyć za pomocą /ad (oznaczające /address). Utworzony adres może być następnie udostępniony za pośrednictwem dowolnego innego kanału komunikacji i użyty przez innych użytkowników jako link do prośby o kontakt używając /c <adres_kontaktowy_użytkownika>.

            Prośby o kontakt możesz przyjąć za pomocą komendy /ac <nazwa> oraz odrzucić za pomocą /rc <nazwa>.

            "Długoterminowy" adres użytkownika jest długoterminowy w tym sensie, że jest to link wielokrotnego użytku - może być używany do momentu usunięcia go przez użytkownika. Po usunięciu wszystkie nawiązane połączenia pozostaną aktywne (w przeciwieństwie do tego, jak działa to w przypadku poczty e-mail, gdy zmiana adresu powoduje, że ludzie nie mogą już wysyłać do siebie wiadomości).

            Użyj /help address, by uzyskać listę pozostałych dostępnych komend.

            -

            simplex-chat

            +

            simplex-chat

            diff --git a/docs/lang/pl/server.html b/docs/lang/pl/server.html index 62a936cbf4..a66a746774 100644 --- a/docs/lang/pl/server.html +++ b/docs/lang/pl/server.html @@ -831,7 +831,7 @@ window.addEventListener('scroll',changeHeaderBg);

            Informacje ogólne

            Serwer SMP to serwer przekaźnikowy używany do przekazywania wiadomości w sieci SimpleX. Aplikacje SimpleX Chat mają wstępnie ustawione serwery (dla aplikacji mobilnych są to smp11, smp12 i smp14.simplex.im), ale można łatwo zmienić konfigurację aplikacji, aby korzystać z innych serwerów.

            Klienty SimpleX określają tylko, który serwer jest używany do odbierania wiadomości, oddzielnie dla każdego kontaktu (lub połączenia grupowego z członkiem grupy), a serwery te są tylko tymczasowe, ponieważ adres dostawy może ulec zmianie.

            -

            Uwaga: gdy zmienisz serwery w ustawieniach aplikacji, wpłynie to tylko na to, który serwer będzie używany dla nowych kontaktów, istniejące kontakty nie zostaną automatycznie przeniesione na nowe serwery, ale możesz przenieść je ręcznie za pomocą przycisku "Zmień adres odbiorczy" na stronie z informacjami kontaktu/członka - wkrótce zostanie to zautomatyzowane.

            +

            Uwaga: gdy zmienisz serwery w ustawieniach aplikacji, wpłynie to tylko na to, który serwer będzie używany dla nowych kontaktów, istniejące kontakty nie zostaną automatycznie przeniesione na nowe serwery, ale możesz przenieść je ręcznie za pomocą przycisku "Zmień adres odbiorczy" na stronie z informacjami kontaktu/członka - wkrótce zostanie to zautomatyzowane.

            Instalacja

            1. diff --git a/docs/lang/pl/simplex.html b/docs/lang/pl/simplex.html index f7fc8ab469..ba2602ebd5 100644 --- a/docs/lang/pl/simplex.html +++ b/docs/lang/pl/simplex.html @@ -832,7 +832,7 @@ window.addEventListener('scroll',changeHeaderBg);

              Istniejące komunikatory oraz protokoły borykają się ze wszystkimi lub kilkoma podanymi problemami:

              • Brak zachowania prywatności profilu i kontaktów użytkownika (zachowanie poufności metadanych).
              • -
              • Brak ochrony (lub jedynie opcjonalna ochrona) przed atakami MITM przez dostawcę usług przy użyciu szyfrowania end to end
              • +
              • Brak ochrony (lub jedynie opcjonalna ochrona) przed atakami MITM przez dostawcę usług przy użyciu szyfrowania end to end
              • Niechciane wiadomości (spam i nadużycia).
              • Brak własności danych i ich ochrony.
              • Dla nietechnicznych użytkowników używanie niescentralizowanych protokołów jest skomplikowane.
              • diff --git a/docs/protocol/simplex-chat.html b/docs/protocol/simplex-chat.html index cb641e03f9..e3b67e9900 100644 --- a/docs/protocol/simplex-chat.html +++ b/docs/protocol/simplex-chat.html @@ -790,7 +790,7 @@ window.addEventListener('scroll',changeHeaderBg);

                msgId property is a 12 bytes base64url-encoded random message ID that the clients can use to reference the message in the future, e.g. when editing, quoting or deleting it.

                event property is the type of the message that defines the semantics of the message and the allowed format of params property.

                -

                params property includes message data, depending on event, as defined below and in JTD schema.

                +

                params property includes message data, depending on event, as defined below and in JTD schema.

                Binary format for sending files

                SimpleX Chat clients use separate connections to send files using a binary format. File chunk size send in each message MUST NOT be bigger than 15,780 bytes to fit into 16kb (16384 bytes) transport block.

                The syntax of each message used to send files is defined by the following ABNF notation:

                @@ -822,7 +822,7 @@ eventWord = 1* ALPHA
              • x.call.* - messages to invite to WebRTC calls and send signalling messages.
              • x.ok - message sent during connection handshake.
              -

              JTD schema defining messages for all chat functions is available in this file – please refer to this document for all properties of the message params.

              +

              JTD schema defining messages for all chat functions is available in this file – please refer to this document for all properties of the message params.

              x.contact - sending connection request

              The message is sent as part of the connection request to the long-term user address. contactReqId property is used to identify a duplicate contact request - the receiving client MAY put repeated request on top of the list in the UI.

              Sub-protocol for contact profile

              @@ -835,7 +835,7 @@ eventWord = 1* ALPHA

              Sub-protocol for content messages

              x.msg.new - a new content message

              When chat clients receive or send this message, they MUST create a new chat item in the conversation. Top level msgId property is defined to allow referencing this chat item or message in the future, e.g. to delete, update or quote chat item, or to accept file.

              -

              This message uses params property of the message as content message container, without any top level properties for the container. Message container (params) includes message content property, an optional "invitation" to receive file or image attachment in file property (that is interpreted depending on message content type) and optional indication whether this message is forwarded ("forward": true property of container) or sent in reply to other message ("quote": {<quoted message>}). See /definition/msgContainer in JTD schema for message container format.

              +

              This message uses params property of the message as content message container, without any top level properties for the container. Message container (params) includes message content property, an optional "invitation" to receive file or image attachment in file property (that is interpreted depending on message content type) and optional indication whether this message is forwarded ("forward": true property of container) or sent in reply to other message ("quote": {<quoted message>}). See /definition/msgContainer in JTD schema for message container format.

              Message content can be one of four types:

              • text - no file attachment is expected for this format, text property MUST be non-empty.
              • @@ -843,7 +843,7 @@ eventWord = 1* ALPHA
              • image - attached file is required, text property MAY be empty.
              • link - no file attachment is expected, text property MUST be non-empty. preview property contains information about link preview.
              -

              See /definition/msgContent in JTD schema for message container format.

              +

              See /definition/msgContent in JTD schema for message container format.

              x.msg.update - update of the previously sent message

              This message is used to update previously created chat item. Its params property contains msgId of the previously sent message that this one is updating and content with the message content that the clients must use to replace the content of the original chat item.

              If the referenced message does not exist, the clients MUST create a new chat item with the ID of the referenced message. If the referenced message is not a content message, the clients MUST ignore this message.

              @@ -862,7 +862,7 @@ eventWord = 1* ALPHA

              Clients are RECOMMENDED to indicate in the UI whether the connection to a group member or contact was made directly or via annother user.

              Each member in the group is identified by a group-wide unique identifier used by all members in the group. This is to allow referencing members in the messages and to allow group message integrity validation.

              The diagram below shows the sequence of messages sent between the users' clients to add the new member to the group.

              -

              Adding member to the group

              +

              Adding member to the group

              Member roles

              Currently members can have one of three roles - owner, admin and member. The user that created the group is self-assigned owner role, the new members are assigned role by the member who adds them - only owner and admin members can add new members; only owner members can add members with owner role.

              Messages to manage groups and add members

              diff --git a/docs/server.html b/docs/server.html index e050e2433d..d9bf52bbdc 100644 --- a/docs/server.html +++ b/docs/server.html @@ -863,7 +863,7 @@ window.addEventListener('scroll',changeHeaderBg);

              Overview

              SMP server is the relay server used to pass messages in SimpleX network. SimpleX Chat apps have preset servers (for mobile apps these are smp11, smp12 and smp14.simplex.im), but you can easily change app configuration to use other servers.

              SimpleX clients only determine which server is used to receive the messages, separately for each contact (or group connection with a group member), and these servers are only temporary, as the delivery address can change.

              -

              Please note: when you change the servers in the app configuration, it only affects which server will be used for the new contacts, the existing contacts will not automatically move to the new servers, but you can move them manually using "Change receiving address" button in contact/member information pages – it will be automated soon.

              +

              Please note: when you change the servers in the app configuration, it only affects which server will be used for the new contacts, the existing contacts will not automatically move to the new servers, but you can move them manually using "Change receiving address" button in contact/member information pages – it will be automated soon.

              Installation

              1. diff --git a/docs/themes.html b/docs/themes.html index 0a1d3e1457..21e8b1ab79 100644 --- a/docs/themes.html +++ b/docs/themes.html @@ -744,7 +744,7 @@ window.addEventListener('scroll',changeHeaderBg);

                Once you have configured your theme in the app, export it to a file and give it a descriptive name – e.g., example.theme

              2. -

                Export your app database, and import a sample chat database - the passphrase is passphrase.

                +

                Export your app database, and import a sample chat database - the passphrase is passphrase.

              3. Make three screenshots - the list of conversations with opened profile picker, conversation and privacy settings.

                @@ -758,7 +758,7 @@ window.addEventListener('scroll',changeHeaderBg);

              Color themes

              SimpleX - included dark blue theme

              -

              Download SimpleX theme

              +

              Download SimpleX theme

                      

              diff --git a/docs/xftp-server.html b/docs/xftp-server.html index 56337cbfa9..156d3d8e58 100644 --- a/docs/xftp-server.html +++ b/docs/xftp-server.html @@ -1176,7 +1176,7 @@ allow_local_mode = true

    Configuring the app to use the server

    -

    Please see: SMP Server: Configuring the app to use the server.

    +

    Please see: SMP Server: Configuring the app to use the server.

    diff --git a/faq/index.html b/faq/index.html index 2b95067642..6b11de16cf 100644 --- a/faq/index.html +++ b/faq/index.html @@ -881,20 +881,20 @@ window.addEventListener('scroll',changeHeaderBg);

    How to use it

    I have nobody to chat with! Where can I find any groups?

    -

    Please check our Groups Directory in the first place. You might find some interesting groups and meet even more interesting people.

    +

    Please check our Groups Directory in the first place. You might find some interesting groups and meet even more interesting people.

    What is database? What can I do with it?

    -

    Database is essential for SimpleX Chat to function properly. In comparison to centralized messaging providers, it is the user who is responsible for taking care of their data. On the other hand, user is sure that nobody but them has access to it. Please read more about it: Database.

    +

    Database is essential for SimpleX Chat to function properly. In comparison to centralized messaging providers, it is the user who is responsible for taking care of their data. On the other hand, user is sure that nobody but them has access to it. Please read more about it: Database.

    Can I send files over SimpleX?

    -

    Of course! While doing so, you are using a state-of-the-art protocol that greatly reduces metadata leaks. Please read more about it: XFTP Protocol.

    +

    Of course! While doing so, you are using a state-of-the-art protocol that greatly reduces metadata leaks. Please read more about it: XFTP Protocol.

    What’s incognito profile?

    This feature is unique to SimpleX Chat – it is independent from chat profiles.

    When "Incognito Mode” is turned on, your currently chosen profile name and image are hidden from your new contacts. It allows anonymous connections with other people without any shared data – when you make new connections or join groups via a link a new random profile name will be generated for each connection.

    How do invitations work?

    It is quite a complex process, but fortunately all of this happens in the background, so it's simply to use.

    Whenever somebody connects to you via your address, they basically ask your client whether they want to establish connection. After that, you can either agree or disagree.
    -If interested, please read more: Addresses and invitations.

    +If interested, please read more: Addresses and invitations.

    How to configure and delete groups?

    -

    Please check: Users guide.

    +

    Please check: Users guide.

    Are there any reactions to messages? Can I answer specific messages directly?

    Yes! Currently, there are six emojis available. What's more, you can respond to specific message by holding it and selecting Reply.

    What do checkmarks mean?

    @@ -906,7 +906,7 @@ If interested, please read more: Address

    Also see

    Can I use the same profile on desktop? Do messages sync cross-platform?

    -

    You can use your profile from mobile device on desktop. However, to do so you need to be on the same network, both on your mobile and desktop. More about it: Release info.

    +

    You can use your profile from mobile device on desktop. However, to do so you need to be on the same network, both on your mobile and desktop. More about it: Release info.

    Troubleshooting

    I do not receive messages or message notifications

    There may be several reasons messages are not delivered to you from your contact:

    @@ -946,7 +946,7 @@ If interested, please read more: Address

    Please check your network settings and make sure you use the latest version of the app.

    Please report such issues if you use v5.7 or newer.

    Audio or video calls do not connect

    -

    App uses WebRTC for calls. Please check that you can connect to the servers configured in the app: stun.simplex.im and turn.simplex.im - see troubleshooting WebRTC.

    +

    App uses WebRTC for calls. Please check that you can connect to the servers configured in the app: stun.simplex.im and turn.simplex.im - see troubleshooting WebRTC.

    If you can connect to the server, please report this issue to us privately, including the following information:

    • @@ -981,22 +981,22 @@ If interested, please read more: Address

      Once the connection is established you don't need to be online at the same time to send messages.

      Privacy and security

      Does SimpleX support post quantum cryptography?

      -

      Yes! Please read more about quantum resistant encryption is added to SimpleX Chat and about various properties of end-to-end encryption in this post.

      +

      Yes! Please read more about quantum resistant encryption is added to SimpleX Chat and about various properties of end-to-end encryption in this post.

      What user data can be provided on request?

      Our objective is to consistently ensure that no user data and absolute minimum of the metadata required for the network to function is available for disclosure by any infrastructure operators, under any circumstances.

      -

      Please see our Privacy Policy and Transparency Reports.

      +

      Please see our Privacy Policy and Transparency Reports.

      Does SimpleX protect my IP address?

      Not fully yet, it is a work in progress. While your device does not connect to your contacts' devices directly, as it happens in p2p networks, your contacts can self-host their relays, and you will connect to them when sending messages. A modified relay can record IP addresses connecting devices, as is the case with any other server, including Tor entry nodes, VPN providers, etc. - IP address is fundamental to Internet functioning, and there will always be some server that can observe your IP address.

      We are currently working on the next version of message routing protocol that will protect your IP address from the relays chosen by your contacts, so it will only be visible to the relays chosen by you. Read about technical details here: RFC.

      Can I host my own relays?

      -

      Of course! Please check these tutorials: SMP server and XFTP server.

      +

      Of course! Please check these tutorials: SMP server and XFTP server.

      Funding and business model

      How are you funded?

      -

      SimpleX Chat Ltd is funded by private investors and venture capital. As an open-source project, it is also being generously supported by donations as well. Read more details.

      +

      SimpleX Chat Ltd is funded by private investors and venture capital. As an open-source project, it is also being generously supported by donations as well. Read more details.

      Why VCs?

      Here are some reflections on VC funding being a necessity for a project at this scale, as well as sustainability and profitability for longtime operations: https://www.poberezkin.com/posts/2023-10-31-why-privacy-impossible-without-venture-funding.html

      And another perspective from a team member on the delicate balance of venture-backed and nonprofit structures, and the plans for the SimpleX network protocols to evolve under the stewardship of nonprofit entities in various jurisdictions, so that its continued evolution aligns more closely with the vision of community-driven, independent and transparent governance:
      -https://simplex.chat/blog/20240404-why-i-joined-simplex-chat-esraa-al-shafei.html.

      +https://simplex.chat/blog/20240404-why-i-joined-simplex-chat-esraa-al-shafei.html.

      What will be the business model?

      We are focusing on product-market fit, and as such the business model is still a work in progress. However, the app will have a freemium model with extra features or capabilities for paid users (taking into consideration a potential formula like 5% paying $5/month is $3/user/year - ~90% gross profit margin).

      The other income stream would be via business services, for entities needing direct and customized support to integrate with the SimpleX protocol or related resources. There will also be a revenue-sharing model from customers to network operators, to provide an incentive for them to continue running nodes, which will increase decentralization and reliability of the network.

      diff --git a/feed.atom b/feed.atom index 9f6f56e8c3..6948b84393 100644 --- a/feed.atom +++ b/feed.atom @@ -4,7 +4,7 @@ It allows you to stay up to date with the latest Blogs from SimpleX Chat. - 2024-04-26T00:00:00Z + 2024-05-16T00:00:00Z https://simplex.chat/ SimpleX Chat @@ -72,10 +72,10 @@ <h3 id="chat-groups" tabindex="-1">Chat groups</h3> <p>To create a group use the <code>/g &lt;group&gt;</code> command. You can then invite contacts to the group by entering the <code>/a &lt;group&gt; &lt;name&gt;</code> command. Your contact(s) will need to use the <code>/j accept</code> command to accept the invitation to the group. To send messages to the group, simply enter <code>#&lt;group&gt; &lt;message&gt;</code>.</p> <p><strong>Please note:</strong> Groups are not stored on any server; they are maintained as a list of members in the app database. Sending a message to the group sends a message to each member of the group.</p> -<p><img src="https://simplex.chat/images/groups.gif" alt="simplex-chat" /></p> +<p><img src="https://simplex.chat/blog/images/groups.gif" alt="simplex-chat" /></p> <h3 id="file-transfer" tabindex="-1">File transfer</h3> <p>Sharing files is simple! To send a file to a contact, use the <code>/f @&lt;contact&gt; &lt;file_path&gt;</code> command. The recipient will have to accept before the file is sent.</p> -<p><img src="https://simplex.chat/images/files.gif" alt="simplex-chat" /></p> +<p><img src="https://simplex.chat/blog/images/files.gif" alt="simplex-chat" /></p> <h2 id="were-always-looking-for-help" tabindex="-1">We're always looking for help!</h2> <p>We'd really appreciate your comments, criticism and support - a star on the GitHub repo, downloading and testing the chat or any contribution to the project will help a lot – thank you for all your support!</p> <p><strong>Please note:</strong> SimpleX Chat is in early stage development: we are still iterating protocols, improving privacy and security, so if you have communication scenarios requiring high security, you should consider some other options for now.</p> @@ -1523,7 +1523,7 @@ file ---&gt; | XFTP | ------&gt; XFTP ----& <h2 id="customize-and-share-color-themes" tabindex="-1">Customize and share color themes</h2> <img src="https://simplex.chat/blog/images/20230523-theme.png" width="288" class="float-to-left" /> <p>Android app now allows choosing between three color themes - Light, Dark and SimpleX (a dark blue theme). You can customize any theme by setting 9 different colors used in the app, including titles, menus, accent colors and colors for sent and received messages.</p> -<p>You can share your theme with other users by exporting it to a file and sending to them. You can also <a href="https://simplex.chat/blog/docs/themes.html">contribute your favorite themes</a> to our GitHub repository.</p> +<p>You can share your theme with other users by exporting it to a file and sending to them. You can also <a href="https://simplex.chat/docs/themes.html">contribute your favorite themes</a> to our GitHub repository.</p> <h2 id="self-destruct-passcode" tabindex="-1">Self-destruct passcode</h2> <img src="https://simplex.chat/blog/images/20230523-self-destruct.png" width="288" class="float-to-left" /> <p>This is something many of you asked before - when asked to enter the app passcode under duress, to be able to enter a special self-destruct code that would remove the app data. This feature is offered in many security tools, and now you can configure it in SimpleX Chat as well.</p> @@ -1623,8 +1623,8 @@ file ---&gt; | XFTP | ------&gt; XFTP ----& <p>Please report the cases when messages are not delivered – delivery receipts should help with that.</p> <h4 id="messages-failed-to-decrypt-problem-solved" tabindex="-1">Messages failed to decrypt? Problem solved!</h4> <p>Previously, a growing number of users had the issue when after restoring the chat database from backup, messages from some contacts failed to decrypt and were showing an error in the app.</p> -<p>This happens due to double ratchet protocol protecting the integrity of end-to-end encryption after the compromise - <a href="https://simplex.chat/blog/docs/glossary.html#post-compromise-security">post-compromise security</a>. The protocol logic does not allow to use the old version of the database to decrypt the message.</p> -<p>v5.2 added the extension to the messaging protocol allowing to negotiate the new ratchet keys in such cases - both with the contacts and the group members. This requires a user action, and it resets the security code verification status for this contact or member – you need to verify it again to have the additional protection from <a href="https://simplex.chat/blog/docs/glossary.html#man-in-the-middle-attack">man-in-the-middle attacks</a>.</p> +<p>This happens due to double ratchet protocol protecting the integrity of end-to-end encryption after the compromise - <a href="https://simplex.chat/docs/glossary.html#post-compromise-security">post-compromise security</a>. The protocol logic does not allow to use the old version of the database to decrypt the message.</p> +<p>v5.2 added the extension to the messaging protocol allowing to negotiate the new ratchet keys in such cases - both with the contacts and the group members. This requires a user action, and it resets the security code verification status for this contact or member – you need to verify it again to have the additional protection from <a href="https://simplex.chat/docs/glossary.html#man-in-the-middle-attack">man-in-the-middle attacks</a>.</p> <p>The negotiation of the new ratchet keys still happens via the end-to-end encrypted messages, as the protocol has two layers of end-to-end encryption, so it cannot be compromised by the messaging relays.</p> <p>You may still lose connection if you or your contact changed the receiving address after you made the backup, so make sure to make a new backup after any receiving address changes.</p> <h4 id="reconnect-the-servers" tabindex="-1">Reconnect the servers</h4> @@ -1644,12 +1644,12 @@ file ---&gt; | XFTP | ------&gt; XFTP ----& <h4 id="why-not-hosted-groups-with-mls" tabindex="-1">Why not hosted groups with MLS?</h4> <p>Initially, we considered the design with the dedicated servers, potentially self-hosted, that host groups. This design would require adopting MLS (or similar) protocol for group-wide key agreement. Unfortunately, this design is not sufficiently resilient and easier to censor than decentralized design. Also, MLS protocol is very complex to implement, requires a centralized component, and reduces forward secrecy. So we decided against this approach.</p> <h4 id="why-not-fully-decentralized-groups" tabindex="-1">Why not fully decentralized groups?</h4> -<p>We also <a href="https://simplex.chat/blog/docs/rfcs/2023-05-02-groups.html">considered</a> rumour-mongering protocol, where all members are equal and participate in message dissemination. The problem with this approach is that it adds a lot of traffic for all members, even those who mostly read messages. Also, it still requires establishing a fully connected graph, and with large groups it becomes prohibitively expensive and unreliable, given that many members join public groups for a limited time.</p> +<p>We also <a href="https://simplex.chat/blog/https%3A//github.com/simplex-chat/simplex-chat/blob/stable/simplex-chat/docs/rfcs/2023-05-02-groups.md">considered</a> rumour-mongering protocol, where all members are equal and participate in message dissemination. The problem with this approach is that it adds a lot of traffic for all members, even those who mostly read messages. Also, it still requires establishing a fully connected graph, and with large groups it becomes prohibitively expensive and unreliable, given that many members join public groups for a limited time.</p> <h4 id="members-host-the-groups" tabindex="-1">Members host the groups</h4> <p>We are now considering a middle-ground - the design where the owners and admins host the group, synchronising the state between them, receiving and re-broadcasting the messages between all members. This puts a higher burden on these members, but these clients can be hosted in the cloud, and also group owners have a larger incentive to maintain group integrity. At the same time, this design is better for the rest of the group members, as they don't need to establish connections with all other members, only with a limited number of &quot;hosting&quot; members, and it also better protects their privacy, due to the lack of direct connections between most members.</p> <p>This approach avoids the need for a group-wide key agreement protocol, as hosting members are expected to have access to all content anyway, so pair-wise ratchets are sufficient. At the same time the content remains end-to-end encrypted, and protected from the outsiders.</p> <p>This approach also simplifies moderation - the message that needs to be removed simply won't reach the members before it is moderated (in case of automatic or policy-based moderation).</p> -<p>Discovery and content search in such groups will be provided via a dedicated discovery server that will participate in the group, provide an always-online client, and also automatic content moderation functionality - a possible approach to moderation is <a href="https://simplex.chat/blog/docs/rfcs/2023-05-22-groups-moderation.html">described here</a>.</p> +<p>Discovery and content search in such groups will be provided via a dedicated discovery server that will participate in the group, provide an always-online client, and also automatic content moderation functionality - a possible approach to moderation is <a href="https://simplex.chat/blog/https%3A//github.com/simplex-chat/simplex-chat/blob/stable/simplex-chat/docs/rfcs/2023-05-22-groups-moderation.md">described here</a>.</p> <p>We really look forward to your feedback on this design.</p> <h3 id="what-about-read-receipts" tabindex="-1">What about read receipts?</h3> <p>We have an approximately equal number of users who ask us to add receipts, and those who ask not to add them, even as optional.</p> @@ -1720,11 +1720,11 @@ file ---&gt; | XFTP | ------&gt; XFTP ----& <li>you cannot send voice messages.</li> <li>there is no support for calls yet.</li> </ul> -<p>You can download the desktop app for Linux and Mac via <a href="https://simplex.chat/downloads">downloads page</a>. Windows version will be available soon.</p> +<p>You can download the desktop app for Linux and Mac via <a href="https://simplex.chat/downloads/index.html">downloads page</a>. Windows version will be available soon.</p> <h2 id="group-directory-service-and-other-group-improvements" tabindex="-1">Group directory service and other group improvements</h2> <img src="https://simplex.chat/blog/images/20230925-directory.png" width="330" class="float-to-left" /> <p>Directory service provides a way to search for public groups submitted by the users. To use it, you need to connect to it via SimpleX Chat, as you would connect to any other contact, and type some words to search.</p> -<p>You can also create and register your group, with some limitations explained <a href="https://simplex.chat/blog/docs/directory.html">here</a>.</p> +<p>You can also create and register your group, with some limitations explained <a href="https://simplex.chat/docs/directory.html">here</a>.</p> <p>Other group improvements in this release:</p> <ul> <li> @@ -1815,7 +1815,7 @@ file ---&gt; | XFTP | ------&gt; XFTP ----& <p>This is only possible when both devices are connected to the same local network. To send and receive messages mobile app has to be connected to the Internet.</p> <h3 id="quick-start-how-to-use-it" tabindex="-1">⚡️ Quick start - how to use it</h3> <p><strong>On desktop</strong></p> -<p>If you don't have desktop app installed yet, <a href="https://simplex.chat/downloads/">download it</a> and create any chat profile - you don't need to use it, and when you create it there are no server requests sent and no accounts are created. Think about it as about user profile on your computer.</p> +<p>If you don't have desktop app installed yet, <a href="https://simplex.chat/downloads/index.html">download it</a> and create any chat profile - you don't need to use it, and when you create it there are no server requests sent and no accounts are created. Think about it as about user profile on your computer.</p> <p>Then in desktop app settings choose <em>Link a mobile</em> - it will show a QR code.</p> <p><img src="https://simplex.chat/blog/images/20231125-desktop1.png" width="170" /> <img src="https://simplex.chat/blog/images/arrow.png" width="24" /> <img src="https://simplex.chat/blog/images/20231125-desktop2.png" width="170" /> <img src="https://simplex.chat/blog/images/arrow.png" width="24" /> <img src="https://simplex.chat/blog/images/20231125-desktop3.png" width="170" /> <img src="https://simplex.chat/blog/images/arrow.png" width="24" /> <img src="https://simplex.chat/blog/images/20231125-desktop4.png" width="510" /></p> <p><strong>On mobile</strong></p> @@ -1825,7 +1825,7 @@ file ---&gt; | XFTP | ------&gt; XFTP ----& <p>If it is an Android app, you can move the app to background, but iOS app has to remain open. In both cases, while you are using mobile profiles from desktop, you won't be able to use mobile app.</p> <p>The subsequent connections happen much faster - by default, the desktop app broadcasts its session address to the network, in encrypted form, and mobile app connects to it once you choose <em>Use from desktop</em> in mobile app settings.</p> <h3 id="how-does-it-work" tabindex="-1">How does it work?</h3> -<p>The way we designed this solution avoided any security compromises, and the end-to-end encryption remained as secure as it was - it uses <a href="https://simplex.chat/blog/docs/glossary.html#double-ratchet-algorithm">double-ratchet algorithm</a>, with <a href="https://simplex.chat/blog/docs/glossary.html#forward-secrecy">perfect forward secrecy</a>, <a href="https://simplex.chat/blog/docs/glossary.html#post-compromise-security">post-compromise security</a> and deniability.</p> +<p>The way we designed this solution avoided any security compromises, and the end-to-end encryption remained as secure as it was - it uses <a href="https://simplex.chat/docs/glossary.html#double-ratchet-algorithm">double-ratchet algorithm</a>, with <a href="https://simplex.chat/docs/glossary.html#forward-secrecy">perfect forward secrecy</a>, <a href="https://simplex.chat/docs/glossary.html#post-compromise-security">post-compromise security</a> and deniability.</p> <p>This solution is similar to WhatsApp and WeChat. But unlike these apps, no server is involved in the connection between mobile and desktop. The connection itself uses a new SimpleX Remote Control Protocol (XRCP) based on secure TLS 1.3 and additional quantum-resistant encryption inside TLS. You can read XRCP protocol specification and threat model in <a href="https://github.com/simplex-chat/simplexmq/blob/master/rfcs/2023-10-25-remote-control.md">this document</a>. We will soon be <a href="https://github.com/simplex-chat/simplex-chat/blob/master/docs/rfcs/2023-09-30-pq-double-ratchet.md">augmenting double ratchet</a> to be resistant to quantum computers as well.</p> <p>The downside of this approach is that mobile device has to be connected to the same local network as desktop. But the upside is that the connection is secure, and you do not need to have a copy of all your data on desktop, which usually has lower security than mobile.</p> <p>Please note, that the files you send, save or play from desktop app, and also images you view are automatically saved on your desktop device (encrypted by default except videos). To remove all these files you can unlink the paired mobile device from the desktop app settings – there will be an option soon allowing to remove the files without unlinking the mobile.</p> @@ -1972,6 +1972,7 @@ file ---&gt; | XFTP | ------&gt; XFTP ----& 14 Mar 2024 https://simplex.chat/blog/20240314-simplex-chat-v5-6-quantum-resistance-signal-double-ratchet-algorithm.html <h1 id="simplex-chat-v56-beta-adding-quantum-resistance-to-signal-double-ratchet-algorithm" tabindex="-1">SimpleX Chat v5.6 beta: adding quantum resistance to Signal double ratchet algorithm</h1> +<p><strong>Published:</strong> Mar 14, 2024</p> <p>This is a major upgrade for SimpleX messaging protocols, we are really proud to present the results of the hard work of our whole team on the <a href="https://en.wikipedia.org/wiki/Pi_Day">Pi day</a>.</p> <p>This post also covers various aspects of end-to-end encryption, compares different messengers, and explains why and how quantum-resistant encryption is added to SimpleX Chat:</p> <ul> @@ -2034,7 +2035,7 @@ file ---&gt; | XFTP | ------&gt; XFTP ----& <h3 id="4-compromised-long-term-or-session-mitigated-by-break-in-recovery" tabindex="-1">4. Compromised long-term or session - mitigated by break-in recovery</h3> <p>This attack is much less understood by the users, and forward secrecy does not protect from it. Arguably, it's almost impossible to compromise individual message keys without compromising long-term or session keys. So the ability of the encryption to recover from break-in (attacker making a copy of the device data without retaining the ongoing access) is both very important and pragmatic - break-in attacks are simpler to execute on mobile devices during short-term device access than long-term ongoing compromise.</p> <p>Out of all encryption algorithms known to us only <em>Signal double ratchet algorithm</em> (also referred to as <em>Signal algorithm</em> or <em>double ratchet algorithm</em>, which is not the same as Signal messaging platform and protocols) provides the ability for the encryption security to recover after break-ins attacks. This recovery happens automatically and transparently to the users, without them doing anything special or even knowing about break-in, by simply sending messages. Every time one of the communication parties replies to another party message, new random keys are generated and previously stolen keys become useless.</p> -<p>Double ratchet algorithm is used in Signal, Cwtch and SimpleX Chat. This is why you cannot use SimpleX Chat profile on more than one device at the same time - the encryption scheme rotates the long term keys, randomly, and keys on another device become useless, as they would become useless for the attacker who stole them. Security always has some costs to the convenience.</p> +<p>Double ratchet algorithm is used in Signal, Cwtch and SimpleX Chat. But Signal app by allowing to use the same profile on multiple devices compromises the break-in recovery function of Signal algorithm, as explained in <a href="https://eprint.iacr.org/2021/626.pdf">this paper</a>. Because of break-in recovery you cannot use SimpleX Chat profile on more than one device at the same time - the encryption scheme rotates the long term keys, randomly, and keys on another device become useless, as they would become useless for the attacker who stole them. Security always has some costs to the convenience.</p> <h3 id="5-man-in-the-middle-attack-mitigated-by-two-factor-key-exchange" tabindex="-1">5. Man-in-the-middle attack - mitigated by two-factor key exchange</h3> <p>Many people incorrectly believe that security of end-to-end encryption cannot be broken by communication provider. But end-to-end encryption is only as secure as key exchange. While any intermediary passing the keys between senders and recipients cannot recover the private keys from the public keys, they can simply replace the passed public keys with their own and then proxy all communication between the users having full access to the original messages. So instead of having an end-to-end encrypted channel, users would have two half-way encrypted channels - between users and their communication intermediary.</p> <p>Pictures below illustrate how this attack works for RSA encryption.</p> @@ -2312,6 +2313,7 @@ file ---&gt; | XFTP | ------&gt; XFTP ----& 26 Apr 2024 https://simplex.chat/blog/20240426-simplex-legally-binding-transparency-v5-7-better-user-experience.html <h1 id="simplex-network-legally-binding-transparency-v57-released-with-better-calls-and-messages" tabindex="-1">SimpleX network: legally binding transparency, v5.7 released with better calls and messages</h1> +<p><strong>Published:</strong> Apr 26, 2024</p> <p>What's new in v5.7:</p> <ul> <li><a href="https://simplex.chat/blog/20240426-simplex-legally-binding-transparency-v5-7-better-user-experience.html#quantum-resistant-end-to-end-encryption">quantum resistant end-to-end encryption</a> with all contacts.</li> @@ -2324,10 +2326,10 @@ file ---&gt; | XFTP | ------&gt; XFTP ----& <h2 id="legally-binding-transparency" tabindex="-1">Legally binding transparency</h2> <p>We are committed to open-source, privacy and security. Here are the recent changes we made:</p> <ul> -<li>We now have a <a href="https://simplex.chat/transparency/">Transparency Reports</a> page.</li> -<li>We updated our <a href="https://github.com/simplex-chat/simplex-chat/blob/stable/PRIVACY.md">Privacy Policy</a> to remove undefined terms &quot;impermissible&quot; and &quot;acceptable&quot;, which would allow us to remove anything we don't like, without any clarity on what that is. You can see the edits <a href="https://github.com/simplex-chat/simplex-chat/pull/4076/files">here</a>.</li> -<li>We published a new page with <a href="https://simplex.chat/faq/">Frequently Asked Questions</a>, thanks to the guidance from users.</li> -<li>We also have a new <a href="https://simplex.chat/security/">Security Policy</a> – we welcome your feedback on it.</li> +<li>We now have a <a href="https://simplex.chat/transparency/index.html">Transparency Reports</a> page.</li> +<li>We updated our <a href="https://simplex.chat/blog/https%3A//github.com/simplex-chat/simplex-chat/blob/stable/simplex-chat/PRIVACY.md">Privacy Policy</a> to remove undefined terms &quot;impermissible&quot; and &quot;acceptable&quot;, which would allow us to remove anything we don't like, without any clarity on what that is. You can see the edits <a href="https://github.com/simplex-chat/simplex-chat/pull/4076/files">here</a>.</li> +<li>We published a new page with <a href="https://simplex.chat/faq/index.html">Frequently Asked Questions</a>, thanks to the guidance from users.</li> +<li>We also have a new <a href="https://simplex.chat/security/index.html">Security Policy</a> – we welcome your feedback on it.</li> </ul> <p>What do we mean by “legally binding transparency?”. It includes these principles:</p> <ul> @@ -2366,7 +2368,7 @@ file ---&gt; | XFTP | ------&gt; XFTP ----& <p><a href="https://simplex.chat/blog/20220511-simplex-chat-v2-images-files.html#the-first-messaging-platform-without-user-identifiers">How can SimpleX deliver messages without user identifiers</a>.</p> <p><a href="https://simplex.chat/blog/20220711-simplex-chat-v3-released-ios-notifications-audio-video-calls-database-export-import-protocol-improvements.html#why-having-users-identifiers-is-bad-for-the-users">What are the risks to have identifiers assigned to the users</a>.</p> <p><a href="https://github.com/simplex-chat/simplex-chat#privacy-technical-details-and-limitations">Technical details and limitations</a>.</p> -<p><a href="https://simplex.chat/blog/docs/faq.html">Frequently asked questions</a>.</p> +<p><a href="https://simplex.chat/faq/index.html">Frequently asked questions</a>.</p> <p>Please also see our <a href="https://simplex.chat/">website</a>.</p> <h2 id="help-us-with-donations" tabindex="-1">Help us with donations</h2> <p>Huge thank you to everybody who donates to SimpleX Chat!</p> @@ -2378,6 +2380,50 @@ file ---&gt; | XFTP | ------&gt; XFTP ----& <p>Thank you,</p> <p>Evgeny</p> <p>SimpleX Chat founder</p> + + + + + SimpleX: Redefining Privacy by Making Hard Choices + + + 16 May 2024 + https://simplex.chat/blog/20240516-simplex-redefining-privacy-hard-choices.html + <h1 id="simplex-redefining-privacy-by-making-hard-choices" tabindex="-1">SimpleX: Redefining Privacy by Making Hard Choices</h1> +<p><strong>Published:</strong> May 16, 2024</p> +<p>When it comes to open source privacy tools, the status quo often dictates the limitations of existing protocols and structures. However, these norms need to be challenged to radically shift how we approach genuinely private communication. This requires doing some uncomfortable things, like making hard choices as it relates to funding, alternative decentralization models, doubling down on privacy over convenience, and more.</p> +<p>There will always be questions on why the SimpleX Chat and network makes the choices it makes, and that’s good! It’s important to question us and to understand the reasoning behind each decision, whether it’s technical, structural, financial or any other.</p> +<p>In this post we explain a bit more about why SimpleX operates and makes decisions the way it does.</p> +<h2 id="no-user-accounts" tabindex="-1">No user accounts</h2> +<p>Within SimpleX network there are no user accounts, and more importantly, no user profile identifiers whatsoever at the protocol level, not even random numbers or cryptographic keys used to identify the users. This means there is absolutely nothing that uniquely links users to their contacts or to the network relays. While it's accurate to say, &quot;You need an address to send something,&quot; it's crucial to understand that this &quot;address&quot; serves merely as a transient delivery destination, and not as a user profile identifier in any sense.</p> +<p>You can read more about how SimpleX works <a href="https://simplex.chat/#how-simplex-works">here</a>.</p> +<h2 id="privacy-over-convenience" tabindex="-1">Privacy over convenience</h2> +<p>One of the main considerations often ignored in security and privacy comparisons between messaging applications is multi-device access. For example, in Signal’s case, the Sesame protocol used to support multi-device access has the vulnerability that is <a href="https://eprint.iacr.org/2021/626.pdf">explained in detail here</a>:</p> +<p><em>&quot;We present an attack on the post-compromise security of the Signal messenger that allows to stealthily register a new device via the Sesame protocol. [...] This new device can send and receive messages without raising any ‘Bad encrypted message’ errors. Our attack thus shows that the Signal messenger does not guarantee post-compromise security at all in the multi-device setting&quot;</em>.</p> +<img src="https://simplex.chat/blog/images/20231125-mobile2.png" width="170" class="float-right" /> +<p>Solutions are possible, and even the quoted paper proposes improvements, but they are not implemented in any existing communication solutions. Unfortunately this results in most communication systems, even those in the privacy space, having compromised security in multi-device settings due to these limitations. That's the reason we are not rushing a full multi-device support, and currently only provide <a href="https://simplex.chat/blog/20231125-simplex-chat-v5-4-link-mobile-desktop-quantum-resistant-better-groups.html#link-mobile-and-desktop-apps-via-secure-quantum-resistant-protocol">the ability to use mobile app profiles via the desktop app</a>, while they are on the same network.</p> +<p>Another choice that compromises privacy for convenience and usability is 3rd party push notifications. At SimpleX, we take a slow path of optimizing the network and battery consumption in the app, rather than simply hiding inefficiencies behind the quick fix solution of 3rd party push notifications that <a href="https://www.wired.com/story/apple-google-push-notification-surveillance/">increases vulnerability</a>, a path Signal and others chose. Like other choices, it has usability and optimization trade offs, but ultimately it’s the right thing to continue progressing towards a better solution as we explain <a href="https://simplex.chat/blog/20220404-simplex-chat-instant-notifications.html">here</a>.</p> +<p>Whenever possible, we strive to achieve significantly higher levels of privacy and security. For example, unlike most, if not all, applications (including Signal), <a href="https://simplex.chat/blog/20230925-simplex-chat-v5-3-desktop-app-local-file-encryption-directory-service.html#encrypted-local-files-and-media-with-forward-secrecy">we encrypt application files with per-file unique key</a>. Consequently, once a message is deleted, there's no means to open a file that someone may have stolen in hopes of acquiring the key later. Similarly, apps like Session have done away with forward secrecy, a decision which caused them <a href="https://www.privacyguides.org/en/real-time-communication/#additional-options">not to be recommended</a> for &quot;long-term or sensitive communications&quot;. And <a href="https://simplifiedprivacy.com/spain-has-banned-telegram-defending-session/">misinformation</a> around this makes it dangerous and irresponsible to recommend without such necessary disclosures for people’s awareness.</p> +<p>Session’s decision was based on <a href="https://getsession.org/blog/session-protocol-explained">the incorrect statements</a> about double ratchet being impossible in decentralized networks, and underplayed importance of forward secrecy, break-in recovery and deniability - the absence of these crucial qualities makes Session a much weaker choice for private messaging. For transparency, this was something that was debated with their team <a href="https://twitter.com/SimpleXChat/status/1755216356159414602">here</a>. We also made <a href="https://simplex.chat/blog/20240314-simplex-chat-v5-6-quantum-resistance-signal-double-ratchet-algorithm.html#end-to-end-encryption-security-attacks-and-defense">a separate post</a> about these qualities of end-to-end encryption and their presence in different messengers, to show that not all end-to-end encrypted apps offer the same level of protections.</p> +<h2 id="network-decentralization" tabindex="-1">Network decentralization</h2> +<img src="https://simplex.chat/blog/images/simplex-explained.svg" width="40%" class="float-right" /> +<p>It's important to recognize that a model of decentralization where all servers are openly known and accessible to all clients, that some users ask for, actually results in a less decentralized network, and as the network grows it often requires an introduction of a central authority to protect from bad actors with malicious intent. Therefore, we've deliberately opted for a slower path towards achieving a higher degree of decentralization where there is no central server registry or network authority. For example, p2p designs may offer higher initial decentralization but often compromise on privacy and eventual decentralization. In essence, our approach prioritizes a balance between initial decentralization, privacy, and higher degree of decentralization down the line.</p> +<p>Additionally, while it's true that we haven't yet established a model to incentivize other network operators, it's certainly on the roadmap. We see the decentralization of network operators offered within the app as a top priority.</p> +<p>Where it stands today, users have the freedom to select their preferred servers within the SimpleX network by configuring the app, with thousands of self-hosted servers in operation. Moreover, numerous third-party applications rely on our code for their in-app communications, operating independently of our servers, many of which we may not even be aware of.</p> +<p>Decentralization is an ongoing journey, and we strive to proceed at a measured pace to ensure its proper implementation. While the immediate results may not always appear ideal, prioritizing a careful approach ensures that in the long run, the decisions made in this area align with our ultimate objectives of a private, efficient, reliable and fully decentralized network.</p> +<h2 id="funding-and-profitability" tabindex="-1">Funding and profitability</h2> +<p>We explain our rationale for funding <a href="https://simplex.chat/faq/index.html#funding-and-business-model">here</a>. Funding sources is always one of the most difficult choices to make, and it’s important to underline that VC models don’t necessarily translate to a quest for control, interference of any kind, or overall influence on product roadmap and strategy. The vast majority of investors seek profitability. Irrespective of the organization type profitability is essential for a sustainable operation, and it can and should be done while adhering to the highest possible standards for privacy. For-profit vs. nonprofit is also not an accurate metric to measure a commitment towards privacy and open standards, which is further explained <a href="https://simplex.chat/blog/20240404-why-i-joined-simplex-chat-esraa-al-shafei.html">here</a>.</p> +<p>To make a profit, satisfying customers is the key. Unlike the many companies that profit from selling customer data, we put user privacy first. Doing this at scale requires investments. If the investors don’t own or control a company, their participation becomes merely about profit for them, and not about how this profit is obtained. With the investors we have, we are completely aligned on this - they are betting on the future where privacy is the norm. They do not dictate on anything related to our model. We build SimpleX chat, protocols and network the way Internet should have been built if we as developers always put the privacy and empowerment of users first.</p> +<h2 id="company-jurisdiction" tabindex="-1">Company jurisdiction</h2> +<img src="https://simplex.chat/blog/images/20240516-parliament.jpg" width="40%" class="float-right" /> +<p>With regards to jurisdictions, nowhere is perfect. For that reason we plan to establish the foundations for protocol governance in <a href="https://simplex.chat/blog/20240323-simplex-network-privacy-non-profit-v5-6-quantum-resistant-e2e-encryption-simple-migration.html#the-journey-to-the-decentralized-non-profit-protocol-governance">various jurisdictions</a>.</p> +<p>But we’d like to clarify some misconceptions about the UK, where SimpleX Chat Ltd. is registered, and the UK legislation.</p> +<p>For example, the Online Safety Act (OSA). Some people believe that it applies only to UK companies. But the OSA applicability isn’t determined by the company’s jurisdiction - it applies based on the nature and characteristics of the business and its services, as well as the number of its users in the UK. In case of SimpleX network, the OSA doesn’t apply for both of these reasons.</p> +<p>The UK’s position on communication encryption, and more specifically, on end-to-end encrypted messaging, remains the subject of political debates. But with the OSA, the legislative intent was to propose technical measures to block CSAM, and it was trying to explore ways to do this via client-side scanning, which of course would undermine the encryption. However, and thanks to the hard work of privacy experts, researchers, academics and rights organizations throughout the UK and the rest of the world, the Online Safety Bill did not prohibit end-to-end encrypted apps without such scanners. It is an open question whether such technology will ever be possible, and the UK government made a public commitment that client-side scanning won't be required until it is.</p> +<p>For now, strong end-to-end encryption remains permissible and protected, and we hope to also add to the privacy advocacy and debates as a UK-based company to keep it legally protected.</p> +<p>Overall, we view the UK as being better jurisdiction for privacy than many alternatives - there are some trade-offs everywhere.</p> +<h2 id="looking-ahead" tabindex="-1">Looking ahead</h2> +<p>The future of the Internet should be based on decentralized infrastructure operated by commercially viable organizations. These operators need to possess minimal user data, so that users have genuine control over their identities, and free from lock-in by the operators, to support fair competition. This requires a drastic re-imagining of the current norms and newer, more privacy-minded protocols. All in all, private messaging is surrounded by very difficult challenges but it’s worth it to keep pushing the industry forward and not settle for the status quo and current trade offs, protocol limitations and vulnerabilities. The Internet deserves better standards, and so do users.</p> diff --git a/feed.rss b/feed.rss index 996bd6ccc0..ff8035d182 100644 --- a/feed.rss +++ b/feed.rss @@ -6,10 +6,56 @@ It allows you to stay up to date with the latest Blogs from SimpleX Chat. en + + SimpleX: Redefining Privacy by Making Hard Choices + https://simplex.chat/blog/20240516-simplex-redefining-privacy-hard-choices.html + <h1 id="simplex-redefining-privacy-by-making-hard-choices" tabindex="-1">SimpleX: Redefining Privacy by Making Hard Choices</h1> +<p><strong>Published:</strong> May 16, 2024</p> +<p>When it comes to open source privacy tools, the status quo often dictates the limitations of existing protocols and structures. However, these norms need to be challenged to radically shift how we approach genuinely private communication. This requires doing some uncomfortable things, like making hard choices as it relates to funding, alternative decentralization models, doubling down on privacy over convenience, and more.</p> +<p>There will always be questions on why the SimpleX Chat and network makes the choices it makes, and that’s good! It’s important to question us and to understand the reasoning behind each decision, whether it’s technical, structural, financial or any other.</p> +<p>In this post we explain a bit more about why SimpleX operates and makes decisions the way it does.</p> +<h2 id="no-user-accounts" tabindex="-1">No user accounts</h2> +<p>Within SimpleX network there are no user accounts, and more importantly, no user profile identifiers whatsoever at the protocol level, not even random numbers or cryptographic keys used to identify the users. This means there is absolutely nothing that uniquely links users to their contacts or to the network relays. While it's accurate to say, &quot;You need an address to send something,&quot; it's crucial to understand that this &quot;address&quot; serves merely as a transient delivery destination, and not as a user profile identifier in any sense.</p> +<p>You can read more about how SimpleX works <a href="https://simplex.chat/#how-simplex-works">here</a>.</p> +<h2 id="privacy-over-convenience" tabindex="-1">Privacy over convenience</h2> +<p>One of the main considerations often ignored in security and privacy comparisons between messaging applications is multi-device access. For example, in Signal’s case, the Sesame protocol used to support multi-device access has the vulnerability that is <a href="https://eprint.iacr.org/2021/626.pdf">explained in detail here</a>:</p> +<p><em>&quot;We present an attack on the post-compromise security of the Signal messenger that allows to stealthily register a new device via the Sesame protocol. [...] This new device can send and receive messages without raising any ‘Bad encrypted message’ errors. Our attack thus shows that the Signal messenger does not guarantee post-compromise security at all in the multi-device setting&quot;</em>.</p> +<img src="https://simplex.chat/blog/images/20231125-mobile2.png" width="170" class="float-right" /> +<p>Solutions are possible, and even the quoted paper proposes improvements, but they are not implemented in any existing communication solutions. Unfortunately this results in most communication systems, even those in the privacy space, having compromised security in multi-device settings due to these limitations. That's the reason we are not rushing a full multi-device support, and currently only provide <a href="https://simplex.chat/blog/20231125-simplex-chat-v5-4-link-mobile-desktop-quantum-resistant-better-groups.html#link-mobile-and-desktop-apps-via-secure-quantum-resistant-protocol">the ability to use mobile app profiles via the desktop app</a>, while they are on the same network.</p> +<p>Another choice that compromises privacy for convenience and usability is 3rd party push notifications. At SimpleX, we take a slow path of optimizing the network and battery consumption in the app, rather than simply hiding inefficiencies behind the quick fix solution of 3rd party push notifications that <a href="https://www.wired.com/story/apple-google-push-notification-surveillance/">increases vulnerability</a>, a path Signal and others chose. Like other choices, it has usability and optimization trade offs, but ultimately it’s the right thing to continue progressing towards a better solution as we explain <a href="https://simplex.chat/blog/20220404-simplex-chat-instant-notifications.html">here</a>.</p> +<p>Whenever possible, we strive to achieve significantly higher levels of privacy and security. For example, unlike most, if not all, applications (including Signal), <a href="https://simplex.chat/blog/20230925-simplex-chat-v5-3-desktop-app-local-file-encryption-directory-service.html#encrypted-local-files-and-media-with-forward-secrecy">we encrypt application files with per-file unique key</a>. Consequently, once a message is deleted, there's no means to open a file that someone may have stolen in hopes of acquiring the key later. Similarly, apps like Session have done away with forward secrecy, a decision which caused them <a href="https://www.privacyguides.org/en/real-time-communication/#additional-options">not to be recommended</a> for &quot;long-term or sensitive communications&quot;. And <a href="https://simplifiedprivacy.com/spain-has-banned-telegram-defending-session/">misinformation</a> around this makes it dangerous and irresponsible to recommend without such necessary disclosures for people’s awareness.</p> +<p>Session’s decision was based on <a href="https://getsession.org/blog/session-protocol-explained">the incorrect statements</a> about double ratchet being impossible in decentralized networks, and underplayed importance of forward secrecy, break-in recovery and deniability - the absence of these crucial qualities makes Session a much weaker choice for private messaging. For transparency, this was something that was debated with their team <a href="https://twitter.com/SimpleXChat/status/1755216356159414602">here</a>. We also made <a href="https://simplex.chat/blog/20240314-simplex-chat-v5-6-quantum-resistance-signal-double-ratchet-algorithm.html#end-to-end-encryption-security-attacks-and-defense">a separate post</a> about these qualities of end-to-end encryption and their presence in different messengers, to show that not all end-to-end encrypted apps offer the same level of protections.</p> +<h2 id="network-decentralization" tabindex="-1">Network decentralization</h2> +<img src="https://simplex.chat/blog/images/simplex-explained.svg" width="40%" class="float-right" /> +<p>It's important to recognize that a model of decentralization where all servers are openly known and accessible to all clients, that some users ask for, actually results in a less decentralized network, and as the network grows it often requires an introduction of a central authority to protect from bad actors with malicious intent. Therefore, we've deliberately opted for a slower path towards achieving a higher degree of decentralization where there is no central server registry or network authority. For example, p2p designs may offer higher initial decentralization but often compromise on privacy and eventual decentralization. In essence, our approach prioritizes a balance between initial decentralization, privacy, and higher degree of decentralization down the line.</p> +<p>Additionally, while it's true that we haven't yet established a model to incentivize other network operators, it's certainly on the roadmap. We see the decentralization of network operators offered within the app as a top priority.</p> +<p>Where it stands today, users have the freedom to select their preferred servers within the SimpleX network by configuring the app, with thousands of self-hosted servers in operation. Moreover, numerous third-party applications rely on our code for their in-app communications, operating independently of our servers, many of which we may not even be aware of.</p> +<p>Decentralization is an ongoing journey, and we strive to proceed at a measured pace to ensure its proper implementation. While the immediate results may not always appear ideal, prioritizing a careful approach ensures that in the long run, the decisions made in this area align with our ultimate objectives of a private, efficient, reliable and fully decentralized network.</p> +<h2 id="funding-and-profitability" tabindex="-1">Funding and profitability</h2> +<p>We explain our rationale for funding <a href="https://simplex.chat/faq/index.html#funding-and-business-model">here</a>. Funding sources is always one of the most difficult choices to make, and it’s important to underline that VC models don’t necessarily translate to a quest for control, interference of any kind, or overall influence on product roadmap and strategy. The vast majority of investors seek profitability. Irrespective of the organization type profitability is essential for a sustainable operation, and it can and should be done while adhering to the highest possible standards for privacy. For-profit vs. nonprofit is also not an accurate metric to measure a commitment towards privacy and open standards, which is further explained <a href="https://simplex.chat/blog/20240404-why-i-joined-simplex-chat-esraa-al-shafei.html">here</a>.</p> +<p>To make a profit, satisfying customers is the key. Unlike the many companies that profit from selling customer data, we put user privacy first. Doing this at scale requires investments. If the investors don’t own or control a company, their participation becomes merely about profit for them, and not about how this profit is obtained. With the investors we have, we are completely aligned on this - they are betting on the future where privacy is the norm. They do not dictate on anything related to our model. We build SimpleX chat, protocols and network the way Internet should have been built if we as developers always put the privacy and empowerment of users first.</p> +<h2 id="company-jurisdiction" tabindex="-1">Company jurisdiction</h2> +<img src="https://simplex.chat/blog/images/20240516-parliament.jpg" width="40%" class="float-right" /> +<p>With regards to jurisdictions, nowhere is perfect. For that reason we plan to establish the foundations for protocol governance in <a href="https://simplex.chat/blog/20240323-simplex-network-privacy-non-profit-v5-6-quantum-resistant-e2e-encryption-simple-migration.html#the-journey-to-the-decentralized-non-profit-protocol-governance">various jurisdictions</a>.</p> +<p>But we’d like to clarify some misconceptions about the UK, where SimpleX Chat Ltd. is registered, and the UK legislation.</p> +<p>For example, the Online Safety Act (OSA). Some people believe that it applies only to UK companies. But the OSA applicability isn’t determined by the company’s jurisdiction - it applies based on the nature and characteristics of the business and its services, as well as the number of its users in the UK. In case of SimpleX network, the OSA doesn’t apply for both of these reasons.</p> +<p>The UK’s position on communication encryption, and more specifically, on end-to-end encrypted messaging, remains the subject of political debates. But with the OSA, the legislative intent was to propose technical measures to block CSAM, and it was trying to explore ways to do this via client-side scanning, which of course would undermine the encryption. However, and thanks to the hard work of privacy experts, researchers, academics and rights organizations throughout the UK and the rest of the world, the Online Safety Bill did not prohibit end-to-end encrypted apps without such scanners. It is an open question whether such technology will ever be possible, and the UK government made a public commitment that client-side scanning won't be required until it is.</p> +<p>For now, strong end-to-end encryption remains permissible and protected, and we hope to also add to the privacy advocacy and debates as a UK-based company to keep it legally protected.</p> +<p>Overall, we view the UK as being better jurisdiction for privacy than many alternatives - there are some trade-offs everywhere.</p> +<h2 id="looking-ahead" tabindex="-1">Looking ahead</h2> +<p>The future of the Internet should be based on decentralized infrastructure operated by commercially viable organizations. These operators need to possess minimal user data, so that users have genuine control over their identities, and free from lock-in by the operators, to support fair competition. This requires a drastic re-imagining of the current norms and newer, more privacy-minded protocols. All in all, private messaging is surrounded by very difficult challenges but it’s worth it to keep pushing the industry forward and not settle for the status quo and current trade offs, protocol limitations and vulnerabilities. The Internet deserves better standards, and so do users.</p> + + + + 16 May 2024 + SimpleX Chat + https://simplex.chat/blog/20240516-simplex-redefining-privacy-hard-choices.html + SimpleX network: legally binding transparency, v5.7 released with better calls and messages https://simplex.chat/blog/20240426-simplex-legally-binding-transparency-v5-7-better-user-experience.html <h1 id="simplex-network-legally-binding-transparency-v57-released-with-better-calls-and-messages" tabindex="-1">SimpleX network: legally binding transparency, v5.7 released with better calls and messages</h1> +<p><strong>Published:</strong> Apr 26, 2024</p> <p>What's new in v5.7:</p> <ul> <li><a href="https://simplex.chat/blog/20240426-simplex-legally-binding-transparency-v5-7-better-user-experience.html#quantum-resistant-end-to-end-encryption">quantum resistant end-to-end encryption</a> with all contacts.</li> @@ -22,10 +68,10 @@ <h2 id="legally-binding-transparency" tabindex="-1">Legally binding transparency</h2> <p>We are committed to open-source, privacy and security. Here are the recent changes we made:</p> <ul> -<li>We now have a <a href="https://simplex.chat/transparency/">Transparency Reports</a> page.</li> -<li>We updated our <a href="https://github.com/simplex-chat/simplex-chat/blob/stable/PRIVACY.md">Privacy Policy</a> to remove undefined terms &quot;impermissible&quot; and &quot;acceptable&quot;, which would allow us to remove anything we don't like, without any clarity on what that is. You can see the edits <a href="https://github.com/simplex-chat/simplex-chat/pull/4076/files">here</a>.</li> -<li>We published a new page with <a href="https://simplex.chat/faq/">Frequently Asked Questions</a>, thanks to the guidance from users.</li> -<li>We also have a new <a href="https://simplex.chat/security/">Security Policy</a> – we welcome your feedback on it.</li> +<li>We now have a <a href="https://simplex.chat/transparency/index.html">Transparency Reports</a> page.</li> +<li>We updated our <a href="https://simplex.chat/blog/https%3A//github.com/simplex-chat/simplex-chat/blob/stable/simplex-chat/PRIVACY.md">Privacy Policy</a> to remove undefined terms &quot;impermissible&quot; and &quot;acceptable&quot;, which would allow us to remove anything we don't like, without any clarity on what that is. You can see the edits <a href="https://github.com/simplex-chat/simplex-chat/pull/4076/files">here</a>.</li> +<li>We published a new page with <a href="https://simplex.chat/faq/index.html">Frequently Asked Questions</a>, thanks to the guidance from users.</li> +<li>We also have a new <a href="https://simplex.chat/security/index.html">Security Policy</a> – we welcome your feedback on it.</li> </ul> <p>What do we mean by “legally binding transparency?”. It includes these principles:</p> <ul> @@ -64,7 +110,7 @@ <p><a href="https://simplex.chat/blog/20220511-simplex-chat-v2-images-files.html#the-first-messaging-platform-without-user-identifiers">How can SimpleX deliver messages without user identifiers</a>.</p> <p><a href="https://simplex.chat/blog/20220711-simplex-chat-v3-released-ios-notifications-audio-video-calls-database-export-import-protocol-improvements.html#why-having-users-identifiers-is-bad-for-the-users">What are the risks to have identifiers assigned to the users</a>.</p> <p><a href="https://github.com/simplex-chat/simplex-chat#privacy-technical-details-and-limitations">Technical details and limitations</a>.</p> -<p><a href="https://simplex.chat/blog/docs/faq.html">Frequently asked questions</a>.</p> +<p><a href="https://simplex.chat/faq/index.html">Frequently asked questions</a>.</p> <p>Please also see our <a href="https://simplex.chat/">website</a>.</p> <h2 id="help-us-with-donations" tabindex="-1">Help us with donations</h2> <p>Huge thank you to everybody who donates to SimpleX Chat!</p> @@ -260,6 +306,7 @@ SimpleX Chat v5.6 (beta): adding quantum resistance to Signal double ratchet algorithm https://simplex.chat/blog/20240314-simplex-chat-v5-6-quantum-resistance-signal-double-ratchet-algorithm.html <h1 id="simplex-chat-v56-beta-adding-quantum-resistance-to-signal-double-ratchet-algorithm" tabindex="-1">SimpleX Chat v5.6 beta: adding quantum resistance to Signal double ratchet algorithm</h1> +<p><strong>Published:</strong> Mar 14, 2024</p> <p>This is a major upgrade for SimpleX messaging protocols, we are really proud to present the results of the hard work of our whole team on the <a href="https://en.wikipedia.org/wiki/Pi_Day">Pi day</a>.</p> <p>This post also covers various aspects of end-to-end encryption, compares different messengers, and explains why and how quantum-resistant encryption is added to SimpleX Chat:</p> <ul> @@ -322,7 +369,7 @@ <h3 id="4-compromised-long-term-or-session-mitigated-by-break-in-recovery" tabindex="-1">4. Compromised long-term or session - mitigated by break-in recovery</h3> <p>This attack is much less understood by the users, and forward secrecy does not protect from it. Arguably, it's almost impossible to compromise individual message keys without compromising long-term or session keys. So the ability of the encryption to recover from break-in (attacker making a copy of the device data without retaining the ongoing access) is both very important and pragmatic - break-in attacks are simpler to execute on mobile devices during short-term device access than long-term ongoing compromise.</p> <p>Out of all encryption algorithms known to us only <em>Signal double ratchet algorithm</em> (also referred to as <em>Signal algorithm</em> or <em>double ratchet algorithm</em>, which is not the same as Signal messaging platform and protocols) provides the ability for the encryption security to recover after break-ins attacks. This recovery happens automatically and transparently to the users, without them doing anything special or even knowing about break-in, by simply sending messages. Every time one of the communication parties replies to another party message, new random keys are generated and previously stolen keys become useless.</p> -<p>Double ratchet algorithm is used in Signal, Cwtch and SimpleX Chat. This is why you cannot use SimpleX Chat profile on more than one device at the same time - the encryption scheme rotates the long term keys, randomly, and keys on another device become useless, as they would become useless for the attacker who stole them. Security always has some costs to the convenience.</p> +<p>Double ratchet algorithm is used in Signal, Cwtch and SimpleX Chat. But Signal app by allowing to use the same profile on multiple devices compromises the break-in recovery function of Signal algorithm, as explained in <a href="https://eprint.iacr.org/2021/626.pdf">this paper</a>. Because of break-in recovery you cannot use SimpleX Chat profile on more than one device at the same time - the encryption scheme rotates the long term keys, randomly, and keys on another device become useless, as they would become useless for the attacker who stole them. Security always has some costs to the convenience.</p> <h3 id="5-man-in-the-middle-attack-mitigated-by-two-factor-key-exchange" tabindex="-1">5. Man-in-the-middle attack - mitigated by two-factor key exchange</h3> <p>Many people incorrectly believe that security of end-to-end encryption cannot be broken by communication provider. But end-to-end encryption is only as secure as key exchange. While any intermediary passing the keys between senders and recipients cannot recover the private keys from the public keys, they can simply replace the passed public keys with their own and then proxy all communication between the users having full access to the original messages. So instead of having an end-to-end encrypted channel, users would have two half-way encrypted channels - between users and their communication intermediary.</p> <p>Pictures below illustrate how this attack works for RSA encryption.</p> @@ -551,7 +598,7 @@ <p>This is only possible when both devices are connected to the same local network. To send and receive messages mobile app has to be connected to the Internet.</p> <h3 id="quick-start-how-to-use-it" tabindex="-1">⚡️ Quick start - how to use it</h3> <p><strong>On desktop</strong></p> -<p>If you don't have desktop app installed yet, <a href="https://simplex.chat/downloads/">download it</a> and create any chat profile - you don't need to use it, and when you create it there are no server requests sent and no accounts are created. Think about it as about user profile on your computer.</p> +<p>If you don't have desktop app installed yet, <a href="https://simplex.chat/downloads/index.html">download it</a> and create any chat profile - you don't need to use it, and when you create it there are no server requests sent and no accounts are created. Think about it as about user profile on your computer.</p> <p>Then in desktop app settings choose <em>Link a mobile</em> - it will show a QR code.</p> <p><img src="https://simplex.chat/blog/images/20231125-desktop1.png" width="170" /> <img src="https://simplex.chat/blog/images/arrow.png" width="24" /> <img src="https://simplex.chat/blog/images/20231125-desktop2.png" width="170" /> <img src="https://simplex.chat/blog/images/arrow.png" width="24" /> <img src="https://simplex.chat/blog/images/20231125-desktop3.png" width="170" /> <img src="https://simplex.chat/blog/images/arrow.png" width="24" /> <img src="https://simplex.chat/blog/images/20231125-desktop4.png" width="510" /></p> <p><strong>On mobile</strong></p> @@ -561,7 +608,7 @@ <p>If it is an Android app, you can move the app to background, but iOS app has to remain open. In both cases, while you are using mobile profiles from desktop, you won't be able to use mobile app.</p> <p>The subsequent connections happen much faster - by default, the desktop app broadcasts its session address to the network, in encrypted form, and mobile app connects to it once you choose <em>Use from desktop</em> in mobile app settings.</p> <h3 id="how-does-it-work" tabindex="-1">How does it work?</h3> -<p>The way we designed this solution avoided any security compromises, and the end-to-end encryption remained as secure as it was - it uses <a href="https://simplex.chat/blog/docs/glossary.html#double-ratchet-algorithm">double-ratchet algorithm</a>, with <a href="https://simplex.chat/blog/docs/glossary.html#forward-secrecy">perfect forward secrecy</a>, <a href="https://simplex.chat/blog/docs/glossary.html#post-compromise-security">post-compromise security</a> and deniability.</p> +<p>The way we designed this solution avoided any security compromises, and the end-to-end encryption remained as secure as it was - it uses <a href="https://simplex.chat/docs/glossary.html#double-ratchet-algorithm">double-ratchet algorithm</a>, with <a href="https://simplex.chat/docs/glossary.html#forward-secrecy">perfect forward secrecy</a>, <a href="https://simplex.chat/docs/glossary.html#post-compromise-security">post-compromise security</a> and deniability.</p> <p>This solution is similar to WhatsApp and WeChat. But unlike these apps, no server is involved in the connection between mobile and desktop. The connection itself uses a new SimpleX Remote Control Protocol (XRCP) based on secure TLS 1.3 and additional quantum-resistant encryption inside TLS. You can read XRCP protocol specification and threat model in <a href="https://github.com/simplex-chat/simplexmq/blob/master/rfcs/2023-10-25-remote-control.md">this document</a>. We will soon be <a href="https://github.com/simplex-chat/simplex-chat/blob/master/docs/rfcs/2023-09-30-pq-double-ratchet.md">augmenting double ratchet</a> to be resistant to quantum computers as well.</p> <p>The downside of this approach is that mobile device has to be connected to the same local network as desktop. But the upside is that the connection is secure, and you do not need to have a copy of all your data on desktop, which usually has lower security than mobile.</p> <p>Please note, that the files you send, save or play from desktop app, and also images you view are automatically saved on your desktop device (encrypted by default except videos). To remove all these files you can unlink the paired mobile device from the desktop app settings – there will be an option soon allowing to remove the files without unlinking the mobile.</p> @@ -662,11 +709,11 @@ <li>you cannot send voice messages.</li> <li>there is no support for calls yet.</li> </ul> -<p>You can download the desktop app for Linux and Mac via <a href="https://simplex.chat/downloads">downloads page</a>. Windows version will be available soon.</p> +<p>You can download the desktop app for Linux and Mac via <a href="https://simplex.chat/downloads/index.html">downloads page</a>. Windows version will be available soon.</p> <h2 id="group-directory-service-and-other-group-improvements" tabindex="-1">Group directory service and other group improvements</h2> <img src="https://simplex.chat/blog/images/20230925-directory.png" width="330" class="float-to-left" /> <p>Directory service provides a way to search for public groups submitted by the users. To use it, you need to connect to it via SimpleX Chat, as you would connect to any other contact, and type some words to search.</p> -<p>You can also create and register your group, with some limitations explained <a href="https://simplex.chat/blog/docs/directory.html">here</a>.</p> +<p>You can also create and register your group, with some limitations explained <a href="https://simplex.chat/docs/directory.html">here</a>.</p> <p>Other group improvements in this release:</p> <ul> <li> @@ -784,8 +831,8 @@ <p>Please report the cases when messages are not delivered – delivery receipts should help with that.</p> <h4 id="messages-failed-to-decrypt-problem-solved" tabindex="-1">Messages failed to decrypt? Problem solved!</h4> <p>Previously, a growing number of users had the issue when after restoring the chat database from backup, messages from some contacts failed to decrypt and were showing an error in the app.</p> -<p>This happens due to double ratchet protocol protecting the integrity of end-to-end encryption after the compromise - <a href="https://simplex.chat/blog/docs/glossary.html#post-compromise-security">post-compromise security</a>. The protocol logic does not allow to use the old version of the database to decrypt the message.</p> -<p>v5.2 added the extension to the messaging protocol allowing to negotiate the new ratchet keys in such cases - both with the contacts and the group members. This requires a user action, and it resets the security code verification status for this contact or member – you need to verify it again to have the additional protection from <a href="https://simplex.chat/blog/docs/glossary.html#man-in-the-middle-attack">man-in-the-middle attacks</a>.</p> +<p>This happens due to double ratchet protocol protecting the integrity of end-to-end encryption after the compromise - <a href="https://simplex.chat/docs/glossary.html#post-compromise-security">post-compromise security</a>. The protocol logic does not allow to use the old version of the database to decrypt the message.</p> +<p>v5.2 added the extension to the messaging protocol allowing to negotiate the new ratchet keys in such cases - both with the contacts and the group members. This requires a user action, and it resets the security code verification status for this contact or member – you need to verify it again to have the additional protection from <a href="https://simplex.chat/docs/glossary.html#man-in-the-middle-attack">man-in-the-middle attacks</a>.</p> <p>The negotiation of the new ratchet keys still happens via the end-to-end encrypted messages, as the protocol has two layers of end-to-end encryption, so it cannot be compromised by the messaging relays.</p> <p>You may still lose connection if you or your contact changed the receiving address after you made the backup, so make sure to make a new backup after any receiving address changes.</p> <h4 id="reconnect-the-servers" tabindex="-1">Reconnect the servers</h4> @@ -805,12 +852,12 @@ <h4 id="why-not-hosted-groups-with-mls" tabindex="-1">Why not hosted groups with MLS?</h4> <p>Initially, we considered the design with the dedicated servers, potentially self-hosted, that host groups. This design would require adopting MLS (or similar) protocol for group-wide key agreement. Unfortunately, this design is not sufficiently resilient and easier to censor than decentralized design. Also, MLS protocol is very complex to implement, requires a centralized component, and reduces forward secrecy. So we decided against this approach.</p> <h4 id="why-not-fully-decentralized-groups" tabindex="-1">Why not fully decentralized groups?</h4> -<p>We also <a href="https://simplex.chat/blog/docs/rfcs/2023-05-02-groups.html">considered</a> rumour-mongering protocol, where all members are equal and participate in message dissemination. The problem with this approach is that it adds a lot of traffic for all members, even those who mostly read messages. Also, it still requires establishing a fully connected graph, and with large groups it becomes prohibitively expensive and unreliable, given that many members join public groups for a limited time.</p> +<p>We also <a href="https://simplex.chat/blog/https%3A//github.com/simplex-chat/simplex-chat/blob/stable/simplex-chat/docs/rfcs/2023-05-02-groups.md">considered</a> rumour-mongering protocol, where all members are equal and participate in message dissemination. The problem with this approach is that it adds a lot of traffic for all members, even those who mostly read messages. Also, it still requires establishing a fully connected graph, and with large groups it becomes prohibitively expensive and unreliable, given that many members join public groups for a limited time.</p> <h4 id="members-host-the-groups" tabindex="-1">Members host the groups</h4> <p>We are now considering a middle-ground - the design where the owners and admins host the group, synchronising the state between them, receiving and re-broadcasting the messages between all members. This puts a higher burden on these members, but these clients can be hosted in the cloud, and also group owners have a larger incentive to maintain group integrity. At the same time, this design is better for the rest of the group members, as they don't need to establish connections with all other members, only with a limited number of &quot;hosting&quot; members, and it also better protects their privacy, due to the lack of direct connections between most members.</p> <p>This approach avoids the need for a group-wide key agreement protocol, as hosting members are expected to have access to all content anyway, so pair-wise ratchets are sufficient. At the same time the content remains end-to-end encrypted, and protected from the outsiders.</p> <p>This approach also simplifies moderation - the message that needs to be removed simply won't reach the members before it is moderated (in case of automatic or policy-based moderation).</p> -<p>Discovery and content search in such groups will be provided via a dedicated discovery server that will participate in the group, provide an always-online client, and also automatic content moderation functionality - a possible approach to moderation is <a href="https://simplex.chat/blog/docs/rfcs/2023-05-22-groups-moderation.html">described here</a>.</p> +<p>Discovery and content search in such groups will be provided via a dedicated discovery server that will participate in the group, provide an always-online client, and also automatic content moderation functionality - a possible approach to moderation is <a href="https://simplex.chat/blog/https%3A//github.com/simplex-chat/simplex-chat/blob/stable/simplex-chat/docs/rfcs/2023-05-22-groups-moderation.md">described here</a>.</p> <p>We really look forward to your feedback on this design.</p> <h3 id="what-about-read-receipts" tabindex="-1">What about read receipts?</h3> <p>We have an approximately equal number of users who ask us to add receipts, and those who ask not to add them, even as optional.</p> @@ -893,7 +940,7 @@ <h2 id="customize-and-share-color-themes" tabindex="-1">Customize and share color themes</h2> <img src="https://simplex.chat/blog/images/20230523-theme.png" width="288" class="float-to-left" /> <p>Android app now allows choosing between three color themes - Light, Dark and SimpleX (a dark blue theme). You can customize any theme by setting 9 different colors used in the app, including titles, menus, accent colors and colors for sent and received messages.</p> -<p>You can share your theme with other users by exporting it to a file and sending to them. You can also <a href="https://simplex.chat/blog/docs/themes.html">contribute your favorite themes</a> to our GitHub repository.</p> +<p>You can share your theme with other users by exporting it to a file and sending to them. You can also <a href="https://simplex.chat/docs/themes.html">contribute your favorite themes</a> to our GitHub repository.</p> <h2 id="self-destruct-passcode" tabindex="-1">Self-destruct passcode</h2> <img src="https://simplex.chat/blog/images/20230523-self-destruct.png" width="288" class="float-to-left" /> <p>This is something many of you asked before - when asked to enter the app passcode under duress, to be able to enter a special self-destruct code that would remove the app data. This feature is offered in many security tools, and now you can configure it in SimpleX Chat as well.</p> @@ -2348,10 +2395,10 @@ file ---&gt; | XFTP | ------&gt; XFTP ----& <h3 id="chat-groups" tabindex="-1">Chat groups</h3> <p>To create a group use the <code>/g &lt;group&gt;</code> command. You can then invite contacts to the group by entering the <code>/a &lt;group&gt; &lt;name&gt;</code> command. Your contact(s) will need to use the <code>/j accept</code> command to accept the invitation to the group. To send messages to the group, simply enter <code>#&lt;group&gt; &lt;message&gt;</code>.</p> <p><strong>Please note:</strong> Groups are not stored on any server; they are maintained as a list of members in the app database. Sending a message to the group sends a message to each member of the group.</p> -<p><img src="https://simplex.chat/images/groups.gif" alt="simplex-chat" /></p> +<p><img src="https://simplex.chat/blog/images/groups.gif" alt="simplex-chat" /></p> <h3 id="file-transfer" tabindex="-1">File transfer</h3> <p>Sharing files is simple! To send a file to a contact, use the <code>/f @&lt;contact&gt; &lt;file_path&gt;</code> command. The recipient will have to accept before the file is sent.</p> -<p><img src="https://simplex.chat/images/files.gif" alt="simplex-chat" /></p> +<p><img src="https://simplex.chat/blog/images/files.gif" alt="simplex-chat" /></p> <h2 id="were-always-looking-for-help" tabindex="-1">We're always looking for help!</h2> <p>We'd really appreciate your comments, criticism and support - a star on the GitHub repo, downloading and testing the chat or any contribution to the project will help a lot – thank you for all your support!</p> <p><strong>Please note:</strong> SimpleX Chat is in early stage development: we are still iterating protocols, improving privacy and security, so if you have communication scenarios requiring high security, you should consider some other options for now.</p> diff --git a/privacy/index.html b/privacy/index.html index ffa19c8c51..b46deae6d5 100644 --- a/privacy/index.html +++ b/privacy/index.html @@ -40,8 +40,8 @@ SimpleX Privacy Policy - - + + @@ -572,7 +572,7 @@ window.addEventListener('scroll',changeHeaderBg);

      SimpleX Chat is the first communication network based on a new protocol stack that builds on the same ideas of complete openness and decentralization as email and web, with the focus on providing security and privacy of communications, and without compromising on usability.

      SimpleX Chat communication protocol is the first protocol that has no user profile IDs of any kind, not even random numbers, cryptographic keys or hashes that identify the users. SimpleX Chat apps allow their users to send messages and files via relay server infrastructure. Relay server owners and providers do not have any access to your messages, thanks to double-ratchet end-to-end encryption algorithm (also known as Signal algorithm - do not confuse with Signal protocols or platform) and additional encryption layers, and they also have no access to your profile and contacts - as they do not provide any user accounts.

      Double ratchet algorithm has such important properties as forward secrecy, sender repudiation and break-in recovery (also known as post-compromise security).

      -

      If you believe that any part of this document is not aligned with our mission or values, please raise it with us via email or chat.

      +

      If you believe that any part of this document is not aligned with our mission or values, please raise it with us via email or chat.

      Privacy Policy

      SimpleX Chat Ltd uses the best industry practices for security and encryption to provide client and server software for secure end-to-end encrypted messaging via private connections. This encryption cannot be compromised by the relays servers, even if they are modified or compromised, via man-in-the-middle attack, unlike most other communication platforms, services and networks.

      SimpleX Chat software is built on top of SimpleX messaging and application protocols, based on a new message routing protocol allowing to establish private connections without having any kind of addresses or other identifiers assigned to its users - it does not use emails, phone numbers, usernames, identity keys or any other user profile identifiers to pass messages between the user applications.

      @@ -610,7 +610,7 @@ window.addEventListener('scroll',changeHeaderBg);

      iOS Push Notifications

      When you choose to use instant push notifications in SimpleX iOS app, because the design of push notifications requires storing the device token on notification server, the notifications server can observe how many messaging queues your device has notifications enabled for, and approximately how many messages are sent to each queue.

      Preset notification server cannot observe the actual addresses of these queues, as a separate address is used to subscribe to the notifications. It also cannot observe who sends messages to you. Apple push notifications servers can only observe how many notifications are sent to you, but not from how many contacts, or from which messaging relays, as notifications are delivered to your device end-to-end encrypted by one of the preset notification servers - these notifications only contain end-to-end encrypted metadata, not even encrypted message content, and they look completely random to Apple push notification servers.

      -

      You can read more about the design of iOS push notifications here.

      +

      You can read more about the design of iOS push notifications here.

      Another information stored on the servers

      Additional technical information can be stored on our servers, including randomly generated authentication tokens, keys, push tokens, and other material that is necessary to transmit messages. SimpleX Chat design limits this additional technical information to the minimum required to operate the software and servers. To prevent server overloading or attacks, the servers can temporarily store data that can link to particular users or devices, including IP addresses, geographic location, or information related to the transport sessions. This information is not stored for the absolute majority of the app users, even for those who use the servers very actively.

      SimpleX Directory

      @@ -628,11 +628,11 @@ window.addEventListener('scroll',changeHeaderBg);
    • To protect against harm to the rights, property, or safety of software users, SimpleX Chat Ltd, or the public as required or permitted by law.

    At the time of updating this document, we have never provided or have been requested the access to the preset relay servers or any information from the servers by any third parties. If we are ever requested to provide such access or information, we will follow the due legal process to limit any information shared with the third parties to the minimally required by law.

    -

    We will publish information we are legally allowed to share about such requests in the Transparency reports.

    +

    We will publish information we are legally allowed to share about such requests in the Transparency reports.

    Updates

    We will update this Privacy Policy as needed so that it is current, accurate, and as clear as possible. Your continued use of our software applications and preset relays infrastructure confirms your acceptance of our updated Privacy Policy.

    Please also read our Conditions of Use of Software and Infrastructure below.

    -

    If you have questions about our Privacy Policy please contact us via email or chat.

    +

    If you have questions about our Privacy Policy please contact us via email or chat.

    Conditions of Use of Software and Infrastructure

    You accept the Conditions of Use of Software and Infrastructure ("Conditions") by installing or using any of our software or using any of our server infrastructure (collectively referred to as "Applications"), whether preset in the software or not.

    Minimal age. You must be at least 13 years old to use our Applications. The minimum age to use our Applications without parental approval may be higher in your country.

    diff --git a/security/index.html b/security/index.html index 3290eab628..d767dd167f 100644 --- a/security/index.html +++ b/security/index.html @@ -845,7 +845,7 @@ window.addEventListener('scroll',changeHeaderBg);

    Security Policy

    While great care is taken to ensure the highest level of security and privacy in SimpleX network servers and clients, all software can have flaws, and we believe it is a critical part of an organization's social responsibility to minimize the impact of these flaws through continual vulnerability discovery efforts, defense in depth design, and prompt remediation and notification.

    -

    The security assessment of SimpleX cryptography and networking was done by Trail of Bits in November 2022.

    +

    The security assessment of SimpleX cryptography and networking was done by Trail of Bits in November 2022.

    We are planning design review of SimpleX protocols in July 2024 and implementation review in December 2024/January 2025.

    Reporting security issues

    To report a security issue, please contact us directly via email chat@simplex.chat. Please do NOT report security issues via GitHub issues or via any public channels.

    diff --git a/transparency/index.html b/transparency/index.html index a1fd131b18..603cd30d6f 100644 --- a/transparency/index.html +++ b/transparency/index.html @@ -851,8 +851,8 @@ window.addEventListener('scroll',changeHeaderBg);

    Our objective is to consistently ensure that no user data and absolute minimum of the metadata required for the network to function is available for disclosure by any infrastructure operators, under any circumstances.

    Helpful resources: