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

USB 防拷贝 U 盘-需要行业大佬们的建议

  •  1
     
  •   jaggerkyne · 2018-12-31 17:27:33 +08:00 · 19608 次点击
    这是一个创建于 2162 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近一个客户找到我们,提出了想要这样的一个资源分享方案。

    USB 防拷贝技术,要求是放在 usb 里面的文件:主要是音频,视频,文件,图片最终客户可以看,但是不能够私自拷贝。文件格式主要是:mp3,mp4,pdf,ppt,jpg。u 盘必须是独立运行,不能让客户安装客户端(包括插进去后自动安装的 autorun,而且还得跨平台 windows 和 mac ),或者 viewer 之类的东西。

    要求支持的平台有:苹果和安卓手机,mac 和 windows。

    给的钱大约是 20WRMB,每月的订单为 2W 美金左右的订单。

    看了目前所有市场上的我们能找到的方案,基本上就是在文件上加了一个类似播放器的壳,然后运用软件给壳来解锁。我们还发现有些方案直接就是把文件给建造在层层的文件夹里隐藏起来(最可怕的,人家还拿到国内的专利证书)。

    最后找到了 2 家,以色列的 TrusCont 和美国的 nexcopy,这两个类似是用硬件的,TrusCont 但是本质上还是壳,还要使用 autorun,虽然已经很接近了,但人家只支持 windows。还找到日本的一家 Hagiwara Sys-Com,可惜还没拿到 developer kit。

    我知道一个关于拷贝的定律,if it can be read, it can be copied.

    上来求助 v 圈的大大们,看看有没有现成的方案,或者能够做的?

    先行感谢拉。
    第 1 条附言  ·  2018-12-31 22:10:37 +08:00
    首先感谢大家开动脑筋,在此小弟再次表示感谢,为了帮助大家更好地开阔思路,现在总结一下大家所发言的。

    方案一:直接使用 DRM 或者网络流技术,在网端实现内容的播放。
    最终用户是正处在 vcd,dvd 到 u 盘转化的时代,他们的网络类似我们 90 年代的网络水平,所以没用。

    方案二:模拟两个分区,一个 CD-ROM 放播放器,另一个私有分区放文件,
    这个可以考虑,但是无法做到防拷贝。也是我们现在主攻的方向,可惜 fat,fat32 和 exfat 本身上的缺陷,导致了必须另辟路径。

    方案三:给文件加密,用 app 或者 viewer 的方式来实现闭环。
    造价比较高,没有找到现有的跨平台方案,仅仅支持 win,或者 mac,不支持移动端,兼容性不是很好。

    方案四:变成定制的 u 盘大小的操作系统或者蚊型电脑。
    造价太高,批量生产要很久才能回收成本。

    方案五:通过 u 盘主控的 UID 进行唯一标识,OS 端解密放行。
    类似方案二,我们有两者合一的方案,但是还是跨越不了平台之间的限制。

    方案六:物理给 upan 加锁,有锁的人才能开。
    造价高,而且解锁后,u 盘拥有人可以随便拷贝。

    客户要求的是三者合一(移动端,安卓,IOS,mac 和 windows )的,就像现在市场上那些三合一的 u 盘一样。用户体验必须是无缝的,插入某个 OS 就能用原生的 程序 进行播放,阅读,浏览,要求仅仅是不能被简单的复制。 内容必须和硬件锁死,要拿内容,必须把硬件一起拿走。
    181 条回复    2019-01-03 18:28:26 +08:00
    1  2  
    msg7086
        101
    msg7086  
       2019-01-01 09:34:01 +08:00
    「原生的 程序 进行播放」原生的程序就是把数据拷贝到内存后播放的。
    所以你为什么要提一个与你的要求完全相反的要求呢。
    realpg
        102
    realpg  
       2019-01-01 10:06:49 +08:00
    @ech0x #100
    不。主控只是保证能实现功能。
    因为不同主控并不支持 U 盘的某些模式
    TonyGong
        103
    TonyGong  
       2019-01-01 10:07:50 +08:00
    对于视频播放,我有个方法,可以阻挡 99%的人吧,什么也不用安装,就是个 u 盘
    zhouyut001
        104
    zhouyut001  
       2019-01-01 10:19:33 +08:00
    电脑是无法拷贝,那么外部物理截图录像怎么解决?
    BingZ
        105
    BingZ  
       2019-01-01 10:20:12 +08:00   ❤️ 1
    依赖 OS 原生播放器或阅读器是无法实现很好实现“防拷贝”的。这源于各平台的差异,和相关软件的功能,都不在你的掌控范围(你没法保证各 OS 上的原生应用都能具备某种类似 DRM 的功能,你也没法区分各应用的发出的读取和拷贝操作)。按客户的描述,他们可能是希望实现“ DVD 防拷贝”的效果,但不切实际的扩展了非视频内容。

    要支持各种格式文件,又要兼容各大 OS 平台,还要在应用级别控制拷贝,较易实施的方案是:在被保护内容上套上自定义的壳,同时把文件 IO 和解码控制在自己手里。
    那么,何不自定义“播放器”,“阅读器”呢?然后,连同被保护内容一起,装入一个可独立运行的“虚拟机”内,不是更容易掌控么?更容易有统一体验么?何必拘泥于“原生应用”?

    涉及的技术:
    各 OS 平台“可移动磁盘自动运行”的机制;
    一个可跨平台运行的虚拟机;
    一个精简的带 GUI 的 linux 镜像,提供操作界面和有限的文件管理;
    自定义基于 linux 的“播放器”、“阅读器”,限制应用级别的一切复制操作;
    应用加密算法,来保护“内容”,流媒体可区别对待;

    综上:将一个可即插即用的虚拟机塞到 U 盘,支持各大 OS 的自动运行机制,在该虚拟机跑一个自定义的 linux,在自定义的“应用”上完成阅读和播放。

    上述方案完全基于软件实现,若需更高等级保护,还可在 u 盘主控上设置硬件门槛或使用自定义主控。
    zjsxwc
        106
    zjsxwc  
       2019-01-01 10:39:29 +08:00 via Android
    需求逻辑自相矛盾,请换个产品经理
    jaggerkyne
        107
    jaggerkyne  
    OP
       2019-01-01 11:11:09 +08:00
    @stzz, 目前使用的就是光盘,但是客户的用户现在大规模推广 usb,光盘业务在萎缩。
    @ThirdFlame,@discrete 具体哪个国家因为保密协议不能说,但是提示一下,他们正在经历我们曾经经历的。

    @aphyllan 这个方式已经做了测试,坑太多了,造价也远超 20W 软妹子能搞定的。
    @icyalala @swulling 现在老板正在考虑是否涨价了。现在的问题是怎么样才能做到?


    @qile1 文本可以,但是音频和视频不行。


    @jinhan13789991 这个需求需要在当地做主机,但是当地的全国局域网条件做不了。


    @hugee @qiukong @zhouyut001 不怕录,要的就是把内容和 u 盘硬件弄得不可分割。


    @kcats @LGA1150 是这个道理,if you can read, then you can copy。但是为了防止的是技术小白,而不是极少数的骇客。


    @vmebeh 所以我觉得这个解决方案要在数据 IO 的地方想办法。按照数据流的 pattern 来制止,但怎么制止,还没想到方案。

    @rio @icyalala tb 和 jd 上面一大堆,也有可以定制的方案,除非能做到插入就能自己 local 安装 app,否则这方面还是坑。

    @Mohanson 使用时候必须输入密码的这个方案不行,因为密码输入后,用户可以拷贝。客户要求的就是,最终用户不经历大麻烦,不能拷贝。


    @DreaMQ 这个有考虑,请问有相关方案或者文档吗?


    @whileFalse 是的,是个笑话,但是人家 LD 阶层用的就是 mac 和 IOS 阿。sandboxie 和影子卫士啊,冰点还原精灵都是使用类似的技术,我们自己有 win 端的解决方案,但是怎么合在一起就头痛了。


    @msg7086 可能我说的不太清楚吧。客户要求是机子上面有什么播放器就用什么播放器。不用特制的播放器就能播,就能看。


    @TonyGong 能分享一下吗?

    @BingZ 这是我们其中的一个想法类似,但是没有做过,有没有什么现成的方案或者相应的技术文档呢?


    @zjsxwc 在我司这么一大堆的工程师看来是这样的,但这个就是客户提出来要我们解决的。这个客户是老板自己拉来的。所以老板就是产品经理,换不了。客户的原话就是:“在 u 盘上放文件,客户可以看,听,但是需要复制的时候,只能把 u 盘拿走。u 盘要可以在 windows,macOS,安卓手机和苹果手机上面使用。”老板给我们钱,就是要帮老板解决问题的。现在看来,要么是拍脑袋的决定,要么就是老板把客户的 USD 变成了 RMB。我还是挺好奇 @realpg 的方案的。
    l1ve
        108
    l1ve  
       2019-01-01 11:13:19 +08:00 via iPhone
    U 盘中做一个小型化系统,类似电视盒子
    然后远程上去?
    ech0x
        109
    ech0x  
       2019-01-01 11:17:30 +08:00 via iPhone

    像这个视频里不是有物理锁吗?我看淘宝上带读写保护的盘也不贵啊。
    msg7086
        110
    msg7086  
       2019-01-01 11:18:07 +08:00
    @jaggerkyne 那客户的播放器如果有拷贝功能,不就把文件拷走了?
    播放器要播放,必须要读取(也就是拷贝)出来。你说「有什么播放器就用什么播放器」,那只能依赖于 DRM 联网验证解密。不联网,又让用户的播放器随便读,和你的原始要求是完全相反的。
    如果不联网,而改用 USB 设备验证,我是不知道哪个客户自己安装的播放器能支持这个功能。
    ech0x
        111
    ech0x  
       2019-01-01 11:19:48 +08:00 via iPhone
    @ech0x 好吧,这是写保护。
    ech0x
        112
    ech0x  
       2019-01-01 11:22:26 +08:00 via iPhone
    可不可以自己实现一个文件系统,接口和已有的例如 Fat 之类的兼容。
    8e47e42
        113
    8e47e42  
       2019-01-01 11:23:10 +08:00 via iPhone
    教 PTE 的吧?没救,用加密狗都有人录屏的
    msg7086
        114
    msg7086  
       2019-01-01 11:23:36 +08:00
    换句话说。

    1. 客户自己安装的播放器随便播
    1 => 2. 使用不加密的方式存储文件
    1 => 2 => 不加密存储的文件可以随意拷贝随意播放
    1 => 3. 使用 DRM 加密方式
    1 => 3 => DRM 需要联网验证,播放时解密

    你刚才说 DRM 不可行,那么就必须要播放器负责解密,那么就势必不能用客户自己的没有解密功能的播放器。

    所以还是考虑自定义播放环境吧。
    test99
        115
    test99  
       2019-01-01 11:24:55 +08:00 via Android
    又是个想花小钱办大事的,开发预算后面加个零差不多,这个价格别想了
    oott123
        116
    oott123  
       2019-01-01 11:26:58 +08:00
    就说你有 ppt 文件,然后不能让客户安装查看器,好,那么使用 ms office 打开 ppt

    然后你做了再好的防拷贝,文件是不能复制了,结果人家打开 ppt 点了一下另存为,得到了一份副本,你咋办……
    BingZ
        117
    BingZ  
       2019-01-01 11:53:23 +08:00
    @jaggerkyne

    参考实现:
    https://willhaley.com/blog/simple-portable-linux-qemu-vm-usb/

    虚拟机:QEMU,支持 linux, mac,有 win 的第三方移植
    OS:Tiny Core Linux

    虚拟一个 linux 的好处是,有大把的现成应用可用。
    ----------------------------------------
    另外,变通下:是否可以将需发布的内容,预先转化为音视频,静态 pdf 或图片,这样对“阅读器”的要求就能大幅降低。甚至,一个基于 QT 开发的跨平台的应用就能满足要求。
    murmur
        118
    murmur  
       2019-01-01 12:06:38 +08:00
    ppt 如果是壳的话你是不是还得实现个 powerpoint
    gq00001
        119
    gq00001  
       2019-01-01 12:59:28 +08:00
    我有个想法,能不能这个 U 盘就是个 USB HUB,里面分成 2 个,一个是一个微型 PC,一个是公开的存储.那个微型 PC 系统定制的 LINUX 系统,里面包含 WEB 服务.公开的存储里面就放一个网页快捷方式就行,指向那个微型 PC 提供的 WEB 站点.跟微型 PC 通信就用 USB 模拟网线就行.这样就相当于从浏览器里面访问和查看及管理微型 PC 里面的内容.PC,苹果,手机应该都支持浏览器的,USB 模拟网线之类的驱动和实现方法,手机现在也很多自带的了,应该不难找.WEB 服务的开发就很多方法了.
    kzoacn
        120
    kzoacn  
       2019-01-01 13:10:59 +08:00
    90 年代的网络水平?莫非是黑人兄弟?
    这东西不可能实现。不妨把目标定为只能防小白防不住有一定知识的人。小白的定义是仅懂得复制+粘贴,不懂得上网查解决办法。
    这样的话 CD 实际上就做到了这一点,打开都是 cda 文件,需要稍微懂点知识才能拷贝出文件。
    借着 CD 的思路,对于 win 可以把文件隐藏,给用户一些快捷方式,(这让我想起了小学时兴冲冲的把红警快捷方式拷回家然后傻眼[滑稽])
    当然这可能太侮辱用户智商,思路还是一样的,就是用一个 link 指向真实文件,让小白用户只能拷贝走 link。可以考虑从文件系统下手
    dream7758522
        122
    dream7758522  
       2019-01-01 15:16:58 +08:00 via Android
    u 盘里放入 VMWare play 和做好的精简版系统,比如 xp pe,不到 100 兆。要浏览的东西放这个系统里。
    系统里开发一个检测 u 盘信息的软件,自启动,u 盘不正确的话自动锁定进不去系统。
    fxxwor99LVHTing
        123
    fxxwor99LVHTing  
       2019-01-01 15:40:03 +08:00
    1 U 盘不借给别人不就行了
    2 文件加密
    kcats
        124
    kcats  
       2019-01-01 15:58:24 +08:00
    所以最简单的办法就是通过协议限制, 如果复制了会怎么怎么样, 就像那些开源协议一样.
    技术手段做不到的, 就只能靠法律手段了.
    zjsxwc
        125
    zjsxwc  
       2019-01-01 16:28:46 +08:00 via Android   ❤️ 1
    其实问题可以简化为:
    发明一款只能一小口一小口吃的饭(可读),不能一大口一大口吃的饭(不可复制)。


    如果那么变成了文件读取接口方法 fread 能不能限制其参数每次读取数据大小 size 与 count 值。

    http://www.cplusplus.com/reference/cstdio/fread/
    sdijeenx
        126
    sdijeenx  
       2019-01-01 17:16:03 +08:00
    @kzoacn 这个方法不错简单粗暴,文档和视频放到隐藏文件夹里边,在根目录下创建文档和视频的快捷方式。(如果终端用户是小白的话)
    vmebeh
        127
    vmebeh  
       2019-01-01 17:23:48 +08:00 via iPhone
    有的 u 盘主控可以模拟 usb 光驱,不知道能不能配合光盘的防拷技术。
    zhengxinhn
        128
    zhengxinhn  
       2019-01-01 18:00:24 +08:00
    感觉 html5 比较靠谱 ,跨平台+原生的程序进行播放做到了,但是有个问题。
    iOS 设备的输出功率,能支撑 U 盘(主控)以外的设备(芯片)么?
    laqow
        129
    laqow  
       2019-01-01 18:46:39 +08:00 via Android
    主机端建虚拟机,移动端用 app 实现,在系统后台开一个 web 服务,客户用自己的浏览器访问 web 服务。所有文本图像资料转 html,音视频转 rtmp 流媒体。稍微增加一下复制难度,客户也能用自己熟悉的客户端(浏览器)。全盘复制这种就别的技术实现了。
    cai1151671293
        130
    cai1151671293  
       2019-01-01 20:00:04 +08:00 via Android   ❤️ 1
    最简单的,把平板当成定制 U 盘,对平板加密,保留充电口外其他接口改成特殊的,自己可以传输,客户不可传输,阉割网络蓝牙等功能。这样解决了看和听的问题,也保证了数据不被复制
    aptx4689
        131
    aptx4689  
       2019-01-01 20:28:33 +08:00
    iOS 无解
    shingoxray
        132
    shingoxray  
       2019-01-01 21:58:15 +08:00 via iPhone
    应该只有方案三最靠谱了
    asdqaz
        133
    asdqaz  
       2019-01-01 22:14:20 +08:00 via Android
    我有一计
    发现拷贝直接删文件
    mumbler
        134
    mumbler  
       2019-01-01 23:10:25 +08:00
    把文件加密啊,指定播放器才能播,拷贝出去也没用,直接防拷贝没用
    CRVV
        135
    CRVV  
       2019-01-01 23:52:44 +08:00
    “客户要求是机子上面有什么播放器就用什么播放器。不用特制的播放器就能播”
    如果这一条是硬性要求,那你的需求是一个 gfw
    如果用户在做你不想让他做的事情,就把连接断掉;如果他在做你允许的事情,这个系统就不存在。

    在 U 盘上加一个单片机之类的东西来检测文件的哪个部分在哪个时间被读过

    播放器播放视频文件的读文件模式和操作系统复制文件的模式必然不一样
    你们可以去把所有播放器读文件的模式测试一遍,如果像是在复制文件(以最大速度连续读文件)就把连接断掉

    好像可以符合所有要求,如果你们有时间去做测试和优化,我估计结果可以很好
    fbqk2008
        136
    fbqk2008  
       2019-01-02 00:40:54 +08:00 via Android
    这个 Sony 当年都没有做到,任天堂也没做到的事情,你能做到?
    hahiru
        137
    hahiru  
       2019-01-02 09:07:48 +08:00
    现在不是有那种迷你主机棒么,你自己用这种微型计算机定制一个系统然后搞呗。
    Everyxin
        138
    Everyxin  
       2019-01-02 09:13:28 +08:00
    感觉像是朝鲜,哈哈
    防拷贝不太清楚,只想问下 lz,你说不防视频录制,图片截图这种
    那使用者将视频录下来或者截图不也等于“拷贝”吗
    xvan
        139
    xvan  
       2019-01-02 09:31:08 +08:00
    基本思路就是加密 u 盘,里面存 key,u 盘里是 key 加密过的,必须用密钥才能打开,但是还得定制播放器啥的,20w 搞不完
    USNaWen
        140
    USNaWen  
       2019-01-02 09:37:25 +08:00
    虚拟机
    但这个预算不靠谱,特别是还要多终端。
    hugee
        141
    hugee  
       2019-01-02 09:42:19 +08:00 via Android
    可以录就已经分割了
    a22124497
        142
    a22124497  
       2019-01-02 10:30:35 +08:00
    当年擎泰 sk6211,搞过一个方案,使用的是官方的 API,然后自己封装的玩意,隐藏分区,一个 USB-CDROM

    我们在隐藏分区里造轮子,重新做了一个文件系统,然后放文件。当时只做了 WIN 的,需要安装一个服务,然后来识别。
    CDROM 里放文件,安装服务之类,然后自己调用隐藏分区。
    隐藏分区里的文件系统,是一个大牛给我们写的,强度什么 的就不知道了,因为最后也没有实际上商用,只是自己测试了一下,还不错。你可以用我这个思路去玩一下。

    现在 USB3,好像是银灿用的比较多的了
    mytry
        143
    mytry  
       2019-01-02 10:36:38 +08:00
    U 盘里放一个 html 文件和几个隐藏的资源文件。资源文件加密存储,用户通过 html 浏览,运行时通过 JS 解密,同时做一些强力混淆保护,然后加些可追踪的水印即可。理论上支持任何操作系统。
    shidianxia
        144
    shidianxia  
       2019-01-02 10:40:46 +08:00
    @CRVV 这个思路很棒
    no1xsyzy
        145
    no1xsyzy  
       2019-01-02 10:59:58 +08:00
    我认为 @CRVV #135 的想法算是个最好的了?
    VLC 只要能播放就能转储(通过转码功能),但还是突破不了 #135 的读取模式判断
    ——
    如果可以自己附带 player 的话不如选择可以直接播放 stdin 的播放器?然后根据 U 盘的特征值生成一个密钥,写入的时候通过这个密钥加密写入,然后可以
    cat file|decrypt|vlc -
    就可以播放了
    alfredsun
        146
    alfredsun  
       2019-01-02 11:06:16 +08:00
    你听说过采集卡吗?
    blless
        147
    blless  
       2019-01-02 11:15:29 +08:00 via Android
    参考各种财务银行软件吧,电子狗,自定义格式,还成熟
    原生什么的还是算了吧有这种
    另外 20w 不够吧
    openbsd
        148
    openbsd  
       2019-01-02 13:17:10 +08:00
    有没可能操作系统提供某种接口,证书加密文件,然后 U 盘划分一个区域存储证书,文件可以拷贝走,只要不接上对应的证书,依然没法解码播放 ?
    h4wklee
        149
    h4wklee  
       2019-01-02 13:27:26 +08:00
    一种猜想,不一定对:Netflix 要通过 U 盘在古巴开展业务
    exip
        150
    exip  
       2019-01-02 13:40:50 +08:00 via Android
    自定义文件系统、高强度加密、隐藏并混淆,用定制播放器播放,保证小白拿不走,大牛拿走了也无法解密就行了。
    jaggerkyne
        151
    jaggerkyne  
    OP
       2019-01-02 13:41:41 +08:00
    @BingZ,@laqow 谢谢,已经有工作人员去看这个方案了。

    @murmur 这倒不用,微软的 MSDN 里面有详细的解决方案。

    @gq00001 谢谢您的想法,这个和 @BingZ 的想法类似,已经有人去研究了。

    @kzoacn 这个貌似是最简单的方案,老板也在让人写了个小程序,过几天做 demo 的时候就知道分晓了。


    @dream7758522 windows 可以简单解决,移动端好像没有现成的解决方案,如果有,还请告知一下,如何把桌面端和移动端合在一起。


    @fxxwor99LVHTing 人家要把东西灌进去,然后全国推广的。


    @kcats 法律手段在客户的眼中就是笑话,如果大家觉得天朝的协议有够那个的,那么这个国家的法律体验就要更加👎了。


    @asdqaz 这个的话怎么实现无缝体验?还得加一个 u 盘底层加 loader,让底层根据插入的系统来显示。可惜这方面的现成方案几乎没有,专门开模弄个芯片 20W 却远远不够。


    @zjsxwc 这个如果是软件实现,那么写 loader 必不可少,但是 loader 在底层的空间却是不足。有现成的方案吗?


    @sdijeenx #126 其实这个方案的思路挺好,如果我们能实现在快捷方式到隐藏文件之间的单方向加锁就可以完美实现,只是如何做呢?这个和#120@kzoacn 的方案很像。


    @vmebeh 尝试了,只有单一平台,跨平台目前还没找到相应方案。


    @zhengxinhn 我们找到日本一家企业可以做到,但是 20W 软妹子基本没戏。



    @cai1151671293 这个成本太高,该国的这块生意不是由客户决定,不能动别人的奶酪。


    @mumbler 已经被否决了。因为人家担心我们在 app 中留了后门。所有必须联网的方案都被否了。
    @CRVV 呵呵,类似,但是 20W 软妹子做不了 gfw,特别是在 u 盘单独的空间里面。


    @fbqk2008 我们不能用“正常思维”去看待,因为我看了他们要放进去的内容,在我看来直接发就可以了。想拷贝的人始终能找到方法拷贝的。


    @Everyxin 客户的要求就是,如果要传播,必须把 u 盘拿走。就像我们以前买粮食,除了钱,还必须有粮票一样。缺一不可。u 盘相当于粮票。


    @USNaWen 虚拟机能搞定跨平台吗?特别是手机端?插进去手机系统自动重启进入系统?

    @a22124497 有成品吗?或者文档吗?老板说价格合理可以付费。


    @mytry 已经在做了个 demo,但是在手机端遇到了问题,window 端防火墙过不去。


    @no1xsyzy 做了测试,但是发现每一批的 u 盘的值都不一样,即使同一批出来的,换个接口也不太一样。穷举法费用不足。


    @alfredsun 听过,但是客户不在意,他在意的是 u 盘和内容锁定。


    @blless 这个方案垮不了平台,而且有点 overkill,20W 软妹子仅够塞牙缝。可能连 driver 的授权费都不够。


    @openbsd 这个方案解决了 win 和 mac,移动端还无解。


    @h4wklee 呵呵
    myxingkong
        152
    myxingkong  
       2019-01-02 13:43:12 +08:00
    目测客户是隔壁三胖
    sdijeenx
        153
    sdijeenx  
       2019-01-02 13:58:01 +08:00
    用快捷方式可以做到双击运行,复制粘贴只能复制快捷方式。(这里假设用户是小白不会查找源文件路径)
    文件隐藏方法可以参考这个:
    http://www.cnblogs.com/caoyuanzhanlang/p/3437001.html
    sdijeenx
        154
    sdijeenx  
       2019-01-02 14:04:35 +08:00
    现在好多 MCU&emmc&nand 啥的都有唯一序列号,如果你指的是这个值的话一定是不一样的。
    murmur
        155
    murmur  
       2019-01-02 14:09:25 +08:00
    @shidianxia usb2.0 甚至更低的 usb 可破?
    sdijeenx
        156
    sdijeenx  
       2019-01-02 14:17:18 +08:00
    @zhengxinhn 可以,U 盘主控其实是一个自带 USB 和 nand 控制器的 MCU,只不过跟通用 MCU 相比可以做到开箱即用,不用自己写程序。比如 STM32F103+tf 卡+自己写代码就可以虚拟 U 盘,功耗也不高。
    exip
        157
    exip  
       2019-01-02 14:17:30 +08:00 via Android
    u 盘分两个区,可见和不可见,可见区放无关的文件(伪装成真的)和必要的程序,不可见区自定义文件系统,任意放一个足够大的文件,这个文件来做”密码本”。用 u 盘的主控或专用硬件实现播放时根据“密码本”实时生成视频流。“密码本“和硬件结合才能播放出内容,而播放的内容根本就没有存放 U 盘里。但也防止不了录屏、录像。
    JCZ2MkKb5S8ZX9pq
        158
    JCZ2MkKb5S8ZX9pq  
       2019-01-02 14:22:02 +08:00
    换个角度,拷贝防不了,看能不能加个追责机制。
    在发给各个客户的内容里,用各种方法折腾上水印。事后跟收版税一样,等对方搞大了去讨债呗。
    前提是所在地区有规矩可讲。
    exip
        159
    exip  
       2019-01-02 14:25:26 +08:00 via Android
    实现原理可参考 利用 windows 字体文件生成后门程序 ,把生成后门的方法写成一个无害的程序,程序运行后用类似查表的方法查字体文件中特定位置的值来拼接一个后门出来。
    realpg
        160
    realpg  
       2019-01-02 14:26:31 +08:00
    @a22124497 #142
    跟我的方案很类似了

    不过我的不需要驱动,只需要专门的绿色播放器(可以直接放 U 盘的普通存储区里) 无法硬件解码必须软件解码( H.264 )
    而且看不见视频文件本身(即使播放过程中也看不见完全隐藏),所以拷走这个不存在

    但是对于一些精通精通计算机的人来说,把这些视频不太费劲的转储到另外一处地方借助这个播放器播放是可能的(当时的客户需求也没提深度防备份,而且理论上是有一定办法让这个备份变得更加困难,客户没要求就没用)

    我这理论上 mac、linux 甚至 freebsd 等各种通用 PC 平台都可以实现播放,但是没去实现因为没有会开发那些平台软件的人,客户也只要求 windows

    假设实现了非 windows 平台的软件,在非 windows 平台下,无法防止研究明白机制的人想办法把这些视频数据拷走使用我们的通用播放器在别处播放,且无法让这个过程更复杂(缺少系统底层黑科技支持),所以在 windows 下研究明白机制的人可以很容易的在 mac 下把存储区

    如果不反向工程播放器研究透数据机制,即使你成功将视频数据弄出去,你也没法将其还原成 mp4 文件
    exip
        161
    exip  
       2019-01-02 14:28:49 +08:00 via Android
    要播放的文件就没有保存在 U 盘里,也就无从复制。
    realpg
        162
    realpg  
       2019-01-02 14:34:52 +08:00
    另外 播放器代码是掌握在我们手中的,由于客户没提,所以并没有在播放器上做限制,实际上播放器上是可以做一定的限制,去检测插入的 U 盘的信息,防止备份的,这就是另外的攻防战了


    另外,@jaggerkyne
    我感觉你这客户的需求应该是跟我这客户需求是差不多的
    但是你所谓的日本公司啥的能用较高成本实现你原文所提到的全部需求,我觉得就是编的,给你个高价让你们知难而退

    windows 自身的存储机制决定了你的原始需求本身就是自相矛盾的
    shidianxia
        163
    shidianxia  
       2019-01-02 14:42:58 +08:00
    @murmur 读取速度只是一个特征,视频播放软件读取的时候应该还有别的特征?(猜测)
    不过这个方案,应该只能针对大文件,如果文件过小,还没来得及识别特征,人家就拷贝完了。😄
    juneszh
        164
    juneszh  
       2019-01-02 14:44:17 +08:00
    看楼主的描述。。估计就是古巴
    shidianxia
        165
    shidianxia  
       2019-01-02 15:11:50 +08:00
    看了楼主上面的回复,就算别人给的建议不符合你的要求,至少给个“感谢”,最好不要用“呵呵”这样的态度来回复。
    sdijeenx
        166
    sdijeenx  
       2019-01-02 15:19:58 +08:00
    @realpg 确实是矛盾的没错,所以只能提能部分满足 LZ 需求的方案,然后让 LZ 选一个或者总结出一个最适合他的方案。
    另外如果文件已经正确加密了即使被某人复制出来也没事,因为你有专用播放器可以限定视频只能在你订做的 U 盘里播放。
    @exip 的方法是用“明文 xor 密码本”的方法给文件加密(就是 OTP ),打开文件时通过 U 盘主控实时解密。
    murmur
        167
    murmur  
       2019-01-02 15:30:07 +08:00
    @realpg 客户要求源生程序 审题啊
    akuramatata
        168
    akuramatata  
       2019-01-02 15:49:24 +08:00
    樓主你好,我之前有分銷商介紹過一個品牌,叫 Apricorn,好像是給美國軍用的專注 encrypted USB 的廠家。感覺可以滿足你要求,但具體可能需要你再深入了解一下。他們家是硬件加密,密碼輸入在硬件上,不需要 autorun,你可以參考一下。

    https://www.apricorn.com/flash-keys/aegis-secure-key-3nx
    jaggerkyne
        169
    jaggerkyne  
    OP
       2019-01-02 17:02:31 +08:00
    @sdijeenx #156,#166 谢谢,已经转发给老板和工程师。

    @exip #157 这个用户体验不好,我司没有人愿意去当地教育用户。
    @exip #159 这个 win 端可以,但是 mac 和移动端解决不了。
    @exip #161 这个需要网络或者在 u 盘上模拟网络或者本身就是个微型电脑,结果还是造价问题给否决了。
    @realpg #162 还好了,人家的一个 development kit 加上一个测试组合也就不到 5KUSD,所以不算贵。主要人家要的是知道最终客户是谁,我们无法提供。而且在量产上也有要求,整个下来没有 200KUSD 完成不了。所以老板才有涨价的愿望。播放器的部分被否决了。否则目前的技术储备可以很好的完成 win 和 mac,至于移动端 20W 软妹子不够。至于说要求是不是自相矛盾呢,在我眼中看来是的,但是人家出钱,想要达到一个效果,即使这个效果在我们这些技术人员眼中看起来多么可笑,也是仅能在心理默默的。


    @shidianxia #165 “呵呵”是因为合约的关系,没办法的回答,如果冒犯了,我道歉。你说的没错,因为可变的东西很多,除非能够提前知道客户每次网里面灌入的内容是啥,否则硬件和软件端每次整一下价格就飙升了。

    @JCZ2MkKb5S8ZX9pq 法律这东西出了我们手就完全不可控了,我们也不想管。

    @akuramatata #168 谢谢,这个方案在京东已经有了,但是和客户要求的不太一样。不是为了防止 u 盘内容丢失,而是人家要求“想要看内容,内容和 u 盘必须同时存在,缺一不可。”内容不可以离开这个 u 盘,必须同时存在才能看。
    Admstor
        170
    Admstor  
       2019-01-02 17:39:40 +08:00
    我这个灯泡是标准 E27 接口
    只要是通用的 220V/50hz 电压就可以亮
    但是不是从我的发电厂出来的电就不能亮

    大概是这个意思

    哦对了,成本还要足够低,最好跟普通灯泡一样价格
    sdijeenx
        171
    sdijeenx  
       2019-01-02 17:53:16 +08:00
    @Admstor 要求成本足够低虽然有点小气,但是可以防止竞争对手进来捣乱。
    因为这样的话你的产品的成本+利润 = 竞争对手的产品的成本。
    大不了利润不要了直接成本价卖,先把对手搞破产再说=3=
    cnyang
        172
    cnyang  
       2019-01-02 22:09:06 +08:00
    你给的这些使用环境和条件,别说 20W,就是 20 亿也解决不了
    sdijeenx
        173
    sdijeenx  
       2019-01-02 23:43:30 +08:00
    @h4wklee 百度了你说的新闻,如果把视频锁定在 U 盘里只能看不能复制那我就可以卖更多 U 盘了。
    在手机和 PC 上实现只能看 U 盘中的视频但不能复制。
    (等等这个需求看着好眼熟 OAO )
    sdijeenx
        174
    sdijeenx  
       2019-01-03 00:10:40 +08:00
    以前用光盘发售游戏的一部分原因是光盘容量大、成本低、不容易复制。那个时候传播文件只能用软盘(刻录机&刻录盘买不起也买不到)虽然软盘便宜但是复制一张光盘要 400 多张软盘(当时干过这事,没到一半就放弃了太浪费时间)。结果就是就算你把文件复制出来了也没地方存放(土豪除外,当时硬盘很贵的)想玩游戏看视频只能去商店买光盘,还不能找别人借因为无法复制。当然现在已经不需要这么做了。

    U 盘可读可写可复制,把一个空 U 盘写满文件的成本基本上只有电费。并且传播文件特别容易。
    现在网速比以前快了,大容量硬盘基本上谁都能买得起。其结果就是过去的放盗版套路全都没用了。
    目前的防盗版的方法一般是 DRM 加密+联网授权。(其实也能破解。极端情况是一个人花钱买,所有人免费玩=3=)
    epicnoob
        175
    epicnoob  
       2019-01-03 08:54:21 +08:00
    大家集思广益免费分享,最后做出来还是 LZ 挣钱。
    jaggerkyne
        176
    jaggerkyne  
    OP
       2019-01-03 10:06:29 +08:00
    @Admstor 这个就是爱迪生的电灯泡的原理。

    @sdijeenx 有这样的公司,这就是以本伤人的做法。

    @cnyang 老板已经考虑涨价了。

    @sdijeenx 老板也在怀疑了。

    @sdijeenx 是的,有网络的话,问题是客户目前的情况无法做到。

    @epicnoob 正确的说法是 LZ 的老板挣钱。LZ 只是提出问题,看看如何解决问题而已。从想法到 production ready 还有很长的路要走。
    gar
        177
    gar  
       2019-01-03 11:04:28 +08:00
    我觉得 @CRVV 的方法最能符合你的无缝要求。
    话说往 U 盘上加一个单片机,硬件成本高不高?
    no1xsyzy
        178
    no1xsyzy  
       2019-01-03 12:54:07 +08:00
    @jaggerkyne
    > 每一批的 u 盘的值都不一样
    那不是正好?
    > 换个接口也不太一样
    这个不太明白,详细解释一下

    我的意思是,用 U 盘的 uuid 进行复杂计算(这个计算可以是用一个编译过或者混淆过的程序计算出来的)得到一个密钥。然后(可以是个编译过或者混淆过的程序的行为,只是我用 shell 来表达行为)
    cat file_to_play|decrypt --password $(calculate_password $(get_drive_uuid))|vlc -
    也就是说真实的视频文件只存在于匿名管道中(内存中),直接调用 vlc 也避免了转码
    如果说获取当前所在的驱动器有问题,那么就遍历所有存在的驱动器并用一个文件做个解密测试,成功的作为密钥
    也就是说即使复制了,也只能在这个特定 U 盘插入的时候可以用。
    除了 uuid 也可以在文件系统外放入随机信息

    写入的时候也是根据这个 U 盘的 uuid 加密并写入(似乎不能很方便地批量刻录了?)
    dychenyi
        179
    dychenyi  
       2019-01-03 14:38:44 +08:00
    为什么大家都说 CRVV 的方案靠谱? 我写个软件模拟播放器慢速拷贝不是一样拷走?

    所以归根结底,这东西防不住小人,不如弄个简单点实现。
    jiangbingo
        180
    jiangbingo  
       2019-01-03 16:22:13 +08:00
    嵌入式行业,之前用的是 OMU,存储在线升级用的 bin 文件。貌似项目费用 2W。
    CRVV
        181
    CRVV  
       2019-01-03 18:28:26 +08:00
    @dychenyi

    只考虑防拷贝,不考虑楼主其它的所有奇怪要求,即使是 Sony 这么大的公司,从硬件开始全都自己造,也一样没有实现

    不同的方案只是在预算多少,好不好用,能防多牛的用户几个点之间权衡

    楼主在回复里反复强调过要求用系统原本的播放器,前面有人说这个要求的预算得换成比特币

    我提了一个似乎符合这个要求的方案,看起来也不需要 200000 BTC 来做,那我自认为已经很靠谱了
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2613 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 10:56 · PVG 18:56 · LAX 02:56 · JFK 05:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.