You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求YubiKey OTP实现实用规范及密钥与算法相关问题解答

YubiKey 5 OTP 验证规范及密钥问题解析

一、OTP构造与验证的官方规范

Yubico官方有完整的YubiKey OTP Specification文档,其中明确了OTP的细节,足以支撑自行编写验证代码:

  • OTP结构:分为12字符的公开固定前缀(对应设备ID)和32字符的加密段(包含计数器、时间戳、随机数、校验和)
  • 校验和计算:采用CRC-16-CCITT算法,初始值设为0xFFFF,对解密后的加密段二进制数据(排除末尾2字节校验和)计算,用于校验数据完整性
  • 加密逻辑:使用AES-128-ECB模式,密钥为16字节二进制数据(对应32位十六进制字符串)

二、密钥处理与算法兼容性

  • 密钥无需特殊处理:YubiKey管理器显示的32字符十六进制密钥,直接解码为16字节二进制即可作为AES密钥使用。解码失败常见原因:
    • 复制时出现字符遗漏、大小写错误(十六进制不区分大小写,但需确保完整无错)
    • 误选了非OTP模式的密钥(比如U2F或PIV密钥,需在管理器中确认是OTP配置下的密钥)
  • 算法无版本差异:YubiKey 5系列与2015年旧款OTP算法完全一致,均使用AES-128-ECB加密和CRC-16-CCITT校验。无法解码自身OTP的核心问题大概率是密钥不匹配,或是误将HID扫描码直接当作OTP字符串(需先把扫描码转换为对应ASCII字符)

内容的提问来源于stack exchange,提问作者U. Windl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 00:31:13