I can't figure out any way it makes sense unless they are forbidden by policy from forcing password changes.
Most people in a rush aren't going to do a good job choosing a secure new password; they aren't going to read McGill's recommendations about password managers or whatever; they're not even going to take 30 seconds to think about how to come up with a reasonably secure but memorable password.
They're just going to use their old password with a "1" on the end.
So -- McGill came up with a way to keep nudging students into updating their passwords, without forcing the specific moment they need to do it.
>Most people in a rush aren't going to do a good job choosing a secure new password;
Yup. This happens once per year without fail, and more often if there is some security problem. Often enough, it happens during a busy time of the semester (beginning or end).
>they aren't going to read McGill's recommendations about password managers or whatever; they're not even going to take 30 seconds to think about how to come up with a reasonably secure but memorable password.
My employer's IT department's password advice is... vintage, to be kind. It took a shaming in front of the college president to get them to stop threatening people for writing passwords down. The clunky password rules are at least partly responsible for the typically weak passwords. Another factor is the practice of configuration of machines with timeouts in the 10 to 30 minute range, forcing people to constantly enter their passwords. Yet another is the number of disparate IT systems with different password databases, and different password rules.
Yeah, for that you'd need to know more about the password than we'd like them to know. I imagine they are simply setting the policy to "double" the password if it is older than X days.
If there is an identified potential compromise, then the password change isn't unnecessary.
"111111111111".match(/^(.+)\1$/)[1]could just have the doubling check after the hash check though
They just check if the entered password is doubled identically, then compare half of it to the hash.
1) Storing the password in plaintext. 2) Sending the password over the wire in plaintext. 3) Computing two hashes on the same system (presumably) via the same function, with a known relationship between their inputs.
I guess the fourth option is they have a securely stored hash of the password, but that still wouldn't allow them to compute the 2x hash server side so we're looking at another round trip and/or number three above.
Not confidence inspiring.
Yes, you are wrong.
> we basically have three options
Or sending the plaintext password over the wire using SSL?
You are aware that to use a hash the server needs the plain text password right? And not just them, every server needs this?
You are acting like getting the plaintext password is something strange. It's not.
You can send the password encrypted or not, it has nothing to do with the hash on the server.
> but that still wouldn't allow them to compute the 2x hash
As I have said already, they are not computing the 2x hash.
I can't count how many times I've seen something that could easily be done at login time and people conclude that the service must be storing plaintext or multiple hashes.
This isn't even a direct security measure in the first place. This is to annoy people into updating their passwords.