密码管理方案 - 指导思想

一、账户的所有权=密码
带来的问题:
【1】如果密码被忘记,这个账户就再也找不回来了。
【2】如果密码被泄漏/破解,不光失去对账户的控制,还可能给自己带来其它麻烦(如:恶意消费、诈骗等)。
包括几种情况:
【2.1】针对用户设备的:欺骗安装执行非法功能的程序(电脑木马程序、手机窃听短信的APP)、利用漏洞入侵设备。
【2.2】针对传输过程的:不安全的Wi-Fi,钓鱼网站。
【2.3】针对网站的:撞库、暴破、入侵。

解决问题:
解决【2.1】使用安全的设备,正版系统、及时更新系统/打安全补丁、非越狱/root的设备、安装靠谱的安全软件,不乱装软件。
解决【2.2】使用安全的Wi-Fi,不乱点链接。
解决【2.3】的撞库:不使用重复的密码。每个网站的密码都不一样
解决【2.3】的暴破:使用复杂密码(长度足够长12-20位,包括大小写字母、数字、符号等)
无法解决【2.3】的入侵网站,需要网站自身提升安全,不是用户解决的范畴。

使用不重复的复杂密码带来问题:
【3】密码太多记不住。

二、第二验证方式
为了解决问题【1】(忘记密码),网站除了密码,增加一些验证方式。
第二验证方式一般是邮箱或手机号(短信验证码)。现在也有用TOTP的。重要的业务都上了实名认证。
其中,邮箱本质上也是一个账户,也会涉及到密码和第二验证方式的结构。TOTP本质上是一个密码。可以理解为用一种安全又方便的方式使用一个特别长特别复杂的密码。手机号天然有一个后备保障:实名认证(身份证)。
如果密码被忘记/泄漏,只是临时失去控制,用户可以通过第二验证方式来找回、重置。

为了避免在手机被盗时失去对手机号(短信验证码)的控制。
  • 手机锁屏密码不要太简单容易被猜中,比如123456或者000000这种。有必要的情况下,锁屏密码可以设置得更复杂,比如除了数字还包含字符,或长度大于6位。
  • 手机锁屏时不显示短信内容。
  • 设置SIM卡PIN码,不要太简单被猜中(SIM卡PIN码最长8位数字)。这样SIM卡被取走,也不能装到别的手机上获得短信验证码。
使用手机带来新问题:
【4】手机锁屏密码需要记住。
(可以通过指纹、面部识别等技术缓解。但是遇到升级固件等情况下还是需要锁屏密码的)
【5】SIM卡PIN码需要记住。

三、使用密码库保管密码
为了解决问题【3】(密码太多记不住),使用密码库和主密码。
  • 主密码需要足够复杂。
  • 主密码不要在其它任何地方使用。你曾经在网上用过的密码,不要做为主密码。
  • 密码库需要足够安全。不仅是指加密方式(防暴破),也指保存方式(不能突然就损坏了或者访问不到)。
如果自建密码库,为了达到足够安全的加密方式,使用KeePass
带来新问题:
【6】主密码需要记住。
【7】密码库的保存。
  • 本地备份
  • 网盘/云备份
  • 密码库服务

四、密码库本地备份
如:手机、电脑 、移动硬盘等。
带来的问题:
  • 保存密码的设备,需要记住使用密码。(如:电脑密码)
  • 如果遇到火灾、地震、盗窃,密码库的所有备份就同时失效了。
  • 如果使用一些不容易被破坏、被盗的备份方式(比如用U盘放在家里什么特别的角落里),那么备份的操作就会变得比较繁琐。这是一对矛盾。
五、密码库网盘/云备份
如:GoogleDrive,OneDrive,Dropbox,Box.net,坚果云等。
带来的问题:网盘本身也是有密码的。
  • 把网盘的密码放到一个手机号邮箱里,邮箱的密码只可以不用记住,只要有手机号的控制权,就可以使用短信验证的方式进入邮箱。实际上,可以把网盘的密码保存在密码库里面,再阶段性地把密码库备份到手机号邮箱里,这样避免密码的明文保存。
六、密码库服务
如:Google Smart Lock, iCloud Keychain, 1Password, LastPass等。
相当于密码库的主密码同时也是网盘/云的密码。
  • Google Smart Lock的问题在于GFW屏蔽Google的服务。
  • iCloud Keychain的问题在于不能应用于PC。
  • 1Password 没有免费服务。
  • LastPass 算是不错的跨平台、跨浏览器的密码应用。有免费服务可选。
====== 综上所述 ======
使用密码库管理密码,使用手机号(短信验证码)作为密码重置验证,必须记住的信息只有:
  • 【4】手机锁屏密码
  • 【5】SIM卡PIN码
  • 【6】主密码

评论

The Hot3 in Last 30 Days

RackNerd VPS搭Hysteria2 HY2梯子 年付 $10.98 1G端口 3T流量 17G存储 1GB内存

强行重装 233boy的sing-box脚本 取消脚本报错退出的逻辑

KV-woker 纯练手项目 保护 _ 开头的 Key VS code 重构 JS 代码 提取代码为函数