CN110619194A - 一种升级包加密、解密方法及装置 - Google Patents

一种升级包加密、解密方法及装置 Download PDF

Info

Publication number
CN110619194A
CN110619194A CN201910919009.5A CN201910919009A CN110619194A CN 110619194 A CN110619194 A CN 110619194A CN 201910919009 A CN201910919009 A CN 201910919009A CN 110619194 A CN110619194 A CN 110619194A
Authority
CN
China
Prior art keywords
upgrade package
software
key
encrypted
terminal
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.)
Granted
Application number
CN201910919009.5A
Other languages
English (en)
Other versions
CN110619194B (zh
Inventor
孙建鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NSFOCUS Information Technology Co Ltd
Beijing NSFocus Information Security Technology Co Ltd
Original Assignee
NSFOCUS Information Technology Co Ltd
Beijing NSFocus Information Security Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NSFOCUS Information Technology Co Ltd, Beijing NSFocus Information Security Technology Co Ltd filed Critical NSFOCUS Information Technology Co Ltd
Priority to CN201910919009.5A priority Critical patent/CN110619194B/zh
Publication of CN110619194A publication Critical patent/CN110619194A/zh
Application granted granted Critical
Publication of CN110619194B publication Critical patent/CN110619194B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及计算机技术领域,尤其涉及一种升级包加密、解密方法及装置,接收终端发送的针对升级包的下载请求,其中,所述下载请求中至少包括授权信息,在确定所述授权信息校验通过后,根据所述授权信息中用户标识,确定所述用户标识对应的与所述升级包关联的所有具有授权权限的软件,并获取各软件的权限密钥,获取各软件的软件特征信息,并将所述软件特征信息进行加密,获得特征密钥,通过各软件的权限密钥分别对所述特征密钥进行加密,获得各加密后的特征密钥集合,并通过所述特征密钥对所述升级包进行加密,将所述各加密后的特征密钥集合和加密后的升级包,返回给所述终端,这样,可以提高软件使用的安全性。

Description

一种升级包加密、解密方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种升级包加密、解密方法及装置。
背景技术
目前,随着计算机技术的发展,可能经常出现软件被破解的问题,为了避免软件被破解后带来的损失,需要对软件进行加密保护。
现有技术中,主要是对软件自身进行加密保护,例如,加静态壳、加虚拟壳等方式,但是,现有技术中的加密方式,虽然可以在一定程度上防止软件被破解,但是在软件的升级过程中,每个升级包都是相同的,一经破解,会被无限制分发,从而可能导致破解后的软件大范围被非法使用。
发明内容
本申请实施例提供一种升级包加密、解密方法及装置,以提高软件安全性。
本申请实施例提供的具体技术方案如下:
一种升级包加密方法,包括:
接收终端发送的针对升级包的下载请求,其中,所述下载请求中至少包括授权信息;
在确定所述授权信息校验通过后,根据所述授权信息中用户标识,确定所述用户标识对应的与所述升级包关联的所有具有授权权限的软件,并获取各软件的权限密钥;
获取各软件的软件特征信息,并将所述软件特征信息进行加密,获得特征密钥;
通过各软件的权限密钥分别对所述特征密钥进行加密,获得各加密后的特征密钥集合,并通过所述特征密钥对所述升级包进行加密;
将所述各加密后的特征密钥集合和加密后的升级包,返回给所述终端。
可选的,将所述软件特征信息进行加密,获得特征密钥,具体包括:
至少根据当前时间和本地运行噪音,生成随机算子;
通过预设加密算法,对所述软件特征信息和所述随机算子进行加密,获得特征密钥。
可选的,将所述各加密后的特征密钥集合和加密后的升级包,返回给所述终端,具体包括:
根据所述各加密后的特征密钥集合,获得所述升级包的包头;
根据所述加密后的升级包,获得所述升级包的包尾;
将所述升级包的所述包头与所述包尾进行拼接,生成加密升级包。
可选的,返回给所述终端之前,进一步包括:
获取所述各软件的签名密钥;
使用所述签名密钥对所述加密升级包进行签名,获得签名后的加密升级包。
可选的,接收终端发送的针对升级包的下载请求之后,在确定所述授权信息校验通过后之前进一步包括:
获取所述终端的IP地址;
确定所述终端的IP地址与记录的针对所述升级包的历史下载请求的IP地址一致。
可选的,进一步包括:
若确定所述终端的IP地址与记录的针对所述升级包的历史下载请求的IP地址不一致,则生成警告并封禁所述终端的授权信息,以使所述终端无法使用所述授权信息。
可选的,进一步包括:
监控针对所述升级包并通过所述授权信息发送下载请求的下载频率和/或IP地址数目;
若确定所述下载频率不小于设定频率阈值,和/或IP地址数目不小于设定数目阈值,则进行告警并封禁所述授权信息。
可选的,每个软件的权限密钥是在发布时预配置的,并且每个软件的权限密钥与授权信息关联存储,其中,每个软件的权限密钥不同。
一种升级包解密方法,包括:
获取软件的加密升级包,所述加密升级包中至少包括各加密后的特征密钥集合和加密后的升级包,所述各加密后的特征密钥集合是服务器通过各软件的权限密钥分别对所述特征密钥加密后获得的,所述加密后的升级包是服务器通过所述特征密钥对所述升级包加密获得的,所述各软件是同一用户标识对应的与所述升级包关联的所有具有授权权限的软件;
通过所述软件的授权信息,获取所述软件对应的权限密钥;
通过所述权限密钥遍历所述各加密后的特征密钥集合进行解密,若确定所述权限密钥能够解密成功,则获得所述特征密钥;
通过所述特征密钥对所述加密后的升级包进行解密,获得所述升级包。
可选的,获取软件的加密升级包,具体包括:
获取签名后的加密升级包;
通过所述软件中的签名密钥,对所述签名后的加密升级包进行签名校验,获得所述加密升级包。
可选的,每个软件的权限密钥是在发布时预配置的,并且每个软件的权限密钥与授权信息关联存储,其中,每个软件的权限密钥不同。
一种升级包加密装置,包括:
接收模块,用于接收终端发送的针对升级包的下载请求,其中,所述下载请求中至少包括授权信息;
第一获取模块,用于在确定所述授权信息校验通过后,根据所述授权信息中用户标识,确定所述用户标识对应的与所述升级包关联的所有具有授权权限的软件,并获取各软件的权限密钥;
第一加密模块,用于获取各软件的软件特征信息,并将所述软件特征信息进行加密,获得特征密钥;
第二加密模块,用于通过各软件的权限密钥分别对所述特征密钥进行加密,获得各加密后的特征密钥集合,并通过所述特征密钥对所述升级包进行加密;
返回模块,用于将所述各加密后的特征密钥集合和加密后的升级包,返回给所述终端。
可选的,第一加密模块具体用于:
至少根据当前时间和本地运行噪音,生成随机算子;
通过预设加密算法,对所述软件特征信息和所述随机算子进行加密,获得特征密钥。
可选的,返回模块具体用于:
根据所述各加密后的特征密钥集合,获得所述升级包的包头;
根据所述加密后的升级包,获得所述升级包的包尾;
将所述升级包的所述包头与所述包尾进行拼接,生成加密升级包。
可选的,返回给所述终端之前,进一步包括:
第二获取模块,用于获取所述各软件的签名密钥;
签名模块,用于使用所述签名密钥对所述加密升级包进行签名,获得签名后的加密升级包。
可选的,接收终端发送的针对升级包的下载请求之后,在确定所述授权信息校验通过后之前进一步包括:
第三获取模块,用于获取所述终端的IP地址;
确定模块,用于确定所述终端的IP地址与记录的针对所述升级包的历史下载请求的IP地址一致。
可选的,进一步包括:
第一告警模块,用于若确定所述终端的IP地址与记录的针对所述升级包的历史下载请求的IP地址不一致,则生成警告并封禁所述终端的授权信息,以使所述终端无法使用所述授权信息。
可选的,进一步包括:
监控模块,用于监控针对所述升级包并通过所述授权信息发送下载请求的下载频率和/或IP地址数目;
第二告警模块,用于若确定所述下载频率不小于设定频率阈值,和/或IP地址数目不小于设定数目阈值,则进行告警并封禁所述授权信息。
可选的,每个软件的权限密钥是在发布时预配置的,并且每个软件的权限密钥与授权信息关联存储,其中,每个软件的权限密钥不同。
一种升级包解密装置,包括:
第一获取模块,用于获取软件的加密升级包,所述加密升级包中至少包括各加密后的特征密钥集合和加密后的升级包,所述各加密后的特征密钥集合是服务器通过各软件的权限密钥分别对所述特征密钥加密后获得的,所述加密后的升级包是服务器通过所述特征密钥对所述升级包加密获得的,所述各软件是同一用户标识对应的与所述升级包关联的所有具有授权权限的软件;
第二获取模块,用于通过所述软件的授权信息,获取所述软件对应的权限密钥;
第一解密模块,用于通过所述权限密钥遍历所述各加密后的特征密钥集合进行解密,若确定所述权限密钥能够解密成功,则获得所述特征密钥;
第二解密模块,用于通过所述特征密钥对所述加密后的升级包进行解密,获得所述升级包。
可选的,第一获取模块具体用于:
获取签名后的加密升级包;
通过所述软件中的签名密钥,对所述签名后的加密升级包进行签名校验,获得所述加密升级包。
可选的,每个软件的权限密钥是在发布时预配置的,并且每个软件的权限密钥与授权信息关联存储,其中,每个软件的权限密钥不同。
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述升级包加密方法或升级包解密方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述升级包加密方法或升级包解密方法的步骤。
本申请实施例中,服务器接收终端发送的针对升级包的下载请求,当校验信息通过后,根据授权信息中的用户标识,确定用户标识对应的与升级包关联的所有具有授权权限的软件,获得权限密钥,并实时生成特征密钥,然后使用权限密钥加密,获得各加密后的特征密钥集合,并且使用特征密钥对升级包加密,获得加密后的升级包,然后将加密后的升级包和各加密后的特征密钥集合组合生成加密升级包,再使用签名密钥将加密升级包生成签名后的加密升级包,这样,对升级包进行加密保护,即最终生成加密升级包是与用户的用户标识、用户标识下的各软件的权限密钥等相关,并且每个软件的权限密钥是不同的,从而可以保证每个用户的加密升级包都是不同的。因此终端想要获得升级包,需要在接收到签名后的加密升级包后,先用签名密钥解密,获得加密升级包,并且各加密后的特征密钥集合与权限密钥是关联的,只有具有权限密钥的终端才能解密出特征密钥,当解密获得特征密钥后,使用得到的特征密钥对加密升级包解密进而能够获得升级包,再对软件进行升级,这样,可以对升级包的使用进行限制,只有具有授权权限的用户和软件才能够解密出升级包,进而对软件进行升级,大大降低了软件被破解者大范围非法使用的概率。
附图说明
图1为本申请实施例中一种升级包加密方法的流程图;
图2为本申请实施例中签名后的加密升级包的原理结构图;
图3为本申请实施例中一种升级包解密方法的流程图;
图4为本申请实施例中一种升级包加密和解密方法的流程图;
图5为本申请实施例中升级包加密装置结构示意图;
图6为本申请实施例中升级包解密装置结构示意图;
图7为本申请实施例中电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为便于对本申请实施例的理解,下面先对几个概念进行简单介绍:
1、授权信息:本申请实施例中授权信息可以作为用户的唯一标识,只有使用正确的授权信息才能够下载已具有授权权限的软件的升级包。
2、权限密钥:权限密钥是每个软件在初次发布时分配的一个密钥,每个软件的权限密钥都不相同,即使同一用户针对同一软件有多个授权权限,其每一个具有授权权限的软件的权限密钥都是不同的,例如,一个用户购买了10个A软件,可以在不同的终端使用,这10个A软件的权限密钥都不同。权限密钥和授权信息对应,权限密钥以及权限密钥和授权信息对应关系存储在服务器端。
3、签名密钥:签名密钥由私钥和公钥组成,软件内部自带公钥,负责解密完整的升级包和对升级包进行签名校验,云端服务器中私钥负责对升级包进行签名加密。
4、特征密钥:本申请实施例中特征密钥在软件的升级包每次制作时实时生成,可以根据软件特征信息并加入随机算子,进行加密获得的,由于每个随机算子是不同的,因此每次制作升级包时都能够获得不同的特征密钥。
5、软件特征信息:本申请实施例中每个软件都有不同的软件特征信息,软件特征信息可以是唯一标识该软件所应用的软件环境和/或硬件信息等,例如,软件特征信息可以包括软件序列号,所应用的终端的硬件信息,购买软件的日期等,本申请实施例中并不进行限制,服务器可以将软件特征信息的每个特征信息进行哈希(HASH)运算获得相应的哈希值,然后对获得的各哈希值再进行哈希运算,最终获得该软件的软件特征信息的特征值。
目前,随着计算机技术的不断发展,很多软件在发布后经常会被一些具有非法权限的破解者轻松破解,为了有效防止破解者破解软件后带来的损失,需要对软件自身进行加密保护。
现有技术中,常用的软件保护方式是对软件自身进行加密保护,例如:加静态壳、加虚拟壳、代码加入暗装等方式,这样可以对软件自身进行加固,防止软件被轻松破解,或者也可以将升级包通过使用一种加密方法和防篡改校验相结合的方式加密,从而避免软件被破解。但是,现有技术中的加密方式,虽然可以在一定程度上防止软件被轻松破解,但是由于每个升级包都是相同的,并且对升级包没有进行限制,因此一旦被破解后,升级包就会被无限制分发,非法用户可以多次对该软件进行升级,从而导致破解后的软件被大范围非法使用。
因此,针对上述问题,本申请实施例中,通过对升级包加密处理能够限制破解者分发升级包的行为,实现从另一个角度进行软件的保护,具体提供了一种升级包加密方法,终端向服务器发送针对升级包的下载请求,该下载请求中至少包括授权信息,当授权信息校验通过后,根据授权信息中的用户标识,确定用户标识对应的与升级包关联的所有具有授权权限的软件,并获取各软件的权限密钥,服务器获取到各软件的软件特征信息,并对软件特征信息进行加密,获得特征密钥,通过各软件的权限密钥分别对特征密钥进行加密,获得各加密后的特征密钥集合以生成升级包的包头,通过特征密钥对升级包进行加密以获得升级包的包尾,将升级包的包头与包尾进行拼接,生成加密升级包,本申请实施例中的这种加密方法,升级包在申请下载时进行打包加密,实时生成特征密钥,并对下载的升级包和特征密钥分别进行加密,并且只有使用授权信息的终端才能够下载并使用该升级包,从而可以使得终端在接收到加密升级包后,需要先解密获得特征密钥,才能解密获得升级包,而各加密后的特征密钥集合与权限密钥是关联的,只有具有权限密钥的终端才能解密出特征密钥,这样能够通过服务器对升级包的分发行为进行限制,通过授权信息下载的升级包只能安装在该用户标识的用户已具有授权权限的软件中,进而能够大大降低升级包被大范围扩散分发的可能性,若软件遭到破解,无法使用通用的升级包进行升级,也可以限制破解后的软件被大范围使用,尤其对于需要频繁升级的软件,可以提高软件安全性。
本申请实施例中,还设置了破解追踪的过程,监控通过授权信息针对升级包发送下载请求的下载频率和/或IP地址数目,当升级包被大范围分发时,终端发送的下载请求的下载频率和/或IP地址数目将会超过阈值,出现异常,服务器能够通过监控下载频率和/或IP地址数目,进行告警并封禁授权信息,可以有效防止软件被大范围恶意下载,提高软件的可管理性和安全性。
基于上述实施例,参阅图1所示,为本申请实施例中一种升级包加密方法的流程图,主要应用于服务器,具体包括:
步骤100:接收终端发送的针对升级包的下载请求。
本申请实施例中,下载请求至少包括授权信息,授权信息中至少包括用户标识,还可以包括具有授权权限的软件的软件特征信息等,其中,用户标识可以为用户名,并不进行限制。
例如,用户注册用户名后购买了某软件,之后需要进行升级时,可以通过注册的用户名登录后,下载该软件的升级包,可以在终端上针对该软件点击升级操作,从而即可以通过终端向服务器发送该软件的升级包的下载请求。
步骤110:在确定授权信息校验通过后,根据授权信息中用户标识,确定用户标识对应的与升级包关联的所有具有授权权限的软件,并获取各软件的权限密钥。
执行步骤110时,具体包括:
S1、对授权信息进行校验。
本申请实施例中,每次软件升级,用户都需要使用授权信息才能下载升级包,服务器需要对该授权信息进行校验,判断用户是否购买过该软件,即是否对该软件有授权权限,例如,该授权信息中至少包括用户的用户名、密码、已购买的软件的软件特征信息等,用户将用户名和密码输入后,针对该购买的软件进行升级,若校验该用户的用户名、密码、软件特征信息等均正确,输入了正确的授权信息,则确定校验通过,否则确定校验不通过。
进一步地,在执行该步骤S1对授权信息进行校验之前,本申请实施例中还可以对该下载请求的IP地址进行判断,确定是否是被破解者破解后分发给其他用户进行下载的,具体地提供了一种可能的实施方式:接收终端发送的针对升级包的下载请求之后,在确定授权信息校验通过后之前进一步包括:
1)获取终端的IP地址。
在本申请实施例中,该IP地址是当终端发送下载请求的时候获取到的,用于判断IP地址是否与记录的针对升级包的历史下载请求的IP地址一致。
2)确定终端的IP地址与记录的针对升级包的历史下载请求的IP地址一致。
服务器在成功加密升级包后,会记录针对升级包的历史下载请求的IP地址,若此时接收到终端发送的下载请求,服务器会对该下载请求的IP地址与历史下载请求的IP地址进行比对,若一致,说明与历史校验通过的用户相同,可以认为是正常下载,从而可以继续执行对该下载请求的授权信息进行校验的步骤,若不一致,则可能该下载请求是针对分发的破解软件发送的,是非法用户,则可以进行告警,不执行后续对授权信息进行校验的步骤。
进一步地,若确定终端的IP地址与记录的针对升级包的历史下载请求的IP地址不一致,则生成警告并封禁终端的授权信息,以使终端无法使用授权信息。
也就是说,若不一致,服务器能够判断出是非法使用授权信息,则会生成警告并封禁终端的授权信息。
当然,也可以采用其它方式来判断和追踪是否为非法下载升级包,本申请实施例中并不进行限制。
S2、在确定授权信息校验通过后,根据授权信息中用户标识,确定用户标识对应的与升级包关联的所有具有授权权限的软件。
例如,用户标识为用户名,服务器可以根据该用户名,获取该用户名的用户对应的与升级包关联的所有具有授权权限的软件,即该用户购买的所有与该升级包关联的软件。
S3、获取确定的各软件的权限密钥。
具体地,每个软件的权限密钥是在发布时预配置的,并且每个软件的权限密钥与授权信息关联存储,其中,每个软件的权限密钥不同。
本申请实施例中,权限密钥是每个产品软件在发布的时候分配的一个密钥。每个软件的密钥都不相同,该权限密钥在云端和用户授权信息中绑定,并且,该用户标识对应的与升级包关联的所有具有授权权限的软件的权限密钥是不同的,例如,用户购买了3个软件A,分别安装使用在终端1、终端2和终端3中,用户对终端1上的软件A进行升级,通过终端1发送下载请求,则服务器可以根据该用户的用户标识,确定该用户购买了3个软件A,还可以获知该3个软件A的各自对应的软件特征信息和权限密钥,这3软件A的软件特征信息、权限密钥均是不同的。
步骤120:获取各软件的软件特征信息,并将软件特征信息进行加密,获得特征密钥。
执行步骤120,具体包括:
S1、获取各软件的软件特征信息。
S2、将软件特征信息进行加密,获得特征密钥。
具体地本申请实施例中提供了一种可能的实施方式,至少根据当前时间和本地运行噪音,生成随机算子,并通过预设加密算法,对软件特征信息和随机算子进行加密,获得特征密钥。
其中,在本申请实施例中,对生成随机算子的方式并不进行限制。
并且,在本申请实施例中,对本地运行噪音的类型并不进行限制,例如,可以是CPU运行噪音和内存运行噪音等。
其中,该预设加密算法可以采用现有技术中的加密算法,本申请实施例中并不进行限制,例如,采用对称加密算法、BASE64编码方式等。
具体地对特征信息和随机算子进行加密时,服务器可以将软件特征信息的每个特征信息进行哈希(HASH)运算获得相应的哈希值,例如,软件特征信息可以包括软件序列号,所应用的终端的硬件信息,购买软件的日期等,则可以通过哈希运算将这些软件序列号,所应用的终端的硬件信息,购买软件的日期等信息值分别生成一个固定的哈希值,再对生成的哈希值集合再进行哈希运算,最终得到一个哈希值,可以作为该软件的软件信息的特征值,然后,使用预设加密算法对该特征值和随机算子进行加密,获得特征密钥。
这样,本申请实施例中,在每次下载制作升级包时,都是生成一个特征密钥,由于每次在生成特征密钥时,都会加入随机算子,对随机算子和特征信息一起进行加密,且每个随机算子是不同且随机的,因此可以保证每次生成的特征密钥也都是不同的。
步骤130:通过各软件的权限密钥分别对特征密钥进行加密,获得各加密后的特征密钥集合,并通过特征密钥对升级包进行加密。
执行步骤130时,具体包括:
S1、通过各软件的权限密钥分别对特征密钥进行加密,获得各加密后的特征密钥集合。
在本申请实施例中,服务器使用各软件的权限密钥,分别通过每一个权限密钥分别对该特征密钥进行加密,获得各加密后的特征密钥集合。
例如,通过上述步骤120,能够获得特征密钥,并获得各软件的权限密钥,各软件的权限密钥可以组成一个权限密钥列表L1,该权限密钥列表L1由权限密钥-1至权限密钥-n组成,使用该列表L1中的每一个权限密钥分别对特征密钥进行加密,得到加密后的特征密钥列表L2,该特征密钥列表L2由n个加密后的特征密钥组成。
S2、通过特征密钥对升级包进行加密。
服务器通过软件特征信息和随机算子生成的特征密钥,对升级包进行加密,能够获得加密后的升级包。
步骤140:将各加密后的特征密钥集合和加密后的升级包,返回给终端。
本申请实施例中,执行步骤140时将各加密后的特征密钥集合和加密后的升级包,返回给终端,具体包括:
S1、根据各加密后的特征密钥集合,获得升级包的包头。
本申请实施例中,可以将各加密后的特征密钥集合,生成一个文件,该文件中包含各加密后的特征密钥,该文件就是本申请实施例中的升级包的包头,例如,将得到加密后的特征密钥列表L2生成一个文件。
并且,该升级包的包头的文件中,还可以包括升级包的包头的数据结构描述信息,例如描述包头大小、文件偏移量等信息。
S2、根据加密后的升级包,获得升级包的包尾。
具体地,服务器经过步骤130后,获取加密后的升级包,并将该加密后的升级包生成一个文件,该文件就是本申请实施例中的升级包的包尾。
S3、将升级包的包头与包尾进行拼接,生成加密升级包。
进而本申请实施例中可以将生成的包头与包尾进行拼接,组成一个新的文件,该文件就是本申请实施例中的加密升级包。
进一步地,为进一步提高安全性,保证升级包的合法性,本申请实施例中,还可以对加密升级包进行签名加密,具体地,在返回给终端之前,进一步包括:
1)获取各软件的签名密钥。
本申请实施例中,与该升级包关联的各软件的签名密钥均是相同的,云端服务器中存储有该签名密钥的私钥,可以使用该签名密钥的私钥对加密升级包进行签名。
2)使用签名密钥对加密升级包进行签名。
其中,使用签名密钥对该加密升级包进行签名,例如,可以使用非对称算法,将加密升级包进行签名,从而能够得到签名后的加密升级包。
3)获得签名后的加密升级包。
这样,通过签名后可以最终生成一个完整的多维动态加密升级包,并可以返回给终端,进而终端可以相应地进行解密来获得升级包,并进行安装,由于终端只有具有权限密钥才能解密获得特征密钥,从而通过特征密钥来解密获得升级包,使得只有具有权限密钥,即具有授权权限的用户和软件,才能相应的解密出升级包,通过授权信息下载的升级包只能安装的具有授权权限的软件中,可以限制升级包的分发,该用户下载的升级包无法分发在其他用户购买的相同软件中使用,也无法分发给该用户没有购买的相同软件中使用,例如,用户购买了10个S软件,用户通过授权信息下载的升级包只能升级这10个S软件,无法分享给其他用户购买的S软件。
进一步地,如果软件遭到破解,被大范围分发也只能大范围分发破解时使用的授权信息来对升级包进行下载,因此,为了进一步防止升级包会被大范围恶意分发,因此在本申请实施例中,还可以通过监控授权信息下载升级包的下载频率、地域信息、IP地址等来进行破解追踪,设置了一个破解追踪的过程,具体包括:
1)监控针对升级包并通过授权信息发送下载请求的下载频率和/或IP地址数目。
在本申请实施例中,若破解者想要破解签名后的加密升级包,必须使用被分发的授权信息与签名后的加密升级包,才能够非法使用该升级包,若被破解,破解者也必须将破解后的软件和授权信息一同分发,才能使破解软件能使用升级带来的益处,这样,当使用破解软件的用户使用授权信息下载升级包时,服务器能够监控针对升级包并通过授权信息发送下载请求的下载频率、IP地址数目或者终端的位置信息等,来监控下载请求是否被大范围分发。
例如,可以为下载请求的下载频率和/或IP地址数目分别设置一个阈值,该阈值可以为网络管理人员直接在服务器上设置,例如,可以将下载频率的频率阈值设置为10%,或者可以将IP地址数目的数目阈值设置为10,具体可以根据实际经验和情况进行设置,本申请实施例中对此并不限制。
2)若确定下载频率不小于设定频率阈值,和/或IP地址数目不小于设定数目阈值,则进行告警并封禁授权信息。
在本申请实施例中,服务器可以设定监控周期,在该监控周期中,检测到多次下载,并计算出下载频率,若下载频率大于等于设定的频率阈值,则进行告警并封禁授权信息,或者,监控到通过该授权信息发送的针对该软件的下载请求的IP地址数目大于等于设定的数目阈值,则进行告警并封禁授权信息。
例如,可以设定服务器的监控周期为1小时,并设定频率阈值为10%,若此时有20个处于不同位置的终端在设定的该1小时内向服务器发送了下载请求,则此时的下载频率为20%,超过预设的频率阈值,因此会进行告警,并封禁授权信息,使终端无法再使用该授权信息,或者,设定IP地址的数目阈值为10,若此时服务器获取到通过同一授权信息针对同一软件的升级包的下载请求对应有15个不同的IP地址数目,超过预设的数目阈值,会进行告警,并封禁授权信息,使终端无法再使用该授权信息。
当然也可以设置其它发生异常或大范围分发时出现参数指标,来对软件进行破解追踪,本申请实施例中不进行限制,例如终端的位置信息等,若通过同一授权信息对同一软件的升级包发送下载请求的终端的位置信息分布非常广且不固定,则可以认为软件被破解并大范围分发,则可以封禁授权信息,使得终端不能下载升级包。
这样,由于破解该软件必须具有授权信息,若被破解并大范围分发,也需要分发授权信息才能在云端下载升级包,这是云端服务器可以监控到下载升级包的异常,从而可以进行破解追踪,提高了升级包被大范围扩散分发的难度,从而极大限制了破解与分发,提高软件的安全性。
基于上述实施例,下面对本申请实例中制作签名后的加密升级包的基本原理进行说明,以权限密钥为密钥A,特征密钥为密钥C,签名密钥为密钥B为例进行说明,具体参阅图2所示,为本申请实施例中签名后的加密升级包的原理结构图。
1)服务器接收到下载请求时,可以对升级包进行动态制作,在制作签名后的加密升级包时,先获取确定的各软件的权限密钥。
例如,服务器确定出用户标识对应的与升级包关联的所有具有授权权限的软件有n个,对应的权限密钥即可以对应为图2中的密钥A-1至密钥A-n,并且,密钥A-1至密钥A-n可以组成一个权限密钥列表L1。
2)服务器可以根据各软件的软件特征信息和随机算子,加密获得特征密钥。
3)进而可以通过各软件的权限密钥分别对特征密钥进行加密,获得各加密后的特征密钥集合。例如,参阅图2所示,密钥A-1至密钥A-n生成了一个权限密钥列表L1,然后使用权限密钥列表L1中的密钥A-1对密钥C进行加密,可以生成一个加密后的密钥C,使用权限密钥列表L1中的密钥A-2对密钥C进行加密,可以生成另一个加密后的密钥C,以此类推,使用权限密钥列表L1中的密钥A-n对密钥C进行加密,可以生成n个加密后的密钥C。
进而这n个加密后的密钥C可以构成一个加密后的特征密钥列表L2,再将加密后的特征密钥列表L2生成一个文件,即获得升级包的包头。
4)通过特征密钥对升级包进行加密,具体地,参阅图2所示,通过密钥C加密升级包,获得加密后的升级包,即获得升级包的包尾。
从而将升级包的包头与升级包的包尾进行拼接,生成加密升级包。
5)最后再使用签名密钥对加密升级包进行签名,获得签名后的加密升级包。即参阅图2所示,签名密钥对应为图2中的密钥B,使用密钥B对包括包头和包尾的整个加密升级包进行签名,获得签名后的加密升级包。
这样,在升级包申请下载时进行打包加密,通过将软件特征信息和随机算子进行加密生成特征密钥,然后用各软件的权限密钥对特征密钥进行加密,同时,服务器使用特征密钥对升级包也进行加密,将加密后的特征密钥和加密后的升级包拼接,获得加密升级包,再对加密升级包进行签名,这样,即使终端在得到签名后的加密升级包后,也需要先解密获得特征密钥,从而获得升级包,但是只有具有权限密钥的终端才能够解密获得特征密钥,因此使用本申请实施例的这种方法,可以使得没有权限的终端无法将本申请实施例中生成的签名后的加密升级包进行解密,因此可以对升级包的使用进行限制,大大降低了软件被大范围非法使用的可能性。
基于上述实施例,本申请实施例中还相应提供了一种升级包解密方法,具体参阅图3所示,为本申请实施例中一种升级包解密方法的流程图,主要应用于终端,具体包括:
步骤300:获取软件的加密升级包。
其中,加密升级包中至少包括各加密后的特征密钥集合和加密后的升级包,各加密后的特征密钥集合是服务器通过各软件的权限密钥分别对特征密钥加密后获得的,加密后的升级包是服务器通过特征密钥对升级包加密获得的,各软件是同一用户标识对应的与升级包关联的所有具有授权权限的软件。
本申请实施例提供的这种方法,在获取软件的加密升级包时,具体包括:
S1:获取签名后的加密升级包。
具体地,本申请实施例中提供了几种终端可能的获取签名后的加密升级包的方式,可以是终端通过使用授权信息直接下载,由服务器返回的签名后的加密升级包。
或者,也可以是其它终端下载获得后分享给该终端的,进而该终端可以获得签名后的加密升级包。
S2:通过软件中的签名密钥,对签名后的加密升级包进行签名校验,获得加密升级包。
本申请实施例中,与该加密升级包关联的各软件的签名密钥均是相同的,软件内部存储有该签名密钥的公钥,可以使用该签名密钥的公钥对加密升级包进行签名校验,从而可以获得加密升级包。
步骤310:通过软件的授权信息,获取软件对应的权限密钥。
本申请实施例中,每个软件都有其相应的授权信息,通过使用该软件的授权信息,可以获取到软件对应的权限密钥。例如,软件1通过与其对应的授权信息,能够获取到该软件1对应的权限密钥1。
步骤320:通过权限密钥遍历各加密后的特征密钥集合进行解密,若确定权限密钥能够解密成功,则获得特征密钥。
本申请实施例中,一个软件对应的一个权限密钥,该终端获取到自身安装的该升级包对应的软件的权限密钥后,可以基于自身的权限密钥对各加密后的特征密钥集合进行解密,若该终端中的该软件具有授权权限,则确定可以解密成功,该终端中的该软件的权限密钥就能够将各加密后的特征密钥集合中的其中一个加密后的特征密钥进行解密,得到这个特征密钥。例如,软件1对应的权限密钥为权限密钥1,然后使用该权限密钥1对各加密后的特征密钥集合进行解密,若该软件1具有授权权限,则必然各加密后的特征密钥集合中有一个是通过权限密钥1对特征密钥加密获得的,则就可以通过该权限密钥1对其中一个加密后的特征密钥进行解密,获得特征密钥。
这样,若该终端中的与升级包关联的软件没有授权权限,则确定解密失败,该终端获取的该软件的权限密钥就无法对各加密后的特征密钥集合进行解密,也就无法获得特征密钥,从而该终端也就无法获得该升级包,不能进行安装升级,这样也实现了升级包只能升级特定范围的具有授权权限的软件,从而通过限制破解者分发升级包的行为来限制破解后的软件被大范围使用,提高软件安全性。
步骤330:通过特征密钥对加密后的升级包进行解密,获得升级包。
这样,通过执行步骤320,若能够获得特征密钥,则通过特征密钥就可以对加密后的升级包进行解密操作,从而能够获得升级包。
进而,用户可以使用解密后的升级包,来升级对应的软件。
这样,终端在获取到签名后的加密升级包后,对该签名后的加密升级包进行签名校验,再通过权限密钥与加密后的特征密钥的关联关系,只有具有相应权限密钥的终端才能解密出特征密钥,可以对其中一个加密后的特征密钥进行解密,获得特征密钥,才能够解密获得升级包,通过本申请实施例的这种方法,签名后的加密升级包只能安装在有相应授权密钥的终端上,进而可以限制其它终端下载使用该升级包,提高了软件的安全性。
基于上述实施例,下面采用具体应用场景对本申请实施例中升级包的加密和解密整体进行说明,以从该终端使用授权信息下载,服务器打包加密升级包,从而终端服务器返回的加密升级包并可以解密成功,能够获得升级包的场景为例,具体参阅图4所示,为本申请实施例中一种升级包加密和解密方法的流程图。
步骤400:终端向服务器发送针对升级包的下载请求。
具体地,该下载请求中至少包括授权信息,授权信息中至少包括用户名及密码等,本申请实施例中,对此并不进行限制。
步骤401:服务器判断授权信息是否能通过校验,若是,则执行步骤402,若否,则执行步骤403。
步骤402:结束。
进一步地,本申请实施例中还可以在没有通过校验时,生成没有通过校验的信息,并发送给终端,以使终端能够知悉没有通过校验。
步骤403:服务器根据授权信息中用户标识,确定用户标识对应的与升级包关联的所有具有授权权限的软件,并获取各软件的权限密钥。
其中,该用户标识对应的与升级包关联的所有具有授权权限的软件的权限密钥是不同的。
步骤404:服务器获取各软件的软件特征信息。
步骤405:服务器将软件特征信息进行加密,获得特征密钥。
具体地,本申请实施例中提供了一种可能实施方式,可以至少根据当前时间和本地运行噪音,生成随机算子,然后对软件特征信息和随机算子同时进行加密,获取特征密钥。
步骤406:服务器通过各软件的权限密钥分别对特征密钥进行加密,获得各加密后的特征密钥集合。
各软件的权限密钥分别对特征密钥加密完成后,生成的各加密后的特征密钥集合能够组成一个列表,并且服务器可以将该列表生成一个文件,该文件就是升级包的包头。
步骤407:服务器通过特征密钥对升级包进行加密。
具体地,服务器根据在执行完步骤406后生成的特征密钥,对升级包进行加密,进而获得加密后的升级包,该加密后的升级包就是升级包的包尾。
步骤408:服务器生成加密升级包。
具体地,该加密升级包是由升级包的包头与包尾进行拼接组成的。
步骤409:服务器使用签名密钥对加密升级包进行签名,获得签名后的加密升级包。
具体地,在使用签名密钥对加密升级包进行签名时,可以使用非对称算法,将加密升级包进行签名,从而能够得到签名后的加密升级包,本申请实施例对此并不限制。
进一步地,当获得签名后的加密升级包后,服务器将该签名后的加密升级包再发送至终端,进而终端可以获取到该签名后的加密升级包,并进行解密来安装使用该升级包,具体如下述步骤410-步骤412。
步骤410:终端获取签名后的加密升级包。
具体地,加密升级包中至少包括各加密后的特征密钥集合和加密后的升级包,各加密后的特征密钥集合是服务器通过各软件的权限密钥分别对特征密钥加密后获得的,加密后的升级包是服务器通过特征密钥对升级包加密获得的,各软件是同一用户标识对应的与升级包关联的所有具有授权权限的软件。
步骤411:终端将签名后的加密升级包进行签名校验,获得加密升级包。
步骤412:终端获取对应的权限密钥,并通过权限密钥对各加密后的特征密钥集合进行解密,获得特征密钥。
具体地,本申请实施例中,在获得各加密后的特征密钥集合后,可以使用权限密钥对其中一个加密后的特征密钥解密,得到特征密钥。
步骤413:终端通过特征密钥对加密后的升级包进行解密,获得升级包。
步骤414:终端使用升级包对软件进行升级。
这样,终端通过授权信息下载升级包,服务器在升级包申请下载时进行加密打包,可以实时生成特征密钥,并使用与该终端的用户对应的该升级包关联的所有具有授权权限的软件的权限密钥对特征密钥加密,获得各加密后的特征密钥集合,并且使用特征密钥对升级包进行加密,获得加密后的升级包,进而可以将加密后的特征密钥与加密后的升级包组成加密升级包,再使用签名密钥生成签名后的加密升级包,终端获取到签名后的加密升级包后,需要进行相应的解密才能获得该升级包,由于各加密后的特征密钥集合与权限密钥是相关的,因此只有具有授权权限的软件的权限密钥,才能够解密出特征密钥,这样,每次下载时动态生成加密的升级包,用户需要使用授权信息才能够下载,并且通过授权信息下载的升级包只能安装到该用户的具有授权权限的软件中,从而能够对升级包的分发进行限制,使得没有权限的终端无法使用升级包,从而大大降低了升级包被破解并大范围分发的可能性。
基于同一发明构思,本申请实施例中还提供了一种升级包加密装置,该升级包加密装置例如可以是前述实施例中的服务器,该升级包加密装置可以是硬件结构、软件模块、或硬件结构加软件模块。基于上述实施例,参阅图5所示为本申请实施例中升级包加密装置,具体包括:
接收模块501,用于接收终端发送的针对升级包的下载请求,其中,所述下载请求中至少包括授权信息;
第一获取模块502,用于在确定所述授权信息校验通过后,根据所述授权信息中用户标识,确定所述用户标识对应的与所述升级包关联的所有具有授权权限的软件,并获取各软件的权限密钥;
第一加密模块503,用于获取各软件的软件特征信息,并将所述软件特征信息进行加密,获得特征密钥;
第二加密模块504,用于通过各软件的权限密钥分别对所述特征密钥进行加密,获得各加密后的特征密钥集合,并通过所述特征密钥对所述升级包进行加密;
返回模块505,用于将所述各加密后的特征密钥集合和加密后的升级包,返回给所述终端。
可选的,第一加密模块503具体用于:
至少根据当前时间和本地运行噪音,生成随机算子;
通过预设加密算法,对所述软件特征信息和所述随机算子进行加密,获得特征密钥。
可选的,返回模块505具体用于:
根据所述各加密后的特征密钥集合,获得所述升级包的包头;
根据所述加密后的升级包,获得所述升级包的包尾;
将所述升级包的所述包头与所述包尾进行拼接,生成加密升级包。
可选的,返回给所述终端之前,进一步包括:
第二获取模块506,用于获取所述各软件的签名密钥;
签名模块507,用于使用所述签名密钥对所述加密升级包进行签名,获得签名后的加密升级包。
可选的,接收终端发送的针对升级包的下载请求之后,在确定所述授权信息校验通过后之前进一步包括:
第三获取模块508,用于获取所述终端的IP地址;
确定模块509,用于确定所述终端的IP地址与记录的针对所述升级包的历史下载请求的IP地址一致。
可选的,进一步包括:
第一告警模块510,用于若确定所述终端的IP地址与记录的针对所述升级包的历史下载请求的IP地址不一致,则生成警告并封禁所述终端的授权信息,以使所述终端无法使用所述授权信息。
可选的,进一步包括:
监控模块511,用于监控针对所述升级包并通过所述授权信息发送下载请求的下载频率和/或IP地址数目;
第二告警模块512,用于若确定所述下载频率不小于设定频率阈值,和/或IP地址数目不小于设定数目阈值,则进行告警并封禁所述授权信息。
可选的,每个软件的权限密钥是在发布时预配置的,并且每个软件的权限密钥与授权信息关联存储,其中,每个软件的权限密钥不同。
基于同一发明构思,本申请实施例中还提供了一种升级包解密装置,该升级包解密装置例如可以是前述实施例中的终端,该升级包解密装置可以是硬件结构、软件模块、或硬件结构加软件模块。基于上述实施例,参阅图6所示为本申请实施例中升级包解密装置,具体包括:
第一获取模块601,用于获取软件的加密升级包,所述加密升级包中至少包括各加密后的特征密钥集合和加密后的升级包,所述各加密后的特征密钥集合是服务器通过各软件的权限密钥分别对所述特征密钥加密后获得的,所述加密后的升级包是服务器通过所述特征密钥对所述升级包加密获得的,所述各软件是同一用户标识对应的与所述升级包关联的所有具有授权权限的软件;
第二获取模块602,用于通过所述软件的授权信息,获取所述软件对应的权限密钥;
第一解密模块603,用于通过所述权限密钥遍历所述各加密后的特征密钥集合进行解密,若确定所述权限密钥能够解密成功,则获得所述特征密钥;
第二解密模块604,用于通过所述特征密钥对所述加密后的升级包进行解密,获得所述升级包。
可选的,第一获取模块具体用于:
获取签名后的加密升级包;
通过所述软件中的签名密钥,对所述签名后的加密升级包进行签名校验,获得所述加密升级包。
可选的,每个软件的权限密钥是在发布时预配置的,并且每个软件的权限密钥与授权信息关联存储,其中,每个软件的权限密钥不同。
基于上述实施例,参阅图7所示为本申请实施例中电子设备的结构示意图。
本申请实施例提供了一种电子设备,该电子设备可以包括处理器710(CenterProcessing Unit,CPU)、存储器720、输入设备730和输出设备740等,输入设备730可以包括键盘、鼠标、触摸屏等,输出设备740可以包括显示设备,如液晶显示器(Liquid CrystalDisplay,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器720可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器710提供存储器720中存储的程序指令和数据。在本申请实施例中,存储器720可以用于存储本申请实施例中任一种升级包加密、解密方法的程序。
处理器710通过调用存储器720存储的程序指令,处理器710用于按照获得的程序指令执行本申请实施例中任一种升级包加密、解密方法。
基于上述实施例,本申请实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的升级包加密、解密方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (24)

1.一种升级包加密方法,其特征在于,包括:
接收终端发送的针对升级包的下载请求,其中,所述下载请求中至少包括授权信息;
在确定所述授权信息校验通过后,根据所述授权信息中用户标识,确定所述用户标识对应的与所述升级包关联的所有具有授权权限的软件,并获取各软件的权限密钥;
获取各软件的软件特征信息,并将所述软件特征信息进行加密,获得特征密钥;
通过各软件的权限密钥分别对所述特征密钥进行加密,获得各加密后的特征密钥集合,并通过所述特征密钥对所述升级包进行加密;
将所述各加密后的特征密钥集合和加密后的升级包,返回给所述终端。
2.如权利要求1所述的方法,其特征在于,将所述软件特征信息进行加密,获得特征密钥,具体包括:
至少根据当前时间和本地运行噪音,生成随机算子;
通过预设加密算法,对所述软件特征信息和所述随机算子进行加密,获得特征密钥。
3.如权利要求1所述的方法,其特征在于,将所述各加密后的特征密钥集合和加密后的升级包,返回给所述终端,具体包括:
根据所述各加密后的特征密钥集合,获得所述升级包的包头;
根据所述加密后的升级包,获得所述升级包的包尾;
将所述升级包的所述包头与所述包尾进行拼接,生成加密升级包。
4.如权利要求3所述的方法,其特征在于,返回给所述终端之前,进一步包括:
获取所述各软件的签名密钥;
使用所述签名密钥对所述加密升级包进行签名,获得签名后的加密升级包。
5.如权利要求1所述的方法,其特征在于,接收终端发送的针对升级包的下载请求之后,在确定所述授权信息校验通过后之前进一步包括:
获取所述终端的IP地址;
确定所述终端的IP地址与记录的针对所述升级包的历史下载请求的IP地址一致。
6.如权利要求5所述的方法,其特征在于,进一步包括:
若确定所述终端的IP地址与记录的针对所述升级包的历史下载请求的IP地址不一致,则生成警告并封禁所述终端的授权信息,以使所述终端无法使用所述授权信息。
7.如权利要求1所述的方法,其特征在于,进一步包括:
监控针对所述升级包并通过所述授权信息发送下载请求的下载频率和/或IP地址数目;
若确定所述下载频率不小于设定频率阈值,和/或IP地址数目不小于设定数目阈值,则进行告警并封禁所述授权信息。
8.如权利要求1所述的方法,其特征在于,每个软件的权限密钥是在发布时预配置的,并且每个软件的权限密钥与授权信息关联存储,其中,每个软件的权限密钥不同。
9.一种升级包解密方法,其特征在于,包括:
获取软件的加密升级包,所述加密升级包中至少包括各加密后的特征密钥集合和加密后的升级包,所述各加密后的特征密钥集合是服务器通过各软件的权限密钥分别对所述特征密钥加密后获得的,所述加密后的升级包是服务器通过所述特征密钥对所述升级包加密获得的,所述各软件是同一用户标识对应的与所述升级包关联的所有具有授权权限的软件;
通过所述软件的授权信息,获取所述软件对应的权限密钥;
通过所述权限密钥遍历所述各加密后的特征密钥集合进行解密,若确定所述权限密钥能够解密成功,则获得所述特征密钥;
通过所述特征密钥对所述加密后的升级包进行解密,获得所述升级包。
10.如权利要求9所述的方法,其特征在于,获取软件的加密升级包,具体包括:
获取签名后的加密升级包;
通过所述软件中的签名密钥,对所述签名后的加密升级包进行签名校验,获得所述加密升级包。
11.如权利要求9所述的方法,其特征在于,每个软件的权限密钥是在发布时预配置的,并且每个软件的权限密钥与授权信息关联存储,其中,每个软件的权限密钥不同。
12.一种升级包加密装置,其特征在于,包括:
接收模块,用于接收终端发送的针对升级包的下载请求,其中,所述下载请求中至少包括授权信息;
第一获取模块,用于在确定所述授权信息校验通过后,根据所述授权信息中用户标识,确定所述用户标识对应的与所述升级包关联的所有具有授权权限的软件,并获取各软件的权限密钥;
第一加密模块,用于获取各软件的软件特征信息,并将所述软件特征信息进行加密,获得特征密钥;
第二加密模块,用于通过各软件的权限密钥分别对所述特征密钥进行加密,获得各加密后的特征密钥集合,并通过所述特征密钥对所述升级包进行加密;
返回模块,用于将所述各加密后的特征密钥集合和加密后的升级包,返回给所述终端。
13.如权利要求12所述的装置,其特征在于,第一加密模块具体用于:
至少根据当前时间和本地运行噪音,生成随机算子;
通过预设加密算法,对所述软件特征信息和所述随机算子进行加密,获得特征密钥。
14.如权利要求12所述的装置,其特征在于,返回模块具体用于:
根据所述各加密后的特征密钥集合,获得所述升级包的包头;
根据所述加密后的升级包,获得所述升级包的包尾;
将所述升级包的所述包头与所述包尾进行拼接,生成加密升级包。
15.如权利要求13所述的装置,其特征在于,返回给所述终端之前,进一步包括:
第二获取模块,用于获取所述各软件的签名密钥;
签名模块,用于使用所述签名密钥对所述加密升级包进行签名,获得签名后的加密升级包。
16.如权利要求12所述的装置,其特征在于,接收终端发送的针对升级包的下载请求之后,在确定所述授权信息校验通过后之前进一步包括:
第三获取模块,用于获取所述终端的IP地址;
确定模块,用于确定所述终端的IP地址与记录的针对所述升级包的历史下载请求的IP地址一致。
17.如权利要求16所述的装置,其特征在于,进一步包括:
第一告警模块,用于若确定所述终端的IP地址与记录的针对所述升级包的历史下载请求的IP地址不一致,则生成警告并封禁所述终端的授权信息,以使所述终端无法使用所述授权信息。
18.如权利要求12所述的装置,其特征在于,进一步包括:
监控模块,用于监控针对所述升级包并通过所述授权信息发送下载请求的下载频率和/或IP地址数目;
第二告警模块,用于若确定所述下载频率不小于设定频率阈值,和/或IP地址数目不小于设定数目阈值,则进行告警并封禁所述授权信息。
19.如权利要求12所述的装置,其特征在于,每个软件的权限密钥是在发布时预配置的,并且每个软件的权限密钥与授权信息关联存储,其中,每个软件的权限密钥不同。
20.一种升级包解密装置,其特征在于,包括:
第一获取模块,用于获取软件的加密升级包,所述加密升级包中至少包括各加密后的特征密钥集合和加密后的升级包,所述各加密后的特征密钥集合是服务器通过各软件的权限密钥分别对所述特征密钥加密后获得的,所述加密后的升级包是服务器通过所述特征密钥对所述升级包加密获得的,所述各软件是同一用户标识对应的与所述升级包关联的所有具有授权权限的软件;
第二获取模块,用于通过所述软件的授权信息,获取所述软件对应的权限密钥;
第一解密模块,用于通过所述权限密钥遍历所述各加密后的特征密钥集合进行解密,若确定所述权限密钥能够解密成功,则获得所述特征密钥;
第二解密模块,用于通过所述特征密钥对所述加密后的升级包进行解密,获得所述升级包。
21.如权利要求20所述的装置,其特征在于,第一获取模块具体用于:
用于获取签名后的加密升级包;
用于通过所述软件中的签名密钥,对所述签名后的加密升级包进行签名校验,获得所述加密升级包。
22.如权利要求20所述的装置,其特征在于,每个软件的权限密钥是在发布时预配置的,并且每个软件的权限密钥与授权信息关联存储,其中,每个软件的权限密钥不同。
23.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-8或9-11任一项所述方法的步骤。
24.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1-8或9-11任一项所述方法。
CN201910919009.5A 2019-09-26 2019-09-26 一种升级包加密、解密方法及装置 Active CN110619194B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910919009.5A CN110619194B (zh) 2019-09-26 2019-09-26 一种升级包加密、解密方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910919009.5A CN110619194B (zh) 2019-09-26 2019-09-26 一种升级包加密、解密方法及装置

Publications (2)

Publication Number Publication Date
CN110619194A true CN110619194A (zh) 2019-12-27
CN110619194B CN110619194B (zh) 2021-10-01

Family

ID=68924253

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910919009.5A Active CN110619194B (zh) 2019-09-26 2019-09-26 一种升级包加密、解密方法及装置

Country Status (1)

Country Link
CN (1) CN110619194B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112579125A (zh) * 2020-12-10 2021-03-30 四川虹微技术有限公司 一种固件升级方法、装置、电子设备和存储介质
WO2023137989A1 (zh) * 2022-01-24 2023-07-27 中国第一汽车股份有限公司 一种车辆数据升级防护方法、系统以及车辆

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050027545A1 (en) * 2003-07-30 2005-02-03 Goel Anil Kumar Subscription management
US20050132357A1 (en) * 2003-12-16 2005-06-16 Microsoft Corporation Ensuring that a software update may be installed or run only on a specific device or class of devices
CN102016792A (zh) * 2008-03-25 2011-04-13 高通股份有限公司 用于管理无线通信环境中的小窗口的设备和方法
CN102081717A (zh) * 2011-02-25 2011-06-01 金洋 一种使用元数据保护正版软件的方法
CN106778285A (zh) * 2016-12-09 2017-05-31 美的智慧家居科技有限公司 用于对设备进行升级的方法、装置
CN107231490A (zh) * 2017-07-19 2017-10-03 中国银行股份有限公司 动态更新ios系统应用程序的方法、客户端及服务器
CN107329787A (zh) * 2017-06-27 2017-11-07 广州市鸿远电子科技有限公司 一种更新终端设备程序方法
CN108563927A (zh) * 2018-04-26 2018-09-21 惠州市德赛西威汽车电子股份有限公司 一种主机升级软件的打包加密方法
CN108566381A (zh) * 2018-03-19 2018-09-21 百度在线网络技术(北京)有限公司 一种安全升级方法、装置、服务器、设备和介质
US10089099B2 (en) * 2015-06-05 2018-10-02 Cisco Technology, Inc. Automatic software upgrade
CN109391936A (zh) * 2018-09-19 2019-02-26 四川长虹电器股份有限公司 一种ota升级包加密下载的方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050027545A1 (en) * 2003-07-30 2005-02-03 Goel Anil Kumar Subscription management
US20050132357A1 (en) * 2003-12-16 2005-06-16 Microsoft Corporation Ensuring that a software update may be installed or run only on a specific device or class of devices
CN102016792A (zh) * 2008-03-25 2011-04-13 高通股份有限公司 用于管理无线通信环境中的小窗口的设备和方法
CN102081717A (zh) * 2011-02-25 2011-06-01 金洋 一种使用元数据保护正版软件的方法
US10089099B2 (en) * 2015-06-05 2018-10-02 Cisco Technology, Inc. Automatic software upgrade
CN106778285A (zh) * 2016-12-09 2017-05-31 美的智慧家居科技有限公司 用于对设备进行升级的方法、装置
CN107329787A (zh) * 2017-06-27 2017-11-07 广州市鸿远电子科技有限公司 一种更新终端设备程序方法
CN107231490A (zh) * 2017-07-19 2017-10-03 中国银行股份有限公司 动态更新ios系统应用程序的方法、客户端及服务器
CN108566381A (zh) * 2018-03-19 2018-09-21 百度在线网络技术(北京)有限公司 一种安全升级方法、装置、服务器、设备和介质
CN108563927A (zh) * 2018-04-26 2018-09-21 惠州市德赛西威汽车电子股份有限公司 一种主机升级软件的打包加密方法
CN109391936A (zh) * 2018-09-19 2019-02-26 四川长虹电器股份有限公司 一种ota升级包加密下载的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112579125A (zh) * 2020-12-10 2021-03-30 四川虹微技术有限公司 一种固件升级方法、装置、电子设备和存储介质
WO2023137989A1 (zh) * 2022-01-24 2023-07-27 中国第一汽车股份有限公司 一种车辆数据升级防护方法、系统以及车辆

Also Published As

Publication number Publication date
CN110619194B (zh) 2021-10-01

Similar Documents

Publication Publication Date Title
EP3453136B1 (en) Methods and apparatus for device authentication and secure data exchange between a server application and a device
CN110597538B (zh) 一种基于ota升级系统的软件升级方法和ota升级系统
US10027683B2 (en) Shared symmetric key encryption
US20110246783A1 (en) Information processing device, management device, illegal module detection system, illegal module detection method, recording medium on which illegal module detection program is recorded, management method, recording medium and integrated circuit on which management method is recorded
CN104639506B (zh) 对应用程序安装进行管控的方法、系统与终端
CN110855426B (zh) 一种用于软件使用授权的方法
CN103827881A (zh) 用于设备操作系统中的动态平台安全的方法和系统
CN106936588B (zh) 一种硬件控制锁的托管方法、装置及系统
CN106027503A (zh) 一种基于tpm的云存储数据加密方法
US20180204004A1 (en) Authentication method and apparatus for reinforced software
CN110414248B (zh) 一种调试微处理器的方法及微处理器
US11258601B1 (en) Systems and methods for distributed digital rights management with decentralized key management
US8667270B2 (en) Securely upgrading or downgrading platform components
CN110619194B (zh) 一种升级包加密、解密方法及装置
WO2016165215A1 (zh) 应用程序加载代码签名的方法和装置
CN109446752B (zh) 版权文件管理方法、系统、设备及存储介质
CN111338841A (zh) 数据处理方法、装置、设备和存储介质
CN116484379A (zh) 系统启动方法、包含可信计算基软件的系统、设备及介质
CN101136048A (zh) 软件认证方法
CN106971105B (zh) 一种基于iOS的应用程序遭遇假面攻击的防御方法
KR101711024B1 (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
CN108076352B (zh) 一种视频防盗方法和系统
CN115795438A (zh) 应用程序授权的方法、系统及可读存储介质
CN106415565B (zh) 保护软件项目
CN109104393B (zh) 一种身份认证的方法、装置和系统

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
CB02 Change of applicant information

Address after: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Applicant after: NSFOCUS Technologies Group Co.,Ltd.

Applicant after: NSFOCUS TECHNOLOGIES Inc.

Address before: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Applicant before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd.

Applicant before: NSFOCUS TECHNOLOGIES Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant