一种自动更新的方法

文档序号:6402237阅读:213来源:国知局
专利名称:一种自动更新的方法
技术领域
本发明涉及信息安全领域,尤其涉及一种自动更新的方法。
背景技术
传统安装包制作过程中由于软件更新,往往造成安装包的重新生成、发布,在软件更新速度很快时,就会出现安装包频繁更新的情况。在大型软件系统中,软件安装包含内容特别多,制作过程复杂,当少数文件需要更新时,需要下载整个安装包,这样会浪费带宽,而且更新方式不灵活。

发明内容
本发明的目的是为了解决现有技术的不足,提供了一种自动更新的方法。本发明采用的技术方案是:一种自动更新的方法,其特征在于,包括:步骤101:下载器从下载服务器端下载配置文件,并对所述配置文件进行解析,得到签名值,对所述签名值进行验证,如果验证成功,则解析所述配置文件得到所有的配置项,执行步骤102,如果验证失败,则结束;步骤102:所述下载器从所述所有的配置项中获取当前配置项,并对所述当前配置项进行解析得到下载信息,根据所述下载信息,判断与当前配置项对应的本地文件是否满足更新条件,如果是,则执行步骤103,否则执行步骤104 ;其中,所述下载信息包括文件名 称、操作系统版本、操作系统架构、IE版本、安装目录、运行参数、执行方式、下载方式、是否需要验证签名、版本类型、文件版本、注册表版本;步骤103:所述下载器根据所述下载信息的文件名称和安装目录,从服务器端将与所述当前配置项对应的新文件下载到所述安装目录指定的位置,判断所述新文件是否需要验证签名,如果不需要,则直接执行步骤104,如果需要,则下载对应的签名文件,并对所述签名文件执行验签操作,如果验签成功,则所述下载器根据预设执行方式执行相应操作,执行步骤104,如果验签不成功,则结束;步骤104:所述下载器判断所述配置文件中是否还有未处理的配置项,如果是,则顺序处理配置文件中的下一配置项,返回步骤102,否则将本次更新时间和更新周期保存在预设存储区中,更新结束;所述步骤101之前还包括:步骤101-1:所述下载器查找所述预设存储区中的更新时间和更新周期,判断是否满足更新条件,如果是,则执行步骤101-2,否则结束;步骤101-2:所述下载器判断是否能够连接到所述下载服务器,如果是,则执行步骤101-3,否则结束;步骤101-3:所述下载器判断是否能从所述下载服务器端成功下载所述配置文件,如果是,则执行步骤101,否则结束;所述步骤101-1具体为:所述下载器从所述预设存储区中查找更新时间和更新周期,计算系统时间与更新时间的差值,得到的结果与更新周期进行比较,如果大于或等于更新周期,则表示下载器满足更新条件,执行步骤101-2,否则表示仍在更新周期内,结束;所述步骤101-2具体为:所述下载器调用系统应用程序编程接口,得到返回值,并将所述返回值返回给所述下载器,如果所述返回值为第一预设数值,则表示连接下载服务器成功,否则表示连接下载服务器失败;所述步骤101中,所述对所述配置文件进行解析,还包括:所述下载器对所述配置文件进行解析,并判断解析得到的内容是否合法;所述步骤101中,所述下载器对所述签名值进行验证具体为:所述下载器根据预设公钥、签名算法、配置文件和签名值,使用预设签名验证算法进行验证;所述下载信息还包括文件架构、执行等待时间和注册表目录;所述根据所述下载信息,判断与当前配置项对应的本地文件是否满足更新条件,具体为:步骤102-1:所述下载器根据所述下载信息中当前配置项的下载方式,判断所述下载方式的类型,如果所述下载方式为第一预设下载方式,则执行步骤102-2,如果所述下载方式为第二预设下载方式,则执行步骤102-5,否则结束;步骤102-2:所述下载器根据所述下载信息中当前配置项的安装目录和文件名称,判断与当前配置项对应的本地文件是否存在,如果是,则执行步骤102-3,否则执行步骤104 ;步骤102-3:所述下载器根据所述下载信息中当前配置项的操作系统版本、操作系统构架和IE版本与本地的操作系 统版本、操作系统构架和IE版本进行比较,判断与当前配置项对应的本地文件是否符合系统条件,如果是,则执行步骤102-4,否则执行步骤104 ;步骤102-4:所述下载器根据所述下载信息中当前配置项的执行方式,获取所述执行方式在预设执行方式中的类型,并根据预设执行方式执行相应操作,如果能够执行成功,则执行步骤104,否则结束;步骤102-5:所述下载器根据所述下载信息中当前配置项的操作系统版本、操作系统构架和IE版本与本地的操作系统版本、操作系统构架和IE版本进行比较,判断与当前配置项对应的本地文件是否符合更新条件,如果是,则执行步骤102-6,否则执行步骤104 ;步骤102-6:所述下载器根据所述下载信息中当前配置项的版本类型,判断需要获取的本地版本的类型,如果当前配置项的版本类型为第一预设版本类型,则执行步骤
102-7,如果当前配置项的版本类型为第二预设版本类型,则执行步骤102-8,如果当前配置项的版本类型为第三预设版本类型,则表示不需要比较版本类型,执行步骤103,否则结束;步骤102-7:所述下载器根据所述下载信息中当前配置项的文件版本,从本地中读取本地文件版本,判断本地文件版本是否满足当前配置项的文件版本,如果是,则执行步骤103,否则表示本地文件不需要更新,执行步骤104 ;步骤102-8:所述下载器根据所述下载信息中当前配置项的注册表版本,从本地注册表中查询版本号,判断所述版本号是否满足当前配置项的注册表版本,如果是,则执行步骤103,否则表示与当前配置项对应的本地文件不需要更新,执行步骤104 ;所述步骤102-1中所述第一预设下载方式为不需要下载,只用于执行,所述第二预设下载方式为在满足更新条件下进行下载;所述预设执行方式包括:第一预设执行方式,表示只更新文件,更新后不需要执行其他操作,第二预设执行方式,表示注册,第三预设执行方式,表示反注册,第四预设执行方式,表示带所述运行参数运行;所述步骤102-6中,所述第一预设版本类型为文件版本类型,所述第二预设版本类型为注册表版本类型,所述第三预设版本类型为不需要比较版本类型;所述步骤103中,所述判断所述新文件是否需要验证签名,还可以为:下载器判断新文件是否为符合PE结构的文件,如果是,则对所述新文件进行证书验证,如果验证通过,则执行步骤104,否则验证失败,结束,否则直接执行步骤104 ;所述步骤103中,所述判断所述新文件是否需要验证签名,还可以为:步骤A:下载器判断新文件是否为PE结构的文件,如果是,则对新文件进行证书验证,执行步骤B,否则下载对应的签名文件,执行步骤C ;步骤B:下载器对新文件进行证书验证,如果验证成功,则执行步骤104,否则,则验证失败,结束;步骤C:下载器对所述签名文件进行验证,如果验证成功,则执行步骤104,否则验证失败,结束;所述步骤103中,所述判断所述新文件是否需要验证签名,具体为:所述下载器根据所述下载信息中当前配置项的“是否需要验证签名”,判断所述新文件是否需要验证签名;所述步骤103中,所述下载对应的签名文件,并对所述签名文件进行验签操作,具体为:所述下载器根据预设公钥、签名算法、新文件和签名文件,使用预设签名验证算法进行验证;所述步骤103中,所述下载器根据预设执行方式执行相应操作,还包括:步骤Sll:所述下载器判断与当前配置项对应的本地文件是否存在,如果是,则执行步骤S12,否则将需要更新的新文件下载到预设目录中,并按照预设执行方式执行;步骤S12:所述下载器判断与当前配置项对应的本地文件是否正在运行,如果是,则执行步骤S13,否则将需要更新的新文件下载到预设目录中,并按照预设执行方式执行;步骤S13:所述下载器对与当前配置项对应的本地文件进行改名操作,判断是否能够改名成功,如果是,则将需要更新的新文件下载到预设目录中,并按照预设执行方式执行,否则提示本地文件正在运行,无法安装程序;所述步骤S13还可以为:所述下载器根据预设执行方式执行相应操作,将更新信息写入临时注册表中,当系统重启时,根据所述临时注册表中的内容,完成新文件的安装。本发明取得的有益效果是:采用本发明的技术方案能够实现在少数文件需要更新时,不需要下载整个安装包,只需要更新少数文件,减少带宽的使用,而且更新方式更灵活。


图1是本发明实施例1提供的一种自动更新的方法的流程图;图2是本发明实施例1中步 骤107的细化流程图;图3是本发明实施例1中步骤116的细化流程图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例1本发明的实施例1提供一种自动更新的方法,如图1所示,包括:步骤101:下载器从下载服务器端下载配置文件;本实施例中,优选的,所述下载器存在于移动设备中,则当移动设备与主机连接时,自动启动下载器,除此之外,所述下载器还可以存在与主机中;在步骤101之前还包括步骤101-1至步骤101-3:步骤101 -1:所述下载器判断是否满足更新条件,如果是,则执行步骤101-2,否则
结束;具体的,所述下载器从预设存储区中查找更新时间和更新周期,计算系统时间与更新时间的差值,得到的结果与更新周期进行比较,如果大于或等于更新周期,则表示下载器满足更新条件,执行步骤101-2,否则表示仍在更新周期内,结束;在本实施例中,优选的,更新周期UpdatePeriod的单位为天,更新时间为上次更新成功的时间;优选的,预设存储区的路径为:HKEY_LOCAL_MACHINE\S0FTWARE\ Wow6432Node\EnterSafe\AutoUpdate" UpdatePeriod"=REG_DWORD: 00000005" Time"=REG_SZ:"2013.01.08",查找得到上次更新成功时间为2013.01.08,更新周期为UpdatePeriod =5,如果系统时间为2013.01.13,则与更新时间的差值为5天,大于更新周期,则表示满足更新条件;步骤101-2:下载器判断是否能够连接到下载服务器,如果是,则执行步骤101-3,否则结束;其中,判断是否能够连接到下载服务器的方法具体为,下载器调用系统API (Application Programming Interface,应用程序编程接口),得到返.回倌,并将返.回倌返回给下载器,如果返回值为第一预设数值,则表示连接下载服务器成功,否则表示连接下载服务器失败;优选的,第一预设数值可以是I ;步骤101-3:下载器判断是否能从下载服务器中成功下载配置文件,如果是,则执行步骤101,否则结束;所述配置文件存放在下载服务器中,当满足更新条件时,下载器从下载服务器端下载得到配置文件,并将所述配置文件下载到临时目录下;例如,在本实施例中,下载器从下载服务器端下载得到的配置文件为:[FileList]Certd.exe=alI;alI;alI;x86;6;3;_t;0;dO;0;alI;fiIe;nulI;REG32[HKEY_L0CAL_MACHINE\S0FTWARE\EnterSafe\ePass2000Auto_std\path];
Cspll.dll=all;all;all;x86;3;0;null;0;dl;l;1.0.13.0105;file;null;null;Cspll_s.dll= all;all;all;x86;3;0;null;0;dl;l;1.0.13.0105;file;null;nu11X64/cspll.dll=all;x64;all;x64;4;0;null;0, dl;I, 1.0.13.105;file;null;nu11;X64/cspll_s.dll=all; x64; all; x64; 4; 0;null; 0, dl; I; 1.0.13.105; file;null;null;Lang/certd_2052.lng=all;all;all;x86;6;0, NULL, 0, dl;0;all;file;null;reg32[HKEY_L0CAL_MACHINE\S0FTWARE\EnterSafe\ePass2000Auto_std\path][lang];[Settings]UpdatePeriod=5 ;[sig]Sig=af530a6636a2ac516e99b4f8d9cce3331474b42bl03c8fbb62cl4a6f5b524118b335f77f58a0450a4daa80bea501c9eal2740053486407b8fa7baa3d73bl08c4099f846700221-7fd8656dal6d4cc2eb29b5c292be6881b44b85fce70af3c4afdb0831d77f981542aalc35elela19d637f0b3cl3683fbfff211fl866eeafc2eab ;所述配置文件中包含的所有的配置项为:
Certd.exe =al I; al I; al I; x86 ; 6 ; 3 ; _t; O ; dO ; O ; al I; fi Ie ; nul I; REG32 [HKEY_L0CAL_MACHINE\S0FTWARE\EnterSafe\ePass2000Auto_std\path];Cspll.dll=all;all;all;x86;3;0;null;0;dl;l;1.0.13.0105;file;null;null;Cspll_s.dll= all; all; all;x86;3;0;null;0;dl;l;1.0.13.0105;file;null;nu11X64/cspll.dll=all;x64;all;x64;4;0;null;0, dl;I, 1.0.13.105;file;null;nu11;X64/cspll_s.dll=all;x64; all; x64; 4; 0 ;null; 0, dl; I; 1.0.13.105; file; null;null;Lang/certd_2052.lng=all;all;all;x86;6;0, NULL, 0, dl;0;all;file;null;reg32[HKEY_L0CAL_MACHINE\S0FTWARE\EnterSafe\ePass2000Auto_std\path][lang];其中,Certd.exe=all; all; all; x86; 6; 3; _t; 0; dO; 0; all; file; null; REG32 [HKEY_ L0CAL_MACHINE\S0FTWARE\EnterSafe\ePass2000Auto_std\path];为配置文件中的一个配置项;UpdatePeriod=5 ;是配置文件的更新周期;Sig=af530a6636a2ac516e99b4f8d9cce3331474b42bl03c8fbb62cl4a6f5b524118b335f77f58a0450a4daa80bea501c9eal2740053486407b8fa7baa3d73bl08c4099f846700221-7fd8656dal6d4cc2eb29b5c292be6881b44b85fce70af3c4afdb0831d77f981542aalc35elela19d637f0b3cl3683fbfff211fl866eeafc2eab ;为配置文件的签名值;步骤102:下载器对所述配置文件进行解析,得到签名值;所述配置文件中的每一个配置项都能够对应一个签名文件,其中所述签名文件中存放的是利用预设私钥对配置文件进行签名的结果;
步骤103:所述下载器对所述签名值进行验证,如果验证成功,则解析所述配置文件,得到所有的配置项,执行步骤104,如果验证失败,则返回验证失败的信息,结束;在本实施例中,所述下载器对解析所述配置文件得到的签名值进行验证具体为:所述下载器根据预设公钥、签名算法、配置文件和签名值,使用预设签名验证算法进行验证;其中,所述签名算法优选的是RSA算法,除此之外还可以为SM2算法等;例如,配置文件中的一个配置项为,Certd.exe=alI; all; all; x86; 6; 3; _t; 0;dO;0;all;file;null;REG32[HKEY_L0CAL_MACHINE\S0FTWARE\EnterSafe\ePass2000Auto_std\path];其中此配置项中包括文件名称(Certd.exe)、操作系统版本(all)、操作系统架构(all)、IE版本(all)、文件架构(x86)、安装目录(6)、执行方式(3)、运行参数(_t)、执行等待时间(O)、下载方式(dO)、是否需要验证签名(O)、版本类型(all)、文件版本(file)、注册表版本(null)、注册表目录(REG32 [HKEY_LOCAL_MACHINE\ SOFTWARE\EnterSafe\ePass2000 Auto_std\path]);所述步骤103还包括:判断对配置文件进行解析后得到的内容是否合法,如果是,则执行步骤104,否则返回错误信息,结束;解析得到 的内容不合法具体包括:解析得到的配置项为空,解析得到的配置项的内容不符合预设内容,未解析得到签名值或签名值为空等;步骤104:所述下载器从所述所有的配置项中获取当前配置项,并对所述当前配置项进行解析得到下载信息;在本实施例中,所述下载信息包括文件名称、操作系统版本、操作系统架构、IE版本、文件架构、安装目录、执行方式、运行参数、执行等待时间、下载方式、是否需要验证签名、版本类型、文件版本、注册表版本、注册表目录;所述步骤104还包括:判断所述下载信息是否符合预设格式,如果是,则执行步骤105,否则结束;步骤105:所述下载器根据所述下载信息中当前配置项的下载方式,判断所述下载方式的类型,如果当前配置项的下载方式为第一预设下载方式,则执行步骤106,如果当前配置项的下载方式为第二预设下载方式,则执行步骤109 ;所述步骤105还包括,如果当前配置项的下载方式既不是第一预设下载方式又不是第二预设下载方式,则表示当前配置项不符合预设格式,结束;其中,第一预设下载方式表示不需要下载更新,只用于执行,优选的为d0,第二预设下载方式表示在满足更新条件下只进行下载,优选的为dl ;例如,如果配置文件中的当前配置项为Certd.exe=all;all;all;x86;6; 3; _t;0;dO;0;all;file;null;REG32[HKEY_L0CAL_MACHINE\S0FTWARE\EnterSafe\ePass2000Auto_std\path];则下载方式为d0,表示不需要更新下载,只用于执行,则执行步骤106 ;例如,如果步骤101中的配置文件中的当前配置项为Cspll.dll=all;all; all;x86;3;0;null;0;dl; I; 1.0.13.0105; file; null; null;则下载方式为 dl,表示在满足更新条件下只进行下载,则执行步骤109 ;步骤106:所述下载器根据所述下载信息中当前配置项的安装目录和文件名称,判断与当前配置项对应的本地文件是否存在,如果是,则执行步骤107,否则执行步骤117 ;
在本实施例中,所述配置文件的安装目录包括两种,一种是NULL,表示本地文件不存在,则执行步骤117,另一种安装目录优选的是REG32 | REG64 [注册表路径][后续目录],其中,REG32 I REG64表示32位注册表或64位注册表;步骤107:所述下载器根据所述下载信息中当前配置项的操作系统版本、操作系统构架和IE版本与本地的操作系统版本、操作系统构架和IE版本进行比较,判断当前配置项是否符合系统条件,如果是,则执行步骤108,否则执行步骤117 ;如图2所示,具体包括:步骤A:判断当前配置项的操作系统版本与本地操作系统版本是否匹配,如果是,则执行步骤B,否则执行步骤117 ;例如,如果配置文件的当前配置项为Certd.exe=al I; al I; al I; x86; 6; 3; _t;O;dO;O; all;file;null;REG32 [HKEY_LOCAL_MACHINE\SOFTWARE\EnterSafe\ePass2000Auto_std\path];则操作系统版本为all,表示主机的操作版本满足系统条件;步骤B:判断当前配置项的操作系统构架与本地操作系统架构是否匹配,如果是,则执行步骤C,否则执行步骤117 ;在本实施例中,所述配置文件中配置项的操作系统架构可以为x86、x64或all ;例如,如果配置文件的当前配置项为Certd.exe=all;all;all;x86;6; 3; _t;0;d0;0;all;file;null;REG32[HKEY_L0CAL_MACHINE\S0FTWARE\EnterSafe\ePass2000Auto_std\path];则操作系统版本为all,表示主机的操作系统构架均满足系统条件;步骤C:判断当前配置项的IE版本与本地IE版本是否匹配,如果是,则执行步骤108,否则执行步骤117 ;

在本实施例中,所述配置文件的IE版本可以为E、G、L、&、|、all等,其中E表示主机的IE版本与配置文件的IE版本相同时,满足更新条件,all表示主机的IE版本均满足系统条件;例如,当步骤101中配置文件的当前配置项为Certd.exe=all; all; all ;x86;6;3;-t;0;d0;0;all;file;null;REG32[HKEY_LOCAL_MACHINE\SOFTWARE\EnterSafe\ePass2000Auto_std\path] ; IE为all,表示主机的IE版本均满足更新条件;其中,比较配置文件中当前配置项的操作系统版本、操作系统构架和IE版本与本地的操作系统版本、操作系统构架和IE版本可以同时执行;步骤108:所述下载器根据所述下载信息中当前配置项的执行方式,获取所述执行方式在预设执行方式中的类型,并根据预设执行方式执行相应操作,执行步骤117 ;其中,所述步骤108还包括:判断所述执行方式是否属于预设执行方式中的类型,如果不属于,则结束,如果属于,则根据预设执行方式执行相应操作,当执行成功时执行步骤117,当执行不成功时结束;在本实施例中,获取所述执行方式在预设执行方式中的类型,具体为:判断所述当前配置项的执行方式是否属于预设执行方式中的类型,其中,所述预设执行方式有4种,分别为:第一预设执行方式,优选的为0,表示只更新文件,更新后不需要执行其他操作;第二预设执行方式,优选的为1,表示注册;第三预设执行方式,优选的为2,表示反注册,其中,反注册即为卸载;第四预设执行方式,优选的为3,表示运行;如果当前配置项的执行方式不属于预设执行方式,则结束;
例如,如果配置文件中的当前配置项为Certd.exe=all;all;all;x86;6; 3;_t;0;dO;0;all;file;null;REG32[HKEY_L0CAL_MACHINE\S0FTWARE\EnterSafe\ePass2000Auto_std\path];则执行方式为第四预设执行方式3,表示运行;步骤109:所述下载器根据所述下载信息中当前配置项的操作系统版本、操作系统构架和IE版本与本地的操作系统版本、操作系统构架和IE版本进行比较,判断当前配置项是否符合更新条件,如果是,则执行步骤110,否则执行步骤117 ;具体与步骤107的操作相同,在此不再赘述;步骤110:所述下载器根据所述下载信息中当前配置项的版本类型,判断需要获取的本地版本的类型,如果当前配置项的版本类型为第一预设版本类型,则执行步骤111,如果当前配置项的版本类型为第二预设版本类型,则执行步骤112,如果当前配置项的版本类型为第三预设版本类型,则表示不需要比较版本类型,执行步骤113 ;所述步骤110还包括:如果当前配置项的版本类型不是第一预设版本类型或第二预设版本类型或第三预设版本类型,则表示不符合预设格式,则结束;在本实施例中,第一预设版本类型为文件版本类型,优选的是file,第二预设版本类型为注册表版本类型,优选的是REG,第三预设版本类型表示不需要比较版本类型,所有版本类型均满足条件,优选的是all ;例如,如果配置文件中的当前配置项为Certd.exe=all;all;all;x86;6; 3; _t;0;dO;0;all;file;null;REG32[HKEY_L0CAL_MACHINE\S0FTWARE\EnterSafe\ePass2000Auto_std\path];则当前配置项的版本类型为all,表示不需要比较版本类型,执行步骤113 ;如果配置文件中的当前配置项为Cspll.dll=all;all;all;x86;3;0;null; 0;dl;1;1.0.13.0105;file;null;null;则当前文件的版本类型为1.0.13.0105,表示如果本地文件的版本类型小于1.0.13.0105,则需要更新,执行步骤111,如果本地文件的版本类型大于或等于1.0.13.0105,则不需要更新;步骤111:所述下载器根据所述下载信息中当前配置项的文件版本,从本地中读取本地文件版本,判断本地文件版本是否满足当前配置项的文件版本,如果是,则执行步骤113,否则表示本地文件不需要更新,执行步骤117 ;步骤112:所述下载器根据所述下载信息中当前配置项的注册表版本,从本地注册表中查询版本号,判断本地版本号是否满足当前配置项的注册表版本,如果是,则执行步骤113,否则表示本地文件不需要更新,执行步骤117 ;步骤113:所述下载器根据所述下载信息的文件名称和安装目录,从服务器端将与所述当前配置项对应的新文件下载到所述安装目录指定的位置;步骤114:下载器根据所述下载信息中当前配置项的“是否需要验证签名”,判断与所述当前配置项对应的签名文件是否需要更新,如果是,则下载对应的签名文件,执行步骤115,否则执行步骤116;例如,如果配置文件中的当前配置项为Certd.exe=all;all;all;x86;6; 3; _t;0;dO;0;all;file;null;REG32[HKEY_L0CAL_MACHINE\S0FTWARE\EnterSafe\ePass2000Auto_std\path];则当前配置项中“是否需要验证签名”为0,表示不需要更新签名文件; 步骤115:下载器对下载得到的签名文件执行验签操作,如果验签成功,则执行步骤116,如果验签失败,则结束;
所述对所述签名文件执行验签操作,具体包括:根据预设签名算法,对所述需要更新的新文件做签名操作,得到签名值,将得到的签名值与下载得到的签名文件进行比较,如果一致,则表示验签成功,否则表示验签失败;在本实施例中,优选的是通过步骤114与步骤115的方式来实现,除此之外还可以为:方案一:下载器判断新文件是否为符合PE结构的文件,如果是,则对所述新文件进行证书验证,如果验证通过,则执行步骤116,否则验证失败,结束,否则直接执行步骤116 ;所述步骤Al中,符合PE结构的文件可以为.exe文件、.dll文件等;方案二:下载器判断新文件是否为PE结构的文件,如果是,则对新文件进行证书验证,如果验证通过,则执行步骤116,如果验证不通过,则验证失败,结束,否则下载对应的签名文件,执行步骤115 ;步骤116:下载器根据所述下载信息中当前配置项的执行方式,获取所述执行方式在预设执行方式中的类型,并按照预设执行方式执行相应操作,执行步骤117 ;所述步骤116还包括:如果按照预设执行方式能够执行成功,则执行步骤117,否则结束;其中,所述下载器按照预设执行方式执行相应操作,还包括,如图3所示:步骤S1:判断需 要更新的原文件是否存在,如果是,则执行步骤S2,否则按照预设执行方式执行相应操作;步骤S2:判断需要更新的原文件是否正在运行,如果是,则执行步骤S3,否则按照预设执行方式执行相应操作;步骤S3:对需要更新的原文件进行改名操作,判断是否能够改名成功,如果是,则按照预设执行方式执行相应操作,否则提示文件正在运行无法安装程序;在本实施例中,步骤S3可以替换为:根据预设执行方式执行,将更新信息写入临时注册表中,当系统重启时,根据临时注册表内容,完成新文件的安装;步骤117:判断所述配置文件中是否还有未处理的配置项,如果是,则顺序处理配置文件中的下一配置项,返回执行步骤104,否则将本次更新时间和更新周期保存在预设存储区中,更新结束;具体的,根据本次更新时间修改或创建新的注册表项;例如:[HKEY_L0CAL_MACHINE\S0FTWARE\EnterSafe\ePass2000Auto_std]〃UpdatePeriod〃=dword:00000005〃Time〃=〃2013.01.10〃,将本次更新的时间 2013.01.10 和更新周期dword:00000005保存在预设存储区中。
权利要求
1.一种自动更新的方法,其特征在于,包括: 步骤101:下载器从下载服务器端下载配置文件,并对所述配置文件进行解析,得到签名值,对所述签名值进行验证,如果验证成功,则解析所述配置文件得到所有的配置项,执行步骤102,如果验证失败,则结束; 步骤102:所述下载器从所述所有的配置项中获取当前配置项,并对所述当前配置项进行解析得到下载信息,根据所述下载信息,判断与当前配置项对应的本地文件是否满足更新条件,如果是,则执行步骤103,否则执行步骤104 ; 其中,所述下载信息包括文件名称、操作系统版本、操作系统架构、IE版本、安装目录、运行参数、执行方式、下载方式、是否需要验证签名、版本类型、文件版本、注册表版本; 步骤103:所述下载器根据所述下载信息的文件名称和安装目录,从服务器端将与所述当前配置项对应的新文件下载到所述安装目录指定的位置,判断所述新文件是否需要验证签名,如果不需要,则直接执行步骤104,如果需要,则下载对应的签名文件,并对所述签名文件执行验签操作,如果验签成功,则所述下载器根据预设执行方式执行相应操作,执行步骤104,如果验签不成功,则结束; 步骤104:所述下载器判断所述配置文件中是否还有未处理的配置项,如果是,则顺序处理配置文件中的下一配置项,返回步骤102,否则将本次更新时间和更新周期保存在预设存储区中,更新结束。
2.根据权利要求1所述的方法,其特征在于,所述步骤101之前还包括: 步骤101-1:所述下载器查找所述预设存储区中的更新时间和更新周期,判断是否满足更新条件,如果是,则执行步骤101-2,否则结束; 步骤101-2:所述下载器判断是否能够连接到所述下载服务器,如果是,则执行步骤101-3,否则结束; 步骤101-3:所述下载器判断是否能从所述下载服务器端成功下载所述配置文件,如果是,则执行步骤101,否则结束。
3.根据权利要求2所述的方法,其特征在于,所述步骤101-1具体为:所述下载器从所述预设存储区中查找更新时间和更新周期,计算系统时间与更新时间的差值,得到的结果与更新周期进行比较,如果大于或等于更新周期,则表示下载器满足更新条件,执行步骤101-2,否则表示仍在更新周期内,结束。
4.根据权利要求2所述的方法,其特征在于,所述步骤101-2具体为:所述下载器调用系统应用程序编程接口,得到返回值,并将所述返回值返回给所述下载器,如果所述返回值为第一预设数值,则表示连接下载服务器成功,否则表示连接下载服务器失败。
5.根据权利要求1所述的方法,其特征在于,所述步骤101中,所述对所述配置文件进行解析,还包括:所述下载器对所述配置文件进行解析,并判断解析得到的内容是否合法。
6.根据权利要求1所述的方法,其特征在于,所述步骤101中,所述下载器对所述签名值进行验证具体为:所述下载器根据预设公钥、签名算法、配置文件和签名值,使用预设签名验证算法进行验证。
7.根据权利要求1所述的方法,其特征在于,所述下载信息还包括文件架构、执行等待时间和注册表目录。
8.根据权利要求1所述的方法, 其特征在于,所述步骤102中,所述根据所述下载信息,判断与当前配置项对应的本地文件是否满足更新条件,具体为: 步骤102-1:所述下载器根据所述下载信息中当前配置项的下载方式,判断所述下载方式的类型,如果所述下载方式为第一预设下载方式,则执行步骤102-2,如果所述下载方式为第二预设下载方式,则执行步骤102-5,否则结束;步骤102-2:所述下载器根据所述下载信息中当前配置项的安装目录和文件名称,判断与当前配置项对应的本地文件是否存在,如果是,则执行步骤102-3,否则执行步骤104 ;步骤102-3:所述下载器根据所述下载信息中当前配置项的操作系统版本、操作系统构架和IE版本与本地的操作系统版本、操作系统构架和IE版本进行比较,判断与当前配置项对应的本地文件是否符合系统条件,如果是,则执行步骤102-4,否则执行步骤104 ; 步骤102-4:所述下载器根据所述下载信息中当前配置项的执行方式,获取所述执行方式在预设执行方 式中的类型,并根据预设执行方式执行相应操作,如果能够执行成功,则执行步骤104,否则结束; 步骤102-5:所述下载器根据所述下载信息中当前配置项的操作系统版本、操作系统构架和IE版本与本地的操作系统版本、操作系统构架和IE版本进行比较,判断与当前配置项对应的本地文件是否符合更新条件,如果是,则执行步骤102-6,否则执行步骤104 ; 步骤102-6:所述下载器根据所述下载信息中当前配置项的版本类型,判断需要获取的本地版本的类型,如果当前配置项的版本类型为第一预设版本类型,则执行步骤102-7,如果当前配置项的版本类型为第二预设版本类型,则执行步骤102-8,如果当前配置项的版本类型为第三预设版本类型,则表示不需要比较版本类型,执行步骤103,否则结束; 步骤102-7:所述下载器根据所述下载信息中当前配置项的文件版本,从本地中读取本地文件版本,判断本地文件版本是否满足当前配置项的文件版本,如果是,则执行步骤.103,否则表示本地文件不需要更新,执行步骤104 ; 步骤102-8:所述下载器根据所述下载信息中当前配置项的注册表版本,从本地注册表中查询版本号,判断所述版本号是否满足当前配置项的注册表版本,如果是,则执行步骤.103,否则表示与当前配置项对应的本地文件不需要更新,执行步骤104。
9.根据权利要求8所述的方法,其特征在于,所述步骤102-1中所述第一预设下载方式为不需要下载,只用于执行,所述第二预设下载方式为在满足更新条件下进行下载。
10.根据权利要求1或8中所述的方法,其特征在于,所述预设执行方式包括:第一预设执行方式,表示只更新文件,更新后不需要执行其他操作,第二预设执行方式,表示注册,第三预设执行方式,表示反注册,第四预设执行方式,表示带所述运行参数运行。
11.根据权利要求8所述的方法,其特征在于,所述步骤102-6中,所述第一预设版本类型为文件版本类型,所述第二预设版本类型为注册表版本类型,所述第三预设版本类型为不需要比较版本类型。
12.根据权利要求1所述的方法,其特征在于,所述步骤103中,所述判断所述新文件是否需要验证签名,还可以为:下载器判断新文件是否为符合PE结构的文件,如果是,则对所述新文件进行证书验证,如果验证通过,则执行步骤104,否则验证失败,结束,否则直接执行步骤104。
13.根据权利要求1所述的方法,其特征在于,所述步骤103中,所述判断所述新文件是否需要验证签名,还可以为:步骤A:下载器判断新文件是否为PE结构的文件,如果是,则对新文件进行证书验证,执行步骤B,否则下载对应的签名文件,执行步骤C ; 步骤B:下载器对新文件进行证书验证,如果验证成功,则执行步骤104,否则,则验证失败,结束; 步骤C:下载器对所述签名文件进行验证,如果验证成功,则执行步骤104,否则验证失败,结束。
14.根据权利要求1所述的方法,其特征在于,所述步骤103中,所述判断所述新文件是否需要验证签名,具体为:所述下载器根据所述下载信息中当前配置项的“是否需要验证签名”,判断所述新文件是否需要验证签名。
15.根据权利要求1所述的方法,其特征在于,所述步骤103中,所述下载对应的签名文件,并对所述签名文件进行验签操作,具体为:所述下载器根据预设公钥、签名算法、新文件和签名文件,使用预设签名验证算法进行验证。
16.根据权利要求1所述的方法,其特征在于,所述步骤103中,所述下载器根据预设执行方式执行相应操作,还包括: 步骤Sll:所述下载器判断与当前配置项对应的本地文件是否存在,如果是,则执行步骤S12,否则将需要更新的新文件下载到预设目录中,并按照预设执行方式执行; 步骤S12:所述下载器判断与当前配置项对应的本地文件是否正在运行,如果是,则执行步骤S13,否则将需要更新 的新文件下载到预设目录中,并按照预设执行方式执行; 步骤S13:所述下载器对与当前配置项对应的本地文件进行改名操作,判断是否能够改名成功,如果是,则将需要更新的新文件下载到预设目录中,并按照预设执行方式执行,否则提示本地文件正在运行,无法安装程序。
17.根据权利要求16所述的方法,其特征在于, 所述步骤S13还可以为:所述下载器根据预设执行方式执行相应操作,将更新信息写入临时注册表中,当系统重启时,根据所述临时注册表中的内容,完成新文件的安装。
全文摘要
本发明公开了一种自动更新的方法,属于信息安全领域。所述方法包括下载器从下载服务器端下载配置文件,并进行解析得到签名值和所有的配置项;对签名值进行验证,验证成功则获取所有的配置项中的当前配置项并解析,得到当前配置项的下载信息,根据下载信息判断当前配置项是否满足更新条件,如果不满足,则顺序解析下一配置项,如果满足,则下载对应的新文件,如果需要更新签名文件,则下载对应的签名文件并验签,验签成功,则根据预设执行方式执行相应的更新操作,顺序解析下一配置项,验签不成功,结束。采用本发明所述方案能够实现在少数文件需要更新时,只需要更新少数文件,减少带宽的使用,而且更新方式更灵活。
文档编号G06F9/445GK103218242SQ20131013848
公开日2013年7月24日 申请日期2013年4月19日 优先权日2013年4月19日
发明者陆舟, 于华章 申请人:飞天诚信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1