Shallot
Changes
Shallot has been updated with libssl 1.1.0 support after years of neglect. About
Shallot allows you to create customized .onion addresses for Tor’s hidden services. (By customized, it is meant that part of the address can be selected. Choosing an entire address would take far longer than the universe is believed to have been in existence.)
Installation
$ ./configure && make $ ./shallot
Usage
$ ./shallot ^test ---------------------------------------------------------------- Found matching pattern after 99133 tries: testvztz3tfoiofv.onion ---------------------------------------------------------------- -----BEGIN RSA PRIVATE KEY----- MIICXgIBAAKBgQC3R85m6NQaA1ZjaYqvz1hvFIjbL4RtKdJbG8hlC9xEBkvfr/BG 8Z5vDiUzdbDt8mEBuZUDanx80uGJvbXTgmczX0UlkEOgGiZ8RKpnsbKaf/EJNrIw T7MSXQmWNcm22nDeViV7fwy+Usyal2RE5cdVCFsPtEbVZqCumlKkEgCyFwIDBAZ7 AoGBAJSa2cGuru/XhzJAEAIwHZbgPDnum9T/srOYxUKW6afHZeOu5S4Cclwb+xb/ pGOtzn71XZfCKMfiVdxB/f3XTcRrYB2VnBoNToTD7WfH6DksdDf4zunqiEjvxi9K R+tKhxmF7OedrRt8wIhUmFd1E2Q9nbTHI6icdB4kR4QkYKZzAkEA5M6samK7+495 6SWpRXiePIs7sHKWuxdCrG7kW5RNJrv2CcGYwK46TPcaXBcRfM4eq9+9PGoKi0IO gSpOZ5vRYQJBAM0QAZYTZ6ApD014x372MX1ZNofuYL/+XF8ZPZV6Sh4+9MUBuNPb yL7BENDr6pX4Zm6OepvAphhCa4vGno2pHncCQQCQnfhUCHANU4bjtX4EOoI63WDq UwBOeIWxu0YvGt7Z25Dg9CNz/aX8UZIoj6VyKxLRbR9+K3mNrNgaopW+ZDKzAkEA ttgTK1ALe+3v+5H+Ez1SvFPREDFcHihrfD1Ipc5zicY9ixTArgdyZvk+Pi+AMBVV sL2HWvjRLEAgRclvKfkwWwJAFtM+BIGRM5me+fMALuBBEtKnbJ6maflsyucErEb0 pIIBkovF5oyWO3lSBmtStJIANNkHOg8aXqjcgPKusDN7CQ== -----END RSA PRIVATE KEY-----
If you place the RSA private key (including its header and footer) in a file
called private_key
in the HiddenServiceDir
you specified in your torrc, (If
you don’t know what that means,
read the Tor man page. If you
still don’t understand, Shallot probably isn’t for you.) then when you restart
your Tor, a hostname
file will be created in HiddenServiceDir
that contains
your shiny new .onion address.
On the Security of Generated Keypairs
It is sometimes claimed that private keys generated by Shallot are less secure than those generated by Tor. This is false. Although Shallot generates a keypair with an unusually large public exponent e, it performs all of the sanity checks specified by PKCS #1 v2.1 (directly in sane_key), and then performs all of the sanity checks that Tor does when it generates an RSA keypair (by calling the OpenSSL function RSA_check_key).
Performance
characters |
time to generate (approx.) |
1 |
less than 1 second |
2 |
less than 1 second |
3 |
less than 1 second |
4 |
2 seconds |
5 |
1 minute |
6 |
30 minutes |
7 |
1 day |
8 |
25 days |
9 |
2.5 years |
10 |
40 years |
11 |
640 years |
12 |
10 millenia |
13 |
160 millenia |
14 |
2.6 million years |
A History of Shallot
Shallot has a long history in Onion Land. In its original incarnation, Shallot was originally written by a mysterious Onion Lander called Bebop, who created its predecessor, onionhash-0.0.1, at some unknown time in the distant past. That quickly(?) evolved into onionhash 0.0.2 and 0.0.3, until Bebop and Bebop’s New Home in Onionspace mysteriously vanished. At this point, it was picked up by `Orum, who gave Shallot its current name, and went through three versions until `Orum’s site, hangman - hidden (in plain) site, went down. I (katmagic) got Shallot’s sources from Tas’s site and put them into a Git repository. I made a few modifications, wrote a new README, and put the whole thing up on GitHub for all to see.