买YubiKey 5的大冤种了 还不如2AF方便 非常坑

TheyThem 2026-08-10 11:31 1

大家好,最近在折腾 TG的通行密钥功能,遇到了一个极其“精神分裂”的 Bug,想问问有没有老哥遇到过同样的情况?


【我的环境】


硬件:正版 YubiKey 5 NFC 5.7.1固件


软件:最新版 TG PC 桌面客户端


【极其割裂的复现步骤】


绑定阶段(成功但“不占坑”):我在已经登录的电报客户端里,成功把 YubiKey 添加为了通行密钥。电报界面提示成功,但是,我用 Yubico Authenticator 软件查看,发现坑位占用依然是 0(这说明电报强制使用的是 Non-Discoverable Credential 非驻留密钥,没把账号存进 U 盾本地)。


登录阶段(强行要“驻留凭证”):我打开一个全新的最新版电报 PC 客户端,在不输入手机号的情况下,直接点击界面的【使用通行密钥登录】。系统正常唤起了验证,要求我输入 PIN 码并触摸 YubiKey。


死锁报错:触摸完毕后,系统直接报错“此安全密钥似乎不正确”(底层的错误大概率是 PASSKEY_CREDENTIAL_NOT_FOUND)。


【我的疑惑】

这不纯纯的逻辑精神分裂吗?!创建凭证的时候,电报的代码让硬件“不要占坑”(不保存本地记录);结果到了登录的时候,又不让先输手机号,直接强行找硬件索要“占坑”的驻留凭证!U 盾肚子里根本没存,当然报不正确啊!


这种最基础的逻辑死循环,电报的开发团队上线前,难道就只测了 Windows Hello/iCloud,连一次正经的物理安全密钥都没测试过吗?不知道大家有没有遇到过这个问题,目前除了当废设还有解吗?


根据询问AI得知 驻留密钥 根本还没有普及虽然这个协议8年前推出的但是几乎所有的厂家都是把它当成高级的2AF来对待只有少部分厂家是真的支持驻留密钥。坑真的坑买它的话你就把它当成一个离线硬件的2AF使用吧,想无账号密码登录可惜的是大部分的厂家都不支持。



当初花这么多钱买 YubiKey 5 NFC,就是冲着 **FIDO2 / Passkey 的驻留密钥(Discoverable Credential / Resident Credential)** 去的。

我的理解很简单:

> 把账号凭证直接存进 YubiKey,
> 登录的时候插上/碰一下,输 PIN、摸一下,甚至连账号都不用输入,YubiKey 自己告诉网站“我是谁”。

结果折腾了一圈才发现,**很多厂商的 Passkey 根本不给你存成驻留凭证。**

Google、Cloudflare,还有不少服务,实际给硬件安全密钥创建的都是 Non-Discoverable Credential。

于是登录流程就变成:

**先输入账号 → 再输入密码/选择账号 → 调出安全密钥 → 输入 YubiKey PIN → 触摸 YubiKey → 完成验证。**

等等……

这跟我以前用 2FA 验证器有什么本质区别?

2FA:

> 输入账号密码 → 打开验证器 → 输入 6 位验证码。

YubiKey:

> 输入账号 → 输入密码 → PIN → 插入/靠近 → 触摸。

甚至某些场景下还比 TOTP 麻烦。

我买 YubiKey 不就是为了**不用记账号、不用输入密码、不用拿手机找验证码**的吗?

结果厂商给我整一个 Non-Discoverable Credential,然后登录的时候还得先告诉服务器“我要登录哪个账号”。

那你这个 Passkey 和传统的第二因素到底有什么区别?

当然,从 WebAuthn 的技术定义来说,**Non-Discoverable Credential 和 TOTP 2FA 还是完全不同的东西**。它依然具有公钥密码学、抗钓鱼等优势,不能简单说成“就是 2FA”。

但问题是:

**我买硬件安全密钥,看中的就是它作为 Passkey 的“无账号上下文登录”和驻留凭证能力。**

如果最后每家厂商都把它当成一个高级版第二因素来用,那我为什么不继续用 2FA?

尤其是 Telegram 这个更离谱。

我在已经登录的 Telegram 里成功把 YubiKey 添加成 Passkey。

结果 Yubico Authenticator 一看:

> **Passkeys:0**

也就是说根本没有给我创建驻留凭证。

然后我打开一个全新的 Telegram PC 客户端,点:

> **使用通行密钥登录**

它又不让我输入手机号,直接让我拿 YubiKey 登录。

YubiKey:
“哥们你倒是先告诉我我要找哪个 credential 啊,我肚子里根本没有驻留凭证。”

然后:

**PIN → 触摸 → “此安全密钥似乎不正确”**

?????

这不是纯纯的逻辑闭环吗?

注册的时候:

> 不给你存驻留凭证。

登录的时候:

> 不告诉我账号,直接让我从安全密钥里找驻留凭证。

最后:

> 此安全密钥似乎不正确。

我:?????

目前我折腾下来,真正让我觉得“这钱没白花”的反而是 **GitHub**。

GitHub 的 Passkey 做得比较符合我当初对这玩意的期待:凭证存进 YubiKey,登录时可以直接让安全密钥参与发现和认证,不需要每次先把账号信息喂给网站。

所以现在最大的感受就是:

**不是 YubiKey 本身不行,而是很多网站根本没有把它当“真正的 Passkey”来用。**

花几百块买了个硬件,结果不同网站给你实现成:

> “高级一点的 2FA”

真的有一种花钱买了性能,然后发现游戏锁了 30 FPS 的感觉。

所以准备买 YubiKey 的兄弟们,**千万别只看“支持 Passkey / FIDO2”这几个字。**

一定要先确认你实际使用的网站到底支持:

**Discoverable / Resident Credential**

还是只是:

**Non-Discoverable Credential**

这俩对用户体验的区别真的巨大。

不然最后很可能就是:

**“我花钱买了 YubiKey,是为了无密码、无账号、插上就登录。”**

实际得到:

**“请输入账号 → 输入密码 → 输入 YubiKey PIN → 触摸 YubiKey。”**

我真的绷不住了。

最新回复 (18)
  • fits 08-10 11:33
    1

    非驻留密钥本来就不支持不输入用户名的登录吧?这种应该属于u2f那一套登录,就是你得先输入用户名密码然后passkey当二次认证?

  • TheyThem 楼主 08-10 11:40
    2

    @fits #1 TG客户端有通行密钥按钮 点击就直接弹验证硬件 并没有要输入号码的过程。哪换成输入号码登录以后 验证方式只有验证码 并没有要求触摸硬件验证 ,所以不管是 非驻留密钥 还是驻留密钥 都无法使用 但是我又成功绑定上了 绑定上了但是TG客户端没有认 昨天绑定的也重新删除再绑定 一样的情况,换了不通的号依然一样的情况。我感觉就是TG开发人员逻辑精神分裂了 他们自己都搞不明白 非驻留密钥 和 驻留密钥 的区别 一群草台班子


    然后绑定了一圈 出了github是 驻留密钥 其他比如谷歌 CF 都是非驻留密钥 bitwarden这货还绑定不上

    还是驻留密钥好用结果大部分都是非驻留密钥 脑壳疼

  • fits 08-10 11:45
    3

    我使用ios的tg客户端,无法选择外部密钥,所以我怀疑他们肯定做了什么操作?macos的客户端都没有passkey的选项。但我使用ios客户端将passkey存在apple钥匙串中,在web是可以登录的。。。

  • postmaster 08-10 11:50
    4

    我猜他们原本的设计应该是验证禁用物理key的……

    可能因为客户端bug之类的原因允许了把key存在了硬件里,所以造成了不可用


    比如微信也是,passkey不支持把密钥存到外部硬件密钥里面

  • TheyThem 楼主 08-10 11:52
    5

    @fits #3 哪我大概就是明白怎么回事了 TG开发人员还没有做好支持硬件通行密钥的功能,现在的通行密钥功能只能软件可以使用比如苹果储存在苹果的云服务器或者谷歌云服务器,硬件驻留密钥模式 还没有 绝对的这样的 好多厂家都是非驻留密钥 不好用啊 不如驻留密钥好用 所以花了这么多钱买的YubiKey5 我人都傻了 这和2AF登录流畅没区别啊还是要输入账号和密码 然后验证触摸YubiKey 那我还不如使用2AF还是免费的 太坑爹了这个玩意 损失惨重

  • TheyThem 楼主 08-10 11:54
    6

    @postmaster #4 很多厂家的通行密钥都是非驻留密钥这和2AF有什么区别,没区别 既然这样还去买这么贵的YubiKey纯纯大冤种 我裂开了,买这个就是为了驻留密钥方便登录 结果和2AF一样用起来还没有2AF方便 2af输入一下验证码就行 这个好到 要输入pin码还要触摸一下 。大家别去买YubiKey了纯纯大冤种还没有2AF方便 因为大部分的厂家都是非驻留密钥绑定了一圈只有github是驻留密钥可以不用输入账号直接登录 谷歌CF 还要很多都是非驻留密钥 要输入账号和密码的 验证方法和2AF类似但是比2AF麻烦 坑爹啊

  • fits 08-10 12:14
    7

    支持passkey的登录模式也就这一年不到火起来的吧?之前都是u2f,倒不如说,webauthn这一套规范也才更新没多久,别急,以后会越来越多的

  • 林地雪原-0062 08-10 12:16
    8

    还是觉得存到谷歌的authentic更方便。。

  • TheyThem 楼主 08-10 12:18
    9

    @林地雪原-0062 #8 这不是想把数据放在自己手里面嘛登录账号的时候都不用账号和密码一键触摸登录 结果它就是一个硬件的2AF 蚌埠不了

  • TheyThem 楼主 08-10 12:24
    10

    @fits #7 被坑了水太深和我想象的差距巨大 花了巨资结果是大炮打蚊子破防了

  • fits 08-10 13:31
    11

    我买yubikey的原因是支持证书,真没太看重他的认证

  • postmaster 08-10 17:13
    12

    @TheyThem #6 不是啊,根据设置方法不同,也有很多种的。国际上的大厂,比如说 Google Microsoft 阿里云 Bitwarden 什么的乃至 pixiv 都可以的,甚至登录服务器的 SSH Keys 都可以Yubikey无密码登陆。


    可能是我们对这个产品的期望不一样吧,我经常在不是自己的电脑上登录上述的账号,一插一输PIN一摸就OK,也不用输入密码什么的

  • TheyThem 楼主 08-10 19:17
    13

    @postmaster #12 不对啊宝 我要的也是你这种效果 一插一输PIN一摸就OK 结果现在是什么样的 谷歌的不是 必须输入账号和密码之后才弹出来,CF也是一样 然后 Bitwarden只能绑定成2AF那样的也是输入账号和密码在弹出来 想输入pin一膜就登录 很少啊 只有微软和github 可以 谷歌的话必须开高级计划 但是一旦开这个高级计划就只能硬件登录 你要找别人代沟东西就被封死了

  • samhou 08-10 19:33
    14

    @TheyThem #13

    首先,我猜你想说的是 2FA,2FA 和 passkey 属于两个东西,前者是二步验证,后者是一个认证手段,可以被用于 2FA 中

    其次,cf 确实要密码(因为 cf 是把密钥作为二步验证方法而非 passkey),但是 google 不用只需要输入账号就行,具体看下图:



    再次,只要输入 pin 直接登入(passkey 单个登入)的并不少,只是你用的可能不支持而已


    此外,tg 这个通行密钥我只成功过 google password manager,其他的估计官方就没想着支持,也侧面证明了 tg 不好用,反正我不喜欢用 tg


    最后顺便提一句,其实 keepassxc 密码管理器也直接支持 passkey 不用买物理密钥:


  • TheyThem 楼主 08-10 19:50
    15

    @samhou #14 对谷歌你说对了是这样的,我不是小白我知道什么是2AF什么是通行密钥 通行密钥还分驻留和非驻留 大部分的都是只能非驻留(效果和2AF差不多虽然原理不一样) 而我想要的是驻留的 结果大部分都不支持 我现在有4个Yubikey5 两个5.7.1两个5.7.4 我人都傻了

  • postmaster 08-10 20:44
    16

    @TheyThem #13 那一定是你哪里设置有问题了,我的无论是 Google 还是 Bitwarden 都是可以不输入密码直接PIN+摸无痛登入的,我也没有什么所谓的高级计划


    image

  • TheyThem 楼主 08-10 21:18
    17

    @postmaster #16 牛啊 我到了我这里就不行我真的是无语了 你是苹果系统啊 应该是系统问题

  • cybort 08-10 21:30
    18

    passkey的跨设备同步就是不完善,如果key存在手机里面,扫电脑二维码有时候都连不上。当一个本机的快捷登录还行

* 帖子来源NodeSeek
返回