tags:

views:

72

answers:

5

I do not require passwords to be changed on a schedule in my application for a simple reason: it makes remembering passwords harder and is thus more likely to lead people to write them down somewhere or otherwise use an unsafe memory aid.

What arguments are there to the contrary? Why would forcing someone to change a password that no one else knows make it more secure?

Note: since this is open to opinion and debate, I'm marking it as a community wiki. It is, however, centrally a technology concern so I think it reasonable to post here.

+3  A: 

How do you know no-one else knows it? The risk is not so much when you realise someone else knows your password, its when you assume no one else knows it, but they do.

The principle is that it limits the exposure period if a password is compromised.

If that compromised password can float around for ever, then the systme is compromised for ever.

By forcing password changes every 30/90 days, to a password that hasn't been used before, you are ensuring that if a password is compromised, it will be secure again no later than that period.

That being said - I hate it when I have to change my password after 30 days, and even when it was increased to 90 days still hated it.

Michael Shimmins
@shimms - that final comment is half my impulse. You are probably right with respect to many, many passwords. However, I do use complex passwords, maintain complete secrecy and take no risks with respect to security. But I guess the point is that I cannot expect everyone to act as I do and so I should implement a password expire to eventually "resecure" the information in peoples' accounts.
Mark Brittingham
+2  A: 

If it takes my password-guessing program 90 days to figure out one of your passwords, you probably want to make sure that your users change them at least once every 90 days.

Gabe
How do you know that the password to which they change won't be next up in your program? Now, if you could always change it on day 89...
Mark Brittingham
If someone gained access to your system through someones' password it guarantees that they will eventually lose that access via next password change.
Glorphindale
+1  A: 

To tighten the security of your system there should be a couple of other settings. For example how strong password should be (alphanumerical, both cases, special symbols) or that new password should not be identical to 2(3,4,n) previous passwords.

Glorphindale
@Glorphindale - thanks. We do implement those controls. It was just password forcing that I question.
Mark Brittingham
+1  A: 

If you had the money, you could go for a two-factor solution such as a SecureID, then your weakness of long password life is mostly mitigated against. If SecureID is too costly of a solution, there is also YubiKey, which has several client libraries in various languages to assist in integrating into your applications.

Though to answer your question directly, from a business point of view, the best reason to force users to periodically change passwords is to comply with any appropriate legislation, regulations, contractual obligations, etc.. e.g. PCI Data Security Standard for those involved with credit cards. The financial implications of not following their requirements can devastate a company.

Mike
+1  A: 

The answer to your question depends on the sensitivity of the information your application contains. The more sensitive, the higher the security level you should provide.

Obviously, more security usually leads to a decrease in usability. You and your client need to balance the factors and then look for a technical solution.

Hans Westerbeek