2

把玩 YubiKey

 1 year ago
source link: https://www.yukapril.com/2023/05/07/yubikey.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

把玩 YubiKey

偶然机会,入手了一个 Yubico YubiKey 5C NFC。没想道卖家还是一个集团的,只不过不在一个子公司下。玩了 2 小时,有些心得分享下。

市面上安全类解决方案很多,比如 2FA,双因素验证,或者叫两步验证,是最常见的。一般是登录输入账号密码后,还需要二次输入验证信息。

也有叫做 MFA 的,Multi-Factor-Authentication,多因素验证。

常见的 2FA 方式有:

  • 短信验证码
  • 邮箱验证码
  • OTP(One-Time-Password)方案。一般是 APP 内显示 6~8 位随机数,有 TOTP 和 HOTP 两种实现
  • FIDO 类方案
  • 指纹等生物特征信息

本文的 Yubico,是使用 FIDO 方案。

MFA 与 OTP

OTP 是 MFA(Multi-Factor-Authentication)的一个实现模型。

来源:https://blog.csdn.net/qq_35714301/article/details/111407136

OTP TOTP HOTP

OTP 是 One-Time Password的简写,表示一次性密码。
HOTP 是HMAC-based One-Time Password的简写,表示基于HMAC算法加密的一次性密码。
是事件同步,通过某一特定的事件次序及相同的种子值作为输入,通过HASH算法运算出一致的密码。
TOTP 是Time-based One-Time Password的简写,表示基于时间戳算法的一次性密码。
是时间同步,基于客户端的动态口令和动态口令验证服务器的时间比对,一般每60秒产生一个新口令,要求客户端和服务器能够十分精确的保持正确的时钟,客户端和服务端基于时间计算的动态口令才能一致。

来源:https://www.cnblogs.com/voipman/p/6216328.html

FIDO2 与 FIDO U2F

2012 年,Yubico 和 Google 设计了 U2F 协议,第二年 U2F 成为 FIDO 组织的标准,之后加入了 NFC 的支持。之后,FIDO2 作为替代 U2F
的新标准产生,原来的 U2F 以兼容的方式成为了 CTAP1,而采用 CBOR 封装格式的 CTAP(CTAP2) 则是 FIDO2 的主要协议。

来源:https://jia.je/hardware/2020/05/18/fido-u2f-fido2-ctap/

Yubico 介绍

2023 年现在可以买到的 Yubico 产品很多。但实际广泛使用的型号并不多。我看到了 3 款感觉还算有价值的。

YubiKey 5 Series

配置高,存储大,支持多种协议(FIDO2、FIDO U2F、Yubico OTP、OATH-TOTP、OATH-HOTP、Smart card (PIV)、OpenPGP、和挑战响应功能),价格贵,50 美元起售。

有多款设备:

  • 5 第五代产品标准版,默认 USB 口
  • 5 NFC 带有 NFC 功能,手机可用
  • 5C 更换为 type-C 口
  • 5C NFC 更换为 type-C 口,并带有 NFC 功能,手机可用
  • 5 Nano 标准版的缩小
  • 5C Nano 标准版更换为 type-C 口的缩小
  • 5Ci 标准版,接口有两个,type-C 和苹果的 Lightning

大部分都是买这个系列。其中 5 NFC 5C 5C NFC 比较主流。

Security Key Series

只支持 FIDO 协议。价格便宜。全系列都支持 NFC。

有两款设备:

  • Security Key NFC
  • Security Key C NFC

YubiKey Bio Series

带有指纹识别,价格贵。还不支持 PIV 协议。

YubiKey 使用

要想配置 YubiKey,需要在下载 YubiKey Manager 工具

之后打开 APP,赋予相应权限,插入硬件,即可看到如下效果:

1683455981744-23c765c2-fe29-4adf-b3f3-3965fd0792c1.png

Interfaces 功能开启配置

点击 Interfaces,可以看到开启了哪些协议,不需要的可以关闭,也可以像我一样都开启:

1683455981711-05206bab-25cf-4024-aae9-5b123ab17a76.png

Application OTP

点击 Application - OTP 后,可以看到如下界面:

1683455990808-4b54dbf6-a82b-482c-8878-57e6bdd5898e.jpeg

默认下,Slot 1 是出厂配置好的。Slot 2 是我自己配置过了。

这两个都是触摸硬件按钮,把 YubiKey 模拟成键盘,触发输出字符。

Slot 1 是触摸硬件中心 1 秒,之后手移开。

Slot 2 是触摸硬件中心 3 秒,或者一直摸不松手,等到内容输出到屏幕上。

点击 Configure 配置,可以看到支持 4 种类型。

1683455990826-a388bac0-c39e-46fb-a2b0-fd7d6005b548.jpeg

Yubico OTP,需要具体业务进行配合集成,不能直接使用的。

Challenge-response,我没有用到过。

Static password,输出指定的静态内容。可以把常用的密码写进去,之后触摸即可输出密码了。

OATH-HOTP,我接触的业务上没有用到过这个类型的。

可惜没有被广大网站等业务支持的 TOTP。

因为 YubiKey

没有时钟,导致不能直接使用。虽然可以下载 Yubico Authenticator

来配合使用。但不太推荐这么做。

移动端 2FA 类软件非常多,而且都带有人脸、指纹等认证,没必要特意用 Yubico Authenticator,它只不过把认证方式改为物理的
type-C 或 NFC。而且如果使用 NFC 方式,YubiKey 还必须从电脑上拔下来,否则 NFC 不能开启。

而电脑端,类似软件也有一些,安全性也不差。一般还带有浏览器插件等,方便复制粘贴。而且移动端 2FA 很便利了,我还没见过有人用电脑端这类软件的。

Application FIDO2

点击 Application - FIDO2 后,可以看到如下界面:

1683455990839-0eb1c001-92b6-4a71-9835-18d2d96859a7.jpeg

可以设置 FIDO2 PIN,也可以进行重置。

建议使用前设置好 PIN。如果不设置,上来就去网站进行绑定的话,浏览器也会弹窗让你设置 PIN。

这个功能非常实用,国外主流的大网站很多都支持 FIDO2。比如:Microsoft、google、Github、Gitlab、Cloudflare、FaceBook、Twitter 等。

使用方法也很简单,比如 Microsoft,访问 账户管理页面后,选择“安全” - “其他安全选项”。

1683455990801-1599d07b-872f-4b3d-92f0-8914eff94ce5.jpeg

点击“添加一种新的登录或验证方法”

1683455990922-993c965f-9133-4d0b-a944-46a4c18823c5.jpeg

选择“使用安全密钥”

1683455991934-6da608d0-e740-4a41-a4f1-09abd10669c5.jpeg

之后按照提示即可完成绑定。

如果 YubiKey 没有设置过 FIDO2 PIN,浏览器会要求先设置一个,再进行绑定。有 PIN 的话,则会直接要求输入 PIN 进行绑定。

Application PIV

点击 Application - PIV 后,可以看到如下界面:

1683455992061-e10624dd-2636-411d-981a-dc841d9a848b.jpeg

PIN 管理。包括 PIN PUK。

  • PIN,用于 PIV 证书智能卡等使用,默认密码 123456
  • PUK,当 PIN 被锁定后,重置 PIN 时候使用,默认密码 12345678
  • 注意,此处 PIN 和 FIDO2 PIN 是没有关系的。

Certificates 管理。主要是实现 ssh 远程登录、系统登录、代码提交签名等,需要使用命令行工具生成证书等,这里不详细介绍了。

功能上,主要使用了网站 FIDO 的二次验证。由于 HTOP 不能直接支持,所以不能取代现有的大部分 2FA,使用范围大大受限。

选择上,如果用到了智能卡 PIV 系列,那么只能购买 YubiKey 5 系列。否则可以选择 Security Key 系列,其更为划算。

安全上,这个一言难尽。因为只是登录多了一次强验证,需要购买额外的硬件设备,还要考虑随身携带,只能是见仁见智。而且如果是丢失了登录后的 cookie(参考 AK 的 Youtube 被盗),一样防不住。

并且 FIDO 方案主要在国外的网站上,国内基本上很少有,更多的是短信验证码和 TOTP 方案。这两种方案也比较安全,并且手机随身携带的。国内来看的话,短时间不会有太大前景。

–END–


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK