I had a bit of a long break after Easter, and today is Australia's ANZAC day holiday so I thought I would post a non-Linux technology related topic. To be honest I was unsure of what to write about until I saw a tweet this morning from @Pogonina who I'm sure you'll all be aware is WGM Natalia Pogonina. She wrote:
The only drawback of having multiple sophisticated passwords is you might sometimes forget which one you are using where...
Well to respond to that I will write:
The only drawback of having one unsophisticated password is that someone will eventually get it from you...
There are of course other drawbacks to having someone else guess or crack your one and only password -- once they have your facebook password, your twitter password, your internet banking password, your email password, then to all intents and purposes, as far as the internet is concerned, they are you. It's certainly happened to more than one person I know (including at least one very technically capable person) -- someone guessed or cracked their yahoo email password, and next thing their facebook account, twitter account, everything, was all taken over. We got some very interesting emails from the cracker -- asking us to send money to an account on the other side of the planet -- which quickly alerted everyone to the problem.
There are now quite popular "fusking" programs (called "fuskers" for short) that can be found on "hacker" web boards and other such places that help people crack into your facebook account or other online accounts -- online photo sharing sites seem to be popular for that. Perhaps they are looking for that photo you probably shouldn't have taken of yourself while a little drunk, to spread online for a bit of fun. Perhaps they are really after your banking details so they can steal money. Perhaps something even more nefarious.
So what to do about this?
This article comes from another technology blog post a few years back, but since the people here on chess.com probably already have some of the same issues, I'll repeat the advice here.
First, the simple rules.
Rule 1. The people trying to hack your accounts are either l33t h4x0rs (rarely) or pimple-faced geeks (PFGs) with nothing better to do. The PFGs are in fact the most common type of crackers -- they are just in it for a bit of fun. They are looking for an easy ride. They are lazy, and generally speaking don't want to cause a major incident by identity theft. They may be after a few dollars from your bank account, but mostly they are after a bit of fun.
Rule 2. Most people have passwords that are pretty easy to guess. It's either the same as their login name, or it's the same with a few numbers, or it's "password123", or it can be figured out by looking at their on line profile.
Rule 3. Catch one, catch them all. Most people have the same password for their facebook account as their chess.com account as their gmail account as their internet banking. Either that or add or remove a few numbers from the end and you have them all.
Rule 4. Most people who don't fall into rule 2 or rule 3 have a complex and difficult to remember password that is written on a yellow sticky note next to, or under, their keyboards.
Rule 5. People who don't fall into rules 2, 3, or 4 make life hard for the PFGs and they will go elsewhere looking for fun. See rule 1.
So here's what to do.
Step 1. Get hold of a decent password safe program. There are many of them about, and most of them are free. The one I use is called KeePass, and it can be found here: http://keepass.info/ There is a Linux version that is compatible with KeePass version 1 files, which is here: http://www.keepassx.org/ The thing I like about it is that it's free, and it can be obtained in a "portable" edition that can be copied onto and run from a USB stick. In fact it's not that hard to compile the Linux version statically, so that it can also be run from a USB stick.
Preferably, use a free one. This is not an endorsement of KeePass as a product, but free is the way to go. Whatever you do, don't use one where the source code can't be obtained, or one that says "we have a fantastic proprietary encryption algorithm that's all our own that nobody else knows about so it's ultra safe". That is BS. The best encryption algorithm to use is AES, preferably in the 256 bit variant. The US government uses this algorithm for all of its defence needs and mathematicians all over the globe have been studying the algorithm for years and failed to find any faults. The worst algorithms to use are the secret and proprietary ones, because they haven't been scrutinised by hundreds of mathematicians, and nobody knows if there are faults or not, or what those faults are. The source code and mathematics behind AES are publically available, which makes it more secure.
Step 2. Go buy a USB stick. Doesn't have to be big. Get one with a swivel, that has a small loop on the swivel so that it can be stuck on your keyring. Yes, that keyring, the one you keep your house keys on. This is going to be your "internet" key, and you should keep it safe just like your house keys. Fetch and install KeePass or KeePassX or whatever onto the USB stick. Make a folder on the USB stick and call it something like "holiday snaps". Copy some of the most boring holiday photos you can find into the folder, preferably the ones of Uncle Ernie when he got drunk at your sister's 21st and felt up the cocktail waitress. In addition to those holiday snaps, create your password safe file (KeePass calls this a KDB file but you don't have to give it a .kdb extension, in fact you can call it ernie_001.jpg. This will confuse your JPEG viewer but won't bother KeePass.
Step 3. Think of one password that you will never forget. That's going to be the password to your KDB file.
Step 4. Use KeePass or your favourite program to generate new, random passwords to all of your on line applications. You want a different password for each app, so your facebook password and your chess.com password and your internet banking password will all be different. What size password you use may vary from place to place, e.g. some require a minimum of 8 and a maximum of 32 or something like that. You want something that is long and random, which will scare away the PFGs and their fusking programs. 16 or so randomly generated characters of upper & lower case plus some numbers is usually pretty good.
Don't try to think of different clever passwords for each application. Use the program to generate a random one, within the constraints allowed by the application. There might be something in your thinking that allows a hacker to guess what password you might choose, but nobody can guess what happens when you push the "Generate" button to create a random one.
The other simple rules
This is not a tutorial about how to use KeePass. It's a pretty simple program, really, and there are many others like it. There are on line manuals and tutorials and stuff for them, it's not rocket science.
Save your KDB file back to your USB stick. Carry the USB stick with you. Don't copy the KDB files to your hard disk, and don't write a copy of your password onto the USB stick (or on a yellow sticky note on your keyboard).
Make a backup copy of the USB stick every now and again (get a second USB stick) and give it to your mother, sister, aunt or some other trusted family member (probably not Uncle Ernie, especially if he's prone to getting drunk and feeling up cocktail waitresses). Don't tell the person who you give the USB stick to what it's for, or what's on it, or what the password is. If you like, make a copy of the password, put it in a sealed envelope with the name of the KDB file and give it to your solicitor, to be opened in the case of your accidental or untimely death.
Don't write the passwords down somewhere else. It's an easy enough job to cut and paste the passwords from the KeePass program into your web browser or whatever other program you use that needs the passwords (your work's VPN client software for example). KeePass has a special mechanism where it will put the password into the clipboard so you can copy and paste it for 10 seconds or so, and then erase it.
Anyway, @Pogonina, I hope that answers your question, and helps everyone else a bit too.