BBC 关于选择密码的建议是否明智?

信息安全 密码 密码策略 密码破解
2021-08-25 23:39:10

在BBC 网站上的这篇文章中,他们提供了有关如何开发密码的建议。步骤如下。

第 1 步:选择艺术家(我认为是录音艺术家)

让我们以青少年偶像和全能坏男孩贾斯汀比伯为例进行研究。*

第 2 步:选择一首歌曲。(接球手越好)

接下来,我需要从 Biebs 的大量经典曲目中选择一首歌曲。我特别喜欢他,是他对控制关系“男朋友”的黑暗世界的洞察力。

第三步:选择一些歌词

现在我需要一些“男朋友”的歌词,我会选择略带威胁的合唱。如果我是你的男朋友,我绝对不会放过你

第 4、5 和 6 步:为歌词设置密码

现在我们需要把 Biebs 的散文变成一个密码。我们通过取歌词中每个单词的第一个字母来做到这一点“如果我是你的男朋友,我永远不会让你走,我永远不会让你走”

iiwybinlyg

使其区分大小写:

iIwyBiNlYg

通过使用符号和数字将其更改为“leet speak”:

1Iwy&1NlY9

我的问题不在于密码的数学强度,这显然取决于所选择的歌词以及如何对其进行密码化,而更多的是关于可能弹出的密码总量的可预测性这种方法。

众所周知,人类可以是非常可预测的生物,根据某些人口统计数据、音乐流派或基于个人资料的有针对性的攻击生成字典并不需要付出巨大的努力。

我最初对此的想法是,在企业中给出这将是一个糟糕的建议,因为它会导致许多用户使用相同的公式来开发他们的密码,而这只会通过使密码更可预测而加剧。在全国范围内,这可能是合理的建议,这引出了我的问题:

鉴于我们人类的可预测性,BBC 关于如何选择密码的建议是否明智?如果是这样,在什么情况下这个明智的建议是?

*Justin Bieber 仅出于幽默原因使用。

4个回答

我的问题不在于密码的数学强度,这显然取决于所选择的歌词以及如何对其进行密码化,而更多的是关于可能弹出的密码总量的可预测性这种方法。

这是一个很好的问题,我将在这里打破常规,戴上我的锡纸帽子,说“不,这不是一个好主意”。为什么?让我们在斯诺登泄密的背景下来看它。

因为GCHQ 监视着英国互联网上的所有流量,并且根据斯诺登泄密事件,您的互联网流量与五只眼睛共享。即使您使用的是 HTTPS,这也是个坏主意。

“但是马克布法罗,你又是一个疯狂的锡纸帽子演员!” 想想看。破解密码的时间突然显着减少。如何?

  1. GCHQ 记录您的在线搜索历史。借助 XKeyscore,他们可能知道您何时注册了某个网站
  2. 如果他们知道您何时注册该网站,他们会看到您在那个时候访问了 Google.com 并搜索了歌词。即使您使用的是 HTTPS,您大约在那个时候连接到 google.com,然后访问了一个托管歌词的网站,这就是他们开始破解您的密码所需要的一切。

    • 即使他们无法查看流量,他们仍然可以看到您已连接。即使您使用的是 HTTPS,这也不会阻止他们自己托管歌词网站。这也不会阻止公司记录您的搜索结果,也不会阻止公司将这些结果提供给任何人。如果他们知道您喜欢或不喜欢哪种歌曲,那就更容易了。
  3. 现在他们可以编写一个算法来破解你的密码,这比暴力破解所有可能的组合要容易得多。或者更好的是,使用现成的密码破解程序和提供的这些结果字典。


但是马克布法罗,政府没有监视我!

这一切都很好,花花公子。除非您是罪犯,否则您通常无需担心它们。或者你很注重隐私或者你是一名安全研究员。

还有一个重要的方面你需要考虑,我认为这比政府要糟糕得多:广告公司和黑客“但是 Mark Buffalo,我使用 NoScript(很棒)和 Ghostery(Ghostery 出售你的信息)!” 大多数人不使用这些。许多这样做的人在使用智能手机时也不使用这些工具。

到处都有数据踪迹,尤其是如果您拥有智能手机(尤其是安卓),并且有很多邪恶的营销公司会在他们一有机会就将您的数据卖掉。或者也许他们不是邪恶的公司,但他们被黑客入侵了。

任何有“需要”的人都可以购买这些数据,而那些足够成熟的人可以窃取它。虽然对于大多数人来说这似乎是为这么一件小事而疯狂担心,但当你深入研究联邦承包领域时,情况会变得更糟。这是安全漏洞开始的方式之一。

前面列出的所有步骤都可以在没有XKeyscore 的情况下完成。它们可以通过庞大的营销数据库轻松完成。


别再用锡纸了,马克。

如果我现在戴着我的锡纸帽子,我相信这篇文章是故意削弱标准的计划的一部分。我个人认为,削弱标准是一种国家安全风险,尤其是当联邦承包商采用这些削弱标准时。

就个人而言,我更担心邪恶的营销公司和黑客,而不是政府尤其是当故意削弱标准有助于潜在敌对国家未经授权访问关键基础设施和知识产权时。


但说真的,这会让你的密码变弱

现在让我们谈谈数字和社会工程学。

使用此密码的正常蛮力,根据此密码策略,您可能需要以下字符:

  abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=

那是 76 个可能的字符。使用这种密码方法,假设大多数人将使用 6-7 个单词来生成密码,并且可能添加 1 个符号(!@#$%^&*()最常见的)加上一个数字,您需要测试 - 以获得 8 个字符的密码 -1,127,875,251,287,708组合以耗尽密码空间。这可能需要很长时间,具体取决于散列算法硬件。

让我们以md5为例(它很糟糕,但它的计算成本很低。请不要使用md5;我只是作为一个例子)要耗尽 8 个字符密码的字符空间,使用便宜的工作站需要 4 年才能破解。大约 4 年 25 天 7 小时 46 分 54 秒。如果将密码长度增加到 9,则需要 309 年以上。请记住,处理能力正在迅速增长。

了解有关用户密码的额外参数可以简化此操作。假设您选择以下歌曲:baby hit me one time这是你最喜欢的歌曲,我知道这一点是因为我通过社会工程让你告诉我。让我们选择一个可预测的歌词短语来创建密码: 再打我一次宝贝这成为HmBomT. 现在让我们添加一些带有数字的leet。现在我们有了H@BomT3. 现在我们知道了您最喜欢的歌曲和您最喜欢的短语,这就是您的密码字母空间变成的样子:

hHmMbBoOmMtT1234567890!@#$%^&*()-_+=

如您所见,这个字母空间显着减少。如果您知道密码以哪个字符开头,这会快得多,但我们假设您不知道。让我们进一步假设它是随机的。现在您已经减少了将密码空间用于2,901,713,047,668组合所需的时间,使用便宜的工作站破解密码需要 3 天。让我们把它升级到 9 个字符。现在需要 137 天 15 小时 47 分钟。

您可以自己计算(字符集:自定义)。此外,所有这些都假设您没有专用的 GPU 集群

编辑

我注意到现在有证据表明专门用于破解 bcrypt 的定制硬件解决方案,其中一个比 25-GPU 阵列便宜得多,功耗更低,并且在各个方面都非常优越。如果您想了解更多信息,请阅读这篇精彩的文章。


但是我们不应该简单地增加密码长度吗?

是的,你可以。说实话,当您增加密码长度时,它会大大增加熵。

但是,进入会变得很烦人——尤其是对于每次离开计算机时都需要注销的公司环境。最重要的是,很难记住这个密码。

在输入不同的密码并被迫每隔几个月更改一次后,您最终可能会忘记它。更糟糕的是,您可能会立即忘记它,并被迫访问 IT 帮助台以重置您的密码。这会导致业务成本和生产力损失。

事实上,更好的方法是xkcd's correct horse battery staple您可以在某处使用大写字母,在其他地方使用数字,或者您可以在增加熵的同时使其更容易:例如correct horse battery staple gasoline. 它很容易记住,很容易打字,而且电脑很难破解。还要记住,这应该是从 2048 个单词列表中随机生成的。

对于网站,我会推荐一个密码管理器,比如 KeePass。我不会使用 LastPass,因为它容易受到网络钓鱼攻击。网站可以知道您已启用 LastPass,因为您的浏览器会在请求时将此信息发送到网站!这是浏览器指纹工作原理的一部分。

对于您无法使用密码管理器的公司和其他登录名,我会推荐一个correct horse battery staple带有额外单词的变体。也许correct horse battery staple gasoline更容易记住。

这太可怕了:)提供一些数字来支持其他答案的主张:

提供了每年有多少歌曲流行的一些数字。在过去的十年里,它每年只有 300-400 次 Top40 命中!一首歌的平均字数是300-600,具体取决于风格,每句 7-10 个字(我想这是当今密码的舒适长度)。

所有这些加起来——听流行音乐的人的密码库每年大约有 40,000 个,不包括重复(而且我们都知道流行歌曲没有一条重复行!)。

因此,只需随机选择一个常见的日常单词并将您最喜欢的数字添加到末尾就如同密码库一样安全(假设您最喜欢的歌曲不到一年 - 对很多人来说都是如此!)。如果您询问任何 IT 或安全人员,这根本不安全。事实上,它比 XKCD 著名的tr0ub4dor&3更糟糕,因为它的语料库更小,平均字长更小,这被集体讨论过。

雪上加霜 - 建议中的任何步骤都没有真正的好处。

  • 大多数人倾向于听相同的音乐。只是去一个男孩乐队的音乐会,看看人群的绝对规模(与歌手要喃喃的词数相比)。

  • 我真诚地怀疑大多数人会在一节经文中挑剔。我发现选择朗朗上口的合唱更合理(毕竟,你必须逐字记住这行,而不仅仅是一般含义或节奏!)

  • 取单词的第一个字母是可怕的。7 个字母以这种方式覆盖了 65% 的语言当然这并没有具体分析歌词,但我怀疑那里更好1

  • 区分大小写是可以的,但前提是您使大写位置真正随机。你不会的。如果第一个是资本,那就太容易了。你不要把它们混为一谈,诺诺。而且必须有一个不错的数字,但不要太多,对吧?

  • l33t-ing 密码大多是没有意义的。在最常见的字母中,只能替换一对,并且替换是事先知道的。而且您不会正确随机化哪些字符被替换,哪些字符不被替换。


1为了论证,我实际上是根据上面的文章计算了香农熵。结果它是〜4.075,而随机字母分布为4.7。这并不像我预期的那么糟糕,尽管它确实意味着一个 10 个字符的密码如果是由第一个字母而不是随机字母组成的,那么猜测它的 70 倍容易

它比大多数人正在做的更安全,即使用一个字典单词。BBC 的方法从一两个句子开始,而不是一个词。然而,它不如它本来可以的那样安全。

首先,如果您使用的是众所周知的合唱,那么您将增加其他人拥有与您相似密码的机会。

其次,我个人认为输入整个单词比不连贯的字母更容易,即使它增加了您需要按下的键的数量。仅使用句子中的第一个字母会丢弃熵。

如果您需要一个旨在被记住的密码(即不能保存在密码管理器中),我的建议是使用 diceware 之类的东西随机生成一个短语。

另一种选择是从生成一个随机的 n 字母密码开始。但是然后尝试为它找到一个助记符。这种顺序上的差异至关重要。如果您从助记符开始,然后对助记符进行密码化,那么您的随机性可能比您先生成密码时要少。

是的,这是不错的建议,尽管这取决于人们对它的关注程度,不像你自己,我不会抨击我最喜欢的艺术家(我们都知道你喜欢 JB ..)

遵循这个建议很可能会让许多人选择他们最喜欢的艺术家和他们最喜欢的歌曲,最有可能的是合唱或非常知名的歌词(你跟着唱而不是喃喃自语的歌词),这使得计算普通人的密码变得非常容易,但是,就目前而言,遵循这种方法会使猜测变得更加困难,但也更加难以记住。创建好的密码并记住它们是一些人不具备的礼物。

我的反建议是随机生成您的所有密码并将它们存储在钥匙串中,仅保留您的主电子邮件密码和钥匙串的密码存储在您的脑海中。

但再一次让我看起来不那么消极,这是比 ilovejb2016 更好的选择......对于非技术人员来说,这不是坏建议。

我想再次谈论这个,更新我的答案。

我并不是说这个网站上像我们这样了解安全并且有安全意识的人遵循这个建议有好处,这很可能会削弱我们遵循这种方法的密码。但是但是这个建议会帮助像我的父母、我的奶奶和孩子这样的人。那些密码可能而且最有可能是在标准的一个大写字母 at 作为他们的第一个字符小写和一个数字(很可能是他们的年龄、出生年份、1、11、123、321)之后的可怕单词,并且密码本身就是一个与他们的日常生活有关的正常词。例如他们的宠物河马的名字.. Chubby123 例如!

这对那些人来说是个好建议。但不是我们,你必须记住人,人们不太擅长电脑或安全我可以通过写常用词来破解你所有的祖母。