在为网站选择密码时,使用不相关的 URL(例如http://www.w3schools.com/Sql/sql_injection.asp)作为密码是否是个好主意?
我可以看到一些好处 - 很难暴力破解,它不是个人信息,而且很容易记住。但由于我从未听说过有人推荐它,我认为有一些缺点?
在为网站选择密码时,使用不相关的 URL(例如http://www.w3schools.com/Sql/sql_injection.asp)作为密码是否是个好主意?
我可以看到一些好处 - 很难暴力破解,它不是个人信息,而且很容易记住。但由于我从未听说过有人推荐它,我认为有一些缺点?
这是一个好主意还是一个坏主意取决于这个 URL 密码替换了什么样的密码。
URL 通常是一个相当长的字符串;示例字符串长度为 46 个字符。这使得简单的暴力攻击(例如尝试字母、数字和特殊字符的每一个组合)变得不可行,因此像上面这样的 url 比仅由 6 个完全随机字母组成的字符串是一个更好的密码,数字和特殊字符。
上面的 URL 也是一个比“一千万最常用密码”等中普遍发布的更好的密码。示例 URL 包含至少 4 个单词 - w3schools、sql、injection 和 asp。它们是字典单词并不是真正的问题。如果这些词中的每一个都是随机选择的比如说,10000 个可能的单词池中(这是一个下限;有超过 10000 个可用域和超过 10000 个单词 - 这包括这个问题的 URL,其中包括 id '143283' - 所以那是一百万种可能性),您将拥有一个相当于大约 53 个随机位的密码。这不包括任何特殊字符(例如斜线和下划线所在的位置,这将添加一些额外的位)。53 位不再是安全的暴力破解,但它比大多数用户选择的密码(123456、密码、loveyou、Maria、EatMyBackside 等)要好得多。所以你可能是安全的,因为其他密码会在你之前被破解(你不必跑得比狮子快就可以逃脱他 - 你只需要跑得比你的同龄人更快......)
现在来解决问题:第一个问题是,与您所说的相反,URL 是一种个人信息。为了使用 URL,您需要知道它的存在,例如您必须至少访问过一次。这是可以从您以外的其他来源提取的信息;例如,如果您的浏览器历史记录被捕获,您的密码 URL 很可能会成为其中的一部分。有人还可能通过窃听您的网页浏览并查看您访问的网站来到达该 URL(或至少是其中的一部分)。然后,让蜘蛛抓取这些网站上的所有有效 url 并将它们输入密码猜测器将是一项简单的工作。
第二个是虽然所有 URL 的空间都相当大,但并没有你想象的那么大。此外,并非所有域都同样可能是您的密码 URL 的来源;例如,你知道 reddit、craigslist 和 stackexchange,但你从未访问过维也纳大学的网站,这是一个相当安全的赌注。因此,即使我无法获取您的浏览器历史记录,即使我无法检查每个 URL,我仍然可以选择可能的域名(例如,50000 个访问量最大的域)并抓取它们,从而增加我的我有机会找到你的密码。
第三个是我为得出 53 位密码大小所做的数学运算假设在 URL 中找到的单词是不相关的并且是随机选择的。正如您在示例 URL 中看到的那样,w3schools、sql、injection 和 asp 这几个词几乎没有关系;它们都属于与网络有关的一组词。许多网址会显示从词组中提取的此类词,从而进一步减少我必须尝试的组合数量。
所以,不,URL 不能很好地替代安全密码(例如,带有强随机元素的很长的密码)。但是,它仍然比您基本的六字母字典单词要好得多。