V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zealinux
V2EX  ›  程序员

大家公司交付客户时,深度学习的模型是怎么加密的?

  •  
  •   zealinux · 2021-07-02 11:38:57 +08:00 · 5898 次点击
    这是一个创建于 1242 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在有个问题: 公司训练好的模型以及服务,希望加密后给到用户。

    Java Web 服务使用 JNI 调用 C++的.so 接口,C++代码载入模型文件和调用推理。

    希望这些文件交付给用户的时候,加密好模型,也对此进行一些限制:

    比如限制实例数,限制时长,( TPS 不重要,有这个有更好) 且不能将所有文件(模型,.so )拷贝到其他更多的机器上分发给别人用。

    毕竟客户没有购买和买断这些模型。

    18 条回复    2021-07-04 22:17:08 +08:00
    Rheinmetal
        1
    Rheinmetal  
       2021-07-02 11:50:55 +08:00
    。为啥不能远程调用?说明还是不够强势。
    learningman
        2
    learningman  
       2021-07-02 12:04:02 +08:00
    3dwelcome
        3
    3dwelcome  
       2021-07-02 12:19:31 +08:00
    你可以在模型里额外加个以服务器系统时间为基准的 relu 噪声层。

    这个时间必须是 ntp 苹果服务器官方返回的,只要时间大于现在起的三个月,就在模型权重里添加额外噪音,到半年后自然就没办法继续用了。
    Jat001
        4
    Jat001  
       2021-07-02 12:30:53 +08:00
    这些都可以在代码里控制啊,把模型文件加密,运行的时候在内存里解密,除非你的客户是做安全相关的,会反汇编,能找到绕过限制的方法,还知道如何从内存里拿需要的数据,那你要研究的就是 Intel SGX 这样的 Trusted execution environment 了
    gxw86
        5
    gxw86  
       2021-07-02 14:14:29 +08:00
    我认为这是两个问题,模型加密和服务授权,模型加密是为了避免别人直接写代码调用模型,这一块我简单用了 AES 加密,然后加载时在内存中解密;授权是为了避免别人直接复制整套部署环境,这一块比较麻烦,坑也比较多,直接采购了外部方案,用的德国威步,校验机器码
    wangxiaoaer
        6
    wangxiaoaer  
       2021-07-02 14:16:02 +08:00
    @gxw86 #5 机器码方案在 docker 环境下有用吗?
    fl2d
        7
    fl2d  
       2021-07-02 14:19:17 +08:00
    加密的虚拟机?
    gxw86
        8
    gxw86  
       2021-07-02 14:22:02 +08:00
    @wangxiaoaer 会有问题,但是我印象里这家有 docker 的方案,好像是授权做到宿主机上,docker 容器里面通过 tcp/ip 访问宿主机的授权,具体没有测试过
    EPr2hh6LADQWqRVH
        9
    EPr2hh6LADQWqRVH  
       2021-07-02 14:25:06 +08:00
    前两天谷歌不是刚开源了那个 FHE 同态加密的东西嘛,可以用这个试试
    paopjian
        10
    paopjian  
       2021-07-02 15:29:33 +08:00 via Android
    百度有个加密模型方法,不过可能得转 paddle
    lplk
        11
    lplk  
       2021-07-02 15:33:57 +08:00
    @Rheinmetal #1 有的公司的数据不可能提供给给你的服务的,比如银行,我现在做的就是 to B,就算是采购测试,也要到银行内部部署好服务,在他们内部测试
    youxiachai
        12
    youxiachai  
       2021-07-02 15:36:35 +08:00
    买供应商解决吧.....
    Rheinmetal
        13
    Rheinmetal  
       2021-07-02 16:28:42 +08:00
    @lplk
    银行爸爸那的确.....
    inframe
        14
    inframe  
       2021-07-02 20:32:17 +08:00
    考虑物理方法:
    1 直接搞个三防本子设置好密码丢客户现场,关键服务放三防本上,测试完了三防本收回来。
    2 U 盘加密狗,模型放一些关键参数在加密狗上,一机一狗
    xuanbg
        15
    xuanbg  
       2021-07-03 07:54:49 +08:00
    模型才多大,肯定是远程调用啊。
    bthulu
        16
    bthulu  
       2021-07-03 09:36:12 +08:00
    u 盘加密啊, 插上 u 盘才能用, 一个 u 盘就是一个授权
    wangzhangup
        17
    wangzhangup  
       2021-07-04 13:03:30 +08:00
    模型就是一个大字典,你们可以自己加密。
    bitdepth
        18
    bitdepth  
       2021-07-04 22:17:08 +08:00 via iPad
    Synaptics 也有一個系列的 arm 晶片提供全 trustpath 的 AI 環境,模型是加密過的無法明文訪問
    可以考慮部署到相關硬體上
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5608 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:36 · PVG 16:36 · LAX 00:36 · JFK 03:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.