整理了一下自己的账户密码管理思路,这里做个总结和分享,比较简单实用。
下面是一下基础知识,可以不看,直接跳到第 2 部分。
1.基础知识
2FA 两步验证
2FA 全称是 Two-Factor Authentication ,即双因素认证也叫两步登录。通过要求用户提供两种不同类型的验证信息来确认他们的身份。2FA 的典型工作流程如下:
- 用户输入用户名和密码。
- 系统验证密码后,要求用户提供第二个验证因素,例如通过短信发送到手机的验证码。
- 用户输入从手机收到的验证码。
- 系统验证验证码后,用户成功登录。
常见的 2FA 方法包括:
- 短信、邮箱验证码:系统向用户注册的手机号码、邮箱发送一次性验证码。
- 一次性密码 TOTP:如 Google Authenticator 、Authy 等应用会定期生成新的验证码。
- 生物识别:如指纹扫描、面部识别等。
- 硬件令牌:如 YubiKey 、RSA SecurID 等物理设备会生成或存储一次性验证码。
TOTP 一次性密码&Authenticator 认证应用
TOTP 全称是 Time-based One-Time Password ,即基于时间的一次性密码。它是一种双因素认证( 2FA )方法,TOTP 一般通过认证应用( Authenticator )应用生成,整个流程如下。
-
初始设置:
- 用户在在线服务(如 Google 、Facebook 、银行等)上启用 2FA 。
- 服务提供一个二维码或密钥,用户用认证应用扫描该二维码或手动输入密钥。这一过程在用户设备和服务之间建立了一个共享的秘密密钥。
-
生成 TOTP:
- 认证应用使用共享密钥和当前时间,通过特定算法(通常是 HMAC-SHA-1 )生成一个短时间内有效的验证码。
- 这些验证码通常每 30 秒更新一次。
-
登录过程:
- 用户输入用户名和密码后,系统提示输入动态验证码。
- 用户打开认证应用,读取当前显示的验证码,并输入到登录页面。
- 系统根据相同的共享密钥和当前时间生成期望的验证码,并与用户输入的验证码进行比较。
- 如果匹配,则验证成功,用户完成登录。
常见的认证应用
-
Google Authenticator:
- Google 提供的免费应用,支持多种在线服务。
- 简单易用,但不支持云备份。
-
Microsoft Authenticator:
- 微软提供的应用,适用于微软账户和其他兼容的服务。
- 支持云备份和多设备同步。
-
LastPass Authenticator:
- 由 LastPass 提供的应用,支持推送通知和备份功能。
- 集成了 LastPass 密码管理功能。
Password Manager 密码管理器
密码管理器通过生成、存储、自动填充和管理密码,帮助用户保护在线账户的安全,并减少记忆复杂密码的负担。密码管理器通常包括以下功能:
-
密码生成:
- 提供强大、安全的密码生成器,创建复杂且唯一的密码,以防止密码被猜测或破解。
-
密码存储:
- 安全地存储所有密码和其他敏感信息,如信用卡信息和安全问题答案。数据通常以加密形式存储,确保只有用户能够访问。
-
自动填充:
- 在用户访问网站或应用程序时,自动填充用户名和密码,简化登录过程。
-
多设备同步:
- 在多个设备之间同步密码库,确保用户在不同设备上都能访问和使用存储的密码。
-
安全检查:
- 检查密码是否强大,是否重复使用,是否涉及已知的数据泄露,并建议改进措施。
-
双因素认证( 2FA )集成:
- 一些密码管理器还集成了 2FA 功能,生成一次性密码( OTP ),进一步增强账户安全性。
常见的密码管理器
-
LastPass:
- 提供免费和付费版本,支持多设备同步、密码生成、自动填充和 2FA 集成等功能。
-
1Password:
- 提供家庭、个人和企业版本,具有强大的安全检查和多设备同步功能。
-
Bitwarden:
- 开源且免费的密码管理器,提供多设备同步和团队共享功能。
-
Keeper:
- 强调安全性和隐私保护,提供企业级安全解决方案和个人版本。
Passkey 通行密钥
通行密钥使用密钥(通常是生物验证) 而非密码识别你的身份。每个通行密钥包含一对密钥,一个由你持有,另一个由 App 或网站持有。密钥对在你与 App 或网站之间建立了安全且隐私的连接。
假设用户 Alice 要在一个网站上使用通行密钥登录:
-
初次注册:
- Alice 的设备生成一个密钥对(公钥和私钥)。
- 设备将公钥发送给网站,网站存储该公钥。
-
登录过程:
- Alice 访问网站,输入用户名。
- 网站生成一个质询数据(随机字符串)并发送给 Alice 的设备。
- Alice 的设备要求她进行生物识别(如指纹识别)。
- 验证通过后,设备用私钥对质询数据进行签名。
- 签名结果发送回网站。
- 网站使用存储的公钥验证签名,如果签名正确,则登录成功。
整个注册和登录过程,网站只拥有公钥,就能验证你拥有正确的私钥,而不需要知道私钥具体是什么。对于黑客来说,攻击网站存储的公钥数据库也就没什么太大的价值了。
2.我个人的密码管理实践
- 首先选一个密码管理器和认证应用。比如免费的 Bitwarden 和 Microsoft Authenticator
- 密码管理器开启 2FA ,一定记好主密码(主密码无法找回)
- 所有帐号的密码采用密码管理器生成的随机密码,然后保存在密码管理器里。保证所有密码不重复,即使密码泄露也只影响单一账户。
- 普通账户平时就用密码管理器一键登录。
- 重要的账户开启 2FA ,有通行密钥功能的的开启通行密钥,优先使用通行密钥登录。
- 2FA 尽量多填加几种方式,例如 TOTP ,短信,邮箱,防止单一 方式失效。
- 有的 2FA 会提供恢复代码,可以打印保存好,用于紧急绕过 2FA
- 密码管理器定期导出加密的密码备份文件保存好。
- 极限情况下比如手机丢失,如何找回密码管理器和 Authenticator 。密码管理器通过主密码(必须记得)和短信验证码(补办手机卡)或之前打印的恢复码过 2FA 。Authenticator 则可以一个个重新添加(微软的支持云备份)
3. 其他
感觉所有的安全验证方式,最终还是回归到手机上的生物验证即指纹和面容识别,因为 2FA 的 TOTP ,短信验证的都是依靠解锁手机,所以最后的盾是生物验证的可靠性。
另外,各位的 2FA 的邮箱一般选择哪家的? Gmail ,outlook 还是国内的 QQ 邮箱?
TOTP 和短信验证哪个更好?感觉国内很多大厂不提供主动 2FA ,比如 QQ 邮箱,都是通过智能风控判断是否要二次验证,可能对用户反而方便了。而且现在大部分 App 都是首选短信验证码登录,说不好是不是中和体验更好。
还有重要账户开启 2FA 后,自建密码管理器服务的意义在哪?