如果我输入我的密码两次(例如:PwdThingPwdThing),或者每个字符输入两次(例如:PPwwddTThhiinngg),这是否会比现在更安全?
假设它已经是 8 或 9 个字符,由大小写、数字和一个或多个特殊字符组成。
(还假设我没有告诉任何人我正在这样做,尽管我只是告诉全世界……Doh!)
我问是因为我希望以一种我仍然记得的方式获得更多的安全性,这将是一个容易做出和回忆的改变。
如果我输入我的密码两次(例如:PwdThingPwdThing),或者每个字符输入两次(例如:PPwwddTThhiinngg),这是否会比现在更安全?
假设它已经是 8 或 9 个字符,由大小写、数字和一个或多个特殊字符组成。
(还假设我没有告诉任何人我正在这样做,尽管我只是告诉全世界……Doh!)
我问是因为我希望以一种我仍然记得的方式获得更多的安全性,这将是一个容易做出和回忆的改变。
让我们尝试跳过理论直接进入实践。
输入同一个词两次(或 N 次)会有很大帮助吗?
John the Ripper Jumbo对此有各种“简单的规则”
d 重复:“Fred”->“FredFred”
f 反映:“Fred”->“FredderF”
oclHashcat 基于规则的攻击也有简单的规则
d 复制整个单词 dp@ssW0rd p@ssW0rdp@ssW0rd
pN 追加重复单词 N 次 p2 p@ssW0rd p@ssW0rdp@ssW0rdp@ssW0rd
反映 f 重复单词反转 fp@ssW0rd p@ssW0rddr0Wss@p
因此,不,这种聪明之处非常普遍,它明确地包含在两个共同的规则集中,已经可以单独使用,也可以与其他规则结合使用。
或键入每个字符两次
John the Ripper Jumbo在文档中有一个专门关于此的示例
XNMI 从内存中提取子串 NM 并在 I 处插入当前单词是核心规则
“<4X011X113X215”(在一个简短的单词中复制每个字符)是文档中的示例,以准确涵盖您的短密码情况
.
基于 oclHashcat 规则的攻击具有简单的规则,仅适用于这些类型的攻击
q 复制每个字符 qp@ssW0rd pp@@ssssWW00rrdd
zN 将第一个字符复制 N 次 z2 p@ssW0rd ppp@ssW0rd
ZN 复制最后一个字符 N 次 Z2 p@ssW0rd p@ssW0rddd
XNMI 从单词的位置 N 开始插入长度为 M 的子字符串,保存到内存的位置 I lMX428 p@ssW0rd p@ssw0rdw0
因此,不,再次,这是一种常见的聪明之处,以至于在两个主要的开源破解产品中都明确指出了这一点。
假设它已经是 8 或 9 个字符,由大小写、数字和一个或多个特殊字符组成。
这些产品中的其他规则很可能涵盖了您已经在做的所有事情,而且您拥有的任何组合也可能已经包含在适用于合理破解词表的规则集中。
仅 oclHashcat 就有 25 个不同的文件,其中包含 .rules,其中 d3ad0ne.rule 有超过 35,000 条规则,dive.rule 有超过 120,000 条规则,等等。
有大量可用的单词表,其中一些可能包含您的确切密码 -仅Openwall 单词表就有一个 500MB 的文件,包含超过 4000 万个单词,包括损坏的单词
而且我个人知道小型、非常好的词表(phpbb 等)和巨大的、全面的词表,其中包含数十亿个条目,总共占用了数 GB 的空间。
和其他人一样,你需要使用随机性或类似整个句子的个人轶事,不使用前 5000 个常用英语单词列表中的单词,并且使用长的、不常见的单词(使用大量的强制组合攻击更大的字典)。
具体来说,例如,在Ubuntu 的疯狂英语 ispell 词典列表中随机选择的(好)单词,这些单词未包含在标准英语 ispell 词典中。
Security.StackExchange 充满了提出“自制”密码策略的问题。简短的回答总是一样的:做一些事情来区分你的密码和标准的字典攻击是好的——只要
地球上很少有其他人也在使用你的策略。如果你的“自制”策略很常见——比如用“@”替换“a”——那么它就会被包含在标准的字典攻击中,你就会回到原点。
你不是个人目标。如果您是攻击者专门试图破坏您帐户的高价值目标,那么您使用的任何模式都是一种责任,因为一旦他们知道您的模式(例如从您之前泄露的密码中),那么他们就会建立字典根据您的模式。
infosec上此类问题的另一个趋势是,有人不可避免地会引用XKCD,所以就这样吧。请记住,计算机擅长搜索数据库并根据模式生成列表。通过使用诸如“将每个字母加倍”或“我最喜欢的歌曲的合唱首字母”等简单策略,您正在使用一种易于计算机猜测的策略。提出简单密码策略的最佳实践始终是:不要。使用 LastPass 之类的密码管理器为您生成并记住一个 32 字符的随机密码。如果您坚持拥有可以记住的东西,那么下一个最佳实践是diceware。
如果您想挑战所有最佳实践并发明自己的方案,那么我会推荐一些基于情感而不是基于模式的东西,或者可以从您的个人信息中挖掘出来的东西。例如,基于“我喜欢的网站”或“我看的电视节目”的密码对于任何可以访问您的互联网活动的人来说都很容易猜到,但是“让我想起 ______ 的事情”您选择了一个非常不同的 ______每个密码都很难猜到。(如果我再考虑这个方案,我可能会争辩说,即使这样也很容易猜到,但关键是它仍然比纯粹基于模式的方案要好。)
一般来说,不,将密码加倍并不会显着提高(或降低)您的安全性。它加倍的是你的打字努力。如果将密码加倍可能会降低您的安全性,因为它会促使您选择更短/更容易的基本密码,这样您的打字工作就不会太麻烦。
从广义上讲,密码安全来自于它的随机性,即攻击者不知道多少。在“加倍”的情况下,这是一个比特信息(即是否应用了它),因此,从数学上讲,它是一个额外的熵。那不是很多。输入八个额外的字符来获得一点熵是微不足道的。这不是一个很好的交易。
所有诙谐的技巧都有一个基本问题:它们很诙谐。他们依赖于攻击者愚蠢、无能或过时。这在实践中并不成立,除非针对真正愚蠢、无能和过时的攻击者——众神知道他们中有很多,但他们不是一个大问题,因为他们不知道如何处理你的密码。您应该担心的攻击者是聪明的攻击者,他们可以在短时间内对您的数字资产造成重大损害;这些聪明的攻击者不会被您的密码加倍技巧吓倒。
我的密码破解者已经尝试过字母加倍、单词加倍、单词反转和加倍、单词大小写翻转和加倍......
...还有很多。
是的。加倍增加了一些难度:大约值四位,最高。破解它比使用字母替换的原始字典攻击要长 16 倍。
但我最终会得到 BAdpA55!!22AqbA8。