CN107590368A - 嵌入式设备程序防拷贝的方法 - Google Patents
嵌入式设备程序防拷贝的方法 Download PDFInfo
- Publication number
- CN107590368A CN107590368A CN201710744563.5A CN201710744563A CN107590368A CN 107590368 A CN107590368 A CN 107590368A CN 201710744563 A CN201710744563 A CN 201710744563A CN 107590368 A CN107590368 A CN 107590368A
- Authority
- CN
- China
- Prior art keywords
- software
- encryptplace
- flash
- key1
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000004519 manufacturing process Methods 0.000 claims abstract description 12
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000005284 basis set Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本发明的嵌入式设备程序防拷贝的方法,依次包括以下步骤:(1).在spi nor flash(嵌入式软件存储介质)上除保存正常业务软件之外,预留一块空间称作encryptPlace(加密位置);(2).使用flash的序列号(unique ID);(3).设计一个加密算法,编译成一个单独的小程序myEncrypt(我的加密),生产设备的时候存到encryptPlace空间中。本发明的有益效果是,使用本技术方案后,可到达一次运行后即可不借助,其他加密芯片就可以绑定软件和flash,不可被复制。该方法不使用加密芯片节省硬件成本,减少烧写加密芯片和贴加密芯片的生产流程。
Description
技术领域
本发明属于网络设备防拷贝技术领域,涉及一种嵌入式设备程序防拷贝的方法。
背景技术
随着网络技术和硬件的发展,物联网被踢出并快速发展,作为其基础的嵌入式设备(硬件软件)也快速发展,为智慧城市,智慧家庭做出巨大贡献。以网络摄像机IPC(IPCamera)为例,其他设备也一样。市场上的IPC硬件具有极大的相似性,也有专门生产硬件和模组(硬件加嵌入式软件)的公司(单独的硬件和模组非常便宜)。从市场上买到IPC产品,使用flash(一种存储介质)读写器很容易读出软件部分。然后低价购买和这些相同的硬件或者模组(硬件和模组具有通用性),至少把软件烧进去就可以盗用其他公司的软件直接包装设备出售,甚至做盗版产品,由于ipc中的软件完全一样,连电脑上的客户端都不需要研发可以直接拿来使用。
现存解决方案以及缺点:为解决这种问题,目前市场上存在一些软件防抄措施:比如加密芯片,借助硬件存储一些加密信息或密钥,在软件中对这些信息做验证,或者把信息解密后作为mac地址(所有网络设备的mac地址必须具有唯一性)。缺点,普通加密芯片可读写,也可以被批量复制,而批量复制引起的mac冲突问题,也通过软件方式修改后正常使用。
发明内容
本发明为了弥补现有技术的不足,提供了一种结构简单、使用方便的嵌入式设备程序防拷贝的方法。
本发明是通过如下技术方案实现的:
本发明的嵌入式设备程序防拷贝的方法,其特征在于:依次包括以下步骤:
(1).在spi nor flash(嵌入式软件存储介质)上除保存正常业务软件之外,预留一块空间称作encryptPlace(加密位置),大小只要能保存以下的加密程序和加密数据就足够;
(2).使用flash的序列号(unique ID),作为程序和flash芯片的绑定的key(钥匙);
(3).设计一个加密算法,保存在业务软件中,同时编译成一个单独的小程序myEncrypt(我的加密),生产设备的时候存到encryptPlace空间中;
(4).设备第一次启动的时候,先把encryptPlace中的加密程序myEncrypt读取到内存中,然后读取使用flash的序列号(unique ID),然后使用myEncrypt加密生成Key1,然后把encryptPlace擦除,删掉了加密程序myEncrypt,然后把加密后的数据Key1写入encryptPlace;
(5).业务软件启动,在业务软件中同样读取flash的序列号(unique ID),同样使用步骤(3)中的加密算法进行加密生成Key2,然后从encryptPlace读取Key1,然后把Key1和Key2进行比较,如果相同则为正版软件,能够继续运行,如果Key1读不到,或者Key1和Key2不同,则为盗版软件,要做软件异常处理。
步骤(5)后面还包括以下步骤:
(6).如果从市场上拿到产品,从flash中读取除整个软件,则软件中包含业务软件和加密数据Key1;把这些信息烧写到新的硬件或者模组中,由于flash的序列号(unique ID)不同,则在业务软件中产生的Key2和Key1不同,会进行软件异常处理,无法正常启动;如果把encryptPlace擦除,程序启动后由于没有myEncrypt加密程序或Key1,所以encryptPlace空间会始终为空,业务软件无法读取到Kye1,这样也会进行软件异常处理,无法正常使用。
步骤(1)中,encryptPlace采用64K的空间。
本发明的有益效果是,使用本技术方案后,可到达一次运行后即可不借助,其他加密芯片就可以绑定软件和flash,不可被复制。该方法不使用加密芯片节省硬件成本,减少烧写加密芯片和贴加密芯片的生产流程。一般IPC都会在出厂时候做调焦距,NVR也会做出厂检测,都需要运行设备,所以无需增加生产流程。
附图说明
图1为本发明的逻辑流程图示意图。图2为Flash空间信息变化图(生产中需要烧写的整个flash文件),图3为Flash空间信息变化图(程序运行一次后flash空间存储情况)。
具体实施方式
附图为本发明的一种具体实施例。
本发明的嵌入式设备程序防拷贝的方法,依次包括以下步骤:
(1).在spi nor flash(嵌入式软件存储介质)上除保存正常业务软件之外,预留一块空间称作(encryptPlace),大小只要能保存以下的加密程序和加密数据就足够。一般在IPC或NVR中使用8M或16M的flash,只需保留64K的空间就足够(flash只能按照块读写和擦除,64K为一块)。
(2).使用flash的序列号(unique ID,同一型号flash型号具有唯一性和随机性,所以不同厂家不同型号也很难相同,同时该数据在flash生产时就被写入芯片中,且只可读取,不可被修改),作为程序和flash芯片的绑定的key。
(3).设计一个加密算法,保存在业务软件中,同时编译成一个单独的小程序(myEncrypt)。生产设备的时候存到步骤1中保留的(encryptPlace)中。
(4). 设备第一次启动的时候,先把(encryptPlace)中的加密程序myEncrypt读取到内存(存储介质,具有断电数据丢失的特点)中,然后读取使用flash的序列号(uniqueID),然后使用myEncrypt加密生成Key1。然后把 (encryptPlace)擦除(删掉了加密程序myEncrypt),然后把加密后的数据写入(encryptPlace)。
(5).业务软件启动,在业务软件中同样读取flash的序列号(unique ID),同样使用步骤(3)中的加密算法进行加密生成Key2,然后从(encryptPlace)读取Key1,然后把Key1和Key2进行比较,如果相同则为正版软件,可以继续运行,如果Key1读不到或者Key1和Key2不同则为盗版软件,可以做软件异常处理,比如不停的重启设备等。
步骤(5)后面还可以包括以下步骤:
(6).使用本技术方案后,如果从市场上拿到产品,从flash中读取除整个软件,则软件中包含业务软件和加密数据Key1;把这些信息烧写到新的硬件或者模组中,由于flash的序列号(unique ID)不同,则在业务软件中产生的Key2和Key1不同,会进行软件异常处理,无法正常启动。如果把(encryptPlace)擦除,程序启动后由于没有myEncrypt加密程序(出厂第一次启动就运行一次后就被删除了换成了数据Key1),所以(encryptPlace)空间会始终为空,业务软件无法读取到Kye1,这样也会进行软件异常处理,无法正常使用。
使用本技术方案后,可到达一次运行后即可不借助,其他加密芯片就可以绑定软件和flash,不可被复制。
优点:不使用加密芯片节省硬件成本,减少烧写加密芯片和贴加密芯片的生产流程。
生产完设备后必须运行一次才可以把软件和flash进行绑定。一般IPC都会在出厂时候做调焦距,NVR也会做出厂检测,都需要运行设备,所以无需增加生产流程。如果有不做出厂检测的厂家则需要增加一个设备第一次启动的流程。
Flash空间信息变化图:
1.生产中需要烧写的整个flash文件(flash存储空间分配,其中unique id为flash芯片出厂写入的固定信息具有唯一性,随机性,和不可修改性)。
2.程序运行一次后flash空间存储情况(其中key1是和unique id一一对应的使用专用加密算法加密)。
Claims (3)
1.一种嵌入式设备程序防拷贝的方法,其特征在于:依次包括以下步骤:
(1).在spi nor flash(嵌入式软件存储介质)上除保存正常业务软件之外,预留一块空间称作encryptPlace(加密位置),大小只要能保存以下的加密程序和加密数据就足够;
(2).使用flash的序列号(unique ID),作为程序和flash芯片的绑定的key(钥匙);
(3).设计一个加密算法,保存在业务软件中,同时编译成一个单独的小程序myEncrypt(我的加密),生产设备的时候存到encryptPlace空间中;
(4). 设备第一次启动的时候,先把encryptPlace中的加密程序myEncrypt读取到内存中,然后读取使用flash的序列号(unique ID),然后使用myEncrypt加密生成Key1,然后把encryptPlace擦除,删掉了加密程序myEncrypt,然后把加密后的数据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的空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710744563.5A CN107590368A (zh) | 2017-08-25 | 2017-08-25 | 嵌入式设备程序防拷贝的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710744563.5A CN107590368A (zh) | 2017-08-25 | 2017-08-25 | 嵌入式设备程序防拷贝的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107590368A true CN107590368A (zh) | 2018-01-16 |
Family
ID=61042995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710744563.5A Pending CN107590368A (zh) | 2017-08-25 | 2017-08-25 | 嵌入式设备程序防拷贝的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107590368A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563925A (zh) * | 2018-03-26 | 2018-09-21 | 广州视源电子科技股份有限公司 | 防止软件拷贝的方法、系统、可读存储介质及电子设备 |
CN108647499A (zh) * | 2018-05-16 | 2018-10-12 | 广州视源电子科技股份有限公司 | 一种防拷贝校验码生成的方法、装置、设备和存储介质 |
CN109902453A (zh) * | 2019-02-22 | 2019-06-18 | 山东欧德利电气设备有限公司 | 一种软件加密方法 |
CN110097299A (zh) * | 2019-05-31 | 2019-08-06 | 济南中维世纪科技有限公司 | 一种降低成本的工厂订单生产系统及其应用 |
CN110909316A (zh) * | 2019-11-14 | 2020-03-24 | 武汉正维电子技术有限公司 | 一种单片机软件的加密保护方法及存储介质 |
CN112241519A (zh) * | 2020-11-05 | 2021-01-19 | 王志平 | 一种软件版权保护的实现方法 |
CN112446055A (zh) * | 2019-08-10 | 2021-03-05 | 丹东东方测控技术股份有限公司 | 一种嵌入式电子电路设备防复制的方法 |
CN112632482A (zh) * | 2020-12-18 | 2021-04-09 | 珠海极海半导体有限公司 | 一种目标应用运行方法、装置和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117106A1 (en) * | 2002-12-12 | 2004-06-17 | Frank Dudel | Chipped engine control unit system having copy protected and selectable multiple control programs |
CN101968834A (zh) * | 2009-07-28 | 2011-02-09 | 上海移为通信技术有限公司 | 电子产品的防抄板加密方法和装置 |
CN106777749A (zh) * | 2016-12-29 | 2017-05-31 | 杭州朔天科技有限公司 | 一种基于嵌入式Nor‑Flash的芯片UID设计方法 |
-
2017
- 2017-08-25 CN CN201710744563.5A patent/CN107590368A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117106A1 (en) * | 2002-12-12 | 2004-06-17 | Frank Dudel | Chipped engine control unit system having copy protected and selectable multiple control programs |
CN101968834A (zh) * | 2009-07-28 | 2011-02-09 | 上海移为通信技术有限公司 | 电子产品的防抄板加密方法和装置 |
CN106777749A (zh) * | 2016-12-29 | 2017-05-31 | 杭州朔天科技有限公司 | 一种基于嵌入式Nor‑Flash的芯片UID设计方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563925A (zh) * | 2018-03-26 | 2018-09-21 | 广州视源电子科技股份有限公司 | 防止软件拷贝的方法、系统、可读存储介质及电子设备 |
CN108563925B (zh) * | 2018-03-26 | 2022-03-15 | 广州视源电子科技股份有限公司 | 防止软件拷贝的方法、系统、可读存储介质及电子设备 |
CN108647499A (zh) * | 2018-05-16 | 2018-10-12 | 广州视源电子科技股份有限公司 | 一种防拷贝校验码生成的方法、装置、设备和存储介质 |
CN109902453A (zh) * | 2019-02-22 | 2019-06-18 | 山东欧德利电气设备有限公司 | 一种软件加密方法 |
CN110097299A (zh) * | 2019-05-31 | 2019-08-06 | 济南中维世纪科技有限公司 | 一种降低成本的工厂订单生产系统及其应用 |
CN112446055A (zh) * | 2019-08-10 | 2021-03-05 | 丹东东方测控技术股份有限公司 | 一种嵌入式电子电路设备防复制的方法 |
CN110909316A (zh) * | 2019-11-14 | 2020-03-24 | 武汉正维电子技术有限公司 | 一种单片机软件的加密保护方法及存储介质 |
CN110909316B (zh) * | 2019-11-14 | 2023-05-09 | 武汉正维电子技术有限公司 | 一种单片机软件的加密保护方法及存储介质 |
CN112241519A (zh) * | 2020-11-05 | 2021-01-19 | 王志平 | 一种软件版权保护的实现方法 |
CN112632482A (zh) * | 2020-12-18 | 2021-04-09 | 珠海极海半导体有限公司 | 一种目标应用运行方法、装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107590368A (zh) | 嵌入式设备程序防拷贝的方法 | |
CN103902878B (zh) | 一种虚拟环境下的License认证方法和装置 | |
CN100464313C (zh) | 一种移动存储装置及存取移动存储装置中加密数据的方法 | |
Skillen et al. | On implementing deniable storage encryption for mobile devices | |
CN101630270B (zh) | 数据处理系统和方法 | |
CN202795383U (zh) | 一种保护数据的设备和系统 | |
US10372628B2 (en) | Cross-domain security in cryptographically partitioned cloud | |
Skillen et al. | Mobiflage: Deniable storage encryptionfor mobile devices | |
CN109726575B (zh) | 一种数据加密方法及装置 | |
CN112865969A (zh) | 一种数据加密卡的加密方法及装置 | |
CN106713334B (zh) | 虚拟存储卷的加密方法、解密方法、访问方法以及装置 | |
CN108491724A (zh) | 一种基于硬件的计算机接口加密装置及方法 | |
CN104104650B (zh) | 数据文件访问方法及终端设备 | |
CN111967065B (zh) | 一种数据保护方法、处理器及电子设备 | |
CN114466028B (zh) | 镜像同步方法、装置、设备及存储介质 | |
CN106845261A (zh) | 一种销毁ssd硬盘数据的方法及装置 | |
CN107766699A (zh) | 一种授权分配方法和装置 | |
CN109582238A (zh) | 一种硬盘绑定、匹配方法、系统及电子设备和存储介质 | |
CN106100829B (zh) | 加密存储的方法及装置 | |
CN107566499A (zh) | 数据同步的方法、装置和系统 | |
CN101149708A (zh) | 移动存储器加密方法和自动运行加密移动存储器方案 | |
CN101751283B (zh) | 虚拟机监视器,虚拟机系统及客户操作系统状态获取方法 | |
WO2009122623A1 (ja) | 情報処理装置 | |
CN110880965A (zh) | 一种外发电子文档加密方法、系统、终端及存储介质 | |
CN102855419A (zh) | 智能终端的数据文件版权保护方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180116 |
|
RJ01 | Rejection of invention patent application after publication |