EXP: Geekbuzz - OMGHAX: Bruteforcing your Box

Geekbuzz - OMGHAX: Bruteforcing your Box

You may think you've outsmarted 1337 h4x0rz with your password. Probably not.

Watch Video

Awesome work.
A show introducing technical backgrounds to the mainstream-gaming-audience is a much needed one.

If you still need some ideas for future topics, maybe you could do an intro to cryptography, now more important than ever before.
Explaining how you can uniquely sign data when everything is just ones and zeroes and can be copied over and over.

I look forward to watching more episodes of this format.

That was quite interesting. I look forward to seeing how this show develops on the escapist:)

I'm afraid you're probably going to have to re-do this episode:

http://arstechnica.com/security/2013/05/how-crackers-make-minced-meat-out-of-your-passwords/

The "correct horse battery staple" technique has already been folded in to the hash brute-forcers. The end of the article shows some strong-looking passwords that fell to brute-forcing thanks to fast GPUs and experienced crackers who have developed a feel for how people create passwords.

The above article pretty much convinced me that the only way to be (more) secure is to take a handful of easily-remembered passwords and run them through a one-way hashing algorithm, the result of which is the password you submit to the site. This approach has several advantages:

  • Each password is site-specific. If it gets brute-forced, it is usable nowhere else.
  • Nothing is stored. The password you submit to the site is the result of a hashing routine, and the input is something you remember. Thus, if your machine gets compromised or stolen, the attackers gain nothing.
  • All processing is local. You're not using a proxy site or cross-site scripting or third-party cookies to store or forward passwords. The whole hashing process runs on your machine and nowhere else.

There are a few browser plugins that do this. The one I'm investigating at the moment is PasswordMaker, which has been ported to a number of platforms.

That was an interesting video. Thanks for the mathematics.

I have already starting thinking about the issue of "safe passwords" since the big PSN break some time ago. Fortunately I was not affected by it, but I started to ask myself: What happens if one of my passwords is stolen? During that time this would have meant that somebody had FULL access to a lot of websites I used.
Now I have a lot of passwords and I have sometimes a problem to remember a rarely used site's password... But it works :) I made up my own "algorythm" to form passwords, but there is always a lot of "now for something random" in them to make it irregular... At least I hope it does this :D

Nicely done. If you are taking suggestions for future topics, I would love a Sesame Street version of image (JPG) or/and video (DivX) compression theory. It's not for me. It's..um...for a friend of mine.

So hackers are bright folks and have "smartly initiated" cracking tools to crack passwords that everyone feels are inherently clever and indecipherable. And after reading ewhac's link, I see that the level of protective hashing of your password is up to the website creating the underlying hash. Blech.

Help me with one last bit...
As I understand it, cracking a single password is difficult. But, with an array of password hashes created from the same algorithm, the hackers can reverse engineer the hashing process for each password length. They put in common passwords and run that through standard "cookie cutter" hashing algorithms until they find a match in the hash data list. Once they nail down the exact processing algorithm, they can keep trying random words and phrases to generate the other password hash results in the stored list. (You can't work backwards, but with enough processing power you can go forward enough times to find the proper results in a timely fashion.) Is this correct?

So, maybe a better answer is to make up a mnemonic device of a personal sentence and then just take the first letter out of each word. The password is more easily remembered by you. But, it is simply gibberish to hackers.
TPISGTHBIKWIM (This password is simply gibberish to hackers, but I know what it means.)

Clankenbeard:
Help me with one last bit...
As I understand it, cracking a single password is difficult. But, with an array of password hashes created from the same algorithm, the hackers can reverse engineer the hashing process for each password length. They put in common passwords and run that through standard "cookie cutter" hashing algorithms until they find a match in the hash data list. Once they nail down the exact processing algorithm, they can keep trying random words and phrases to generate the other password hash results in the stored list. (You can't work backwards, but with enough processing power you can go forward enough times to find the proper results in a timely fashion.) Is this correct?

Pretty much. Hashing algorithms are well-defined, well-tested, and peer-reviewed -- almost no one kluges one together on their own because they have lots of subtleties and are difficult to get right. GPUs can execute hashing routines very fast. So, jam billions of plaintext guesses through the hashing routine, and see which outputs match the hashes you stole.

So, maybe a better answer is to make up a mnemonic device of a personal sentence and then just take the first letter out of each word. The password is more easily remembered by you. But, it is simply gibberish to hackers.
TPISGTHBIKWIM (This password is simply gibberish to hackers, but I know what it means.)

Hmm, 13 characters, all upper case, so that's a total bit length of (13 chars * 5 bits/char) == 65 bits. Rather short, actually. Using statistical rules of English grammar, you could probably shorten the search space even further...

The nature of passwords is even worse than what was painted. Even a long password is still easily broken, usually just stolen. Two factor authentication is far better than what's implemented right now. It needs to be that stealing the password, which is what's usually done, isn't enough. Password cracking gets easier with time, and may hit a point of utter simplicity. Lets hope that doesn't come into being, but lets not gamble on it not.

Assume all passwords are already stolen.

ewhac:
Hmm, 13 characters, all upper case, so that's a total bit length of (13 chars * 5 bits/char) == 65 bits. Rather short, actually. Using statistical rules of English grammar, you could probably shorten the search space even further...

Point taken. I guess I never made the logical leap that a hacker would run a batch check for "All capital letters only passwords of 13 character length". But that does seem to be a very logical assumption now that I see it in print. I have to stop thinking of the password before hashing as something recognizable--no one is looking at these with human eyes during the cracking process. Once the process uses the weakest "tattletail" passwords to get the hashing algorithm from the stored hashed array, the rest is just pure power crunching. At that point they can scroll through every possible combination of ASCII characters in growing password lengths to get them all. It is simply time and computing power. Once they have the hash algorithm identified, your only protection is password length.

So I should always go long, hoping that they will be satisfied with getting 90% of them and not wasting their time on the last 10% because of time constraints. And I should keep my fingers crossed that the site doing the hashing is using as many recursive iterations as possible to massage my password into the most convoluted hash possible. Even then, it is still just a matter of time for a bright hacker with a big enough sampling of the hashed data.

Huh... I wonder if by first choosing 4 simple words, rearrange the lettering so that certain letters are now numbers, and then submit that as a password would either increase or decrease the chances of being "hacked" through this simple algorithm...

If it increases, then I've been giving out bad advice IRL... If it decreases, then I'm only slightly less fucked than I was a few seconds ago, when I changed my password coincidentally before watching this video...

Good video, and exactly right.

Every time I try to do anything on the web I am forced to put in some formulaic BS that I only have a hope of remembering if it is the same for every single website I use.

I used to mix it up, but too often you end up not remember which username going with which password, getting it wrong 3 times as you cycle through your password and end up getting locked out, then having to phone up and speak to someone, so much timewasting BS.

I've given a lot of thought to this, and I think this system is the best in almost every conceivable way:

  1. Arbitrarily choose a sequence of characters. It can be chosen at random, or be the first letter of every word in a phrase, or something, as long as the pattern is impossible to guess and has as many characters as possible. This is a great password, but is almost impossible to remember.
  2. In order to remember your password, it needs to be recorded. But it must be recorded in a way that is impossible for others to read. Thus you should use one-time pad encryption. This is really simple and easy to do, yet is mathematically impossible to break because your OTP could be any sequence of numbers from -infinity to infinity.
  3. Come up with a method for choosing a new one-time pad as needed that you can easily recall. For example, when signing up to a site, you could put a number on the end of your username which corresponds to the page of a certain book, and your OTP is the first sentence on that page.
  4. Convert your arbitrarily chosen password and your OTP to numbers, and then add them together. Then record the result. To get your password back, simply figure out what your OTP was and subtract it from the recorded sequence.
  5. The first few times you will need to do this, but after a few times entering it in, you'll memorise the password. Plus if you ever do forget it, you can recover it easily as long as you keep the encrypted record around.

This is a near-perfect system because a) the only thing you actually have to remember is how you generated your OTP, and b) it is mathematically impossible to break the encryption. All you have to worry about then is coming up with a secure password, but with this system it could be a million characters long and you could still recall it. Also you will need to have your record handy at all times, but since it's impossible to decrypt without your OTP (and your OTP is impossible to guess), you could have it taped to the bottom of your monitor with "THIS IS MY PASSWORD" written beneath and it would still be totally secure.

ewhac:
I'm afraid you're probably going to have to re-do this episode:

http://arstechnica.com/security/2013/05/how-crackers-make-minced-meat-out-of-your-passwords/
The "correct horse battery staple" technique has already been folded in to the hash brute-forcers.

Thanks for linking this brilliant article. (p.s - <3 you arstech)
It's one that I referenced more than once in this video. Can you imagine that entire article in video form? Yikes.

The bottom line is if a hacker really wants to get at you specifically, he/she can in a medley of ways. But the 'correcthorsebatterystaple' is an essential method to practice as your first line of defense.

Don't you worry, I'm going to explain ways soon to be even more protected, including hashing. SOON. ^.^

So... you're my new favorite show on the whole internet.

I kind of wanted to hug you when you pulled out the xkcd comic. :D

ewhac:

There are a few browser plugins that do this. The one I'm investigating at the moment is PasswordMaker, which has been ported to a number of platforms.

I used something like this for a few years, but I felt it left me vulnerable to key loggers. I've been using lastpass with a YubiKey as a second authentication factor since.

NixiePixel:

ewhac:
I'm afraid you're probably going to have to re-do this episode:

http://arstechnica.com/security/2013/05/how-crackers-make-minced-meat-out-of-your-passwords/
The "correct horse battery staple" technique has already been folded in to the hash brute-forcers.

Thanks for linking this brilliant article. (p.s - <3 you arstech)
It's one that I referenced more than once in this video. Can you imagine that entire article in video form? Yikes.

The bottom line is if a hacker really wants to get at you specifically, he/she can in a medley of ways. But the 'correcthorsebatterystaple' is an essential method to practice as your first line of defense.

Don't you worry, I'm going to explain ways soon to be even more protected, including hashing. SOON. ^.^

You might as well add a random separator character between the words, 'correctyhorseybatteryystaple' is another 6 bits of entropy and not any harder to remember.

I love Yubikey - did a Hak5 segment on it a while back. The owner/operator is fierce and she has some pretty badass stuff happening in the way of NFC coming at you. \m/

ewhac:
The above article pretty much convinced me that the only way to be (more) secure is to take a handful of easily-remembered passwords and run them through a one-way hashing algorithm, the result of which is the password you submit to the site. This approach has several advantages:

  • Each password is site-specific. If it gets brute-forced, it is usable nowhere else.
  • Nothing is stored. The password you submit to the site is the result of a hashing routine, and the input is something you remember. Thus, if your machine gets compromised or stolen, the attackers gain nothing.
  • All processing is local. You're not using a proxy site or cross-site scripting or third-party cookies to store or forward passwords. The whole hashing process runs on your machine and nowhere else.

When you say "one-way hashing algorithm", I assume you mean a password key derivation function (such as scrypt, bcrypt or PBKDF2). Just applying a run-of-the-mill hash function to your password barely makes it any harder to guess, since hackers can just as well apply this function to each of their guesses while brute-forcing. Applications such as hashcat are specifically designed to circumvent crappy password hashing schemes (which are extremely common) and are really good at that.

In fact, hash functions are deterministic, and therefore do not add any entropy to your password, unless the attacker is completely unaware of the hashing scheme used and does not guess it correctly (relying on this is a form of "security through obscurity", which is generally not a good idea). If the attacker knows about (or can guess) the hash function used, guessing some-hash-function(some-password) takes just as many attempts as guessing some-password.

Those key derivation functions I mentioned, however, are a special kind of hash function that are intentionally designed in such a way that they take a lot of time to compute. While they do not increase the number of guesses a hacker has to do, they do make each individual guess take up a lot more time. Additionally, a method called "salting" is employed to prevent hackers from using particular techniques to guess passwords from a large group of users en masse (for instance, after hacking a database). Instead, they have to brute-force each user's password individually.

Proper password hashing is very important when operating a web server, for example, because it can prevent user passwords becoming known after a database breach. Unfortunately, most programmers have no idea about best practices and roll their own password hashing schemes which are trivial to circumvent.

The same seems to hold for that PasswordMaker tool you mentioned. Judging from their FAQ, the creators are completely unaware of the problems I mentioned before. Furthermore, they also seem to only have a slight understanding of some aspects of cryptography but apply them in a completely wrong manner, resulting in a terribly insecure product. It might still be effective if hackers don't bother to adjust their brute-force routines specifically for this, but if they would (which may be the case if this tool becomes more widely used) they can easily circumvent it. I would definitely recommend not to use PasswordMaker.

 

Reply to Thread

Log in or Register to Comment
Have an account? Login below:
With Facebook:Login With Facebook
or
Username:  
Password:  
  
Not registered? To sign up for an account with The Escapist:
Register With Facebook
Register With Facebook
or
Register for a free account here