首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解码Yubikey OTP令牌?

如何解码Yubikey OTP令牌?
EN

Stack Overflow用户
提问于 2021-02-05 23:56:21
回答 1查看 417关注 0票数 1

我正在试图找出如何构建一个特性来使用Yubikey OTP进行身份验证。

我想自己托管自己的身份验证服务,而不依赖于Yubikey API。

我查看了他们的例子yubikey-ksm项目,试图找出Yubikey请求的格式,所以我可以尝试构建自己的请求。但是,他们的示例似乎是在密钥数据库中查找令牌的AES密钥。我不太确定这个密钥是从哪里来的,因为在设置一个新的Yubikey时,没有安装AES密钥的步骤。

我目前对这个过程的理解(如果有任何问题请纠正):

  1. 接受OTP的前12个字符;这是令牌ID,以及最后32个字符;这是密文。

  1. 以某种方式获取与此令牌ID相关联的AES密钥(但是在哪里?)以及“内部名称”。

  1. 在ECB模式下用AES128解密32个字符的密文,使用步骤2中的密钥,0x00000000000000000000000000000000作为IV.

  1. 检查明文的前12个字符是否与步骤2中的“内部名称”匹配,并且明文的CRC是否正确。

  1. 如果步骤4是正确的,则验证密钥。接下来的4个字符是计数器,接下来的8个字符是时间戳,接下来的2个字符是使用计数器。

这个AES密钥和步骤2中的“内部名称”从何而来?而且,如果远程服务器和Yubikey没有安全的方式协商新的AES密钥,那么攻击者获取AES密钥的安全性如何?合法的站点所有者需要获得该密钥才能验证密钥?

EN

回答 1

Stack Overflow用户

发布于 2021-08-27 13:41:36

我对Yubic头的网页( https://www.yubico.com/products/yubicloud/ )的理解是,您的yubikeys基本上有2种OTP验证模型:

  • 要么在设备中使用内置的AES密钥,后者是Yubikey (yubic头)服务器知道的(因此web应用程序可以使用API对您进行身份验证);
  • 或者您生成自己的AES密钥,并将其提供给您的身份验证服务器和Yubikey,并设置您的Yubikey,以便它使用此自定义密钥。

问候

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66072162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档