Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Facebook's hidden service address is particularly impressive: https://facebookcorewwwi.onion/

It seems like everything except the 'i' is a prefix, a lot of computing must have went in to generating it.

One tool to do it is called 'Shallot' https://github.com/katmagic/Shallot

The readme includes a table of estimated computing time required. A 15 char prefix like Facebook's is not even on the table, and a 14 char prefix is estimated to take 2.6 million years. There is also a GPU version which should be an order of magnitude faster: https://github.com/lachesis/scallion/blob/gpg/README.md

Also, technically. the onion addresses not public keys, but derived from a public key. It's actually a hash of the public key.

It appears that the hashing algorithm used is SHA1. Source: The last few lines of the easygen function https://github.com/katmagic/Shallot/blob/master/src/math.c



Facebook said they just looked for Facebook and got very lucky. corewww does not have a lot of meaning.

We tried the same thing for PinkApp and got all sorts of much-longer matches that we could retcon into meaning something.


Facebook probably looked for anything matching "facebook(web-related words)", and were lucky to find one with only one errant character. There were probably enough acceptable variants that the effective computing time was less than 14 characters, maybe less than 13.


FWIW I've struggled to get keys generated by Shallot to persist very long but haven't found the cause. We've had to fallback to a non-vanity address. If anybody knows what I'm doing wrong please let me know!


What do you mean by "struggled to get keys to persist"?

It shouldn't make any difference how the keys were generated.


I mean on the network. It stops resolving after a few hours.


I don't think the way you've generated the key is likely to be the source of the problem, although I don't have any good ideas about what the problem might be, beyond the obvious (is the server still online? is for still running? is it still using the correct config?)


> It seems like everything except the 'i' is a prefix, a lot of computing must have went in to generating it.

If Facebook can generate an address with only a single character being random (the trailing ‘i’), couldn’t an attacker generate anyone’s address by just applying 26 times more computing power?

Either Facebook didn’t target the trailing “corewww” or the .onion URL scheme is broken (since Facebook would be able to take over any .onion URL by just spending 26 times as much compute power as they did with https://facebookcorewwwi.onion/).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: