一种软件的配属方法及装置制造方法

文档序号:6640836阅读:120来源:国知局
一种软件的配属方法及装置制造方法
【专利摘要】本申请提供了一种软件的配属方法及装置,接收待配属的目标软件的软件包后,确定所述待配属的目标软件的归属设备,在所述归属设备的注册数据已存在的情况下,分别创建目标软件的软件包中的每个软件文件的数字摘要、归属证书文件、归属证书文件的数字摘要、列表文件以及列表文件的数字摘要,从而完成软件包的配属。在软件包安装或更新过程中,可以将设备本地已存储的注册数据与配属文件包中的内容进行对比,验证均通过后,即可安装此软件包,因此,本申请所述的方法及装置,能够提高软件安装的安全性。
【专利说明】一种软件的配属方法及装置

【技术领域】
[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]图1为本申请实施例公开的一种软件的配属方法的流程图;
[0060]图2为本申请实施例公开的又一种软件的配属方法的流程图;
[0061]图3为使用本申请实施例公开的软件的配属方法后可能得到的数据结构的示意图;
[0062]图4为本申请实施例公开的一种软件的配属装置的结构示意图。

【具体实施方式】
[0063]本申请实施例公开的软件归属的验证方法及装置,可以应用在设备安装或更新软件的过程中,现有技术中,设备接收到软件的安装包后,直接进行安装,在软件不安全的情况下(例如软件中某些数据被篡改或者软件不是正版、或者软件不应安装在此设备上,否则导致设备故障),会危害设备的安全运行,尤其在特种行业(例如轨道交通)这种危害更为显著,而本申请实施例公开的软件归属的验证方法及装置,其目的就在于提高软件安装或更新的安全性。
[0064]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0065]本申请实施例公开的一种软件的配属方法,如图1所示,包括:
[0066]SlOl:接收待配属的目标软件的软件包;
[0067]本实施例中,目标软件为将来要安装到设备上的软件。
[0068]S102:确定所述待配属的目标软件的归属设备;
[0069]所谓归属设备为,目标软件安装的目标设备,也就是说,目标软件被允许安装的设备。
[0070]S103:在所述归属设备的注册数据已存在的情况下,对于所述待配属的目标软件的软件包中的每个软件文件,均生成其数字摘要;
[0071]在设备上,预先设置有注册机生成的注册数据。本实施例所述方法的执行主体可以为软件包的设置设备,可以在软件包出厂前对软件包进行归属设置。
[0072]本实施例中,注册数据的数据结构的明文可以为:
[0073]1.列表文件数字摘要存储方式标志,假设为ListFileAbstrStoreFlag ;
[0074]2.归属证书文件数字摘要存储方式标志,假设为OwnerCertFileAbstrStoreFlag ;
[0075]3.软件文件数字摘要存储方式标志,假设为SoftFileAbstrStoreFlag ;
[0076]4.列表文件数字摘要存储在何种文件中,假设为ListAbstrStoreFileName
[0077]5.归属证书文件数字摘要存储在何种文件中,假设为OwnerAbstrStoreFileName ;
[0078]6.列表文件数字摘要存放起始位置,假设为ListAbstrStartPosit1n ;
[0079]7.归属证书文件数字摘要存放起始位置,假设为OwnerAbstrStartPositoin ;
[0080]8.列表文件数字摘要长度,假设为ListAbstrLength ;
[0081]9.归属证书文件数字摘要长度,假设为OwnerAbstrLength ;
[0082]10.列表文件加密密钥,假设为PublicJfeyl ;
[0083]11.列表文件解密密钥,假设为PrivateJfeyl ;
[0084]12.归属证书文件加密密钥,假设为Public_Key2 ;
[0085]13.归属证书文件解密密钥,假设为Private_Key2 ;
[0086]14.软件文件加密密钥,假设为Public_Key3 ;
[0087]15.软件文件解密密钥,假设为PriVate_Key3 ;
[0088]16.列表文件名,假设为ListFileName ;
[0089]17.归属证书文件名,假设为OwnerCertFileName ;
[0090]18.归属标志,假设为OwnerFlag ;
[0091]19.加解密方式标志,假设为EncryptedKind ;
[0092]20.列表文件数字摘要独立文件名标志,假设为!ListFileAbstrFileNameFlag ;当列表文件数字摘要独立存储时,该标志起作用,用来识别列表文件的数字摘要的文件名。
[0093]21.归属证书文件数字摘要独立文件名标志,假设为:OwnerCertFileAbstrFileNameFlag ;当归属证书文件数字摘要独立存储时,该标志起作用,用来识别归属证书文件的数字摘要的文件名。
[0094]22.软件文件数字摘要独立文件名标志,假设为!SoftFileAbstrFileNameFlag ;当软件文件数字摘要独立存储时,该标志起作用,用来识别某一个文件所对应的数字摘要文件。
[0095]S104:创建归属证书文件,所述归属证书文件的文件名为所述注册数据中规定的归属证书文件名,所述归属证书文件中包括所述注册数据中规定的归属标识;
[0096]S105:生成所述归属证书文件的数字摘要;
[0097]S106:创建列表文件,所述列表文件的文件名为所述注册数据中规定的列表文件名,所述列表文件中包括所述软件包中所有文件的文件名以及每个软件文件的数字摘要的文件名;
[0098]S107:生成所述列表文件的数字摘要;
[0099]S108:将所述待配属的目标软件的软件包中的每个软件文件、所述每个软件文件的数字摘要、所述归属证书文件、所述归属证书文件的数字摘要、所述列表文件及所述列表文件的数字摘要均存储到所述软件包中的配属文件包中。
[0100]本实施例中,在确定软件包的归属设备的前提下,依据所述归属设备对应的注册数据,创建软件包的中的每个软件文件的数字摘要、软件包的归属证书文件、归属证书文件的数字摘要、列表文件以及列表文件的数字摘要,这些文件或数据表明与设备的对应关系。
[0101]所以,在软件包的安装过程中,可以依据设备本地的注册数据与上述文件或数据的对比结果,验证软件包是否合法,即各种数字摘要文件的数字摘要可以验证软件包中的数据是否被篡改,列表文件能够验证软件包中的文件是否完整,归属文件能够验证软件包是否为本设备的合法软件,因此,能够提高软件包安装的安全性。
[0102]本申请实施例公开的又一种软件的配属方法,如图2所示,包括:
[0103]S201:接收到待配属的目标软件的软件包;
[0104]本实施例中,该软件包中包含有I个或者多个文件,假设该软件包中的文件列表为 SoftFileList,其中包括每个软件文件的名称 SoftFile_l、SoftFile_2......SoftFile_n。
[0105]S202:通过人机接口或者其它外部接口获得地铁公司标志、线路标志、设备类别标志;
[0106]S203:通过人机接口或者其它外部接口接收进行软件配属的指令;
[0107]S204:根据地铁公司标志、线路标志、设备类别标志从注册数据库中查找该设备类别的注册数据;
[0108]其中,注册数据可以以数据库表格的形式存在,也可以以文件的形式存在。
[0109]S205:如果找到该设备类别的注册数据,执行S206,否则通过人机接口或者其它外部接口提示该设备类别的注册数据不存在,需要先行生成注册数据;
[0110]S206:获取该设备的注册数据,并且从密钥容器中获取注册数据的私钥,解密该注册数据,形成注册数据明文;
[0111]S207:获取软件包中的文件列表-SoftFileList,其中的文件名分别假设为:SoftFiIe_l、SoftFiIe_2......SoftFile_n ;
[0112]S208:生成所有软件文件的数字摘要,分别假设为:SoftFileAbStr_l、SoftFileAbstr—1......SoftFiIeAbstr_n ;
[0113]S209:从注册数据中获取软件文件的数字摘要的存放方式标志,假设为SoftAbstrStoreFlag ;
[0114]S210:判断软件文件的数字摘要的存放标志是否表示单独存放,如果是,执行S211,如果否,执行S215 ;
[0115]所谓单独存放,即每个软件文件的数字摘要单独存放到一个文件中。
[0116]S211:则使用所述注册数据中规定的软件文件的数字摘要的文件名、创建用于存放所述每个软件文件的数字摘要的第一类存储文件,假设为:S0ftFileAbStr_File_l、SoftFileAbstr—File_2......SoftFileAbstr—File—η ;
[0117]S212:将软件文件的数字摘要分别写入到上述第一类存储文件中,即将 SoftFileAbstr—I 写入到 SoftFileAbstr—File—I 中,SoftFileAbstr—2 写入到SoftFileAbstr—File—2 中,直到 SoftFileAbstr—η 写入到 SoftFileAbstr—File—η 中;
[0118]S213:获取软件加密密钥及加密方式,根据加密方式,加密第一类存储文件
SoftFileAbstr—File—1、SoftFileAbstr—File—2......SoftFileAbstr—File—n,形成软件文件的数字摘要密文文件,假设为:SoftFileAbstr—Encrypted—1、SoftFileAbstr—Encrypted—2......SoftFileAbstr—Encrypted—η ;
[0119]本实施例中,加密方式可以为对称加密或非对称加密。
[0120]S214:将第一类存储文件的密文存储到软件包中的配属文件包中,执行S216 ;
[0121]S215:从注册数据中获取第一存放文件名、存放的开始位置及长度,将每个软件文件的数字摘要以第一起始位置及第一长度、存储到具有第一存放文件名的软件文件中,其中,第一存放文件名可以为上述软件文件名;
[0122]具体地,本实施例中,可以将每个软件文件的数字摘要存储到该软件文件中。
[0123]S216:使用注册数据中规定的第一密钥及加密方式,加密软件文件SoftFile_l、
SoftFiIe_2......SoftFiIe_n,形成软件文件密文,假设为:SoftFiIe_Encrypted_K
SoftFi Ie_Encrypted_2......SoftFi Ie_Encrypted_n。
[0124]S217:将 SoftFile_Encrypted_l、SoftFile_Encrypted_2......SoftFile_
Encrypted_n存储到所述软件包中的配属文件包中;
[0125]S218:从注册数据中获取归属证书文件名(假设为:0wnerFile)及归属标志(假设为:0wnerFlag),创建归属证书文件,将归属标志写入到归属证书文件中;
[0126]S219:生成归属证书文件的数字摘要,假设为OwnerFileAbstr ;
[0127]S220:从注册数据中获取列表文件名(假设为:ListFile),创建列表文件,并且将 SoftFile_Encrypted_l、SoftFile_Encrypted_2......SoftFi Ie_Encrypted_n 的名称形成软件文件密文列表,假设为:LastSoftFileList,写入到列表文件ListFile中,将软件文件的数字摘要密文 SoftFiIeAbstr_Encrypted_l、SoftFiIeAbstr_Encrypted_2......SoftFileAbstr_Encrypted_n形成的列表写入到列表文件ListFile中;
[0128]S221:生成列表文件的数字摘要,假设为ListFileAbstr ;
[0129]S222:从注册数据中获取列表文件的数字摘要存放方式标志,假设为:ListFileAbstrStoreFlag ;
[0130]S223:判断列表文件的数字摘要是否表示单独存放,如果单独存放,则进入S228,否则进入下一步;
[0131]S224:从注册数据中获取第二存放文件名,假设为ListFileAbstr_FileName、存储的第二起始位置(假设为:LiStFileAbStr_StartP0Siti0n)及第二长度(假设为:Li stFiIeAbstr_Length);
[0132]S225:判断 ListFileAbstr_FileName 是列表文件(例如 ListFile)的文件名、还是归属证书文件(例如OwnerFile)的文件名,如果为前者则进入下一步,如果为后者,则执行 S227 ;
[0133]S226:将列表文件的数字摘要按照第二起始位置及第二长度添加到列表文件ListFile 中,转入 S230 ;
[0134]S227:将列表文件数字摘要按照第二起始位置及第二长度存放到归属证书文件OwnerFile 中,转入 S230 ;
[0135]S228:获取注册数据中规定的列表文件的数字摘要的文件名(假设为:LiStFileAbStr_File),将列表文件的数字摘要写入到该文件中;
[0136]S229:获取列表文件的加密密钥及加密方式,按照加密方式,应用加密密钥加密ListFileAbstr_File以及列表文件,形成列表文件的数字摘要密文ListFileAbstr_Encrypted_File以及列表文件的密文,将上述密文添加到配属软件包中;
[0137]S230:从注册数据中获取归属证书文件的数字摘要的存放方式标志,假设为:OwnerFileAbstrStoreFlag ;
[0138]S231:判断归属证书文件的数字摘要的存放方式标志是否表示独立存放,如果不是独立存放,则进入下一步,否则进入S238 ;
[0139]S232:从注册数据中获取归属证书文件的数字摘要存放的第三存放文件名假设为:OwnerFileAbstr_File,第三起始位置(假设为:OwnerFileAbstr_StartPosit1n)及第三长度(假设为:OwnerFileAbstr_Length);
[0140]S233:判断 OwnerFileAbstr_File 是等于 ListFile 的文件名还是等于 OwnerFile的文件名,如果等于ListFile的文件名,则进入下一步,否则进入到S236 ;
[0141]S234:将归属证书的数字摘要以第三起始位置及第三长度,添加到列表文件ListFile 中;
[0142]S235:从注册数据中获取列表文件加密密钥及加密方式,采用该加密方式应用列表文件的加密密钥,加密ListFile,形成密文ListFile_Encrypted,将该密文添加到配属软件包中,转到S237 ;
[0143]S236:将归属证书的数字摘要以第三起始位置及第三长度、添加到归属证书文件中;
[0144]S237:从注册数据中获取归属证书文件加密密钥及加密方式,采用该加密方式,应用加密密钥加密归属证书文件OwnerFile,形成密文OwnerFile_Encrypted,将该密文添加到配属软件包中;
[0145]S238:从注册数据中获取归属证书文件的数字摘要文件名称,假设为OwnerFileAbStr_File,创建第三类存储文件,将归属证书文件的数字摘要写入该文件,获取归属证书文件加密密钥,加密归属证书文件的数字摘要文件,形成密文OwnerFileAbstr_Encrypted_File,将该文件添加到配属软件包中;
[0146]S239:将配属软件包通过接口发送给外部设备,软件配属完成。
[0147]使用本实施例所述的方法进行软件包的配属后,形成的配属文件包的可能形式如图3所示,其中,至少包括列表文件、归属证书文件、软件文件及各自的数字摘要,各自的数字摘要可以单独存储为文件,也可以携带在其它文件中。
[0148]本实施例所述的配属方法中,列表文件的使用确保了软件文件的完整性,各种数字摘要的使用的目的在于保证配属软件包在传输或者传递过程中不被篡改,归属证书文件的使用的目的在于确保该配属软件包归属于某特定类别的设备,也是确保设备只接收归属证书中内容相匹配的配属软件包。归属证书的内容与列表文件中的内容可以放到一个文件中,但是必须包括软件文件列表与归属标志等关键内容。
[0149]本申请实施例还公开了一种软件的配属装置,如图4所示,包括:
[0150]接收模块401,用于接收待配属的目标软件的软件包;
[0151]确定模块402,用于确定所述待配属的目标软件的归属设备;
[0152]第一生成模块403,用于在所述归属设备的注册数据已存在的情况下,对于所述待配属的目标软件的软件包中的每个软件文件,均生成其数字摘要;
[0153]第一创建模块404,用于创建归属证书文件,所述归属证书文件的文件名为所述注册数据中规定的归属证书文件名,所述归属证书文件中包括所述注册数据中规定的归属标识;
[0154]第二生成模块405,用于生成所述归属证书文件的数字摘要;
[0155]第二创建模块406,用于创建列表文件,所述列表文件的文件名为所述注册数据中规定的列表文件名,所述列表文件中包括所述软件包中所有文件的文件名列表以及每个软件文件的数字摘要的文件名列表;
[0156]第三生成模块407,用于生成所述列表文件的数字摘要;
[0157]存储模块408,用于将所述待配属的目标软件的软件包中的每个软件文件、所述每个软件文件的数字摘要、所述归属证书文件、所述归属证书文件的数字摘要、所述列表文件及所述列表文件的数字摘要均存储到所述软件包中的配属文件包中。
[0158]可选地,还可以包括:
[0159]解密模块409,用于在对于所述待配属的目标软件的软件包中的每个软件文件,均生成其数字摘要之前,获取所述注册数据的私钥,使用所述私钥,将所述注册数据的密文解析为明文;
[0160]提示模块410,用于在所述归属设备的注册数据不存在的情况下,发出注册数据创建提不。
[0161]进一步地,本实施例中,存储模块将所述待配属的目标软件的软件包中的每个软件文件及所述每个软件文件的数字摘要存储到所述软件包中的配属文件包中的具体实现方式可以为:从所述注册数据中获取所述每个软件文件的数字摘要的存放标志;
[0162]如果所述存放标志表示单独存放,则使用所述注册数据中规定的软件文件的数字摘要的文件名、创建用于存放所述每个软件文件的数字摘要的第一类存储文件,并将所述每个软件文件的数字摘要分别存储到各自对应的第一类存储文件中,使用所述注册数据中规定的第一密钥及加密方式,加密所述软件文件及所述第一类存储文件,将所述软件文件的密文及所述第一类存储文件的密文存储到所述软件包中的配属文件包中;
[0163]如果所述存放标志表示非单独存放,从所述注册数据中获取第一存放文件名,存储的第一起始位置及第一长度,并将所述每个软件文件的数字摘要以所述第一起始位置及所述第一长度、存储到具有所述第一存放文件名的软件文件中,使用所述注册数据中规定的第一密钥及加密方式,将所述具有所述第一存放文件名的软件文件进行加密,将所述具有所述第一存放文件名的软件文件的密文存储到所述软件包中的配属文件包中。
[0164]存储模块将所述列表文件及所述列表文件的数字摘要均存储到所述软件包中的配属文件包中的具体实现方式可以为:从所述注册数据中获取所述列表文件的数字摘要的存放标志;
[0165]如果所述列表文件的数字摘要的存放标志表示单独存放,则使用所述注册数据中规定的列表文件的数字摘要的文件名、创建用于存放所述列表文件的数字摘要的第二类存储文件,并将所述列表文件的数字摘要写入其对应的第二类存储文件中,使用所述注册数据中规定的第二密钥及加密方式,加密所述列表文件及所述第二类存储文件,将所述列表文件的密文及所述第二类存储文件的密文存储到所述软件包中的配属文件包中;
[0166]如果所述列表文件的数字摘要的存放标志表示非单独存放,从所述注册数据中获取第二存放文件名、存储的第二起始位置及第二长度,在具有所述第二文件名的文件为列表文件的情况下,将所述列表文件的数字摘要以所述第二起始位置及所述第二长度、存放到所述列表文件中,在具有所述第二文件名的文件为归属证书文件名的情况下,将所述列表文件的数字摘要以所述第二起始位置及所述第二长度、存放到所述归属证书文件中。
[0167]存储模块将所述归属证书文件及所述归属证书文件的数字摘要存储到所述软件包中的配属文件包中的具体实现方式可以为:从所述注册数据中获取所述归属证书文件的数字摘要的存放标志;
[0168]如果所述归属证书文件的数字摘要的存放标志为表示单独存放,则用所述注册数据中规定的归属证书文件的数字摘要的文件名、创建用于存放所述归属证书文件的数字摘要的第三类存储文件,并将所述归属证书文件的数字摘要写入其对应的第三类存储文件中,使用所述注册数据中规定的第三密钥,加密所述归属证书文件及所述第三类存储文件,并将所述归属证书文件的密文及所述第三类存储文件的密文存储到所述软件包中的配属文件包中;
[0169]如果所述归属证书文件的数字摘要的存放标志为表示非单独存放,从所述注册数据中获取第三存放文件名,存储的第三起始位置及第三长度,在具有所述第三文件名的文件为列表文件的情况下,将所述归属证书文件的数字摘要以所述第三起始位置及所述第三长度、存放到所述列表文件中,使用所述注册数据规定的第四密钥,加密所述列表文件,并将所述列表文件的密文存储到所述软件包中的配属文件包中,否则,将所述归属证书文件的数字摘要存储到所述归属证书文件中,使用所述注册数据中对应的第五密钥,加密所述归属证书文件,将所述归属证书文件的数字摘要密文及所述归属证书文件的密文存储到所述软件包中的配属文件包中。
[0170]本实施例所述的配属装置,能够确保软件安装的安全性。
[0171]本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0172]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
[0173]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【权利要求】
1.一种软件的配属方法,其特征在于,包括: 接收待配属的目标软件的软件包; 确定所述待配属的目标软件的归属设备; 在所述归属设备的注册数据已存在的情况下,对于所述待配属的目标软件的软件包中的每个软件文件,均生成其数字摘要; 创建归属证书文件,所述归属证书文件的文件名为所述注册数据中规定的归属证书文件名,所述归属证书文件中包括所述注册数据中规定的归属标识; 生成所述归属证书文件的数字摘要; 创建列表文件,所述列表文件的文件名为所述注册数据中规定的列表文件名,所述列表文件中包括所述软件包中所有文件的文件名列表以及每个软件文件的数字摘要的文件名列表; 生成所述列表文件的数字摘要; 将所述待配属的目标软件的软件包中的每个软件文件、所述每个软件文件的数字摘要、所述归属证书文件、所述归属证书文件的数字摘要、所述列表文件及所述列表文件的数字摘要均存储到所述软件包中的配属文件包中。
2.根据权利要求1所述的方法,其特征在于,将所述待配属的目标软件的软件包中的每个软件文件及所述每个软件文件的数字摘要存储到所述软件包中的配属文件包中,包括: 从所述注册数据中获取所述每个软件文件的数字摘要的存放标志; 如果所述存放标志表示单独存放,则使用所述注册数据中规定的软件文件的数字摘要的文件名、创建用于存放所述每个软件文件的数字摘要的第一类存储文件,并将所述每个软件文件的数字摘要分别存储到各自对应的第一类存储文件中,使用所述注册数据中规定的第一密钥及加密方式,加密所述软件文件及所述第一类存储文件,将所述软件文件的密文及所述第一类存储文件的密文存储到所述软件包中的配属文件包中; 如果所述存放标志表示非单独存放,从所述注册数据中获取第一存放文件名,存储的第一起始位置及第一长度,并将所述每个软件文件的数字摘要以所述第一起始位置及所述第一长度、存储到具有所述第一存放文件名的软件文件中,使用所述注册数据中规定的第一密钥及加密方式,将所述具有所述第一存放文件名的软件文件进行加密,将所述具有所述第一存放文件名的软件文件的密文存储到所述软件包中的配属文件包中。
3.根据权利要求1或2所述的方法,其特征在于,将所述列表文件及所述列表文件的数字摘要均存储到所述软件包中的配属文件包中,包括: 从所述注册数据中获取所述列表文件的数字摘要的存放标志; 如果所述列表文件的数字摘要的存放标志表示单独存放,则使用所述注册数据中规定的列表文件的数字摘要的文件名、创建用于存放所述列表文件的数字摘要的第二类存储文件,并将所述列表文件的数字摘要写入其对应的第二类存储文件中,使用所述注册数据中规定的第二密钥及加密方式,加密所述列表文件及所述第二类存储文件,将所述列表文件的密文及所述第二类存储文件的密文存储到所述软件包中的配属文件包中; 如果所述列表文件的数字摘要的存放标志表示非单独存放,从所述注册数据中获取第二存放文件名、存储的第二起始位置及第二长度,在具有所述第二文件名的文件为列表文件的情况下,将所述列表文件的数字摘要以所述第二起始位置及所述第二长度、存放到所述列表文件中,在具有所述第二文件名的文件为归属证书文件名的情况下,将所述列表文件的数字摘要以所述第二起始位置及所述第二长度、存放到所述归属证书文件中。
4.根据权利要求3所述的方法,其特征在于,将所述归属证书文件及所述归属证书文件的数字摘要存储到所述软件包中的配属文件包中,包括: 从所述注册数据中获取所述归属证书文件的数字摘要的存放标志; 如果所述归属证书文件的数字摘要的存放标志为表示单独存放,则用所述注册数据中规定的归属证书文件的数字摘要的文件名、创建用于存放所述归属证书文件的数字摘要的第三类存储文件,并将所述归属证书文件的数字摘要写入其对应的第三类存储文件中,使用所述注册数据中规定的第三密钥,加密所述归属证书文件及所述第三类存储文件,并将所述归属证书文件的密文及所述第三类存储文件的密文存储到所述软件包中的配属文件包中; 如果所述归属证书文件的数字摘要的存放标志为表示非单独存放,从所述注册数据中获取第三存放文件名,存储的第三起始位置及第三长度,在具有所述第三文件名的文件为列表文件的情况下,将所述归属证书文件的数字摘要以所述第三起始位置及所述第三长度、存放到所述列表文件中,使用所述注册数据规定的第四密钥,加密所述列表文件,并将所述列表文件的密文存储到所述软件包中的配属文件包中,否则,将所述归属证书文件的数字摘要存储到所述归属证书文件中,使用所述注册数据中对应的第五密钥,加密所述归属证书文件,将所述归属证书文件的数字摘要密文及所述归属证书文件的密文存储到所述软件包中的配属文件包中。
5.根据权利要求1至4任一项所述的方法,其特征在于,还包括: 在对于所述待配属的目标软件的软件包中的每个软件文件,均生成其数字摘要之前,获取所述注册数据的私钥,使用所述私钥,将所述注册数据的密文解析为明文; 在所述归属设备的注册数据不存在的情况下,发出注册数据创建提示。
6.一种软件的配属装置,其特征在于,包括: 接收模块,用于接收待配属的目标软件的软件包; 确定模块,用于确定所述待配属的目标软件的归属设备; 第一生成模块,用于在所述归属设备的注册数据已存在的情况下,对于所述待配属的目标软件的软件包中的每个软件文件,均生成其数字摘要; 第一创建模块,用于创建归属证书文件,所述归属证书文件的文件名为所述注册数据中规定的归属证书文件名,所述归属证书文件中包括所述注册数据中规定的归属标识; 第二生成模块,用于生成所述归属证书文件的数字摘要; 第二创建模块,用于创建列表文件,所述列表文件的文件名为所述注册数据中规定的列表文件名,所述列表文件中包括所述软件包中所有文件的文件名列表以及每个软件文件的数字摘要的文件名列表; 第三生成模块,用于生成所述列表文件的数字摘要; 存储模块,用于将所述待配属的目标软件的软件包中的每个软件文件、所述每个软件文件的数字摘要、所述归属证书文件、所述归属证书文件的数字摘要、所述列表文件及所述列表文件的数字摘要均存储到所述软件包中的配属文件包中。
7.根据权利要求6所述的装置,其特征在于,所述存储模块用于将所述待配属的目标软件的软件包中的每个软件文件及所述每个软件文件的数字摘要存储到所述软件包中的配属文件包中,包括: 所述存储模块具体用于,从所述注册数据中获取所述每个软件文件的数字摘要的存放标志; 如果所述存放标志表示单独存放,则使用所述注册数据中规定的软件文件的数字摘要的文件名、创建用于存放所述每个软件文件的数字摘要的第一类存储文件,并将所述每个软件文件的数字摘要分别存储到各自对应的第一类存储文件中,使用所述注册数据中规定的第一密钥及加密方式,加密所述软件文件及所述第一类存储文件,将所述软件文件的密文及所述第一类存储文件的密文存储到所述软件包中的配属文件包中; 如果所述存放标志表示非单独存放,从所述注册数据中获取第一存放文件名,存储的第一起始位置及第一长度,并将所述每个软件文件的数字摘要以所述第一起始位置及所述第一长度、存储到具有所述第一存放文件名的软件文件中,使用所述注册数据中规定的第一密钥及加密方式,将所述具有所述第一存放文件名的软件文件进行加密,将所述具有所述第一存放文件名的软件文件的密文存储到所述软件包中的配属文件包中。
8.根据权利要求6或7所述的装置,其特征在于,所述存储模块用于将所述列表文件及所述列表文件的数字摘要均存储到所述软件包中的配属文件包中,包括: 所述存储模块具体用于,从所述注册数据中获取所述列表文件的数字摘要的存放标志; 如果所述列表文件的数字摘要的存放标志表示单独存放,则使用所述注册数据中规定的列表文件的数字摘要的文件名、创建用于存放所述列表文件的数字摘要的第二类存储文件,并将所述列表文件的数字摘要写入其对应的第二类存储文件中,使用所述注册数据中规定的第二密钥及加密方式,加密所述列表文件及所述第二类存储文件,将所述列表文件的密文及所述第二类存储文件的密文存储到所述软件包中的配属文件包中; 如果所述列表文件的数字摘要的存放标志表示非单独存放,从所述注册数据中获取第二存放文件名、存储的第二起始位置及第二长度,在具有所述第二文件名的文件为列表文件的情况下,将所述列表文件的数字摘要以所述第二起始位置及所述第二长度、存放到所述列表文件中,在具有所述第二文件名的文件为归属证书文件名的情况下,将所述列表文件的数字摘要以所述第二起始位置及所述第二长度、存放到所述归属证书文件中。
9.根据权利要求6或7所述的装置,其特征在于,所述存储模块用于将所述归属证书文件及所述归属证书文件的数字摘要存储到所述软件包中的配属文件包中,包括: 所述存储模块具体用于,从所述注册数据中获取所述归属证书文件的数字摘要的存放标志; 如果所述归属证书文件的数字摘要的存放标志为表示单独存放,则用所述注册数据中规定的归属证书文件的数字摘要的文件名、创建用于存放所述归属证书文件的数字摘要的第三类存储文件,并将所述归属证书文件的数字摘要写入其对应的第三类存储文件中,使用所述注册数据中规定的第三密钥,加密所述归属证书文件及所述第三类存储文件,并将所述归属证书文件的密文及所述第三类存储文件的密文存储到所述软件包中的配属文件包中; 如果所述归属证书文件的数字摘要的存放标志为表示非单独存放,从所述注册数据中获取第三存放文件名,存储的第三起始位置及第三长度,在具有所述第三文件名的文件为列表文件的情况下,将所述归属证书文件的数字摘要以所述第三起始位置及所述第三长度、存放到所述列表文件中,使用所述注册数据规定的第四密钥,加密所述列表文件,并将所述列表文件的密文存储到所述软件包中的配属文件包中,否则,将所述归属证书文件的数字摘要存储到所述归属证书文件中,使用所述注册数据中对应的第五密钥,加密所述归属证书文件,将所述归属证书文件的数字摘要密文及所述归属证书文件的密文存储到所述软件包中的配属文件包中。
10.根据权利要求6至9任一项所述的装置,其特征在于,还包括: 解密模块,用于在对于所述待配属的目标软件的软件包中的每个软件文件,均生成其数字摘要之前,获取所述注册数据的私钥,使用所述私钥,将所述注册数据的密文解析为明文; 提示模块,用于在所述归属设备的注册数据不存在的情况下,发出注册数据创建提示。
【文档编号】G06F21/51GK104504327SQ201410849787
【公开日】2015年4月8日 申请日期:2014年12月31日 优先权日:2014年12月31日
【发明者】陈建校, 荣智林, 高首聪, 肖志均, 刘海涛, 陈超录, 李伟, 何红成, 张宾, 肖华, 龙咨全 申请人:株洲南车时代电气股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1