• 请不要在回答技术问题时复制粘贴 AI 生成的内容
shayuvpn0001
V2EX  ›  程序员

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

  •  
  •   shayuvpn0001 · Jun 18, 2021 · 3333 views
    This topic created in 1788 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

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

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

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

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

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

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

    工业方面那些大型设备的计算卡不就是这类思路嘛。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1122 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 18:21 · PVG 02:21 · LAX 11:21 · JFK 14:21
    ♥ Do have faith in what you're doing.