My university had the same max length policy. The reason is that a few ancient legacy systems couldn't handle longer passwords and they wanted to make sure that your password could be used on all systems.
My instinct in this scenario would be to use Bcrypt on the new systems, and then try and find some other hash function that came out to 8 chars for use on the legacy systems.
Can anyone with more experience point out whether I am in any way on the right track here?
EDIT: hmmm, the storage of the passwords as 8-char weak hashes would render the more secure hash function used on the modern systems irrelevant. Maybe use the output of the strong hash as the input of the weak hash? Would this be secure?
Truncation to 8 characters is an entropy killer; limiting the range of characters by using the truncated strong hash as the input will reduce it further. In a weak system, you're more likely to find a collision that will effectively substitute for the original password. For two such systems to coexist, you'd need to enforce the use of passwords greater than 8 characters to prevent a crack on the weak system from working on the stronger one.
Comments
My university had the same max length policy. The reason is that a few ancient legacy systems couldn't handle longer passwords and they wanted to make sure that your password could be used on all systems.
My instinct in this scenario would be to use Bcrypt on the new systems, and then try and find some other hash function that came out to 8 chars for use on the legacy systems.
Can anyone with more experience point out whether I am in any way on the right track here?
EDIT: hmmm, the storage of the passwords as 8-char weak hashes would render the more secure hash function used on the modern systems irrelevant. Maybe use the output of the strong hash as the input of the weak hash? Would this be secure?
Truncation to 8 characters is an entropy killer; limiting the range of characters by using the truncated strong hash as the input will reduce it further. In a weak system, you're more likely to find a collision that will effectively substitute for the original password. For two such systems to coexist, you'd need to enforce the use of passwords greater than 8 characters to prevent a crack on the weak system from working on the stronger one.
Thankyou. This is very interesting. Whenever I study cryptography I feel a bit like Alice going down the rabbit hole.
Thank god the safe best-practices are clear and simple in the majority of cases.
EDIT: in case anyone reading this is wondering, the safe best-practice is to USE BCRYPT.
http://codahale.com/how-to-safely-store-a-password/