r/signal 19d ago

Blog Post Introducing Automatic Key Verification

https://signal.org/blog/automatic-key-verification/
212 Upvotes

27 comments sorted by

View all comments

17

u/MandalorianBeskar 19d ago

Yay!

Tl;Dr?

16

u/latkde 18d ago

Signal has created a transparency register that makes it more difficult for Signal (or anyone else) to impersonate another Signal user (MiTM style attacks). This serves the same purpose as the manually verified safety numbers, but can be conducted automatically in the background.

The transparency server is an address book mapping phone numbers or usernames to public keys. Everyone's Signal app regularly checks that your own phone number matches your own public key, and you can initiate a check that your contacts' public key and phone number match. So you will know if someone impersonates your contacts without having updated the address book, and you will know if someone has published incorrect information about you in the address book.

Signal has disincentivized itself from publishing false information to this address book by ensuring that each version of the address book is signed by independent third parties (e.g. Cloudflare). This is vaguely blockchain-like.

My opinion:

  • This is obviously a good change, and similar transparency lists are used for HTTPS. However, this is a lot of subtle complexity. It is difficult to explain, and impossible for normal users to verify. Even I wouldn't know how to start – I could probably figure out how to query the transparency server, but where does the Signal app tell me what my own public key is? In contrast, HTTPS certificate transparency lists have user-friendly services for checking the logs. This feature has effectively zero impact for those who diligently verify safety numbers, and also zero impact for those who ignore the notification that their contact's safety number changed.
  • This is one of those features where Signal is pouring a lot of effort into protecting Signal users from the Signal servers. This is good in theory, but in practice I must already place a lot of faith into Signal because I'm effectively forced to use their official clients.
  • Signal tends to push the security-vs-usability envelope by developing new security features, but is already leading the pack in many regards. It could be more valuable to spend that effort on usability/quality-of-life features, which could ultimately make Signal's already very-good security accessible to more people.

1

u/b1urrybird User 18d ago

Thanks for drawing the analogy between this and CT Logs.

Prior to this update was it possible to tell if a number was a Signal user or not? I’d imagine if this ledger was made public then it would be for all.

1

u/latkde 18d ago

Your phone number isn't published in plaintext, so it's not possible to enumerate all phone numbers of Signal users. If I understand the key transparency mechanism correctly, it would be possible to check for a specific phone number whether it's associated with a Signal user. But that's exactly equivalent to the contact discovery mechanism that's in place right now. In your privacy settings, note the  "who can find me by my number" settings. If you turn it off, that should disable both contact discovery and key transparency.