Hi Guys,
I'm building a website and have many mechanisms in place for security. Such as firewalls, network security analyzers, etc.
Programmatically, I have other measures in place too.
In regards to passwords, I think I have done enough but just wanted to get a feel for what you all think.
1. User registers, creates account and password
2. UUID is created for each registration, UUID used as user specific salt
3. password, UUID, and application wide salt and combined as one string
ex password123!+625A869A-5482-47BE-B2139BF324B8C265+SITESALT
4. new string is hashed using SHA-512, which creates a 128 digit string
5. hash and user salt are kept in db
6. When user logs in, account is queried to get password hash and the user specific salt
7. submitted password, user salt (from query) and sitewide salt and hashed using sha-12
8. If queried password hash is equal to hash produced by step 7, password is authenticated
I think this is pretty solid because
1. We don't actually keep any passwords
2. There is essentially no way to extract the password from data we keep on file
3. Would have to create enormous amount of rainbow tables to crack 512bit SHA based encryption AND know the sitewide salt (which isn't even in the database).
4. Would simply take to long to extract possible passwords from even one account.
What says you?
I'm building a website and have many mechanisms in place for security. Such as firewalls, network security analyzers, etc.
Programmatically, I have other measures in place too.
In regards to passwords, I think I have done enough but just wanted to get a feel for what you all think.
1. User registers, creates account and password
2. UUID is created for each registration, UUID used as user specific salt
3. password, UUID, and application wide salt and combined as one string
ex password123!+625A869A-5482-47BE-B2139BF324B8C265+SITESALT
4. new string is hashed using SHA-512, which creates a 128 digit string
5. hash and user salt are kept in db
6. When user logs in, account is queried to get password hash and the user specific salt
7. submitted password, user salt (from query) and sitewide salt and hashed using sha-12
8. If queried password hash is equal to hash produced by step 7, password is authenticated
I think this is pretty solid because
1. We don't actually keep any passwords
2. There is essentially no way to extract the password from data we keep on file
3. Would have to create enormous amount of rainbow tables to crack 512bit SHA based encryption AND know the sitewide salt (which isn't even in the database).
4. Would simply take to long to extract possible passwords from even one account.
What says you?