CN105022651A - 一种设备生产过程中的防盗版方法及固件烧写装置 - Google Patents
一种设备生产过程中的防盗版方法及固件烧写装置 Download PDFInfo
- Publication number
- CN105022651A CN105022651A CN201510455682.XA CN201510455682A CN105022651A CN 105022651 A CN105022651 A CN 105022651A CN 201510455682 A CN201510455682 A CN 201510455682A CN 105022651 A CN105022651 A CN 105022651A
- Authority
- CN
- China
- Prior art keywords
- firmware
- equipment
- programming
- party
- app
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000004519 manufacturing process Methods 0.000 title claims abstract description 28
- 238000012795 verification Methods 0.000 claims abstract description 16
- 230000008569 process Effects 0.000 claims abstract description 13
- 238000003860 storage Methods 0.000 claims abstract description 13
- 230000006870 function Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 5
- 230000002093 peripheral effect Effects 0.000 claims description 3
- 238000010200 validation analysis Methods 0.000 abstract 1
- 238000004364 calculation method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本发明涉及一种设备生产过程中的防盗版方法及固件烧写装置。所述方法包括:第一方给第二方提供固件烧写装置及工具包SDK,第二方完成批量烧写固件程序并返回设备ID的列表数据给第一方,第一方将所述设备ID的列表数据与应用程序APP一起打包发布,用户在终端下载APP,首次下载时进行固件程序合法性验证及设备ID的有效性验证。所述烧写装置包括控制模块、加密存储模块、以太网口和USB口。本发明通过在烧写过程中采用第一方提供的固件烧写装置、限定生产数量,防止明文固件代码泄密。通过回执设备ID列表数据验证设备的合法性。通过进行固件程序合法性验证杜绝非法代码在设备中运行,从而防止黑客通过篡改代码绕过ID验证。
Description
技术领域
本发明属于互联网信息安全领域,具体涉及一种电子设备在生产过程中的防盗版方法及固件烧写装置。
背景技术
互联网技术的飞速发展和广泛应用给人们的生活带来了很大的便利,但互联网信息安全问题也变得日益严重。比如,设备制造商委托加工厂生产一批电子设备,在电子设备的批量生成过程中,加工厂或黑客就可以直接地或通过互联网间接地获取程序执行代码,从而生产出盗版的电子设备。
在没有保护措施的情况下,加工厂可以通过芯片的JTAG、SPI接口直接读取设备内部的存储区来获取程序代码,从而轻易地获取制造商提供的固件程序、烧写固件的软件以及制造商提供的电路设计版图。为此,一些制造商开始采用加载器加密下载的方法防止代码被盗,但加工厂仍然可以直接操作这种使用加密方法保护的固件程序,通过解密达到制造盗版设备的目的。
发明内容
针对现有技术中存在的上述问题,本发明提出一种设备生产过程中的防盗版方法及固件烧写装置。设备制造商(以下称第一方)通过采取提供加工厂(以下称第二方)固件烧写装置,限制烧写数量,并在固件下载后和用户首次下载程序时进行当前设备存储区的合法性验证即固件程序合法性验证的方法,防止设备生产过程中的盗版行为发生。
为实现上述目的,本发明采取如下技术方案。
一种设备生产过程中的防盗版方法,包括以下步骤:
步骤1,第一方给第二方提供固件烧写装置及用于烧写的软件开发工具包SDK(SoftwareDevelopment Kit);
步骤2,第二方完成批量烧写固件程序并返回设备ID的列表数据给第一方;
步骤3,第一方将所述设备ID的列表数据与应用程序APP(Application)一起打包发布;
步骤4,第一方将设备销售给用户后,用户在终端下载所述APP,如果是首次下载,进行固件程序合法性验证及设备ID的有效性验证。
进一步地,所述固件烧写装置通过限定烧写数量、加密下载固件程序,使第二方无法通过所述固件烧写装置获取固件程序。
进一步地,步骤2所述烧写固件程序的方法包括以下步骤:
步骤2.1,所述固件烧写装置检查本次烧写的剩余量,如果有剩余,则为设备分配一个新ID,记为InnerID;
步骤2.2,通过通用烧写通道烧写加载器loader;
步骤2.3,所述设备与固件烧写装置之间协商密钥;
步骤2.4,进行固件程序合法性验证;
步骤2.5,从通过验证的设备中获取设备ID;
步骤2.6,通过所述loader的加密接口,使用所述密钥烧写主固件程序;
步骤2.7,通过所述主固件程序向设备内写入InnerID;保存设备ID,用于批量生产完后回执给第一方。
进一步地,步骤2.2所述loader是一个固件程序,用于加密烧写主固件程序,能够禁止非法读固件程序区域操作,防止密钥泄漏,还能禁止使用除loader以外烧写通道的功能,防止在此期间有其它方式替换loader。
进一步地,所述固件程序合法性验证包括以下步骤:APP或SDK发送一组有序随机数到设备,所述设备根据所述随机数获取相应的一组hash(哈希,一类不可逆运算)值,APP或SDK根据随机数组计算得到另一组hash值,APP或SDK对比两组hash值,如果两组hash值相同,设备内的程序合法;否则,设备内的程序非法。
进一步地,所述设备ID的有效性验证方法包括:由APP获取设备ID,APP从自己的设备ID库中查询所述设备ID,如果查到所述设备ID,该设备合法;否则,该设备为盗版设备。
一种所述方法中使用的固件烧写装置,包括:控制模块,加密存储模块,以太网口,USB口。所述控制模块分别与所述加密存储模块、以太网口和USB口连接。
进一步地,所述控制模块包括处理器及外围辅助电路,用于实现固件烧写过程的总体控制、通信控制以及基于TCP协议的网络服务。
进一步地,所述加密存储模块采用进行了硬件加密处理的存储器,用于安全存储生产批次信息、设备ID列表、生产过程中使用的密钥和固件程序文件。
进一步地,所述USB接口用于所述固件烧写装置与被烧写设备之间的通信及传输固件程序。
进一步地,所述以太网口为所述固件烧写装置提供网络服务,第一方通过网络远程配置固件烧写装置。
与现有技术相比,本发明具有以下优点:
(1)本发明所述防盗版方法,通过在烧写过程中采用制造商(第一方)提供的固件烧写装置,并由制造商通过所述固件烧写装置限定生产数量,防止明文固件代码泄密。通过回执设备ID列表数据,验证设备的合法性。
(2)本发明所述防盗版方法,通过进行固件程序合法性验证,杜绝非法代码在设备中运行,从而防止黑客通过篡改代码绕过ID验证。
(3)本发明所述固件烧写装置通过以太网口对固件烧写装置进行远程配置,采用进行过硬件加密处理的存储器,能够有效防止烧写过程中烧写程序被操作人员或黑客盗取,大大提高了烧写过程中的保密性。
附图说明
图1为本发明所述防盗版方法的主流程图;
图2为烧写固件程序的方法流程图;
图3为固件烧写装置的组成框图。
具体实施方式
下面结合附图和实施例对本发明做进一步说明。下面实施例中的具体数值只是为了说明本发明的实现方法,并不形成对本发明保护范围的限制。
本发明提出一种在设备加工过程中的防盗版方法,适合于设备与专有应用程序一同使用的情况。
图1给出了本发明所述方法的主流程图,具体包括以下步骤:
步骤1:第一方给第二方提供固件烧写装置及烧写SDK。
步骤2:第二方批量烧写固件程序。
步骤3:第二方返回设备ID列表数据给第一方。
步骤4:第一方将ID列表与APP一并打包发布。
步骤5:第一方销售设备给用户。
步骤6:终端APP首次下载时对设备进行固件程序的合法性验证。
步骤7:终端APP首次下载时验证设备ID有效性。验证方法如下:由APP获取设备ID,APP从自己的设备ID库中查询这个ID,如果查到这个ID说明该设备为合法生产的,否则为盗版设备。
图2给出了步骤2所述烧写固件程序的方法流程图,具体包括以下步骤:
步骤2.1:第二方流水线上发起烧写请求
步骤2.2:固件烧写装置检查剩余烧写数量,如有剩余则为本次烧写的设备分配一个InnerID。如果没有剩余则返回失败。
步骤2.3:通过通用烧写通道烧写loader程序。
loader用于加密烧写主固件程序,具有禁用非法读固件程序区域的功能,防止密钥泄漏,还具有禁用除loader以外烧写通道的功能,防止在此期间有其余方式替换loader。
步骤2.4:动态协商随机密钥,密钥协商算法采用公共的DH(Diffie–Hellman keyexchange)协议,并使用该密钥保护设备与SDK之间传输的主固件程序。
步骤2.5:进行设备固件程序的合法性验证。
如果没有合法性验证步骤,黑客可以在此之前上传篡改过的loader,从而能够获得伪造的ID,及至获取密钥,从而解密出主固件程序。本步骤的目的是为了防止设备中出现非法程序。设备固件程序的合法性验证具体包括以下步骤:
步骤2.5.1:APP或SDK发送一组有序随机数{R1,R2...Rn}到设备。
步骤2.5.2:所述设备根据该组随机数获取相应的一组hash值。
步骤2.5.3:APP或SDK根据随机数组计算一组hash值。
本发明采取抽查法或全覆盖法进行计算,下面分别介绍这两种方法。
方法1:抽查法
假设存储区是一个完整的FLASH区域,APP随机地向设备请求某几块的hash值。APP得到这些hash值后与自己先前计算出的比对,如果正确则认为合法。
该方法速度快,但准确率受到一定限制,其大小取决于抽检区域覆盖率。
方法2:全覆盖法
假设存储区是一个完整的FLASH区域,分割为两个或多个区域,APP随机构造分割点值,向设备索要分割后的每个区块的hash值。APP得到这些hash值后与先前计算出的hash值比对,如果相同则认为合法。
该方法准确率高,在黑客无法预先得知偏移的情况下无法给出正确的hash值。
由于该方法要进行全存储区运算,故对hash算法性能要求较高,要求采用具有高速大数据块运算功能的算法—fletcher32。对于实际工作频率21~84MHz,fletcher32一秒计算20~80次。如果读取存储区有效率瓶颈,优先使用DMA技术。
步骤2.5.4:APP或SDK对比两组hash值,相同则表示设备内的程序合法;否则非法。
步骤2.6:获取设备ID,所述ID为芯片厂家分配的唯一ID,用于后期APP做验证。
步骤2.7:通过所述loader的加密接口,使用步骤2.4产生的密钥烧写主固件程序。
步骤2.8:启动主固件程序。主固件程序具有禁用非法读固件程序区域的功能。
步骤2.9:通过主固件程序向设备内写入InnerID;保存设备ID,用于批量生产完后回执给第一方。
本发明还提供了一种所述方法中使用的固件烧写装置,其组成如图3所示,包括:控制模块,加密存储模块,以太网口,USB口。所述控制模块分别与所述加密存储模块、以太网口和USB口连接。其中,
所述控制模块主要由处理器及一些外围辅助电路组成,用于实现烧写过程的总体控制、通信控制以及基于TCP协议的网络服务。第一方通过远程网络输入生产批次信息、监控烧写状态及获取烧写结果。烧写结果中记录了设备ID列表。生产批次信息中必须包含本批次的生产数量以及InnerID。第二方流水线通过以太网口通信触发烧写事件,由所述控制模块启动进入烧写流程,如步骤2.2~2.9。当生产批次的数量达到上限时,在所述控制模块作用下生产线停止继续生产。
所述加密存储模块用于安全存储生产批次信息、设备ID列表、生产过程中使用的密钥和固件程序文件。所述存储模块采用一个进行过硬件加密处理的存储器,在非法拆解后无法得到其上存储的明文信息。
所述USB接口用于所述固件烧写装置与被烧写设备之间的通信,主要用于传输固件程序。
所述以太网口为所述固件烧写装置提供网络服务,即提供配置功能和烧写事件通知功能。第一方可以通过网络远程配置固件烧写装置。为解决内网穿透问题,所述固件烧写装置的网络服务采用主动方式,主动回连第一方的服务器。
本发明不限于上述实施方式,本领域技术人员所做出的对上述实施方式任何显而易见的改进或变更,都不会超出本发明的构思和所附权利要求的保护范围。
Claims (10)
1.一种设备生产过程中的防盗版方法,其特征在于包括以下步骤:
步骤1,第一方给第二方提供固件烧写装置及用于烧写的软件开发工具包SDK;
步骤2,第二方完成批量烧写固件程序并返回设备ID的列表数据给第一方;
步骤3,第一方将所述设备ID的列表数据与应用程序APP一起打包发布;
步骤4,第一方将设备销售给用户后,用户在终端下载所述APP,如果是首次下载,进行固件程序合法性验证及设备ID的有效性验证。
2.根据权利要求1所述的设备生产过程中的防盗版方法,其特征在于,所述固件烧写装置通过限定烧写数量、加密下载固件程序,使第二方无法通过所述固件烧写装置获取固件程序。
3.根据权利要求1所述的设备生产过程中的防盗版方法,其特征在于,步骤2所述烧写固件程序的方法包括以下步骤:
步骤2.1,所述固件烧写装置检查本次烧写的剩余量,如果有剩余,则为设备分配一个新ID,记为InnerID;
步骤2.2,通过通用烧写通道烧写加载器loader;
步骤2.3,所述设备与固件烧写装置之间协商密钥;
步骤2.4,进行固件程序合法性验证;
步骤2.5,从通过验证的设备中获取设备ID;
步骤2.6,通过所述loader的加密接口,使用所述密钥烧写主固件程序;
步骤2.7,通过所述主固件程序向设备内写入InnerID;保存设备ID,用于批量生产完后回执给第一方。
4.根据权利要求3所述的设备生产过程中的防盗版方法,其特征在于,步骤2.2所述loader是一个固件程序,用于加密烧写主固件程序,能够禁止非法读固件程序区域操作,防止密钥泄漏,还能禁止使用除loader以外烧写通道的功能,防止在此期间有其它方式替换loader。
5.根据权利要求1所述的设备生产过程中的防盗版方法,其特征在于,所述固件程序合法性验证包括以下步骤:
APP或SDK发送一组有序随机数到设备,所述设备根据所述随机数获取相应的一组hash值,APP或SDK根据随机数组计算得到另一组hash值,APP或SDK对比两组hash值,如果两组hash值相同,设备内的程序合法;否则,设备内的程序非法。
6.根据权利要求1所述的设备生产过程中的防盗版方法,其特征在于,所述设备ID的有效性验证方法包括:由APP获取设备ID,APP从自己的设备ID库中查询所述设备ID,如果查到所述设备ID,该设备合法;否则,该设备为盗版设备。
7.一种权利要求1~6中使用的固件烧写装置,其特征在于包括:控制模块,加密存储模块,以太网口,USB口;所述控制模块分别与所述加密存储模块、以太网口和USB口连接。
8.根据权利要求7所述的固件烧写装置,其特征在于,所述控制模块包括处理器及外围辅助电路,用于实现固件烧写过程的总体控制、通信控制以及基于TCP协议的网络服务。
9.根据权利要求7所述的固件烧写装置,其特征在于,所述加密存储模块采用进行了硬件加密处理的存储器,用于安全存储生产批次信息、设备ID列表、生产过程中使用的密钥和固件程序文件。
10.根据权利要求7所述的固件烧写装置,其特征在于,所述USB接口连接在所述控制模块与被烧写设备之间,用于传输固件程序;所述以太网口为所述固件烧写装置提供网络服务,第一方通过网络远程配置固件烧写装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510455682.XA CN105022651B (zh) | 2015-07-29 | 2015-07-29 | 一种设备生产过程中的防盗版方法及固件烧写装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510455682.XA CN105022651B (zh) | 2015-07-29 | 2015-07-29 | 一种设备生产过程中的防盗版方法及固件烧写装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105022651A true CN105022651A (zh) | 2015-11-04 |
CN105022651B CN105022651B (zh) | 2018-08-28 |
Family
ID=54412641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510455682.XA Expired - Fee Related CN105022651B (zh) | 2015-07-29 | 2015-07-29 | 一种设备生产过程中的防盗版方法及固件烧写装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105022651B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107025406A (zh) * | 2016-02-01 | 2017-08-08 | 广达电脑股份有限公司 | 母板、计算机可读存储装置以及固件验证方法 |
CN107103211A (zh) * | 2016-02-19 | 2017-08-29 | 腾讯科技(深圳)有限公司 | Sdk发送、应用发布、应用运行方法及装置 |
CN109918933A (zh) * | 2019-03-15 | 2019-06-21 | 广州市星翼电子科技有限公司 | 一种通过加密烧录端口来防止烧录数据被盗听盗取的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050132091A1 (en) * | 2003-12-16 | 2005-06-16 | Tetsuya Shibata | Information processing device and control method for the same, control program, computer-readable storage medium |
CN101763886A (zh) * | 2009-12-10 | 2010-06-30 | 上海格州电子有限公司 | 微控制器编程系统及方法 |
CN101860853A (zh) * | 2010-06-09 | 2010-10-13 | 中兴通讯股份有限公司 | 软件升级方法和装置 |
CN204833240U (zh) * | 2015-07-29 | 2015-12-02 | 北京后易科技有限公司 | 一种固件烧写装置 |
-
2015
- 2015-07-29 CN CN201510455682.XA patent/CN105022651B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050132091A1 (en) * | 2003-12-16 | 2005-06-16 | Tetsuya Shibata | Information processing device and control method for the same, control program, computer-readable storage medium |
CN101763886A (zh) * | 2009-12-10 | 2010-06-30 | 上海格州电子有限公司 | 微控制器编程系统及方法 |
CN101860853A (zh) * | 2010-06-09 | 2010-10-13 | 中兴通讯股份有限公司 | 软件升级方法和装置 |
CN204833240U (zh) * | 2015-07-29 | 2015-12-02 | 北京后易科技有限公司 | 一种固件烧写装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107025406A (zh) * | 2016-02-01 | 2017-08-08 | 广达电脑股份有限公司 | 母板、计算机可读存储装置以及固件验证方法 |
CN107025406B (zh) * | 2016-02-01 | 2020-07-14 | 广达电脑股份有限公司 | 母板、计算机可读存储装置以及固件验证方法 |
CN107103211A (zh) * | 2016-02-19 | 2017-08-29 | 腾讯科技(深圳)有限公司 | Sdk发送、应用发布、应用运行方法及装置 |
CN109918933A (zh) * | 2019-03-15 | 2019-06-21 | 广州市星翼电子科技有限公司 | 一种通过加密烧录端口来防止烧录数据被盗听盗取的方法 |
CN109918933B (zh) * | 2019-03-15 | 2023-07-07 | 广州市星翼电子科技有限公司 | 一种通过加密烧录端口来防止烧录数据被盗听盗取的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105022651B (zh) | 2018-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3387813B1 (en) | Mobile device having trusted execution environment | |
US10454674B1 (en) | System, method, and device of authenticated encryption of messages | |
US20170272240A1 (en) | Method, system, and device of provisioning cryptographic data to electronic devices | |
US8984272B2 (en) | Information processing apparatus, secure module, information processing method, and computer product | |
US20150186679A1 (en) | Secure processor system without need for manufacturer and user to know encryption information of each other | |
US8281115B2 (en) | Security method using self-generated encryption key, and security apparatus using the same | |
US20180295512A1 (en) | Enabling a software application to be executed on a mobile station | |
CN111310213A (zh) | 一种业务数据保护方法、装置、设备及可读存储介质 | |
CN110414248B (zh) | 一种调试微处理器的方法及微处理器 | |
US11258600B2 (en) | Secure communication in accessing a network | |
EP1320803A2 (en) | Embedded security device within a nonvolatile memory device | |
CN110069241B (zh) | 伪随机数的获取方法、装置、客户端设备和服务器 | |
CN105022651B (zh) | 一种设备生产过程中的防盗版方法及固件烧写装置 | |
CN110704814B (zh) | 一种防拷贝方法及设备、存储介质 | |
CN110932853B (zh) | 一种基于可信模块的密钥管理装置和密钥管理方法 | |
US20080104396A1 (en) | Authentication Method | |
KR101711024B1 (ko) | 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치 | |
CN111542050B (zh) | 一种基于tee的保障虚拟sim卡远程初始化安全的方法 | |
CN110764797A (zh) | 一种芯片中文件的升级方法、装置、系统及服务器 | |
KR101329789B1 (ko) | 모바일 디바이스의 데이터베이스 암호화 방법 | |
CN108184230B (zh) | 一种软sim实现加密的系统及方法 | |
KR101286767B1 (ko) | 동적 해싱을 이용한 애플리케이션 프로그램 검증 방법 | |
CN107862209B (zh) | 一种文件加解密方法、移动终端和具有存储功能的装置 | |
CN106250727A (zh) | 一种软件保护方法及装置 | |
TW201642621A (zh) | 金鑰保護裝置及金鑰保護方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211229 Address after: 314500 02, No. 4, South Zaoqiang street, No. 1, Nanmen Gongnong Road, Chongfu Town, Tongxiang City, Jiaxing City, Zhejiang Province Patentee after: Jiaxing Zhixu Information Technology Co.,Ltd. Address before: 2b-2258, building 2, dongbeiwangzhongguancun Software Park, Haidian District, Beijing 100094 Patentee before: BEIJING HOUYI TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180828 |
|
CF01 | Termination of patent right due to non-payment of annual fee |