软件加密处理方法、软件验证方法及装置制造方法及图纸

技术编号:22387790 阅读:55 留言:0更新日期:2019-10-29 06:38
本发明专利技术公开了一种软件加密处理方法、软件验证方法及装置,该软件加密处理方法包括:计算被监控对象中预设内容的文件的哈希值;使用根据预设加密算法生成的公私密钥对中的私钥对哈希值进行加密,并将加密后的哈希值写入被监控对象的配置文件;使用预设的加密标识对公私密钥对中的公钥进行加密,将加密后的公钥写入到被监控对象对应的驱动文件中。该方法通过对软件进行加密处理,使得软件在运行时,可以杜绝伪造的被监控对象执行控制命令,提高软件的运行安全性。

Software encryption processing method, software verification method and device

【技术实现步骤摘要】
软件加密处理方法、软件验证方法及装置
本专利技术涉及软件保护
,具体涉及一种软件加密处理方法、软件验证方法及装置。
技术介绍
目前,在Windows和Linux平台上的安防软件常常采用应用层和内核层配合的架构体系。位于应用层的应用程序负责发送策略和展示界面等。位于内核层的驱动程序负责具体的防护技术的实现,同时接收应用程序发送的策略和返回日志等功能。层次结构为应用层在上,内核层在下的结构。应用程序通过自定义的控制码和驱动程序进行通讯。在此之前应用程序需要根据名字来打开驱动程序的设备,目前的安防软件驱动程序常常采用直接允许的方式来处理此次打开。这种方式的缺点有:1、由于是基于名字的打开,攻击者可以轻而易举的获取设备的名字和控制码,从而创建伪造后的应用程序,而后使用该程序和驱动程序通讯;2、大部分驱动程序不对应用程序请求进行验证,从而允许所有操作,例如伪造的应用程序可以通过下发关闭管控开关的控制码,使防护体系关闭;3、部分驱动程序仅仅验证对其打开的应用程序的名字,而攻击者可以通过注入的方式来共享进程实体,从而躲避检查。因此,目前的安防软件中的应用程序与驱动程序运行时存在安全隐患,可能导致安防软件失效。
技术实现思路
有鉴于此,本专利技术实施例提供了一种软件加密处理方法、软件验证方法及装置,以解决目前的安防软件中的应用程序与驱动程序运行时存在安全隐患,可能导致安防软件失效的问题。根据第一方面,本专利技术实施例提供了一种软件加密处理方法,包括:计算被监控对象中预设内容的文件的哈希值;使用根据预设加密算法生成的公私密钥对中的私钥对哈希值进行加密,并将加密后的哈希值写入被监控对象的配置文件;使用预设的加密标识对公私密钥对中的公钥进行加密,将加密后的公钥写入到被监控对象对应的驱动文件中。可选地,预设内容不包括数字签名信息。可选地,预设的加密标识包括虚拟机加密标识。根据第二方面,本专利技术实施例提供了一种软件验证方法,包括:获取被监控对象发送的控制请求;根据预设规则及请求读取被监控对象对应的文件的预设内容;计算预设内容的第一哈希值;根据控制请求读取被监控对象对应的配置文件中预存的加密的第二哈希值,其中,加密的第二哈希值是使用上述第一方面或第一方面任意实施方式中的软件加密方法进行加密得到;使用预设的加密标识对应的解密标识对预存的加密后的公钥进行解密,其中,加密后的公钥是使用上述第一方面或第一方面任意实施方式中的软件加密方法进行加密得到;根据解密后的公钥对加密的第二哈希值进行解密;判断第一哈希值与解密后的第二哈希值是否相等;如果第一哈希值与第二哈希值相等,允许控制请求。可选地,根据预设规则及请求读取被监控对象对应的文件的预设内容,包括:根据请求找到被监控对象对应的文件存储的路径;根据路径查找被监控对象对应的文件;根据预设规则读取被监控对象对应的文件的预设内容。可选地,根据控制请求读取被监控对象对应的配置文件中预存的加密的第二哈希值,包括:根据控制请求找到被监控对象对应的配置文件存储的路径;根据路径查找被监控对象对应的配置文件;读取配置文件中预存的加密的第二哈希值。可选地,在计算预设内容的第一哈希值之后,还包括:判断第一哈希值是否计算成功;如果第一哈希值计算成功,进入根据控制请求读取被监控对象对应的配置文件中预存的加密的第二哈希值的步骤。可选地,如果第一哈希值计算失败,则拒绝控制请求。可选地,如果第一哈希值与第二哈希值不相等,则拒绝控制请求。根据第三方面,本专利技术实施例提供了一种软件加密处理装置,包括:第一计算模块,用于计算被监控对象中预设内容的文件的哈希值;第一加密模块,用于使用根据预设加密算法生成的公私密钥对中的私钥对哈希值进行加密,并将加密后的哈希值写入被监控对象的配置文件;第二加密模块,用于使用预设的加密标识对公私密钥对中的公钥进行加密,将加密后的公钥写入到被监控对象对应的驱动文件中。根据第四方面,本专利技术实施例提供了一种软件验证装置,包括:获取模块,用于获取被监控对象发送的控制请求;第一读取模块,用于根据预设规则及请求读取被监控对象对应的文件的预设内容;第二计算模块,用于计算预设内容的第一哈希值;第二读取模块,用于根据控制请求读取被监控对象对应的配置文件中预存的加密的第二哈希值,其中,加密的第二哈希值是使用如第一方面或第一方面任意实施方式中的软件加密方法进行加密得到;第一解密模块,用于使用预设的加密标识对应的解密标识对预存的加密后的公钥进行解密,其中,加密后的公钥是使用如第一方面或第一方面任意实施方式中的软件加密方法进行加密得到;第二解密模块,用于根据解密后的公钥对加密的第二哈希值进行解密;判断模块,用于判断第一哈希值与解密后的第二哈希值是否相等;允许模块,用于如果第一哈希值与第二哈希值相等,允许控制请求。根据第五方面,本专利技术实施例提供了一种控制器,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器执行如第一方面或第一方面任意实施方式中的软件加密处理方法或如第二方面或第二方面任意实施方式中的软件验证方法。根据第六方面,本专利技术实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行如第一方面或第一方面任意实施方式中的软件加密处理方法或如第二方面或第二方面任意实施方式中的软件验证方法。本专利技术实施例的有益效果:(1)本专利技术实施例提供的软件加密处理方法,通过计算被监控对象中预设内容的文件的哈希值,并利用预设加密算法生成的公私密钥对中的私钥对哈希值进行加密,并将加密后的哈希值写入被监控对象的配置文件,使用预设的加密标识对公私密钥对中的公钥进行加密,将加密后的公钥写入到被监控对象对应的驱动文件中,对软件进行加密处理,使得软件在运行时,可以杜绝伪造的被监控对象执行控制命令,提高软件的运行安全性。(2)本专利技术实施例提供的软件验证方法,在获取到被监控对象发送的控制请求后,根据预设规则及请求读取被监控对象对应的文件的预设内容并计算预设内容的第一哈希值,根据控制请求读取被监控对象对应的配置文件中预存的加密的第二哈希值,使用预设的加密标识对应的解密标识对预存的加密后的公钥进行解密,使攻击者无法通过静态分析的方式来获取公钥,根据解密后的公钥对加密的第二哈希值进行解密,然后判断第一哈希值与解密后的第二哈希值是否相等,如果第一哈希值与第二哈希值相等,允许控制请求。通过这种方法,可以有效地验证被监控对象是否合法。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了本专利技术实施例的软件加密处理方法的流程图;图2示出了本专利技术实施例的软件验证方法的流程图;图3示出了本专利技术实施例的软件加密处理装置的结构示意图;图4示出了本专利技术实施例的软件验证装置的结构示意图;图5示出了本专利技术实施例的控制器的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本文档来自技高网...

【技术保护点】
1.一种软件加密处理方法,其特征在于,包括:计算被监控对象中预设内容的文件的哈希值;使用根据预设加密算法生成的公私密钥对中的私钥对所述哈希值进行加密,并将加密后的哈希值写入所述被监控对象的配置文件;使用预设的加密标识对所述公私密钥对中的公钥进行加密,将加密后的公钥写入到所述被监控对象对应的驱动文件中。

【技术特征摘要】
1.一种软件加密处理方法,其特征在于,包括:计算被监控对象中预设内容的文件的哈希值;使用根据预设加密算法生成的公私密钥对中的私钥对所述哈希值进行加密,并将加密后的哈希值写入所述被监控对象的配置文件;使用预设的加密标识对所述公私密钥对中的公钥进行加密,将加密后的公钥写入到所述被监控对象对应的驱动文件中。2.根据权利要求1所述的软件加密处理方法,其特征在于,所述预设内容不包括数字签名信息。3.根据权利要求1所述的软件加密处理方法,其特征在于,所述预设的加密标识包括虚拟机加密标识。4.一种软件验证方法,其特征在于,包括:获取被监控对象发送的控制请求;根据预设规则及所述请求读取所述被监控对象对应的文件的预设内容;计算所述预设内容的第一哈希值;根据所述控制请求读取所述被监控对象对应的配置文件中预存的加密的第二哈希值,其中,所述加密的第二哈希值是使用如权利要求1-3任意一项所述的软件加密方法进行加密得到;使用所述预设的加密标识对应的解密标识对预存的加密后的公钥进行解密,其中,所述加密后的公钥是使用如权利要求1-3任意一项所述的软件加密方法进行加密得到;根据解密后的公钥对所述加密的第二哈希值进行解密;判断所述第一哈希值与解密后的第二哈希值是否相等;如果所述第一哈希值与所述第二哈希值相等,允许所述控制请求。5.根据权利要求4所述的软件验证方法,其特征在于,所述根据预设规则及所述请求读取所述被监控对象对应的文件的预设内容,包括:根据所述请求找到所述被监控对象对应的文件存储的路径;根据所述路径查找所述被监控对象对应的文件;根据预设规则读取所述被监控对象对应的文件的预设内容。6.根据权利要求5所述的软件验证方法,其特征在于,所述根据所述控制请求读取所述被监控对象对应的配置文件中预存的加密的第二哈希值,包括:根据所述控制请求找到所述被监控对象对应的配置文件存储的路径;根据所述路径查找所述被监控对象对应的配置文件;读取所述配置文件中预存的加密的第二哈希值。7.根据权利要求4所述的软件验证方法,其特征在于,在计算所述预设内容的第一哈希值之后,还包括:判断所述第一哈希值是否计算成功;如果所述第一哈希值计算成功,进入根据所述控制请求读取所述被监控对象对应的配置文件中...

【专利技术属性】
技术研发人员:宋奇伟
申请(专利权)人:北京威努特技术有限公司
类型:发明
国别省市:北京,11

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

1