嵌入式设备程序防拷贝的方法[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201710744563.5
(22)申请日 2017.08.25
(71)申请人 济南中维世纪科技有限公司
地址 250000 山东省济南市高新区新泺大
街2008号银荷大厦4-1101号
(72)发明人 路凯 王菊 
(74)专利代理机构 济南泉城专利商标事务所
37218
代理人 张贵宾
(51)Int.Cl.
G06F  21/12(2013.01)
(54)发明名称
嵌入式设备程序防拷贝的方法
(57)摘要
本发明的嵌入式设备程序防拷贝的方法,依
次包括以下步骤:(1).在spi  nor  flash (嵌入式
软件存储介质)上除保存正常业务软件之外,预
留一块空间称作encryptPlace (加密位置);(2).
使用flash的序列号(unique  ID);(3).设计一个
加密算法,编译成一个单独的小程序myEncrypt
(我的加密),生产设备的时候存到encryptPlace
空间中。本发明的有益效果是,使用本技术方案
后,可到达一次运行后即可不借助,其他加密芯
片就可以绑定软件和flash,不可被复制。该方法
不使用加密芯片节省硬件成本,减少烧写加密芯
片和贴加密芯片的生产流程。权利要求书1页  说明书3页  附图3页CN 107590368 A 2018.01.16
C N  107590368
A
1.一种嵌入式设备程序防拷贝的方法,其特征在于:依次包括以下步骤:
(1).在spi  nor  flash (嵌入式软件存储介质)上除保存正常业务软件之外,预留一块空间称作encryptPlace (加密位置),大小只要能保存以下的加密程序和加密数据就足够;
(2).使用flash的序列号(unique  ID ),作为程序和flash芯片的绑定的key (钥匙);
(3).设计一个加密算法,保存在业务软件中,同时编译成一个单独的小程序myEncrypt (我的加密),生产设备的时候存到encryptPlace空间中;
(4). 设备第一次启动的时候,先把encryptPlace中的加密程序myEncrypt读取到内存中,然后读取使用flash的序列号(unique  ID ),然后使用myEncrypt加密生成Key1,然后把 encry ptPla ce擦除,删掉了加密程序myEncry pt ,然后把加密后的数据Key1写入encryptPlace;
(5).业务软件启动,在业务软件中同样读取flash的序列号(unique  ID ),同样使用步骤(3)中的加密算法进行加密生成Key2,然后从encryptPlace读取Key1,然后把Key1和Key2进行比较,如果相同则
为正版软件,能够继续运行,如果Key1读不到,或者Key1和Key2不同,则为盗版软件,要做软件异常处理。
2.根据权利要求1所述的嵌入式设备程序防拷贝的方法,其特征在于:
步骤(5)后面还包括以下步骤:
(6).如果从市场上拿到产品,从flash中读取除整个软件,则软件中包含业务软件和加密数据Key1;把这些信息烧写到新的硬件或者模组中,由于flash的序列号(unique  ID )不同,则在业务软件中产生的Key2和Key1不同,会进行软件异常处理,无法正常启动;如果把encryptPlace擦除,程序启动后由于没有myEncrypt加密程序或Key1,所以encryptPlace空间会始终为空,业务软件无法读取到Kye1,这样也会进行软件异常处理,无法正常使用。
3.根据权利要求1所述的嵌入式设备程序防拷贝的方法,其特征在于:
步骤(1)中,encryptPlace采用64K的空间。
权 利 要 求 书1/1页CN 107590368 A
嵌入式设备程序防拷贝的方法
技术领域
[0001]本发明属于网络设备防拷贝技术领域,涉及一种嵌入式设备程序防拷贝的方法。
背景技术
[0002]随着网络技术和硬件的发展,物联网被踢出并快速发展,作为其基础的嵌入式设备(硬件软件)也快速发展,为智慧城市,智慧家庭做出巨大贡献。以网络摄像机IPC(IP Camera)为例,其他设备也一样。市场上的IPC硬件具有极大的相似性,也有专门生产硬件和模组(硬件加嵌入式软件)的公司(单独的硬件和模组非常便宜)。从市场上买到IPC产品,使用flash(一种存储介质)读写器很容易读出软件部分。然后低价购买和这些相同的硬件或者模组(硬件和模组具有通用性),至少把软件烧进去就可以盗用其他公司的软件直接包装设备出售,甚至做盗版产品,由于ipc中的软件完全一样,连电脑上的客户端都不需要研发可以直接拿来使用。
[0003]现存解决方案以及缺点:为解决这种问题,目前市场上存在一些软件防抄措施:比如加密芯片,借助硬件存储一些加密信息或密钥,在软件中对这些信息做验证,或者把信息解密后作为mac地址(所有网络设备的mac地址必须具有唯一性)。缺点,普通加密芯片可读写,也可以被批量复制,而批量复制引起的mac冲突问题,也通过软件方式修改后正常使用。
发明内容
[0004]本发明为了弥补现有技术的不足,提供了一种结构简单、使用方便的嵌入式设备程序防拷贝的方法。
[0005]本发明是通过如下技术方案实现的:
本发明的嵌入式设备程序防拷贝的方法,其特征在于:依次包括以下步骤:
(1).在spi nor flash(嵌入式软件存储介质)上除保存正常业务软件之外,预留一块空间称作encryptPlace(加密位置),大小只要能保存以下的加密程序和加密数据就足够;
(2).使用flash的序列号(unique ID),作为程序和flash芯片的绑定的key(钥匙);
(3).设计一个加密算法,保存在业务软件中,同时编译成一个单独的小程序myEncrypt (我的加密),生产设备的时候存到encryptPlace空间中;
(4).设备第一次启动的时候,先把encryptPlace中的加密程序myEncrypt读取到内存中,然后读取使用flash的序列号(unique ID),然后使用myEncrypt加密生成Key1,然后把 encry ptPla ce擦除,删掉了加密程序myEncry pt,然后把加密后的数据Key1写入encryptPlace;
(5).业务软件启动,在业务软件中同样读取flash的序列号(unique ID),同样使用步骤(3)中的加
密算法进行加密生成Key2,然后从encryptPlace读取Key1,然后把Key1和Key2进行比较,如果相同则为正版软件,能够继续运行,如果Key1读不到,或者Key1和Key2不同,则为盗版软件,要做软件异常处理。
[0006]步骤(5)后面还包括以下步骤:
(6).如果从市场上拿到产品,从flash中读取除整个软件,则软件中包含业务软件和加密数据Key1;把这些信息烧写到新的硬件或者模组中,由于flash的序列号(unique ID)不同,则在业务软件中产生的Key2和Key1不同,会进行软件异常处理,无法正常启动;如果把encryptPlace擦除,程序启动后由于没有myEncrypt加密程序或Key1,所以encryptPlace空间会始终为空,业务软件无法读取到Kye1,这样也会进行软件异常处理,无法正常使用。[0007]步骤(1)中,encryptPlace采用64K的空间。
[0008]本发明的有益效果是,使用本技术方案后,可到达一次运行后即可不借助,其他加密芯片就可以绑定软件和flash,不可被复制。该方法不使用加密芯片节省硬件成本,减少烧写加密芯片和贴加密芯片的生产流程。一般IPC都会在出厂时候做调焦距,NVR也会做出厂检测,都需要运行设备,所以无需增加生产流程。
附图说明
[0009]图1为本发明的逻辑流程图示意图。图2为Flash空间信息变化图(生产中需要烧写的整个flas件),图3为Flash空间信息变化图(程序运行一次后flash空间存储情况)。
具体实施方式
[0010]附图为本发明的一种具体实施例。
[0011]本发明的嵌入式设备程序防拷贝的方法,依次包括以下步骤:
(1).在spi nor flash(嵌入式软件存储介质)上除保存正常业务软件之外,预留一块空间称作(encryptPlace),大小只要能保存以下的加密程序和加密数据就足够。一般在IPC 或NVR中使用8M或16M的flash,只需保留64K的空间就足够(flash只能按照块读写和擦除,64K为一块)。
[0012](2).使用flash的序列号(unique ID,同一型号flash型号具有唯一性和随机性,所以不同厂家不同型号也很难相同,同时该数据在flash生产时就被写入芯片中,且只可读取,不可被修改),作为程序和flash芯片的绑定的key。
[0013](3).设计一个加密算法,保存在业务软件中,同时编译成一个单独的小程序(myEncrypt)。生产设备的时候存到步骤1中保留的(encryptPlace)中。
[0014](4). 设备第一次启动的时候,先把(encryptPlace)中的加密程序myEncrypt读取到内存(存储介质,具有断电数据丢失的特点)中,然后读取使用flash的序列号(unique ID),然后使用myEncrypt加密生成Key1。然后把 (encryptPlace)擦除(删掉了加密程序myEncrypt),然后把加密后的数据写入(encryptPlace)。
[0015](5).业务软件启动,在业务软件中同样读取flash的序列号(unique ID),同样使用步骤(3)中的加密算法进行加密生成Key2,然后从(encryptPlace)读取Key1,然后把Key1和Key2进行比较,如果相同则为正版软件,可以继续运行,如果Key1读不到或者Key1和Key2不同则为盗版软件,可以做软件异常处理,比如不停的重启设备等。
[0016]步骤(5)后面还可以包括以下步骤:
(6).使用本技术方案后,如果从市场上拿到产品,从flash中读取除整个软件,则软件中包含业务软件和加密数据Key1;把这些信息烧写到新的硬件或者模组中,由于flash的序列号(unique ID)不同,则在业务软件中产生的Key2和Key1不同,会进行软件异常处理,无
法正常启动。如果把(encryptPlace)擦除,程序启动后由于没有myEncrypt加密程序(出厂第一次启动就运行一次后就被删除了换成了数据Key1),所以(encryptPlace)空间会始终为空,业务软件无法读取到Kye1,这样也会进行软件异常处理,无法正常使用。
[0017]使用本技术方案后,可到达一次运行后即可不借助,其他加密芯片就可以绑定软件和flash,不可被复制。
[0018]优点:不使用加密芯片节省硬件成本,减少烧写加密芯片和贴加密芯片的生产流程。
[0019]生产完设备后必须运行一次才可以把软件和flash进行绑定。一般IPC都会在出厂时候做调焦距,NVR也会做出厂检测,都需要运行设备,所以无需增加生产流程。如果有不做出厂检测的厂家则需要增加一个设备第一次启动的流程。
[0020]Flash空间信息变化图:
1.生产中需要烧写的整个flas件(flash存储空间分配,其中unique id为flash芯片出厂写入的固定信息具有唯一性,随机性,和不可修改性)。
[0021]  2.程序运行一次后flash空间存储情况(其中key1是和unique id一一对应的使用专用加密算法加密)。

本文发布于:2024-09-24 11:28:07,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/418533.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:软件   加密   设备   程序   使用   硬件   业务   芯片
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议