Basic cyber security says that passwords should be encrypted and hashed, so that even the company storing them doesn’t know what the password is. (When you log in, the site performs the same encrypting and hashing steps and compares the results) Otherwise if they are hacked, the attackers get access to all the passwords.

I’ve noticed a few companies ask for specific characters of my password to prove who I am (eg enter the 2nd and 9th character)

Is there any secure way that this could be happening? Or are the companies storing my password in plain text?

42 points

I’m assuming they’re plain text. There’s is no perceivable way they can only use those data points to to figure out which hash it is. Unless of course they’re using their own “hashing” function which isn’t secure at all since it’s probably reversible.

permalink
report
reply
22 points

Theoretically they could take those two characters + a salt and then also store that hash. So there it is technically a way to do it although it’d be incredibly redundant, just ask for the actual password at that point.

permalink
report
parent
reply
10 points

Please don’t do that. Brute force attacks are very easy on single characters, even two of them.

permalink
report
parent
reply
5 points

Yes, I did a reply about this above because this idea has been suggested a few times and it’s truly a bad security move. I’d prefer they just encrypted it and made sure the key was stored separate from the database. That’s more secure than this idea.

permalink
report
parent
reply
7 points

Perhaps they validate the passwords client side before hashing. The user could bypass the restrictions pretty easily by modifying the JavaScript of the website, but the password would not be transmitted un-hashed.

It is worth pointing out that nearly any password restriction like this can be made ineffective by the user anyway. Most people who are asked to put a special character in the password just add a ! to the end. I think length is still a good validation though and it runs into the same issue @randombullet@lemmy.world is asking about

permalink
report
parent
reply
3 points

How would they validate individual characters client side? The set password is on the server.

permalink
report
parent
reply
1 point

When you are filling out the web form with your password it’s stored plain text in the web browser and accessible via JavaScript. At that point, a JavaScript function checks the requirements like length and then does the salting/hashing/etc and sends the result to the server.

You could probably come up with a convoluted scheme to check requirements server side, but it would weaken the strength of the hash so I doubt anyone does it this way. The down side of the client side checking is that a tenacious user could bypass the password requirements by modifying the JavaScript. But they could also just choose a dumb password within the requirements so it doesn’t matter much… “h4xor!h4xor!h4xor!” Fits most password requirements I have seen but is probably tried pretty quickly by password crackers.

permalink
report
parent
reply

They could hash the xth letters in a seperate column that are hashed separately, but it’s likely they are just storing plain text.

permalink
report
parent
reply
19 points

I have never heard of anything secure doing that. Assuming they have taken security steps, it would mean they recorded those characters in plaintext when you set your password, but that means that at least those characters aren’t secure, and a breach means some hacker has a great hint.

When the hashing occurs, it happens using the code you downloaded when you visit the site, so it’s your computer that does the hash, and then just the hash is sent onwards, so they can’t just pull the letters out of a properly secure password.

A secure company would use two-factor authentication to verify you above and beyond your password, anyway, since a compromised password somewhere else automatically compromises questions about your password.

permalink
report
reply
6 points
*

A lot of banks in the UK do it. They normally have a secondary pin that they will ask for 2 or 3 characters of.

This means that if you log in and get keylogged/shoulder surfed etc they don’t get the full pin. The next time you login you will get asked for different characters.

Not great, but not awful either - going away now that 2fa is more common

permalink
report
parent
reply
2 points

A secondary pin is a bit better but characters from the actual password (that you have to enter anyway) adds nothing to security from that kind of intrusion.

permalink
report
parent
reply
0 points

This means that if you log in and get keylogged/shoulder surfed etc they don’t get the full pin. The next time you login you will get asked for different characters.

This seems somehow worse than simply requiring the same few characters each time, since they would either have to store the complete passwords in plaintext, or compute and store the hash for every permutation of 2-3 characters, which is wildly inefficient. You’d also be susceptible to leaking your password if for some reason you are under long term surveillance, since at some point you would presumably have provided all of the characters making up the password.

permalink
report
parent
reply
2 points

It’s normally an additional password/code, so it’s probably stored in plaintext.

The random character selection is what makes it useful. Stops someone who just captured your details from logging straight in (probably).

2FA is superior in every way to it. Most have now switched to sending you a chip & pin card reader to generate OTPs.

permalink
report
parent
reply
1 point
*

Unless they hash and store various combinations of characters in addition to, or instead of, the whole password. I haven’t heard of anyone doing this. If you were to pad them with a unique salt and a pepper before hashing each combination, you could end up with something more secure than just hashing the whole password Edit: I was wrong it seems; you’d still end up with something insecure. But hashing the whole password, if done properly, is already secure enough so this would seem like needless complication unless there’s some unusual concern about the password being intercepted in transit, and in that case you’d have other problems anyway.

I have heard of this thing of asking for selected characters of a static second authentication factor (e.g. a PIN), but not of a password itself. And now that we have proper 2FA systems I haven’t seen anything like that in a while.

permalink
report
parent
reply
2 points

It’ll be less secure.

If they hash a subset, then those extra characters are literally irrelevant, since the hash algorithm will exclude them. Like if they just hashed the first 5 characters, then “passw” is the same as “password” and all those permutations. Hashing is safe because it’s one-way, but simple testing on the hashing algorithm would reveal certain characters don’t matter.

Protecting a smaller subset of characters in addition to the whole password is slightly better but still awful. Cracking the smaller subset will be significantly easier using rainbow tables, and literally gives a hint for the whole password, making a rainbow table attack significantly more efficient. Protecting the whole thing (with no easy hints) is way more secure.

It also adds nothing to keylogging, since it’s not even a new code, it’s part of the password.

There was a time where that level of security was acceptable, and it still could be ok on a closed system like an ATM, as the other reply to my comment pointed out, but this kind of protection on a standard computer is outdated and adds holes.

permalink
report
parent
reply
1 point

Less secure if you come at it from the perspective of cracking the password, but probably more secure in real-world terms.

If you type in your bank password and somebody’s compromised your browser, they now have your entire password.

If you type in the third, fourth and eighth digits and somebody’s compromised your browser, they still can’t access your account.

Obviously full 2FA is probably better, but

  • A bank requiring a smartphone to bank with them is probably a no-go
  • A bank probably has to deal with some of the least technical users that are out there

If it’s too hard for certain users to engage with the system correctly, they’ll try to sneak around it in ways that could compromise their security more than if the bank had just gone with the specific digits thing in the first place.

permalink
report
parent
reply
12 points

I’ve noticed a few companies ask for specific characters of my password to prove who I am (eg enter the 2nd and 9th character)

They what?!

This is a huge red flag and should not even be possible for your primary password, if they are following basic security principles. Are you sure this isn’t a secondary PIN or something like that?

permalink
report
reply
5 points
*

NatWest in the Uk does it for both the password and the pin, has been since I signed up like 10 years ago. I assumed they do it so you don’t enter a full password that someone could access later. No idea how they work out but they are big and I assume if it was insecure they’d have had issues by now. I assume they store the letter groupings in advance.

permalink
report
parent
reply
6 points

I assume if it was insecure they’d have had issues by now.

At this point, it’s okay to assume that they have had issues and they haven’t disclosed them.

permalink
report
parent
reply
1 point

Can a company be sued for storing pw in plaintext?

permalink
report
parent
reply
4 points

I would assume they have the whole password in plain text, then. Not much you can do about it, just make sure you’re not re-using any part of that password for other services. And if you are, then you should start changing them all to something unique, ideally with a password manager like Keepass or BitWarden. This is a good habit anyway, because you can never really know how companies are handling their IT security.

permalink
report
parent
reply
3 points
*

Crazy that that hasn’t become an issue for them yet! Thanks for the tips! I used to be pretty bad with my passwords but I’m reformed and using KeePass for everything these days.

permalink
report
parent
reply
10 points

Do they always ask for the same characters? I’d imagine they could hash the password as well as saving only the 2nd and 9th characters as plaintext. Still a bit of a security risk but not nearly as bad

permalink
report
reply
2 points
*

Theoretically they could hash the the two characters with a salt and store it that way, but extremely unlikely they’d actually do that. And also fairly pointless. But still technically possible.

permalink
report
parent
reply
1 point

I wrote a comment about this in this thread. Just to add that a salt doesn’t add complexity to the brute forcing of a password, it just makes it so you need to brute-force each one separately.

Hashing pairs of characters would be extremely insecure.

permalink
report
parent
reply
1 point

It’s always 2 characters, but I can’t remember if it is the same ones every time

permalink
report
parent
reply
Deleted by creator
permalink
report
reply
1 point
*

Shamir’s secret sharing, which was new to me, still means the password must be unencrypted though!? Otherwise there’s no secret that can be shared. You can’t get individual characters of non-reversible-hashed passwords.

Reading the Wikipedia page about Shamir’s secret sharing I don’t see anything about sharing part of the secret data, only that the decryption key is split-shared.

permalink
report
parent
reply

[This comment has been deleted by an automated system]

permalink
report
parent
reply
1 point

So in this case the shared partial secret key would be a part of the secret. That seems like a bad idea, bad practice for security. But I see how it’d work.

permalink
report
parent
reply

No Stupid Questions

!nostupidquestions@lemmy.world

Create post

No such thing. Ask away!

!nostupidquestions is a community dedicated to being helpful and answering each others’ questions on various topics.

The rules for posting and commenting, besides the rules defined here for lemmy.world, are as follows:

Rules (interactive)


Rule 1- All posts must be legitimate questions. All post titles must include a question.

All posts must be legitimate questions, and all post titles must include a question. Questions that are joke or trolling questions, memes, song lyrics as title, etc. are not allowed here. See Rule 6 for all exceptions.



Rule 2- Your question subject cannot be illegal or NSFW material.

Your question subject cannot be illegal or NSFW material. You will be warned first, banned second.



Rule 3- Do not seek mental, medical and professional help here.

Do not seek mental, medical and professional help here. Breaking this rule will not get you or your post removed, but it will put you at risk, and possibly in danger.



Rule 4- No self promotion or upvote-farming of any kind.

That’s it.



Rule 5- No baiting or sealioning or promoting an agenda.

Questions which, instead of being of an innocuous nature, are specifically intended (based on reports and in the opinion of our crack moderation team) to bait users into ideological wars on charged political topics will be removed and the authors warned - or banned - depending on severity.



Rule 6- Regarding META posts and joke questions.

Provided it is about the community itself, you may post non-question posts using the [META] tag on your post title.

On fridays, you are allowed to post meme and troll questions, on the condition that it’s in text format only, and conforms with our other rules. These posts MUST include the [NSQ Friday] tag in their title.

If you post a serious question on friday and are looking only for legitimate answers, then please include the [Serious] tag on your post. Irrelevant replies will then be removed by moderators.



Rule 7- You can't intentionally annoy, mock, or harass other members.

If you intentionally annoy, mock, harass, or discriminate against any individual member, you will be removed.

Likewise, if you are a member, sympathiser or a resemblant of a movement that is known to largely hate, mock, discriminate against, and/or want to take lives of a group of people, and you were provably vocal about your hate, then you will be banned on sight.



Rule 8- All comments should try to stay relevant to their parent content.

Rule 9- Reposts from other platforms are not allowed.

Let everyone have their own content.



Rule 10- Majority of bots aren't allowed to participate here.

Credits

Our breathtaking icon was bestowed upon us by @Cevilia!

The greatest banner of all time: by @TheOneWithTheHair!

Community stats

  • 9.8K

    Monthly active users

  • 3K

    Posts

  • 116K

    Comments