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

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

  •  
  •   wzw Sep 25, 2023 1454 views
    This topic created in 964 days ago, the information mentioned may be changed or developed.

    场景:

    • 需要将一个使用 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 包, 导致不能交叉编译, 准备单独写一个组件来调用)
    • 是否有更好的方案可以同时保证安全性和便利性?

    YubiKey

    8 replies    2023-09-25 16:16:43 +08:00
    dallaslu
        1
    dallaslu  
       Sep 25, 2023
    "...与授权模块和到期日期进行绑定",是另有一个离线的授权文件吗,还是存储在更新服务器上?

    "SN/PIN/Management Key 将直接硬写到程序中",如果 key 丢了,要重新打包、重新部署吗?

    我有点怀疑仅靠 SN 和 PIN 的方案,可以用软件模拟来绕过。

    考虑一下用 PGP ,卡内生成私钥的才是不可复制的。授权时,用开发者的 PGP 对授权的机密数据加密给客户的 Yubikey ,这份 License 可用对应的 Yubikey 离线验证。软件运行或检查更新时,尝试解密验证授权文件。
    wzw
        2
    wzw  
    OP
       Sep 25, 2023
    @dallaslu
    1. "...与授权模块和到期日期进行绑定",是另有一个离线的授权文件吗,还是存储在更新服务器上?
    >>> 这个不是文件, 是读取序列号, 然后和程序里面去比对.
    2. "SN/PIN/Management Key 将直接硬写到程序中",如果 key 丢了,要重新打包、重新部署吗?
    >>> 在机房,正常丢不了吧. 丢了就是重新买一个 Key, 重新买授权咯. 程序里面多内置了一些 Key.
    3. 我有点怀疑仅靠 SN 和 PIN 的方案,可以用软件模拟来绕过。
    >>> 所以我也特意来问问这个问题, 关键如何绕过我也不知道, 特来这里问问比较了解的人
    4. PGP
    >>> 我去研究一下, PIN 安全的话, 也挺好用的
    cheneydog
        3
    cheneydog  
       Sep 25, 2023
    把设备和 YubiKey 通信的包抓一下,用软件模拟一个 YubiKey ,是不是就无限复制了?
    建议还是得要用非对称加密技术
    baobao1270
        4
    baobao1270  
       Sep 25, 2023
    1. 不知道你的用户群体是国内还是国外,如果是国内,那么用 YubiKey 成本太高了,同时也存在违反密码法的风(禁止使用国外生产的硬件加密产品)
    2. PIN 似乎是用于 PIV 内部操作的,个人感觉外部程序不应该直接使用。SN 码容易伪造,也不可靠。
    3. 建议使用 PIV 的非对称加密机制来做。
    dallaslu
        5
    dallaslu  
       Sep 25, 2023
    wzw
        6
    wzw  
    OP
       Sep 25, 2023 via iPhone
    @baobao1270 #4 量不多,价格还好,目前还是讨论为主。看来偷懒不是很安全,稳妥
    wzw
        7
    wzw  
    OP
       Sep 25, 2023 via iPhone
    @cheneydog #3 这方面接触不多,可能需要时间学习下,晚点问问 ChatGPT ,或者你给我关键词,谢谢
    wzw
        8
    wzw  
    OP
       Sep 25, 2023 via iPhone
    @dallaslu #5 挺难买,经常没货
    About     Help     Advertise     Blog     API     FAQ     Solana     879 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 20:43 PVG 04:43 LAX 13:43 JFK 16:43
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86