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

图片,工程文件,视频,数据和文档等一共 500G 左右的文件,用什么方式加密比较好

  •  
  •   shayuvpn0001 · 2021-06-18 21:50:32 +08:00 · 2557 次点击
    这是一个创建于 1014 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一个项目需要部署在客户现场那边的工作站上,客户在现场工作站上输入一系列内容,程序根据输入计算并结合历史数据给出若干个最优解,如果最优解落在某个示例区间内,则还需要展示文档、图片和视频告诉客户怎么操作。

    整个过程我们的历史数据、图片、文档等关键资料都不希望给客户那边脱壳拿到原始资料,特别是历史数据和算法。同时因为客户那边工作站是在封闭环境下运行,无法联网,因此也无法使用互联网实时下发,必须在开始部署的时候全部拷贝到现场工作站上。

    目前能想到的是:
    1,使用商业方案,USB 加密狗等方法。
    2,根据现场工作站的物理特征,比如 MAC 地址,序列号等生成密钥,绑定我们的软件到该工作站上。

    想问问还有什么比较好的加密方法,能够最大限度保护我们的知识产权。

    18 条回复    2021-06-20 13:34:21 +08:00
    3dwelcome
        1
    3dwelcome  
       2021-06-18 22:36:02 +08:00   ❤️ 1
    丢进 linux 的 docker 里,文件强加密,相当于一个加密后的 VM 。

    对外提供文件访问 API,给现场发布一个访问 KEY 。限制 KEY 访问频率,限制一下失效时间。

    超过服务时间,docker 内部启动自毁程序,这样数据神仙也救不回来。
    shuizhuyu
        2
    shuizhuyu  
       2021-06-18 22:41:53 +08:00
    等一个压缩包强加密方法
    felixcode
        3
    felixcode  
       2021-06-19 00:44:14 +08:00 via Android
    做一个加密磁盘的虚拟机,对外提供 api,vmware workstation 本地运行。
    dingwen07
        4
    dingwen07  
       2021-06-19 00:51:02 +08:00 via iPhone
    @3dwelcome #1 不懂就问,运行加密的 VM 不需要提供能够解密整个 VM 的密钥吗。
    3dwelcome
        5
    3dwelcome  
       2021-06-19 01:12:05 +08:00
    @dingwen07 黑盒运行可以不需要登录吧,只需要能启动网络,调用到 API 。

    比如 windows 的 vm, 你启动后不需要用密码登录进系统,就能直接用它的网络服务了。
    dingwen07
        6
    dingwen07  
       2021-06-19 01:35:17 +08:00 via iPhone
    @3dwelcome #5 但是加密的数据需要解密才能执行吧,比如 BitLocker 加密的 Windows 必须先解密才能开机
    3dwelcome
        7
    3dwelcome  
       2021-06-19 01:52:01 +08:00
    @dingwen07 我没懂你的意思,BitLocker 全盘加密,在 Windows 系统引导时候,就已经开始发挥作用了。
    并不是到输用户密码的时候,才开始解密磁盘文件。
    dingwen07
        8
    dingwen07  
       2021-06-19 02:10:46 +08:00 via iPhone
    @3dwelcome #7 对,所以说 VM 里的数据就算被加密了,密钥也在内存里,而 op 的情况是机器都是对方控制的,他们完全可以 dump 内存获取解密整个 VM 的密钥。
    xiangyuecn
        9
    xiangyuecn  
       2021-06-19 08:23:06 +08:00
    数据用个简单高效的加密方式加密就可以了,AES 足够胜任

    密钥用密钥的密钥的密钥来加密一道,解密密钥的密钥的密钥丢到授权密钥里面,通过某种算法或解密方式从授权密钥里面提取出来,某个阶段循环个几千万下,谁要来破解绕晕他😂😂
    winglight2016
        10
    winglight2016  
       2021-06-19 09:01:35 +08:00
    使用 wtg 的 SSD 移动硬盘不是最方便吗?演示完,带走。
    typetraits
        11
    typetraits  
       2021-06-19 09:05:57 +08:00
    带一个 USB key,将全部数据放进 VeraCrypt 或者 Cryptomator 加密,设置强密码,现场使用 USB key 解密,走的时候拔掉就可以,直接把加密后的镜像送给他们都没事
    yujiang
        12
    yujiang  
       2021-06-19 11:01:05 +08:00 via Android
    提供一个另类思路,如果客户的储存空间够大,你可以在素材中添加大量垃圾数据,做成屎山。然后在主程序的逻辑里屏蔽掉这些垃圾数据,接下来只要对主程序进行强加密就行了,比如用加密狗,混淆代码,还要偶尔对那些垃圾数据进行一些调用混淆视听。素材用 AES-256 甚至 512 加密就够了,就算对方解密出来,只要主程序没被破解,想在屎山里找出有用的东西还是挺困难的。为了防止调试,可以再起个本地挖矿还是算圆周率之类的需要大量算力的进程,根据客户设备的算力把 CPU 拉到比较高的程度同时运行软件又不会卡,进程还要与主程序守护(像 qqprotect 的逻辑)甚至写死在一起,如果想要放在虚拟机调试考虑到虚拟机的性能损耗,为了破解他们需要租用或购买性能更强大的设备,花费额外的资金,但他们发现所有的这些花费不如再找你们公司买个许可证的话,你的目的也就达到了
    Huelse
        13
    Huelse  
       2021-06-19 11:16:58 +08:00
    最好办法是东西部署在自己这儿,客户那边只是个请求客户端(或者说,给客户定制个本地服务,但是“上锁”的,可检测拆封和异常访问等)

    话说有图片和视频岂不是录个屏就破了?难不成加水印?

    好的协议与合同是更方便的手段吧?
    dianso
        14
    dianso  
       2021-06-19 13:19:52 +08:00
    把笔记本放箱子里,给箱子换个密码锁
    shayuvpn0001
        15
    shayuvpn0001  
    OP
       2021-06-19 13:42:33 +08:00
    @Huelse 不能联网,图片和视频已经打了我们的水印,他们录屏也只能他们自己内部使用,无法二次分发,而且录屏效果差。
    而且在最差条件下,他们拿走图片和视频的损失我们也能承受,但是历史数据和算法是绝对不允许的。

    协议和合同对某些甲方几乎等于无效,这个东西本来也含有专利在里面,我们专利提都没提,因为提到专利对方可以通过合法手段进行征用,那个损失更大。
    titan2006
        16
    titan2006  
       2021-06-20 00:26:38 +08:00 via iPhone
    改个扩展名
    rosees
        17
    rosees  
       2021-06-20 03:01:56 +08:00
    使用带 TPM 的笔记本,不给管理员权限,其他规则设置好即可
    cjq8z
        18
    cjq8z  
       2021-06-20 13:34:21 +08:00 via Android
    你如此担心用户获取相关的数据,为啥不搞个硬件模块呢?
    找人开发个硬件模块,上面有 CPU 、EPROM 、RAM 、存储芯片等等,把你们的程序、算法、资料啥的全部放在上面,然后再提供给硬件接口给用户使用不就可以了吗?
    再写个软件调用硬件模块和用户本地设备硬件。

    工业方面那些大型设备的计算卡不就是这类思路嘛。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5618 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 61ms · UTC 01:41 · PVG 09:41 · LAX 18:41 · JFK 21:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.