A poll, aimed in particular at people who think they understand the technologies around password cracking. Assume that there is at least one password that you need to be strong and need to remember & type not-infrequently. How many characters is enough for you to feel comfortable in 2024? Assume any char you can type easily is available.
[May need a follow-up poll if the majority is at >=12]
[Boost if you’re interested in the result]

#infosec

9
3.3%
10
6.2%
11
2.2%
>=12
88.3%
Poll ended at .

@timbray Hive Systems has a pretty neat table showing password cracking of bcrypt

http://www.hivesystems.com/library
password: cybersecurityforeveryone

@gigantos @timbray Table needs several more rows to see where my passwords fall.   

(They're one character. They're pass-characters.)

@gigantos @timbray That table assumes that (the password cracker assumes that) each password character is randomly chosen from the available character set, which is not the case for most passwords *or* password crackers. Dates are common, "1" at the end is common, capitalizing the first letter is common, etc.

For example: https://www.openwall.com/john/doc/MODES.shtml "this mode deals with trigraph frequencies, separately for each character position and for each password length" (and that's after the wordlist-mangling modes, which are often successful). I assume proprietary password crackers have even fancier modes.

John the Ripper - cracking modes

@gigantos @timbray That Hive Systems tables doesn't say how many workfactor rounds their Bcrypt table is for. We can increase rounds as technology advances. (Which I'm doing this week.) Also, I lock out any access after just a few failed attempts, and they're locked out for minutes. You couldn't get more than 2000 attempts in a day from anywhere in the world if you tried. You'd DDoS the server or burn it up calculating Bcrypt hashes before anything else happens.
@dblume @gigantos The conventional threat model is the hashed form of the password has been stolen and can be worked on offline.

@timbray @gigantos Ah gotcha... In my case neither the password nor its hash are stored anywhere.

User enters a password, a bcrypt hash is generated, which is used as the key to attempt to AES decrypt a password vault file. And either the hash worked or it didn't. No storing anything except an AES encrypted file per user.

Does that make sense? It's described here: https://david.dlma.com/blog/internet-security

Internet Security

David Blume's personal blog.

David's Place
@dblume @timbray @gigantos so, instead of cracking several hashes in one file (/etc/shadow or equivalent), the attacker needs to crack several files. The result is the hashed password, so it needs to crack that too, so it's only duplicating the cracking effort? Sounds like you could achieve the same with more hashing rounds?

@mdione @dblume @timbray The way I understand it, this is on some level identical to /etc/shadow or a database with bcrypt. The attacker still needs to handle one user at the time, and no work can be shared between each user. As you say, you can achieve a similar effect by using more rounds.

One difference though is the size of the data you need to exfiltrate.

@gigantos @dblume @timbray ... if the vault files are big enough, right.

@mdione @gigantos @timbray Yep, but in practice the vaults are usually less than a few MB big, so not very big. And there are never many at one install, it intentionally doesn't scale to be large enough for any install to be a tasty target.

A goal was less "surface" for attack. All there is to get would be a few encrypted vaults. I liked the idea of not storing hashes.

There's a README that illustrates the design here: https://github.com/dblume/tiny-vault

GitHub - dblume/tiny-vault: A tiny online password vault

A tiny online password vault. Contribute to dblume/tiny-vault development by creating an account on GitHub.

GitHub
@gigantos @timbray Heh, nice. The most important password of mine is 18 characters long, it's lowercase letters and it's simply a sentence of words. Even with this knowledge: Good luck 🙃
@MichalBryxi @gigantos @timbray correct horse battery staple
@binford2k @gigantos @timbray Yikes ... Gotta be back in a minute ... 😁
@MichalBryxi @gigantos @timbray it strikes me that this would make an /excellent/ Halloween costume for like… three people at our party to get

@gigantos @timbray

So many implicit assumptions... Here's a couple:

- Is this the hardware hackers use? These days hackers spin up GPUs in the cloud, so the times are meaningless

- If my password is "1Monkey$Wrench" it is 14 characters long and contains lower, upper, numbers and specials. According to this table it should take 805bn years and falls within the "good password" criteria. However, because it's made of English words I bet it would take... many orders of magnitude less than that.

@arikb @timbray this table is for fully random passwords, if you don't use a cryptographic random generator for the letters, it will be less hard to break than what is said here.

Also, it is for hardware that is relatively cheaply available for rent (12x RTX4090), if you are determined.

And it is for standard good practice bcrypt.

@gigantos @timbray Considering that the table covers passwords as short as 4 characters, I would say it's hinting at self selected PIN / passwords. I know no password manager that will generate random passwords shorter than 12 characters by default.

And as for the hardware, you can have as many GPUs as you want for the right amount of money by using a cloud computing provider. The speed of cracking is therefore directly proportional to the amount of money invested.