好的密码要自己容易记且别人难破解,这显然是不可能的。编程随想博客在《如何防止黑客入侵[3]:如何构造安全的口令/密码》一文里面曾经提过密码分级以及一些技巧。我曾经也尝试过密码分级,难点在于如何定级不容易,随着使用的网站增多,每个级别的相同密码也越来越多,并不是好事。由于编程随想的文章是写于 2010 年,情况与现在有所不同了。现代的浏览器都提供了自动生成随机、高强度密码的功能,然后把密码保存在本地,下次登录时自动填充。以前我都无视了这个功能,直到最近才想起来去整理一下。我用 Safari 浏览器,以它为例记录一下体会。
Safari 浏览器生成的密码的特点
默认会生成一个长度为 20 个字符的密码,包含 2 个短横线和 3 个长度为 6 的大小写字母数字串,例如:
bigmix-fakxi3-Fihted
gyhgiq-gIzdod-9tifki
cunzi9-nuhxak-raqbIr
如果网站的密码框设有长度限制(存在 maxlength
属性)且小于20,则 Safari 会自动调节密码长度为允许最长的值。
有些网站只允许字母和数字密码,因此 Safari 还会另外提供一个无特殊字符的版本,但长度是 15,例如:
W7mmkDz2YGTZZHU
A6aP7UUDiHRI3a5
7dwCPZ5S0H77xTF
某些网站的奇葩规定
在我这次整理的过程中,发现某些网站还存在奇葩规定(用户是上帝还是你是上帝❓):
- 有的要求除了字母数字之外必须要有特殊字符,但特殊字符不能是 -,或者特殊字符只能是它自己规定的几个字符之一。
- 有的要求不能以数字开头
这种情况下, Safari 浏览器无法自己识别这些规则,需要自己手动修改一下填充的密码。
删除不用的条目
在整理过程中我发现几乎一半的老网站都已经倒闭了,因此需要把他们从密码列表里面删除。但奇怪的是,如果从 设置 -> 密码 里面的列表里删除的话,很多条目过了几秒钟之后又会出现,就像僵尸一样永远也无法清除。这种情况经常发生于那些比较老的网站条目,原因是浏览器反复读取 KeyChain。解决方法是:打开 KeyChain,从里面删除条目,就 OK 了。
自动填充是否适用于 App?
这些随机密码是不可能记住的,只能通过登录时自动填充的方式来使用。浏览器登录对于大部分网站都没问题,难点在于 App 是否可能?
我发现:iOS (手机)的 app 基本上可以自动填充,估计是 iOS app 统一经过 App Store,基本都使用 webkit 框架的缘故。这又可以分为两类:
第一类是密码框输入设计规范的 App,如右图所示,只要在用户名输入框或者密码输入框里点击一下,在输入法上方就能出现备选密码,点击一下就可以自动填充了。
第二类是密码框输入设计不那么规范的 App,如下图所示,点击输入框后无法出现备选密码,但可以点击出现的“密码”按钮,进入所有密码列表,然后在“搜索”里面进行检索,即可。
而 macOS 的 app 因为来源各种各样,就不一定适用了。那些无法适用的只能自己复制粘贴一下了。
通过隔空投送分享给其他 macOS/iOS 用户
对于这种“记不住”的密码,如果想要分享给家人怎么办?除了复制粘贴文本之外,其实可以通过下图的方式隔空投送分享给他们,分享的是加密的 key chain,安全性较高。
如果只有单一设备,要注意保存 iCloud 密码
Safari 的密码库会与本机的 key chain 同步,而 key chain 又会和 iCloud 同步。万一设备坏了或丢了,在新设备上重新登录 iCloud 就可以重新使用密码。所以如果把 iCloud 的密码也改成了这种“随机”式的,而且只有一个苹果设备的话,那么需要自己单独保存一下iCloud 密码。否则万一设备坏了或丢了,就难以登录 iCloud ,那就不方便了。当然如果有多个同时登录了相同 iCloud 的设备就相对安全一些,毕竟它们同时坏掉的概率几乎为0。
双重验证的使用
这是可选项,只有少数网站支持。使用 macOS safari 浏览器和 iOS 之后,无需安装第三方 App 即可以操作。目前我使用的支持双重认证的网站有:
Protonmail、GitHub、Google、Facebook、Twitter、ORCID、cloudflare 等
下面以 Twitter 为例说明开启双重验证的方法。
???? 密码太多,不用这类工具帮忙生成密码与保存密码,真的不知道应该如何去记住。
我使用keePass多年。感觉浏览器自动生成并存储的方式,只适用于高度私有化的环境。
“高度私有化”是指什么?
如果在办公环境里需要登陆的话,就有点不方便。自动生成的密码安全的同时,自己也不方便了。
浏览器可以同步密码的。
其实我自己使用的密码,很多平台兜兜转转就那么几个固定的。虽然我也害怕密码被忘记,但使用那些工具生成的密码真的有点…… 总害怕找不到了。或者想不起来到底用的哪个工具了。确实也是隐患,现在我的密码一旦泄露,我很多平台账号就都遭殃了…
我这里说的是用浏览器生成密码,无论如何浏览器是不会丢的,毕竟每天要用
你这个是ios全家桶,要是安卓和windows都有的话就不好弄了,我全靠大脑记忆,几组不同的密码换着用
原生安卓是谷歌管理的,应该可以通过谷歌账号同步密码,也能同步到 windows 的 chrome 浏览器上。当然国产的安卓没有谷歌服务的估计就难办了
现有的密码管理工具都有或多或少的问题,比如跨平台、对应用的支持等等。
所以我现在采用最原始的方式管理账号密码,用 lastpass 网页版生成密码,手动记录到备忘录里面。采用这种方式差不多有一年多了,目前感觉还行。
手动记录的话在不同设备之间能同步吗?
备忘录在iOS设备之间是同步的。Windows的话,得用别的方式发送,比如登陆网页版的 iCloud,或者微信等。