关于 使用 YubiKey PIV 功能作为软件系统授权的 USBKey 的可行性的相关问题

查看 20|回复 0
作者:wzw   
场景:
  • 需要将一个使用 Golang 编写的 Web 应用私有化部署到客户服务器上,并需要使用 USBKey 进行软件系统授权。
  • 一些机器可以联网,一些机器不能联网,但需要定期进行联网更新。
  • 数量较少,未来大约几十个量级,因此价格并不是非常敏感。

    方案:
  • 使用 YubiKey 的 PIV 功能中的 PIN 功能,如下图所示。
  • 每个 YubiKey 都有一个唯一的序列号 SN ,可以将其与授权模块和到期日期进行绑定。
  • 在程序启动和关键操作时,会验证 PIN 和 Management Key 是否正确。
  • 序列号 SN/PIN/Management Key 将直接硬写到程序中,一一对应。

    问题:
  • YubiKey 目前应该是无法被复制的,因此应该是安全的吗?
  • 程序可以直接调用 https://github.com/go-piv/piv-go 来读取 SN 并验证 PIN 和 Management Key ,这种方式是否安全?(这个包的一个缺点是它不是纯 Go 包, 导致不能交叉编译, 准备单独写一个组件来调用)
  • 是否有更好的方案可以同时保证安全性和便利性?

  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部