如何设置一个容易记忆的强密码? 如何管理多个密码?

我的解决方案

  • 随机组合几个单词作为密码,长度至少15位,最好比15位更长一些,反正单词好记,这些密码并不用每天输入,长一点也不麻烦。不要选常见的组合,错误示范:LetMeInFacebook。
  • 在不同网站不要使用重复的密码。
  • 记在脑子里,只需要记住1-3个重要账户的密码就够了,例如邮箱密码,密码管理器密码。
  • 其它密码用密码管理器保存。
  • 邮箱和密码管理器用手机软件 Authy 开启两步验证,开启Authy的备份(backups)功能。(使用支持两步验证的邮箱,如Gmail、微软邮箱)

(也许几年后这个密码方案还要更新。)

不再适用的旧规则

  • 若干年前在网上搜索如何设置一个强密码,教程都是让你设置一个人脑难以记忆的密码:大小写字母、特别符号和数字的无意义组合。
  • 每90天更换一次密码。即使密码没有泄漏。

有些注重密码安全的网站也会要求用户设置的密码必须包含数字、字母和特殊符号,并建议 90 天更换一次密码。

有条规则是用字符替代成相似的字母或数字,比如 $ 代替 s,! 代替1。

这种替换方式,对抵御暴力破解没有帮助。

如此设置的密码,因为密码过于难记,还有人会写在便条上,放在电脑附近。这样反而增加了被盗的风险。

在头号玩家这部电影里,反派就是把密码写在了电脑旁,被主角盗取了帐号。

Authy (两步验证)

现在叫 Twilio Authy。下载页面(如果因为网络原因打不开的话,可以去应用商店搜索)

谷歌验证器的替代品,能用谷歌验证器扫码的地方,也可以用Authy扫码。

在网站安全设置中,要求用谷歌验证器扫码添加密钥时,可以用Authy替代谷歌验证器。

原因:

谷歌验证器无法多设备实时同步,如果手机丢了或者坏了,密钥就找不回来了。

四五年前我丢过一次手机,当时用谷歌验证器,密钥丢了,我只能联系一个个网站客服修改登录方式,非常麻烦,有的还要给客服打电话,通过一些证据证明你的身份。

后来我就换成了Authy,Authy可以云同步。

img

采用这个密码方案的原因

The NIST rules were supposed to give us randomness. Instead they spawned a generation of widely used and goofy looking passwords such as Pa$$w0rd or Monkey1! “It’s not really random if you and 10,000 other people are doing it,” said Mr. Herley, the Microsoft researcher.wsj

NIST 的规则应该赋予我们随机性。取而代之的是,他们创造了一代广泛使用的、看起来傻傻的密码,比如 Pa $w0rd 或 Monkey1!微软研究员赫利先生说: “如果你和其他10000个人都在做这件事,那就不是随机的了。”。

  • 国家标准技术研究所改正建议

    2017年6月,国家标准技术研究所(NIST)发布新的《800-63》指引第三版,改正已沿用超过十年、受各大政府机构、银行、业界采用的旧建议,不再强调使用人脑难以记忆的特别符号、数字的无意义组合,而且亦不再建议密码需每九十日汰换,因为经研究证明此项指引并没有对系统安全带来有益的效果。NIST文件的旧版原作者伯尔(Bill Burr)并在《华尔街日报》访问中公开道歉,称当时他并无得到可靠的数据作严谨研究,只依靠来自八十年代、不合时宜的旧文件作为参考,而他的建议亦没有考虑到一般人的生活习惯及思考模式。负责撰写新版指引的NIST顾问格拉西(Paul Grassi)指出,旧的要求不利使用,对抵挡黑客攻击的作用不大;如果用户能够在脑海中构想出一幅其他人无法想像的图画,以此作为密码便是最好的,一句够长的完整句子,会优于较短的字母、数字及符号混合密码。华尔街日报引用广泛流传的xkcd漫画,指出只要密码够长,拼合几个看似无意义、但便于该用户记忆的字词作为密码,更能有效抵挡黑客攻击,暴力破解会需要更久的时间。wikiwind

  • 在不同网站不要使用重复的密码。

  • 避免其中一个网站的密码泄漏后,其它密码也遭殃。有些安全性不强的网站,用明文存储密码,密码库被盗后导致大量用户密码泄漏,进而导致其它使用相同密码的账户被攻陷。曾经我的邮箱和某个网站的密码重复了,那个网站的密码大规模泄漏后,没几天我使用的邮箱网站就提示我,有人在异地尝试登录我的邮箱,还好我已经开启了两步验证,对方没有登录成功。

密码管理器

我用的是免费跨平台的 lastpass,有手机软件、电脑软件和浏览器上的扩展。(2019年 iOS 版中国区下架,原因是国内商标被抢注,不知道未来是否能恢复上架,iOS 版依然可以在大陆以外的的 iOS 商店下载)

iOS虽然自带密码管理器,但不方便导出到其它平台,我不想被一个平台捆绑。如果需要管理的密码只有个位数,将来手动迁移也不算麻烦,那用iOS的密码管理器也无妨,如果要管理的密码很多,选跨平台的更好,方便迁移。

漫画:密码安全性

img

出处:xkcd.tw

内容详解

(这是 CQD 做的 xkcd 非官方翻译,以 CC-BY-NC 2.5 授权。xkcd 漫画作者为兰德尔·门罗。)

注:此漫画读者甚广,漫画里出现的这个密码就不要用了。

一些细节(不感兴趣可以略过)

这是随机单词密码和知名密码管理软件可以被信任的原因,即便黑客盗取了你的密码库文件,也无法攻破你的主密码,也就无法取得密码库里的其它密码。

  • 引用:stackexchange

  • Even with an offline brute-force against an MD5 password list, an attacker isn’t going to just exhaustively search password space. They will start by downloading lists of previously-cracked passwords and trying all of those. Then they’ll take a list of the most commonly used password-generation schemes and try those. The “combination of dictionary words” generation phrase is common enough that they may even try that. If so, the question is how long can you hold up? Depends on how many words you have and how many words are in your list. There are 7776 words in the diceware list, so let’s use that. That means a 4 word passphrase has approximately 3.66e15 different passwords combinations it can make. At a rate of 200 billion passwords per second (a top-of-the-line hashing rig) it will take 5 hours to search that password space. Here is the search time depending on the number of words in your password:

  • 即使使用离线暴力破解 MD5密码列表,攻击者也不会仅仅彻底搜索密码空间。他们将从下载以前破解过的密码列表开始,尝试所有这些方法。然后,他们会列出最常用的密码生成方案,并尝试这些方案。“词典词汇组合”这一代短语很常见,他们甚至可以尝试这样做。如果是这样,问题是你能坚持多久?这取决于你有多少个单词,以及列表中有多少个单词。在 diceware 列表中有7776个单词,所以让我们使用它。这意味着一个4字密码短语大约有3.66 e15个不同的密码组合。以每秒2000亿个密码的速度(一个顶级的散列设备) ,搜索这个密码空间需要5个小时。以下是根据密码中的单词数量确定的搜索时间:

  • 4 words: 5 hours 4个字: 5个小时
  • 5 words: 4.5 years 5个字: 4.5年
  • 6 words: 35,000 years 六个字: 三万五千年
  • 7 words: 270 million years 7个字: 2.7亿年
  • 8 words: 2 trillion years 8个字: 2万亿年

  • Of course MD5 is terrible. If your password was leaked from a system that uses more modern hashing methods, even a 4 word password will be effectively uncrackable. However, it’s best to assume the worst and, for important services, assume the person on the other end is using the worst possible security and choose accordingly (i.e. assume plain-text passwords or MD5). There are plenty of systems out there that are still using MD5 for passwords.

  • 当然 MD5很糟糕。如果你的密码是从一个使用更先进的哈希方法的系统中泄露出来的,那么即使是一个4个字的密码也是无法被破解的。然而,最好是假设最坏的情况,对于重要的服务,假设另一端的人正在使用最坏的安全措施,并相应地做出选择(例如假设纯文本密码或 MD5)。有很多系统仍然使用 MD5作为密码。