V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qdwang
V2EX  ›  问与答

感觉 Passkey 没比验证码 2FA 安全啊?

  •  
  •   qdwang · 1 天前 · 1265 次点击

    看到有人说 passkey 更安全,我感觉除了可以防钓鱼外,没更安全啊

    如果验证码 2FA 是因为账户同步被盗的,那 passkey 一样可以因为账户同步被盗。

    有没有人说说,passkey 对比验证码形式的 2FA 更好的地方?

    34 条回复    2025-11-25 18:44:44 +08:00
    Matrixes
        1
    Matrixes  
       1 天前 via Android   ❤️ 1
    感觉 2FA 反而跟安全,2FA 可以和密码分开存储,passkey 被盗了就直接完犊子
    Xntu
        2
    Xntu  
       1 天前
    这东西的目的就是为了不需要记密码,提供更方便快捷的验证方式
    usn
        3
    usn  
    PRO
       23 小时 54 分钟前   ❤️ 1
    和我之前常常想到的问题类似:passkey 的优势在于使用时比起 2fa 更加流畅,但它也带来一个非常明显的隐患,对于传统的 2fa ,即使 2fa 的 recovery code 被盗,也不代表账号一定沦陷,因为还有账号密码这道关卡,账号仍然可能是安全的。然而,许多支持 passkey 的网站只要 passkey 验证通过就能直接登录,passkey 的权限甚至比短信验证码还高,这就很离谱,一旦 passkey 被同步到攻击者设备上,整个被盗的过程基本上就会是一路绿灯。这一切的大前提是,假设攻击者物理获取了你的 sim 卡,通过短信完成了 apple id 的登录,再开启 icloud keychain 同步,那么所有 passkey 都会自动同步到对方设备上,到了这一步之后,攻击者就能直接登录大量网站,无需账号、密码、短信验证、2fa (如果确实这个网站在不了解 passkey 弱点的情况下给 passkey 的权限一路开绿灯的话)
    leoking6
        4
    leoking6  
       23 小时 50 分钟前
    很多用户是多个网站共用同一个密码的,一个泄露了,其他没启用 2FA 的全遭殃。Passkey 没有这个问题。
    理论上 Passkey 私钥不应该离开设备的,绝大多数情况下也都在强加密状态,OP 说的私钥泄露是指什么场景?
    woniu7
        5
    woniu7  
       23 小时 40 分钟前
    好用,爱用。钥匙扣上,欢迎来盗
    v1
        6
    v1  
       23 小时 39 分钟前
    @qdwang @Matrixes passkey 不是更好的,它只是传统密码验证和 2FA 的替代品。

    你们会有错觉,其实是天朝“严格”的实名环境导致的。如果没有强制实名,很难证明你是这个手机号的主人,如同你要证明你爹是你爹一样滑稽。U 盾( TOTP )也是一样的。

    先说下 passkey 的原理。你的设备有一个私钥(绝对本地)和一个公钥(云端存储)。登录时,系统用云端的公钥加密一个随机挑战信息,只有拥有对应私钥的你才能解密并回应,从而证明身份。只要 passkey 的私钥从未泄露,默认你就是安全的。

    然后是被盗的问题。同样被盗的情况下,未实名的手机号、U 盾、TOTP 基本上是没有办法补救的,实名的情况下你还需要去特定渠道(营业厅等)补救。而 passkey 只需要使用备用代码(打印出来保管、纹在 JJ 上等等)就可以立刻恢复登录同时更换新的私钥。
    moudy
        7
    moudy  
       23 小时 27 分钟前 via iPhone
    这些问题我半年前就问过 https://sunp.eu.org/t/1148585

    结论是啥不离开设备之类的都是扯淡。丢失了该怎么办也没有定论。并不比 2fa 更安全
    qdwang
        8
    qdwang  
    OP
       22 小时 42 分钟前
    @leoking6 就是有的人 google authenticator 因为开了同步,被盗账号后,所有的 2FA 验证码就都在黑客手里了。passkey 同理,一旦同步账号被盗,就全部裸奔了。所以我觉得 passkey 没有更安全。你说的很多网站用同一个密码,确实用 passkey 可以避免。

    总的来说我感觉,安全性上:

    密码管理器 A 生成密码 + 2FA 管理器 B 记录验证码 > passkey > 老密码
    qdwang
        9
    qdwang  
    OP
       22 小时 40 分钟前
    @v1 如果 passkey 需要用备用代码记录,那并没有比用密码管理器生成长密码更方便安全。
    ysc3839
        10
    ysc3839  
       22 小时 39 分钟前 via Android
    Passkey 其实是公私钥鉴权,从算法角度讲安全性是比密码及 MFA 好的。
    而且 Passkey 一般是要搭配硬件密钥使用,私钥是不可导出的。即使使用可导出的私钥,一般也要配合密码使用
    qdwang
        11
    qdwang  
    OP
       22 小时 39 分钟前
    @woniu7 你有同步 passkey 在某个账号上吗?如果那个账号被盗了,不是全丢了?

    如果你没同步在某个账号上,那万一你设备丢了,怎么办?
    qdwang
        12
    qdwang  
    OP
       22 小时 38 分钟前
    @moudy 对的,我也觉得,passkey 只是比反复用老密码安全一点,但是并没比密码 + 2fa 安全。而且同步账号被盗会面临一锅端风险。
    qdwang
        13
    qdwang  
    OP
       22 小时 36 分钟前
    @ysc3839 是的,从算法原理上肯定是比密码好的。问题出在管理上,实际情况总是需要管理这些密钥的,比如云同步或者打印密钥,这就增加了使用成本也降低了安全性。
    qdwang
        14
    qdwang  
    OP
       22 小时 35 分钟前
    @Matrixes 对的,密码和 2fa 使用不同的管理器,还可以防止一锅端现象
    niunew
        15
    niunew  
       22 小时 24 分钟前 via Android
    通行密钥可以认定就是一种密码,只不过它更方便,相对来说更安全(绑定硬件和生物识别)。至于说手机丢失的话,就需要用密码或其他验证方式。至于说联网同步的 passkey 被盗,目前我了解的好像都是绑定设备的,还没见过类似密码管理器同步密码的那种同步通行密钥的,这个留给大家讨论。
    qdwang
        16
    qdwang  
    OP
       22 小时 20 分钟前
    @niunew 但是按你的说法,如果只有一个设备,丢了,就无法登陆了,只能用类似上传证件方式拿回账号了。
    v1
        17
    v1  
       21 小时 54 分钟前
    @qdwang 你可以选择不要这个备用代码,passkey 丢失后完全无法解密或者找回。
    leoking6
        18
    leoking6  
       21 小时 19 分钟前
    @qdwang 在您这个假设下,确实分离储存的密码和 TOTP 更安全。
    但是想通过多终端同步攻破 Passkey 难度也太大了吧?以 Bitwarden 为例,从账号密码入手需要用户名+密码+2FA(+自托管路径),从设备入手需要锁屏 PIN+生物识别或主密码。
    我认为这种攻击成本高到足够让我放心了。
    niunew
        19
    niunew  
       21 小时 4 分钟前 via Android
    @qdwang 你还有备用码,备用邮箱,备用手机号,密码,备用联系人等等找回。通行密钥只是他们中的一种。
    starknovon
        20
    starknovon  
       20 小时 52 分钟前 via iPhone   ❤️ 1
    对于苹果的 Passkey ,你想盗用里面的通行密钥,一是盗取设备,你得能从一台苹果设备上解锁它的面容或者知道它的锁屏密码,这样方可分享通行密钥到自己的设备上;二是盗取账号,你可以通过增加绑定自己的手机号然后剔除号主的手机号并修改密码,但前提是你能登录上它的 Apple ID ,而在陌生设备上登录 Apple ID 时有双重验证优先给账号下所有设备发送设备验证码或者通过短信验证码登录。这上面两关你怎么过?姑且算你是号主熟人知道 ID 密码、知道锁屏密码、知道短信验证码犯案了,那号主能不知道吗?
    jiagm
        21
    jiagm  
       20 小时 39 分钟前 via Android
    @qdwang 存储在 GPM 的 Passkey 是受到单独的 PIN 或者 Android 的锁屏密码保护的,和账户名以及密码不同。
    woniu7
        22
    woniu7  
       20 小时 11 分钟前
    @qdwang
    ```你有同步 passkey 在某个账号上吗?```
    私钥就在设备里,就没法同步。

    ```如果那个账号被盗了,不是全丢了?```
    不存在帐号被盗,只有设备被盗。设备被盗,一般也是需要指纹(手机),密码(yubico)才能用。

    ```如果你没同步在某个账号上,那万一你设备丢了,怎么办?```
    设备丢了,用原始方法进,一般也不会去搞到仅允许 passkey ,保留原来高安全性的登录方式记到本子。而平时只用 passkey ,不影响他的高安全和方便。
    另外,这个设备可以是手机、电脑里的安全芯片,也可以是外置的 fido 设备,像我用 yubico 的,维护有两把,哪怕丢了,另一把也可以进帐号,立即删除丢失那把的公钥。

    其实这个问 ai 都讲比大伙清楚,他那个就是个放在安全物理设备里的无法读取、导出的私钥在里头,你就是把他烧了炸了算几百年,也拿不出来。只暴露了加密签名接口,验证帐号上公钥的合法性。
    一个真实物理设备+你的生物特征/密码来验证,同时盗有这两个的,不容易吧,安全; 同时拥有这两个的,操作容易吧,方便。
    mooyo
        23
    mooyo  
       19 小时 51 分钟前
    有没有可能,如果用到密码管理器的场景,totp 也是和密码一起存储的?
    msg7086
        24
    msg7086  
       18 小时 49 分钟前
    对于不可同步的硬件私钥
    比如说 yubikey FIDO ,你得上门偷我的硬件 key 才行。这东西没法同步,私钥不可获取。

    对于可同步的软件私钥
    那确实是可能被盗的。但是和长密码对比,长密码本身是可能被盗的,但 passkey 不会把私钥发出去,所以除了直接拿到密码管理器访问权限以外没办法获取私钥。而密码是对称认证的,拿到传输数据就能拿到明文密码。

    然后用 passkey 的好处是用同一种技术同时满足了两种人群的需求。你想要安全就用硬件私钥(手机 passkey 也是硬件私钥),想要方便就用软件私钥。

    #15 所以不要只有一个设备不就行了。抛开备用路径不谈,重要账号你可以两个手机分别设置 passkey ,也可以绑 yubikey 之类的硬件 key 。当然最少也应该留一下备用码以防万一。
    hzj629206717
        25
    hzj629206717  
       12 小时 54 分钟前
    @usn Apple/Google/Microsoft Account 开启 2FA 后,是没有办法简单地通过手机号接管账号的。就是说别人取出你的 SIM 卡用来接收短信进行登录或重置密码或恢复账号都行不通。

    Passkey 可以认为是最强验证方式,账号创建 Passkey 原则上需要最强的用户验证,比如另一个 Passkey 或两个弱因素。
    usn
        26
    usn  
    PRO
       12 小时 7 分钟前 via iPhone
    @hzj629206717 #25 是的,也是因此,基于 apple id 的 passkey 生态依旧是目前最强的安全机制,推荐所有人使用
    zanx817
        27
    zanx817  
       8 小时 3 分钟前
    你这是老中错觉。 根本都不懂 passkey 的工作原理。
    liuidetmks
        28
    liuidetmks  
       5 小时 53 分钟前
    1. TOTP 不能防钓鱼,(第三方网站也能骗你的验证码

    2. SMS 信道也不是那么安全,起码运营商管理员可以看到
    运营商也不是白莲花,有灰产联合运营商内部人员使用未放号手机号做灰产
    https://www.thepaper.cn/newsDetail_forward_2447208?
    cosette
        29
    cosette  
       5 小时 11 分钟前
    passkey 主要是解决密码记不住的问题,同样的 passkey 也不排斥 2FA ,passkey 登录的流程要比密码登录流畅得多,至于你说担心的密钥泄露了怎么办,这不是 passkey 要解决的问题,现在没有任何一种方案能够完美保证密钥泄露之后还是安全的,多因素认证也只是降低风险,安全策略是场景 based ,换句话说,任何情况下你都有保管好密钥的责任,不管它是密码,指纹,虹膜,还是其他形式。

    为了防止 passkey 丢了登录不上,一般都会有求设置其他认证方式,比如 TOTP ,或者手机号,或者设置多个 passkey 等等
    qdwang
        30
    qdwang  
    OP
       5 小时 6 分钟前
    @woniu7 "设备丢了,用原始方法进"

    什么原始的方法?这是最关键的,如果有非上传证件的方式进,那账号根本没有因为用了 passkey 增加了安全性呀
    qdwang
        31
    qdwang  
    OP
       5 小时 4 分钟前
    @cosette 我觉得你说的很对。passkey 主要就是减少一个记密码的麻烦。。。
    qdwang
        32
    qdwang  
    OP
       4 小时 54 分钟前
    @hzj629206717
    @usn 你们都是建立在这 3 大公司账号不被盗情况。。。但是真有人这 3 账号被盗的。。。如果他全用 passkey ,那他所有第三方账号一锅端了。

    我搜了一些例子:
    https://x.com/www83747897/status/1990450307172835451 (apple)
    https://x.com/0xMaoMao/status/1992818762165399797 (google)
    https://x.com/abandonyazi/status/1970313267295006736 (microsoft)
    qdwang
        33
    qdwang  
    OP
       4 小时 52 分钟前
    @mooyo 我是 totp 分开存储的
    usn
        34
    usn  
    PRO
       3 小时 31 分钟前
    @qdwang #32 现在可以检查一遍,登录了 apple id 的 icloud 设备有没有陌生的或是不需要的,可以移除
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2893 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:16 · PVG 22:16 · LAX 06:16 · JFK 09:16
    ♥ Do have faith in what you're doing.