CN118070283A - 软件安全验证方法、装置、电子设备及存储介质 - Google Patents
软件安全验证方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN118070283A CN118070283A CN202410212125.4A CN202410212125A CN118070283A CN 118070283 A CN118070283 A CN 118070283A CN 202410212125 A CN202410212125 A CN 202410212125A CN 118070283 A CN118070283 A CN 118070283A
- Authority
- CN
- China
- Prior art keywords
- software
- digital signature
- file
- certificate
- operating system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012795 verification Methods 0.000 title claims abstract description 146
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000012545 processing Methods 0.000 claims description 11
- 230000004048 modification Effects 0.000 claims description 10
- 238000012986 modification Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 8
- 238000009434 installation Methods 0.000 claims description 6
- 230000015654 memory Effects 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 abstract description 13
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本申请提供了一种软件安全验证方法、装置、电子设备及存储介质,涉及计算机技术领域。其中,该方法包括:响应用户启动软件的操作,获取所述软件所包含的各文件的数字签名证书;提取运行所述软件所在的操作***的注册信息,所述注册信息中包括预先存储在所述操作***中的根证书;基于所述操作***中的根证书对所述软件所包含的各文件的数字签名证书进行逐级校验,得到数字签名校验结果;根据所述数字签名校验结果确定软件运行环境是否安全,若是,则启动所述软件。本申请通过在软件中添加数字签名证书主动校验机制,并且从操作***层面对数字签名证书进行逐级校验,保证软件在未被篡改的情况下才能启动,提高了软件的安全性和可靠性。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种软件安全验证方法、装置、电子设备及存储介质。
背景技术
为满足用户需求,各类软件产品应用而生,相应地,软件运行安全也受到了更多用户的关注。由于软件运行过程中可能会存在各种漏洞、错误或者恶意攻击行为,若没有及时发现并解决,则会给用户带来各种不便和损失。因此,对软件安全进行验证是极其重要的。
但由于现有的软件安全验证方法仍然存在软件来源未知、无法抵抗恶意攻击及篡改行为、可信度下降等问题,导致软件运行的安全性和稳定性无法得到保障。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种软件安全验证方法、装置、电子设备及存储介质,以解决现有技术中软件运行安全性和稳定性较低的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种软件安全验证方法,所述方法包括:
响应用户启动软件的操作,获取所述软件所包含的各文件的数字签名证书;
提取运行所述软件所在的操作***的注册信息,所述注册信息中包括预先存储在所述操作***中的根证书;
基于所述操作***中的根证书对所述软件所包含的各文件的数字签名证书进行逐级校验,得到数字签名校验结果;
根据所述数字签名校验结果确定软件运行环境是否安全,若是,则启动所述软件。
作为一种可能的实现方式,所述文件的数字签名证书预先通过如下步骤生成:
由软件开发设备向数字签名认证设备发送签名请求,所述签名请求用于为所述软件所包含的各文件申请数字签名证书;
由所述数字签名认证设备接收所述签名请求,生成用于数字签名的密钥,并向所述软件开发设备发送私有密钥,所述密钥包括私有密钥和公开密钥;
由所述软件开发设备利用所述私有密钥对所述软件所包含的各文件进行数字签名处理,得到各文件的数字签名证书。
作为一种可能的实现方式,所述提取运行所述软件所在的操作***的注册信息,包括:
响应提取所述注册信息的操作,从所述操作***的注册表中提取所述注册信息,其中,所述注册信息由所述数字签名认证设备在所述操作***安装时生成并存储在所述操作***的注册表中。
作为一种可能的实现方式,所述基于所述操作***中的根证书对所述软件所包含的各文件的数字签名证书进行逐级校验,得到数字签名校验结果,包括:
确定所述软件所包含的多个文件的层级关系;
基于所述层级关系利用所述根证书对所述软件所包含的各文件的数字签名证书进行逐级校验,得到所述数字签名校验结果。
作为一种可能的实现方式,所述基于所述层级关系利用所述根证书对所述软件所包含的各文件的数字签名证书进行逐级校验,得到数字签名校验结果,包括:
利用公开密钥对所述软件所包含的各文件的数字签名证书分别进行解密,得到各文件解密后的数字签名证书;
基于所述根证书对第一文件解密后的数字签名证书进行校验,得到第一文件的数字签名校验结果;
基于所述第一文件的数字签名校验结果对第二文件解密后的数字签名证书进行校验,得到第二文件的数字签名校验结果,其中,所述第一文件和所述第二文件为所述软件所包含的多个文件中任意两个层级相邻的文件。
作为一种可能的实现方式,所述根据所述数字签名校验结果确定软件运行环境是否安全,包括:
若所述数字签名校验结果为未通过,则确定所述软件运行环境不安全。
作为一种可能的实现方式,所述方法还包括:
若所述软件处于攻击状态,则确定所述软件运行环境不安全,并停止运行所述软件;
其中,所述攻击状态包括如下至少一种:软件被恶意攻击导致软件内容更改、软件被恶意攻击且数字签名证书被恶意替换、操作***被恶意篡改、操作***版本为非正规版本。
第二方面,本申请实施例提供了一种软件安全验证装置,所述装置包括:
获取模块,用于响应用户启动软件的操作,获取所述软件所包含的各文件的数字签名证书;
提取模块,用于提取运行所述软件所在的操作***的注册信息,所述注册信息中包括预先存储在所述操作***中的根证书;
校验模块,用于基于所述操作***中的根证书对所述软件所包含的各文件的数字签名证书进行逐级校验,得到数字签名校验结果;
确定模块,用于根据所述数字签名校验结果确定软件运行环境是否安全,若是,则启动所述软件。
作为一种可能的实现方式,所述获取模块还用于:
由软件开发设备向数字签名认证设备发送签名请求,所述签名请求用于为所述软件所包含的各文件申请数字签名证书;
由所述数字签名认证设备接收所述签名请求,生成用于数字签名的密钥,并向所述软件开发设备发送私有密钥,所述密钥包括私有密钥和公开密钥;
由所述软件开发设备利用所述私有密钥对所述软件所包含的各文件进行数字签名处理,得到各文件的数字签名证书。
作为一种可能的实现方式,所述提取模块具体用于:
响应提取所述注册信息的操作,从所述操作***的注册表中提取所述注册信息,其中,所述注册信息由所述数字签名认证设备在所述操作***安装时生成并存储在所述操作***的注册表中。
作为一种可能的实现方式,所述校验模块具体用于:
确定所述软件所包含的多个文件的层级关系;
基于所述层级关系利用所述根证书对所述软件所包含的各文件的数字签名证书进行逐级校验,得到所述数字签名校验结果。
作为一种可能的实现方式,所述校验模块还用于:
利用公开密钥对所述软件所包含的各文件的数字签名证书分别进行解密,得到各文件解密后的数字签名证书;
基于所述根证书对第一文件解密后的数字签名证书进行校验,得到第一文件的数字签名校验结果;
基于所述第一文件的数字签名校验结果对第二文件解密后的数字签名证书进行校验,得到第二文件的数字签名校验结果,其中,所述第一文件和所述第二文件为所述软件所包含的多个文件中任意两个层级相邻的文件。
作为一种可能的实现方式,所述确定模块具体用于:
若所述数字签名校验结果为未通过,则确定所述软件运行环境不安全。
作为一种可能的实现方式,所述确定模块还用于:
若所述软件处于攻击状态,则确定所述软件运行环境不安全,并停止运行所述软件;
其中,所述攻击状态包括如下至少一种:软件被恶意攻击导致软件内容更改、软件被恶意攻击且数字签名证书被恶意替换、操作***被恶意篡改、操作***版本为非正规版本。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,在电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上述第一方面任一所述软件安全验证方法的步骤。
第四方面,本申请实施例提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述第一方面任一所述软件安全验证方法的步骤。
根据本申请实施例的软件安全验证方法、装置、电子设备及存储介质,响应用户启动软件的操作,获取软件所包含的各文件的数字签名证书,并提取运行软件所在的操作***的注册信息,其中,注册信息中包括预先存储在操作***中的根证书,基于操作***中的根证书对软件所包含的各文件的数字签名证书进行逐级校验,得到数字签名校验结果,进而根据数字签名校验结果确定软件运行环境是否安全,若是,则启动软件。根据本申请,在软件中添加数字签名证书主动校验机制,在启动软件时,获取软件中所有文件的数字签名证书,以及运行软件所在的操作***的注册信息,并利用注册信息中的根证书对软件中各文件的数字签名证书进行逐级校验,根据数字签名校验结果确定软件运行环境是否安全,以保证软件在未被篡改的情况下才能启动,并且避免了软件被恶意攻击而造成的潜在威胁,从而大大增加了软件的完整性和安全性。此外,对软件中各文件的数字签名证书的校验是逐级进行的,并且是从操作***层面开始验证的,也极大的保证了数字签名证书校验的可靠性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的一种软件安全验证方法的流程示意图;
图2示出了本申请实施例提供的一种数字签名证书生成方法的流程示意图;
图3示出了本申请实施例提供的一种办法数字签名证书的界面显示图;
图4示出了本申请实施例提供的一种数字签名校验结果确定方法的流程示意图;
图5示出了本申请实施例提供的一种文件层级关系的示意图;
图6示出了本申请实施例提供的另一种数字签名校验结果确定方法的流程示意图;
图7示出了本申请实施例提供的一种软件安全验证装置的结构示意图;
图8示出了本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了使得本领域技术人员能够使用本申请内容,结合特定应用场景“数字签名证书主动校验,”给出以下实施方式。对于本领域技术人员来说,在不脱离本申请的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用场景。虽然本申请主要围绕软件安全验证方法进行描述,但是应该理解,这仅是一个示例性实施例。
需要说明的是,本申请实施例中将会用到术语“包括,”用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
由于大部分软件并未添加数字签名证书,即使在软件中添加了数字签名证书,也未充分利用数字签名证书的功能。由此,软件将失去主动校验软件完整性和真实性的能力,并且也失去了主动抵抗恶意攻击的防御手段。此外,未在软件中添加数字签名证书主动校验机制具有如下缺点:
(1)软件来源未知:数字签名证书主动校验机制可以确认软件的真实来源,若软件中未添加数字签名证书主动校验机制,则用户无法确定软件是否来自合法的制造商或开发者。
(2)无法获知恶意篡改行为:当软件遭受到恶意篡改时,攻击者可以在未经用户知晓的情况下替换未受认证的数字签名证书,而使用者则无法获知当前使用的软件已被篡改。
(3)无法抵御使用盗版的操作***或操作***被篡改带来的风险:数字签名证书主动校验主要基于操作***的注册表中的根证书与软件中各文件的数字签名证书的信任链匹配技术。因此,若无主动数字签名证书校验,攻击者可通过篡改操作***中的根证书,或诱导使用者安装非官方操作***对软件产品进行攻击,其中,操作***可以为Windows***。
(4)无法规避法律责任问题:在某些情况下,数字签名可以用于法律证明,未进行数字签名主动校验可能会增加软件被恶意篡改的概率,从而增加法律责任的产生。
(5)可信度下降:未添加数字签名主动校验机制的软件可能会被用户视为不可信,而数字签名主动校验机制作为一种验证机制,可以增强用户对软件的信任。
针对上述存在的问题,本申请实施例提供了一种软件安全验证方法,对软件添加数字签名主动校验机制,保证软件在未被篡改的情况下才能启动,并且在软件遭受恶意攻击时自行关闭软件,不仅降低了软件运行过程中存在的风险,而且保证了软件运行的安全性和可靠性。
图1示出了本申请实施例提供的一种软件安全验证方法的流程示意图,该方法的执行主体为安装有操作***的电子设备。参照图1所示,该方法具体包括如下步骤:
S101、响应用户启动软件的操作,获取软件所包含的各文件的数字签名证书。
可选地,软件可以简单理解为程序加文档的集合,相应地,软件运行也离不开软件中所包含的各个文件,而为保证软件程序代码的完整性以及避免恶意篡改,基于数字签名证书为软件数字签名提供认证服务,利用数字签名认证方为软件中各文件进行数字签名,进而得到各文件的数字签名证书。
示例性地,在为软件中各文件进行数字签名,得到各文件的数字签名文件的基础上,软件***作***下载安装时也能避免安全警告的出现。进一步地,软件安装完成后,响应用户启动软件的操作,例如点击快捷图标或利用快捷键启动软件,安装有操作***的电子设备便能自动查询并读取软件所包含的各文件的数字签名证书。
S102、提取运行软件所在的操作***的注册信息,注册信息中包括预先存储在操作***中的根证书。
可选地,数字签名证书存在多级信任链验证,而根证书则是信任链的起始点。在操作***被安装时,数字签名认证设备生成未被签名的公钥证书或自签名的证书作为根证书,并将根证书作为注册信息预先存储在操作***中。在软件运行过程中,安装有操作***的电子设备便可主动查询操作***的注册信息,并从注册信息中提取根证书这一底层文件,以利用根证书对软件所包含的各文件的数字签名证书进行逐级校验。
S103、基于操作***中的根证书对软件所包含的各文件的数字签名证书进行逐级校验,得到数字签名校验结果。
可选地,由于软件所包含的各文件存在层级关系,在获取存储在操作***中的根证书后,从操作***层面利用根证书按照各文件的层级关系对各文件的数字签名证书进行逐级校验,即判断当前软件所包含的各文件的数字签名证书与从操作***中获取到的根证书中所存储的数字签名证书是否一致,进而得到数字签名校验结果。
S104、根据数字签名校验结果确定软件运行环境是否安全,若是,则启动软件。
可选地,在利用根证书对软件所包含的各文件的数字签名证书进行逐级校验后,若各文件的数字签名证书与根证书中所存储的数字签名证书一致,即数字签名校验结果为通过,表示软件的运行环境安全,进而启动软件。
由此,根据本申请实施例提供的软件安全验证方法,响应用户启动软件的操作,获取软件所包含的各文件的数字签名证书,并提取运行软件所在的操作***的注册信息,其中,注册信息中包括预先存储在操作***中的根证书,基于操作***中的根证书对软件所包含的各文件的数字签名证书进行逐级校验,得到数字签名校验结果,进而根据数字签名校验结果确定软件运行环境是否安全,若是,则启动软件。根据本申请,在软件中添加数字签名证书主动校验机制,在启动软件时,获取软件中所有文件的数字签名证书,以及运行软件所在的操作***的注册信息,并利用注册信息中的根证书对软件中各文件的数字签名证书进行逐级校验,根据数字签名校验结果确定软件运行环境是否安全,以保证软件在未被篡改的情况下才能启动,并且避免了软件被恶意攻击而造成的潜在威胁,从而大大增加了软件的完整性和安全性。此外,对软件中各文件的数字签名证书的校验是逐级进行的,并且是从操作***层面开始验证的,也极大的保证了数字签名证书校验的可靠性。
作为一种可能的实现方式,如图2所示,文件的数字签名证书预先通过如下步骤生成:
S201、由软件开发设备向数字签名认证设备发送签名请求,签名请求用于为软件所包含的各文件申请数字签名证书。
示例性地,软件所包含的各文件的数字签名证书是要经过正规的数字签名认证机构授权的,所以在软件发布之前由软件开发设备向数字签名认证设备发送签名请求,以为软件所包含的各文件向数字签名认证设备申请数字签名证书。
S202、由数字签名认证设备接收签名请求,生成用于数字签名的密钥,并向软件开发设备发送私有密钥,密钥包括私有密钥和公开密钥。
示例性地,数字签名认证设备在接收到软件开发设备发送的签名请求后,采用非对称加密技术实现数字签名。具体地,数字签名认证设备生成一对密钥,包括私有密钥和公开密钥,其中,数字签名认证设备会将私有密钥发送给软件开发设备,私有密钥是软件开发设备私有、不公开的,而公开密钥是公开的,利用公钥能解开的密文也一定是私有密钥加密的。
示例性地,签名请求中可以携带即将发布的软件的参数信息,以使数字签名认证设备能够依据软件的参数信息针对性的生成用于数字签名的密钥。
S203、由软件开发设备利用私有密钥对软件所包含的各文件进行数字签名处理,得到各文件的数字签名证书。
示例性地,软件开发设备接收到数字签名认证设备发送的私有密钥后,利用私有密钥计算数字签名以对软件所包含的各文件进行数字签名处理,进而得到各文件的数字签名证书。在此过程中,利用非对称加密技术进行数字签名处理也即私钥签名、公钥验签。
示例性地,如图3所示,数字签名认证设备采用非对称加密技术所颁发的数字签名证书包含了数字签名证书的常规信息、详细信息和证书路径,其中,常规信息中显示了数字签名证书的目的、软件开发设备的相关信息以及数字签名证书的有效期等信息。
基于此,利用非对称加密技术进行数字签名处理,不仅可以验证软件的来源,也可以获知恶意篡改行为,防止软件所包含各文件的数据被篡改。
作为一种可能的实现方式,上述步骤S102提取运行软件所在的操作***的注册信息,包括:
响应提取注册信息的操作,从操作***的注册表中提取注册信息,其中,注册信息由数字签名认证设备在操作***安装时生成并存储在操作***的注册表中。
示例性地,注册表是一套控制操作***外表以及如何响应外来事件工作的数据库文件,包含在操作***的安装目录下的***配置文件和用户配置文件里。在操作***安装时,数字签名认证设备会将根证书作为注册信息预先存储在操作***的注册表中,响应用户启动软件的操作,开始执行数字签名证书主动校验机制,获取软件所包含的各文件的数字签名证书,以及从操作***的注册表中提取根证书,进而利用根证书对各文件的数字签名证书进行逐级校验。
示例性地,由于根证书是作为正规认证机构的数字签名认证设备预先存储在操作***的注册表中的数字签名证书文件,可保证每个从官方途径安装操作***的电子设备中,信任链底层的根证书文件必然存在。
基于此,将根证书预先存储在操作***的注册表中,使得每个安装操作***的电子设备中必然存在根证书,进而便于利用数字签名证书存在多级信任链验证的特性以及预先存储在操作***注册表中的根证书进行数字签名证书校验。
作为一种可能的实现方式,如图4所示,上述步骤S103基于操作***中的根证书对软件所包含的各文件的数字签名证书进行逐级校验,得到数字签名校验结果,具体包括如下步骤:
S401、确定软件所包含的多个文件的层级关系。
示例性地,如图5所示,由于数字签名证书存在多级信任链验证,软件所半酣的多个文件也是具有层级关系的。若软件中存在A、B、C、D四个文件,且各文件的层级关系为文件A嵌套文件B、文件B嵌套文件C、文件C嵌套文件D。
示例性地,参照图5所示,证书路径中处于第一行的根证书为第一层级,进而分别是文件A、文件B、文件C和文件D。
S402、基于层级关系利用根证书对软件所包含的各文件的数字签名证书进行逐级校验,得到数字签名校验结果。
可选地,参照图5所示的各文件的层级关系,利用处于第一层级的根证书按照层级关系依次对各文件的数字签名证书进行逐级校验。
示例性地,如图6所示,上述步骤S402具体包括如下步骤:
S601、利用公开密钥对软件所包含的各文件的数字签名证书分别进行解密,得到各文件解密后的数字签名证书。
示例性地,数字签名认证设备生成了用于数字签名的一对私有密钥和公开密钥,私有密钥由软件开发设备用于对软件所包含的各文件进行数字签名处理,而公开密钥作为一种公开的信息则被用于对各文件的数字签名证书分别进行解密处理,得到各文件解密后的数字签名证书。
S602、基于根证书对第一文件解密后的数字签名证书进行校验,得到第一文件的数字签名校验结果。
示例性地,继续以上述软件中存在A、B、C、D四个文件,以及参照图5所示的处于第一行的根证书为第一层级,进而分别是文件A、文件B、文件C和文件D为例,第一文件即可为文件A,在进行数字签名证书的校验过程中,首先从操作***层面进行根证书校验,利用根证书对文件A解密后的数字签名证书进行校验,即可得到第一文件的数字签名校验结果,也即文件A解密后的数字签名证书与根文件中记载的数字签名证书是否一致。
S603、基于第一文件的数字签名校验结果对第二文件解密后的数字签名证书进行校验,得到第二文件的数字签名校验结果。
示例性地,第一文件和第二文件为软件所包含的多个文件中任意两个层级相邻的文件,例如第一文件为文件A,则第二文件为文件B,第一文件为文件B时,则第二文件为文件C。诸如此类,按照各文件的层级关系,在对上一层级的文件的数字签名校验完成后,进而结合上一层级的文件的数字签名校验结果确定下一层级的文件的数字签名校验结果。
基于此,软件所包含的各文件的数字签名证书的校验为逐级校验,并且是从操作***层面开始验证的,极大地确保了数字签名验证的可靠性。
作为一种可能的实现方式,上述步骤S104根据数字签名校验结果确定软件运行环境是否安全,包括:若数字签名校验结果为未通过,则确定软件运行环境不安全。
示例性地,若上述第一文件的数字签名校验结果为未通过,即表示第一文件的数字签名证书与根证书中存储的数字签名证书不一致,也表示第一文件的数字签名证书被其他使用者篡改,此时,无需继续对第二文件的数字签名证书进行校验,也可确定软件的运行环境已经处于不安全的状态。
示例性地,若软件处于攻击状态,则确定软件运行环境不安全,并停止运行软件。其中,攻击状态包括如下至少一种:软件被恶意攻击导致软件内容更改、软件被恶意攻击且数字签名证书被恶意替换、操作***被恶意篡改、操作***版本为非正规版本。
示例性地,上述攻击场景发生一种或多种时都会导致软件运行时无法通过数字签名证书主动校验,从而导致软件产生报错提示,以提醒使用者当前软件使用过程中存在风险,并自行关闭软件。由此,通过此种方式保证了软件运行的安全性及可靠性。
基于此,在软件中添加数字签名证书主动校验机制,从操作***层面对软件所包含各文件的数字签名证书进行逐级校验,并且是利用非对称加密技术主动校验各文件的数字签名证书,通过信任链逐级匹配当前数字签名证书与根证书,以实现对软件的安全验证,并保证了整个验证过程的安全性。
基于同一发明构思,本申请实施例中还提供了与软件安全验证方法对应的软件安全验证装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述软件安全验证方法相似,因此软件安全验证装置的实施可以参见方法的实施,重复之处不再赘述。
参照图7所示,为本申请实施例提供的一种软件安全验证装置的结构示意图,所述软件安全验证700包括:获取模块701、提取模块702、校验模块703、确定模块704,其中:
获取模块701,用于响应用户启动软件的操作,获取软件所包含的各文件的数字签名证书;
提取模块702,用于提取运行软件所在的操作***的注册信息,注册信息中包括预先存储在操作***中的根证书;
校验模块703,用于基于操作***中的根证书对软件所包含的各文件的数字签名证书进行逐级校验,得到数字签名校验结果;
确定模块704,用于根据数字签名校验结果确定软件运行环境是否安全,若是,则启动软件。
由此,根据本申请实施例的软件安全验证装置,响应用户启动软件的操作,获取软件所包含的各文件的数字签名证书,并提取运行软件所在的操作***的注册信息,其中,注册信息中包括预先存储在操作***中的根证书,基于操作***中的根证书对软件所包含的各文件的数字签名证书进行逐级校验,得到数字签名校验结果,进而根据数字签名校验结果确定软件运行环境是否安全,若是,则启动软件。根据本申请,在软件中添加数字签名证书主动校验机制,在启动软件时,获取软件中所有文件的数字签名证书,以及运行软件所在的操作***的注册信息,并利用注册信息中的根证书对软件中各文件的数字签名证书进行逐级校验,根据数字签名校验结果确定软件运行环境是否安全,以保证软件在未被篡改的情况下才能启动,并且避免了软件被恶意攻击而造成的潜在威胁,从而大大增加了软件的完整性和安全性。此外,对软件中各文件的数字签名证书的校验是逐级进行的,并且是从操作***层面开始验证的,也极大的保证了数字签名证书校验的可靠性。
一种可能的实施方式中,上述获取模块701还用于:
由软件开发设备向数字签名认证设备发送签名请求,签名请求用于为软件所包含的各文件申请数字签名证书;
由数字签名认证设备接收签名请求,生成用于数字签名的密钥,并向软件开发设备发送私有密钥,密钥包括私有密钥和公开密钥;
由软件开发设备利用私有密钥对软件所包含的各文件进行数字签名处理,得到各文件的数字签名证书。
一种可能的实施方式中,上述提取模块702具体用于:
响应提取注册信息的操作,从操作***的注册表中提取注册信息,其中,注册信息由数字签名认证设备在操作***安装时生成并存储在操作***的注册表中。
一种可能的实施方式中,上述校验模块703具体用于:
确定软件所包含的多个文件的层级关系;
基于层级关系利用根证书对软件所包含的各文件的数字签名证书进行逐级校验,得到数字签名校验结果。
一种可能的实施方式中,上述校验模块703还用于:
利用公开密钥对软件所包含的各文件的数字签名证书分别进行解密,得到各文件解密后的数字签名证书;
基于根证书对第一文件解密后的数字签名证书进行校验,得到第一文件的数字签名校验结果;
基于第一文件的数字签名校验结果对第二文件解密后的数字签名证书进行校验,得到第二文件的数字签名校验结果,其中,第一文件和第二文件为软件所包含的多个文件中任意两个层级相邻的文件。
一种可能的实施方式中,上述确定模块704具体用于:
若数字签名校验结果为未通过,则确定软件运行环境不安全。
一种可能的实施方式中,上述确定模块704还用于:
若软件处于攻击状态,则确定软件运行环境不安全,并停止运行软件;
其中,攻击状态包括如下至少一种:软件被恶意攻击导致软件内容更改、软件被恶意攻击且数字签名证书被恶意替换、操作***被恶意篡改、操作***版本为非正规版本。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本申请实施例还提供了一种电子设备800,如图8所示,为本申请实施例提供的电子设备800结构示意图,包括:处理器801、存储器802,可选的,还可以包括总线803。所述存储器802存储有所述处理器801可执行的机器可读指令,当电子设备800运行时,所述处理器801与所述存储器802之间通过总线803通信,所述机器可读指令被所述处理器801执行时执行如上任一项所述的软件安全验证方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上任一项所述的软件安全验证方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(RO M,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Mem ory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (10)
1.一种软件安全验证方法,其特征在于,包括:
响应用户启动软件的操作,获取所述软件所包含的各文件的数字签名证书;
提取运行所述软件所在的操作***的注册信息,所述注册信息中包括预先存储在所述操作***中的根证书;
基于所述操作***中的根证书对所述软件所包含的各文件的数字签名证书进行逐级校验,得到数字签名校验结果;
根据所述数字签名校验结果确定软件运行环境是否安全,若是,则启动所述软件。
2.根据权利要求1所述的方法,其特征在于,所述文件的数字签名证书预先通过如下步骤生成:
由软件开发设备向数字签名认证设备发送签名请求,所述签名请求用于为所述软件所包含的各文件申请数字签名证书;
由所述数字签名认证设备接收所述签名请求,生成用于数字签名的密钥,并向所述软件开发设备发送私有密钥,所述密钥包括私有密钥和公开密钥;
由所述软件开发设备利用所述私有密钥对所述软件所包含的各文件进行数字签名处理,得到各文件的数字签名证书。
3.根据权利要求2所述的方法,其特征在于,所述提取运行所述软件所在的操作***的注册信息,包括:
响应提取所述注册信息的操作,从所述操作***的注册表中提取所述注册信息,其中,所述注册信息由所述数字签名认证设备在所述操作***安装时生成并存储在所述操作***的注册表中。
4.根据权利要求1所述的方法,其特征在于,所述基于所述操作***中的根证书对所述软件所包含的各文件的数字签名证书进行逐级校验,得到数字签名校验结果,包括:
确定所述软件所包含的多个文件的层级关系;
基于所述层级关系利用所述根证书对所述软件所包含的各文件的数字签名证书进行逐级校验,得到所述数字签名校验结果。
5.根据权利要求4所述的方法,其特征在于,所述基于所述层级关系利用所述根证书对所述软件所包含的各文件的数字签名证书进行逐级校验,得到数字签名校验结果,包括:
利用公开密钥对所述软件所包含的各文件的数字签名证书分别进行解密,得到各文件解密后的数字签名证书;
基于所述根证书对第一文件解密后的数字签名证书进行校验,得到第一文件的数字签名校验结果;
基于所述第一文件的数字签名校验结果对第二文件解密后的数字签名证书进行校验,得到第二文件的数字签名校验结果,其中,所述第一文件和所述第二文件为所述软件所包含的多个文件中任意两个层级相邻的文件。
6.根据权利要求1所述的方法,其特征在于,所述根据所述数字签名校验结果确定软件运行环境是否安全,包括:
若所述数字签名校验结果为未通过,则确定所述软件运行环境不安全。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述软件处于攻击状态,则确定所述软件运行环境不安全,并停止运行所述软件;
其中,所述攻击状态包括如下至少一种:软件被恶意攻击导致软件内容更改、软件被恶意攻击且数字签名证书被恶意替换、操作***被恶意篡改、操作***版本为非正规版本。
8.一种软件安全验证装置,其特征在于,包括:
获取模块,用于响应用户启动软件的操作,获取所述软件所包含的各文件的数字签名证书;
提取模块,用于提取运行所述软件所在的操作***的注册信息,所述注册信息中包括预先存储在所述操作***中的根证书;
校验模块,用于基于所述操作***中的根证书对所述软件所包含的各文件的数字签名证书进行逐级校验,得到数字签名校验结果;
确定模块,用于根据所述数字签名校验结果确定软件运行环境是否安全,若是,则启动所述软件。
9.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器执行所述机器可读指令,以执行如权利要求1至7任一所述的软件安全验证方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一所述的软件安全验证方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410212125.4A CN118070283A (zh) | 2024-02-26 | 2024-02-26 | 软件安全验证方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410212125.4A CN118070283A (zh) | 2024-02-26 | 2024-02-26 | 软件安全验证方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118070283A true CN118070283A (zh) | 2024-05-24 |
Family
ID=91106993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410212125.4A Pending CN118070283A (zh) | 2024-02-26 | 2024-02-26 | 软件安全验证方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118070283A (zh) |
-
2024
- 2024-02-26 CN CN202410212125.4A patent/CN118070283A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2659373B1 (en) | System and method for secure software update | |
CN109075976B (zh) | 取决于密钥认证的证书发布 | |
EP3804213B1 (en) | Shared secret establishment | |
JP4501349B2 (ja) | システムモジュール実行装置 | |
US7734921B2 (en) | System and method for guaranteeing software integrity via combined hardware and software authentication | |
US8175269B2 (en) | System and method for enterprise security including symmetric key protection | |
CN112257086B (zh) | 一种用户隐私数据保护方法及电子设备 | |
KR20030082485A (ko) | 대칭 키 암호화에 기초한 데이터의 저장 및 검색 | |
WO2009158086A2 (en) | Techniques for ensuring authentication and integrity of communications | |
CN112801663B (zh) | 区块链存证方法、装置、***、设备和介质 | |
CN109831311B (zh) | 一种服务器验证方法、***、用户终端及可读存储介质 | |
JP6387908B2 (ja) | 認証システム | |
KR20170089352A (ko) | 가상화 시스템에서 수행하는 무결성 검증 방법 | |
US7552092B2 (en) | Program distribution method and system | |
CN114666086A (zh) | 用于可信执行环境的可缩放鉴证 | |
CN110837634B (zh) | 基于硬件加密机的电子签章方法 | |
CN115550060B (zh) | 基于区块链的可信证书验证方法、装置、设备和介质 | |
CN113922966B (zh) | 一种基于加密存储硬件的安全应用安装方法 | |
CN118070283A (zh) | 软件安全验证方法、装置、电子设备及存储介质 | |
Cho et al. | A strengthened android signature management method | |
Lucyantie et al. | Attestation with trusted configuration machine | |
WO2022162797A1 (ja) | 情報処理装置、プログラム実行システム、情報処理方法、及びプログラム | |
JP2002006739A (ja) | 認証情報生成装置およびデータ検証装置 | |
CN114357385A (zh) | 一种软件防护和授权方法、***及装置 | |
JP2008060617A (ja) | 電子データ検証装置、電子データ作成装置、電子データ検証方法、電子データ作成方法及び集積回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |