一种软件归属的验证方法及装置制造方法

文档序号:6640837阅读:210来源:国知局
一种软件归属的验证方法及装置制造方法
【专利摘要】本申请提供了一种软件归属的验证方法及装置,验证目标软件的软件包中是否包括第一文件和第二文件、目标软件的软件包中的第一列表文件的数字摘要与本地列表文件的第二列表文件的数字摘要是否相同、目标软件的软件包中的第一归属标识与本地的第二归属标识是否相同以及目标软件的软件包中的各个目标软件的属性与本地各个目标软件的属性是否相同,因为第二列表文件的数字摘要、第二归属标识以及本地各个目标软件的属性均来自于设备本地的注册数据,因此,使用上述依据能够验证待安装的软件包是否归属于此设备,在待安装的软件包不归属于此设备的情况下,可以拒绝安装或更新,从而提高软件包安装的安全性。
【专利说明】一种软件归属的验证方法及装置

【技术领域】
[0001]本申请涉及电子信息领域,尤其涉及一种软件归属的验证方法及装置。

【背景技术】
[0002]随着计算机技术及电子信息技术的发展,软件安装已经出现在各个领域中,而对于特种设备领域而言,例如轨道交通领域,对于软件安装的安全性有很高的要求,以保证设备运行的安全性。
[0003]而目前,针对于轨道交通领域,软件安装的过程中还存在着安全漏洞,例如,向设备中安装的软件不是该设备的正版软件,或者,虽然是本设备的正版软件,但是软件中的某些内容已被篡改,一旦出现上述情况,轻则导致设备不能正常运行,重则导致安全事故。
[0004]可见,如何提高软件安装过程中的安全性,成为目前亟待解决的问题。


【发明内容】

[0005]本申请提供了一种软件归属的验证方法及装置,目的在于解决如何提高软件安装过程中的安全性的问题。
[0006]为了实现上述目的,本申请提供了以下技术方案:
[0007]一种软件归属的验证方法,包括:
[0008]获取设备本地的注册数据,所述设备本地的注册数据中至少包括列表文件、归属证书文件以及软件文件;
[0009]检测目标软件的软件包中是否包括第一文件和第二文件,如果是,则从所述目标软件的软件包中获取第一列表文件的数字摘要,所述第一文件为名称与所述列表文件的名称相同的文件,所述第二文件为名称与所述归属证书文件的名称相同的文件;
[0010]判断所述第一列表文件的数字摘要与第二列表文件的数字摘要是否相同,如果是,从所述目标软件的软件包中获取第一归属标识,所述第二列表文件的数字摘要为依据所述注册数据生成的列表文件的数字摘要;
[0011]判断所述第一归属标识与本地的第二归属标识是否相同,如果是,则依次比较所述目标软件的软件包中包括的各个目标文件与所述注册数据中指示的各个目标文件的属性是否相同,如果是,则确定所述目标软件的软件包通过验证。
[0012]可选地,在所述检测目标软件的软件包中是否包括第一文件和第二文件之前,还包括:
[0013]接收所述目标软件的软件包;
[0014]从本地获取本地验证所需的注册数据密文;
[0015]使用本地的第一密钥解密所述注册数据密文,获得注册数据明文;
[0016]从所述注册数据明文中获取加密方式以及所述列表文件的第二密钥、所述归属证书文件的第三密钥以及所述软件文件的第四密钥;
[0017]依据所述加密方式,分别使用所述第二密钥、所述第三密钥以及第四密钥,解析出所述列表文件、所述归属证书文件和所述软件文件。
[0018]可选地,所述检测目标软件的软件包中是否包括第一文件和第二文件包括:
[0019]在所述列表文件、所述归属证书文件和所述软件文件均解密成功的情况下,检测目标软件的软件包中是否包括第一文件和第二文件。
[0020]可选地,从所述目标软件的软件包中获取第一列表文件的数字摘要包括:
[0021]从所述目标软件的软件包中获取列表文件数字摘要存放文件名、起始位置与长度;
[0022]依据所述列表文件数字摘要存放文件名、起始位置与长度,获取第一列表文件的数字摘要。
[0023]可选地,所述第二列表文件的数字摘要的获取过程包括:
[0024]从所述注册数据中获取本地列表文件内容;
[0025]利用所述本地列表文件内容,生成第二列表文件数字摘要。
[0026]可选地,所述判断所述第一归属标识与本地的第二归属标识是否相同包括:
[0027]从所述目标软件的软件包中获取归属证书的数字摘要存放文件名、起始位置与长度;
[0028]依据所述归属证书的数字摘要存放文件名、起始位置与长度,获取第一归属证书文件的数字摘要;
[0029]从所述注册数据中获取本地归属证书文件内容;
[0030]根据所述本地归属证书文件内容,生成第二归属证书文件的数字摘要;
[0031]比较所述第一归属证书文件的数字摘要与所述第二归属证书文件的数字摘要是否相同,如果是,从所述目标软件的软件包中获取第一归属标识,并从所述注册数据中获取本地的第二归属标识;
[0032]比较所述第一归属标识与第二归属标识是否相同。
[0033]可选地,所述依次比较所述目标软件的软件包中包括的各个目标文件与所述注册数据中指示的各个目标文件的属性是否相同,如果是,则确定所述目标软件的软件包通过验证包括:
[0034]比对所述目标软件的软件包中的第一目标文件列表与所述注册数据中的第二目标文件列表是否相同,如果是,则依次比较所述第一目标文件列表中的各个目标文件的数字摘要与所述第二目标文件列表中的各个目标文件的数字摘要,如果均相同,则确定所述目标软件的软件包通过验证。
[0035]可选地,还包括:
[0036]在检测到目标软件的软件包中不包括第一文件和第二文件、或者,在所述第一列表文件数字摘要与第二列表文件数字摘要不同、或者所述第一归属标识与第二归属标识不同、或者所述目标软件的软件包中包括的各个目标文件与所述注册数据中指示的各个目标文件的属性不同的情况下,确定所述目标软件的归属验证失败。
[0037]一种软件归属的验证装置,包括:
[0038]第一获取模块,用于获取设备本地的注册数据,所述设备本地的注册数据中至少包括列表文件、归属证书文件以及软件文件;
[0039]检测模块,用于检测目标软件的软件包中是否包括第一文件和第二文件;
[0040]第二获取模块,用于如果所述目标软件的软件包中包括第一文件和第二文件,则从所述目标软件的软件包中获取第一列表文件的数字摘要,所述第一文件为名称与所述列表文件的名称相同的文件,所述第二文件为名称与所述归属证书文件的名称相同的文件;
[0041]第一判断模块,用于判断所述第一列表文件的数字摘要与第二列表文件的数字摘要是否相同,所述第二列表文件的数字摘要为依据所述注册数据生成的列表文件的数字摘要;
[0042]第三获取模块,用于如果所述第一列表文件的数字摘要与第二列表文件的数字摘要相同,从所述目标软件的软件包中获取第一归属标识;
[0043]第二判断模块,用于判断所述第一归属标识与本地的第二归属标识是否相同;
[0044]比较模块,用于如果所述第一归属标识与第二归属标识相同,则依次比较所述目标软件的软件包中包括的各个目标文件与所述注册数据中指示的各个目标文件的属性是否相同,如果是,则确定所述目标软件的软件包通过验证。
[0045]可选地,还包括:
[0046]接收模块,用于在所述检测目标软件的软件包中是否包括第一文件和第二文件之前,接收所述目标软件的软件包;
[0047]解密模块,用于从本地获取本地验证所需的注册数据密文,并使用本地的第一密钥解密所述注册数据密文,获得注册数据明文;从所述注册数据明文中获取加密方式以及所述列表文件的第二密钥、所述归属证书文件的第三密钥以及所述软件文件的第四密钥;依据所述加密方式,分别使用所述第二密钥、所述第三密钥以及第四密钥,解析出所述列表文件、所述归属证书文件和所述软件文件。
[0048]可选地,所述检测模块用于检测目标软件的软件包中是否包括第一文件和第二文件包括:
[0049]所述检测模块具体用于,在所述列表文件、所述归属证书文件和所述软件文件均解密成功的情况下,检测目标软件的软件包中是否包括第一文件和第二文件。
[0050]可选地,所述第二获取模块用于从所述目标软件的软件包中获取第一列表文件的数字摘要包括:
[0051 ] 所述第二获取模块具体用于,从所述目标软件的软件包中获取列表文件数字摘要存放文件名、起始位置与长度,并依据所述列表文件数字摘要存放文件名、起始位置与长度,获取第一列表文件的数字摘要。
[0052]可选地,还包括:
[0053]第四获取模块,用于从所述注册数据中获取本地列表文件内容,利用所述本地列表文件内容,生成第二列表文件数字摘要。
[0054]可选地,所述第二判断模块用于判断所述第一归属标识与本地的第二归属标识是否相同包括:
[0055]所述第二判断模块具体用于,从所述目标软件的软件包中获取归属证书的数字摘要存放文件名、起始位置与长度;依据所述归属证书的数字摘要存放文件名、起始位置与长度,获取第一归属证书文件的数字摘要;从所述注册数据中获取本地归属证书文件内容;根据所述本地归属证书文件内容,生成第二归属证书文件的数字摘要;比较所述第一归属证书文件的数字摘要与所述第二归属证书文件的数字摘要是否相同,如果是,从所述目标软件的软件包中获取第一归属标识,并从所述注册数据中获取本地的第二归属标识;比较所述第一归属标识与第二归属标识是否相同。
[0056]可选地,所述比较模块用于依次比较所述目标软件的软件包中包括的各个目标文件与所述注册数据中指示的各个目标文件的属性是否相同,如果是,则确定所述目标软件的软件包通过验证包括:
[0057]所述比较模块具体用于,比对所述目标软件的软件包中的第一目标文件列表与所述注册数据中的第二目标文件列表是否相同,如果是,则依次比较所述第一目标文件列表中的各个目标文件的数字摘要与所述第二目标文件列表中的各个目标文件的数字摘要,如果均相同,则确定所述目标软件的软件包通过验证。
[0058]可选地,还包括:
[0059]确定模块,用于在检测到目标软件的软件包中不包括第一文件和第二文件、或者,在所述第一列表文件数字摘要与第二列表文件数字摘要不同、或者所述第一归属标识与第二归属标识不同、或者所述目标软件的软件包中包括的各个目标文件与所述注册数据中指示的各个目标文件的属性不同的情况下,确定所述目标软件的归属验证失败。
[0060]本申请所述的软件归属的验证方法及装置,将目标软件的软件包中是否包括第一文件和第二文件、目标软件的软件包中的第一列表文件的数字摘要与本地列表文件的第二列表文件的数字摘要是否相同、目标软件的软件包中的第一归属标识与本地的第二归属标识是否相同以及目标软件的软件包中的各个目标软件的属性与本地各个目标软件的属性是否相同的验证结果,作为判断目标软件的软件包是否通过归属验证的依据,因为第二列表文件的数字摘要、第二归属标识以及本地各个目标软件的属性均来自于设备本地的注册数据,因此,使用上述依据能够很好地验证待安装的软件包是否归属于此设备,在待安装的软件包不归属于此设备的情况下,则可以拒绝安装或更新,从而提高软件包安装的安全性。

【专利附图】

【附图说明】
[0061]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0062]图1为本申请实施例公开的一种软件归属的验证方法的流程图;
[0063]图2为本申请实施例公开的又一种软件归属的验证方法的流程图;
[0064]图3为本申请实施例公开的一种软件归属的验证的结构示意图。

【具体实施方式】
[0065]本申请实施例公开的软件归属的验证方法及装置,可以应用在设备安装或更新软件的过程中,现有技术中,设备接收到软件的安装包后,直接进行安装,在软件不安全的情况下(例如软件中某些数据被篡改或者软件不是正版、或者软件不应安装在此设备上,否则导致设备故障),会危害设备的安全运行,尤其在特种行业(例如轨道交通)这种危害更为显著,而本申请实施例公开的软件归属的验证方法及装置,其目的就在于提高软件安装或更新的安全性。
[0066]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0067]本申请实施例公开了一种软件归属的验证方法,如图1所示,包括:
[0068]SlOl:获取设备本地的注册数据;
[0069]本实施例中,设备本地的注册数据的数据结构的明文可以为:
[0070]1.列表文件数字摘要存储方式标志,假设为ListFileAbstrStoreFlag ;
[0071]2.归属证书文件数字摘要存储方式标志,假设为OwnerCertFileAbstrStoreFlag ;
[0072]3.软件文件数字摘要存储方式标志,假设为SoftFileAbstrStoreFlag ;
[0073]4.列表文件数字摘要存储在何种文件中,假设为ListAbstrStoreFileName
[0074]5.归属证书文件数字摘要存储在何种文件中,假设为OwnerAbstrStoreFileName ;
[0075]6.列表文件数字摘要存放起始位置,假设为ListAbstrStartPosit1n ;
[0076]7.归属证书文件数字摘要存放起始位置,假设为OwnerAbstrStartPositoin ;
[0077]8.列表文件数字摘要长度,假设为ListAbstrLength ;
[0078]9.归属证书文件数字摘要长度,假设为OwnerAbstrLength ;
[0079]10.列表文件加密密钥,假设为PublicJfeyl ;
[0080]11.列表文件解密密钥,假设为Private_Keyl ;
[0081]12.归属证书文件加密密钥,假设为Public_Key2 ;
[0082]13.归属证书文件解密密钥,假设为Private_Key2 ;
[0083]14.软件文件加密密钥,假设为Public_Key3 ;
[0084]15.软件文件解密密钥,假设为PriVate_Key3 ;
[0085]16.列表文件名,假设为ListFileName ;
[0086]17.归属证书文件名,假设为OwnerCertFileName ;
[0087]18.归属标志,假设为OwnerFlag ;
[0088]19.加解密方式标志,假设为EncryptedKind ;
[0089]20.列表文件数字摘要独立文件名标志,假设为:
[0090]ListFileAbstrFileNameFlag ;当列表文件数字摘要独立存储时,该标志起作用,用来识别列表文件的数字摘要的文件名。
[0091]21.归属证书文件数字摘要独立文件名标志,假设为:
[0092]OwnerCertFileAbstrFileNameFlag ;当归属证书文件数字摘要独立存储时,该标志起作用,用来识别归属证书文件的数字摘要的文件名。
[0093]22.软件文件数字摘要独立文件名标志,假设为!SoftFileAbstrFileNameFlag ;当软件文件数字摘要独立存储时,该标志起作用,用来识别某一个文件所对应的数字摘要文件。
[0094]在实际应用中,上述明文数据需要加密存储,以提高安全性。
[0095]S102:检测目标软件的软件包中是否包括第一文件和第二文件,如果是,则从所述目标软件的软件包中获取第一列表文件的数字摘要,所述第一文件为名称与所述列表文件的名称相同的文件,所述第二文件为名称与所述归属证书文件的名称相同的文件;
[0096]本实施例中所述的目标软件中,预先依据上述注册数据的数据结构,进行了归属配置。
[0097]S103:判断所述第一列表文件的数字摘要与第二列表文件的数字摘要是否相同,如果是,从所述目标软件的软件包中获取第一归属标识,所述第二列表文件的数字摘要为依据所述注册数据生成的列表文件的数字摘要;
[0098]S104:判断所述第一归属标识与第二归属标识是否相同,如果是,则依次比较所述目标软件的软件包中包括的各个目标文件与所述注册数据中指示的各个目标文件的属性是否相同,如果是,则确定所述目标软件的软件包通过验证。
[0099]本实施例中,使用目标软件的软件包中的第一文件和第二文件是否完整作为依据,能够保证安装包的完整性,使用数字摘要作为归属验证依据,能够保证软件包的文件内容不被篡改(文件内容被篡改后,数字摘要即发生改变);使用归属标识作为归属验证依据,能够确保安装在设备上的软件是适用在此设备中的,可见,本实施例中所述方法,从不同角度验证软件是否归属于此设备,所以能够提高软件安装和更新的安全性。
[0100]本申请实施例公开的又一种软件归属的验证方法,如图2所示,包括:
[0101]S201:目标设备接收到需要安装或更新的目标软件的软件包;
[0102]本实施例中,软件是程序、文件、数据的综合称谓,即软件包括程序、文件或者数据形式,一套软件包括多个程序文件、多个数据文件、归属证书文件、列表文件等。
[0103]S202:从设备本地获取本地验证所需的注册数据密文,获取本地文件解密密钥,使用本地的第一密钥,解密注册数据密文,形成明文数据;
[0104]S203:从注册数据明文中获取加密方式、列表文件解密密钥(假设为ListFileKey)、归属证书文件解密密钥(假设为OwnerCertFileKey)、软件文件解密密钥(假设为 SoftFileKey);
[0105]本实施例中,加密方式可以为对称加密或非对称加密,对称加密为公钥和私钥相同的加密方式,非对称加密为公钥和私钥不同的加密方式。
[0106]S204:利用 ListFileKey、OwnerCertFileKey、SoftFileKey 分别解密列表文件、归属证书文件与软件文件;
[0107]S205:判断列表文件、归属证书文件与软件文件是否均解密成功,如果是,执行S206,否则,反馈该软件归属验证失败信息;
[0108]S206:根据列表文件的名称,归属证书文件的名称,查找所接收的软件包中是否存在名称相同的文件,如果都存在,则执行S207,否则,反馈该软件归属验证失败信息;
[0109]S207:从目标软件的软件包中获取列表文件的数字摘要存放文件名、起始位置与长度,并且根据这些数据查找到第一列表文件的数字摘要,假设为:LiStFile_AbStraCtO ;
[0110]S208:依据注册数据中的列表文件名,列表文件的数字摘要存放名、起始位置及长度,归属证书的数字摘要存放文件名、起始位置及长度等信息,从注册数据中获取列表文件内容;
[0111]S209:利用列表文件内容,生成第二列表文件数字摘要,假设为:
[0112]ListFile—Abstract ;
[0113]S210:比较 ListFile_Abstract 与 ListFile_AbstractO 是否相同,如果是,则执行S211,否则,反馈该软件归属验证失败信息;
[0114]S211:从目标软件的软件包中获取归属证书的数字摘要存放文件名、起始位置与长度,并且根据这些数据获取第一归属证书文件的数字摘要,假设为:OwnerFile_AbstractO ;
[0115]S212:根据注册数据中的归属证书文件名,列表文件的数字摘要存放名、起始位置及长度,归属证书的数字摘要存放文件名、起始位置、长度等信息,从注册数据中查找到归属证书文件内容;
[0116]S213:根据归属证书文件内容,生成第二归属证书文件的数字摘要,假设为:Owner_Abstract;
[0117]S214:比较 Owner_Abstract 与 Owner_AbstractO 是否相同,如果是,执行 S215,否贝IJ,反馈该软件归属验证失败信息;
[0118]S215:从所述目标软件的软件包中获取所接收数据的第一归属证书中的归属标志,假设为:OwnerFlag_Soft,并从注册数据中获取本地的第二归属标志,假设为:OwnerFlag—local ;
[0119]S216:比较 OwnerFlag—local 与 OwnerFlag—Soft 是否相同,如果是,则执行 S217,反馈该软件归属验证失败信息;
[0120]S217:从目标软件的软件包中获取接收到的文件列表清单,即第一目标文件列表FileListO,从注册数据中的ListFile列表文件中获取需要归属验证的软件的所有文件列表清单,即第二目标文件列表,假设为FileList ;
[0121]本实施例中,文件列表清单中不包括列表文件、列表文件数字摘要密文文件、归属证书文件、归属证书数字摘要密文文件。
[0122]S218:比对两种文件列表FileListO与FileList是否相同,如果相同,则执行S219,否则,反馈该软件归属验证失败信息;
[0123]以下步骤为依次比较所述第一目标文件列表中的各个目标文件的数字摘要与所述第二目标文件列表中的各个目标文件的数字摘要,如果均相同,则确定所述目标软件的软件包通过验证的具体实现方式:
[0124]S219:设i为1,从第一个文件开始;
[0125]S220:从目标软件的软件包中获取第i个文件的数字摘要,假设为:
[0126]File—AbstractOi ;
[0127]S221:从注册数据中获取第i个文件内容,然后通过内容生成数字摘要File_Abstracti ;
[0128]S222:对比File—AbstractOi与File—Abstracti,如果比对不相同,贝丨j执行反馈该软件归属验证失败信息,否则,执行S213 ;
[0129]S223:判断是否是最后一个文件,如果是最后一个文件,则执行S224,否则i =i+Ι,转入到S220 ;
[0130]S224:反馈该软件归属验证成功信息。
[0131]本实施例中所述方法,能够有效保证软件更新或安装过程中不会发生错误,因不会因为错误地配属软件而导致设备停止运转或发生故障。
[0132]本申请实施例还公开了一种软件归属的验证装置,如图3所示,包括:
[0133]第一获取模块301,用于获取设备本地的注册数据,所述设备本地的注册数据中至少包括列表文件、归属证书文件以及软件文件;
[0134]检测模块302,用于检测目标软件的软件包中是否包括第一文件和第二文件;
[0135]第二获取模块303,用于如果所述目标软件的软件包中包括第一文件和第二文件,则从所述目标软件的软件包中获取第一列表文件的数字摘要,所述第一文件为名称与所述列表文件的名称相同的文件,所述第二文件为名称与所述归属证书文件的名称相同的文件;
[0136]第一判断模块304,用于判断所述第一列表文件的数字摘要与第二列表文件的数字摘要是否相同,所述第二列表文件的数字摘要为依据所述注册数据生成的列表文件的数字摘要;
[0137]第三获取模块305,用于如果所述第一列表文件的数字摘要与第二列表文件的数字摘要相同,从所述目标软件的软件包中获取第一归属标识;
[0138]第二判断模块306,用于判断所述第一归属标识与本地的第二归属标识是否相同;
[0139]比较模块307,用于如果所述第一归属标识与第二归属标识相同,则依次比较所述目标软件的软件包中包括的各个目标文件与所述注册数据中指示的各个目标文件的属性是否相同,如果是,则确定所述目标软件的软件包通过验证。
[0140]可选地,还可以包括:
[0141]接收模块308,用于在所述检测目标软件的软件包中是否包括第一文件和第二文件之前,接收所述目标软件的软件包;
[0142]解密模块309,用于从本地获取本地验证所需的注册数据密文,并使用本地的第一密钥解密所述注册数据密文,获得注册数据明文;从所述注册数据明文中获取加密方式以及所述列表文件的第二密钥、所述归属证书文件的第三密钥以及所述软件文件的第四密钥;依据所述加密方式,分别使用所述第二密钥、所述第三密钥以及第四密钥,解析出所述列表文件、所述归属证书文件和所述软件文件。
[0143]第四获取模块310,用于从所述注册数据中获取本地列表文件内容,利用所述本地列表文件内容,生成第二列表文件的数字摘要。
[0144]确定模块311,用于在检测到目标软件的软件包中不包括第一文件和第二文件、或者,在所述第一列表文件数字摘要与第二列表文件数字摘要不同、或者所述第一归属标识与第二归属标识不同、或者所述目标软件的软件包中包括的各个目标文件与所述注册数据中指示的各个目标文件的属性不同的情况下,确定所述目标软件的归属验证失败。
[0145]其中,进一步地,检测模块检测目标软件的软件包中是否包括第一文件和第二文件的具体实现方式可以为:在所述列表文件、所述归属证书文件和所述软件文件均解密成功的情况下,检测目标软件的软件包中是否包括第一文件和第二文件。
[0146]第二获取模块从所述目标软件的软件包中获取第一列表文件的数字摘要的具体实现方式可以为:从所述目标软件的软件包中获取列表文件数字摘要存放文件名、起始位置与长度,并依据所述列表文件数字摘要存放文件名、起始位置与长度,获取第一列表文件的数字摘要。
[0147]第二判断模块判断所述第一归属标识与本地的第二归属标识是否相同的具体实现方式可以为:从所述目标软件的软件包中获取归属证书的数字摘要存放文件名、起始位置与长度;依据所述归属证书的数字摘要存放文件名、起始位置与长度,获取第一归属证书文件的数字摘要;从所述注册数据中获取本地归属证书文件内容;根据所述本地归属证书文件内容,生成第二归属证书文件的数字摘要;比较所述第一归属证书文件的数字摘要与所述第二归属证书文件的数字摘要是否相同,如果是,从所述目标软件的软件包中获取第一归属标识,并从所述注册数据中获取本地的第二归属标识;比较所述第一归属标识与第二归属标识是否相同。
[0148]比较模块依次比较所述目标软件的软件包中包括的各个目标文件与所述注册数据中指示的各个目标文件的属性是否相同,如果是,则确定所述目标软件的软件包通过验证的具体实现方式可以为:比对所述目标软件的软件包中的第一目标文件列表与所述注册数据中的第二目标文件列表是否相同,如果是,则依次比较所述第一目标文件列表中的各个目标文件的数字摘要与所述第二目标文件列表中的各个目标文件的数字摘要,如果均相同,则确定所述目标软件的软件包通过验证。
[0149]本实施例中所述装置,从不同角度验证软件是否归属于此设备,所以能够提高软件安装和更新的安全性。
[0150]本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0151]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
[0152]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【权利要求】
1.一种软件归属的验证方法,其特征在于,包括: 获取设备本地的注册数据,所述设备本地的注册数据中至少包括列表文件、归属证书文件以及软件文件; 检测目标软件的软件包中是否包括第一文件和第二文件,如果是,则从所述目标软件的软件包中获取第一列表文件的数字摘要,所述第一文件为名称与所述列表文件的名称相同的文件,所述第二文件为名称与所述归属证书文件的名称相同的文件; 判断所述第一列表文件的数字摘要与第二列表文件的数字摘要是否相同,如果是,从所述目标软件的软件包中获取第一归属标识,所述第二列表文件的数字摘要为依据所述注册数据生成的列表文件的数字摘要; 判断所述第一归属标识与本地的第二归属标识是否相同,如果是,则依次比较所述目标软件的软件包中包括的各个目标文件与所述注册数据中指示的各个目标文件的属性是否相同,如果是,则确定所述目标软件的软件包通过验证。
2.根据权利要求1所述的方法,其特征在于,在所述检测目标软件的软件包中是否包括第一文件和第二文件之前,还包括: 接收所述目标软件的软件包; 从本地获取本地验证所需的注册数据密文; 使用本地的第一密钥解密所述注册数据密文,获得注册数据明文; 从所述注册数据明文中获取加密方式以及所述列表文件的第二密钥、所述归属证书文件的第三密钥以及所述软件文件的第四密钥; 依据所述加密方式,分别使用所述第二密钥、所述第三密钥以及第四密钥,解析出所述列表文件、所述归属证书文件和所述软件文件。
3.根据权利要求2所述的方法,其特征在于,所述检测目标软件的软件包中是否包括第一文件和第二文件包括: 在所述列表文件、所述归属证书文件和所述软件文件均解密成功的情况下,检测目标软件的软件包中是否包括第一文件和第二文件。
4.根据权利要求1或2所述的方法,其特征在于,从所述目标软件的软件包中获取第一列表文件的数字摘要包括: 从所述目标软件的软件包中获取列表文件数字摘要存放文件名、起始位置与长度;依据所述列表文件数字摘要存放文件名、起始位置与长度,获取第一列表文件的数字摘要。
5.根据权利要求4所述的方法,其特征在于,所述第二列表文件的数字摘要的获取过程包括: 从所述注册数据中获取本地列表文件内容; 利用所述本地列表文件内容,生成第二列表文件的数字摘要。
6.根据权利要求5所述的方法,其特征在于,所述判断所述第一归属标识与本地的第二归属标识是否相同包括: 从所述目标软件的软件包中获取归属证书的数字摘要存放文件名、起始位置与长度;依据所述归属证书的数字摘要存放文件名、起始位置与长度,获取第一归属证书文件的数字摘要; 从所述注册数据中获取本地归属证书文件内容; 根据所述本地归属证书文件内容,生成第二归属证书文件的数字摘要; 比较所述第一归属证书文件的数字摘要与所述第二归属证书文件的数字摘要是否相同,如果是,从所述目标软件的软件包中获取第一归属标识,并从所述注册数据中获取本地的第二归属标识; 比较所述第一归属标识与第二归属标识是否相同。
7.根据权利要求6所述的方法,其特征在于,所述依次比较所述目标软件的软件包中包括的各个目标文件与所述注册数据中指示的各个目标文件的属性是否相同,如果是,则确定所述目标软件的软件包通过验证包括: 比对所述目标软件的软件包中的第一目标文件列表与所述注册数据中的第二目标文件列表是否相同,如果是,则依次比较所述第一目标文件列表中的各个目标文件的数字摘要与所述第二目标文件列表中的各个目标文件的数字摘要,如果均相同,则确定所述目标软件的软件包通过验证。
8.根据权利要求1所述的方法,其特征在于,还包括: 在检测到目标软件的软件包中不包括第一文件和第二文件、或者,在所述第一列表文件数字摘要与第二列表文件数字摘要不同、或者所述第一归属标识与第二归属标识不同、或者所述目标软件的软件包中包括的各个目标文件与所述注册数据中指示的各个目标文件的属性不同的情况下,确定所述目标软件的归属验证失败。
9.一种软件归属的验证装置,其特征在于,包括: 第一获取模块,用于获取设备本地的注册数据,所述设备本地的注册数据中至少包括列表文件、归属证书文件以及软件文件; 检测模块,用于检测目标软件的软件包中是否包括第一文件和第二文件; 第二获取模块,用于如果所述目标软件的软件包中包括第一文件和第二文件,则从所述目标软件的软件包中获取第一列表文件的数字摘要,所述第一文件为名称与所述列表文件的名称相同的文件,所述第二文件为名称与所述归属证书文件的名称相同的文件; 第一判断模块,用于判断所述第一列表文件的数字摘要与第二列表文件的数字摘要是否相同,所述第二列表文件的数字摘要为依据所述注册数据生成的列表文件的数字摘要;第三获取模块,用于如果所述第一列表文件的数字摘要与第二列表文件的数字摘要相同,从所述目标软件的软件包中获取第一归属标识; 第二判断模块,用于判断所述第一归属标识与本地的第二归属标识是否相同; 比较模块,用于如果所述第一归属标识与第二归属标识相同,则依次比较所述目标软件的软件包中包括的各个目标文件与所述注册数据中指示的各个目标文件的属性是否相同,如果是,则确定所述目标软件的软件包通过验证。
10.根据权利要求9所述的装置,其特征在于,还包括: 接收模块,用于在所述检测目标软件的软件包中是否包括第一文件和第二文件之前,接收所述目标软件的软件包; 解密模块,用于从本地获取本地验证所需的注册数据密文,并使用本地的第一密钥解密所述注册数据密文,获得注册数据明文;从所述注册数据明文中获取加密方式以及所述列表文件的第二密钥、所述归属证书文件的第三密钥以及所述软件文件的第四密钥;依据所述加密方式,分别使用所述第二密钥、所述第三密钥以及第四密钥,解析出所述列表文件、所述归属证书文件和所述软件文件。
11.根据权利要求10所述的装置,其特征在于,所述检测模块用于检测目标软件的软件包中是否包括第一文件和第二文件包括: 所述检测模块具体用于,在所述列表文件、所述归属证书文件和所述软件文件均解密成功的情况下,检测目标软件的软件包中是否包括第一文件和第二文件。
12.根据权利要求9或10所述的装置,其特征在于,所述第二获取模块用于从所述目标软件的软件包中获取第一列表文件的数字摘要包括: 所述第二获取模块具体用于,从所述目标软件的软件包中获取列表文件数字摘要存放文件名、起始位置与长度,并依据所述列表文件数字摘要存放文件名、起始位置与长度,获取第一列表文件的数字摘要。
13.根据权利要求12所述的装置,其特征在于,还包括: 第四获取模块,用于从所述注册数据中获取本地列表文件内容,利用所述本地列表文件内容,生成第二列表文件的数字摘要。
14.根据权利要求13所述的装置,其特征在于,所述第二判断模块用于判断所述第一归属标识与本地的第二归属标识是否相同包括: 所述第二判断模块具体用于,从所述目标软件的软件包中获取归属证书的数字摘要存放文件名、起始位置与长度;依据所述归属证书的数字摘要存放文件名、起始位置与长度,获取第一归属证书文件的数字摘要;从所述注册数据中获取本地归属证书文件内容;根据所述本地归属证书文件内容,生成第二归属证书文件的数字摘要;比较所述第一归属证书文件的数字摘要与所述第二归属证书文件的数字摘要是否相同,如果是,从所述目标软件的软件包中获取第一归属标识,并从所述注册数据中获取本地的第二归属标识;比较所述第一归属标识与第二归属标识是否相同。
15.根据权利要求14所述的装置,其特征在于,所述比较模块用于依次比较所述目标软件的软件包中包括的各个目标文件与所述注册数据中指示的各个目标文件的属性是否相同,如果是,则确定所述目标软件的软件包通过验证包括: 所述比较模块具体用于,比对所述目标软件的软件包中的第一目标文件列表与所述注册数据中的第二目标文件列表是否相同,如果是,则依次比较所述第一目标文件列表中的各个目标文件的数字摘要与所述第二目标文件列表中的各个目标文件的数字摘要,如果均相同,则确定所述目标软件的软件包通过验证。
16.根据权利要求9所述的装置,其特征在于,还包括: 确定模块,用于在检测到目标软件的软件包中不包括第一文件和第二文件、或者,在所述第一列表文件数字摘要与第二列表文件数字摘要不同、或者所述第一归属标识与第二归属标识不同、或者所述目标软件的软件包中包括的各个目标文件与所述注册数据中指示的各个目标文件的属性不同的情况下,确定所述目标软件的归属验证失败。
【文档编号】G06F21/51GK104504328SQ201410849848
【公开日】2015年4月8日 申请日期:2014年12月31日 优先权日:2014年12月31日
【发明者】陈建校, 荣智林, 高首聪, 肖志均, 刘海涛, 陈新溅, 陆远基, 张毓福, 邓京, 陈鹏翔 申请人:株洲南车时代电气股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1