Greetings!

A friend of mine wants to be more secure and private in light of recent events in the USA.

They originally told me they were going to use telegram, in which I explained how Telegram is considered compromised, and Signal is far more secure to use.

But they want more detailed explanations then what I provided verbally. Please help me explain things better to them! ✨

I am going to forward this thread to them, so they can see all your responses! And if you can, please cite!

Thank you! ✨

  • Valmond@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    4 days ago

    As you say yourself (cryptocraphic nerd here):

    Signal’s E2EE protocol means that, most likely, message content between persons is secure.

    So a shame there are no free servers, are the server soft not open source, only the signal app itself?

    • Dessalines@lemmy.ml
      link
      fedilink
      arrow-up
      2
      ·
      3 days ago

      The server is supposedly open source, but they did anger the open source community a few years back, by going a whole year without posting any code updates. Either way that’s not reliable, because signal isn’t self-hostable, so you have no idea what code the server is running. Never rely on someone saying “just trust us.”

      • hedgehog@ttrpg.network
        link
        fedilink
        arrow-up
        1
        ·
        2 hours ago

        Its impossible to verify what code their server is running.

        Signal has posted multiple times about their use of SGX Secure Enclaves and how you can use Remote Attestation techniques to verify a subset of the code that’s running on their server, which directly contradicts your claim. (It doesn’t contradict the claim that you cannot verify all the code their server is running, though.) Have you looked into that? What issues did you find with it?

        I posted a comment here going into more detail about it, but I haven’t personally confirmed myself that it’s feasible.

      • Valmond@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        2 days ago

        I have read that it is self hostable (but I haven’t digged into it) but as it’s not a federating service so not better than other alternative out there.

        Also read that the keys are stored locally but also somehow stored in the cloud (??), which makes it all completely worthless if it is true.

        That said, the three letter agencies can probably get in any android/apple phones if they want to, like I’m not forgetting the oh so convenient “bug” heartbleed…

        • hedgehog@ttrpg.network
          link
          fedilink
          arrow-up
          1
          ·
          2 days ago

          Also read that the keys are stored locally but also somehow stored in the cloud (??),

          Which keys? Are they always stored or are they only stored under certain conditions? Are they encrypted as well? End to end encrypted?

          which makes it all completely worthless if it is true.

          It doesn’t, because what you described above could be fine or could have huge security ramifications. As it is, my guess is that you’re talking about how Signal supports secure value recovery. In that case:

          1. The key is used to encrypt your contacts, profile name, group avatars, social graph, etc., but not your messages.
          2. Your key is only uploaded to the cloud if you have a recovery PIN or passphrase
          3. Your key is encrypted using your PIN or passphrase using techniques (key-stretching, storing in server secure enclaves) that make it more difficult to brute force

          The main criticism of this is that you can’t opt out of it without opting out of the Registration Lock, that it necessarily uses the same PIN or passphrase, and that, particularly because it isn’t clear that your PIN/passphrase is used for encryption, users are less likely to use more secure pass phrases here.

          But even without the extra steps that we can’t 100% confirm, like the use of the Secure Enclave on servers and so on, this is e2ee, able to be opted out by the user, not able to be used to recover past messages, and not able to be used to decrypt future messages.

          • Valmond@lemmy.world
            link
            fedilink
            arrow-up
            1
            arrow-down
            1
            ·
            1 day ago

            Nice try FBI.

            Well, if my pin is four numbers, that’ll make it so hard to crack. /s

            If you can’t show hard evidence that everything is offline locally, no keys stored in the cloud, then it’s just not secure.

            BTW, “keys” when talking about encryption is the keys used to encrypt and decrypt, it wouldn’t be very interesting to encrypt them, because now you have another set of keys you have to deal with.

            • hedgehog@ttrpg.network
              link
              fedilink
              arrow-up
              1
              ·
              49 minutes ago

              Nice try FBI.

              Wouldn’t “NSA” or “CIA” be more appropriate here?

              Well, if my pin is four numbers, that’ll make it so hard to crack. /s

              If you’re using a 4 number PIN then that’s on you. The blog post I shared covers that explicitly: “However, there’s a limit to how slow things can get without affecting legitimate client performance, and some user-chosen passwords may be so weak that no feasible amount of “key-stretching” will prevent brute force attacks” and later, “However, it would allow an attacker with access to the service to run an “offline” brute force attack. Users with a BIP39 passphrase (as above) would be safe against such a brute force, but even with an expensive KDF like Argon2, users who prefer a more memorable passphrase might not be, depending on the amount of money the attacker wants to spend on the attack.”

              If you can’t show hard evidence that everything is offline locally, no keys stored in the cloud, then it’s just not secure.

              If you can’t share a reputable source backing up that claim, along with a definition of what “secure” means, then your claim that “it’s just not secure” isn’t worth the bits taken to store the text in your comment.

              You haven’t even specified your threat model.

              BTW, “keys” when talking about encryption is the keys used to encrypt and decrypt,

              Are you being earnest here? First, even if we were just talking about encryption, the question of what’s being encrypted is relevant. Secondly, we weren’t just talking about encryption. Here’s your complete comment, for reference:

              I have read that it is self hostable (but I haven’t digged into it) but as it’s not a federating service so not better than other alternative out there.

              Also read that the keys are stored locally but also somehow stored in the cloud (??), which makes it all completely worthless if it is true.

              That said, the three letter agencies can probably get in any android/apple phones if they want to, like I’m not forgetting the oh so convenient “bug” heartbleed…

              Just so you know, “keys” are used for a number of purposes in Signal (and for software applications in general) and not all of those purposes involve encryption. Many keys are used for verification/authentication.

              Assuming you were being earnest: I recommend that you take some courses on encryption and cybersecurity, because you have some clear misconceptions. Specifically, I recommend that you start with Cryptography I (by Stanford, hosted on Coursera. See also Stanford’s page for the course, which contains a link to the free textbook). Its follow-up, Crypto II, isn’t available on Coursera, but I believe that this 8 hour long Youtube video contains several of the lectures from it. Alternatively, Berkeley’s Zero Knowledge Proofs course would be a good follow-up, and basically everything (excepting the quizzes) appears to be freely available online.

              it wouldn’t be very interesting to encrypt them, because now you have another set of keys you have to deal with.

              The link I shared with you has 6 keys (stretched_key, auth_key, c1, c2, master_key, and application_key) in a single code block. By encrypting the master key (used to derive application keys such as the one that encrypts social graph information) with a user-derived, stretched key, Signal can offer an optional feature: the ability to recover that encrypted information if their device is lost, stolen, wiped, etc., though of course message history is out of scope.

              Full disk encryption also uses multiple keys in a similar way. Take LUKS, for example. Your drive is encrypted with a master key. You derive the master key by decrypting one of the access keys using its corresponding pass phrase. (Source: section 4.3 in the LUKS1 On-Disk Format Specification (I don’t believe this basic behavior was changed in LUKS2).)