V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
AE86Janus
V2EX  ›  程序员

请教软件加密相关问题,求大佬指点

  •  
  •   AE86Janus · 14 天前 · 1722 次点击
    正在开发一款软件。
    设计时,软件运行需要类似网银 U 盾的硬件设备插入计算机,才可以运行软件。
    请问淘宝有没有类似这种可以 U 盾可以二次开发和售卖?
    PS:淘宝输入加密狗,发现不是需要东西。
    求大佬指点
    21 条回复    2025-01-20 11:36:25 +08:00
    hysli
        1
    hysli  
       14 天前
    感觉就是加密狗的领域
    foxhunt
        2
    foxhunt  
       14 天前
    关键字 SafeNet 微狗 SuperDog 等

    需要根据你的使用场景,选择不同的狗
    AE86Janus
        3
    AE86Janus  
    OP
       14 天前
    @foxhunt 我查了,发现是加密狗+解密狗,和我的需求不太符合。只需要一个 U 盾帮助运行即可。
    miyuki
        4
    miyuki  
       14 天前 via iPhone
    FIDO 的密钥不知道符不符合楼主需求
    foxhunt
        5
    foxhunt  
       14 天前
    @AE86Janus 建议深入研究下,加密狗是你要的东西
    humbass
        6
    humbass  
       14 天前   ❤️ 1
    楼主是什么开发语言
    AE86Janus
        7
    AE86Janus  
    OP
       14 天前
    @miyuki 这个应该是我要的东西,请问这个支持给软件加壳么
    AE86Janus
        8
    AE86Janus  
    OP
       14 天前
    @humbass Rust 程序设计语言
    humbass
        9
    humbass  
       14 天前
    联系方式多少?
    @AE86Janus
    ysc3839
        10
    ysc3839  
       14 天前
    找不可导出的非对称硬件密钥大概可以实现,类似 https 二级证书那种感觉,你持有根证书私钥,公钥内置到软件里,硬件里生成一个不可导出的私钥,用根证书对硬件上的密钥进行签名。验证的流程就类似 https 验证服务器证书的流程,用根证书的公钥去验证硬件密钥发来的证书公钥,根证书私钥保密,别人签发不了新的证书,同时硬件密钥保证证书私钥不可读取,也就解决了复制的问题。
    ysc3839
        11
    ysc3839  
       14 天前   ❤️ 1
    那些加密狗基本也是类似逻辑,核心功能都是硬件内私钥不可读取。相比其他通用硬件密钥可能加入了一些锁定功能,比如说需要密码才可以生成新私钥,以及给你封装好了一套 SDK 。
    上述方案都不涉及软件加壳,加壳属于别的领域。
    AE86Janus
        12
    AE86Janus  
    OP
       14 天前
    @ysc3839 谢谢老哥
    kk2syc
        13
    kk2syc  
       14 天前
    你要的就是加密狗,银行 U 盾本身也是加密狗的一种变种而已。
    找加密狗厂商咨询可以定制,人家有一整套方案。
    flynaj
        14
    flynaj  
       14 天前 via Android
    就是加密狗,不过你的软件价值高也可能被破解,可以联网的话可以网络验证。
    htfcuddles
        15
    htfcuddles  
       14 天前
    u 盾是做用户身份认证的而且是私有协议要装插件。同样需求的话 passkey 即可,最新 fido2 协议,跨平台主流浏览器支持,fido 联盟的保证硬件不可破解,可选指纹认证,甚至不用专用硬件 iOS 设备也可支持。
    keshi
        16
    keshi  
       13 天前 via Android
    之前记得有一个叫 e 密 应该和你描述的相符 你搜索淘宝 获得百度 不确定现在是否还有
    roygong
        17
    roygong  
       13 天前 via iPhone
    FIDO2 和 FIDO U2F 的安全密钥是你要找的东西,这两个是国际标准,除了可以用来登录谷歌苹果等账号,还可以用于 Windows/Linux/Mac 系统登录
    billccn
        18
    billccn  
       12 天前
    你的核心需求根本没有讲清楚,所以帖子里出现了两派答案。

    如果你的软件本身不依赖可以进行鉴权的网络服务(单机软件),导致你是想通过一个硬件防止盗版,那你需要的是加密狗,这些厂家都会提供相应的加壳 SDK 。
    如果你的软件可以联网,那你用联机验证的壳就行了。

    如果你只是需要可靠的用户鉴权,那你要考虑你客户是不是真有这个需求,因为硬件密钥的发行管理是个相当麻烦的事情,接入一个 MFA 可能是更好的方案。
    hanguofu
        19
    hanguofu  
       12 天前 via Android
    @ysc3839 请问用这种方式来保管被 cryptsetup 加密的另一个分区的解密口令是否合适?具体的场景就是不用人工输入解密口令,在启动过程中自动解密另一个分区。
    ysc3839
        20
    ysc3839  
       12 天前 via Android
    @hanguofu 当然是看你的保密要求的
    cppc
        21
    cppc  
       11 天前
    国内的话,你可以用智能密码钥匙,这个有国标技术规范,不需要绑定某一家厂商。你说你用 rust 正好我之前有类似需求,做了一个国标 API 是 rust wrapper(PS 目前只做了国产加密算法的封装) : https://github.com/power4j/skf-rs
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   760 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:11 · PVG 03:11 · LAX 11:11 · JFK 14:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.