用户注册的合理且安全的密码要求是什么?


10

这是我刚从UPS获得的密码策略(仅用于包装状态检查):

您的密码必须介于8到26个字符之间。它必须至少包含以下三种字符类型:小写字母,大写字母,数字,特殊字符或空格。密码可能不包含您的用户ID,您的名称或您的电子邮件地址。(SSO_1007)

实际上,我一定要动脑筋才能生成此密码,但不仅如此,最重要的是,我确定三天后我会忘记该密码是什么。用户不会那么高兴。密码重置可能很频繁。我认为除非有必要,否则用户将尝试避免使用该网站。

设置网站时,什么是合理且安全的密码策略?我认为有些公司可能会担心某些黑客尝试使用密码的次数超过一百万次,因此他们添加了“特殊字符,小写字母,大写字母”的所有要求,但是关闭帐户或仅禁用密码设置是不合理的密码,如果用户尝试了30次或100次,是否需要重设密码?还是在用户尝试30次后每次添加5秒的延迟?如果是这样,那么将不需要那么多特殊字符。


1
如果您尝试30次后重设密码,那么您就很有可能惹恼其他用户,使他们陷入困境(黑客/脚本骗子),使一切变得更糟。
oezi 2011年

@oezi,您的意思是,黑客可以使用一些伪造的密码登录30次,从而惹恼好人吗?我刚尝试了30次后5秒钟的延迟呢?
极性2011年

14
更不用说当我不允许使用“正确的骑马钉电池”时,我不能认真考虑密码的最大长度。
David Thornley

6
Xkcd漫画下面的第二种方法怎么样?
罗伯特·哈维

6
嗨,动静能量,这对姐妹网站IT Security可能是一个更好的问题,但是在这里有人以几种不同的形式对其进行了回答。查看类似这样的问题,或者有关罗伯特·哈维评论的上下文的更多信息,看看这个问题

Answers:


15

老实说,我发现严格的密码要求是一件令人烦恼的事情,而不是一项好处。通常,我会说最合理的是只指定一个长度,也许是特殊字符+字母数字。一切都在要求人们写下他们的密码,这违背了拥有安全密码的全部目的。我还讨厌不得不每隔X天使用一组荒谬的规则来更改密码(例如,不能重复使用最近的25个密码)-再次这样做只是迫使人们写下来,这样他们就不会忘记这时您可能根本不要求输入密码。


4
写下密码不会破坏目的。如果我在监视器上贴的便利贴上写有一个非常复杂的密码,那么某人访问我的帐户的唯一方法是闯入我的房子并坐在我书房的桌子旁。在这种情况下,我有一个远远比别人能够追踪我的UPS交付更大的问题。
2011年

2
如果这是公司政策并且同事找到某人的密码怎么办?仍然可能造成损坏,并且假设安全密码策略过于复杂以至于大多数人只是将其张贴到其监视器上,所以路过的任何人都可以找到他们用于公司数据的密码,这种假定的安全密码策略几乎无济于事。
韦恩·莫利纳

2
+1,我完全同意韦恩。很大的安全威胁(如果不是最大的话)来自“内部”。迫使用户最终写下密码的策略完全无法达到目的。
GrandmasterB

1
更不用说这样的事实,如果用户需要考虑一些过于复杂的密码以符合规则,就会惹恼用户。
马夫里克'10

1
@mouviciel我非常信任它,可以将钱包和电话之类的东西放进去,比几乎拥有的每个在线帐户都更有价值。
Qwerky 2011年

13

我的意见是,密码应仅具有长度要求。您不希望有人输入“ a”作为他们的密码。而且,如xkcd答案所示,很难记住的密码并不总是那么安全。始终允许人们更改其密码。并忘记了“您不能使用以前的密码中包含的任何字符”废话。

制定淫秽密码策略弊大于利。在大学里,我去过密码政策与UPS政策相似,您必须每2周进行一次更改,并且您无法使用之前使用的50个密码。因此,我的老师在设置我们帐户时的建议是使用符合规则的常规密码,并在其末尾添加一个计数器,并在您的密码提示中输入计数器编号。

此外,每当您的纯文本数据库受到SQL注入错误的入侵时,或者您将密码通过电子邮件发送给用户并被用户拦截,严格的密码策略都将无法执行任何操作。

基本上,不要让您的密码系统对您的用户造成麻烦,否则它将鼓励他们做一些不安全的事情,以便他们可以解决它。例如,我的公司从数据中心获取专用服务器时,他们为我们设置了20个字符长的密码。他们太安全了,无法通过电子邮件发送给我们,而必须通过传真发送。我们无法更改密码,仅要求生成新的20个字符的密码。而且这种方式适用于每个用户...因此,我们最终要做的只是使用密码在桌面上制作文本文档。另外,我们不再使用它们,因为对于它们具有的所有“安全性”,它们实际上都是不安全的。


更不用说如果您使密码难以记住,您的用户将转而使用他们办公桌上的便签本。使所有人都可悲地接受社会工程学的“安全”密码并不安全。
Fomite,2011年

4

确保留有空格。我认识的每个人键入短短语的速度都比键入短语中每个单词的第一个字母的速度快。例如,尝试输入Bird in a Tree,然后输入BiaT。这样做的好处是,如果您在类似pick Up milkMeetings all day粘滞便笺上写一个含糊的工作适当短语,则显然不是密码。

我不是“必须有数字和符号”规则的忠实拥护者,但是如果您始终如一地应用它们(例如,i始终为1,a始终为@),那么您仍然可以在粘纸上写下英语短语,应用您只能说出您所知的规则,然后B1rd in @ tree在密码对话框中输入。从安全的角度来看,数字和符号并没有增加太多,但是它们并不需要让您为用户疯狂。

如果我的好短语被认为是“太长”,则密码长度最大的站点会让我很生气。26似乎很合理。我知道有人必须设计列的宽度,但是12简直太短了。


1
这是非常聪明的。使用间隔的evey日短语...聪明。尽管我会坚持使用通用的强密码系统,并根据登录的服务添加数字和字母。只有我知道如何形成它们,并且密码始终相同,但是生成的密码很可能不同(不是虽然总是不同的,但我不太在乎那些稀有的重复项)。
罗伯特·科里特尼克

1
什么列的宽度?文本框通常具有内部滚动功能,如果将明文密码存储在数据库中,则说明操作有误。
彼得·泰勒

Db现在很便宜。如果您允许50个字符长的密码,也具有良好的加密性,则该密码在db中的最大宽度为110个最大值(准确地说为102个)。但是我将其设置为150 varchar ...良好的数据库设计应意味着没有表具有超过20列,因此这不会造成任何大问题。
tgkprog '16

2

安全与便捷

密码的安全性策略应适合妥协成本。如果您的网站位于我的财务帐户前面,我希望严格的密码保护。如果这是有关Autobots的小众粉丝网站,则不需要太多保护。

UPS规则是合理的,但以下情况除外:

  • 最大长度太小。您应该促进密码短语的使用,这样更容易记住并且更安全。

在引用规则中尝试X次后,我没有看到重置,我认为在大多数情况下这很愚蠢。我认为您最好将某人锁定一段时间,而不是强制重置。这意味着一定程度的安全性。如果没有必要,那么就没有必要,锁定/重置是一个有争议的问题。

许多密码策略规则充其量只能带来边际安全优势。但是,也有一些规则确实对您的密码安全具有切实的好处。

规则(及其原因):

  • 最小长度

防止组合试验和错误攻击,该攻击将很快破解非常短的密码。

  • 禁止使用单个英语单词(或任何其他语言)的禁令

这样可以防止字典攻击。

  • 强制包含不同类别(即大小写混合,数字,标点符号)

这增加了平均攻击空间。

所有这些原因都可以追溯到最大程度地减少了用户在选择密码时的偏见。大多数用户偏向于创建较短的,易于记忆的密码。不幸的是,这通常会使密码更易于攻击。大多数用户需要的是有关如何创建安全的易记密码或更长密码的说明。

安全难忘的密码

当我需要创建一个具有长度限制的密码时,我总是以短语开头,因此我有内置的助记符。我选择了该短语,并且每个单词的位置字符相同。我现在有一个仅字符序列。然后,我选择大写字母,其中一些是基于短语中的专有名称,或者是根据模式(首字母和尾字母,其他字母等等)。然后,我根据一些任意规则或模式添加标点符号和数字。(即所有“ j”均为7,在短语中有“ and”的地方使用“&”等)。

妈妈,刚刚杀了一个人。将枪对准他的头。拉动我的扳机,现在他死了。

女王提供的词组

  1. mjkampagahhpmtnhd- 每个单词的第一个字母
  2. MjkamPagahhPmtnhd- 大小写匹配词组的大小写
  3. Mjk0mP0g0hhPmtnhd- 将'a'更改为0
  4. Mjk0mP0g0()Pmtnhd- 将“他的头”更改为()

当我在思考该短语时键入几次后,我将永远不会记忆犹豫。


1
真正的问题是UPS帐户将被公司中的十几个人使用。将他们全部拒之门外,因为弗雷德(Fred)在运输中输入错误,将导致1,混乱2,人们改用联邦快递
Martin Beckett

2
我认为问题在于令人讨厌的密码策略不会增加real安全性(它们只会增加对安全性的感知),并且实际上会损害安全性。
马丁·约克

@Martin Beckett:1)对于使用锁定策略的环境,应该存在并且通常是立即解锁密码的替代方法2)每个人都应该拥有自己的帐户3)B2B安全通常可以通过诸如PKCS之类的公钥系统来实现不必使用密码。
Dietbuddha 2011年

@Loki Astari:是的,这对于令人讨厌的政策是正确的,问题是,鉴于具体情况,哪种规则会使该政策令人讨厌。例如,我认为我们都可以同意最小长度要求是合理的。我绝对同意,包括保留密码历史记录在内的任何要求都是令人讨厌的,因为它不会增加安全性。
Dietbuddha 2011年

3
您的上述想法看似合乎逻辑,但实际上您正在击败自己的xkcd.com/936。我坚决不同意您的4分中的3分,并建议所有这些都会使您更容易获得krack密码。(长度是唯一的积极因素)。最好的密码将是:Mama, just killed a man.
Martin York

1

您的密码必须介于8到26个字符之间

Lan Manager的最低密码是8个字符长。Lan Manager通过将密码分解为2个7个字符的字符串来对密码进行哈希处理,然后对其进行哈希处理。通过最少要求8个字符,他们可以确保第二个单词与空白密码不同(没有盐,因此每个7个空白的实例散列到相同的结果)。

我确定三天后我会忘记该密码是什么。

我已经放弃了,这些规则是如此愚蠢和冗长,以至于我现在将它们写下来。除我用于网站的少数网站外,其余全部。我目前的雇主还跟踪过去使用的24个密码,以使它们无法被回收,密码也不能包含任何3个以上字符的英语单词(向前或向后)。它还可以确保您不使用前一个单词,并在其中增加一些数字(因此,如果P4ssw0rd1使用过,则不能使用P4ssw0rd2,也不能使用P4ssw0rd0)。

当我不得不更改密码时,我在办公室里学到了很难的方法,花了45分钟使系统接受替换,然后立即忘记了我想出的内容,不得不将其重置并浪费了另外45分钟分钟的尝试,我记得很复杂,足以满足要求(上面列出了一些要求,有些没有,有些我不知道)。尝试提出符合您不知道的规则的东西并没有很多乐趣。至少在诸如Mastermind之类的游戏中,您会得到线索,了解距离有多近。在办公室里,有些人开始使用智能卡,但我不是其中之一。


1

在存储密码时使用bcrypt是一个很好的开始,这仅仅是因为它使暴力破解尝试变得不可行。


0

合理和安全是互斥的。它们是一根杆的两端。在中间取得平衡将是最好的。为了更安全,人们写下密码或使用完全不安全的密码解锁功能。

上面的示例确实更倾向于安全而不是合理的。我见过更糟。

我更倾向于合理。关键是要向后端的安全防护倾斜。尽可能少地使用盐等。所有建议将密码编码到数据库中的最新方法,也都采用一种编码方式。然后,确保数据库和代码的安全。还培训任何对您的系统具有管理员权限的人,他们需要使用唯一的安全密码。最近显示,将多个词典单词串在一起比拖动特殊字符和大小写更为安全。它需要复合词典匹配,这确实增加了黑客的时间,但是,对于用户而言,这些仍然令人难忘。


1
理性与安全并不是对立的概念。它们可能会发生冲突,但是通常有可能提出合理安全和合理可用的东西。它可能需要一些创造性思维,并且不能在检查清单上进行适当的衡量,这可能就是为什么在很多地方都没有看到它的原因。
David Thornley

在许多历史中,合理性和安全性是相反的。您可以允许用户使用合理的密码(不检查,不做任何事情),而这可能是最不安全的,或者甚至没有密码也没有那么安全。微软很难学到这一点。人们想要更好的电子邮件,所以他们决定让我们允许像文字一样编写脚本,然后出现电子邮件病毒。从那以后一直是一场战斗。你不能有网络功能的电子邮件(合理的),而无需打开自己可达安全隐患
比尔利珀

当然,如果您没有做出正确的选择,很容易使易用性和安全性完全对立。微软在2005年及之前的许多选择显然都是出于安全考虑。
David Thornley

请举一个易于使用和安全的示例。我在很多地方工作过,并实施了很多安全系统,但还没有看到。这将是一个常规的Web应用程序,而不是使用.ssh密钥来访问远程系统。我的祖母需要能够在她的Windows Vista系统上执行此操作:-)
Bill Leeper,

考虑密码短语,例如最近的xkcd。比大多数密码更安全,通常比好密码更容易记住,并且经常超过网站允许的26个字符。
David Thornley

0

不是字典单词,也不是琐碎的变体。而已。捆绑两个字典单词几乎是不可破解的。字符的单字母替代也不是显而易见的替代(0-O,1-I,5-S)。

此外,如果您限制响应时间-1秒后接受/拒绝密码,并且不允许两次并行尝试进行同一登录,则一次尝试必须完成(确定或错误),然后再尝试另一次,所有非字典式6字母全小写字母否-特殊字符密码需要9年的时间才能破解。


0

密码要求的复杂性应与网站内容相平衡。银行应要求一个非常复杂的密码(大写,小写,数字和特殊字符)。但是,如果内容很琐碎,例如保存的搜索和跟踪编号,则应放宽密码要求。最少6个字符的长度就足够了。否则,它只会使您的听众烦恼并阻止他们创建登录名。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.