如何编写好的公司密码策略?

信息安全 密码策略
2021-09-02 12:18:45

我们公司从事医疗保健工作,我们制定了公司安全政策,包括密码。我注意到该政策并发表了评论,它说密码不应包含字典单词。这样做的精神是正确的,但以我的密码为例,它超过 30 个字符并且是一个密码短语,它确实包含字典单词,但在其复杂程度方面是无关紧要的。同样,这并不能消除p4$$w0rd0!同样糟糕的密码。

我们如何编写一个策略来鼓励人们不要使用坏密码,但又不会意外排除好密码?

4个回答

IMO,政策中的标准应该是明确的、最小的和可执行的。“不要使用字典单词”属于最佳实践文档或企业安全意识培训,而不是策略。

该策略应指定每个密码类别的最小长度、复杂性标准、最长(和最短)使用期限等内容。通常的做法是为具有提升权限的帐户要求更长的密码。

根据当前的 GPU 哈希破解性能,从 96 个字符(大写、小写、数字、特殊包括空格)中选择 10 个字符是应该考虑的最小长度,而 12 个将是一个更安全的选择。近年来,关于频繁更改密码的实际价值有很多讨论。要考虑的不利因素之一是诱发不良行为。如果用户因为每个月都会更改密码而无法记住他们的密码,他们会将其写下来或使用可猜测的密码并破坏控制。

我强烈敦促采用双因素身份验证、基于风险的身份验证和特权访问管理解决方案。

我们如何编写一个策略来鼓励人们不要使用坏密码,但又不会意外排除好密码?

您需要了解两件不同的事情:

  • 什么是好的密码
  • 用户如何思考和处理密码

老实说,你最好的选择是找一个做过几次的人。顾问或安全架构师。我这么说并不是因为你可以雇用我,而是因为我在很多公司都花了很多时间来改进和改进我使用的模板,并且知道哪些部分要适应,哪些部分是不可协商的,因为安全影响。你不可能通过一个案例和一个单一的政策获得这种经验。

也就是说,如果你想自己动手,你首先需要摆脱旧的和错误的观念所有这些密码复杂度计算器都是无稽之谈。到目前为止,我总是发现一些荒谬的东西会通过它们,而且它们中的大多数都是基于错误的假设,即攻击者将使用蛮力作为他的方法。

要获得用户认可,您需要找到一个不会给用户带来负担的方案。坦率地说,这几乎是不可能的,因为非常复杂和非常长的密码都是一项繁琐的工作,尤其是如果您需要每天输入多次。使用替代身份验证会更好,但我们在这里。

因此,一旦您看到“p4$$w0rd”实际上并不比“密码”更安全,您希望鼓励您的用户使用非平凡的密码,这里有一个问题:您写的关于什么是好的密码的规则越多,您实际上减少的可能密码的空间越多。如果我作为攻击者知道你的密码策略,我就不必测试任何不遵循它的密码。


一些具体的指导方针:

文字很好,如果你有足够的文字,因为人们可以快速轻松地输入它们,从而减少肩部冲浪的危险。它们也很容易记住,这降低了它们被写下来的危险。

名字更好,因为它们不太可能出现在非广泛的字典中,尤其是当它不是人名而是地名、宠物名、历史名、外国名等等时。而且它们通常也很容易记住。

数字问题,因为它们增加了一些变化,易于记忆和输入,并且可以用于密码短语(“我们点了 4 个披萨”)。

特殊字符是完整的,完全是胡说八道它们更难输入,如果您需要它们,人们通常会从 10 种左右中挑选,以便他们可以轻松访问,这意味着您的复杂性远低于使用数字时,它们很难记住并且最容易肩负 -冲浪。还有一些简单的,比如.,-!?在密码短语的句子中的逻辑位置添加大约一到两位熵。


需要做的是运行自己的密码检查。我经常建议让人们自由选择自己的密码,推荐密码短语,并根据前 1000 个左右的密码以及 100 个左右的公司和国家特定密码及其排列的黑名单运行每个新密码。如果密码在黑名单上,太弱了,用户需要选择一个新的,但至少他们知道为什么。

然后在晚上对哈希数据库运行一个常见的破解工具,它发现的每个密码都设置为“下次登录时强制更改密码”,并显示一条解释原因的消息。


还有一件事:您确实要小心常规的密码更改规则。事实是,如果您的密码有效期为 30 天,那么 90% 的人下个月将拥有“密码 1”,下个月将拥有“密码 2”。如果您不允许连续数字,他们将使用 1、3、5、... 代替。人类很懒惰,他们的密码是他们工作中不太重要的事情之一。您可能是公司中唯一一个认真考虑密码的人。

让普通用户更容易,他们会遵循你的指导方针。让它变得艰难,他们会寻找解决方法。

我注意到该政策并发表了评论,它说密码不应包含字典单词。

您所说的要求适用于 pass words

这个精神是对的,但以我的密码为例,它大于 30 个字符并且是一个密码短语,它确实包含字典单词

您问题的这一部分与密码短语而不是密码有关。

这里没有必要的逻辑不一致或困难,只要“密码”这个词真的是一个单词,而“密码短语”这个词真的是一个多词的短语我认为这是大多数用户理解这些术语的方式,因此这个起点是合理的。

单个单词密码不应包含字典单词。多词密码短语可以包含字典词。像往常一样,这是由复杂性证明的。例如,单个字典单词的(base2)“熵”为 15(假设有 30000 个字典单词)。而由字典单词组成的四字密码短语的类似熵为 59。

换句话说:“正确的马电池主食”不是字典词(即使它是由字典词组成并包含字典词)。

已经列出了一些从管理角度突出解决方案的选项。我发现管理控制和技术控制相结合是有效的。只靠一个注定失败。

从技术上来说,你可以通过 Windows 的组策略来控制一些需求。从组策略中,您可以控制:

  • 记住的以前密码的数量
  • 最低密码年龄
  • 最大密码年龄
  • 最小密码长度
  • 密码是否必须满足复杂性要求

启用复杂性要求后,需要以下 4 项中的 3 项:

  • 英文大写字符(A 到 Z)。
  • 英文小写字符(a 到 z)。
  • Base-10 数字(0 到 9)。
  • 非字母数字(例如,!、$、#、%)。扩展的 ASCII、符号或语言字符。

设置 Microsoft 密码复杂性

SuperUser也提出了一个关于字典密码的问题似乎也有一个解决方案来控制它。