这是一个简单的问题,但 Yubico 的网站上没有答案
例如,当我收到 Yubico(来自 Yubico 4 系列)时,我知道我可以签署代码。但是它里面的密钥是怎么产生的呢?它是在制造过程中产生的吗?我可以在 mmy 计算机中生成密钥并上传到它吗?
这是一个简单的问题,但 Yubico 的网站上没有答案
例如,当我收到 Yubico(来自 Yubico 4 系列)时,我知道我可以签署代码。但是它里面的密钥是怎么产生的呢?它是在制造过程中产生的吗?我可以在 mmy 计算机中生成密钥并上传到它吗?
U2F中使用的密钥是设备自己生成的,你不能自己做。Yubico 的开发者网页解释得很清楚。简而言之,看看下面的图表。
Device Secret 是在制造阶段生成的。据我所知,这个秘密不能通过软件调整来改变。AppID 等于 Web 服务 URL。在生成的时候,一个集成的 RNG 将生成一个 Nonce,输入一个带有 AppID 的 HMAC-SHA256,用设备密钥作为密钥,输出是私钥。然后再次将私钥和 AppID 输入 HMAC 函数,将输出和 nonce 连接起来,成为密钥句柄。公钥由私钥生成,并与密钥句柄一起发送给 Web 服务。
这是关于代码签名的部分和要做的关键。是的,您可以在自己的机器上生成私钥并将其上传到 Yubikey。看看Yubico 的 PIV 解释。尤其是和下Introduction/Certificate slots
的文章。Tools/YubiKey PIV Manager(if you use Windows)
Guides
Yubico 有点缺乏对这部分的解释,所以我找到了drduh提供的一个很棒的GitHub存储库,其中包含如何将 OpenPGP 与 Yubikey 一起使用的完整说明。