The problem with something we know is that as soon as someone else knows it... it's not a secret anymore, and not very useful for security purposes. When we add in something we have to get 2 factors of authentication it's no longer just about what we know, but what we have. Then, it's not as terrible if someone knows what we know, because they don't have what we have, so knowing what they know doesn't help them as much, unless of course they end up having what we have, in which case we better hope that they also don't know what we know, because then they'll have what we have AND know what we know, causing people like myself rant in long run-on sentences about having and knowing things that people shouldn't have or know.
So the key with something we have is that we're often able to secure physical 'things' much better than we can secure knowledge. Securing knowledge is tough, because that knowledge needs to be shared with at least one other person... the system we want to access. So even though we might be quite good at keeping secrets, like our login passwords, the systems that we share those secrets with are often not as good as humans at keeping secrets. Usually they try hard, but too often they're the target of knowledge thieves who want nothing more than to force a system to reveal all of it's possible knowledge (ie. passwords) for their own personal gain.
However, things are a whole different story. Things are physical, and since the dawn of man, we've learned how to keep track of physical things really, really well. This is why many security experts tell people that it's OK to go ahead and write down their passwords on a little slip of paper in their wallets. We've learned how to keep track of our wallets since we were young, and we're quite aware of how to protect them physically.
So what are these things we have for accessing systems? In some cases, it could be a bio-metric system, like a fingerprint. Since our fingers are always attached to us (or so we hope), it's pretty easy to secure this 'thing'. If someone finds out your password to a system, but they also need your fingerprint to access it... well, they've just made their job close to impossible. However, fingerprints and retina scanners all require special hardware hooked up to our machines, so a much more common technique is a number generating device.
Many people know these devices by their brand name "SecureID", but the basic principle is the same. You are given a little token that has an LCD screen on it with sets of numbers that change every 60 seconds (smartphone apps that do the same thing are becoming common too). The master system is synchronized with your device, and it knows at all times what your number is. However, the system is never set up to tell anyone what a number is at any given time. It can just answer 'Yes' or 'No'. So a login situation looks like this:
- A user types in their username and password in to a login system.
- The login system asks them what their current number code is.
- The login system then makes a request to a security system and asks "Is Mr X's generated number 12345?"
- The security system then says either yes or no.
- If the answer is 'no' then the login attempt is denied and the user has to try again.
So the time was never better to start thinking more about 2-factor authentication. As more and more of our life goes online, it's important to take all the right steps to make sure that you're not the target of a hack. 2-factor authentication is a great tool in the average users toolbox to help keep you safe online.