我一直主张使用长而不是复杂的密码,但是大多数安全人员(至少与我交谈过的人)在那个方面反对我。但是,XKCD的分析对我来说似乎很重要。
我遗漏了一些东西吗?还是扶手椅分析的声音?
#1 楼
我认为这部漫画的最重要部分,即使是要弄错数学(没有错),在视觉上也要强调,选择强密码(或实际上是密码策略)有两个同等重要的方面,一般而言):难以猜测
难以记忆
或者换句话说:
计算机方面
人为方面
经常,在讨论复杂的密码,强大的策略,有效期等(以及概括地说,所有安全性)时,我们倾向于过多地关注计算机方面,而跳过
特别是在密码方面(尤其是对于普通用户而言,是密码的两倍),人的方面通常应该是首要考虑的问题。
例如,严格的密码复杂度策略多久执行一次通过IT(例如XKCD中显示的密码)导致用户记下密码,然后将其点击到屏幕上?这是直接过多地关注计算机方面而以牺牲人类方面为代价的直接结果。
我认为这是XKCD睿智的核心信息-是的,容易猜测很不好,但是很难要记住的也是如此。
这一原则是正确的。我们应该更经常地记住这一点,即AKA AviD的可用性规则:
以可用性为代价的安全性以牺牲安全性为代价。
评论
您的最后报价值得一千票。
–卡米洛·马丁(Camilo Martin)
2012年3月20日下午4:07
有关xkcd背后的数学的深入分析,请参阅下面的Thomas答案。他的回答说明了为什么xkcd正确地进行了数学运算,是对它实际上并不重要的完美补充。
–AVID♦
13年3月16日在21:56
@ njzk2这听起来很像是一个短语,将密码保存在桌子上的人们会通过欺骗自己以为自己是安全的而放心。如果我的房子被抢劫了,我会更关心的是劫匪拥有我的银行密码,而不是担心丢失我的现金,珠宝等。特别是当我一天结束时才发现盗窃案的时候。将密码保留在办公桌上的唯一遥不可及的理由是,密码是不重要的东西的密码,因此,如果有人盗用了密码,这没什么大不了的。
– SantiBailors
16年2月9日在10:07
@SantiBailors同意,这不是一个好习惯。但是我认为,对于那些很难记住一个好密码的人来说,总比选择一些琐碎的东西(如狗的名字)要好。
– njzk2
16年2月10日在14:55
使电池装订方法更好的另一件事(通过AviD对可用性的观察)是越来越多的移动设备。在移动键盘上,“ leetspeak”方法需要大量啄和符号表来回移动,而电池装订方法可以更轻松地键入,并且出错的风险较小。尝试自己计时,以多快的速度在iPhone的屏幕键盘上输入任一示例密码。
– Shadur
17年2月2日在14:20
#2 楼
以下是这部漫画中数学的完整解释:漫画中的小方框代表对数刻度的熵,即“位”。每个方框意味着熵的额外一位。熵是在蛮力攻击中输入正确密码的平均成本的度量。我们假设攻击者知道确切的密码生成方法,包括该方法中随机选择的概率分布。 n位的熵意味着平均而言,攻击者在找到正确的密码之前将尝试2n-1个密码。当随机选择是等概率时,当有2n个可能的密码时,您就有n位熵,这意味着攻击者平均将尝试使用其中的一半。具有平均成本的定义更为通用,因为它捕获了在密码生成过程中(通常发生在人类用户的脑袋中)随机选择不一致的情况。我们将在下面看到一个示例。
使用“位”的要点是它们加起来。如果您有两个彼此独立生成的密码半部,一个具有10位的熵,另一个具有12位,则总熵为22位。如果要使用非对数标度,则必须乘以:前半部分的210个均匀选择和另一半的212个均匀选择组成210·212 = 222个均匀选择。用小盒子可以轻松地以图形方式传达加法内容,因此可以使用位。
话虽如此,让我们看看漫画中描述的两种方法。我们将从第二个开始,这更容易分析。
“正确的马”方法
此方法的密码生成过程是:获取给定的(公共)2048个单词的列表(假定是常用单词,易于记忆)。在此列表中选择一个随机且相互独立的四个单词:随机选择一个单词,然后再次随机选择一个单词(可能与第一个单词相同),依次类推第三个,第四个话。将所有四个单词连接在一起,瞧!您有密码。
每个随机单词选择值得11位,因为211 = 2048,并且至关重要的是,每个单词都被统一选择(所有2048个单词具有相同的1/2048出现概率)且独立于其他单词(您不会选择一个单词以使其匹配或不匹配先前的单词,尤其是,如果该单词恰好与先前的单词相同,则不会拒绝)字)。由于人类根本不擅长随机选择大脑,因此我们必须假设随机单词的选择是通过物理设备(骰子,硬币翻转,计算机...)完成的。
这样,总熵为44位,与漫画中的44个框匹配。 >
从给定的有意义的单词的大列表中选择一个随机单词。
随机决定是否将第一个字母大写。
对于有资格使用“传统替代”,则应用或不应用替代(针对每个字母随机确定)。这些传统的替换可以是例如:“ o”->“ 0”,“ a”->“ 4”,“ i”->“!”,“ e”->“ 3”,“ l”-> “ 1”(规则给出了众所周知的详尽列表)。
添加标点符号和数字。
漫画将随机单词的等级定为16位,这意味着在65536个单词的列表中进行统一选择(在较长列表中的选择不统一)。有比英语单词更多的单词,大约为228000个,但是其中一些单词很长或很短,其他单词很少见,以至于人们根本不会记住它们。 “ 16位”似乎是一个合理的数字。
首字母的大写或不大写名义上是1比特的熵(两种选择)。如果用户在脑海中做出选择,那么这将是用户的安全感(“大写显然更安全!”)和用户的懒惰(“小写更容易键入”)之间的平衡。同样,“ 1位”是合理的。
“传统替换”更为复杂,因为合格字母的数量取决于基本单词;这里是三个字母,因此是3位熵。其他单词可能还有其他计数,但似乎可以合理地发现,平均而言,我们会找到3个合格的字母。这取决于假定为给定约定的“传统替换”列表。
对于额外的标点符号和数字,漫画给出1位,表示第一个选择(数字或标点符号),然后是4位符号和3位数字。数字计数值得解释:这是因为人们被要求选择一个随机数字时,根本不是统一的。数字“ 1”的选择几率是“ 0”的5到10倍。在心理因素中,“ 0”具有不好的含义(无效,黑暗,死亡),而“ 1”则具有正面的含义(获胜者,冠军,最高)。在中国南方,“ 8”非常流行,因为“ 8”一词的发音与“运气”一词的发音相同。同样,由于与“死亡”一词的谐音而避免了“ 4”。攻击者将首先尝试数字为“ 1”的密码,从而使他能够从用户选择的不统一中受益。
如果数字的选择不是由人的大脑而是由公正的设备决定的,那么我们得到的熵为3.32位,而不是3位。但这已经足够接近用于说明目的了(我很理解Randall Munroe不想绘制部分框)。
用于标点的四位有点低估了; ASCII中有32个标点符号,在普通键盘上都相对容易输入。这将意味着5位,而不是4位。此外,如果人类选择了该符号,则某些符号会比其他符号更常见,因为人类很少想到“#”或“ |”。作为“标点符号”。
然后总计28位就差不多了,尽管它取决于某些随机选择的精确细节以及“传统替换”列表(这会影响平均值)符合条件的信件)。使用计算机生成的密码,我们希望大约30位。相对于“正确的马”方法的44位而言,这仍然很低。在这种情况下可以预期的精度-这是网络漫画,而不是研究文章)。它仍然需要满足以下条件:
攻击者知道“密码生成方法”。这是@Jeff不相信的部分。但这是有道理的。在大型组织中,安全员会发布此类密码生成准则。即使没有,人们也会拥有Google和同事,并且倾向于使用大约十几套规则之一。漫画包含以下规定:“您可以添加一些位以说明这只是少数几种常见格式中的一个。”
底线:即使您保持方法不变“秘密”,这不是秘密,因为您或多或少会有意识地遵循“经典”方法,而其中没有很多。
随机选择是随机且统一的。人类用户很难做到这一点。您必须说服他们使用具有良好随机性的设备(硬币,而不是大脑),并接受结果。这是我原始答案的要点(以下转载)。如果用户更改了选择,如果仅通过生成另一个密码(如果他们获得的“不满意”密码),则他们会偏离随机一致性,并且只能降低熵(最大熵是通过均匀随机性实现的;您不能变得更好,但你会变得更糟)。
正确的答案当然是@AviD的答案。漫画中的数学是正确的,但重要的一点是,好的密码必须既难以猜测,又易于记住。漫画的主要信息是表明常见的“密码生成规则”在两点上均失败:它们使密码难以记住,但也不难猜测。
它也说明了失败的原因。评估安全性的想法。 “ Tr0ub4dor&3”看起来比“正确的大脑电池装订”更随机;只是出于错误的理由,即出于普遍的(但被误导的)信念,即密码长度会增强强度,相同的思想才能对后者给出好的评价。它不是。密码不强,因为密码太长;它之所以强大是因为它包括很多随机性(我们一直在讨论的所有熵位)。额外的长度通过为随机性提供更多空间来增加强度。尤其是通过允许容易记住的“温和”随机性,例如电马东西。另一方面,密码太短肯定是弱的,因为只有太多的熵才能容纳5个字符。
请注意,“难以猜测”和“易于记忆”并未涵盖有关密码生成的所有内容;还有“易于使用”,通常表示“易于键入”。长密码是智能手机上的一个问题,但是带有数字,标点符号和混合大小写的密码甚至更糟。
原始答案:
漫画假定选择一个随机的“公共”词会产生大约11位的熵-这意味着大约有2000个公共词。这是一个合理的数字。当然,诀窍是进行真正的随机选择。例如,以下活动:
随机选择四个单词,然后按照最有意义的顺序记住它们;
如果这四个单词看起来很难记住,则废弃并选择其他四个;
用足球运动员的名字替换其中一个单词(攻击者永远不会猜到这个!);
...都减少了熵。要让用户实际使用真正的随机性并接受结果并不容易。
相同的用户可能会抱怨输入长密码的麻烦(如果输入涉及智能手机,我必须说我很了解他们)。不满意的用户永远都不是一件好事,因为他将开始寻找对策,这将使他的生活更轻松,例如将密码保存在文件中并使用复制和粘贴“键入”密码。用户通常会以这种方式令人惊讶。因此,长密码容易在安全方面适得其反。
评论
我认为此答案缺失的关键一件事是提到字典攻击。对于那些精通这种东西的人来说,很显然在熵计算中考虑了字典攻击,但是每一次我听到有人批评这个xkcd条带时,都是因为作者只考虑了蛮力攻击,攻击者可以使用更复杂的字典攻击。那里的想法是错误的,但是我认为字典攻击只需要提一下反对者就可以了,并在这里消除混乱。
–Score_Under
16-4-10在1:47
这里的错误:从字典中随机选择的4个单词组成的字符串...也是从26个字母的字母表中选择的字符串....在这方面也必须考虑其熵。因此,字符串中字母的总数必须使得它们不会降低从“单词” POV看到的熵。
– ARi
16-10-13 7:00
@Score_Under相反,此答案与漫画一样都假定是字典攻击。
–卢克·索扎克(Luke Sawczak)
17年6月8日在18:03
我喜欢您和AviD如何链接彼此的答案。
– NH。
17年8月14日在2:01
@NH发生了。
– jpaugh
17-10-10在14:40
#3 楼
这两个密码基于rumkin.com的密码强度检查器:长度:11
强度:合理-此密码在密码上是相当安全的,熟练的黑客可能需要一些良好的计算能力才能破解它。 (很大程度上取决于实现!)
熵:51.8位
字符集大小:72个字符
br />正确的马力电池钉书钉
长度:28
强度:强-此密码通常足以安全地保护财务记录等敏感信息。
熵:104.2位
字符集大小:27个字符并且我们已经在这里看到了确认。 。
换句话说,就是7211 <2728。
现在,没有明确解决的问题:
这些密码是否必须手动输入?如果是这样,机械地输入密码的每个字符有多困难?在键盘上很容易,但是在智能手机或控制台上……就不那么容易了。
记住这些密码有多容易?
密码攻击的复杂程度如何?换句话说,他们是否会实际尝试使用常见的方案,例如“ xkcd”所隐含的“用空格分隔的字典单词”,“带标点的完整句子”或“ leet-peak numb3r替换”?至关重要的是,这就是XKCD证明将第一个密码的熵减半的理由!
第三点几乎无法回答,我个人认为在实践中极不可能。我希望这将是一路死胡同的蛮力,以取得低垂的果实,其余的将被忽略。如果没有低垂的密码果实(哦,总会这样),它们将继续进行下一个潜在的受害者服务。从数学上讲,但是它暗示的上帝般的预测性密码攻击在很大程度上是一个神话。恕我直言,这意味着这两个特定的密码实际上是一种清洗,可以提供类似级别的保护。
评论
@Jeff,这个答案有缺陷。您依靠rumpkin进行密码熵估计,但是rumpkin的估计显然是伪造的。再次查看xkcd漫画:它在视觉上描述了其熵估计的合理性(这就是小盒子正在做的事情)。 xkcd的熵估计对我来说是正确的,而您的熵估计看起来是错误的(过于乐观)。我完全不同意您的结论,也看不出您从何处得到结论。
– D.W.
2011年8月11日在2:46
评论不作进一步讨论;此对话已移至聊天。
–Rory Alsop♦
15-10-27在8:22
#4 楼
我同意长度通常比复杂性更好。但我认为,争议的焦点不在于此,而在于您想要拥有多少熵。漫画说,“可能的攻击”是每秒1000次猜测:“对弱的远程Web服务的可行攻击。是的,破解
被盗的哈希更快,但这不是普通用户应该担心的
“
,但是我看到了更多的共识,即网站运营商无法随着时间的推移保护其哈希数据库不受攻击者攻击,因此我们应该设计密码和哈希算法,以抵御窃取哈希以进行脱机攻击。如如何安全地对密码进行散列所述,离线攻击可能会是巨大的。
这使问题更加棘手,网站除了要求用户为每个密码记住自己的密码外,还应该考虑其他方法网站,例如通过OpenID和OAuth。这样,用户可以获得一种良好的身份验证方法(甚至可能涉及硬件令牌),并利用它进行Web访问。和bookmarklet工具。在服务器上使用上述问题中描述的技术(即bcrypt,scrypt或PBKDF2),并使用以下建议:是否有生成特定于站点的密码的方法,该方法可以在我自己的脑中执行?有关在用户/客户端上使用SuperGenPass(或SuperChromePass)的信息。
评论
有趣的是,从用户的角度来看,这意味着密码的选择几乎是无关紧要的,除了“ Password1”类型的大脑损伤外!
–杰夫·阿特伍德
2011年8月11日,0:02
是的,这取决于威胁是什么。我可能只是开始写风险=威胁x脆弱性x每个问题的风险。对于托马斯而言,这些是多维叉积运算,我假设在欧几里得空间中使用右手坐标系。
–this.josh
2011年8月11日下午5:11
@jeff一点也不。用于supergenpass的主密码仍然应该是一个不错的密码,您还应该在自己的javascript中使用其“隐身”密码,以及通过其“自定义”选项使用的10个以上字符的密码。因为您像往常一样假设攻击者可能会尝试基于Supergenpass的密码,例如也许是因为他们知道您使用它。但是用户只需记住一个好密码。
–nealmcb
2011年8月11日在5:32
@Elazar我在各种工作中都可以访问各种数据库。在大多数情况下,没有人会注意到我是否将副本转储到文件中,然后走了出去,撤消了用户在其他站点上方便重复使用的那些短而无关的密码,然后又从那里去了。外部参与者入侵数据库并不是正确地散列密码或用户选择强密码的唯一原因。
–user2213
11年8月11日在21:58
``@nealmcb @elazar不仅仅是方便的事情。如果您允许使用弱密码或强密码,那么人们会以一定的方式使用密码,例如,您完全不会想要这个,然后您完全不会想要这个。另外,如果其他服务没有施加相同的限制,则它们会受到影响。因此,良好的散列至关重要-如果数据库已受到威胁,则应进行计划。尽管您是对的,但是如果您确实经常遇到妥协,您可能会遇到更大的问题。
–user2213
2011年8月12日在8:34
#5 楼
我认为这里的大多数答案都没有抓住重点。最后一帧是关于记忆的难易程度。正确的电池装订钉(从内存中键入!)消除了密码安全性的根本危险-Post-IT注释。使用第一个密码,我的钱包(如果我很聪明)或办公桌抽屉(如果我很笨)中都有一个Post-IT便笺,这是一个巨大的安全风险。
让我们假设密码短语选项仅与基本单词选项一样安全,那么我的情况就更好了,因为我消除了密码存储中的人为错误。
即使我写下了密码短语,它看起来也不像密码。它可能是购物清单-面包牛奶鸡蛋糖浆。但是5t4ck3xCh4ng3很明显是一个密码。如果碰到这一点,那将是我要做的第一件事。
评论
我对单词的奇数顺序感到困惑。有趣的是,我认为最终的帧图像带有“马:这是电池钉。我:是的!”更容易记住,因为这是实际句子的工作方式。而且更强..
–杰夫·阿特伍德
2011年8月11日在16:43
也许我们应该只引入图形密码,您必须在最后一帧图像中画出马匹和电池钉。 ;-)
– TrojanName
11年8月12日在11:23
绝对,正如我在回答中所说的那样-密码安全不仅与熵有关,还与人的方面有关,以及用户如何记住(或不记住)。熵是绝对重要的,但这还不是故事的结局。
–AVID♦
11年8月13日在21:11
使用具有非常复杂的密码的便利贴肯定会比记住错误的密码要好。通常,您是在保护自己免受远程攻击,而不是有人在您的桌子上偷偷摸摸(这是办公室安全的问题)。同样,使用便利贴,您可以轻松地伪装密码或稍作更改(“每个1代表2”,或者密码仅为所写密码的一半,等等),以使其对其他任何人都无效。你太简单了。 (还知道这有多大历史了,对不起,但我仍然认为这适用)
– pzkpfw
2013年3月1日7:09
6年后的记忆-“正确的电池装订”。 (向上滚动并检查-是!)
–克里斯·库德莫(Chris Cudmore)
17年8月4日在12:55
#6 楼
为了补充Avid的出色答案,该漫画的其他关键信息包括:计算密码生成算法的熵的适当方法是计算其输入的熵,而不是计算其输出的表观熵(如rumkin.com,grc.com等)。
较小的算法变体,例如“ 1337-5p34k”替换和“前置/附加点和数字”,其熵要比大多数算法少用户(或系统管理员)认为
(更巧妙地),密码短语的熵取决于单词表的大小(和单词的数量),而不是字符的数量,但仍可以轻松地提供足够的熵来防范“生成算法感知”的暴力攻击
对于这些消息,我们不妨添加:
作为用户,您通常无法控制网站运营商是否使用salting,bcrypt / scrypt / PBKDF2可以确保其密码哈希安全,甚至可以确保它们首先哈希密码-因此,您应该选择对密码有意义的密码n他们不这样做的依据(例如在确定密码/短语的大小时假设每秒10 ^ 9个猜测,不要重复使用密码,不要使用简单的“附加站点名称”技术)-这可能会使使用LastPass / KeePass / hashpass不可避免。除非您使用了多个变量,否则不要对熵增加太多(英语中只有〜500K个单词,仅19位,仅比Randall 2048个单词列表中的一个单词多8位) />“随机词”必须真正随机才能起作用-选取歌曲歌词/电影引号/圣经经文,熵要低得多(例如,即使完全随机选择,圣经中也只有700K个词,因此只有〜4M 5-10个单词的圣经短语,只有22位熵)
评论
您是否考虑过圣经中可能有数十种不同的译本?詹姆斯国王,NIV,新美国标准,斯特朗的调和标准等等。那只是英文。假设有些美国人知道克林贡语中的许多经文(如果有适当的口音,则带有适当的重音)。这种硬币的反面也是一个有趣的概念。密码破解库可能会变成所有知识的存储库(乱序),因为大学术语论文,新闻广播和其他所有内容都将包括在内。
– Killermist
2015年4月14日在1:25
@killermist。那已经存在。 (在链接中搜索Klingon)
– jpaugh
17-10-10在15:06
#7 楼
我喜欢xkcd并同意他的基本观点-密码短语非常适合添加熵,但是认为他在第一个密码上低了熵。 >随机词典单词。 xkcd:16位,Me:16位。字典中包含〜65000个单词的随机单词是lg(65000)〜16。非常合理
加大写。 xkcd:1位,Me:0位(以常见替代方式达成)。 1位表示它是否存在-对于通过在密码中添加大写字母所增加的复杂性来说,这似乎非常低-通常,当在任意位置将其大写到密码中时,或者我可以想到其他许多可能的大写方案(将所有内容都大写) ,将最后一个字母大写)。我将用通用替换分组。
通用替换。 xkcd:3位,Me:13位。即使只有有时使用,leet的8个选择也会说出替代词?我可以想到平均大约2种方法来更改每个字母(例如a到
@
,4
; b到8
,6
; c到(
,[
,<
)并添加原始字母或大写字母,然后为9字母密码,如果我随机选择是否更改字母,我会将熵提高18(lg(4 ** 9)= 18)。但是,这个密码太高了。一种更合理的方法是说我随机选择说4个字母来“替换”(两个leet选项之一,再加上每个字母替换的三个选项的大写字母)。然后到lg(nCr(9,4)3 * 4)〜13位。在末尾添加两个随机字符“&3”。 xkcd:8位,Me:15位。我正在将其视为〜4个位置之一的两个字符(例如,在单词之前,在单词之前一个和之后,两个之后或两个单词都位于单词中间)。我还将让非特殊字符出现在这两个添加的字母中。因此,假设使用88个字符的字典(56个字符+ 10个数字,再加上32个符号),您将添加lg(4 * 80 ** 2)〜15位熵。
所以我的计算不是熵的16 + 2 + 2 + 8 = 28位,而是16 + 13 + 15 = 44位,与他的密码非常相似。
我也不认为以1000次猜测/秒的速度进行3天的猜测绝对是“容易”的,也不是可行的攻击机制。远程Web服务应检测到特定用户在一天之内尝试超过10000个猜测的用户并使其速度变慢。
其他攻击更有可能(例如,公共计算机上的按键记录器,服务处的恶意管理员记录密码并重新使用它们,如果未使用ssl进行窃听,以某种方式访问服务器(例如, SQL注入;闯入服务器机房等)。
我在必要时使用密码-例如,强加密(而不是像80位一样的44位,通常是8字骰子)密码加上两个或三个修改-例如,将单词拼写错误或将单词替换为以相同的两个字母开头的非diceware单词;例如,如果出现“酸奶”,则可以将其替换为“ yomama”。对于网站(不涉及金钱或安全权限),我不在乎通常使用的普通密码。
我确实注意到,对于经常使用的密码,我在输入密码方面要比在输入密码短语时好得多(当您不得不多次输入约50个字符的句子时,这很烦人)。同样对于密码,我通常更喜欢找一个随机的句子(比如随机的歌词),而不是没有人会与你联系在一起的那首歌,这并不是特别有意义),然后根据单词来输入密码(比如有时使用首字母;最后一个字母;或者用单词代替符号;等等)。例如。 L ^#g&B9y3r,摘自《少年精神》这样的气味。
TL; DR:Randall是正确的,如果您(a)假设您可以检查密码以1000 / s的速度持续三天,并且不会放慢速度,并且(b)可以对密码做出许多假设:基于一个稀有的字典单词构建,该单词大写,用一些leet替换一些常用的替换字母,并且带有符号并在末尾添加数字。如果仅稍微概括一下允许的替换(如我所做的那样)并在末尾添加字符,那么您会得到与密码短语相似的熵。
总而言之,对于大多数目的而言,两者都可能具有较低的威胁级别,因此是安全的。您更容易受到其他漏洞的攻击,Randall可能会同意[538] [792]。通常,具有密码要求(例如具有上/下/符号/数字)是好的,只要还允许使用较长的高熵密码短语即可。强制使用更短的密码来增加复杂性,但允许超过20个字符全部小写。一些用户会选择错误的密码短语,就像他们选择错误的密码一样(例如,“这很有趣”,在这里被愚蠢地声称在这里是安全的,或者使用孩子的名字或喜欢的运动队,这很可笑)。要求使用特殊字符可能使轻松猜测变得不平凡(例如,系数为100-1000-将密码从10个可能的猜测更改为10000非常重要)。当然,这不会阻止任何弱小的Web服务上的bot每秒允许数千次错误登录尝试,但是它会强制增加适度的安全级别,这将阻止在限制错误登录的网站上进行的努力,或者阻止简单的手动猜测密码。有点像标准的5针房门锁根本上是不安全的,因为任何人都可以在几分钟内学会捡起它(或打碎玻璃窗);但是在实践中,将门锁好是有好处的,因为它可以防止那些不懂工具的老练人使用(破窗带有警告他人的危险)。
评论
“远程Web服务应该检测到特定用户在一天之内尝试10000次以上猜测的用户并使其速度变慢。” <-请注意,该条带显示“不安全的Web服务”。当然,安全的Web服务会使速度变慢。但是,并非所有的Web服务都是安全的。
–比利·奥尼尔
2011年8月11日下午5:35
漫画是说所有这些可能增加熵的事情都是由用户愚蠢地完成的(仅将首字母大写;使用单词,并且仅在末尾添加随机数和符号;等等)。
– DanBeale
2011年8月11日下午6:31
@DanBeale:如果您不信任用户以适当的随机方式创建密码,您如何信任他们以适当的随机方式生成密码? “这很有趣”或“让我进入”或“蓬松就是蓬松”。
– jimbob博士
2011年8月11日13:44
@Billy ONeal:我阅读了不安全的Web服务部分,但认为它无关紧要。值得入侵的大多数服务(银行,主要电子邮件帐户,主要卖家(亚马逊等))应该进行基本的登录限制。 stackoverflow.com/questions/549/…不安全的Web服务不会;但是话又说回来,您可能无论如何都不应该向不安全的Web服务提供任何信息-它们可能会使用已知的众所周知的漏洞将明文密码存储在计算机上,而破解所需的时间不到3天。
– jimbob博士
2011年8月11日下午13:55
@DanBeale我认为关键是(某些)用户将始终按照他们的要求进行操作,而强迫用户使用带有至少一个数字,一个大写字母,一个标点符号等的“强”密码的服务是实际上适得其反(尽管它们看起来对管理层确实非常好!)
– RoundTower
2011年8月11日17:53
#8 楼
通过查看XKCD漫画以及现实世界中的密码示例,我们看到大多数用户的密码比XKCD示例弱得多。许多用户将完全按照第一个面板的说明进行操作-他们将使用字典中的单词,将第一个字母大写,进行一些替换,然后在其末尾添加一个数字和符号。这非常糟糕,特别是如果他们重新使用该密码(因为他们认为密码很强)或他们的帐户具有privs。
如评论中所述,Diceware是一种生成密码的好方法。 。我想看一下Diceware形式分析的易读版本。 (我怀疑,即使攻击者拥有您的词典并且知道您的密码短语长为5或6个字,Diceware还是比其他一系列密码生成系统要好。
,无论他们拥有什么密码,可以说服许多用户将其更改为已知值:
http://passwordresearch.com/stories/story72.html
经过评估,审核员能够说服35名IRS经理和员工向他们提供用户名并将其密码更改为已知值。审核员冒充IRS信息技术人员试图纠正网络问题。
评论
良好的旧社会工程学……永远的黑客。 codinghorror.com/blog/2007/05/phishing-the-forever-hack.html
–杰夫·阿特伍德
2011年8月11日在16:41
不确定为什么要对Diceware进行“正式”分析。这个概念很简单并且有效。不需要花哨的数学运算。它的字典有将近8000(= 2 ^ 13)个单词,因此一个随机的四字密码短语具有大约52位的熵(即,大约2 ^ 52个这样的密码短语,可能性均相等;即,攻击者需要尝试2 ^ 52个猜测来找到您的密码)。
– D.W.
11年8月12日在5:23
@ D.W。 Diceware不错,但用户很差。有人在此页面上发表评论,说他们滚动不止一次以获得令人难忘的密码。因此,如果给用户一些短语是可以的,但是如果允许用户自己使用diceware,会发生什么呢?重新滚动多少?哪个骰子词典中的单词最少/最受欢迎?
– DanBeale
11年8月12日在6:46
一个有用的分析将是查看那些2 ^ 52密码短语中有多少总是被用户抛弃而不容易记住。这样可以大大减少空间。
–Rory Alsop♦
2011年8月12日在8:57
@DanBeale,重新滚动几次不会严重损害熵。 (如果重新滚动最多4次,则熵的减少最多为2位,从52位减少到50位。没什么大不了的。)总的来说,重新滚动以找到令人难忘的密码短语的做法是可能是肯定的,因为它使密码短语更容易记忆,从而增加了用户使用/继续使用Diceware方案的可能性。正如您所说,最大的挑战是可用性。为此,需要的是可用性研究,而不是正式的数学分析。
– D.W.
2011年8月12日19:13
#9 楼
可悲的是,问题仍然是人类的问题。将用户推到字母数字+标点密码会更安全或更长吗?
如果您告诉他们使用用户alpha +数字,他们会写上他们的名字+生日。如果您告诉他们也使用标点符号,他们会将“ a”替换为“ @”,或者类似的可预测内容。
如果您告诉他们“使用四个简单的单词”,他们会写“我爱我的母亲”,“我爱你的母亲”,“感谢上帝,这是星期五”或其他一些难以预料的事情。
你赢不了。 4字密码的优点是,他们可以记住它,因此,如果您要强制用户使用强大的密码(由您生成),那么至少他们不需要将其写下来,或者给自己发送密码或其他愚蠢的电子邮件。
评论
但是您可能错过的是xkcd漫画可能是在提倡通过从2048字字典中随机采样为用户生成一个随机的四字密码,而不是要求用户选择四个任意字。如果您不熟悉该领域的历史,这可能并不明显,但是密码学家以前已经提出过基本思想。
– D.W.
2011年8月11日在20:10
#10 楼
兰德尔在这里基本上是正确的。一些补充:当然,您必须随机选择单词。经典的方法是Diceware,它涉及滚动5d6,每个单词有近13位的熵,但是这些单词比较晦涩。
英语中可能有2048个常用单词,但没有2048个英文短常用词。 Diceware列表(长度6个字母以下的6 ^ 5 = 7776个单词)中包含一些相当晦涩的内容,以及名称,复数形式,两个字母的组合,两位数字的组合,19xx等,我认为最高的四分之一会更好。如果您只使用英语中的前2k个单词,则会得到诸如“乘法”之类的东西,它是4字密码的一部分,有点长。因此,我很想看看Randall的建议单词列表。
“ Tr0ub4dor&3”类型的密码比Diceware的密码有更多明显的变体,因此在实践中,前者会有更多的熵。另外,以我的经验,如果经常使用“ Tr0ub4dor&3”类型的密码,实际上并不难记。过去,我已经使用
strings /dev/urandom
生成了多个密码,并且可以很方便地将它们用作登录密码。但是,今天我无法告诉您哪些字母大写。另一方面,我不确定是否可以在不混淆同音符号,复数形式等的情况下背诵一些Diceware密码。如果密码数据库被盗,像PBKDF2这样的增强器会添加一个单词或这些密码之一的有效长度更多,但是许多站点不使用它。 5个单词+ 1个增强器将产生约66位,对于彩虹表来说可能太大了。这使您不属于随意攻击者的范围,因此,除非您的帐户中确实有非常重要的内容,否则应该没事。
总之,Diceware类型的密码非常适合您偶尔键入但不一定每天输入的内容。如果您每天都使用密码,则Diceware可以使用,但是
strings /dev/urandom
密码会更短,无论如何您都应该能够记住它。如果您很少登录,则可以按照自己喜欢的方式选择一个密码,然后将其扔到密码管理器中(也应该将其用于更常用的密码),然后忘记它。如果一个站点有一些奇怪的限制,例如“无空格,至少一个大写字母和至少一个数字”,然后将单词与它们之间的5串在一起,并为第一个字母加上上限。对于Diceware,这将失去ε熵,而对于Randall的方案,则将无损失。
评论
我认为您高估了普通人记忆随机数据的能力。
–比利·奥尼尔
11年8月12日在18:13
对于密码数据库,无论如何都应该使用盐,因此彩虹表没有用。
–PaŭloEbermann
13年1月27日在18:13
字符串示例输出-n 10 / dev / urandom具有诸如t!AF | r)WlB,<^ p!* P,gvv和-WAWkG;]%>(。的意思吗? ?正确的马电池主食啤酒听起来对我来说是赢家,但熵仍然大致相同。
– Mikko Rantalainen
13年8月8日在10:34
助记词列表有1626个单词(熵:10.66位/单词),平均长度为5.76个字符(4-7个字符/单词)。所有的单词都是真实的,在国际上可以识别并且在语音上有所不同。作为非英语母语者,我觉得它们很容易理解。关于Diceware:我将Diceware方法与芬兰语单词列表结合使用,以生成密码短语,该密码短语我每天在工作中多次键入(长度对我来说不是问题)。芬兰语单词表比原始单词要好得多,因为所有单词都是真实的,并且奇数更少。
– mgronber
2014年6月18日在6:51
#11 楼
Openwall Linuxpwqgen
工具沿这些行生成带有特定熵的密码。 但是,不是使用空格来分隔单词,而是使用标点符号和数字。以下是带有49位熵的十个示例:
Cruise!locus!frame
tehran!Commit6church
Seller7Fire3sing
Salt&Render4export
Forget7Driver=Tried
Great5Noun+Khaki
hale8Clung&dose
Ego$Clinch$Gulf
blaze5vodka5Both
utmost=wake7spark
没有空格的情况下,单词很难读懂,但是多年来,我一直在使用由此生成的密码工具,我发现标点符号很难记住。
评论
感谢您的指导!但我认为您那里有错字。我猜想您要提供一个包含44位而不是64位熵的列表。它将开始以48位生成4词短语。并通过{26..81}中的i进行记录;做echo -n $ i“”; pwqgen random = $ i;完成:在26位时有2个单词短语,在27位时添加了标点符号分隔符,在31位时它具有3个单词短语,标点符号为40,在48位时它具有4个单词短语,标点符号为53,值为65时移至5单词短语,标点符号始终为66,最高可达81位。似乎有点奇怪。
–nealmcb
2014-12-19 5:53
passwdqc源代码揭示了一个很小的4096词字典,这意味着这些“ 64位”示例的真实位熵实际上是49.8位:log 2(⟨4096×2⟩×42×⟨4096×2⟩×42×⟨4096×2 ⟩)(对于随机大小写的第一个字母为2x,在en_US键盘上为42个可打印的非字母字符)。 Diceware是7776个单词,标准词典是10万个单词。对于64位熵,passwdqc将需要155k字。另请参阅我的pw熵表。
–亚当·卡兹(Adam Katz)
15年7月27日在19:04
@AdamKatz,。我一直假设它在我的系统上使用/ usr / share / dict / words,这是〜100k个字,对于这种格式,这将导致〜60位的熵。我会修改答案。谢谢。
– sarnold
15年8月1日,0:48
#12 楼
我不是安全专家,但我认为这里有一个错误。漫画的要点似乎表明,通过增加密码的长度,您会增加复杂性。
实际上,四个单词的密码的复杂性大大降低了。本质上,您已经将8-11个半随机选择的字符替换为4个随机选择的单词。密码短语的长度不如单词数重要。所需要的只是攻击者尝试从字典中组合单词的各种组合。如果要记住它们,那么使用的单词可能相当普遍,如果必须键入,则可能很短。
词典攻击已被广泛使用。我们通常不使用260,000个单词。我们只知道12,000至20,000个字。其中我们通常使用少于8,000。我无法想象普通用户会创建包含长而复杂的单词来输入的密码,从而进一步减少了可能单词的子集。假设每个人都开始使用这种密码选择方法,那么字典攻击实际上将变得更加有效。
现在,将两者结合使用可能会更安全,尽管这违背了密码保护的观点。锻炼。
评论
假设字典单词有11位熵。这相当于2000个单词,比您前面提到的8K小得多。因此,该论点仍然成立。
–PearsonArtPhoto
2011年8月11日下午0:45
这个答案忽略了XKCD分析中使用的数字,因此完全没有根据!
– Rotsor
2011年8月11日,下午1:36
“漫画似乎表明通过增加密码的长度,您将增加复杂性”-不,这根本不是漫画所说的。再次仔细阅读一遍。
– D.W.
2011年8月11日,下午2:50
我认为您在复杂性和熵之间感到困惑。漫画的重点是密码短语可以降低复杂度,同时提供更高的熵。复杂性影响的是人类而不是计算机,而熵是阻止暴力的原因。
–AVID♦
2011年8月11日上午8:10
nullnvoid,一个2048字的字典有2048 = 2 ^ 11个字。如果随机选择一个,则有2 ^ 11种可能性。因此,熵为11位。攻击者需要尝试大约2 ^ 11个猜测才能找到您的单词(平均2 ^ 10,最坏的情况下为2 ^ 11)。您可以在本页的其他答案和评论中找到有关熵计算的更多详细信息。
– D.W.
2011年8月12日5:26
#13 楼
阅读评论时,我有一些想法。密码的熵计数等级非常低。至少,您应该再添加1-3位用于字符替换。在此示例中,似乎确切的公式似乎是已知的,似乎不太可能。
较长的密码的熵计数对我来说似乎是正确的。
如果我正在正确地解释常见的替换项。我不认为这是一个普通的单词,因此将基于字典的单词的熵限制为仅11位的熵有点低。我猜它仍然会存在于字典中,但是应该扩展到至少15位熵或32K个单词的选择。这似乎与使用基于字典的攻击所达到的水平差不多。
确实,原则上,由随机单词组成的长密码至少与短密码一样好密码包含更多字符,但单词必须是随机的。如果您开始引用一个众所周知的短语,甚至是可能是一个句子或其中一部分的任何东西,都会严重限制熵。
评论
xkcd漫画假定攻击者需要尝试大约8种常用替代方法(3位熵)。您似乎在争辩说,攻击者可能需要尝试大约128-256个常用替代方法(7-8位熵)。你的理由在哪里?就个人而言,我认为xkcd的估计要比您的估计好。
– D.W.
2011年8月11日在2:52
理由是您可以使用它们,也可以不使用它们。如果有时用0代替o,那就是1位替代。例如,如果您可能使用*和-,则每次找到这样的字符时,这是2位替换字符,因为有四个组合。我认为反射时1-2更准确,将其赋予4-5位而不是3位。
–PearsonArtPhoto
14-10-16在22:11
您假设每个密码都有8个不同的字母,每个字母提供一个独立的替换机会。对于大多数密码,我预计情况并非如此。
– D.W.
14-10-16在22:50
关于第1点:如果您假设攻击者无法猜测您的密码方案,那么您确实可以增强您的假定密码强度。但是,a)攻击者比您发明它们更擅长猜测方案; b)强制性密码策略使猜测方案更加容易; c)您还必须质疑攻击者是否知道密码短语的确切长度和字典,以使密码短语也变得更强大。在第3点上,Randall实际上授予了“ Troubadour” 16位熵,因为他是一个不常见的单词,而他的“常见单词”只有11位。
– ThrawnCA
17年5月30日4:12
#14 楼
在一项经验测试中,密码短语似乎并没有您所相信的那样帮助XKCD:dl.acm.org/citation.cfm?id=2335356.2335366用户倾向于创建容易猜到的密码,而系统分配的密码往往很难记住。密码短语(用空格分隔的自然语言单词集)被认为数十年来既安全又可用。在一项包含1,476名参与者的在线研究中,我们与由5到6个随机字符和由8个字符的系统分配的可发音密码组成的系统分配密码相比,探索了3字和4字系统分配的密码短语的可用性。与期望相反,在我们检查的可用性指标中,系统分配的密码短语的性能类似于具有类似熵的系统分配的密码。密码短语和密码被遗忘的速度相近,导致相似的用户难度和烦恼程度,并且大多数参与者都将其写下来。但是,密码短语需要花费较长的时间才能让参与者输入,并且似乎需要纠正错误才能抵消输入错误。当我们缩小从中选择单词的字典,减少密码短语中的单词数量或允许用户更改单词顺序时,密码短语的可用性似乎没有增加。
评论
完整的免费版本可从其网站上获得。
–达恩·巴克(Daan Bakker)
2015年11月7日,下午2:11
#15 楼
对这个问题的许多回答提出了一个显而易见的观点:即使您要求用户使用多个用空格分隔的单词来提高可读性,也有太多的用户会选择“平凡”短语中的单词,例如“我爱我妈妈”如果饼干知道这种简单的短语是常用的,将很快被破解。我认为有些饼干可能已经在这样做了-毕竟它们并不愚蠢!但是,一切都不会丢失。与我建立登录关系的网站太多,要求我使密码更复杂(使用小写字母和其他组合要求,包括大写/小写,数字和符号)。他们强制执行使我的密码难以记住的事情。
如果不是要求复杂性,而是执行了密码验证检查,该检查首先检查了已识别的密码字典,一旦字典攻击被排除为问题,该怎么办?将计算抵御暴力攻击的强度,仅要求密码能够抵御暴力攻击一万亿年?在那种情况下,Tr0ub4dor&3不会通过-史蒂夫·吉布森(Steve Gibson)的搜索空间计算器,网址为https://www.grc.com/haystack.htm,它说它可能仅在18.3亿个世纪中就被强行使用,但“可以使葡萄酒保持低温”我可以在14.3万亿个世纪的时间里经受住它的威胁。我认为安全性只能因此而提高。
评论
或者只是强迫人们使用Keepass之类的工具-做得很好。
–比利·奥尼尔
2011年8月11日22:30
欢迎来到securitySE!对于GRC,我很容易想到-1。但是你有一个好点。
– DanBeale
11年8月12日在5:22
嘿。而GRC到底怎么了? :-)
–网络专家
2011年8月12日15:56
@Cyberherbalist,欢迎来到信息安全!不幸的是,至少根据attrition.org,史蒂夫·吉布森(Steve Gibson)被公认为无知又是流氓。
–AVID♦
11年8月13日在21:29
@Cyberherbalist这不是要仇恨,而是要成为比其他任何人都更好的营销者,即使他不理解自己在上下文中重复或完全不合时宜的话。但是这里真的不是讨论他的专业知识的地方。
–AVID♦
15年8月16日在7:05
#16 楼
布鲁斯·席纳(Bruce Scheiner)喜欢长密码短语,但多年来他也一直在指出长密码短语的实际困难。键入密码时,不会在屏幕上显示密码。您在每个字母的屏幕上看到一个星号或一个大的粗黑点。即使输入7-8个字符的密码,您有时也会在中间问您是否输入正确。因此,您将所有内容都退格并重新开始。有时,我们会忘记密码中间的位置,并计算已经键入的字符数,并在脑海中将其与密码进行比较以弄清楚我们在哪里。如果不回显较长的密码,则这样做将更加困难。我认为只有有效解决此问题后,长密码短语才会出现。评论
在过去的几年中,我一直在使用“简单的”密码短语(例如小写字母,实际单词)。虽然我每天至少输入6次不同的密码,但由于输入错误,我不必将整个密码退格一次,而每周要输入一次。我可以肯定地说,对于经常使用键盘进行书写的任何人来说都是如此。
–休伯特·卡里奥(Hubert Kario)
2013年6月29日10:02
我不得不更改我们的WiFi密码,因为输入密码太复杂了!
–伊恩·林格罗斯(Ian Ringrose)
2014年2月4日在12:43
我想知道让密码输入逻辑看起来是否有重复的单词会带来安全性问题,如果密码不起作用,请尝试剔除任何重复的单词以及重复单词之间的任何内容所产生的密码?那么“正确的马电池电池钉”会变成“正确的电池电池”吗?
–超级猫
2014年6月10日16:03
#17 楼
我同意杰夫·阿特伍德的观点。另外,我在MSSQL中选了一个(不是)英语词典,里面有266,166个单词(还有160,086个德语和138,946个荷兰语单词),并从每种语言中随机选择10个单词。这些是英语的结果:
灵巧的手
狼fra属
muth
不火山
矛盾
绝望主义
非自然的
可塑性
再凝结
雷米
现在将任何单词的任意组合赋予您足够的熵,好去。但是,正如您从本示例中看到的那样,要使这个单词组合变得容易记住并不容易。因此,当您尝试创建“可理解的(不正确或逻辑上的)句子”时,熵会下降很多。
出于完整性考虑,德语和荷兰语的(随机)结果是:
德语:
torlos
Realisierung
hinterhaeltigsten
anbruellend
vielsilbigen
lebensfaehig
drang
节日庆典
Bauernfuehrer
荷兰语:
bijstander
Abcoude
vergunningsaanvraag
schade-eis
ammoniakuitstoot
onsentimenteel
ebstand
profilelschets
评论
这没有技术论据,并且误解了xkcd提议。 xkcd建议不要从200,000字的词典中随机选择4个字。而是从2000个最常用词的较小词典中随机选择4个词。如果遵循xkcd的实际建议,您会发现生成的密码短语更容易记住。
– D.W.
2011年8月11日,下午2:50
无论如何,为德语建议的大多数单词都不是真正的词典的一部分。我所说的“真实”是指普通人想到的词典,而不是软件用来检查拼写和破解密码的词典。
–亨德里克·布鲁默曼
2011年8月11日在8:32
@TRiG:这就是我的行李箱!
– Piskvor离开了建筑物
2011年8月11日14:35
因此,我们达成了一致:德国人需要两个字,我们其余的人需要四个字? :)
– sarnold
11年8月12日在7:34
@ user3992,这有点微妙。您必须仔细阅读xkcd漫画,并熟悉安全文献和该领域的过往工作(例如Diceware)。处理xkcd漫画的技巧:1.一个面板显示“四个随机的常用单词”。 2.下一个面板显示“ 44位熵”,这意味着每个单词11位熵-这反过来又暗示建议您从大约2000个常见单词的词典中随机选择每个单词。 (不是一个包含266,000个单词的字典;这将是72位熵,而不是漫画中引用的44位。)
– D.W.
2011年9月7日在17:54
#18 楼
我也想知道这个问题,所以我不想从哲学的角度来分析它(如果用户写下他们的密码,它就会变成您拥有的东西,而不是您所知道的东西... 2因子变成1因子),但从数学和科学角度来看。我最近下载了一个可玩的GPU密码破解软件。我想使用该密码(因为这是我的新玩具)破解这两个密码,并确定哪个更好。
对于一个假设,我也想提出一个可能的变体-攻击者可能知道您仅使用词典中的单词,并且不使用符号和数字(减少键空间)。
方案1
- Attacker knows you only used dictionary words. (Keyspace = 26 letters + 26 capitals + 1 space = 53).
- Password requirement is must have 4 dictionary words with a minimum total characters of 20.
方案2
- Same as Scenario 1, except Attacker doesn't know only dictionary words are used (keyspace increases).
针对2个控制组,其中随机密码包含2个数字,2个特殊字符并且长度为16个字符。
这是一个合适的测试吗?如果没有,请告诉我,我将编辑参数。
评论
并不是真正合适的测试;因为GPU选择的第一个随机密码很可能是密码。在这种情况下,必须考虑到概率性才能起作用。
–比利·奥尼尔
2012年1月12日15:07
我猜更合适的“测试”只是通过数学显示哪个更长?
–杰夫
2012年1月12日15:13
我不明白您从哪里得到这些长度要求。他们对我来说看起来不合理。 (通过重复测试几次,可以轻松控制随机效应。)
– D.W.
2012年12月19日在20:52
#19 楼
XKCD漫画未明确描述密码短语在单词之间可能包含分隔符。自然的选择是在所有单词之间添加相同的符号。如果应用程序具有“显示密码”选项,则该短语可以很容易变成红色。从理论上讲,将5位强度加为4位,请参见本漫画中的“ troubador”数学解释方法
确切的降级还取决于它的难易程度以便攻击者猜测该符号,或者首先尝试使用特定的分隔符。这就是为什么我使用3组不同的符号来计算这种加强类型的原因。
Set1:iPhone数字符号中的13个符号,所有符号中的31个符号,以及对于常用分隔符的特殊3个符号集:空格-_
我使用计算时使用以下格式(Excel表示法,仅在使用分隔符的情况下):
strength = >>参见下面的简化
= log(NumWordsInCurrentDict *((sepaClassSize ^(SepratorLen )+1)*(NumWordsInCurrentDict)^(nWordInPhrase-1)),2)
4 Diceware单词具有以下优点:无分隔符:51.7位;空格分隔符:53.3位;并从所有31个符号中分离出一个符号,例如^:56.7位
==============编辑en edit2:忘记了日志2,固定
以上代码的简化公式是:
log((((sepaClassSize + 1)^ SepratorLen)*(NumWordsInCurrentDict ^ numWordsInPhrase),2)
XKCD漫画描述了广泛的修改/替换密码选项。 Diceware密码短语首页提到了漫画密码短语部分中没有的特殊修改:在所选短语的1个单词中仅插入1个随机字母。这将增加另外的10位熵。(请参阅“您不需要真正了解的可选内容”部分)
#20 楼
似乎大多数人都认为在数学方面,Horse方法是更好的选择-在何种程度上似乎主要取决于局限性,例如选择的统一程度,或者这些“易于记忆”或“易于键入”的短语是什么。 >足够,但是我将教您一个魔术技巧,以使这些限制变得不太相关:
使用Horse方法作为构建新方法的平台词组。正确使用
随机方法选择单词。这可能会给您带来一些您从未听过且难以记住的硬词,但...
那是盲目的遵循Horse方法。魔术是不要在这里停下来。除非您是一个极度无聊和无聊的人,否则您可以从后续步骤中获得很大的好处。
充分利用大脑。
我的意思是,不仅仅是思考,而是让您的大脑为您讲出全新的单词
,或者让全新的方法使现有的单词失真。 ),以用这些短语替换短语
中的某些单词。
,该规则也适用于我从现在开始编写的所有内容:只需继续
并任意更改方法; )
使用您的其他语言。
我们大多数人不只一种语言。
(特殊情况下,可以使用您所在国家/地区使用的不同键盘布局。例如,在捷克语布局中,带变音符号的字母与数字共享键-实际上,这是
创建字母和数字的映射,可以补充或替换
“传统” L33T。请考虑如何从中受益。
发明自己的方法。
...如何进一步扭曲短语。您可以将方法重新用于新密码,这完全取决于关于您将如何创建复杂的方法
---更复杂,更可重用,但不要过度使用它:)
有趣的过程!
生成密码不必很无聊。实际上,使您变得更有趣
,您实际上就更容易记住密码。
但是请不要误会我的意思:不要以唯一性为代价使其变得有趣。
尝试使用只对您来说有趣的那种有趣的东西(问您的
大脑)。
(哦,别太有趣了,您不要每次输入密码时都不会傻笑和脸红
;))
如果操作正确,上述每一点都会给Horse方法带来很大的好处。
评论
人脑严重偏向于随机性和模式,我们只是害怕产生或验证随机性。因此,不能,让人们选择自己的任意单词不会改善真正随机的密码短语的熵。
–木糖
2015年12月28日在6:08
#21 楼
完全错误。这里不仅有数学在起作用。人类用人类语言创建密码!=机器人从水桶里创建随机字符串。如果从这个假设开始,那么从根本上减少了熵,这是破解密码所需时间的一个因素。正如伟大的哲学家唐·科里昂(Don Corleone)所说:像周围的人一样思考。评论
如果您阅读XKCD漫画,就会注意到它建议您随机选择常用词典词(例如,从机器人中选择)。熵仍然存在,因为它们是从数千种可能性中随机选择的。它们恰好是人类擅长识别的可能性。
–扎克
2011年8月11日,下午5:20
是的,如果让用户选择密码,那么XKCD系统将与其他方法一样脆弱。如果您为用户生成密码(有时由公司IT生成),则XKCD方法非常有用,因为用户将更容易记住它。
–怀抱
2011年8月11日14:55
#22 楼
正如某些人已经说过的(因此,我不再重复),这取决于所使用的蛮力攻击和字典攻击的机制。首先,最好的保持方式攻击者首先将目标带走。我的所有服务器均未在端口22上运行SSH,并且在sshd配置中最常禁用root登录。但这只是一个例子。不要放弃用户名,这样可以省去很多麻烦。
这是最简单的数学方法:通过隐藏:)
来避免他人的攻击,因此,其余:那些实际上猜测用户名正确并找到您的服务的人,将尝试非常常见的暴力攻击。短密码始终是个坏主意,因为不需要字典。在小写和大写以及常见的“盐”(例如逗号,分号等)中循环浏览所有字母数字组合将需要几天的时间才能破解。根据我自己的经验(安装了旧的OpenBSD路由计算机,但是Internet提供商密码已更改,并且我对该计算机没有物理访问权限)。密码原来是一些名人的[名字] [姓氏] [数字]。
我很好奇,所以尝试了不同的破解工具。基于名称的密码只花了六个小时就破解了相同的密码。猜猜它是通过常见的名称/数字组合来循环的。
那些蛮力攻击的诀窍是知道您要处理的内容。基于个人密码并使用您自己的方法加密的密码对于大多数字典攻击仍然是安全的,并且只能通过简单的蛮力攻击才能猜出,这将需要数年的时间才能遍历所有可能性。 >
举个例子:我叫Andreas,所以我的密码很安全。
MyN4me,A-> PwKndSf
根据rumkin的说法,这有点安全:) 87.1位熵。哇。第一次尝试还不错。我实际上可以记住,大多数机制都不会尝试“猜测”这种密码,因为它对任何系统都没有意义。
它既简短又复杂,就像L5q3CR,-F-一种很难记住但易于猜测的类型,或者由实际存在的单词的变体组成。这是人的弱点,可以帮助自己记住事情或追求真正简单或常见的事情。
我知道,这有点偏离主题了,但是:如果您不想成为暴力攻击的受害者,请首先锁定大部分门,甚至更好:将门锁上/隐藏:)
不提供饼干所期望的登录机制,如果可以的话。
通过客户端身份验证保护Web服务
如果您完全偏执,请也通过IP地址过滤对服务的访问权限
安全且完全偏执的设置:(这是对破解者不公平:))))在密码尝试失败后的5秒钟内,对同一用户(即使是正确的用户)的每次尝试也将失败。
如果有人设法获得不管怎样,您还是在与专业人士打交道:),但是要通过做一些人无法预料的事情,并且没有计算机能够猜测或预测的人为行为来确保密码的安全:做您自己的事情,只要记住自己的事情必须很长避免简单的攻击,并在很大程度上避免字典。使用仅在您的大脑中有意义并散布一些特殊字符的内容。
对于饼干,仅当您执行可预测的操作(例如使用简短的内容)时,才提供一种快速猜测密码的方法,这很容易记住,也可以由字典中常见的单词或字母组合组成。
远离这些单词,甚至可以坚持使用鲁姆金斯算法。
评论
不幸的是,鲁姆金不是密码强度的可靠判断者。
– D.W.
2011年8月12日下午5:35
我不躲藏我的ssh端口位于22。如果任何人都无法在5分钟内10次登录任何帐户10次,则其ip地址将被iptables防火墙屏蔽,并向其ISP发送一条消息,警告他们网络上的受感染计算机。
–安迪·李·罗宾逊(Andy Lee Robinson)
11年8月12日在8:39
纠正:阻止攻击者攻击的最糟糕方法是首先夺走目标。将服务器移至其他端口只会清理日志一点点,只会使您免于攻击者的攻击,因为他们的攻击力最低,并且无法获得合理的安全性(应用了所有安全补丁,没有任何愚蠢的密码)无论如何。
–吉尔斯'所以-不再是邪恶的'
11年8月12日在8:47
恭喜,您刚刚发明了Security by Obscurity :)。并将基本防护措施(定时锁定)降级到完全偏执的领域...
–AVID♦
2011年8月14日在7:09
有人应该写一个工具来发现您正在ssh上运行的端口! ;)对蛇的道歉。
–布拉德利·克雷德(Bradley Kreider)
2011年9月28日在21:04
评论
实用说明:我曾经使用Diceware来帮助我选择随机单词。我发现我真的很容易记住5个单词。我确实滚动了几次,以找到一个序列(虽然在我的脑海中)听起来很不错,但并不一定有意义。最常见的新密码:密码密码密码青少年密码忍者龟
我认为评论者已经提出了所有这些观点,但为了记录在案,这是漫画作者兰德尔·芒罗(Randall Munroe)的详细阐述:ask.metafilter.com/193052/…
让您想知道为什么有些银行将您的密码限制为6个或7个字符。
@LotusNotes矿井恰好需要五个!每个愚蠢的论坛都需要> 8个字符,大写+小写+数字+标点符号...