玩转YubiKey
# 什么是YubiKey
# 官方解释
官方解释 The YubiKey is a form of 2 Factor Authentication (2FA) which works as an extra layer of security to your online accounts. With a YubiKey, you simply register it to your account, then when you log in, you must input your login credentials (username+password) and use your YubiKey (plug into USB-port or scan via NFC). Both login credentials and YubiKey are needed at login. This physical layer of protection prevents many account takeovers that can be done virtually. https://support.yubico.com/hc/en-us/articles/4404456942738-FAQ#what-is-a-yubikey-
Yubikey是2因子验证(2FA)的一种形式,可作为你的在线账户的一个额外的安全层。使用 YubiKey,你只需将其注册到你的帐户,然后当登录时,你必须输入你的登录凭据(用户名+密码)并使用你的 YubiKey(插入 USB 端口或通过 NFC 扫描)。登录凭证和Yubikey两者在登录时都会需要。这种物理保护层可以防止许多可以虚拟完成的帐户接管。
# YubiKey支持的加密协议
官方文档 https://support.yubico.com/hc/en-us/articles/4404456942738-FAQ#security-protocols-explained
# OTP
One-time password,一次性密码。
Yubico OTP 是一种简单而强大的身份验证机制,开箱即用,受到 YubiKey 5 系列和 YubiKey FIPS 系列的支持。 Yubico OTP 可以用作双因素身份验证方案中的第二个因素,或者单独提供强大的单因素身份验证。
# FIDO2
FIDO2 是 FIDO U2F 的无密码进化。 FIDO2 的总体目标是提供一组扩展功能以涵盖其他用例,主要驱动因素是无密码登录流程。 U2F 模型仍然是 FIDO2 的基础,FIDO2 规范中提供了现有 U2F 部署的兼容性。
# FIDO2 U2F
FIDO2 Universal 2nd Factor
U2F由Yubico和谷歌共同开发,在为谷歌员工成功部署后贡献给了FIDO联盟。该协议旨在作为第二个因素来加强现有的基于用户名/密码的登录流程。它建立在 Yubico 发明的可扩展公钥模型的基础上,其中为每个服务生成一个新的密钥对,并且可以支持无限数量的服务,同时保持它们之间的完全分离以保护隐私。
# OpenPGP
OpenPGP 是一个用于签名和加密的开放标准。它通过像 PKCS#11 这样的接口,使用存储在智能卡上的私钥来启用 RSA/ECC 密钥,支持加密、签名、认证等功能。
# WebAuthn
WebAuthn 是一项新的 W3C 全球标准,用于在所有领先的浏览器和平台支持的 Web 上进行安全身份验证。 WebAuthn 使用户可以轻松地选择身份验证器来保护他们的帐户,包括外部/便携式身份验证器(例如硬件安全密钥)和内置平台身份验证器(例如生物识别传感器)
# OATH
OATH 是一个组织,它指定了两个开放的认证标准:TOTP(Time-Based One-Time Password) 和 HOTP(HMAC-based One-Time Password)。要使用 TOTP 进行身份验证,用户输入一个 6-8 位代码,该代码每 30 秒更改一次。该代码是使用 HMAC(sharedSecret, timestamp) 生成的,其中时间戳每 30 秒更改一次。shared secret通常以二维码形式提供或预编程到硬件安全密钥中。
# PIV
Yubikey 支持个人身份验证 (PIV 和 FIPS 201) 智能卡接口 (NIST SP 800-73)。根据智能卡上存储的私钥,通过 PKCS#11 一类的通用接口进行RSA 或者 ESS 的签名、加密、解密操作。
# Yubikey的账户限制
官方文档 https://support.yubico.com/hc/en-us/articles/4404456942738-FAQ#what-is-the-yubikey-s-account-limit-
# OTP
此应用程序可以持有两个凭据。然而,Yubico OTP 是放置在这个应用程序中最流行的凭证类型之一,可以注册无限数量的服务。
# FIDO U2F
与 Yubico OTP 类似,U2F 应用程序可以注册无限数量的服务
# FIDO2
YubiKey 5 在其 FIDO2 应用程序中最多可容纳 25 个常驻密钥。
# PIV
YubiKey 5的PIV(智能卡)应用程序有24个插槽,每个插槽可以容纳一个证书及其相应的私钥
# OpenPGP
YubiKey 5 的 OpenPGP 应用程序最多可以保存三个 OpenPGP 私钥,一个用于加密,一个用于签名,一个用于身份验证。
# 使用说明
# Yubikey 的使用方式
- 第三方软件请求 Yubikey 并需要触碰(例如 FIDO U2F)
- 将两个 Slot 作为模拟键盘输入(例如静态密码)
- 通过 Yubico 指定的软件使用 NFC 或接口读取 Yubikey 内其他的数据(例如 Yubico Authenticator)
# Yubikey 的金属片触碰方式
- 轻触 1 下 在 Yubikey 亮灯时, 允许当前对于 Yubikey 的请求
- 轻触 1 秒 激活 Slot 1 并输入该插槽的默认输出结果
- 长触 3 秒 激活 Slot 2 并输入该插槽的默认输出结果
# Yubikey 的灯光含义
- 短闪烁: 有应用对 Yubikey 发送请求
- 长亮: 作为模拟键盘正在向当前窗口输入插槽
# 使用场景
# 操作系统登录
Windows、Linux和MacOS系统的登录验证。
# 网页登录
常见的支持网站有:
- Apple
- Bitwarden
- Cloudflare
- Dropbox
- Github
- GItlab
- Microsoft
等等。
# GPG密钥
将GPG密钥存储到YubiKey里,更加安全并且便携。
# 支持的密码管理器
1Password,Keeper®,LastPass Premium,Bitwarden Premium。
# Yubico Authenticator
Yubico Authenticator 是跨移动设备和桌面端的身份验证器应用。
与其他身份验证器应用程序(包括 Google Authenticator、Microsoft Authenticator )兼容。
Google Authenticator 身份验证应用程序只允许将凭证存储在本地设备上,避免了因为网络原因导致的凭证泄露,但是当设备无法使用时无法找回已经保存的凭证。
Microsoft Authenticator 身份验证应用程序允许用户将凭证存储保存到 OneDrive 上,并且允许多设备登录。
Yubico Authenticator 身份验证应用程序允许将唯一凭据存储在硬件支持的安全密钥上,无论您从移动设备到桌面设备,都可以随身携带。无需再在手机上存储敏感机密,避免您的帐户被他人接管。
Yubico Authenticator 应用程序创建凭据存储后将凭证存储在 YubiKey 上而不是手机上,这样即使手机无法使用仍然可以使用另一台设备查看凭证。
# Yubikey 的备份
Yubico 官方建议拥有多个 YubiKey。这样一个密钥可以用作主密钥,另一个密钥可以用作备用密钥。拥有备用钥匙的重要性已得到充分证实,如果你丢失了主钥匙,在最需要的时候,你也不会失去访问重要帐户的权限。换句话说,有了备用钥匙,你就不必担心被锁在任何账户之外,也不需要经历漫长的恢复和身份验证过程来重新获得每个账户的访问权限。
# 配置
Yubikey的具体配置可以查看这篇文章:YubiKey配置