• Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
  • Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!

Client storing customers passwords in plaint text

Collapse
X
  •  
  • Filter
  • Time
  • Show
Clear All
new posts

    #11
    Originally posted by pauldee View Post
    Hashing passwords doesn't require a 'proper password management tool', and basic security measure aren't optional extras, and should have been costed in at the start. I'd just make sure you have a lot of evidence that you have raised it and leave it at that. If you raise it with infosec now it'll be pretty obvious who it was.
    A hashed password isn't any use if you're going to try and type it into a system you're logging into. They need to be encrypted. But then the people who need to decrpyt them need a password to do that.

    That's why you buy a product to do it for, specifically one with role based access control and auditing.

    Since the question makes no mention of salt/pepper, we'll stick to plain hashing of password (a terrible idea by the way). I'm assuming we're doing server-side hashing, as client-side hashing is also a terrible idea.

    Let's denote the following:

    P: the password
    H(P): the hashed password
    You enter P in the login form of the website. The backend computes H(P) by running it N (let's say 1000) times through sha-256 (just to pick one). The backend looks up your user entry in its database and checks whether the computed H(P) matches the H(P) stored as your password. If it does: congratulations, you're you. Otherwise, "wrong password".

    Now, an attacker got his grubby little hands on a dump of the database's user entries, including username and the H(P) for each user. However, the attacker does not have direct access to the database.

    The attacker goes to the website, types in your username and H(P) as your password. The backend computes the hash of your password: H(H(P)). But lo and behold, H(H(P))≠H(P) because one is hashed 2∗N times, the other N times.

    All that's left is for the attacker to try to get the original password out of the dump of hashes. But this is a story for another day.

    PS: if you do want to do client-side hashing, you still need to do server-side hashing. The stored value in the database would be Hserver(Hclient(P)). Never store client-side hashes, that's just as bad as storing the password.
    taken from a technical guide
    See You Next Tuesday

    Comment

    Working...
    X