7 ms·
What if your address book was hashed (sha1, bcrypt) and then uploaded? In that case, all that would be uploaded is a list of hashes for the email addresses or p
by chubs 15y ago
What if your address book was hashed (sha1, bcrypt) and then uploaded? In that case, all that would be uploaded is a list of hashes for the email addresses or phone numbers of people i know.
Then, when another person signs up for an account, it's easy to see who they should suggest they should join, but nowhere is any personal data being stored.
Sounds like it'd work to me?
- feral 15y agoWhat problem would this solve? If my problem is that I don't want Facebook to have the phone numbers in my address book, then surely I don't want them to have the SHA1 of each of the numbers in my address book, either? Isn't it going to be easy for an organisation with Facebook's resources to build a dictionary of the space of SHA1s of phone numbers? And if they salt the numbers, first, then they can't be compared with each other for suggestions? So whats the point? Have I overlooked something?
- skybrian 15y agoIt avoids accidents. With plain text data, there is a lot of room for accidentally leaking private data (for example, to server logs). Building a sha1 dictionary isn't something you do by accident.
- extension 15y agoFacebook only knows the contacts that match i.e. are already on Facebook. And that's exactly what the user wanted to find out. It's true that they could store the hashes and build a graph of mystery contacts, but that's still not as bad as taking the actual contact info.
- DenisM 15y agoIt would take laughably small time to bruteforce the phone number out of a hash. Knowing the algorithm I can compute all possible 10,000,000,000 combinations and store them in one file. Same goes for hashing IPv4 addresses. There is no way to make eitther one secure by hashing.
- feralchimp 15y agoConcatenate FirstName+LastName+emailAddress+phoneNumber, then hash or HMAC that. Your lookup table just got a lot bigger.
- bonzoesc 15y agoAnd the likelihood that you'll match somebody got a lot smaller. Names have different spellings, phone numbers have different spellings (to say nothing of different numbers), people have multiple emails. You can't canonicalize some of these either.
- feralchimp 15y agoSo send multiple hashes per contact! Feral, Chimp, myEmail, myDeskPhone, myCellPhone H1 = sha1(Feral-Chimp-myEmail-myDeskPhone-myCellPhone) H2 = sha1(F-Chimp-myEmail-myDeskPhone-myCellPhone) H3 = sha1(Feral-C-myEmail-myDeskPhone-myCellPhone) H4 = sha1(F-C-myEmail-VALUEOMITTED-VALUEOMITTED) ... ... So flexibility is available, it's just more computationally expensive for the server to do the extra comparisons. The hash calcs use a little extra battery per user, but I'm much happier to donate some of my processor/battery than I am my Address Book contents.
- bonzoesc 15y agoNot all names are simple or even computable transforms though. How do you deal with entries like "Mom" or "Steve," names like "St. Clair" that may be entered dozens of different ways, or non-English names like "姚明" that may have dozens or hundreds of different possible romanizations, anglicizations, francizations, and spellings under any other language? How much extra battery are you willing to spend, and more importantly, how much effort are you willing to spend running your users' batteries down for something that you'd never yourself use?
- deleted 15y ago[deleted]
- baddox 15y agoIf users aren't asked for access to their address book, this is still a potential public relations nightmare, since many people will inevitably be distressed that a company will be able to know who was in your address book even if they don't know those people's phone numbers.