When they don't allow certain characters in the password, it makes you wonder if they are not hashing the passwords.
post
That and maximum character limits of 12-20 are insane to me
How large is the file a password is stored on? Can't be more than a few kB. You could probably store the plaintext passwords of literally every Facebook account on one reasonably sized hard disk. There's no reason we couldn't use 500-character passwords if we wanted. A handful of my passwords are over 1,000 characters.
I'd reckon extreme length is much more effective for security than special characters. I'd reckon
1TimewhenIwasatBandCamp,Istuckafluteinmyflutecase
is significantly more secure than any password 8 characters in length for any aspiring flautist.
If the password is hashed (it should), it'd always be the same length, and original's length would only impact how long hashing would take
If you hash a password it'll be a couple dozen base64 characters. All hashes should be the same length.
One of the most egregious cases of password length requirements I’ve ever experienced was for the Shinkansen booking website. Now, I acknowledge that it was probably possible to enter hiragana, katakana, or kanji, but for everyone that depends on the Latin alphabet the possible entropy for the password would be abysmal. The maximum password length is
Tap for spoiler
8
One of the big four banks in Australia (Westpac) used to limit you to a password of EXACTLY 6 characters, case insensitive. Another one (NAB) required 6 to 8 characters, case insensitive, with NO special characters.
Thankfully they've both changed these limits.
NAB no longer has a length limit, and they're actually planning on completely removing passwords in favour of passkeys. Westpac allow up to 30 characters now.
Haha, exactly 6 is crazy! I can’t imagine how that even works. Banks in the US also have been lacking on that front.
"Tell me you're not sanitizing your inputs without telling me you're not sanitizing your inputs."
Neither sanitizing nor even hashing. Hashes don't care what you put in.
That depends on how you are hashing. If you are doing something like 'os.shell("echo {password} | sha512sum")', you still have to be worried about special characters.
I don't know whether to be more scared of the fact that people would do this or that people probably have done this.
I'm no guru, but I know enough SQL Server to know this shouldn't be a big deal to work around.
You get this sort of thing as lesson one in a cyber security course. This is so weak sauce that if they had this on the final exam it would be a joke.
The fact its specifically "" and ";" makes it seem really likely they're worried about SQL injections, meaning they must be using a super insecure SQL library and also sticking the password directly in the SQL query (so definitely no hashing)
It’s also possible those are historically grown requirements they implemented over time without reviewing if older requirements still make sense.
My guess is that it's not a vulnerability but their WAF still flags/blocks it so they don't want people using those characters.
My guess is that it is a vulnerability because it was probably vibe coded
I think even an AI implementation would be smart enough to escape special characters. It's like one line of code, it's not difficult.
Can I take the opportunity to ask a question?
I work at multinational EU company, we run windows/office for the enduser. There are many parallel systems, some running linux or whatever but that’s besides the point
But there was this audit, performed by an external company, at request of the holding (mother company) that revealed unsafe passwords that contained company name in it. According to the auditors that’s a big no no
My question is: how tf do they even find out that the passwords have some specific string in it? Is it not being salted? That would surprise as our IT/network management team is very capable, and relies on windows tools that should be safe to begin
Just how?
My guesses would be that either:
- They conducted an employee survey where someone admitted the company name being a substring of a password they use.
- They used some rudimentary bruteforce methods which matched salted registers or logins (say "Company name123456".)
- Instead they meant that it is possible to create passwords with the company name in it, but transmitted it poorly.
- Some of the passwords are unsalted.
- The passwords are logged somewhere else.
It goes without saying that if they found a vulnerability with the hashing or salting, it should be highlighted on its own, and in any case it wouldn't do damage to ask them directly.
Or a fake phishing company email that asked employees to log in. That would expose employees who were a high security risk as well.
Thanks, it’s probably a combination of the above or even all of them
And like another user shared, they may just be idiots
I just wanted to confirm, there must be plain text databases, they got access to, maybe from some of the less secure systems, on the shop floor or wherever that may have unsecured protocols (they’re inside the corporate network, not directly connected to the internet)
But I’m going with idiots
They could have cracked the password hashes, most likely collected NetNTLMv2 hashes, using a generated list of weak passwords using the company name + a possible ruleset with hashcat.
Some audits still do it against all NTLM hashes stored on the AD DC, but it fell a bit out of fashion because most orgs don't feel comfortable giving out that data for a pentest.
NetNTLMv2 and NTLM hashes are also still notoriously easy to run dictionary and combo bruteforce attacks on with GPUs.
You can see the benchmark for an RTX 5090 here: https://gist.github.com/Chick3nman/09bac0775e6393468c2925c1e1363d5c
It can do a whopping 340.1 GH/s for NTLM and 16017.9 MH/s for NetNTLMv2
Compare that to a Linux's default yescrypt which didn't even have official support in hashcat until this year because the hashrate would be a measly 70-200 H/s.
How feasible is it to attack argon2id with that method?
argon2id is one of those newer algorithms created specifically to make cracking infeasible and protect against certain side channel attacks.
An example performance from an Nvidia 90HX for LUKS is:
Hash-Mode 34100 (LUKS v2 argon2 + SHA-256 + AES) [Iterations: 16]
Speed.#01........: 9 H/s (53.28ms) @ Accel:8 Loops:1 Thr:32 Vec:1
So correctly implemented, basically impossible lol.
Hashcat also added recent support for argon2id standalone and keepassxc db, so I'll see if I can run my own benchmark just to see what it shows.
Thanks! I was curious because I am using keepass and I do use argon2id lol. I was a bit skeptical because the 2s benchmark parameter seems oddly small, but nice knowing that it is actually quite good.
On a GTX 1660:
-------------------------------------------------------------------------------
* Hash-Mode 34300 (KeePass Argon2 (KDBX v4)) [m=65536, t=2, p=2] [Kernel: pure]
-------------------------------------------------------------------------------
Speed.#01........: 434 H/s (75.99ms) @ Accel:67 Loops:4 Thr:32 Vec:1
-------------------------------------------------------------------------------------------------------------
* Hash-Mode 70000 (Argon2id [Bridged: reference implementation + tunings]) [m=65536, t=3, p=1] [Kernel: pure]
-------------------------------------------------------------------------------------------------------------
Speed.#*.........: 39 H/s
--------------------------------------------------------------------
* Hash-Mode 36100 (yescrypt) [N=4096, r=32, p=1, t=0] [Kernel: pure]
--------------------------------------------------------------------
Speed.#01........: 431 H/s (164.40ms) @ Accel:264 Loops:2048 Thr:32 Vec:1
For some context, my keepassxc on my PC registers about t=50 for a 1 second unlock delay, so the example benchmark t=2 is faster than an IRL example, hence why the reference argon2id is much lower with only an additional transform round (t=3).
But yeah it's definitely good, and since argon2id allows you to set the parameters (memory, transform rounds, parallell) you can go make it hilariously indestructible if you feel like waiting like 30 seconds to unlock a DB lol.
Is there using Windows active directory tools than there is no way an auditor can have any possible idea what anyone has set their password to. Of course they might have simply asked the question and maybe some people would dumb enough to provide the answer but there's no way they can technologically find out.
The only thing I can think of is that active directory will sync the password to other systems so if those are the systems were insecure perhaps that way you could access the data? I'm not really sure how AD handles SSO
Yep. I've even seen a German federal system croaking on German umlauts (äöü, etc), without being more specific that "something went wrong".
I get unreasonably angry when a program only says "Something went wrong."
Bitch, tell me WHAT went wrong then. I can probably fix it on my end, or at least know what to tell someone who does!
Etc!? Shit, this guy know about the secret fourth umlaut.
Ȟ̵̯͉͖̼̝͓͔̗̬͇̜̜̜̽̄̅͐̅̃̊̀͆̆͌̅̍̈̅̾̄͛̍͆̓͑͌͆̒̊̂̈̋̍̐̐̾̀̀̉̓̓̕͘̕͝ṵ̸̧̧̡̢̢̧͇͇̙͇̬̳̣̺͇̳̖̗̪̖̤͇͇̙̗̜͈̫̠̖̻͖͙̗̘͍̠͓̫̯̳̦̼̩͈͇̑̂̑̈̈̈́̓͗̈́̍̀̑̐̀͂͒͐̓̽́͛̏̈́̈͒̀̎̆̂̍͐̚͘̚͜͝ͅͅn̸͙͔̮̝̭̅̓̏͝ţ̵̧̧̡̟̯̭͔̼̖͉͔͍̟̞͎̰̪̼̤͈̝̠̜̗̩̬̤̺̗̥̖̽̿̑͂̉̿̓̆̕͠ͅȇ̷̡̢̞̣̪̼̮̖̟̝̼̤͚͍̰͉͉̥̟̹̱̼̮͚̂̂́́͛̆̊̆̀̂̂̄̔͐̆͌̾̌̓͆̇̽͒͘͘̕͜͝͠ͅr̶̨̛͚̳̗̮̟͉̤͎̺̺̮̤̯͇̹̖̮̯̣͔̺͉̝̠̞͇̖̗̮̪͕̗͇̱̣̪̤͎̰̤̻̘̱͈̀̀̄͐̀̊̀͗͑̃̈́̉̈́͋̑̀̇̓̉́̈́͋͑̉̓̏̏̕̕͠ͅ4̷̢̛̰̗͕̻̭͎͚̟̤̥̗̙̭͙̎́͊̎͆̍̂̑̄͐̂̈́̋̃͝2̶̢̢̢̛̭̘͍̮̪͇̙̪̠͖̗̟̮͚̙̼̹͈͙̥͓̘̗̾̿̉͌̂͌̽̔̾̿̏̈̿̋̈́͐̔̇͋̏͊̎̒́̏̌́̎͐͘͘̚̕͜͠͠
I used a website, (the USCIS), which pointed out that they accepted emojis in the password.
Edit: remembered which site it was. It's mentioned here, although they may have switched to id.me now, so the rules may have changed.
https://www.aila.org/aila-files/83E22577-0F60-4BBA-AF2B-4AECC7F28F5E/23021709.pdf
Btw, does E-bay now support "special" characters in the password? Is it still 1990?
all 64 comments