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?
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?
Same goes for hashing IPv4 addresses. There is no way to make eitther one secure by hashing.
Your lookup table just got a lot bigger.
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.
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?
That's sort of beside the point, though. The question is: How does uploading my Address Book information provide a much more efficient or complete solution to that set of problems? I don't think that it does. In each case, you're dependent on heuristics and sometimes those heuristics are going to miss a match. If I were Twitter, I'd happily accept those misses in exchange for hitting the matches where people spell each other's first names and email addresses consistently (for example).
> how much effort are you willing to spend running your users' batteries down for something that you'd never yourself use?
You lost me there. My point was just that for Twitter, my iPhone CPU/battery are an "externality." So while they might spend more cycles doing server-side comparisons on the hashes my phone sends over, at least they're not paying to compute the hash values.
But as I said, outside of my territory.
[1] I'm not that old, really.
Although what about hardcoding a salt into the app to hash with?
2) if you use some other computationally expensive hash you run into the problem of low powered mobile hardware. Remember you're not hashing 1 thing, but dozens or hundreds of phone numbers or email addresses.
Crypto is actually really cool these days, there's pretty much a solution to every weakness :)
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?
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.