软件验证方法、软硬件绑定方法及其可编程器件技术

技术编号:22056051 阅读:30 留言:0更新日期:2019-09-07 15:32
提供了一种软件验证方法、软硬件绑定方法及其可编程器件。所述软硬件绑定方法包括:获取需要与待发布软件绑定的计算装置的指定硬件的标识;生成一对公钥和私钥;将关于公钥的数据固化在可编程器件中;通过使用私钥依据数字签名算法对所述指定硬件的标识进行数字签名来生成数字证书文件,并将所述数字证书文件与所述软件一起发布。

Software Verification Method, Software and Hardware Binding Method and Programmable Devices

【技术实现步骤摘要】
软件验证方法、软硬件绑定方法及其可编程器件
本申请总体说来涉及计算装置的软硬件保护的
,更具体地讲,涉及软硬件绑定方法、软件验证方法及其可编程器件。
技术介绍
目前,软硬件厂商利用各种措施来保护自身开发的软件和硬件的知识产权。然而,由于目前的软件可以在不同厂商所开发的设备上运行,基于软件加密的方法很容易被破解,并且在破解之后容易被大量复制,进而给厂商带来巨大的经济损失。因此,现在越来越多的厂商将软件与硬件一起绑定出售,即,将硬件设备和相应的软件绑定在一起,达到配套软件只能在其对应的硬件平台上运行,然而现有的软硬件绑定验证方法,均由运行软件的主机在本地的CPU上执行,例如数字签名算法的验证公钥必须存储在本机上,然而,正是由于验证公钥等数据存储在本机的存储器中,因此存在验证密钥被读取或者密钥生成算法被破解的可能,进而现有的基于非对称密钥加密的软硬件绑定验证方法就会存在被破解的可能,或者,在未来算力大幅提高的情况下,现有的软硬件绑定验证方法也会存在被破解的可能。
技术实现思路
本专利技术的示例性实施例在于提供一种软件验证方法、软硬件绑定方法及其可编程器件,以至少解决现有技术存在的上述问题。根据本专利技术的示例性实施例,提供一种实现软硬件绑定的方法,所述方法可包括:获取需要与待发布软件绑定的计算装置的指定硬件的标识;生成一对公钥和私钥;将关于公钥的数据固化在可编程器件中;通过使用私钥依据数字签名算法对所述指定硬件的标识进行数字签名来生成数字证书文件,并将所述数字证书文件与所述软件一起发布。可选地,所述方法还可包括:将验证数字签名的验证程序固化在所述可编程器件中。可选地,关于公钥的数据可以是所述公钥本身。可选地,所述方法还可包括:在所述可编程器件中固化其物理不可克隆函数PUF对应的PUF电路;使用所述PUF电路在所述可编程器件中生成具有唯一性的PUF密钥;利用PUF密钥对所述公钥进行加密,得到所述的关于公钥的数据。可选地,所述可编程器件可以是所述计算装置的固定的硬件组成部分;或者,所述可编程器件可以以可插拔的方式与所述计算装置结合。可选地,所述可编程器件可以是如下中任一种:PAL、PLA、GAL、FPGA和CPLD。根据本专利技术的示例性实施例,提供一种软件验证方法,所述软件验证方法可包括:获取软件的数字证书文件以及当前计算装置的指定硬件的标识;通过固化在可编程器件中的关于公钥的数据,验证所述获取的指定硬件的标识是否与所述软件的数字证书文件中包含的硬件标识匹配;当验证结果为匹配时,允许在所述计算装置上安装和运行所述软件。可选地,可由固化在所述可编程器件中的验证程序执行所述的验证步骤。可选地,所述软件的数字证书文件可以是通过利用与所述公钥对应的私钥对硬件标识依据数字签名算法进行数字签名而生成的。可选地,关于公钥的数据可以是所述公钥本身。可选地,关于公钥的数据可以是通过使用在所述可编程器件中固化的物理不可克隆函数PUF电路所产生的PUF密钥对所述公钥进行加密而生成的公钥密文。可选地,所述验证的步骤可包括:激活固化在所述可编程器件中的PUF电路来获取PUF密钥;通过使用获取的PUF密钥对固化在所述可编程器件中的关于公钥的数据进行解密来获取所述公钥;通过使用获取的所述公钥依据数字签名算法对所述软件的数字证书文件进行解密得到其中包含的硬件标识,进而验证所述获取的指定硬件的标识是否与所述软件的数字证书文件中包含的硬件标识匹配。可选地,所述可编程器件可以是如下中任一种:可编程阵列逻辑(PAL)、可编程逻辑阵列(PLA)、通用逻辑阵列(GAL)、可编程门阵列(FPGA)和复杂可编程器件(CPLD)。可选地,所述可编程器件可以是所述计算装置的固定的硬件组成部分,或者,所述可编程器件可以以可插拔的方式与所述计算装置结合。根据本专利技术的示例性实施例,提供一种用于软硬件绑定的可编程器件,其中,所述可编程器件中可固化有关于公钥的数据,其中,所述关于公钥的数据可用于验证待安装和运行指定软件的计算装置的相关硬件标识是否与所述指定软件的数字证书文件中包含的硬件标识匹配,其中,所述数字证书可以是使用与所述公钥对应的私钥对与所述软件绑定的计算装置的相关硬件标识进行数字签名获得的。可选地,所述可编程器件中还可固化有执行所述验证的验证程序。可选地,所述可编程器件中还可固化有可编程器件的物理不可克隆函数PUF电路,其中,所述PUF电路可用于生成具有唯一性的PUF密钥,所述关于公钥的数据可以是用所述PUF密钥对公钥进行加密获得的公钥密文。可选地,所述可编程器件可以是待安装和运行指定软件的计算装置的固定的硬件组成部分;或者,所述可编程器件可通过可插拔的方式与待安装和运行指定软件的计算装置结合。所述可编程器件可以是如下中任一种:可编程阵列逻辑PAL、可编程逻辑阵列PLA、通用逻辑阵列GAL、可编程门阵列FPGA和复杂可编程器件CPLD。根据本申请的示例性实施例的软件验证方法、软硬件绑定方法及其可编程器件,可以将关于公钥的数据、验证数据签名的验证程序等固化在可编程器件中,进而提高了绑定后的软硬件的安全性。将在接下来的描述中部分阐述本专利技术总体构思另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本专利技术总体构思的实施而得知。附图说明从下面结合附图对本申请实施例的详细描述中,本申请的这些和/或其他方面和优点将变得更加清楚并更容易理解,其中:图1是示出根据本申请示例性实施例的用于实现软硬件绑定的方法的流程图;图2是示出根据本申请示例性实施例的软件验证方法的流程图;图3是示出根据本申请示例性实施例的具体验证步骤的详细流程图。具体实施方式现在将详细参照本专利技术的实施例,所述实施例的示例在附图中示出。以下将通过参照附图来说明所述实施例,以便解释本专利技术。这里,为了便于更好的理解本申请,首先对本专利技术的总体构思进行说明,本专利技术在软件和计算装置出厂时实现软硬件绑定,即,利用私钥对需要与待发布软件绑定的计算装置中的指定硬件的标识进行数字签名来得到数字证书文件,然后将关于与该私钥对应的公钥的数据固化在可编程器件中,此后,厂商将软件与该数字证书文件一起发布,其中,所述可编程器件可以是计算装置的硬件组成部分或者可以以可插拔的方式与所述计算装置结合。当将该软件安装在当前计算装置上时,本申请的技术方案获取该软件的数字证书文件以及当前计算装置的指定硬件的标识,然后利用固化在可编程器件中的关于公钥的数据对数字证书文件进行解密,此后将数字证书文件中包含的硬件标识与获取的当前计算装置的指定硬件的标识进行验证,如果验证成功,则说明当前计算装置是由厂商绑定于所述软件的计算装置,从而允许在当前计算装置上安装和运行所述软件。下面,首先参照图1描述在软硬件出厂时对软硬件进行绑定的方法。图1是示出根据本申请示例性实施例的用于实现软硬件绑定的方法的流程图。在步骤S101,获取需要与待发布软件绑定的计算装置的指定硬件的标识。具体地讲,计算装置可以是任何能够安装待发布软件的计算装置,例如,台式计算机、膝上型计算机、上网本、自动柜员机、智能电话等。计算装置可包括各种硬件组件,例如,CPU、硬盘、内存、显卡等等,并且这些硬件均具有唯一的硬件标识。然而,所述方法不对被获取标识的计算装置的硬件组件进行具体的限定,本文档来自技高网...

【技术保护点】
1.一种实现软硬件绑定的方法,所述方法包括:获取需要与待发布软件绑定的计算装置的指定硬件的标识;生成一对公钥和私钥;将关于公钥的数据固化在可编程器件中;通过使用私钥依据数字签名算法对所述指定硬件的标识进行数字签名来生成数字证书文件,并将所述数字证书文件与所述软件一起发布。

【技术特征摘要】
1.一种实现软硬件绑定的方法,所述方法包括:获取需要与待发布软件绑定的计算装置的指定硬件的标识;生成一对公钥和私钥;将关于公钥的数据固化在可编程器件中;通过使用私钥依据数字签名算法对所述指定硬件的标识进行数字签名来生成数字证书文件,并将所述数字证书文件与所述软件一起发布。2.如权利要求1所述的方法,其中,所述方法还包括:将验证数字签名的验证程序固化在所述可编程器件中。3.如权利要求1所述的方法,其中,关于公钥的数据是所述公钥本身。4.如权利要求1所述的方法,其中,所述方法还包括:在所述可编程器件中固化其物理不可克隆函数PUF对应的PUF电路;使用所述PUF电路在所述可编程器件中生成具有唯一性的PUF密钥;利用PUF密钥对所述公钥进行加密,得到所述的关于公钥的数据。5.如权利要求1-4中任一项所述的方法,其中,所述可编程器件是所述计算装置的固定的硬件组成部分;或者,所述可编程器件以可插拔的方式与所述计算装置结合。6.如权利要求1-4中任一项所述的方法,其中,所述可编程器件为如下中任一种:可编程阵列逻辑PAL、...

【专利技术属性】
技术研发人员:杨俊李嘉树卢冕季成
申请(专利权)人:第四范式北京技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1