2019 年 12 月,密码安全服务公司 SplashData 发布了第 9 个年度「最烂密码百强榜单」—— The Worst Passwords of 2019。据介绍,该榜单是收集了超过 500 万个已泄露密码后统计出来的,大多来自北美和欧洲用户。
SplashData 估计,大约有 10% 的用户使用过至少一个 Top 25 的烂密码。3% 的用户使用过「123456」。
「烂密码」有什么危害?
2020 年,互联网让每一个网民都接触到各式各样的密码,深知密码安全的重要性。很多同学可能都有 QQ 号被盗的经历,在吐槽腾讯的安全措施不到位之余,我们有没有反思过,自己的密码是「烂密码」吗?足够安全吗?
「烂密码」的危害显而易见:
烂密码容易被盗号!烂密码容易被盗号!烂密码容易被盗号!
我们以上述表格中排名第 13 的密码 1q2w3e4r 为例,看看黑客可以在多长时间内破解它
出乎意料,只需要 2 秒即可破解!我还特意挑了一个看上去挺不规则的密码1 (密码安全性与复杂程度没有太大的关系,后面会提到)。如果你想知道自己的密码是否被泄露过,可以前往 这里 输入邮箱验证一下。注意!是输入邮箱,千万不要输入你的密码!
如何保证密码安全?
避免一个密码遍天下
我们应该「一把钥匙开一扇门」,而不是仅仅使用「一把万能钥匙开所有门」。
相信我派的大部分朋友并不会使用 SplashData 公布的「最烂密码百强榜单」中的密码。但是可以肯定的是,为了便于记忆,你会多个账户共用同一个密码。也许你会认为,自己的密码相当复杂,别人不可能猜得到。但是,无论密码看上去多么安全,只要多个账户共用同一个密码,就有「撞库」的风险。
「撞库」英文名为 Credential Stuffing,它的含义如下:
撞库是黑客通过收集互联网已泄露的用户和密码信息,生成对应的字典表,尝试批量登录其他网站后,得到一系列可以登录的用户。很多用户在不同网站使用的是相同的帐号密码,因此黑客可以通过获取用户在 A 网站的账户从而尝试登录 B 网址,这就可以理解为撞库攻击。
举个栗子,支付宝比 QQ 的安全等级更高,如果你的这两个账户共用一个密码,黑客盯上了你的账户,就会首先尝试攻破 QQ 密码,一旦成功,他接下来破解支付宝账号不就手到擒来?因此,即使密码再复杂,共用同一个密码,都会使你的密码安全性大打折扣。更何况,有的人还会主动把自己的密码说出来 。
不按套路设置密码
你可能不会设置「最烂密码百强榜单」中的密码,但可能会使用姓名简称、生日或其他常见数字作为密码,但这些都非常不安全。在当下的互联网环境下,骗子都能准确地说出你的身份证号,姓名和生日这样的信息还会有隐私可言吗?
我们推荐,定制一套独属于自己的规则,设置专属密码。当然每个人因人而异,具体可以参考 人民日报 给出的建议。
图片来源于人民日报微博
密码越复杂越安全吗?
设置密码时,为了安全起见,很多平台要求用户必须设置非常复杂且难以记住的密码,比如至少 8 位,包括大写字母、小写字母、阿拉伯数字、特殊字符等。这让很多朋友非常头疼:好不容易编出来一个符合要求的复杂密码,还要想办法记住它,时间一久就会忘记,可真是太南了!
图片来源于 Dribbble
为什么我们需要设置包括大写字母、小写字母、阿拉伯数字、特殊字符组成的密码?实际上,这是前美国国家标准技术研究院(NIST)工程师 Bill Burr 在 2003 年编写的有关密码安全性的官方指南中提出的原则,这份指南建议人们使用不规则的大写字母、特殊字符和至少一个数字来设置密码,并且最好定期更换密码,后来被世界范围内的政府、企业和消费者广泛采用。
然而,在 Bill Burr 提出这一原则 14 年后,也就是 2017 年,他承认 当年撰写的密码安全性的官方指南产生了误导。其实遵循这一原则并不能提高密码的安全性,反而会使密码更容易受到攻击,因为用户设置了复杂密码后,可能会重复使用,或者为了避免忘掉,往往会写下来甚至贴在电脑旁边。而定期更换密码的建议也具有误导性,因为很多人只会更换其中部分字符,让黑客更容易通过已泄漏的密码进行破解。
美国国家网络安全和通信整合中心(NCCIC/US-CERT)在 2018 年给出的设置密码的 建议 中,没有提到设置阿拉伯数字、大小写字母、特殊字符的组合式密码,而强调了尽可能把密码设置到最长。
因此,密码的安全性与其复杂程度没有多大的关系,而与密码的长度密切相关!
为了验证密码越长越安全是否真的可靠,我在密码安全性检测网站 Kaspersky 做了一个测试,分别使用下面 6 个密码,长度从 8 位递增到 12 位,来测试暴力破解所需的时间:
- I_6s@5Y$
- I_6s@5Y$O
- I_6s@5Y$O?
- I_6s@5Y$O?z
- I_6s@5Y$O?z9
- I_6s@5Y$O?z9%
测试结果如下图所示,可以看出,密码每增加一位,暴力破解所需的时间呈几何级数增长。因此,密码越长越安全是可靠的。
一般认为,16 位的密码就比较安全了,以目前计算机的计算能力,这个强度的密码要计算很长时间,当然随着技术的进步,这个时间可能会被不断缩短。因此,我们建议,在可能的情况下,至少设置 16 位长度的密码。
值得注意的是,既然密码安全性与其复杂程度关系不大,为什么上面的例子中,我要把密码设置得非常复杂?从排列组合的角度看,供选择的字符种类越多,组合方式就越多,暴力破解的难度也就越大。因此,在密码足够长的基础上,可以认为密码越复杂越安全。
开启两步验证
两步验证(Two-Factor Authentication, 2FA)又称二次验证、双重认证,是一种保护帐户的第二层保障。顾名思义,两步验证需要两个步骤来验证使用者的身份,能够给网络安全额外增加一层保护,即使密码被盗,账户依然安全。两步验证一般要求用户提供两种类型的信息来提高账户的安全性,如密码、个人识别码、电子邮件验证码、短信验证码、指纹、安全问题等,然后用户才能登录。第一步一般是密码,第二步则是其他的验证信息。
图片来源于 Dribbble
启用两步验证后,在新设备上登录账户时,需要 2 个步骤:
- 像平常一样输入账号密码
- 再输入一个验证信息(信任设备进行确认、短信验证码、邮件验证码等)
信任设备进行确认
短信验证码
邮箱验证
2020 年,几乎常用的账户都已支持两步验证,比如 Apple ID、Google Account、Twitter、Dropbox。对于支持两步验证的账户,建议都打开。对于 Apple ID、Google Account 这类关乎「身家性命」的账户,更是一定要打开两步验证!至于如何开启两步验证,各个账户不尽相同,但一般都很容易找到。例如开启 Apple ID 的「双重认证」,只需打开 Apple ID 管理页面,登录自己的 Apple ID,就可以进行设置,一旦开启,就无法再关闭。
使用密码管理工具
前文提到,密码要尽可能地长,平台要求使用数字字母组合密码,我的密码又那么多,没有过目不忘的记忆力,怎么可能记得住?
因此,我们就需要密码管理工具。密码管理工具相当于一个保险柜,把你所有的密码认认真真地记下来,放进保险柜里锁好。你只需要记住一个密码,就是保险柜的密码,就可以找到你的所有账户的密码。只要保证保险柜的安全,那么所有的密码就都是安全的。
密码管理有工具很多,常用的有:
- 1Password
- LastPass
- KeepPass
- Enpass
- Bitwarden
建议选择知名的、并且没有「黑历史」的密码管理工具。知名说明他们是信得过的,同时会有很多高手盯着他们的安全性,黑历史就像个人信誉,有一丁点儿也会大打折扣,一定要避开。上述密码管理工具的功能差不多,基本都有这些功能:
- 保存密码
- 自动填充密码
- 生成高强度密码
- 生成两次验证的随机码
- 多设备数据同步
不过,以上密码工具我只用过 1Password,并且还是赠送的会员资格。没有选择这些工具的原因,一是因为我囊中羞涩,不想付费(虽然 KeepPass、Bitwarden 是免费的),二是我不想把密码散落在四处,这样不便于统一管理。因此,我的主力密码管理工具是 iCloud 钥匙串(iCloud Keychain)—— Apple 在 iOS 7 加入的一项功能。虽然 iCloud 钥匙串还有很多不足,比如不能自定义生成密码的长度与组合方式,Mac 上填充不够优雅等,但毕竟是系统内置、完全免费、可以自动生成与填充密码,多设备无缝同步…… 并且是 Apple 爸爸的亲儿子,安全性也没问题。要说 Apple 生态有什么好,iCloud 钥匙串一定榜上有名。
iCloud 钥匙串自动生成与填充密码
在 macOS 上打开 Safari -> 偏好设置 -> 密码,iOS & iPadOS 上打开设置 -> 密码与账户 -> 网站与 App 密码,可以查看所有存储在 iCloud 钥匙串中的密码,以及对存储的账号密码进行修改。同时,iCloud 钥匙串还会用 ⚠️ 对密码重复或很容易被猜到的密码进行提示。
密码之外的安全
互联网可以说是险象环生,即使你避免一个密码遍天下,不按套路设置密码,密码足够长,开启了两步验证,骗子还是会无所不用其极,想尽一切办法来盗取你的密码。一般来说,下面这些情形是比较危险的:
- 不加辨别蹭免费 Wi-Fi
- 旧设备信息删除不彻底
- 下载来路不明的盗版软件
- 随意点击短信链接
- 见二维码就扫
- 无视浏览器安全警告
这里主要说一下浏览器安全警告。一般来说,主流浏览器用户群体广泛,有大厂做支撑,有着强大的安全团队,是值得信任的,比如 Apple Safari、Google Chrome、Mozilla Firefox,因此这些浏览器的警告不可忽视。
注意,上图是在特殊网络环境下进行演示,浏览器给出的警告,不表示 v.qq.com(腾讯视频)具有欺骗性
2018 年 2 月,Google 宣布,从 Chrome 68 开始,对所有使用 http 协议的网站标注 不安全 (not secure)。如今,Safari、Firefox 也都会这样标记,以提示用户注意,同时也是督促网站开发者尽快淘汰 http,更换为 https (Hypertext Transfer Protocol Secure)。
为什么 http 协议的网站会被标注为 不安全?因为 http 压根就没有安全性可言,而目前国内大多数政府、高校网站还在使用 http,真是感到很无奈,ball ball 你们快点更换为 https 吧。
https 为什么安全?这个问题说起来有一点复杂,如果你感兴趣,可以阅读 这篇文章。简单来说,使用 https 协议的网站是「有身份的」,因为它有 SSL 证书,而只有权威机构才能颁发 SSL 证书,当用户访问拥有真实证书的网站时,浏览器检查证书确实属于这个网站,并且来自权威机构,于是浏览器告诉用户,你这次访问不会被监控,是安全的。
图片来源于 https://qdan.me/list/VRJfywTb_Gix3bnz.html
我们常用的浏览器可以查看访问网站的证书,例如下图,就是在 Safari 浏览器中查看我派和 我的博客 的 SSL 证书详情。
除此之外,注重隐私保护,也是增强安全性的重要手段,尽管这在当下的互联网环境下非常难以做到:发条朋友圈、聊天发送一张图片都可能会泄露各种信息,更不用说各大厂商对用户「若有若无」的监控。
说到这里,就不得不提到 Apple 的 隐私保护3 。保护隐私本来是厂商的基本职责,如今却变成了一种奢求,而 Apple 因其在隐私保护方面的「极致」追求,更是成为它的一大卖点。
关于 iPhone 的隐私保护, Apple 拍摄过一系列视频来宣传推广,比如 Privacy on iPhone 的广告,吸引着包括我在内的很多人选择 iPhone。虽然隐私泄露不一定会威胁密码安全,但不注重隐私保护,难道可以说是安全的吗?
最后的忠告:
密码非儿戏,务必要牢记
上网冲浪爽,陷阱时刻防
道路千万条,安全第一条