欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种用于智能终端防伪造的方法和系统独创技术18937字

一种用于智能终端防伪造的方法和系统

2021-02-06 22:33:25

一种用于智能终端防伪造的方法和系统

  技术领域

  本发明属于智网络安全技术领域,特别涉及一种用于智能终端防伪造的方法和系统。

  背景技术

  随着手机、智能家居终端、智能传感器终端等的广泛应用,终端生产厂商面临其他竞争者“山寨”自己产品的风险。由于智能终端是由固件软件和硬件组成,固件软件控制硬件的操作动作,而固件软件容易复制获取,竞争者可以“山寨”终端硬件,在其上运行正常合法的固件软件,那对于终端用户来说可以正常使用,很难发现这是一个“山寨”产品,这将造成合法终端生产厂商市场的流失。因此,如何让合法的固件软件能够识别其所运行的硬件是否合法就成为解决这一问题的关键。

  目前解决这一问题的常用方法,是在终端中写入防伪码或者读取硬件的序列号,通过网络发送给验证服务器进行验证。但这种方法存在两个安全问题:一是防伪码或者硬件序列号容易复制伪造,即从合法硬件终端中读取到合法的防伪码或者序列号,然后写入到“山寨”硬件中,就可以通过验证服务器的验证;二是通过网络的验证过程容易受到中间人攻击,即“山寨”硬件不是直接向合法验证服务器发送验证请求,而是通过中间人发送请求,中间人可以伪造验证通过消息回复给“山寨”硬件,从而通过验证。

  发明内容

  为了解决上述技术问题,本发明提出一种用于智能终端防伪造的方法和系统,保证固件软件与硬件深度绑定,通过本地执行验证过程,而不是通过网络执行验证过程,大大减少可能被攻击的接口,能够抵抗目前基于本地和基于网络的终端伪造方法。

  为实现上述目的,本发明采用以下技术方案:

  一种用于智能终端防伪造的方法,包括以下步骤:

  智能终端在出厂前,通过物理不可克隆函数生成硬件指纹;利用随机数作为密钥,采用分组密码算法对所述硬件指纹进行加密得到分组密码算法的密钥;然后再对所述分组密码算法的密钥进行二次加密得到第一验证码,存储第一验证码,并生成白盒密码算法;然后以分组密码算法的密钥对智能终端固件软件整体打包加密,使智能终端的硬件指纹和固件软件绑定;

  智能终端在出厂后,运行物理不可克隆函数获取硬件指纹;运行白盒密码算法对硬件指纹进行加密得到分组密码算法的密钥,采用分组密码算法对智能终端固件软件进行解密;运行白盒密码算法对硬件指纹进行二次加密得到第二验证码,并判断第二验证码与第一验证码是否相同。

  进一步的,在相同的智能终端上每次运行物理不可克隆函数得到相同的硬件指纹。

  进一步的,所述智能终端在出厂前,通过物理不可克隆函数生成硬件指纹;利用随机数作为密钥,采用分组密码算法对所述硬件指纹进行加密得到分组密码算法的密钥;然后再对所述分组密码算法的密钥进行二次加密得到第一验证码,存储第一验证码,并生成白盒密码算法;然后以分组密码算法的密钥对智能终端固件软件整体打包加密,使智能终端的硬件指纹和固件软件绑定包括以下步骤:

  智能终端在出厂前,通过物理不可克隆函数生成硬件指纹H0;

  利用随机数生成器生成随机数;所述随机数的长度满足分组密码算法E对密钥的要求;

  采用分组密码算法E,以k0为密钥,对H0进行加密,得到H1=E(H0,k0);其中所述H1为固件软件包加密的密钥;

  继续采用分组密码算法E,以k0为密钥,对H1进行加密得到第一验证码H2;其中H2=E(H1,k0);H2为密钥H1的密文;

  继续采用分组密码算法E,以H1为密钥,对智能终端固件软件S进行整体打包加密,得到W=E(S,H1),其中W为S的密文;

  以k0为密钥,分组密码算法E为基础,生成白盒密码算法E';

  将E'、H2、W写入智能终端。

  进一步的,所述智能终端在出厂后,运行物理不可克隆函数获取硬件指纹;运行白盒密码算法对硬件指纹进行加密得到分组密码算法的密钥,采用分组密码算法对智能终端固件软件进行解密;运行白盒密码算法对硬件指纹进行二次加密得到第二验证码,并判断第二验证码与第一验证码是否相同包括以下步骤:

  在智能终端上电启动时,运行物理不可克隆函数,获取智能终端的硬件指纹H0;

  智能终端进入超级管理员模式,运行白盒密码算法E',加密H0,得到H1'=E'(H0);

  继续运行白盒密码算法E',加密H1'得到第二验证码H2';其中H2'=E'(H1'),H2'为H1'的密文;

  运行分组密码算法E,以H1'为密钥,解密固件软件,得到S'=E(W,H1');其中S'为对W解密后得到的明文;

  比较第二验证码H2'和第一验证码H2。

  进一步的,如果第二验证码H2'和第一验证码H2相等,则通过验证,退出超级管理员模式,执行解密后的固件软件;如果第二验证码H2'和第一验证码H2不相等,则未通过验证,智能终端运行终止,自动关机。

  本发明还提出了一种用于智能终端防伪造的系统,包括设置模块和验证模块;

  所述设置模块用于智能终端在出厂前,通过物理不可克隆函数生成硬件指纹;利用随机数作为密钥,采用分组密码算法对所述硬件指纹进行加密得到分组密码算法的密钥;然后再对所述分组密码算法的密钥进行二次加密得到第一验证码,存储第一验证码,并生成白盒密码算法;然后以分组密码算法的密钥对智能终端固件软件整体打包加密,使智能终端的硬件指纹和固件软件绑定;

  所述验证模块用于智能终端在出厂后,运行物理不可克隆函数获取硬件指纹;运行白盒密码算法对硬件指纹进行加密得到分组密码算法的密钥,采用分组密码算法对智能终端固件软件进行解密;运行白盒密码算法对硬件指纹进行二次加密得到第二验证码,并判断第二验证码与第一验证码是否相同。

  进一步的,所述设置模块执行的步骤为:

  智能终端在出厂前,通过物理不可克隆函数生成硬件指纹H0;

  利用随机数生成器生成随机数;所述随机数的长度满足分组密码算法E对密钥的要求;

  采用分组密码算法E,以k0为密钥,对H0进行加密,得到H1=E(H0,k0);其中所述H1为固件软件包加密的密钥;

  继续采用分组密码算法E,以k0为密钥,对H1进行加密得到第一验证码H2;其中H2=E(H1,k0);H2为密钥H1的密文;

  继续采用分组密码算法E,以H1为密钥,对智能终端固件软件S进行整体打包加密,得到W=E(S,H1),其中W为S的密文;

  以k0为密钥,分组密码算法E为基础,生成白盒密码算法E';

  将E'、H2、W写入智能终端。

  进一步的,所述验证模块执行的步骤为:

  在智能终端上电启动时,运行物理不可克隆函数,获取智能终端的硬件指纹H0;

  智能终端进入超级管理员模式,运行白盒密码算法E',加密H0,得到H1'=E'(H0);

  继续运行白盒密码算法E',加密H1'得到第二验证码H2';其中H2'=E'(H1'),H2'为H1'的密文;

  运行分组密码算法E,以H1'为密钥,解密固件软件,得到S'=E(W,H1');其中S'为对W解密后得到的明文;

  比较第二验证码H2'和第一验证码H2。

  进一步的,所述系统还包括判断执行模块;

  所述判断执行模块用于判断第二验证码H2'和第一验证码H2是否相等,如果第二验证码H2'和第一验证码H2相等,则通过验证,退出超级管理员模式,执行解密后的固件软件;如果第二验证码H2'和第一验证码H2不相等,则未通过验证,智能终端运行终止,自动关机。

  发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

  本发明提出了一种用于智能终端防伪造的方法和系统,该方法智能终端在出厂前,通过物理不可克隆函数生成硬件指纹;利用随机数作为密钥,采用分组密码算法对硬件指纹进行加密得到分组密码算法的密钥;然后再对分组密码算法的密钥进行二次加密得到第一验证码,存储第一验证码,并生成白盒密码算法;然后以分组密码算法的密钥对智能终端固件软件整体打包加密,使智能终端的硬件指纹和固件软件绑定。智能终端在出厂后,运行物理不可克隆函数获取硬件指纹;运行白盒密码算法对硬件指纹进行加密得到分组密码算法的密钥,采用分组密码算法对智能终端固件软件进行解密;运行白盒密码算法对硬件指纹进行二次加密得到第二验证码,并判断第二验证码与第一验证码是否相同。基于本发明提出的一种用于智能终端防伪造的方法,还提出了一种用于智能终端防伪造的系统。本发明在终端设备出厂之前将物理不可克隆函数生成的硬件指纹写入终端,并且固件软件的执行依赖于该硬件指纹,使得固件软件与硬件绑定。同时,为保护硬件指纹信息,使用白盒密码算法和CPU特权模式,防止被逆向分析,从而可以抵抗目前的终端伪造方法。利用物理不可克隆函数生成终端设备的硬件指纹,从而保证伪造者无法制造出具有合法硬件指纹的终端设备。同时,由于伪造者可以物理接触合法的终端,从合法终端上提取合法的硬件指纹,因此本发明利用抗白盒攻击的白盒密码算法,并结合CPU的特权模式,可以阻止伪造者利用各种逆向工程提取硬件指纹的加密密钥。并且,终端的固件软件以基于硬件指纹生成的密钥进行加密,可以阻止伪造者即使跳过验证过程,也无法运行固件软件。

  附图说明

  如图1为本发明实施例1提出的智能终端出厂前设置流程图;

  如图2为本发明实施例1提出的智能终端出厂后验证流程图;

  如图3为本发明实施例2提出的一种用于智能终端防伪造的系统示意图。

  为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

  实施例1

  本发明实施例1提出了一种用于智能终端防伪造的方法,包括智能终端出厂前的设置以及出厂后的终端设备启动验证。

  智能终端在出厂前,通过物理不可克隆函数生成硬件指纹;利用随机数作为密钥,采用分组密码算法对硬件指纹进行加密得到分组密码算法的密钥;然后再对分组密码算法的密钥进行二次加密得到第一验证码,存储第一验证码,并生成白盒密码算法;然后以分组密码算法的密钥对智能终端固件软件整体打包加密,使智能终端的硬件指纹和固件软件绑定;

  智能终端在出厂后,运行物理不可克隆函数获取硬件指纹;运行白盒密码算法对硬件指纹进行加密得到分组密码算法的密钥,采用分组密码算法对智能终端固件软件进行解密;运行白盒密码算法对硬件指纹进行二次加密得到第二验证码,并判断第二验证码与第一验证码是否相同。

  如图1给出了本发明实施例1智能终端出厂前的设置流程图。

  在步骤S101中,通过物理不可克隆函数生成硬件指纹H0;这里的物理不可克隆函数,要求在同一设备上每次运行输出的数据是相同的。

  在步骤S102中,利用随机数生成器生成随机数;随机数的长度满足分组密码算法E对密钥的要求;比如:若选择128比特的AES算法,则要求k0的长度为128比特;若选择256比特的AES算法,则要求k0的长度为256比特。本发明保护的范围不局限于实施例。

  在步骤S103中,采用分组密码算法E,以k0为密钥,对H0进行加密,得到H1=E(H0,k0);其中H1为固件软件包加密的密钥。

  在步骤S104中,继续采用分组密码算法E,以k0为密钥,对H1进行加密得到第一验证码H2,其中H2=E(H1,k0);H2为密钥H1的密文;H2将作为密钥H1的密文进行存储,防止直接存储密钥H1。

  在步骤S105中,继续采用分组密码算法E,以H1为密钥,对智能终端固件软件S进行整体打包加密,得到W=E(S,H1),其中W为S的密文。

  在步骤S106中,以k0为密钥,分组密码算法E为基础,生成白盒密码算法E'。

  在步骤S107中,将E'、H2、W写入智能终端。

  智能终端出厂后启动验证阶段,如图2所示为本发明实施例1提出的智能终端出厂后验证流程图。

  在步骤S201中,在智能终端上电启动时,运行物理不可克隆函数,获取智能终端的硬件指纹H0;在同一硬件设备上运行物理不可克隆函数PUF,得到的结果是相同的。

  在步骤S202中,终端CPU进入CPU特权模式。这里的特权模式,是指CPU进入超级管理员模式。在X86/64架构下指System Management Mode模式,在ARM架构下指Supervisor模式,在其他CPU架构下指类似的模式。

  在步骤S203中,运行白盒密码算法E',加密H0,得到H1'=E'(H0);作为密钥,用于解密固件软件S的密文W。

  在步骤S204中,继续运行白盒密码算法E',加密H1'得到第二验证码H2',其中H2'=E'(H1'),其中H2'为H1'的密文。

  在步骤S205中,运行分组密码算法E,以H1'为密钥,解密固件软件,得到S'=E(W,H1');其中S'为对W解密后得到的明文;由于到这一步还不知道得到的H1'是否是正确的H1,所以对W解密后得到的明文以S'表示。

  在步骤S206中,比较第二验证码H2'和第一验证码H2。若两者相等,则通过验证,执行步骤S207,否则,则未通过验证,执行步骤S208。

  在步骤S207中,智能终端CPU退出特权模式,开始执行解密后的固件软件。

  在步骤S208中,智能终端终止运行,自动关机。

  实时例2

  基于本发明提出的一种用于智能终端防伪造的方法,还提出了一种用于智能终端防伪造的系统。如图2给出了一种用于智能终端防伪造的系统示意图;该系统包括:设置模块和验证模块。

  设置模块用于智能终端在出厂前,通过物理不可克隆函数生成硬件指纹;利用随机数作为密钥,采用分组密码算法对硬件指纹进行加密得到分组密码算法的密钥;然后再对分组密码算法的密钥进行二次加密得到第一验证码,存储第一验证码,并生成白盒密码算法;然后以分组密码算法的密钥对智能终端固件软件整体打包加密,使智能终端的硬件指纹和固件软件绑定;

  验证模块用于智能终端在出厂后,运行物理不可克隆函数获取硬件指纹;运行白盒密码算法对硬件指纹进行加密得到分组密码算法的密钥,采用分组密码算法对智能终端固件软件进行解密;运行白盒密码算法对硬件指纹进行二次加密得到第二验证码,并判断第二验证码与第一验证码是否相同。

  其中设置模块的步骤为:

  智能终端在出厂前,通过物理不可克隆函数生成硬件指纹H0;

  利用随机数生成器生成随机数;所述随机数的长度满足分组密码算法E对密钥的要求;

  采用分组密码算法E,以k0为密钥,对H0进行加密,得到H1=E(H0,k0);其中所述H1为固件软件包加密的密钥;

  继续采用分组密码算法E,以k0为密钥,对H1进行加密得到第一验证码H2;其中H2=E(H1,k0);H2为密钥H1的密文;

  继续采用分组密码算法E,以H1为密钥,对智能终端固件软件S进行整体打包加密,得到W=E(S,H1),其中W为S的密文;

  以k0为密钥,分组密码算法E为基础,生成白盒密码算法E';

  将E'、H2、W写入智能终端。

  验证模块执行的步骤为:

  在智能终端上电启动时,运行物理不可克隆函数,获取智能终端的硬件指纹H0;

  智能终端进入超级管理员模式,运行白盒密码算法E',加密H0,得到H1'=E'(H0);

  继续运行白盒密码算法E',加密H1'得到第二验证码H2';其中H2'=E'(H1'),H2'为H1'的密文;

  运行分组密码算法E,以H1'为密钥,解密固件软件,得到S'=E(W,H1');其中S'为对W解密后得到的明文;

  比较第二验证码H2'和第一验证码H2。

  该系统还包括判断执行模块;

  判断执行模块用于判断第二验证码H2'和第一验证码H2是否相等,如果第二验证码H2'和第一验证码H2相等,则通过验证,退出超级管理员模式,执行解密后的固件软件;如果第二验证码H2'和第一验证码H2不相等,则未通过验证,智能终端运行终止,自动关机。

  上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制。对于所属领域的技术人员来说,在上述说明的基础上还可以做出其它不同形式的修改或变形。这里无需也无法对所有的实施方式予以穷举。在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

《一种用于智能终端防伪造的方法和系统.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)