V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lurui45
V2EX  ›  信息安全

普通人如何保护账户密码安全

  •  
  •   lurui45 · 172 天前 · 2990 次点击
    这是一个创建于 172 天前的主题,其中的信息可能已经有所发展或是发生改变。

    整理了一下自己的账户密码管理思路,这里做个总结和分享,比较简单实用。

    下面是一下基础知识,可以不看,直接跳到第 2 部分。

    1.基础知识

    2FA 两步验证

    2FA 全称是 Two-Factor Authentication ,即双因素认证也叫两步登录。通过要求用户提供两种不同类型的验证信息来确认他们的身份。2FA 的典型工作流程如下:

    1. 用户输入用户名和密码。
    2. 系统验证密码后,要求用户提供第二个验证因素,例如通过短信发送到手机的验证码。
    3. 用户输入从手机收到的验证码。
    4. 系统验证验证码后,用户成功登录。

    常见的 2FA 方法包括:

    • 短信、邮箱验证码:系统向用户注册的手机号码、邮箱发送一次性验证码。
    • 一次性密码 TOTP:如 Google Authenticator 、Authy 等应用会定期生成新的验证码。
    • 生物识别:如指纹扫描、面部识别等。
    • 硬件令牌:如 YubiKey 、RSA SecurID 等物理设备会生成或存储一次性验证码。

    TOTP 一次性密码&Authenticator 认证应用

    TOTP 全称是 Time-based One-Time Password ,即基于时间的一次性密码。它是一种双因素认证( 2FA )方法,TOTP 一般通过认证应用( Authenticator )应用生成,整个流程如下。

    1. 初始设置
      • 用户在在线服务(如 Google 、Facebook 、银行等)上启用 2FA 。
      • 服务提供一个二维码或密钥,用户用认证应用扫描该二维码或手动输入密钥。这一过程在用户设备和服务之间建立了一个共享的秘密密钥。
    2. 生成 TOTP
      • 认证应用使用共享密钥和当前时间,通过特定算法(通常是 HMAC-SHA-1 )生成一个短时间内有效的验证码。
      • 这些验证码通常每 30 秒更新一次。
    3. 登录过程
      • 用户输入用户名和密码后,系统提示输入动态验证码。
      • 用户打开认证应用,读取当前显示的验证码,并输入到登录页面。
      • 系统根据相同的共享密钥和当前时间生成期望的验证码,并与用户输入的验证码进行比较。
      • 如果匹配,则验证成功,用户完成登录。

    常见的认证应用

    1. Google Authenticator
      • Google 提供的免费应用,支持多种在线服务。
      • 简单易用,但不支持云备份。
    2. Microsoft Authenticator
      • 微软提供的应用,适用于微软账户和其他兼容的服务。
      • 支持云备份和多设备同步。
    3. LastPass Authenticator
      • 由 LastPass 提供的应用,支持推送通知和备份功能。
      • 集成了 LastPass 密码管理功能。

    Password Manager 密码管理器

    密码管理器通过生成、存储、自动填充和管理密码,帮助用户保护在线账户的安全,并减少记忆复杂密码的负担。密码管理器通常包括以下功能:

    1. 密码生成
      • 提供强大、安全的密码生成器,创建复杂且唯一的密码,以防止密码被猜测或破解。
    2. 密码存储
      • 安全地存储所有密码和其他敏感信息,如信用卡信息和安全问题答案。数据通常以加密形式存储,确保只有用户能够访问。
    3. 自动填充
      • 在用户访问网站或应用程序时,自动填充用户名和密码,简化登录过程。
    4. 多设备同步
      • 在多个设备之间同步密码库,确保用户在不同设备上都能访问和使用存储的密码。
    5. 安全检查
      • 检查密码是否强大,是否重复使用,是否涉及已知的数据泄露,并建议改进措施。
    6. 双因素认证( 2FA )集成
      • 一些密码管理器还集成了 2FA 功能,生成一次性密码( OTP ),进一步增强账户安全性。

    常见的密码管理器

    1. LastPass
      • 提供免费和付费版本,支持多设备同步、密码生成、自动填充和 2FA 集成等功能。
    2. 1Password
      • 提供家庭、个人和企业版本,具有强大的安全检查和多设备同步功能。
    3. Bitwarden
      • 开源且免费的密码管理器,提供多设备同步和团队共享功能。
    4. Keeper
      • 强调安全性和隐私保护,提供企业级安全解决方案和个人版本。

    Passkey 通行密钥

    通行密钥使用密钥(通常是生物验证) 而非密码识别你的身份。每个通行密钥包含一对密钥,一个由你持有,另一个由 App 或网站持有。密钥对在你与 App 或网站之间建立了安全且隐私的连接。 假设用户 Alice 要在一个网站上使用通行密钥登录:

    1. 初次注册
      • Alice 的设备生成一个密钥对(公钥和私钥)。
      • 设备将公钥发送给网站,网站存储该公钥。
    2. 登录过程
      • 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 后,自建密码管理器服务的意义在哪?

    19 条回复    2024-05-20 10:23:44 +08:00
    wskymark
        1
    wskymark  
       172 天前
    谷歌支持云备份有好一段时间了
    YGHMXFAL
        2
    YGHMXFAL  
       172 天前
    整这么复杂

    ①TOTP/密码管理器 APP 选择开源+离线+支持导入导出的随便一款就行,密码库文件随便上传到墙内多个网盘+syncthing 自动同步到个人其它设备

    ②我不喜欢各种生物认证,包括但不限于人脸识别/指纹识别/硬件令牌等等,因为这些验证因子可能在我不知情的情况下被用于解锁,而且生物特征一次泄漏终身享福
    lurui45
        3
    lurui45  
    OP
       172 天前
    @wskymark 谷歌因为墙,首选微软的吧
    lurui45
        4
    lurui45  
    OP
       172 天前
    @YGHMXFAL 我是信不过自建的服务器的稳定性和安全性,密码库文件我也不敢放到国内网盘上。
    maggch97
        5
    maggch97  
       172 天前 via iPhone
    只用 iOS 保存密码和登录,不要用 Mac ,Windows ,安卓
    1KTN90lKW9gVJ9vX
        6
    1KTN90lKW9gVJ9vX  
       172 天前 via iPhone
    我自己的都不记得密码,我自己都要输入几次密码,还要找回密码找回账号,还不够安全吗!?
    0o0O0o0O0o
        7
    0o0O0o0O0o  
       172 天前
    > 信不过自建的服务器的安全性,密码库文件也不敢放到国内网盘上

    我觉得选好合格的密码管理器设置好主密码后就不用考虑这些问题了,只要注意不使用 Web 版本,就不需要也不应该依赖服务器、存储、传输过程的安全性,要需要关注的是你的主密码和设备的安全性。

    > 2FA 的邮箱一般选择哪家的
    > 和短信验证哪个更好

    没有办法保证短信和邮箱只有你能访问
    YGHMXFAL
        8
    YGHMXFAL  
       172 天前
    @lurui45 #4 密码库文件都是强加密,传到墙内网盘也无所谓
    qbqbqbqb
        9
    qbqbqbqb  
       172 天前
    TOTP 用开源的 Aegis ,可以导出加密备份
    qbqbqbqb
        10
    qbqbqbqb  
       172 天前   ❤️ 2
    @YGHMXFAL 硬件令牌和生物认证还是不一样的。

    像 yubikey 这样的硬件令牌内部用的就是标准的签名/加密手段,再外加一个私钥不能导出的特性,事实上是最安全的,不仅能做 2FA 的第二因子,还可以做无密码账户的唯一因子,一步验证,照样不失安全性。
    并且令牌可以设置 PIN (防止被他人捡走使用),可以要求认证时触摸实体按钮(防止被不知情使用),你说的几个问题基本都不存在。
    就是丢了比较麻烦,需要提前准备备用手段,这个备用手段可能不如令牌本身安全。

    生物认证恰好相反,基本没啥安全性可言(因为生物特征没法直接派生私钥,不能起到加密的功能,本质上只是一个较弱的认证手段),主要还是为了方便,只用于锁屏快速解锁(公共场合还可以防偷窥密码)/免密支付替代品(有了指纹支付日常使用就很方便了,不必开更不安全的免密支付了)。
    sfdev
        11
    sfdev  
       172 天前 via Android
    其实很简单,强密码+两步验证就是唯一最优解。这肯定要借助密码管理器,商业的,开源的,自建的,都一样没什么区别,看你自己怎么选了。
    frankilla
        12
    frankilla  
       172 天前
    直接 vaultwarden
    totoro625
        13
    totoro625  
       172 天前
    普通人是接触不到短信验证码以外的两步验证的
    dototototo
        14
    dototototo  
       172 天前 via Android
    加一个 KeePass 吧,我们也很好用的,求求你了😭
    xiamy1314
        15
    xiamy1314  
       172 天前
    普通人都是忘记密码登录,不过现在很多都可以直接短信登录....很安全了..
    uuhhme
        16
    uuhhme  
       172 天前
    2FA 软件推荐 ente auth ,同时保存到 icloud 钥匙串做备用,平时 ente 够用了
    yanheqi
        17
    yanheqi  
       172 天前
    我平时也有用 Microsoft Authenticator 开启 2FA 。
    就是担心装 Microsoft Authenticator 的手机要是丢了或者被偷,该怎么办呢?
    zhlssg
        18
    zhlssg  
       172 天前
    买了 bitwarden 的 premium 会员,这样 TOTP 就不需要用另外的软件了,使用起来方便一些
    就是不知道这样是不是降低了安全性,2fa 和 password manager 分开的话应该是更安全一些
    lisxour
        19
    lisxour  
       171 天前
    @lurui45 #3 微软也常常抽风,我登 outlook 的时候,微软会优先发送一个数字让你点击登录,然而我手机经常收不到,而且很多情况下不允许你切换成常规 2fa 验证。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1086 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:33 · PVG 06:33 · LAX 14:33 · JFK 17:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.