软件授权的实现方法、系统和存储介质与流程

文档序号:22429614发布日期:2020-10-02 10:09阅读:318来源:国知局
软件授权的实现方法、系统和存储介质与流程

本发明实施例涉及安全技术领域,具体而言,涉及一种软件授权的实现方法、系统和存储介质。



背景技术:

为了提高设备能力的扩展性,引入了主从芯片的技术,产品可以使用多个芯片(一个主控芯片加一个或多个从芯片),通过主从芯片的协同工作,即可实现多种设备能力的扩展。

从芯片上运行软件时,为了保护软件不被非法使用,限制软件功能、使用期限、使用资源等,需要对从芯片上软件程序进行授权,然而,如何进行从芯片上软件程序的安全授权,是亟待解决的问题。



技术实现要素:

本发明实施例提供了一种软件授权的实现方法、系统和存储介质,以至少解决相关技术中如何进行从芯片上软件程序的安全授权的问题。

根据本发明的一个实施例,提供了一种软件授权的实现方法,包括:从芯片向主芯片发送信息获取请求,其中,所述信息获取请求包括:随机码和信息索引,所述信息索引为软件授权信息在所述主芯片上的授权许可文件中的索引;响应于所述信息获取请求,所述主芯片根据所述信息索引在所述授权许可文件中获取所述软件授权信息,基于所述随机码根据密钥生成算法生成第一密钥,采用所述第一密钥对所述软件授权信息进行加密,并将加密后的所述软件授权信息后发送至所述从芯片;所述从芯片基于所述随机码根据所述密钥生成算法生成第二密钥,采用所述第二密钥对加密后的所述软件授权信息进行解密得到所述软件授权信息,并根据所述软件授权信息进行校验。

在至少一个示例性实施例中,所述从芯片向所述主芯片发送所述信息获取请求包括:响应于所述从芯片中的从芯片应用程序发起的业务启动请求,所述从芯片中的从芯片业务库向所述从芯片的从芯片授权库发起软件校验请求;响应于所述软件校验请求,所述从芯片授权库生成所述随机码,并通过所述从芯片应用程序向所述主芯片发送包括所述随机码和所述信息索引的所述信息获取请求。

在至少一个示例性实施例中,通过所述从芯片应用程序向所述主芯片发送包括所述随机码和所述信息索引的所述信息获取请求包括:所述从芯片授权库将所述随机码和所述信息索引作为输入参数调用回调函数,其中,所述回调函数由所述从芯片应用程序设置,用于触发所述从芯片应用程序向所述主芯片发送包括所述随机码和所述信息索引的所述信息获取请求。

在至少一个示例性实施例中,所述主芯片基于所述随机码根据密钥生成算法生成第一密钥包括:所述主芯片的主芯片授权库采用与所述从芯片的从芯片授权库协商的第三密钥对所述随机码进行加密得到所述第一密钥;所述从芯片基于所述随机码根据所述密钥生成算法生成第二密钥包括:所述从芯片的从芯片授权库采用与所述主芯片的主芯片授权库协商的所述第三密钥对所述随机码进行加密得到所述第二密钥。

在至少一个示例性实施例中,在响应于所述信息获取请求,所述主芯片根据所述信息索引在所述授权许可文件中获取所述软件授权信息之前,还包括:所述主芯片的主芯片应用程序将所述授权许可文件发送至所述主芯片的主芯片授权库,其中,所述授权许可文件与目标硬件信息绑定。

在至少一个示例性实施例中,所述主芯片根据所述信息索引在所述授权许可文件中获取所述软件授权信息包括以下至少之一:在所述主芯片的所述主芯片授权库中未查找到所述授权许可文件的情况下,所述主芯片授权库获取的所述软件授权信息为空或为无效值;在所述主芯片的所述主芯片授权库中查找到所述授权许可文件,但所述主芯片授权库所在的所述主芯片的硬件信息与所述目标硬件信息不一致的情况下,所述主芯片授权库读取所述授权许可文件失败,获取的所述软件授权信息为空或为无效值;在所述主芯片的所述主芯片授权库中查找到所述授权许可文件,且所述主芯片授权库所在的所述主芯片的硬件信息与所述目标硬件信息一致的情况下,所述主芯片授权库根据所述信息索引在所述授权许可文件中读取所述软件授权信息。

在至少一个示例性实施例中,所述主芯片授权库中用于读取所述授权许可文件的接口支持多线程,所述多线程分别用于针对来自多个从芯片的信息获取请求分别执行所述授权许可文件的读取。

在至少一个示例性实施例中,所述从芯片采用所述第二密钥对加密后的所述软件授权信息进行解密得到所述软件授权信息包括:所述从芯片的从芯片授权库采用所述第二密钥对加密后的所述软件授权信息进行解密,得到密文形式的软件授权信息;所述从芯片授权库基于预设的解密算法对所述密文形式的软件授权信息进行解密,得到明文形式的软件授权信息。

在至少一个示例性实施例中,所述从芯片根据所述软件授权信息进行校验包括:所述从芯片的从芯片授权库根据所述软件授权信息进行校验,并将校验结果发送给所述从芯片的从芯片业务库;在所述校验结果指示校验成功的情况下,所述从芯片业务库确定软件授权成功,否则确定软件授权失败。

根据本发明的另一个实施例,提供了一种软件授权的实现系统,包括主芯片和从芯片,其中,所述从芯片设置为向所述主芯片发送信息获取请求,其中,所述信息获取请求包括:随机码和信息索引,所述信息索引为软件授权信息在所述主芯片上的授权许可文件中的索引;所述主芯片设置为响应于所述信息获取请求,根据所述信息索引在所述授权许可文件中获取所述软件授权信息,基于所述随机码根据密钥生成算法生成第一密钥,采用所述第一密钥对所述软件授权信息进行加密,并将加密后的所述软件授权信息后发送至所述从芯片;所述从芯片设置为基于所述随机码根据所述密钥生成算法生成第二密钥,采用所述第二密钥对加密后的所述软件授权信息进行解密得到所述软件授权信息,并根据所述软件授权信息进行校验。

根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

通过本发明,由于主从芯片之间基于随机码来对传递的软件授权信息进行加密和解密,从而保证了主从芯片之间的软件授权信息的安全,因为采用了请求响应的方式来提供软件授权信息,通过随机码的使用保证了非法主芯片无法通过重放的方式为从芯片进行软件授权信息传递,另外,因为从芯片通过向主芯片请求获取软件授权信息来进行从芯片上的软件授权,无需在从芯片上进行授权许可文件的存储,所以从芯片可以不配备存储介质,降低了硬件成本。综上,该方案可以很好地解决相关技术中如何进行从芯片上软件程序的安全授权的问题。

附图说明

图1是根据本发明实施例的软件授权的实现方法的流程图;

图2是根据本发明实施例的软件授权的实现系统的结构框图;

图3是根据本发明实施例的软件授权的实现系统的详细结构框图;

图4是根据本发明实施例的软件授权的实现方案的详细流程图。

具体实施方式

相关技术中,从芯片上运行软件时,为了保护软件不被非法使用,限制软件功能、使用期限、使用资源等,需要对从芯片上软件程序进行授权,如何进行从芯片上软件程序的安全授权,是亟待解决的问题,非法的主芯片可以通过重放的手段模拟信令发送给从芯片,从而导致从芯片面临安全风险,另外,从芯片向主芯片请求信息时或主芯片向从芯片传递信息时,存在被第三方截获的风险,从而导致信息泄露,对主从芯片双方产生安全隐患。

基于上述问题,本发明实施例提供了一种软件授权的实现方案,以解决上述问题至少之一。下文中将参考附图并结合实施例来详细说明本发明的实施例。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

本申请实施例中所提供的方法实施例可以在主从芯片应用场景中实现从芯片上软件程序的安全授权。图1是根据本发明实施例的软件授权的实现方法的流程图,如图1所示,该流程包括如下步骤:

步骤s102,从芯片向主芯片发送信息获取请求,其中,所述信息获取请求包括:随机码和信息索引,所述信息索引为软件授权信息(包括用于实现从芯片上的软件授权的授权信息、授权时长等等内容)在所述主芯片上的授权许可文件中的索引;

步骤s104,响应于所述信息获取请求,所述主芯片根据所述信息索引在所述授权许可文件中获取所述软件授权信息,基于所述随机码根据密钥生成算法生成第一密钥,采用所述第一密钥对所述软件授权信息进行加密,并将加密后的所述软件授权信息后发送至所述从芯片;

步骤s106,所述从芯片基于所述随机码根据所述密钥生成算法生成第二密钥,采用所述第二密钥对加密后的所述软件授权信息进行解密得到所述软件授权信息,并根据所述软件授权信息进行校验。

通过上述步骤,由于主从芯片之间基于随机码来对传递的软件授权信息进行加密和解密,从而保证了主从芯片之间的软件授权信息的安全,因为采用了请求响应的方式来提供软件授权信息,通过随机码的使用保证了非法主芯片无法通过重放的方式为从芯片进行软件授权信息传递,另外,因为从芯片通过向主芯片请求获取软件授权信息来进行从芯片上的软件授权,无需在从芯片上进行授权许可文件的存储,所以从芯片可以不配备存储介质,降低了硬件成本。综上,该方案可以很好地解决相关技术中如何进行从芯片上软件程序的安全授权的问题。

步骤s104中,“所述主芯片根据所述信息索引在所述授权许可文件中获取所述软件授权信息”,以及“基于所述随机码根据密钥生成算法生成第一密钥”之间没有特定的执行顺序要求,也就是说,二者的执行过程没有关联或依赖关系,二者的执行顺序可以任意指定。

在至少一个示例性实施例中,步骤s102中所述从芯片向所述主芯片发送所述信息获取请求可以包括:

响应于所述从芯片中的从芯片应用程序发起的业务启动请求,所述从芯片中的从芯片业务库向所述从芯片的从芯片授权库发起软件校验请求;

响应于所述软件校验请求,所述从芯片授权库生成所述随机码,并通过所述从芯片应用程序向所述主芯片发送包括所述随机码和所述信息索引的所述信息获取请求。

在至少一个示例性实施例中,从芯片授权库可以通过回调从芯片应用程序的方式实现将信息获取请求发送到主芯片,例如,通过所述从芯片应用程序向所述主芯片发送包括所述随机码和所述信息索引的所述信息获取请求可以包括:

所述从芯片授权库将所述随机码和所述信息索引作为输入参数调用回调函数,其中,所述回调函数由所述从芯片应用程序设置,用于触发所述从芯片应用程序向所述主芯片发送包括所述随机码和所述信息索引的所述信息获取请求。

在至少一个示例性实施例中,步骤s104中,所述主芯片基于所述随机码根据密钥生成算法生成第一密钥可以包括:所述主芯片的主芯片授权库采用与所述从芯片的从芯片授权库协商的第三密钥对所述随机码进行加密得到所述第一密钥;相应地,步骤s106中,所述从芯片基于所述随机码根据所述密钥生成算法生成第二密钥可以包括:所述从芯片的从芯片授权库采用与所述主芯片的主芯片授权库协商的所述第三密钥对所述随机码进行加密得到所述第二密钥。通过该方式,可以使得加密使用的第一密钥以及解密使用的第二密钥都与一随机码相关,无法通过重放的方式伪造信令。

在至少一个示例性实施例中,在步骤s104响应于所述信息获取请求,所述主芯片根据所述信息索引在所述授权许可文件中获取所述软件授权信息之前,还可以包括:

所述主芯片的主芯片应用程序将所述授权许可文件发送至所述主芯片的主芯片授权库,其中,所述授权许可文件与目标硬件信息绑定。通过该方法让授权许可文件与特定的目标硬件信息绑定,也就是说,所述授权许可文件仅在所述主芯片授权库所在的所述主芯片的硬件信息与所述目标硬件信息一致的情况下允许被读取,可以防止非法主芯片根据该授权许可文件进行从芯片的软件授权,进一步保证了从芯片上软件授权过程的安全性。

在至少一个示例性实施例中,在步骤s104中,所述主芯片根据所述信息索引在所述授权许可文件中获取所述软件授权信息可以包括以下至少之一:

在所述主芯片的所述主芯片授权库中未查找到所述授权许可文件的情况下,所述主芯片授权库获取的所述软件授权信息为空或为无效值,也就是说,当主芯片上没有授权许可文件时,主芯片是无法提供软件授权信息完成从芯片的软件授权的,此时从芯片接收到的软件授权信息为空或无效值,从芯片上的校验失败;

在所述主芯片的所述主芯片授权库中查找到所述授权许可文件,但所述主芯片授权库所在的所述主芯片的硬件信息与所述目标硬件信息不一致的情况下,所述主芯片授权库读取所述授权许可文件失败,获取的所述软件授权信息为空或为无效值,也就是说,当主芯片上有授权许可文件但是该文件并不属于该主芯片时,主芯片也是无法提供软件授权信息完成从芯片的软件授权的,此时从芯片接收到的软件授权信息为空或无效值,从芯片上的校验失败;

在所述主芯片的所述主芯片授权库中查找到所述授权许可文件,且所述主芯片授权库所在的所述主芯片的硬件信息与所述目标硬件信息一致的情况下,所述主芯片授权库根据所述信息索引在所述授权许可文件中读取所述软件授权信息,也就是说,当主芯片上有授权许可文件且该文件属于该主芯片时,表明此时主芯片合法,主芯片能够提供软件授权信息完成从芯片的软件授权的,此时从芯片接收到的软件授权信息为有效值,从芯片可以据此执行校验过程。

在至少一个示例性实施例中,所述主芯片授权库中用于读取所述授权许可文件的接口支持多线程,所述多线程分别用于针对来自多个从芯片的信息获取请求分别执行所述授权许可文件的读取。通过该方式,主芯片可以同时支持多个从芯片的信息获取请求,通过保证多线程读取安全,配合多个从芯片完成软件授权过程。

在至少一个示例性实施例中,步骤s106中,所述从芯片采用所述第二密钥对加密后的所述软件授权信息进行解密得到所述软件授权信息可以包括:

所述从芯片的从芯片授权库采用所述第二密钥对加密后的所述软件授权信息进行解密,得到密文形式的软件授权信息;

所述从芯片授权库基于预设的解密算法对所述密文形式的软件授权信息进行解密,得到明文形式的软件授权信息。

在至少一个示例性实施例中,步骤s106中,所述从芯片根据所述软件授权信息进行校验可以包括:

所述从芯片的从芯片授权库根据所述软件授权信息进行校验,并将校验结果发送给所述从芯片的从芯片业务库;

在所述校验结果指示校验成功的情况下,所述从芯片业务库确定软件授权成功,否则确定软件授权失败。

通过上述过程,在从芯片上完成了基于从主芯片获取的软件授权信息进行校验的过程,最终完成了从芯片上的软件授权。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

在本实施例中还提供了一种软件授权的实现系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“授权库”“业务库”“应用程序”等等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图2是根据本发明实施例的软件授权的实现系统的结构框图,如图2所示,该系统包括主芯片22和从芯片24,其中,

所述从芯片24设置为向所述主芯片22发送信息获取请求,其中,所述信息获取请求包括:随机码和信息索引,所述信息索引为软件授权信息(包括用于实现从芯片24上的软件授权的授权信息、授权时长等等内容)在所述主芯片22上的授权许可文件中的索引;

所述主芯片22设置为响应于所述信息获取请求,根据所述信息索引在所述授权许可文件中获取所述软件授权信息,基于所述随机码根据密钥生成算法生成第一密钥,采用所述第一密钥对所述软件授权信息进行加密,并将加密后的所述软件授权信息后发送至所述从芯片24,在实际应用中,“所述主芯片22根据所述信息索引在所述授权许可文件中获取所述软件授权信息”,以及“基于所述随机码根据密钥生成算法生成第一密钥”之间没有特定的执行顺序要求,也就是说,二者的执行过程没有关联或依赖关系,二者的执行顺序可以任意指定;

所述从芯片24设置为基于所述随机码根据所述密钥生成算法生成第二密钥,采用所述第二密钥对加密后的所述软件授权信息进行解密得到所述软件授权信息,并根据所述软件授权信息进行校验。

通过上述系统,由于主从芯片之间基于随机码来对传递的软件授权信息进行加密和解密,从而保证了主从芯片之间的软件授权信息的安全,因为采用了请求响应的方式来提供软件授权信息,通过随机码的使用保证了非法主芯片无法通过重放的方式为从芯片24进行软件授权信息传递,另外,因为从芯片24通过向主芯片22请求获取软件授权信息来进行从芯片24上的软件授权,无需在从芯片24上进行授权许可文件的存储,所以从芯片24可以不配备存储介质,降低了硬件成本。综上,该方案可以很好地解决相关技术中如何进行从芯片24上软件程序的安全授权的问题。

图3是根据本发明实施例的软件授权的实现系统的详细结构框图,如图3所示,所述主芯片22可以包括主芯片授权库222和主芯片应用程序224,所述从芯片24可以包括从芯片应用程序242、从芯片授权库244和从芯片业务库246。以下详细描述基于该系统架构实现从芯片24上的软件授权的实现方案。

在至少一个示例性实施例中,所述从芯片24向所述主芯片22发送所述信息获取请求可以通过以下方式实现:

所述从芯片24中的从芯片业务库246设置为响应于所述从芯片24中的从芯片应用程序242发起的业务启动请求,向所述从芯片24的从芯片授权库244发起软件校验请求;

所述从芯片授权库244设置为响应于所述软件校验请求,生成所述随机码,并通过所述从芯片应用程序242向所述主芯片22发送包括所述随机码和所述信息索引的所述信息获取请求。

在至少一个示例性实施例中,从芯片授权库244可以通过回调从芯片应用程序242的方式实现将信息获取请求发送到主芯片22,例如,通过所述从芯片应用程序242向所述主芯片22发送包括所述随机码和所述信息索引的所述信息获取请求可以通过以下方式实现:

所述从芯片授权库244设置为将所述随机码和所述信息索引作为输入参数调用回调函数,其中,所述回调函数由所述从芯片应用程序242设置,用于触发所述从芯片应用程序242向所述主芯片22发送包括所述随机码和所述信息索引的所述信息获取请求。

在至少一个示例性实施例中,所述主芯片22基于所述随机码根据密钥生成算法生成第一密钥可以通过以下方式实现:所述主芯片22的主芯片授权库222设置为采用与所述从芯片24的从芯片授权库244协商的第三密钥对所述随机码进行加密得到所述第一密钥;相应地,所述从芯片24基于所述随机码根据所述密钥生成算法生成第二密钥可以通过以下方式实现:所述从芯片24的从芯片授权库244设置为采用与所述主芯片22的主芯片授权库222协商的所述第三密钥对所述随机码进行加密得到所述第二密钥。通过该方式,可以使得加密使用的第一密钥以及解密使用的第二密钥都与一随机码相关,无法通过重放的方式伪造信令。

在至少一个示例性实施例中,为了在主芯片授权库222中配备授权许可文件,所述主芯片22的主芯片应用程序224设置为将所述授权许可文件发送至所述主芯片22的主芯片授权库222,其中,所述授权许可文件与目标硬件信息绑定。通过该方法让授权许可文件与特定的目标硬件信息绑定,也就是说,所述授权许可文件仅在所述主芯片授权库222所在的所述主芯片22的硬件信息与所述目标硬件信息一致的情况下允许被读取,可以防止非法主芯片根据该授权许可文件进行从芯片24的软件授权,进一步保证了从芯片24上软件授权过程的安全性。

在至少一个示例性实施例中,所述主芯片22根据所述信息索引在所述授权许可文件中获取所述软件授权信息通过以下至少之一方式来实现:

在所述主芯片22的所述主芯片授权库222中未查找到所述授权许可文件的情况下,所述主芯片授权库222获取的所述软件授权信息为空或为无效值,也就是说,当主芯片22上没有授权许可文件时,主芯片22是无法提供软件授权信息完成从芯片24的软件授权的,此时从芯片24接收到的软件授权信息为空或无效值,从芯片24上的校验失败;

在所述主芯片22的所述主芯片授权库222中查找到所述授权许可文件,但所述主芯片授权库222所在的所述主芯片22的硬件信息与所述目标硬件信息不一致的情况下,所述主芯片授权库222读取所述授权许可文件失败,获取的所述软件授权信息为空或为无效值,也就是说,当主芯片22上有授权许可文件但是该文件并不属于该主芯片22时,主芯片22也是无法提供软件授权信息完成从芯片24的软件授权的,此时从芯片24接收到的软件授权信息为空或无效值,从芯片24上的校验失败;

在所述主芯片22的所述主芯片授权库222中查找到所述授权许可文件,且所述主芯片授权库222所在的所述主芯片22的硬件信息与所述目标硬件信息一致的情况下,所述主芯片授权库222根据所述信息索引在所述授权许可文件中读取所述软件授权信息,也就是说,当主芯片22上有授权许可文件且该文件属于该主芯片22时,表明此时主芯片22合法,主芯片22能够提供软件授权信息完成从芯片24的软件授权的,此时从芯片24接收到的软件授权信息为有效值,从芯片24可以据此执行校验过程。

在至少一个示例性实施例中,所述主芯片授权库222中用于读取所述授权许可文件的接口支持多线程,所述多线程分别用于针对来自多个从芯片24的信息获取请求分别执行所述授权许可文件的读取。通过该方式,主芯片22可以同时支持多个从芯片24的信息获取请求,通过保证多线程读取安全,配合多个从芯片24完成软件授权过程。

在至少一个示例性实施例中,所述从芯片24采用所述第二密钥对加密后的所述软件授权信息进行解密得到所述软件授权信息可以通过如下方式实现:

所述从芯片24的从芯片授权库244设置为采用所述第二密钥对加密后的所述软件授权信息进行解密,得到密文形式的软件授权信息;

所述从芯片授权库244设置为基于预设的解密算法对所述密文形式的软件授权信息进行解密,得到明文形式的软件授权信息。

在至少一个示例性实施例中,所述从芯片24根据所述软件授权信息进行校验可以通过以下方式实现:

所述从芯片24的从芯片授权库244设置为根据所述软件授权信息进行校验,并将校验结果发送给所述从芯片24的从芯片业务库246;

所述从芯片业务库246设置为在所述校验结果指示校验成功的情况下,确定软件授权成功,否则确定软件授权失败。

通过上述方案,在从芯片24上完成了基于从主芯片22获取的软件授权信息进行校验的过程,最终完成了从芯片24上的软件授权。

需要说明的是,上述各个“授权库”“业务库”“应用程序”是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述主芯片授权库和主芯片应用程序可以存储于主芯片的相同或不同存储介质中,由同一或不同处理器进行读取、执行;上述从芯片授权库、从芯片应用程序和从芯片业务库可以存储于从芯片的相同或不同存储介质中,由同一或不同处理器进行读取、执行。

本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以下步骤的计算机程序:

步骤s1,从芯片向主芯片发送信息获取请求,其中,所述信息获取请求包括:随机码和信息索引,所述信息索引为软件授权信息(包括用于实现从芯片上的软件授权的授权信息、授权时长等等内容)在所述主芯片上的授权许可文件中的索引;

步骤s2,响应于所述信息获取请求,所述主芯片根据所述信息索引在所述授权许可文件中获取所述软件授权信息,基于所述随机码根据密钥生成算法生成第一密钥,采用所述第一密钥对所述软件授权信息进行加密,并将加密后的所述软件授权信息后发送至所述从芯片;

步骤s3,所述从芯片基于所述随机码根据所述密钥生成算法生成第二密钥,采用所述第二密钥对加密后的所述软件授权信息进行解密得到所述软件授权信息,并根据所述软件授权信息进行校验。

在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。

以下通过一具体实施例详细描述本发明实施例的软件授权的实现方案,该方案针对于从芯片没有存储介质或者从芯片较多时,如何进行从芯片软件的授权,从芯片如何得到可信的授权信息,提出了一种安全、高效的从芯片软件授权机制。

图4是根据本发明实施例的软件授权的实现方案的详细流程图,如图4所示,该流程包括以下步骤:

步骤s401,主芯片应用程序调用主芯片授权库初始化接口,传入license内容;

步骤s402,从芯片应用程序调用从芯片授权库接口设置回调函数,该步骤和步骤s401不分先后;

步骤s403,从芯片应用程序调用从芯片业务库接口启动业务;

步骤s404,从芯片业务库调用从芯片授权库触发校验;

步骤s405,从芯片授权库回调步骤s402设置的函数,输入参数为blockid和随机数r,其中blockid为license文件中获取特定块信息的索引,其中r是由从芯片授权库产生,其中license文件为授权许可文件,该文件和主芯片所在设备硬件绑定,就是说该文件只能用于该设备;

步骤s406,从芯片应用程序发送blockid和随机数r到主芯片应用程序,其中的通信协议不限;

步骤s407,主芯片应用程序调用主芯片授权库接口,输出参数为blockid和随机数r;

步骤s408,主芯片授权库根据blockid从license中获取块信息block(为了安全,block本身可以是密文形式);

步骤s409,主芯片授权库对r用密钥k1进行aes加密得到k2,其中k1保存在主芯片授权库代码中;

步骤s410,主芯片授权库对block用密钥k2进行aes加密得到block1,并返回给主芯片应用程序;

步骤s411,主芯片应用程序返回block1给从芯片应用程序;

步骤s412,从芯片应用程序返回block1给从芯片授权库;

步骤s413,从芯片授权库对r用密钥k1进行aes加密得到k2;

步骤s414,从芯片授权库对block1用密钥k2进行aes解密得到block;

步骤s415,从芯片授权库对block(block本身是密文形式)解密得到授权信息明文;

步骤s416,从芯片授权库根据授权信息明文等信息校验授权,并返回校验结果给从芯片业务库;

步骤s417,从芯片业务库判断校验成功正常执行,否则返回错误码。

以下给出上述方案的几种运行示例,用于说明该软件授权方案运行中的各种情况。

示例-a

主芯片读不到license文件,那么,主芯片所返回的授权块信息是无效值或为空,则从芯片校验失败,从芯片业务库异常。

示例-b

主芯片读到license文件,但该文件不属于该设备,主芯片所返回的授权块信息是无效值或为空,则从芯片会校验失败,从芯片业务库异常。

示例-c

主芯片读到合法的license文件,从芯片能获取到对应的授权块信息,可以正常进行校验。

示例-d

如果主芯片应用程序每次返回相同的块信息,从芯片解密出来的授权信息是错误的,因为每次从芯片向主芯片获取块信息,返回的块信息密文使用的密钥都必须随着随机数的不同而变化,所以在这种情况下,主芯片若重放块信息从芯片是无法通过校验的。

示例-e

主芯片读到合法的license文件,有多个从芯片同时工作,每个从芯片都能获取到对应的授权块信息,可以正常进行校验。因此,为了支持多个从芯片的软件授权,主芯片授权库提供的获取块信息接口函数应当是多线程安全的。

综上,以上的软件授权的实现方案具有以下优点:

运行在从芯片上的软件,通过加入随机数向主芯片远程获取授权块信息,授权块信息使用动态密钥加密,使在跨芯片远程调用获取授权信息的过程是加密保护的,传输数据的随机性确保数据无法模拟和伪造,提升了安全性;

主芯片通过多线程技术支持多个从芯片同时请求获取授权块信息,以支持一主多从的部署方式;

从芯片无需提供存放授权许可证的存储介质,而是直接使用主芯片提供的授权块信息即可达到验证授权的目的,降低了硬件成本;

一台主从芯片设备,只需要申请一次license许可文件,而不必给每块芯片申请license,降低了维护成本和易用性。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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