Why use strong passwords?

Why is there such an emphasis on strong passwords?
My understanding is that brute force or dictionary attacks are only possible when the attacker can test a large number of passwords in a reasonable amount of time. Modern Unix systems do not expose the encrypted passwords and have limits on how many passwords can be attempted so how can a weak password be exploited?

Al

One reason is that if someone steals the password file with all the encrypted passwords, it is easy to crack weak passwords. So, imagine a business with 20,000 customers and someone steals the password file. It would be easy for a criminal to run a brute force exploit (attack) against the encrypted passwords in the password file, and then subsequently compromise the accounts.

Also because many users pick really, really, really easy passwords, making a brute force search downright practical.

Picking easy passwords allows the use of a "common password dictionary", however, even this method requires the testing be done on the target system, as not all systems use the same algorithm or seed.
A 'simple' password of 8 characters made up of only lowercase letters and digits allows 2821109907456 possibilities, which at 1000 possibilities per second still requires 32615 days to test.

According to this quick wikipedia article on password strength (FWIW):

Given these two quotes above, jgt's example goes from 32615 days to test to 0.0116 days to test, or a bit more than 15 minutes (around 17 minutes, I think if my math was right).

Edit: Confirmed 16.79 minutes using a high end desktop computer in 2011 per the wikipedia number in the reference

That only matters when you've swiped someone's shadow file though. If they have to brute-force your login, most systems will slow down failed logins severely.

Well, that is exactly what I said in my first post, that the issue is when someone steals the password file (what ever kind it is), my post was:

And in reality, this is what happens. A password file or database full of passwords (encrypted) are stolen; this can also include encrypted credit card information and other confidential data.

The same is also true for encrypted WIFI keys, which can be stored as encrypted text and then later on, a brute force attack is applied against those passwords; so the exploit is first gathering the data (encrypted text) and later running an attack against the ciphertext.

Even so, you are still left with the problem of determining the seed used on the target system. The same password for the same user on the same system does not produce the same encrypted key each time the password is changed.

The seed is not a problem, it is just more bits to brute force, for the most part, and it does not take a cryptographic genius to run brute force attacks against passwords with salt.

Actually, I recall from my old days in Internet security that the salt / seeds can actually be exploited and some actually weaken the crypto when many examples of the encrypted data exist.

For example, a large passwd file has many examples of the same crypt algorithm running against the same plaintext, so the salt can actually weaken the crypto, in some cases.

But, it's been a while since it been years since I did this deep level security.

The bottom line is that crypto is math and brute force attacks against cipertext is easy in the world of modern computing. The most important thing is to use the longest key space possible and modern algorithms designed to be strong against modern computing power.

Here is one quick reference about salt:

Frankly, many years ago, I worked on a project to help NIST in the US evaluate the AES algorithm. I even wrote a paper on the topic; but it was not published (public).

Crypto is math, and computing power... and the state of the art changes as computing power changes. What was a great crypto algorithm for the processing power of 10 years ago is just weak "history" today, and the same is true for the crypto today, when we fast forward 10 or more years.

Edit: Anyway, this is mostly "abstract" because when discussing cryptography, we should really not speak in sweeping generalizations; but focus on the exact algorithms, hash functions, length of keys, salt, method of storing both cryptographics hashes and salt, etc.

Passwords are no longer stored in /etc/passwd. If you have access to /etc/shadow, then you already have root access to the target system anyway, either through the root password, or physical access.

Yes, I am using the term "password file" in the general since, as we have not discussed a specific system, algorithm, configuration, security policy, etc.

And, we are getting far off topic in my view; the original poster asked why there is a requirement for strong passwords versus weak ones; not for a discussion of every possible argument pro and con for security.

It's not that hard for an experienced attacker to gain root access; but that is not a topic for this thread. In fact, as we know, we can gain root access for most any computer we have physical access to.

Let's not go down that path.. thanks. The path just gets further and further off topic of the question asked by the original poster.

In case anyone needs help with choosing a strong password: xkcd: Password Strength

Regards,
Alister

1 Like

I found this article; it has changed some of my opinions, and has a good explanation of password cracking techniques. GeodSoft How-To: Cracking Passwords Techniques

1 Like