5 ms·
Does the safety number count as a sort of hash in this case? Or is it absolutely nothing like an MD-5?
by nosmokewhereiam 5y ago
Does the safety number count as a sort of hash in this case? Or is it absolutely nothing like an MD-5?
- woodruffw 5y agoI don’t know if it’s actually a hash, but it’s probably some kind of diffuse one-way function: it would need to be impossible to pre-image or reproduce from a different input in order to serve its purpose. Edit: Signal’s blog refers to it as a hash[1]. It’s apparently essentially just a hash of the contact’s public key, so rotating that causes the hash change. [1]: https://signal.org/blog/safety-number-updates/ https://signal.org/blog/safety-number-updates/
- lucb1e 5y ago> essentially just a hash of the contact’s public key and yours*. They're concatenated with deterministic sorting such that they are the same on both devices. Which is a big pain because that means I can't simply tell everyone my public key, I have to explain that half the number is their own key and that they can ignore the non-matching part, which is dangerous advice... it could have been so simple but moxie is moxie
- thebeardisred 5y agoMy understanding was that it was a fingerprint of the public key, much like an SSH fingerprint.
- sneak 5y agoIt's specific to the two public keys involved in that conversation. It was renamed from "fingerprint" because to those unfamiliar with cryptography, "fingerprints" are things used when a crime has been committed. There was a study out some years ago that illustrated that most of the crypto jargon in use is not helpful in conveying mental models to laypeople.
- upofadown 5y agoAs much as I support the fight against crypto jargon, I don't think the term "safety number" really works for this. You don't risk a broken leg if you don't verify your safety numbers. The term "safety" is already one metaphor away from the actual issue. At least "fingerprint" directly maps to the idea of an aspect of something that relates to the identity of someone. I dunno, could you call this a "serial number"? The root problem here is that our culture does not have the idea of a cryptographic identity in the first place.
- RL_Quine 5y agoThe "safety number" also encodes both participants phone numbers (the verifier and the person to be verified). So you would be a little foolish to publish it in say, a blog post if you weren't intending those phone numbers to be public information. I'm also very amused that the author censored part of the QR code, but not the human readable text below it containing the exact same data.
- lucb1e 5y ago> The "safety number" also encodes both participants' phone numbers Um, not that I know of. A quick check, though, the QR code is a bunch of binary data, so I dove into the source code: https://github.com/signalapp/libsignal-client/blob/4446b648fc719c55c979d5960d3d23352bf5dcd8/rust/protocol/src/fingerprint.rs#L66-L69 https://github.com/signalapp/libsignal-client/blob/4446b648f... > very amused that the author censored part of the QR code, but not the human readable text below it containing the exact same data So what is it now, does it contain the phone numbers or not? Am I allowed to be 'very amused' at you for also not knowing what's in the QR code? :-) Any phone numbers are censored in the screenshots, only the safety number is not. But the QR code doesn't contain the phone number, as you just saw in the source code (assuming I correctly identified the relevant part, I just looked for uses of qr codes, found getScannableFingerprint and followed the trail through libsignal from there). Strictly speaking, though, the QR is not the same as the text below: the safety number below doesn't appear to include a version number (same file, lines 14-16). But that's just a technicality. Either way, I was also amused as my understanding was also that the QR code is the same as the 'safety number' shown below. What confuses me is that the author knows what a CVE is and knows all the right channels to do responsible disclosure, but is apparently confounded by the situation that no key change is shown when they key didn't change. I am rather happy that you can keep your key material: I'd go insane if I had to reverify everyone who adds a new device legitimately (try Wire if you want that experience), I'd certainly stop doing it for any but the most stable and important of contacts. I'd also somehow need to establish a second encrypted channel to exchange the new key material because I don't meet most people in real life these days.
- baby 5y ago