密码最佳做法


30

鉴于最近发生的事件是网站管理员“黑客”学习并重试了密码,那么关于密码的最佳做法,我们可以向所有人提出什么建议?

  • 在站点之间使用唯一的密码(即从不重复使用密码)
  • 避免在字典中找到单词
  • 考虑使用非英语的单词或短语
  • 使用密码短语并使用每个单词的首字母
  • l33tifying并没有太大帮助

请提出更多建议!


4
技巧三与技巧二矛盾。
2009年

@Oddmund:如果您同时使用英语和非英语,则不会。即,西班牙语中的One是uno,因此请使用OneUno。或单词拆分:单词的一半来自英语,另一半来自另一种语言。西班牙足球是足球,因此请使用足球。然后从那里递归。
凯文M

@Oddmund:否。使用来自(非英语)语言的单词并不意味着可以在((非英语)词典中找到它们
user1092608

Answers:


25
  • 使用不是由常用词或名称组成的密码。字典攻击使用具有数百万个单词的字典,而且速度非常快。

  • 使用长密码。我倾向于使用密码短语。我选择一个短语,句子或韵律,并找到某种方式使用大量非字母数字字符,以便我的单词不是字典单词。

  • 请勿将相同的密码用于多个登录服务。花一些时间想出一个选择密码短语的公式。这使您可以使用许多不同的密码,如果忘记了这些密码,则可以通过反复试验来重新创建。

  • 如果需要,一定要写下一个好的,长而安全的密码并将其隐藏在某个地方。至少比使用容易记住的弱密码更好。

  • 如果以上建议无法解决,请使用具有较长安全密码的密码管理器,然后对其他所有内容使用随机字符密码。将密码管理器随身携带在加密的USB闪存驱动器上(当然要备份)。


有谁知道为什么我在“密码短语”中使用粗体似乎不起作用?当我处于编辑模式时,在预览中看起来还不错。
阿诺德·斯彭斯2009年

您使用的是两颗星还是一颗?试试一个...
Mikeage

1
@Mikeage:一个星号=斜体;两个=粗体。我建议尝试<b>或<strong>;我怀疑将其嵌入一词会混淆SO的解析器。
德罗伯特2009年

1
我会尝试在“通过”之后放置一个空格,以便您通过[一个空格] [星号] [星号]短语。如果这不起作用,请尝试在第二批星号和句号之间放置一个空格。
pbz

3
+1以“写下一个好的,长而安全的密码并将其隐藏”。在1980年代,有人开始警告用户不要写下他们的密码,这种行为会卡住,因此我们所有人的处境都会更糟。
波特曼,

7

我发现密码短语有几个问题:

  • 许多站点都有密码长度的上限(例如20个字符),这很愚蠢,但是您可以做什么。
  • 其他网站不允许在密码中添加空格。
  • 盲目输入长文本容易出错-尤其是当您不是优秀的打字员时。
  • 键入50个字符的密码短语比使用15个字符的好密码要花费更长的时间。

对于这个问题,我的解决方案是使用密码短语作为实际密码的助记符。例如,我可以摘录威廉·亨利·戴维斯(William Henry Davies)的几首伟大诗句(76个字符):

没时间看,当我们经过树林时,
松鼠将坚果藏在草丛中。

然后,我将选择每个单词的前几个字母,以创建以下非常好的16个字符的密码:

Nttswwwp,Wshtnig

使用诗歌特别好,因为它更容易记住,并且在要求您更改密码时,您只需选择下一首诗即可。


3
另外,每次密码更改时,您都可以学习一首新诗,从而获得一些文化要点。:)
乔纳森(Jonathan)

4
我已经用歌词演唱了这张照片。首先,我倾向于哼唱这首歌。其次,让这首歌连续一个月留在我的脑海里……
卡拉·玛菲亚(

4

在向他人指示密码制度时,不仅要求他们使用唯一的,比阈值长的密码,包含大小写混合的字符,特殊字符等。而且还要教育用户有关密码管理器或构造/记住这些密码的方案。 。如果不这样做,用户将写下密码或找到其他不安全的方式来“记住”密码。


对于普通的非技术用户而言,教授密码管理器是一个不好的例子。您正在以一种不好的做法(写下密码)进行交易,以获得更好的选择,但是仍然是一种不好的做法(以电子方式存储它们)。密码管理器中的漏洞(例如弱主密码,远程利用等)可能导致灾难。
Spoulson

换句话说,我也不会高价值的密码储存在同一个密码管理器,像银行登录等
spoulson

我不同意就布鲁斯·施耐尔(Bruce Schneier)而言,建议使用具有密码的密码管理器,而不要使用在站点之间重用和/或重新排列的弱密码。
Martin C.

@spoulson:盲目依赖技术始终是危险的。.我个人认为,高度加密的密码库(密码不错,请注意,您)与登录提示一样安全。如果您信任操作系统供应商来加强登录名,则也可以信任密码管理器作者。偏执狂规则..不要相信任何人..等等...但是最终,它总是等于信仰的飞跃...
lexu


4

如果您在记住密码时遇到麻烦,请使用一些众所周知的文本。选择一个句子,使用每个单词的 n 字母作为密码,保留标点符号。(例如,从1个生成的密码ST这个答案的第一句的字母可能是“Iyhtrp,uswkt”)。您可以通过将其更改为大写并添加一些特殊字符来使其更强大。


这是一个非常好的方法!
Techboy

3

不要使用密码,这是您首先要出问题的地方。使用随机字符集合(最少8个字符)或密码短语。您可以想出一个公式为每个站点生成不同的密码,例如ILikeStackOverflowOnions或ILikeServerFaultOnions;这样可以确保您免受外部人员的伤害,但是,如果实际的网站遭到黑客入侵且密码没有添加盐渍,或者管理员首先被损坏,则仍然可能导致问题。


1+但是为什么密码短语中没有空格或标点符号?这给他们增加了力量,例如“我喜欢橄榄和serverfault.com!” 这应该是一个非常强大的密码,但是却非常快速且易于键入并记住^^(某些真正古老或晦涩的系统皱着眉头在密码中的空格处-告诉他们下地狱;)
Oskar Duveborn

是的,空格和标点符号当然是加号。但是我发现有一些非常烦人的不安全站点,不会使用标点符号输入密码,我曾经有一家银行没有:-(
Adam Gibbins,2009年

1
@Oskar Duveborn:请注意,您可以将密码更长一些,而不是在密码中使用标点符号。从数学上讲,结果(可能的密码数量)是相同的。如果您将PW稍长一些,甚至可以使用仅包含小写字母的字符。
sleske 2010年

是的,我只是想使用标点符号来简化人们的记忆。密码更长的好处只是一个奖励;)三年前,我还拥有一家没有空格的银行。这些天虽然还好。而且较旧的unix系统最多可包含8个字符,但是,您看不到键入的内容,因此总是假装在其中也输入了整个30个字符的密码;)
Oskar Duveborn 2010年

3

定期更改密码。我上班的时间是30天。这是一个PITA,但可以在有限的时间范围内降低被盗密码的价值。加上复杂的AD密码策略,该密码必须至少为8个字符,并包含大写,小写,数字和符号。

作为补充,我们使用自助密码管理器服务。它提供了一个自定义的Windows GINA,该功能提供了一些功能,使用户可以在忘记密码的情况下重置密码,或者在用户多次忘记密码时对其进行解锁。密码管理器应用程序要求用户注册该服务,仅提供一堆个人信息,只有当他们需要用户重置密码/解锁帐户时,他们才知道这些信息以后会被用作问题。


3
通常,强制执行基于时间的密码更改是一种非常糟糕的做法。我几乎可以保证大多数人密码的最后几位将包含上次设置的月份或年份。
安德鲁(Andrew)2010年

3

我相信应该生成密码,而不是由用户考虑。这样可以避免使用密码容易猜测的所有愚蠢问题。

我喜欢使用pwgen,它会生成如下密码列表

Bai4phei Gohh7Too cee3Iegh eegh7Aiy kaing6Mu ohBi0woo oH7bieRo Opai1Vov
sahpee6Y joo3iKe4 iegai4Ae chi1Akee se2vaDoo Xivae4ew eN4aquoh ahMaeye1
Ci3mie2e Oosh3aiy pueX1OoF uXee7chi theo4doT ied6Haeg Pey3beer viZeish2 
Itoogoa3 RaeD6woh IeJ9guLo Afuozii9 equahGh7 ui9uaJae qui4Geis Eikib2ko 
Ua7viequ iedieY9Y Deihae1u uu6aR7xa ThooG6mu HeiZ7jai choo7ohM jael0Lai 
Beelae6s wu0uTieK eiX8equu uPeeS2ub WaiceeP1 tha2Ohz1 xeiroh9E Eak6leiy 

但实际上任何pw生成程序都可以。pwgen的优点之一是它试图通过包含一些元音来使密码(有点)令人难忘。


我就是那样做的。生成一串密码,并选择一个不具有模糊字符,这样的1,L I等
约翰哈德尼斯


2
  1. 使用强密码。
  2. 不要重复使用密码。
  3. 考虑到#2,面对大量不同的帐户,请使用PwdHash之类的工具。



2

Hak5刚刚播放了一集,演示了Remote Exploit中的一个工具,该工具使用许多字符串并生成包含所有组合(大写,小写,leet拼写等)的字典。因此,您可以输入目标名称,孩子的姓名,生日或您了解的有关目标的其他信息。它生成的词典可以用作强力输入弱密码的输入。

道德:避免在密码中使用个人信息


1
另一方面,前一段时间我在一个网站上工作,该网站的客户密码要求之一是“不能以任何形式的词典单词”(leet等),因此我必须构建一个类似的生成器来识别禁止使用的所有各种变体,更改速度足以在更改密码时在回发周期内运行。
GalacticCowboy

好一点,您限制的选择越多,可能的选择就越清晰。
Spoulson

1
我不确定@spoulson是否表示相同的意思,但是:如果您积极禁止字典中的任何单词,那么您基本上不是在限制可能的密码数量吗?因此,从理论上讲,它使查找密码更容易吗?
Arjan

这个想法是要删除密码中可识别的模式,该模式可能受到字典攻击或容易被第三方记住。删除创建弱密码的能力不会使密码方案变得更弱。
spoulson

@Ajran:是的,您当然是对的,禁止“弱”密码有效地减少了密码的位长(给定的最大长度)。但是,仅当您实际上不允许密码空间的不可忽略的部分时才重要,希望情况并非如此。
sleske

2

如果您知道非英语语言的单词或短语,则可以将其用作密码的一部分。例如,我通常使用日语单词作为密码的一部分,这可以防止字典攻击,但可以记住它们(与随机生成的密码相反)。


2
不要假设攻击您密码的人只会说英语。不要以为只会说英语的攻击者就不会在他的密码破解者中添加其他语言词典。

2

我开始使用最初由Bruce Schneier设计的Password Safe来存储任何网络密码。我对密码安全性有很强的密码,所有其他密码都是自动生成的,并且从未在整个网站上重复使用。

该软件还具有诸如使密码过期之类的功能。

我认为(考虑到安全性强的密码)是网站密码的最佳折衷和最安全的方法。


1

对于家人和朋友,我通常会说,只要发生以下两件事,使用宠物名字和母亲娘家姓和名字之类的东西很酷:

  • 串联至少两个名字(例如:母亲的娘家姓+宠物的名字)
  • 包含大写和特殊字符。

我猜对于低安全性的应用程序来说还可以。但是您不希望为例如在线银行网站这样做。
David Z

坏主意要停下来。这太可预测了,并且会在各处鼓励使用弱密码。应该给家人和朋友的建议与给雇员的建议相同。
2009年

@ i-moan我倾向于同意,但是我将其用作朝着正确方向迈出的一步。如果我可以让他们使用这种方法,而不是仅仅使用宠物名称或其他名称,我认为这是朝正确方向迈出的一步
Christian Hagelid 09年

好评论。您容易记住的事情,但又混杂在一起,让其他人难以猜到
Techboy,2009年

1

设置强制性密码有效期限时,请选择7的因子,而不是几天(例如30或60天)。

30天到期的结果可能是要求用户在假期或周末更改密码,并且第二天上班时可能会感到惊讶。

如果将到期时间设置为7倍,这将确保密码更改日期与上次更改在同一天。


实际上,大多数具有到期日期的系统都有两个到期日期:在第一个到期之后,您需要在下次登录时更改密码。仅在秒数通过一次pw更改之后,实际上才发生过期。因此,通常这不是问题。
sleske

1

如果您有多个站点用于同一用户群,那么我必须强烈建议某种形式的单点登录(例如Shibboleth)。当用户为多个站点使用不同的密码时,他们往往很难记住所有密码。大多数人很容易记住一个或两个密码,而三个用户可能会将它们记在一个秘密位置。如果超过四个,用户可能会把它们全部写在便条纸上,然后将其应用到办公桌或显示器上。

密码不必过于复杂,尽管它们必须足够复杂以防止第一次或第二次尝试。只要您的系统/站点采取某种安全措施来限制登录尝试的次数,那么密码就不必太复杂。

例如,如果您的系统每小时限制登录3次,则基本密码(例如“ Cindy65”)就足够复杂了。尽管黑客可能知道用户的真实姓名是Cindy,但他确实永远不会知道她的生日是1965年。他的尝试自然是“ cindy”,“ l astname”,“ Cindy”,L astname“,尽管这样时间他被封锁了。

尽管这可能是一种简单的情况,并且使用了简单的密码,但是如果您的管理员已将所有正确的服务器端都设置好了,那么这确实是需要的。我们也可以要求稍微复杂一些的密码,以便于记忆,例如密钥的随机组合。符号和大写字母也有很大帮助。

我们只需要记住,我们越难将其制作在用户身上,他们越有可能将其公开记录下来。

我总是喜欢让用户做的一件事,就是将他们的名字与所用药物的名称,喜欢的食物,最好的朋友的名字等联系起来。这些字典单词的组合虽然简单,却几乎不可能破解。

例如:CindyProzac,WilliamCodene,JoePetertherabbit

祝好运。


0

不要写下来。如果这样做,请将其放在安全的地方。而且也不要写下那个组合。


2
上一次有人闯入家庭偷密码是什么时候?对于家庭用户而言,写下密码通常是最安全的,因为它鼓励使用强壮,独特且难以记住的密码。
波特曼,

我同意本-尤其是对工作环境
Techboy

0

如果安全要求确实很严格,我会尽量避免使用密码。考虑使用基于ssh密钥的身份验证,智能卡上的客户端证书等。但是,要使其正常工作需要大量的技能和预算,因此应进行适当的风险评估。

如果您决定使用密码,我会遵循capar和lexu的建议。


0

密码长度的限制很愚蠢。(通常将密码限制在6-8个字符之间,但是在现代系统上没有任何意义)。

需要频繁更改密码会鼓励用户写下自己的密码并选择更简单的密码。这是威胁的权衡,您必须考虑哪种威胁更相关。

要求用户在完全由8个字符组成的密码中包含“特殊字符”,而不是只允许由字母组成的30个字符的密码,这没有任何意义。

不要给用户一个明显的密码,并要求他们更改它。他们不会。要么要求他们在首次登录时进行更改,要么为他们选择一个强度高的密码(知道他们将其记录下来),或者让他们选择一个强度高的密码。


0

我们训练用户选择密码短语并使用每个单词的第一个字母。
WTOUTPPAUTFLOEW-添加零或3(极具代表性),改变两次大写锁定,您会发现没有字典会选出来的东西,但仍然很容易记住。

但是,请确保您不会根据公司的口号/愿景声明等将他们的密码更改为密码。


-1

为防止该网站管理员发生什么情况,并假设您有权访问Unix Shell或Cygwin,可以使用

$ echo -n *password* | md5sum -

d1b13e9abbe4edb1b07317241969376e -

并对照MD5数据库(例如http://gdataonline.com/)检查该值。确保它没有出现在其中。

另外,这是一个更多原始MD5字典的示例,我只是通过谷歌搜索该哈希值(警告:大文件)而得到:https : //secure.sensepost.com/sp-hash/jebwy


1
是的,这是将新哈希提交到其工作队列的完美方法,以便在某个时间点,通过简单的Google搜索哈希即可显示密码。我强烈建议不要向这些站点提交哈希值。
serverhorror

2
你的哈希是“ jeffa”顺便说一句...
serverhorror
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.