• Signal secure messaging can now identify you without a phone number – Naked Security
    https://nakedsecurity.sophos.com/2020/05/22/signal-secure-messaging-can-now-identify-you-without-a-phone-n

    Signal is a popular instant messaging (IM) app with a difference.

    That difference – or at least its major difference – is simple: it’s not owned and operated by an industry behemoth.

    WhatsApp belongs to Facebook, Skype is part of Microsoft, and iMessage is owned by Apple, but the open-source app Signal belongs, inasmuch as it belongs to anyone, to Signal.

    Signal is a US-registered non-profit organisation that was founded entirely around making and supporting the messaging app.

    As a result, Signal’s big selling point is, well, that it isn’t selling anything.

    Sharing information about you with third parties isn’t part of Signal’s business model, so there’s actually no point in it figuring out how to do so…

    …which means that there’s a much more compelling reason to believe the organisation when it claims to have an unbending focus on end-to-end encryption.

    Signal not only has no desire, but also has no need, to take any interest in what you’re saying, or whom you’re saying it to.

    Signal is also endorsed by a privacy celebrity that other IM service providers can’t match, namely Edward Snowden.

    Snowden is quoted on Signal’s website with the five simple words, “I use Signal every day.”

    (With apologies to well-known cryptographers Bruce Schneier and Matt Green, who are two of Signal’s other celebrity endorsers.)

    Signal, however, has one curious aspect that puts some people off, this author included.

    We’ve never bothered with Signal for the reason that signing up means handing over your phone number.

    Conveniently, a phone number is all you need to sign up, but you can’t sign up with your name instead, or with an email address.

    You need to use a working phone number that really is yours.

    Basing the identity of accounts on a phone number makes a lot of sense, not least because a phone number is something you can easily and cheaply acquire in many countries, and it guarantees that the user has a satisfactory way of verifying their identity.

    But in some countries, getting hold of a phone number isn’t an easy process, and may involve proving not only your identity but also your address.

    Indeed, getting hold of an “anonymous” SIM card, or using an improperly registered one, is a criminal offence in some jurisdictions.

    And there’s something unappealing about entrusting your identity on a secure online service (one that prides itself on immunity to surveillance) to a cryptographic chip that must by law be registered with a central authority so it can keep tabs on you via that same chip.

    There’s something even less appealing about the worry that you could be locked out of your own account simply by losing the right to the phone number you used for the account.

    This irony isn’t lost on Signal, and it has just announced a new feature called Signal PINs that allow you to keep control of your account even if you lose your phone or are forced to switch numbers and can’t get your old one back.

    Signal aims to be easy and safe to use for everyone, which is why it hasn’t insisted on using long and hard-to-remember “recovery codes”.

    Signal PINs can be as long and complex as you like, including letters as well as digits, if that’s what you prefer, but you can safely use a short PIN if you want something that’s easy to remember and doesn’t need writing down, an act that could be a risk for some Signal users.
    Secure value recovery

    Signal is using a technique it announced late last year called SVR, short for Secure Value Recovery.

    One obvious problem with short PINs used as recovery codes for databases that aren’t stored in secure memory on your smartphone is the issue of what’s called an “offline attack”.

    For example, your iPhone can get away with a 6-digit PIN because you can only type in the PIN on the phone, and the only way to verify the PIN (unless there is a bug somewhere) is to communicate directly with a tamper-resistant chip inside the phone.

    That chip can’t be opened up, modified or cloned, so the internal counter it maintains of how many guesses you’ve had at the PIN can’t be reset or bypassed – you get 10 goes and then it’s game over.

    You can’t make 10,000 copies of the chip and have 9 guesses on each copy without getting locked out forever.

    But regular server databases aren’t as easy to protect against attacks where the crooks aren’t hindered by the presence of dedicated, tamper resistant hardware.

    Signal has therefore put a lot of effort into developing hacker-resistant storage “enclaves” that the company can run on its own servers – using Intel’s Software Guard Extensions (SGX) – to keep your master secrets secure with a pass code that’s easy to remember.

    As we mentioned, however, you don’t need to use a PIN to secure your Signal account – you can just use your phone number alone, as before, or choose a proper pass-phrase that’s as long as you like. (We recommend the latter, SVR or no SVR.)
    No more phone numbers?

    The disappointing news here, at least in our opinion, is that Signal isn’t yet announcing a way to use its product without handing over a phone number at all.

    We’ve seen excitable reports in the media suggesting that this marks the beginning of the end of phone-based identity for Signal, but we don’t think it does.

    You still can’t use the laptop versions of the app without setting Signal up on your phone first, and you can’t set it up on your phone without handing over a real, live phone number right at the start of the installation.

    As Signal itself says, PINs aren’t a replacement for phone numbers but they do provide a safer way to recover your account in an emergency than a phone number alone.

    In the latest version of our apps, we’re introducing Signal PINs. Signal PINs are based on Secure Value Recovery, which we previewed in December, to allow supporting data like your profile, settings, and who you’ve blocked to be securely recovered should you lose or switch devices. PINs will also help facilitate new features like addressing that isn’t based exclusively on phone numbers, since the system address book will no longer be a viable way to maintain your network of contacts.

    It’s a start, not least because it means an interfering government or mobile phone company can’t lock you out of your account simply by cancelling your SIM card.

    But you still need a phone to get onto Signal in the first place.

  • How to install and use Signal messenger without a smartphone · ctrl.alt.coop
    https://ctrl.alt.coop/en/post/signal-without-a-smartphone

    Signal-cli + Signal-Desktop

    Signal-cli is a command line interface for Signal. It’s used to register a new signal account and then link a Signal-Desktop app to this account. If you really use Signal without a smartphone, signal-cli functions as the single-point-of-truth.

    Go to the following link and download the latest signal-cli release: https://github.com/AsamK/signal-cli/releases/latest

    In our case this is v0.6.2

    $ wget https://github.com/AsamK/signal-cli/releases/download/v0.6.2/signal-cli-0.6.2.tar.gz
    $ tar xfv signal-cli-0.6.2.tar.gz
    $ cd signal-cli-0.6.2

    To be able to use Signal you have to register yourself with a phone number (doesn’t has to be a mobile number).

    $ bin/signal-cli -u YOUR_NUMBER register

    You will then get a SMS with a verfication number if it’s a mobile number or else a call. You use this number then to verify your account:

    $ bin/signal-cli -u YOUR_NUMBER verify VERIFICATIONCODE

    Install the latest version of Signal-Desktop from here: https://signal.org/download

    Now you have to start Signal-Desktop and extract the actual QR-Code. For this, start Signal-Desktop. It should display a barcode to link your Signal-Desktop app to a Signal device. You can either decode the barcode on your local machine or use a smartphone to scan the barcode.

    Android:

    Install Barcode Scanner on your device
    Scan barcode and tsdevice-Link should appear

    Linux:

    Toggle Developer Tools, go to Network Tab
    search for data:image/png entry, click on it and the actual barcode should be displayed
    Right click on the bar code to save it for instance as /tmp/qr.png
    use zbarimg (zbar-tools) to decode it: $ zbarimg /tmp/qr.png QR-Code:tsdevice:/?uuid...
    Copy tsdevice-Link

    Now you can link your Signal-Desktop to your Signal account through signal-cli:

    $ bin/signal-cli -u YOUR_NUMBER addDevice —uri “tsdevice:/?uuid...”

    Add contacts

    We use signal-cli daemon to synchronise contacts (with names^^) with our Signal-Desktop instance.

    On Ubuntu, you have to install libunixsocket-java package (otherwise the signal-cli daemon can’t start)

    Fill in contacts in the signal-cli config: .local/share/signal-cli/data/YOUR_NUMBER in the dict

    “contactStore” : {
    “contacts” : [ {
    “name” : “name”,
    “number” : “+49xxxx”
    }, {
    “name” : “name2”,
    “number” : “+49yyyyy”,
    }]}

    Start signal-cli daemon:

    $ bin/signal-cli -u YOUR_NUMBER daemon

    And then synchronise contacts in the Signal Desktop App (File->Preferences->Contacts->Import Now)
    Troubleshooting

    If signal-cli daemon reports following error Envelope from: <yournumer> (device: 2) Timestamp: xxxxx Exception: org.whispersystems.libsignal.InvalidMessageException: No valid sessions. (ProtocolInvalidMessageException) Failed to decrypt message.

    then:

    $ bin/signal-cli -u YOUR_NUMBER send -e -m “foo” YOUR_NUMBER

    In the same config, set the Active parameter for all groups to true, in order to be able to send messages in groups.

    Signal-cli as a daemon

    You may want to run signal-cli as a user systemd service to prevent that the key material gets out of sync for signal-cli.

    Symlink the signal-cli executable to ~/.bin/signal-cli:

    $ ln -s <ABSOLUTE-PATH-TO>/signal-cli-0.X.X/bin ~/.bin/signal-cli

    (This way you only have to update the symlink and not all the configs, if you get a newer signal-cli version.)

    Add following line to your ~/.bashrc or ~/.bash_profile:

    export PATH=$PATH:$HOME/.bin

    And place following systemd service config in ~/.config/systemd/user/signal-cli@.service:

    [Unit]
    Description=Signal cli for %I
    Requires=dbus.socket
    After=dbus.socket
    Wants=network-online.target
    After=network-online.target

    [Service]
    Type=dbus
    Environment="SIGNAL_CLI_OPTS=-Xms2m"
    ExecStart=%h/.bin/signal-cli -u %I daemon —ignore-attachments
    BusName=org.asamk.Signal

    [Install]
    WantedBy=multi-user.target

    Start the service with:

    $ systemctl —user start signal-cli@<YOUR NUMBER>

    And verify it is running with:

    $ systemctl —user status signal-cli@<YOUR NUMBER>

    If you change something in the config, stop the service:

    $ systemctl —user stop signal-cli@<YOUR NUMBER>

    reload the daemon:

    $ systemctl —user daemon-reload

    And start it again.

    That’s it! Happy messaging.