一种软件保护方法、装置、系统、CPU芯片及电子设备制造方法及图纸

技术编号:36400507 阅读:18 留言:0更新日期:2023-01-18 10:07
本发明专利技术实施例公开一种软件保护方法、装置、系统、CPU芯片及电子设备,其中,所述软件保护方法应用于用户设备的CPU芯片中的运算核心,所述方法包括:检测到用户对软件使用的触发操作后,指示安全处理器SP进行用户设备的身份识别,其中所述身份识别包括:利用签名证书中的公钥对用户证书进行验签,以及,利用CPU芯片身份密钥派生的私钥对用户证书中的公钥进行校验;如果SP识别用户设备身份成功,则允许用户使用软件。本发明专利技术实施例提供的技术方案可适用于对计算机软件进行安全防御的场景,能够降低软件保护设计的成本,增强其安全性。增强其安全性。增强其安全性。

【技术实现步骤摘要】
一种软件保护方法、装置、系统、CPU芯片及电子设备


[0001]本专利技术涉及软件安全
,尤其涉及一种软件保护方法、装置、系统、CPU芯片及电子设备。

技术介绍

[0002]目前,计算机技术高速发展,计算机软件种类及其功能也越来越丰富,能够满足现代人生活和工作中的各种需求。然而,与此同时,计算机软件安全性问题也日益凸显。计算机软件开发商通常会面对对于软件本身和软件版权的威胁,比如:软件被反编译、软件授权被非法拷贝等。对于所述威胁,目前主流的防御方案有如下两种实现方式:
[0003]一、基于软件的保护方式,此方式主要通过保存在软件内部的密钥对证书或注册码进行验证,但是容易被破解;
[0004]二、基于硬件的保护方式,此方式下的保护设备通常被称作加密狗或加密锁,是一种插在计算机USB(Universal Serial Bus,通用串行总线)口或并口上的软硬件结合的加密产品,通过在软件执行过程中和加密狗交换数据来实现加密。
[0005]目前,常用的硬件保护方式,如图1所示。加密狗插在计算机的USB口,通过USB串行总线与CPU(central processing unit,中央处理器)相连,软件运行过程中与加密狗交换数据实现软件的加解密功能。然而,此种保护方式通常存在以下缺点:成本上,外接加密狗需要使用额外的硬件,增加了硬件成本;安全性上,加密狗完全通过串行总线与CPU相连,增加了暴露面,容易受总线类物理攻击。

技术实现思路

[0006]有鉴于此,本专利技术实施例提供一种软件保护方法、装置、系统、CPU芯片及电子设备,以降低软件保护设计的成本,增强其安全性。
[0007]第一方面,本专利技术实施例提供一种软件保护方法,应用于用户设备的中央处理器CPU芯片中的运算核心,所述方法包括:
[0008]检测到用户对软件使用的触发操作后,指示安全处理器SP进行用户设备的身份识别,其中所述身份识别包括:利用签名证书中的公钥对用户证书进行验签,以及,利用CPU芯片身份密钥派生的私钥对用户证书中的公钥进行校验;
[0009]如果SP识别用户设备身份成功,则允许用户使用软件。
[0010]可选的,所述软件保护方法还包括:
[0011]向证书管理服务器发送包含用户设备的CPU芯片标识的证书请求;
[0012]接收证书管理服务器根据证书请求下发的用户证书和签名证书,并进行存储;
[0013]其中,用户证书包括利用与CPU芯片标识对应的CPU芯片身份密钥派生的公钥,且由与签名证书中的公钥对应的私钥签名。
[0014]可选的,指示安全处理器SP进行用户设备的身份识别,还包括:指示SP验证用户证书是否在有效期内。
[0015]可选的,在允许用户使用软件后,所述软件保护方法还包括:
[0016]在用户使用软件的过程中,指示SP使用用户证书中的公钥对软件的设定关键代码和数据进行加密保护;
[0017]检测到对所述设定关键代码和数据的使用需求时,指示SP使用CPU芯片身份密钥派生的私钥对软件的设定关键代码和数据进行解密。
[0018]第二方面,本专利技术实施例提供一种软件保护方法,应用于用户设备的中央处理器CPU芯片中的安全处理器SP,所述方法包括:
[0019]接收到CPU芯片中的运算核心发送的用户设备身份识别指示;
[0020]对用户设备进行身份识别,其中所述身份识别包括:利用签名证书中的公钥对用户证书进行验签,以及,利用CPU芯片身份密钥派生的私钥对用户证书中的公钥进行校验;
[0021]将身份识别结果发送给CPU芯片中的运算核心,以使CPU芯片中的运算核心判断是否允许用户使用软件。
[0022]可选的,在对用户设备进行身份识别之前,所述软件保护方法还包括:
[0023]接收CPU芯片中的运算核心导入的用户证书和签名证书。
[0024]可选的,对用户设备进行身份识别,还包括:验证用户证书是否在有效期内。
[0025]可选的,所述软件保护方法还包括:
[0026]接收到CPU芯片中的运算核心发送的加密保护指示;使用用户证书中的公钥对软件的设定关键代码和数据进行加密保护;
[0027]接收到CPU芯片中的运算核心发送的解密指示;使用CPU芯片身份密钥派生的私钥对软件的设定关键代码和数据进行解密。
[0028]可选的,对软件的设定关键代码和数据进行加密保护,包括:
[0029]从安全非易失存储器FLASH获取用户证书中的公钥;
[0030]将用户证书中的公钥发送给密码协处理器,以使密码协处理器执行以下操作:从系统内存中读取软件的设定关键代码和数据;利用用户证书中的公钥对该读取结果进行加密保护,将加密保护结果存储至系统内存。
[0031]可选的,对软件的设定关键代码和数据进行解密,包括:
[0032]从安全非易失存储器FLASH获取CPU芯片身份密钥派生的私钥;将CPU芯片身份密钥派生的私钥发送给密码协处理器,以使密码协处理器执行以下操作:从系统内存中读取加密保护后的软件的设定关键代码和数据;利用CPU芯片身份密钥派生的私钥对该读取结果进行解密,将解密结果存储至系统内存。
[0033]第三方面,本专利技术实施例提供一种软件保护方法,应用于证书管理服务器,所述方法包括:
[0034]接收用户设备发送的包含用户设备的CPU芯片标识的证书请求;
[0035]获取与证书请求中的CPU芯片标识对应的CPU芯片身份密钥,根据CPU芯片身份密钥派生的公钥构建用户证书;
[0036]利用与签名证书中的公钥对应的私钥签名用户证书;
[0037]将签名证书和签名后的用户证书下发给用户设备,以使用户设备进行身份识别后判断是否允许用户使用软件。
[0038]可选的,获取与证书请求中的CPU芯片标识对应的CPU芯片身份密钥,包括:
[0039]查找预先创建的多个CPU芯片标识与多个CPU芯片身份密钥之间的映射关系,获取与证书请求中的CPU芯片标识对应的CPU芯片身份密钥。
[0040]可选的,在利用与签名证书中的公钥对应的私钥签名用户证书之前,所述方法还包括:
[0041]使用自身的CPU芯片密钥派生出一对非对称密钥:公钥和私钥;
[0042]根据该对非对称密钥中的公钥构建签名证书;
[0043]存储该对非对称密钥中的私钥。
[0044]可选的,所述证书请求还包括证书有效期和/或用户定制信息;
[0045]根据CPU芯片身份密钥派生的公钥构建用户证书,包括:
[0046]根据CPU芯片身份密钥派生的公钥,以及,证书有效期和/或用户定制信息,构建用户证书。
[0047]第四方面,本专利技术实施例提供一种软件保护装置,应用于用户设备的中央处理器CPU芯片中的运算核心,所述装置包括:
[0048]身份识别指示单元,用于检测到用户对软件使用的触发操作后,指示安全处理器S本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软件保护方法,其特征在于,应用于用户设备的中央处理器CPU芯片中的运算核心,所述方法包括:检测到用户对软件使用的触发操作后,指示安全处理器SP进行用户设备的身份识别,其中所述身份识别包括:利用签名证书中的公钥对用户证书进行验签,以及,利用CPU芯片身份密钥派生的私钥对用户证书中的公钥进行校验;如果SP识别用户设备身份成功,则允许用户使用软件。2.根据权利要求1所述的软件保护方法,其特征在于,所述方法还包括:向证书管理服务器发送包含用户设备的CPU芯片标识的证书请求;接收证书管理服务器根据证书请求下发的用户证书和签名证书,并进行存储;其中,用户证书包括利用与CPU芯片标识对应的CPU芯片身份密钥派生的公钥,且由与签名证书中的公钥对应的私钥签名。3.根据权利要求1所述的软件保护方法,其特征在于,指示安全处理器SP进行用户设备的身份识别,还包括:指示SP验证用户证书是否在有效期内。4.根据权利要求1所述的软件保护方法,其特征在于,在允许用户使用软件后,所述方法还包括:在用户使用软件的过程中,指示SP使用用户证书中的公钥对软件的设定关键代码和数据进行加密保护;检测到对所述设定关键代码和数据的使用需求时,指示SP使用CPU芯片身份密钥派生的私钥对软件的设定关键代码和数据进行解密。5.一种软件保护方法,其特征在于,应用于用户设备的中央处理器CPU芯片中的安全处理器SP,所述方法包括:接收到CPU芯片中的运算核心发送的用户设备身份识别指示;对用户设备进行身份识别,其中所述身份识别包括:利用签名证书中的公钥对用户证书进行验签,以及,利用CPU芯片身份密钥派生的私钥对用户证书中的公钥进行校验;将身份识别结果发送给CPU芯片中的运算核心,以使CPU芯片中的运算核心判断是否允许用户使用软件。6.根据权利要求5所述的软件保护方法,其特征在于,在对用户设备进行身份识别之前,所述方法还包括:接收CPU芯片中的运算核心导入的用户证书和签名证书。7.根据权利要求5所述的软件保护方法,其特征在于,对用户设备进行身份识别,还包括:验证用户证书是否在有效期内。8.根据权利要求5所述的软件保护方法,其特征在于,所述方法还包括:接收到CPU芯片中的运算核心发送的加密保护指示;使用用户证书中的公钥对软件的设定关键代码和数据进行加密保护;接收到CPU芯片中的运算核心发送的解密指示;使用CPU芯片身份密钥派生的私钥对软件的设定关键代码和数据进行解密。9.根据权利要求8所述的软件保护方法,其特征在于,对软件的设定关键代码和数据进行加密保护,包括:从安全非易失存储器FLASH获取用户证书中的公钥;
将用户证书中的公钥发送给密码协处理器,以使密码协处理器执行以下操作:从系统内存中读取软件的设定关键代码和数据;利用用户证书中的公钥对该读取结果进行加密保护,将加密保护结果存储至系统内存。10.根据权利要求8所述的软件保护方法,其特征在于,对软件的设定关键代码和数据进行解密,包括:从安全非易失存储器FLASH获取CPU芯片身份密钥派生的私钥;将CPU芯片身份密钥派生的私钥发送给密码协处理器,以使密码协处理器执行以下操作:从系统内存中读取加密保护后的软件的设定关键代码和数据;利用CPU芯片身份密钥派生的私钥对该读取结果进行解密,将解密结果存储至系统内存。11.一种软件保护方法,其特征在于,应用于证书管理服务器,所述方法包括:接收用户设备发送的包含用户设备的CPU芯片标识的证书请求;获取与证书请求中的CPU芯片标识对应的CPU芯片身份密钥,根据CPU芯片身份密钥派生的公钥构建用户证书;利用与签名证书中的公钥对应的私钥签名用户证书;将签名证书和签名后的用户证书下发给用户设备...

【专利技术属性】
技术研发人员:方保顺应志伟冯浩
申请(专利权)人:海光信息技术股份有限公司
类型:发明
国别省市:

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

1