In an API I have there’s a requirement to use an authentication method other than OAuth2 or any kind of token generation which requires making an extra HTTP call.

With this in mind there’s this https://www.xml.com/pub/a/2003/12/17/dive.html
I’ve only stored passwords as hashes and used functions like password_verify to know the user sent the proper credentials without actually knowing the password stored in DB.
WSSE requires to encrypt with SHA1 the credentials being sent, which means the API needs to retrieve the password in plain text to recreate the digest and compare it to the one sent by the user.
So, how should I be storing this password if the code needs it to recreate the hash?
Should I have something like a master password and store them encrypted instead of hashed?


Most of the information I’ve found about WSSE is very very old, and some implementations have it marked as deprecated, do you know any other type of standard authentication where the user can generate the token instead of having to make an extra HTTP call?

  • @OneCardboardBox@lemmy.sdf.org
    link
    fedilink
    English
    79 months ago

    Granted, security isn’t much my background, but that algorithm basically sounds like a TOTP, so I’d look into how people protect those secrets. You’d generally use a kind of vault/secrets storage. Also, whatever authentication secret that the API uses should be independent from the password to any user account, such that it can be easily revoked in case of a leak.