A couple of people onthe freenode.net IRC-network asked today the same question: How to get access to freenode using TOR according to their instructions. The real problem is not the methode, but the way how to get to that point. I decided to create a small step-by-step howto.
To gain access to Freenode using TOR the Freenode-staff wants TOR-users to use their hidden service which can only be accessed after creating an account there. To get an account you need to have a GPG keypair. I’ll describe step by step how to create a keypair.
I got one problem with this website: It is notoriously clipping all pictures to a certain width – if the screenshot isn’t clearly visible, vlick on it to see the complete screenshot. Sorry for that.
Step 1: Download GnuPG for Windows and install it
First, you need to grab the GnuPG software: ftp://ftp.gnupg.org/gcrypt/binary/gnupg-w32cli-1.4.5.exe
After downloading it, open the file and follow the installation instructions, clicking next, next next, peck, peck (“even a chicken can install Debian”). When asked for the path, accept the default or note down where you installed it:
Step 2: Create a GPG keypair on the Windows-commandline
Now we’re about to create a keypair. This is quite simple, but involves a bit of typing:
- Press Start
- Choose “Run”
- Type cmd
After pressing “OK”, the Windows commandline appears. There you have to change to the correct directory through typing
"cd C:\Program Files\GNU\GnuPG". If you did it correctly, typing the command “cd” should yield the result
Voilá! Now it’s time to create the keypair. To do this, you enter the command
"gpg --gen-key" and follow the instructions step-by-step, accepting the defaults, choosing a reasonably secure passphrase to encrypt your private key. Note note or better remember your passphrase, you’ll need it:
Now you created a keypair which is appropriate to use for the Freenode IRC-network. Do not close that window.
Step 3: Create a signed password hash inside the IRC-server
I assume that you already have access to the Freenode-network and that you just want to do “the real thing”. Now, inside your IRC-client, create a hash with the command
"/quote makepass <password>" where
<password> is your choosen password. I take
"schwubbdiwupp" as an example:
Note down the complete hash, whith all dollar- and slash-signs. Even better, copy it to the Windows Clipboard, you need it in the next step.
Step 4: Get Freenode’s key from the keyserver
Since you need to encrypt to the Freenode-staff and sign the message with your key, you need the GPG-key opf the freenode-staff. Just download it with the command:
"gpg --keyserver pgpkeys.pca.dfn.de --recv-keys 035D6B1D"
Step 5: Sign your nickname with the hash
The next step signs the hash you just created and your nickname with the GPG private key you created in step 2. Go back to the window where GPG was and enter the following command, replacing my nickname
"yalla" and my has
"$1$8HQdxmzs$MiTG6Spl1HPb5iB4iIdmb/" with your hash:
echo "yalla $1$8HQdxmzs$MiTG6Spl1HPb5iB4iIdmb/" | gpg --gnupg -sea -r 035D6B1D"
It will first ask you for the passphrase you used in step 2 to create your keypair; enter it. Next it will tell you something like: “It is NOT certain that the key belongs to the person named in the user ID. If you *really* know what you are doing, you may answer the next question with yes.” – you can safely say “yes” here:
Step 6, prepare email to Freenode:
Copy everything starting from
"-----BEGING PGP MESSAGE-----" until
"-----END PGP MESSAGE-----" to a file and save it to a safe location. This is the encrypted message with your nickname and hash which you will be sending to Freenode; but you also have to include your public key. This is done by typing the command
"gpg --armor --export firstname.lastname@example.org":
Copy and paste this output to a safe location.
Step 7, last step:
No write an email to the Freenode-staff including your public key and encrypted message you’ve created in step 5 and 6.
OK, this is the hard way to do it, but it’s the prefered way. Hope that helps.
This work is licensed under a Creative Commons Attribution 2.5 License.