[SPICE-0001] - 赛博空间自我保护大众包:密码和双因素验证
TLDR: 这篇文章介绍了一些在互联网上可以马上用起来保护自己的一些技巧,可能汝等已经从其他地方听说过无数次了……
那还不马上用起来啊!
上个月氪了一把重金(其实也就四位数的 Likecoin 啦……)支持了 @hi176 主持的「自由課」,第一期就是 @楊政賢 主持的《天眼時代,個人數據與隱私保護全教程》 ,虽然大抵上就是把平常老生常谈的那些再强调一下(咱这么说是不是有点对不起他啊……)
以及现在还是来得及的,在自由课发起文 支持作者可以拿到已经完结的四场的回放和文字记录哦~
在开始之前建议先看一下咱之前写的「资讯安全 ABC - 树立观点,选取策略,选择工具和更多」 那篇文章,那里咱先做了一些简单的介绍。
.
.
.
那么现在假设汝已经看过了那篇文章,对自己目前的状况有了些认识。那下面咱们就来……
(一定程度上)强化系统安全性
首先是确认系统有没有更新,这个嘛肯定会因为系统不同而方法不同,这里附上几个常见的操作系统的各自官方支持网站的链接供参考。
- Windows:https://support.microsoft.com/en-us/help/4027667/windows-10-update
- macOS:https://support.apple.com/en-us/HT201541
- iOS:https://support.apple.com/en-us/HT204204
- Android:https://support.google.com/android/answer/7680439
接着是加密系统分区,比较新的 iOS 、 macOS 和 Android 其实会自动帮汝完成这一步,再设置一个足够安全的密码就好啦。
- Windows 可以考虑启用设备加密(Windows 10 家庭版)或 Bitlocker (Windows 10 专业版等),可以参考这里了解如何启用:https://support.microsoft.com/en-us/help/4502379/windows-10-device-encryption 。当然加密 Windows 系统分区还有其它的方法,下次再聊了……
- macOS 可以启用 FileVault(文件保险箱)来加密系统分区,可以在这里参考设置方法:https://support.apple.com/en-us/HT204837
- 确认汝的 Android 设备有没有加密以及手动加密的方法可以参考这里: https://support.google.com/pixelphone/answer/2844831 (有可能不适合汝的设备)。
构造强力密码 01 - 避免常见的糟糕实践
例如常见的弱密码:
- 太短。对于暴力破解来说,破解越短的密码所用的时间也越短。
- 只有某一种元素(例如只有小写字母活着只有数字)。
- 具有容易加入词典的特征(例如连续的数字或字母(例如 12345678/abcdefg 这样的),具有特定意义的数字(例如日期或各种号码),单个单词等等)。试图破解密码的骇客通常会使用字典(大概就是收集好的一堆可能是密码的字或者词)来提高破解速度,假设汝的密码不幸在某本字典里的话……
以及,为了避免汝的密码不知道什么时候在哪里被泄露,然后被别有用心的家伙试着用泄露出来的密码登录汝其他的地方,不要在不同的地方用同一个密码。
“那那么多密码我记不住怎么办?”
构造强力密码 02 - 强力密码的经典策略
咱认为的“经典策略”大概就是以前被提起过的那些啦,虽然大有被近些年的新想法打败的趋势……
XKCD 936 就吐槽了这个现象,咱们用了这么多年教导了用户把密码设置的自己难记,但是电脑特别好猜。
不过这里的方法还是有参考价值的,毕竟这些方法都会稍微增加暴力破解的难度,现在汝可以选择让别的啥帮自己记住这些……
- 混合使用不同的元素,例如大小写字母和数字和符号一起用。
- 可以把某些字符变换成相似的字符,例如 O 和 0、1 和 I、a 和 @ 等等。
- 还可以利用某些聪明的方法,例如键位平移(但这就会假设汝只会在一种键盘上输入密码),利用 SHIFT 等特殊键(可能会因为输入速度变慢被偷窥)等等。
构造强力密码 03 - 强力密码的新潮策略
其实就在漫画下面了,就是用多个单词组成密码短语(passphrase)。
- 采用随机的单词而且足够多的话,长度和暴力破解的难度就会直线上升。
- 而且还很好记。(汝也可以利用上面的例子那样的方法帮助记忆,或者也可以考虑让别的啥帮忙)
比较常见的方法是利用一份随机的单词表和一些能产生随机数的工具(例如骰子),EFF (电子前哨基金会)已经制作好一张可以和骰子结合的单词表了,在这里: https://www.eff.org/files/2016/07/18/eff_large_wordlist.txt
- 汝也可以在单词中间加入分隔符,像是空格或减号那样的。当然没有也没什么问题。
- 一般来说六个词组成的密码短语就足以在有生之年难倒大多数的暴力破解了,除非汝有在考虑一些意想不到的威胁(例如大企业或政权……敲门声),这种情况下可以再添几个单词。
构造强力密码 04 - 强力密码的好伙伴
前面汝听咱们的教导不在不同的地方用同一个密码啦?这当然很好,不过汝一定发现了另一个问题,是不是记不住那么多密码啦?
密码管理器前来搭救!
- 所谓的“密码管理器”,就是一种能帮助汝记忆密码的程序。
- 不少的密码管理器还有一些实用功能,例如帮汝生成密码(当然利用到了之前提起过的技巧),在不同的地方自动帮汝填上密码等等。
- 如果使用基于网络的密码管理器,汝就有机会在汝不同的设备上同步汝所保存的密码。当然有人可能会担心云端服务泄露啥的,用基于本地的密码管理器然后在不同设备间自己同步也是一种方法。
那么哪里有密码管理器呢?
- 浏览器和操作系统可能有内置的密码管理器,例如 Chrome 和 Firefox ,以及 iCloud 钥匙串等。通常都是云端服务,于是除了云端服务那问题以外汝可能还要考虑要是在这些地方以外怎么用的问题……
- 也有基于云端服务的跨平台密码管理器,例如 Bitwarden 。因为它的客户端和服务端都是自由软件,除了官方提供的服务器以外,巧手的汝也可以试试自己运行一个服务端呗~
- 当然最传统的纯本地密码管理器也是有的,例如 KeePass ,还有一个比较有名的克隆是 KeePassXC。
当然不是用了密码管理器就可以高枕无忧了:
- 所有的密码管理器都需要一个主密码来保护剩下的密码,所以记得用前面提到的方法想一个足够强的主密码,然后记住它!(记一个密码总比记一堆密码容易吧……)
- 如果汝多想了一点点而感到不放心的话(例如担心服务出问题或者本地的密码库文件泄露啥的),那么就该是二八定理(?)出场的时候啦。自己记住密码管理器的主密码和一些很重要的密码,剩下的交给密码管理器来记。
构造强力密码 05 - 未雨绸缪和亡羊补牢
有一些网站会帮汝估计汝的密码可能的强度,比如 How Secure is My Password(https://howsecureismypassword.net/ )。不过汝要是想尝试一下的话当然记得不要用真的密码去试……
还有一些网站会收集曾被披露过泄露过密码的网站的信息,例如 Have I Pwned? 。像 Firefox Monitor 和一些密码管理器也使用它们的数据作为来源。它们会通过比较汝使用过的电子邮件地址和已公开的报告来判断汝的密码是否可能被泄露。如果汝使用过的某个服务不幸发生了泄露事件,那就快点修改那里的密码吧!(如果汝也在别的地方用了那个密码,也要记得修改掉。)
开启双因素验证
偶尔汝会见到“两步验证”“双重验证”这样的说法,它们的含义大抵是相同的。
又是老生常谈的一点,简单的来说,两步验证通过一些额外的措施确保了就算汝的密码因为某些原因不慎泄露,攻击者在只知道汝的密码的情况下也无法访问汝的账号。所以只要汝正在使用的服务支持的话,就打开吧。
关于各种两步验证的类型、劣势和注意点,咱之前有翻译过一篇 EFF 的文章,这次再拿来参考一下: 常见的双因素认证类型
Two Factor Auth 网站列出了一些支持双因素验证的服务,以及启用方法的链接。
简单的再来说:
- 基于短信和电子邮件的双因素验证在某些场合可能不够安全,如果汝使用的服务有其它的验证方式的话最好避免使用。
- 基于时间的一次性代码(TOTP)已经被标准化了(RFC 6236),因此有很多的验证器应用支持,例如最流行的 Google Authenticator 和 FreeOTP 等等,很多的服务也支持这种验证方式。于是汝要记得保护好安装有验证器应用的设备,也可以考虑在多个设备上安装验证器应用。(有些验证器应用支持在不同的设备间传送生成验证码的密钥)
- 如果使用基于通知的双因素验证,记得保护好接收通知的设备。
- 如果使用安全密钥的话,那当然是记得带好她啊……
- 以及不管用哪种方式进行双因素验证,汝大概都会收到一些恢复代码。因为可以通过恢复代码访问汝的账户,所以要记得像保护密码一样保护它们。(保护的好的话,放在密码管理器里也许是个不错的方法?)
于是现在先暂停一下,用一些时间把这些方法实践起来吧~