Posterous theme by Cory Watilo

Filed under: security

Utilizing a VPN or SSH tunnel to secure your data on a public hotspot

Recently I had a client call me in a panic asking what to do about their hacked Yahoo account. Of course, the first thing anyone should do is CHANGE YOUR PASSWORD ASAP! Assuming the hacker hasn't already changed it and locked you out of your own account, changing the password puts you back in control. But without knowing how the hacker gained access, they may just hack it again.

After a short discussion we discovered that the trouble started when my client had connected their Android phone to a public hotspot to check email. This was done through an unsecure connection. No password was required to access the wifi connection, and no HTTPS was used to access the email.

A little history: Last year a programmer named Eric Butler released a program, for free download, designed to illustrate how easily the login information of users on public hotspots can be stolen. This program is widely available now. Many people have downloaded and tried it out it because they are curious about what it can do, or want to take measures to safeguard their data. But others are out to do harm or take advantage of having easy access to your facebook, twitter, yahoo, etc accounts.

See:
en.wikipedia.org/wiki/Firesheep
mashable.com/2010/10/28/firesheep-vpns

So I set out to find a way of easily and inexpensively protecting myself and anyone interested against identity theft. I like the convenience that public hotspots provide, so I still want to use them, but do so in a secure and easy to use way.

The method I chose is the tried and true do-it-yourself project. It was not easy, but the knowledge I gained in the process is invaluable. After a small investment in hardware (~$50) I now have a system in place that I can use indefinitely.

What are the general steps? Note, this is not intended to be a step by step guide. These are just some of the important discoveries I made. Contact me if you have questions.
  1. Purchase one of the routers on this list: http://tomatousb.org/doc:build-types 
    I chose the WRT54GL v1.1 since it's the one used in most online guides. Though there are nicer, newer, and faster routers with more internal flash memory.
  2. Flash the tomato firmware onto the router, replacing the stock firmware and adding the needed functionality for protecting our Internet traffic i.e. SSH and VPN. I chose the newer Victek firmware, but tomatousb will work too. http://victek.is-a-geek.com/tomato.html
  3. Next I connected the WAN port on my shiny new tomato router to one of the available LAN ports on my existing (EnGenius) router. Like many newer routers, the EnGenius has a feature for assigning DHCP reservations. It's nice because you can name your devices and prevent their IP address from changing. Then it's easier to setup port forwarding of necessary Internet traffic related to SSL and VPN tunnels.
  4. Then I utilized a cool little program called PuttyGen to generate the SSH key pairs using RSA 1024-bit encryption. I did this for each of my devices that I might want to connect to a public hotspot like my Android phone and my laptop. The public keys go into the tomato router and the private keys get assigned to the remote device. There's also a nice little conversion tool in PuttyGen to convert your private Putty key to the OpenSSH standard for use with Android phone apps like SSH Tunnel.
  5. For my laptop I used the plain Putty app. What's interesting is how it establishes the SSH tunnel using the port I chose to forward earlier from my EnGenius router to the tomato router for SSH traffic, but then also creates a "source port" for use by other programs on your computer like Firefox or Chrome. 127.0.0.1 and the source port are used in the proxy settings of the browsers to utilize this SSH tunnel that Putty has established.
  6. If all you care about is protecting your web browser traffic, an SSH tunnel is all that's needed. But for encrypting everything else that might communicate over the public hotspot, a VPN connection will handle that. I chose OpenVPN since it works well with the tomato firmware and is completely free. I followed this nice howto guide through the first seven bullets:
    http://www.openvpn.net/index.php/open-source/documentation/howto.html 
    After putting the proper key files into the tomato router and also each remote device, the VPN connection worked like a charm! It was a lot of fun to see it connect and work.
  7. On Android I found two nice apps called OpenVPN Installer and OpenVPN Settings that made it much easier to establish the VPN connection. Once I found the right tun.ko file to use for my Liquid Smooth ROM (version 3.2), and utilizing Android Terminal Emulator to create symlinks in two places, it worked! 
  8. Next I learned how to configure the OpenVPN connection on my laptop to use the SSH tunnel through Putty. HA! I'd like to see a would-be hacker try to steal my data now. :P

Minimalist Gmail extension for Google Chrome makes Gmail even better!

I've been using the Minimalist Gmail extension for a couple weeks now and am loving it! It's nice to have control over every little piece of Gmail so I can decide if I want to see it or not.

I use the Minimalist Gmail extension in conjunction with Adblock Plus to get rid of ads in Gmail, which is so much nicer. 

Finally, I installed the Rapportive extension and it replaces the sidebar ads with useful Facebook, LinkedIn, and Twitter updates from people who send me emails. Nice!

Here are my current Minimalist Gmail settings which you can copy to import into your extension:

Click here to download:
Keegoid_Minimalist_Gmail.pdf (94 KB)
(download)

YubiKey with TrueCrypt and LastPass

If you've used TrueCrypt to create an encrypted volume on your computer, you know how annoying it can be to have to remember a strong password. And if you didn't use a strong password to create the encrypted volume, why even bother?

YubiKey makes it easy to quickly mount the TrueCrypt volume using a very secure password that I could never remember. Also, keylogging programs won't be able to record your keystrokes if you don't have to press any keys! The YubiKey is particularly useful if you have to use a public or untrusted computer.

YubiKey also works well with LastPass and many other services like Google Apps.

LastPass

If after reading about Twitter being hacked you realize that you use the same password on Twitter that you use everywhere else, and now you're starting to feel a bit queasy at the prospect of changing passwords on all the sites you use to something else you can remember, only to have it happen all over again when another site gets hacked...try LastPass, it's awesome!

I just started using it, but already I can see how it will make my life easier and more secure. For example, you don't even have to come up with any new passwords, it generates a different "strong" password for each site so you aren't risking everything if one of the sites you use gets hacked.

They just released a Google Chrome Extension! It also works with pretty much everything else including Windows, Mac, Linux, Internet Explorer, Firefox, Chrome, iPhone, Android, Blackberry, Windows Phone, Symbian, USB keys, and even Windows 7 64-bit!