一种用于硬件防抄板的系统及方法
【专利摘要】本发明属于硬件产品的版权保护【技术领域】,尤其涉及一种用于硬件防抄板的系统及方法。所述用于硬件防抄板的系统包括硬件产品主控制器和集成电路芯片,所述硬件产品主控制器用于根据随机数据和存储的密钥计算MAC数据,并将所述随机数据传送给集成电路芯片;所述集成电路芯片用于根据硬件产品主控制器传送的随机数据计算另一MAC数据,并将该MAC数据回传给硬件产品主控制器;所述硬件产品主控制器判断两个MAC数据是否相等,如果两个MAC数据相等,则认证通过,所述硬件产品主控制器继续执行;如果两个MAC数据不相等,则认证失败,所述硬件产品主控制器复位系统或进入死循环。本发明通过双向认证的方式防止克隆复制,大大提高硬件产品的安全等级。
【专利说明】一种用于硬件防抄板的系统及方法
【技术领域】
[0001]本发明属于硬件产品的版权保护【技术领域】,尤其涉及一种用于硬件防抄板的系统及方法。
【背景技术】
[0002]一套硬件产品由硬件和固化在硬件存储器里的软件代码组成。采用反向技术可以很容易克隆出相应的硬件产品,损害原产品生产商、供应商及设计公司的利益,不利于行业的良性发展。现有技术中,常见的抄板、克隆方式有以下几种:
[0003]I)采用板级Flash等非易失性存储器来存放运行代码;这个存储器是固化的,在掉电时也仍能够保存;将原产品的存储器拆下来放到特定的读卡器上,可以读出存放在存储器内部全部数据,将读出的数据烧写入克隆的硬件单板存储器上,完成整个硬件产品的抄板,损害原产品生产商的利益。
[0004]2)对于复杂的系统产品(由多套PCB单板构成,各PCB之间通过PCI/PCIE/SATA/PC104等接口协议连接到主控单板上),某些单板集成度很高,抄板成本很高,而某些单板抄板成本很低,恶意竞争对手可能会采取替换其中某一块或多块PCB的方式损害产品供应商的利益。
[0005]3)很多公司没有自己的生产制造工厂,其生成制造交给第三方代工厂,公司做完产品设计,将PCB原理图和相对应的软件代码交由代工厂生成并烧录程序,设计公司对代工厂的实际生成数量无法严格控制,可能会出现代工厂利用原理图和软件代码多生成产品投放到市场,损害设计公司的利益。
[0006]4)针对快消费类市场,产品功能相对简单,代码量很小,可以存放在主控芯片内的产品,由于软件存放在主控芯片内,没有裸露的端口出现在芯片外,存储器中的代码不能直接读出,不会出现I)中描述的现象而常常会出现3)所描述的现象。
【发明内容】
[0007]本发明提供了一种用于硬件防抄板的系统及方法,旨在解决现有的硬件产品采用反向技术很容易被克隆复制,损害原产品利益且不利于行业发展的技术问题。
[0008]本发明是这样实现的,一种用于硬件防抄板的系统,包括硬件产品主控制器和集成电路芯片,所述硬件产品主控制器用于根据随机数据和存储的密钥计算MAC数据,并将所述随机数据传送给集成电路芯片;所述集成电路芯片用于根据硬件产品主控制器传送的随机数据计算另一 MAC数据,并将该MAC数据回传给硬件产品主控制器;所述硬件产品主控制器判断两个MAC数据是否相等,如果两个MAC数据相等,则认证通过,所述硬件产品主控制器继续执行;如果两个MAC数据不相等,则认证失败,所述硬件产品主控制器复位系统或进入死循环。
[0009]本发明实施例采取的技术方案还包括:所述硬件产品主控制器包括存储模块、AES/SHA算法模块、数据传送模块、数据读取模块和第一数据判断模块;
[0010]所述存储模块用于存储认证所需的原始密钥;
[0011]所述AES/SHA算法模块用于通过硬件产品主控制器产生的随机数据和存储的密钥,调用AES/SHA算法计算MAC数据;
[0012]所述数据传送模块用于将用于计算MAC数据的随机数据或/和MAC数据传送给集成电路芯片;
[0013]所述数据读取模块用于读取集成电路芯片回传的MAC数据或参数数据;
[0014]所述第一数据判断模块用于判断AES/SHA算法模块计算的MAC数据与集成电路芯片回传的MAC数据是否相等,如果AES/SHA算法模块计算的MAC数据与集成电路芯片回传的MAC数据相等,则认证通过,硬件产品主控制器继续执行;如果AES/SHA算法模块计算的MAC数据与集成电路芯片回传的MAC数据不相等,则认证失败,硬件产品主控制器复位系统或进入死循环。
[0015]本发明实施例采取的技术方案还包括:所述集成电路芯片包括存储器、初始化用户ID微指令模块、初始化器件数据微指令模块、初始化密钥微指令模块、主机认证合法性微指令模块、第三数据判断模块;
[0016]所述存储器用于存储硬件产品的序列号、认证所需的原始密钥及系统开机正常工作所需要的参数数据;
[0017]所述初始化用户ID微指令模块、初始化器件数据微指令模块和初始化密钥微指令模块:用于集成电路芯片的初始化;
[0018]所述主机认证合法性微指令模块用于通过硬件产品主控制器传送的随机数据或/和MAC数据启动AES/SHA硬件引擎,计算MAC数据,并将MAC数据回传给硬件产品主控制器;
[0019]所述第三数据判断模块用于判断主机认证合法性微指令模块计算的MAC数据与硬件产品主控制器传送的MAC数据是否匹配,如果主机认证合法性微指令模块计算的MAC数据与硬件产品主控制器传送的MAC数据匹配,则将预存在存储器中的参数数据回传给硬件产品主控制器;如果主机认证合法性微指令模块计算的MAC数据与硬件产品主控制器传送的MAC数据不匹配,则向硬件产品主控制器回传全FF或全O。
[0020]本发明实施例采取的技术方案还包括:所述硬件产品主控制器还包括第二数据判断模块,所述第二数据判断模块用于通过预置的解密算法对集成电路芯片回传的参数数据进行解密处理,恢复出原数据,并判断回传的参数数据是否正确,如果回传的参数数据正确,根据参数数据配置相应开机功能,硬件产品正常工作;如果回传的参数数据不正确,硬件产品主控制器将不能正常开机工作。
[0021]本发明实施例采取的技术方案还包括:所述硬件产品主控制器还包括密钥更新模块,所述集成电路芯片还包括更新密钥微指令模块;
[0022]所述密钥更新模块用于每隔一定时间,根据原始密钥、随机数据及一部分器件数据在硬件产品主控制器内部通过AES/SHA算法计算出一个新密钥,对存储模块中的原始密钥进行更新处理;
[0023]所述更新密钥微指令模块用于每隔一定时间,根据存储器中存储的原始密钥、硬件产品主控制器送过来的随机数据及一部分器件数据计算一个新密钥,对存储器中的原始密钥进行更新处理。
[0024]本发明实施例采取的技术方案还包括:所述集成电路芯片还包括更新器件数据微指令模块和读取器件数据微指令模块;所述更新器件数据微指令模块和读取器件数据微指令模块要求集成电路芯片与硬件产品主控制器认证通过后才能读/写其间数据。
[0025]本发明实施例采取的另一技术方案为:一种用于硬件防抄板的方法,包括:
[0026]步骤a:通过硬件产品主控制器产生随机数据,根据该随机数据和存储的密钥计算MACl数据,并将用于计算MACl的随机数据传送给集成电路芯片;
[0027]步骤b:通过硬件产品主控制器传送的随机数据启动集成电路芯片中的AES/SHA硬件引擎,根据该随机数据计算出MAC2数据,并将MAC2数据或参数数据回传给硬件产品主控制器;
[0028]步骤c:通过硬件产品主控制器读取MAC2数据,并判断MACl数据与MAC2数据是否相等,如果MACl数据与MAC2数据相等,认证通过,硬件产品主控制器继续执行;如果MACl数据与MAC2数据不相等,认证失败,硬件产品主控制器复位系统或进入死循环;或者,通过硬件产品主控制器读取集成电路芯片回传的参数数据,并判断回传的参数数据是否是正确的参数数据,如果回传的参数数据不是正确的参数数据,硬件产品主控制器不能正常开机工作;如果回传的参数数据是正确的参数数据,根据该参数数据配置相应开机功能,硬件产品主控制器继续执行。
[0029]本发明实施例采取的技术方案还包括:在所述步骤b中,如果集成电路芯片回传的是参数数据,所述步骤c中还包括:如果MACl数据与MAC2数据相等,硬件产品主控制器继续产生随机数据,根据该随机数据和存储的密钥,调用AES/SHA算法计算MAC3数据,并将用于计算MAC3数据的随机数据和MAC3数据一起传送至集成电路芯片,集成电路芯片通过该随机数据计算出MAC4数据,并判断MAC4数据与MAC3数据是否匹配,如果MAC4数据与MAC3数据匹配,将预存在集成电路芯片存储器中的参数数据回传给硬件产品主控制器;如果MAC4数据与MAC3数据不匹配,向硬件产品主控制器回传全FF或全O。
[0030]本发明实施例采取的技术方案还包括:在所述步骤c中,所述集成电路芯片回传的参数数据可以是加密数据或非加密数据,如果回传的参数数据是加密数据,硬件产品主控制器根据预置的解密算法对回传数据进行解密处理,并恢复出原数据。
[0031]本发明实施例采取的技术方案还包括:所述步骤c后还包括:每隔一定时间,硬件产品主控制器和集成电路芯片根据约定的密钥更新方式对原始密钥进行更新处理,并根据合法的序列号和更新的密钥再次进行相互认证,如果认证通过,硬件产品正常工作;如果认证不通过,硬件产品主控制器不工作并立即关闭。
[0032]本发明实施例的用于硬件防抄板的系统及方法将硬件产品的序列号、认证所需的原始密钥注册至集成电路芯片,在系统开机时,硬件产品主控制器和集成电路芯片进行相互认证,认证通过后,硬件产品主控制器继续执行;认证不通过,则硬件产品主控制器复位系统或进入死循环;并每隔一定时间根据合法的序列号和与集成电路芯片约定好的密钥更新方式对密钥进行更新处理,并根据更新的密钥再次进行相互认证,当认证通过时,硬件产品正常工作,当认证不通过时,硬件产品主控制器不工作并立即关闭;本发明通过双向认证的方式防止克隆复制,大大提高硬件产品的安全等级。
【专利附图】
【附图说明】
[0033]图1是本发明实施例的用于硬件防抄板的系统的结构示意图;
[0034]图2是本发明第一实施例的用于硬件防抄板的方法的流程图;
[0035]图3是本发明第二实施例的用于硬件防抄板的方法的流程图。
【具体实施方式】
[0036]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0037]请参阅图1,是本发明实施例的用于硬件防抄板的系统的结构示意图。本发明实施例的用于硬件防抄板的系统包括硬件产品主控制器和集成电路芯片,硬件产品主控制器用于根据随机数据和存储的密钥通过认证算法计算MAC (Media Access Control,地址)数据,并将该随机数据传送给集成电路芯片;集成电路芯片用于根据该随机数据通过认证算法计算另一MAC数据,并将该MAC数据回传给硬件产品主控制器;通过硬件产品主控制器判断两个MAC数据是否相等,如果两个MAC数据相等,则认证通过,硬件产品主控制器继续执行;如果两个MAC数据不相等,则认证失败,硬件产品主控制器复位系统或进入死循环;其中,认证算法包括 AES (高级加密标准,Advanced Encrypt1n Standard)或者 SHA (Secure HashAlgorithm,安全散列算法),硬件产品主控制器可为DSP、FPGA、8051、ARM等。
[0038]硬件产品主控制器与集成电路芯片相互认证的认证方式包括两种,可根据具体的应用场景选择认证方式:
[0039]认证方式1:通过硬件产品主控制器产生一个随机数据,根据该随机数据和存储的密钥,调用AES/SHA算法计算一个MACl数据,并将用于计算MACl的随机数据传送给集成电路芯片;通过硬件产品主控制器传送的随机数据启动集成电路芯片中的AES/SHA硬件引擎,调用AES/SHA算法根据该随机数据计算一个MAC2数据,并将MAC2数据回传给硬件产品主控制器;通过硬件产品主控制器读取MAC2数据,并判断MACl数据与MAC2数据是否相等,如果MACl数据与MAC2数据相等,则认证通过,硬件产品主控制器继续执行;如果MACl数据与MAC2数据不相等,则认证失败,硬件产品主控制器复位系统或进入死循环。
[0040]认证方式2:将系统开机正常工作所需要的重要参数数据预存在集成电路芯片存储器中;通过硬件产品主控制器产生一个随机数据,根据该随机数据和存储的密钥,调用AES/SHA算法计算一个MACl数据,并将用于计算MACl的随机数据传送给集成电路芯片;通过硬件产品主控制器传送的随机数据启动集成电路芯片中的AES/SHA硬件引擎,调用AES/SHA算法根据该随机数据计算出一个MAC2数据,并将MAC2数据回传给硬件产品主控制器;通过硬件产品主控制器读取MAC2数据,并判断MACl数据与MAC2数据是否相等,如果MACl数据与MAC2数据不相等,则认证失败,硬件产品主控制器复位系统或进入死循环;如果MACl数据与MAC2数据相等,则认证通过,硬件产品主控制器继续产生一个随机数据,根据该随机数据和存储的密钥,调用AES/SHA算法计算一个MAC3数据,并将用于计算MAC3数据的随机数据和MAC3数据一起传送至集成电路芯片;集成电路芯片通过该随机数据计算出一个MAC4数据,并判断MAC4数据与MAC3数据是否匹配,如果MAC4数据与MAC3数据匹配,则将预存在集成电路芯片存储器中的参数数据回传给硬件产品主控制器;如果MAC4数据与MAC3数据不匹配,则向硬件产品主控制器回传全FF或全O ;硬件产品主控制器读取到集成电路芯片回传的数据后,用预置的解密算法对回传数据进行解密处理,恢复出原数据,并判断回传的数据是否是正确的参数数据,如果回传的数据是正确的参数数据,则根据该参数数据配置相应开机功能,硬件产品正常工作;如果回传的数据不是正确的参数数据,硬件产品主控制器将不能正常开机工作;其中,预存在集成电路芯片存储器中的参数数据可以是加密数据或非加密数据,具体可由硬件产品主控制器根据不同的安全等级进行选择。
[0041]具体地,硬件产品主控制器包括存储模块、AES/SHA算法模块、数据传送模块、数据读取模块、第一数据判断模块、第二数据判断模块和密钥更新模块,其中,存储模块、AES/SHA算法模块和密钥更新模块为软件函数;
[0042]存储模块用于存储认证所需的原始密钥;在本发明实施例中,硬件产品主控制器对密钥的存储机制根据不同的安全等级实现方式不同;对安全等级要求高的场合,硬件产品主控制器对密钥要先加密处理后再保存;
[0043]AES/SHA算法模块用于通过硬件产品主控制器产生的随机数据和存储的密钥计算MAC数据;其中,硬件产品主控制器通过相关软件实现与集成电路芯片相同的AES/SHA算法,该软件以APP的方式运行,在开机时通过运行该软件认证函数APP ;
[0044]数据传送模块用于将用于计算MAC数据的随机数据或/和MAC数据传送给集成电路芯片;
[0045]数据读取模块用于读取集成电路芯片回传的MAC数据或参数数据;
[0046]第一数据判断模块用于判断AES/SHA算法模块计算的MAC数据与集成电路芯片回传的MAC数据是否相等,如果AES/SHA算法模块计算的MAC数据与集成电路芯片回传的MAC数据相等,则认证通过,硬件产品主控制器继续执行;如果AES/SHA算法模块计算的MAC数据与集成电路芯片回传的MAC数据不相等,则认证失败,硬件产品主控制器复位系统或进入死循环;
[0047]第二数据判断模块用于通过预置的解密算法对集成电路芯片回传的参数数据进行解密处理,恢复出原数据,并判断回传的参数数据是否正确,如果回传的参数数据正确,根据参数数据配置相应开机功能,硬件产品正常工作;如果回传的参数数据不正确,硬件产品主控制器将不能正常开机工作;
[0048]密钥更新模块用于每隔一定时间,根据与集成电路芯片约定好的密钥更新方式对存储模块中的原始密钥进行更新处理;密钥更新方式为:根据原始密钥、随机数据及一部分器件数据在硬件产品主控制器内部通过AES/SHA算法计算出一个新密钥;硬件产品主控制器根据合法的序列号以及更新后的密钥与集成电路芯片再次进行相互认证,当认证通过时,硬件产品正常工作;当认证不通过时,硬件产品主控制器不工作并立即关闭;并在认证完成后清除该新密钥,下次使用时再从存储模块中加载并解密后使用;其中,本发明通过每隔一定时间对密钥进行更新并进行再次认证,有效增加安全等级,认证间隔时间可根据安全等级进行设定,安全等级越高,认证间隔时间越短。
[0049]集成电路芯片包括存储器、初始化用户ID微指令模块、初始化器件数据微指令模块、初始化密钥微指令模块、主机认证合法性微指令模块、第三数据判断模块、更新密钥微指令模块、更新器件数据微指令模块和读取器件数据微指令模块;
[0050]存储器用于存储硬件产品的序列号、认证所需的原始密钥及系统开机正常工作所需要的参数等数据;其中,先将硬件产品的序列号、认证所需的原始密钥注册至集成电路芯片存储器中,以取得合法使用权,硬件产品在工作时,每隔一定时间,根据合法的序列号和与集成电路芯片约定好的密钥更新方式更新的密钥进行相互认证;存储器为非易失性存储器,在掉电时存储内容不丢失;预存在存储器中的参数数据可以是加密数据或非加密数据,具体可由硬件产品主控制器根据不同的安全等级进行选择;
[0051]初始化用户ID微指令模块、初始化器件数据微指令模块和初始化密钥微指令模块:用于集成电路芯片的初始化,在初始化完成后集成电路芯片自动屏蔽这三个微指令模块,三个微指令模块被屏蔽后,后续无论是重启还是重新上电都不可再使用,以保证集成电路芯片的安全性;初始化用户ID微指令模块、初始化器件数据微指令模块和初始化密钥微指令模块不是由硬件产品主控制器操作,而是在集成电路芯片焊接到PCB之前通过烧录软件完成,硬件产品主控制器不可再修改,也不需要保留对应的软件APP ;
[0052]主机认证合法性微指令模块用于通过硬件产品主控制器传送的随机数据或/和MAC数据启动AES/SHA硬件引擎,计算MAC数据并将MAC数据回传给硬件产品主控制器;
[0053]第三数据判断模块用于判断主机认证合法性微指令模块计算的MAC数据与硬件产品主控制器传送的MAC数据是否匹配,如果主机认证合法性微指令模块计算的MAC数据与硬件产品主控制器传送的MAC数据匹配,则将预存在存储器中的参数数据回传给硬件产品主控制器;如果主机认证合法性微指令模块计算的MAC数据与硬件产品主控制器传送的MAC数据不匹配,则向硬件产品主控制器回传全FF或全O ;
[0054]更新密钥微指令模块用于每隔一定时间,根据约定好的密钥更新方式对存储器中的原始密钥进行更新处理;密钥更新方式为:根据存储器中存储的原始密钥、硬件产品主控制器送过来的随机数据及一部分器件数据计算一个新密钥;集成电路芯片根据合法的序列号以及更新后的密钥与硬件产品主控制器再次进行相互认证;其中,AES/SHA算法的安全性都集中在密钥上,集成电路芯片存储器中存储的原始密钥不可读,只能通过更新密钥微指令模块进行更新,且更新后的密钥也不可读;
[0055]更新器件数据微指令模块和读取器件数据微指令模块:要求集成电路芯片与硬件产品主控制器认证通过后(集成电路芯片调用AES/SHA引擎计算的MAC数据与硬件产品主控制器传送的MAC数据匹配)才能读/写其间数据。
[0056]请参阅图2,是本发明第一实施例的用于硬件防抄板的方法的流程图。本发明第一实施例的用于硬件防抄板的方法包括以下步骤:
[0057]步骤100:将硬件产品的序列号、认证所需的原始密钥及系统开机正常工作所需要的参数等数据预存在集成电路芯片存储器中;
[0058]步骤110:通过硬件产品主控制器产生一个随机数据,根据该随机数据和存储的密钥,调用AES/SHA算法计算一个MACl数据,并将用于计算MACl的随机数据传送给集成电路芯片;
[0059]步骤120:通过硬件产品主控制器传送的随机数据启动集成电路芯片中的AES/SHA硬件引擎,调用AES/SHA算法根据该随机数据计算出一个MAC2数据,并将MAC2数据回传给硬件产品主控制器;
[0060]步骤130:通过硬件产品主控制器读取MAC2数据,并判断MACl数据与MAC2数据是否相等,如果MACl数据与MAC2数据不相等,执行步骤140 ;如果MACl数据与MAC2数据相等,执彳T步骤150 ;
[0061]步骤140:认证失败,硬件产品主控制器复位系统或进入死循环;
[0062]步骤150:认证通过,硬件产品主控制器继续执行;
[0063]步骤160:每隔一定时间,硬件产品主控制器和集成电路芯片根据约定好的密钥更新方式对原始密钥进行更新处理,并根据合法的序列号和更新的密钥再次进行相互认证,如果认证通过,执行步骤170 ;如果认证不通过,执行步骤180 ;
[0064]在步骤160中,密钥更新方式为:硬件产品主控制器根据原始密钥、随机数据及一部分器件数据在硬件产品主控制器内部通过AES/SHA算法计算出一个新密钥,集成电路芯片根据存储器中存储的原始密钥、硬件产品主控制器送过来的随机数据及一部分器件数据计算一个新密钥。
[0065]步骤170:硬件产品正常工作;
[0066]步骤180:硬件产品主控制器不工作并立即关闭。
[0067]请参阅图3,是本发明第二实施例的用于硬件防抄板的方法的流程图。本发明第二实施例的用于硬件防抄板的方法包括以下步骤:
[0068]步骤200:将硬件产品的序列号、认证所需的原始密钥及系统开机正常工作所需要的参数等数据预存在集成电路芯片存储器中;
[0069]在步骤200中,预存在集成电路芯片存储器中的参数数据可以是加密数据或非加密数据,具体可由硬件产品主控制器根据不同的安全等级进行选择。
[0070]步骤210:通过硬件产品主控制器产生一个随机数据,根据该随机数据和存储的密钥,调用AES/SHA算法计算一个MACl数据,并将用于计算MACl的随机数据传送给集成电路芯片;
[0071]步骤220:通过硬件产品主控制器传送的随机数据启动集成电路芯片中的AES/SHA硬件引擎,调用AES/SHA算法根据该随机数据计算出一个MAC2数据,并将MAC2数据回传给硬件产品主控制器;
[0072]步骤230:通过硬件产品主控制器读取MAC2数据,并判断MACl数据与MAC2数据是否相等,如果MACl数据与MAC2数据不相等,执行步骤240 ;如果如果MACl数据与MAC2数据相等,执彳丁步骤250 ;
[0073]步骤240:硬件产品主控制器复位系统或进入死循环;
[0074]步骤250:硬件产品主控制器继续产生一个随机数据,根据该随机数据和存储的密钥,调用AES/SHA算法计算一个MAC3数据,并将用于计算MAC3数据的随机数据和MAC3数据一起传送至集成电路芯片;
[0075]步骤260:集成电路芯片通过该随机数据计算出一个MAC4数据,并判断MAC4数据与MAC3数据是否匹配,如果MAC4数据与MAC3数据不匹配,执行步骤270 ;如果MAC4数据与MAC3数据匹配,执行步骤280 ;
[0076]步骤270:向硬件产品主控制器回传全FF或全0,并执行步骤290 ;
[0077]步骤280:将预存在集成电路芯片存储器中的参数数据回传给硬件产品主控制器;
[0078]步骤290:通过硬件产品主控制器读取集成电路芯片回传的数据,根据预置的解密算法对回传数据进行解密处理,恢复出原数据,并判断回传的数据是否是正确的参数数据,如果回传的数据不是正确的参数数据,执行步骤300;如果回传的数据是正确的参数数据,执行步骤310 ;
[0079]步骤300:认证失败,硬件产品主控制器不能正常开机工作;
[0080]步骤310:根据该参数数据配置相应开机功能,硬件产品主控制器继续执行;
[0081]步骤320:每隔一定时间,硬件产品主控制器和集成电路芯片根据约定好的密钥更新方式对原始密钥进行更新处理,并根据合法的序列号和更新的密钥再次进行相互认证,如果认证通过,执行步骤330 ;如果认证不通过,执行步骤340 ;
[0082]在步骤320中,密钥更新方式为:硬件产品主控制器根据原始密钥、随机数据及一部分器件数据在硬件产品主控制器内部通过AES/SHA算法计算出一个新密钥,集成电路芯片根据存储器中存储的原始密钥、硬件产品主控制器送过来的随机数据及一部分器件数据计算一个新密钥。
[0083]步骤330:硬件产品正常工作;
[0084]步骤340:硬件产品主控制器不工作并立即关闭。
[0085]本发明实施例的用于硬件防抄板的系统及方法将硬件产品的序列号、认证所需的原始密钥注册至集成电路芯片,在系统开机时,硬件产品主控制器和集成电路芯片进行相互认证,认证通过后,硬件产品主控制器继续执行;认证不通过,则硬件产品主控制器复位系统或进入死循环;并每隔一定时间根据合法的序列号和与集成电路芯片约定好的密钥更新方式对密钥进行更新处理,并根据更新的密钥再次进行相互认证,当认证通过时,硬件产品正常工作,当认证不通过时,硬件产品主控制器不工作并立即关闭;本发明通过双向认证的方式防止克隆复制,大大提高硬件产品的安全等级。
[0086]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种用于硬件防抄板的系统,其特征在于:包括硬件产品主控制器和集成电路芯片,所述硬件产品主控制器用于根据随机数据和存储的密钥计算MAC数据,并将所述随机数据传送给集成电路芯片;所述集成电路芯片用于根据硬件产品主控制器传送的随机数据计算另一MAC数据,并将该MAC数据回传给硬件产品主控制器;所述硬件产品主控制器判断两个MAC数据是否相等,如果两个MAC数据相等,则认证通过,所述硬件产品主控制器继续执行;如果两个MAC数据不相等,则认证失败,所述硬件产品主控制器复位系统或进入死循环。
2.根据权利要求1所述的用于硬件防抄板的系统,其特征在于,所述硬件产品主控制器包括存储模块、AES/SHA算法模块、数据传送模块、数据读取模块和第一数据判断模块; 所述存储模块用于存储认证所需的原始密钥; 所述AES/SHA算法模块用于通过硬件产品主控制器产生的随机数据和存储的密钥,调用AES/SHA算法计算MAC数据; 所述数据传送模块用于将用于计算MAC数据的随机数据或/和MAC数据传送给集成电路芯片; 所述数据读取模块用于读取集成电路芯片回传的MAC数据或参数数据; 所述第一数据判断模块用于判断AES/SHA算法模块计算的MAC数据与集成电路芯片回传的MAC数据是否相等,如果AES/SHA算法模块计算的MAC数据与集成电路芯片回传的MAC数据相等,则认证通过,硬件产品主控制器继续执行;如果AES/SHA算法模块计算的MAC数据与集成电路芯片回传的MAC数据不相等,则认证失败,硬件产品主控制器复位系统或进入死循环。
3.根据权利要求2所述的用于硬件防抄板的系统,其特征在于,所述集成电路芯片包括存储器、初始化用户ID微指令模块、初始化器件数据微指令模块、初始化密钥微指令模块、主机认证合法性微指令模块、第三数据判断模块; 所述存储器用于存储硬件产品的序列号、认证所需的原始密钥及系统开机正常工作所需要的参数数据; 所述初始化用户ID微指令模块、初始化器件数据微指令模块和初始化密钥微指令模块:用于集成电路芯片的初始化; 所述主机认证合法性微指令模块用于通过硬件产品主控制器传送的随机数据或/和MAC数据启动AES/SHA硬件引擎,计算MAC数据,并将MAC数据回传给硬件产品主控制器; 所述第三数据判断模块用于判断主机认证合法性微指令模块计算的MAC数据与硬件产品主控制器传送的MAC数据是否匹配,如果主机认证合法性微指令模块计算的MAC数据与硬件产品主控制器传送的MAC数据匹配,则将预存在存储器中的参数数据回传给硬件产品主控制器;如果主机认证合法性微指令模块计算的MAC数据与硬件产品主控制器传送的MAC数据不匹配,则向硬件产品主控制器回传全FF或全O。
4.根据权利要求3所述的用于硬件防抄板的系统,其特征在于,所述硬件产品主控制器还包括第二数据判断模块,所述第二数据判断模块用于通过预置的解密算法对集成电路芯片回传的参数数据进行解密处理,恢复出原数据,并判断回传的参数数据是否正确,如果回传的参数数据正确,根据参数数据配置相应开机功能,硬件产品正常工作;如果回传的参数数据不正确,硬件产品主控制器将不能正常开机工作。
5.根据权利要求2或3所述的用于硬件防抄板的系统,其特征在于,所述硬件产品主控制器还包括密钥更新模块,所述集成电路芯片还包括更新密钥微指令模块; 所述密钥更新模块用于每隔一定时间,根据原始密钥、随机数据及一部分器件数据在硬件产品主控制器内部通过AES/SHA算法计算出一个新密钥,对存储模块中的原始密钥进行更新处理; 所述更新密钥微指令模块用于每隔一定时间,根据存储器中存储的原始密钥、硬件产品主控制器送过来的随机数据及一部分器件数据计算一个新密钥,对存储器中的原始密钥进行更新处理。
6.根据权利要求3所述的用于硬件防抄板的系统,其特征在于,所述集成电路芯片还包括更新器件数据微指令模块和读取器件数据微指令模块;所述更新器件数据微指令模块和读取器件数据微指令模块要求集成电路芯片与硬件产品主控制器认证通过后才能读/写其间数据。
7.一种用于硬件防抄板的方法,包括: 步骤a:通过硬件产品主控制器产生随机数据,根据该随机数据和存储的密钥计算MACl数据,并将用于计算MACl的随机数据传送给集成电路芯片; 步骤b:通过硬件产品主控制器传送的随机数据启动集成电路芯片中的AES/SHA硬件引擎,根据该随机数据计算出MAC2数据,并将MAC2数据或参数数据回传给硬件产品主控制器; 步骤c:通过硬件产品主控制器读取MAC2数据,并判断MACl数据与MAC2数据是否相等,如果MACl数据与MAC2数据相等,认证通过,硬件产品主控制器继续执行;如果MACl数据与MAC2数据不相等,认证失败,硬件产品主控制器复位系统或进入死循环;或者,通过硬件产品主控制器读取集成电路芯片回传的参数数据,并判断回传的参数数据是否是正确的参数数据,如果回传的参数数据不是正确的参数数据,硬件产品主控制器不能正常开机工作;如果回传的参数数据是正确的参数数据,根据该参数数据配置相应开机功能,硬件产品主控制器继续执行。
8.根据权利要求7所述的用于硬件防抄板的方法,其特征在于:在所述步骤b中,如果集成电路芯片回传的是参数数据,所述步骤c中还包括:如果MACl数据与MAC2数据相等,硬件产品主控制器继续产生随机数据,根据该随机数据和存储的密钥,调用AES/SHA算法计算MAC3数据,并将用于计算MAC3数据的随机数据和MAC3数据一起传送至集成电路芯片,集成电路芯片通过该随机数据计算出MAC4数据,并判断MAC4数据与MAC3数据是否匹配,如果MAC4数据与MAC3数据匹配,将预存在集成电路芯片存储器中的参数数据回传给硬件产品主控制器;如果MAC4数据与MAC3数据不匹配,向硬件产品主控制器回传全FF或全O。
9.根据权利要求8所述的用于硬件防抄板的方法,其特征在于:在所述步骤c中,所述集成电路芯片回传的参数数据可以是加密数据或非加密数据,如果回传的参数数据是加密数据,硬件产品主控制器根据预置的解密算法对回传数据进行解密处理,并恢复出原数据。
10.根据权利要求7所述的用于硬件防抄板的方法,其特征在于:所述步骤c后还包括:每隔一定时间,硬件产品主控制器和集成电路芯片根据约定的密钥更新方式对原始密钥进行更新处理,并根据合法的序列号和更新的密钥再次进行相互认证,如果认证通过,硬件产品正常工作;如果认证不通过,硬件产品主控制器不工作并立即关闭。
【文档编号】G06F21/76GK104463026SQ201410741935
【公开日】2015年3月25日 申请日期:2014年12月8日 优先权日:2014年12月8日
【发明者】龚明杨, 陈毅成, 吴水源, 张明宇 申请人:深圳中科讯联科技有限公司