一种验证终端根证书的方法、装置、设备和介质与流程

文档序号:20777687发布日期:2020-05-19 20:56阅读:204来源:国知局
一种验证终端根证书的方法、装置、设备和介质与流程

本发明涉及计算机技术领域,特别涉及一种验证终端根证书的方法、装置、设备和介质。



背景技术:

为了保证终端和服务器之间数据传输的安全可靠,就需要对传输的数据进行加密和隐藏,因此,必须在终端上安装根证书。在现有技术中,终端的根证书都会固化在程序中,在运行程序时无需验证根证书。但是,由于运行程序时没有验证根证书,导致在实际使用时存在有以下缺陷:当根证书被篡改时,将导致整个证书链不可靠,即无法保证根证书的合法性,进而也降低了终端的安全性能。



技术实现要素:

本发明要解决的技术问题,在于提供一种验证终端根证书的方法、装置、设备和介质,解决现有终端存在的当根证书被篡改时,将导致整个证书链不可靠的问题。

第一方面,本发明提供了一种验证终端根证书的方法,所述方法应用于终端,所述方法包括:

将与固化程序中根证书一致的厂商根证书的公钥对应的第一哈希值烧写到otp区域中;

在终端运行程序时,获取厂商根证书,解析厂商根证书获取对应的公钥,使用哈希算法计算出公钥对应的第二哈希值;

从所述otp区域中获取所述第一哈希值,比较所述第一哈希值与所述第二哈希值是否相等,如果相等,则认定固化程序中根证书合法;如果不相等,则认定固化程序中根证书不合法。

进一步地,所述的将与固化程序中根证书一致的厂商根证书的公钥对应的第一哈希值烧写到otp区域中具体包括:

在进入otp烧写界面后,接收服务器端发送的获取终端信息指令,依据所述获取终端信息指令上传终端信息给服务器端,以供服务器端基于所述终端信息下发厂商根证书和密文;

获取服务器端下发的厂商根证书和密文,将厂商根证书与固化程序中根证书进行比对,如果根证书不一致,则认定固化程序中根证书不合法,并结束程序运行流程;如果根证书一致,则解析厂商根证书获取对应的公钥;

使用哈希算法计算出公钥对应的第二哈希值;利用自身的终端信息生成临时解密密钥,使用临时解密密钥对密文进行解密获得明文;获取明文中的第一哈希值,比较第一哈希值与第二哈希值是否相等,如果相等,则将第一哈希值烧写到otp区域中;如果不相等,则不将第一哈希值烧写到otp区域中,并结束程序运行流程。

进一步地,所述的终端信息包括终端序列号以及芯片cpuid;

所述的服务器端基于所述终端信息下发厂商根证书和密文具体为:

服务器端获取终端序列号以及芯片cpuid,将终端序列号与芯片cpuid进行异或运算生成临时加密密钥;同时,从后台获取厂商根证书,解析厂商根证书获取对应的公钥,使用哈希算法计算出公钥对应的第一哈希值;服务器端使用临时加密密钥对第一哈希值进行加密生成密文,并将厂商根证书和密文下发给终端;

所述的利用自身的终端信息生成临时解密密钥具体为:将自身的终端序列号与芯片cpuid进行异或运算生成临时解密密钥。

第二方面,本发明提供了一种验证终端根证书的装置,所述装置为终端,所述装置包括烧写模块、计算模块以及验证模块;

所述烧写模块,用于将与固化程序中根证书一致的厂商根证书的公钥对应的第一哈希值烧写到otp区域中;

所述计算模块,用于在终端运行程序时,获取厂商根证书,解析厂商根证书获取对应的公钥,使用哈希算法计算出公钥对应的第二哈希值;

所述验证模块,用于从所述otp区域中获取所述第一哈希值,比较所述第一哈希值与所述第二哈希值是否相等,如果相等,则认定固化程序中根证书合法;如果不相等,则认定固化程序中根证书不合法。

进一步地,所述烧写模块具体包括信息上传单元、证书比对单元以及烧写单元;

所述信息上传单元,用于在进入otp烧写界面后,接收服务器端发送的获取终端信息指令,依据所述获取终端信息指令上传终端信息给服务器端,以供服务器端基于所述终端信息下发厂商根证书和密文;

所述证书比对单元,用于获取服务器端下发的厂商根证书和密文,将厂商根证书与固化程序中根证书进行比对,如果根证书不一致,则认定固化程序中根证书不合法,并结束程序运行流程;如果根证书一致,则解析厂商根证书获取对应的公钥;

所述烧写单元,用于使用哈希算法计算出公钥对应的第二哈希值;利用自身的终端信息生成临时解密密钥,使用临时解密密钥对密文进行解密获得明文;获取明文中的第一哈希值,比较第一哈希值与第二哈希值是否相等,如果相等,则将第一哈希值烧写到otp区域中;如果不相等,则不将第一哈希值烧写到otp区域中,并结束程序运行流程。

进一步地,所述的终端信息包括终端序列号以及芯片cpuid;

所述的服务器端基于所述终端信息下发厂商根证书和密文具体为:

服务器端获取终端序列号以及芯片cpuid,将终端序列号与芯片cpuid进行异或运算生成临时加密密钥;同时,从后台获取厂商根证书,解析厂商根证书获取对应的公钥,使用哈希算法计算出公钥对应的第一哈希值;服务器端使用临时加密密钥对第一哈希值进行加密生成密文,并将厂商根证书和密文下发给终端;

所述的利用自身的终端信息生成临时解密密钥具体为:将自身的终端序列号与芯片cpuid进行异或运算生成临时解密密钥。

第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。

第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。

本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

由于基于otp烧录后具有不可修改的特性,通过将与固化程序中根证书一致的厂商根证书的公钥对应的第一哈希值烧写到otp区域中,在终端运行程序时,再将厂商根证书的公钥对应的第二哈希值与otp区域中的第一哈希值进行比对验证,能够保证整个证书链是可靠的,进而可提高终端的安全性能。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1为本发明实施例一中一种验证终端根证书的方法的流程图;

图2为本发明实施例二中一种验证终端根证书的装置的结构示意图;

图3为本发明实施例三中电子设备的结构示意图;

图4为本发明实施例四中介质的结构示意图。

具体实施方式

本申请实施例通过提供一种验证终端根证书的方法、装置、设备及介质,解决现有终端存在的当根证书被篡改时,将导致整个证书链不可靠的问题。

本申请实施例中的技术方案,总体思路如下:将与固化程序中根证书一致的厂商根证书的公钥对应的第一哈希值烧写到otp区域中,由于烧写到otp区域中的第一哈希值是无法被篡改的,因此,在终端运行程序时,再将厂商根证书的公钥对应的第二哈希值与otp区域中的第一哈希值进行比对验证,从而能够保证整个证书链是可靠的。

实施例一

本实施例提供一种验证终端根证书的方法,如图1所示,所述方法应用于终端,所述方法包括:

将与固化程序中根证书一致的厂商根证书的公钥pk对应的第一哈希值hash1烧写到otp区域中;

在终端运行程序时,获取厂商根证书,解析厂商根证书获取对应的公钥pk,使用哈希算法计算出公钥pk对应的第二哈希值hash2;

从所述otp区域中获取所述第一哈希值hash1,比较所述第一哈希值hash1与所述第二哈希值hash2是否相等,如果相等,则认定固化程序中根证书合法;如果不相等,则认定固化程序中根证书不合法。

由于基于otp烧录后具有不可修改的特性,通过将与固化程序中根证书一致的厂商根证书的公钥pk对应的第一哈希值hash1烧写到otp区域中,能够有效保证第一哈希值hash1不会被篡改;因此,在终端运行程序时,通过将计算出的厂商根证书的公钥pk对应的第二哈希值hash2与otp区域中的第一哈希值hash1进行比对验证,能够保证整个证书链是可靠的,进而可提高终端的安全性能。

在本实施例中,所述的将与固化程序中根证书一致的厂商根证书的公钥pk对应的第一哈希值hash1烧写到otp区域中具体包括:

在进入otp烧写界面后(在具体实施时,终端需经过管理员授权后才可以进入到otp烧写界面),接收服务器端发送的获取终端信息指令,依据所述获取终端信息指令上传终端信息给服务器端,以供服务器端基于所述终端信息下发厂商根证书和密文eh1;

获取服务器端下发的厂商根证书和密文eh1,将厂商根证书与固化程序中根证书进行比对,如果根证书不一致,则认定固化程序中根证书不合法,并结束程序运行流程;如果根证书一致(说明固化程序中根证书合法),则解析厂商根证书获取对应的公钥pk;

使用哈希算法计算出公钥pk对应的第二哈希值hash2;利用自身的终端信息生成临时解密密钥k1,使用临时解密密钥k1对密文进行解密获得明文;获取明文中的第一哈希值hash1,比较第一哈希值hash1与第二哈希值hash2是否相等,如果相等,则将第一哈希值hash1烧写到otp区域中;如果不相等,则不将第一哈希值hash1烧写到otp区域中,并结束程序运行流程。

在本实施例中,所述的终端信息包括终端序列号以及芯片cpuid;

所述的服务器端基于所述终端信息下发厂商根证书和密文具体为:

服务器端获取终端序列号以及芯片cpuid,将终端序列号与芯片cpuid进行异或运算生成临时加密密钥k2;同时,从后台获取厂商根证书,解析厂商根证书获取对应的公钥pk,使用哈希算法计算出公钥pk对应的第一哈希值hash1;服务器端使用临时加密密钥k2对第一哈希值hash1进行加密生成密文,并将厂商根证书和密文下发给终端;

所述的利用自身的终端信息生成临时解密密钥k1具体为:将自身的终端序列号与芯片cpuid进行异或运算生成临时解密密钥k1。

基于同一发明构思,本申请还提供了与实施例一中的方法对应的装置,详见实施例二。

实施例二

在本实施例中提供了一种验证终端根证书的装置,如图2所示,所述装置为终端,所述装置包括烧写模块、计算模块以及验证模块;

所述烧写模块,用于将与固化程序中根证书一致的厂商根证书的公钥pk对应的第一哈希值hash1烧写到otp区域中;

所述计算模块,用于在终端运行程序时,获取厂商根证书,解析厂商根证书获取对应的公钥pk,使用哈希算法计算出公钥pk对应的第二哈希值hash2;

所述验证模块,用于从所述otp区域中获取所述第一哈希值hash1,比较所述第一哈希值hash1与所述第二哈希值hash2是否相等,如果相等,则认定固化程序中根证书合法;如果不相等,则认定固化程序中根证书不合法。

由于基于otp烧录后具有不可修改的特性,通过将与固化程序中根证书一致的厂商根证书的公钥pk对应的第一哈希值hash1烧写到otp区域中,能够有效保证第一哈希值hash1不会被篡改;因此,在终端运行程序时,通过将计算出的厂商根证书的公钥pk对应的第二哈希值hash2与otp区域中的第一哈希值hash1进行比对验证,能够保证整个证书链是可靠的,进而可提高终端的安全性能。

在本实施例中,所述烧写模块具体包括信息上传单元、证书比对单元以及烧写单元;

所述信息上传单元,用于在进入otp烧写界面后(在具体实施时,终端需经过管理员授权后才可以进入到otp烧写界面),接收服务器端发送的获取终端信息指令,依据所述获取终端信息指令上传终端信息给服务器端,以供服务器端基于所述终端信息下发厂商根证书和密文eh1;

所述证书比对单元,用于获取服务器端下发的厂商根证书和密文eh1,将厂商根证书与固化程序中根证书进行比对,如果根证书不一致,则认定固化程序中根证书不合法,并结束程序运行流程;如果根证书一致(说明固化程序中根证书合法),则解析厂商根证书获取对应的公钥pk;

所述烧写单元,用于使用哈希算法计算出公钥pk对应的第二哈希值hash2;利用自身的终端信息生成临时解密密钥k1,使用临时解密密钥k1对密文进行解密获得明文;获取明文中的第一哈希值hash1,比较第一哈希值hash1与第二哈希值hash2是否相等,如果相等,则将第一哈希值hash1烧写到otp区域中;如果不相等,则不将第一哈希值hash1烧写到otp区域中,并结束程序运行流程。

在本实施例中,所述的终端信息包括终端序列号以及芯片cpuid;

所述的服务器端基于所述终端信息下发厂商根证书和密文具体为:

服务器端获取终端序列号以及芯片cpuid,将终端序列号与芯片cpuid进行异或运算生成临时加密密钥k2;同时,从后台获取厂商根证书,解析厂商根证书获取对应的公钥pk,使用哈希算法计算出公钥pk对应的第一哈希值hash1;服务器端使用临时加密密钥k2对第一哈希值hash1进行加密生成密文,并将厂商根证书和密文下发给终端;

所述的利用自身的终端信息生成临时解密密钥k1具体为:将自身的终端序列号与芯片cpuid进行异或运算生成临时解密密钥k1。

由于本发明实施例二所介绍的装置,为实施本发明实施例一的方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。

基于同一发明构思,本申请提供了实施例一对应的电子设备实施例,详见实施例三。

实施例三

本实施例提供了一种电子设备,如图3所示,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。

由于本实施例所介绍的电子设备为实施本申请实施例一中方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。

基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。

实施例四

本实施例提供一种计算机可读存储介质,如图4所示,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。

本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本申请实施例中提供的技术方案,至少具有如下技术效果或优点:由于基于otp烧录后具有不可修改的特性,通过将与固化程序中根证书一致的厂商根证书的公钥对应的第一哈希值烧写到otp区域中,在终端运行程序时,再将厂商根证书的公钥对应的第二哈希值与otp区域中的第一哈希值进行比对验证,能够保证整个证书链是可靠的,进而可提高终端的安全性能。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1