代码之家  ›  专栏  ›  技术社区  ›  Scott Dorman

在应用程序安全中,是否应要求用户按计划更改密码?

  •  1
  • Scott Dorman  · 技术社区  · 5 年前

    我不要求在我的应用程序中按计划更改密码,原因很简单:这会使记住密码变得更困难,因此更可能导致人们将密码写在某个地方或使用不安全的内存辅助工具。

    有什么相反的论点?为什么要强迫某人更改密码 没有人知道 让它更安全?

    注: 因为这是开放的意见和辩论,我把它标记为一个社区维基。不过,这是一个技术问题,所以我认为在这里发布是合理的。

    5 回复  |  直到 14 年前
        1
  •  3
  •   Michael Shimmins    14 年前

    你怎么知道没人知道?当你意识到别人知道你的密码时,风险并不是很大,而是当你认为别人不知道你的密码时,但他们知道。

    原则是,如果密码泄露,它会限制暴露时间。

    如果这个被破解的密码可以永远浮动,那么这个系统就永远被破解了。

    通过每30/90天强制更改一次以前从未使用过的密码,您可以确保如果密码被泄露,它将在不迟于该时间段内再次安全。

    也就是说,我讨厌30天后必须更改密码,即使密码增加到90天,我仍然讨厌它。

        2
  •  1
  •   Gabe    14 年前

    如果我的密码猜测程序需要90天才能找出您的密码之一,您可能需要确保您的用户至少每90天更改一次密码。

        3
  •  1
  •   Sad Developer    14 年前

    为了加强系统的安全性,应该有一些其他设置。例如,密码应该有多强(字母数字、两种情况、特殊符号),或者新密码不应该与以前的2(3,4,n)个密码相同。

        4
  •  1
  •   Mike    14 年前

    如果你有钱,你可以 two-factor 解决方案,例如 SecureID ,那么您的长密码使用寿命的弱点基本上得到了缓解。如果secureid的解决方案成本太高,那么 YubiKey ,它有 several client libraries 以帮助集成到应用程序中。

    尽管要直接回答您的问题,从业务角度来看,强制用户定期更改密码的最佳原因是遵守任何适当的法律、法规、合同义务等。例如 PCI Data Security Standard 对于那些涉及信用卡的人。这个 financial implications 不遵守他们的要求会毁掉一家公司。

        5
  •  1
  •   Pradeep    14 年前

    问题的答案取决于应用程序所包含信息的敏感性。越敏感,您应该提供的安全级别就越高。

    显然,更高的安全性通常会导致可用性下降。你和你的客户需要平衡这些因素 然后 寻找技术解决方案。