具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中,服务器首先对终端设备的升级权限进行验证,验证之后,将需要升级的文件传输至终端设备,终端设备然后再对文件进行升级。
图1为本发明实施例的文件的升级方法的总体流程图。
在本实施例中,当用户需要对使用的终端设备的文件进行升级时,通过终端设备向升级的服务器发送升级请求,以使服务器进行权限的验证。当然,用户所使用的终端设备在正常使用前,需要在升级服务器进行注册,获得一个账号,在注册的过程中,用户需要将终端设备的设备序列号(Equipment Serial Number,ESN)和许可授权编码(LiccnscAuthorization Code,LAC)在升级服务器进行注册。
在本实施例中,终端设备可以在第一服务器进行注册,当需要升级时,通过第一服务器对终端设备进行验证升级权限,当验证通过时,然后在第二服务器上获取升级文件进行升级。在本实施例中,终端设备还可以在一个服务器上进行升级,并通过该服务器上进行权限验证,及当验证通过后,在该服务器获取升级文件。可以理解的,第一种方案:可以将服务器分成二个服务器,第一个服务器做注册和验证,第二个服务器存储升级文件,此时,第一个服务器需要通知终端设备升级文件存储的第二服务器的信息。第二种方案:一个服务器同时做注册、验证和存储升级文件。
为使描述简单,以第一种方案作为例子进行说明。第二种方案的例子此处不再描述。不同的在于,第一种方案中的第一个服务器需要通知终端设备升级文件存储的第二服务器的信息,终端设备再通过第二服务器的信息获取升级文件。
在本实施例中,步骤S100,终端设备向第一服务器发起升级请求信息,该升级请求信息包括终端设备的ESN、LAC及升级文件的名称。在本实施例中,第一服务器可以是HTTP服务器,可以升级文件的官方网站。
步骤S102,第一服务器根据该升级请求信息对终端设备的升级权限进行验证。在本实施例中,将升级请求信息中的ESN、LAC分别与注册信息中的ESN和LAC进行比对。
如果用户通过修改license,并将包括license的升级消息发给第一服务器进行验证时,由于并未采用终端设备的license作为验证标准,因此,可阻止这种升级请求,从而确认这种用户为非合法用户,防止用户的这种行为。
步骤S104,当验证成功后,第一服务器发送反馈信息至终端设备。在本实施例中,第一服务器以XML文件的形式发送反馈信息至终端设备,反馈信息包括当前升级文件的版本信息、第二服务器信息、激活码、信息-摘要算法值(Message-digest Algorithm 5,MD5)和数字签名信息,当然还可以包括其他的信息。当前升级文件的版本信息为当前升级文件的版本号。第二服务器信息包括第二服务器的地址信息及第二服务器的登入密码信息,第二服务器可以为FTP服务器。数字签名信息是对MD5值加密后的字符串。在本实施例中,第二服务器信息和数字签名信息需要进行高级加密标准(Advanced Encryption Standard,AES)加密。当然,也可以采用其他的加密方法,本发明不进行限制。在本实施例中,激活码通过第一服务器将需要升级的终端设备的ESN、升级文件的名称及该升级文件的有效期截止时间进行AES加密获得。在本实施例中,激活码中包括终端设备的ESN、升级文件的名称及该升级文件的有效期截止时间。
若采用第二种方案,反馈信息包括当前升级文件的版本信息、激活码、信息-摘要算法值(Message-digest Algorithm 5,MD5)和数字签名信息。
步骤S106,终端设备根据反馈信息向第二服务器发送获取升级文件的请求信息。在本实施例中,终端设备先对第二服务器信息进行AES解密,再根据解密后的第二服务器信息及当前升级文件的版本信息向第二服务器发送获取升级文件的请求信息。该请求信息包括解密后的第二服务器信息中的第二服务器的登入密码信息及当前升级文件的版本信息。在本实施例中,终端设备还需要对数字签名信息进行AES解密,将解密的MD5值与反馈信息中的MD5值进行比对,若相同,则将获取升级文件的请求信息发送至第二服务器。若不相同,则中止升级的操作。在本实施例中,将解密的MD5值与反馈信息中的MD5值进行比对主要为了防止XML文件被修改。
若采用第二种方案,终端设备根据反馈信息中的当前升级文件的版本信息向服务器发送获取升级文件的请求信息。
步骤S108,第二服务器根据该请求信息进行升级权限验证。在本实施例中,根据解密后的第二服务器信息进行升级权限验证。
步骤S110,当验证成功后,第二服务器将原始文件生成适合网络传输的升级文件,并发送至终端设备。在本实施例中,将原始文件先进行加密,再在加密后原始文件上增加头部信息。可以理解,所述升级文件包括加密的原始文件和头部信息。
若采用第二种方案,则无需步骤S108,服务器直接根据升级文件的请求信息生成适合网络传输的升级文件,并发送至终端设备。
步骤S112,当所述终端设备根据所述头部信息和反馈信息确认所述获取的升级文件没有被修改时,进行升级操作。或者,该步骤也可以为根据所述服务器发送的反馈信息中的激活码中的所述ESN、升级文件的名称、所述升级文件的有效期截止时间及升级文件的生成时间确认所述激活码有效时,进行升级操作。
在本实施例中,将原始文件先进行加密,并在加密后的原始文件上增加头部信息,从而生成升级文件,从而可以增加传输至终端设备的升级文件的安全性能,从而提高升级的可靠性,并且根据头部信息和反馈信息来确认获取的升级文件是否被修改过,从而可以确保升级文件是否被修改过,即是否被攻击过,最终提高升级的可靠性。在本实施例中,通过两个不同的服务器来处理升级请求,可以将升级的服务进行细化,即进行分工化,并可避免当第一服务器在高峰的访问量时,可适当减轻第一服务器的压力。
图2为本发明实施例图1中步骤S110的具体流程图。
步骤S200,将原始文件进行加密。在本实施例中,对原始的升级文件进行AES加密,当然,也可以采用其他的加密方法。
步骤S202,将加密后的原始文件增加头部信息。在本实施例中,头部信息的格式如下表所示:
升级文件名称 |
原始文件的版本号 |
升级文件生成时间 |
MD5值 |
ESN |
在本实施例中,将MD5值字段的初始值为第二服务器与终端设备共有的一个密钥,并为一个32字节的密钥。ESN字段的初始值为0。
步骤S204,将加密后的原始文件和头部信息进行MD5运算,以获得MD5值。
步骤S206,将获得的该MD5值更换头部信息中的MD5值,从而生成适合网络传输的升级文件,并发送至网络设备。可以理解为升级文件包括加密后的原始文件和经过更换MD5值的头部信息。
在本实施例中,将原始文件先进行加密,并在加密后的原始文件上增加头部信息,并对头部信息中的MD5值进行变更,生成升级文件,从而可以增加传输至终端设备的升级文件的安全性能,从而最终提高升级文件的可靠性。
在本实施例中,当终端设备接收到第二服务器发送的升级文件后,终端设备可以选择不同的升级方式。在本实施例中,可以包括在线升级和本地升级。
图3为本发明实施例图1中步骤S112的第一种具体流程图。在本实施例中,图3为选择在线升级方式进行升级的流程图。
在本实施例中,步骤S300,解析接收的第二服务器发送的升级文件。在本实施例中,解析接收的第二服务器发送的升级文件中的头部信息,以获取头部信息中的MD5值,原始文件的版本号。
若采用第二种方案,则解析服务器发送的升级文件。
步骤S302,判断解析后的原始文件的版本号与反馈信息中的当前升级文件的版本号是否相同。若判断相同,则执行步骤S304;若判断不相同,说明升级文件被修改过,则执行步骤S314。
步骤S304,判断头部信息中的MD5值是否被修改。在本实施例中,终端设备将与第二服务器相同的密钥更换该头部信息中的MD5值,并对该升级文件中加密后的原始文件和头部信息进行MD5运算,以获得新的MD5值。再判断该获得的新的MD5值与头部信息中的MD5值是否相同。若不相同,说明该升级文件被修改过,则执行步骤S314。若相同,即,该升级文件没有被修改,则执行步骤S306。在本实施例中,由于需要重新进行MD5运算,如果头部信息中的版本号、升级文件名称、或升级文件生成时间被修改,则会导致重新计算后的MD5值跟头部信息中的MD5不相同。
步骤S306,更新头部信息中的ESN字段的值,并将加密后的原始文件和更新后的头部信息进行MD5运算。在本实施例中,将该头部信息中的ESN字段的值更新为终端设备的ESN。在本实施例中,将终端设备的ESN更新头部信息中的ESN字段的值,即将终端设备的ESN与原始文件进行绑定,主要为防止其他用户从该终端设备中拷贝该升级文件后,进行文件升级,由于不同的终端设备具有不同的ESN,因此,当该升级文件在其他的终端设备中进行升级时,会进行ESN的比对,由于ESN的不同,从而无法满足升级的条件,进而可阻止其他用户升级。若不为防止其他用户盗取该升级文件,只为本终端设备进行升级时,该步骤可以没有。
步骤S308,判断头部信息中的原始文件的版本号是否比当前使用的文件的版本号新。在本实施例中,判断头部信息中的原始文件的版本号比终端设备当前使用的文件的版本号新,即头部信息中的原始文件的版本号比终端设备当前使用的文件的版本号要大,则执行步骤S310。若头部信息中的原始文件的版本号没有比当前使用的文件的版本号新,即终端设备不需要升级,则执行步骤S314。
步骤S310,对升级文件中的加密后的原始文件进行解密。在本实施例中,进行AES解密。
步骤S312,对解密后的原始文件进行升级。
步骤S314,结束操作。
在本实施例中,服务器将加密的原始文件增加头部信息,从而生成升级文件,并在终端设备通过将升级文件中的头部信息中的原始文件的版本号和MD5值分别进行验证,从而确保当前使用的终端设备的升级文件在网络传输过程中没有被修改,从而可以提高升级的可靠性。
图4为本发明实施例图1中步骤S112的第二种具体流程图。在本实施例中,图4为选择本地升级方式进行升级的流程图。
在本实施例中,步骤S400,将反馈信息中的激活码进行解密,以获得激活码中的ESN、升级文件的名称及该升级文件的有效期截止时间,并解析升级文件中的头部信息以获取升级文件的生成时间。
步骤S402,判断激活码中的ESN与终端设备的ESN是否相同。若判断相同,则执行步骤S404;若判断不相同,则执行步骤S414。
步骤S404、判断激活码中的升级文件的名称与终端设备的升级文件的名称是否相同。若判断相同,则执行步骤S406。若判断不相同,则执行步骤S414。
步骤S406,判断激活码中的有效期截止时间是否大于等于升级文件的头部信息中的升级文件的生成时间。若判断激活码中的有效期截止时间大于等于升级文件的生成时间,则激活码有效,执行步骤S408。若判断激活码中的有效期截止时间小于升级文件的生成时间,则执行步骤S414。
步骤S408,更新头部信息中的ESN字段的值,并将加密后的原始文件和更新后的头部信息进行MD5运算。
步骤S410,对升级文件中的加密后的原始文件进行解密。在本实施例中,进行AES解密。
步骤S412,对解密后的原始文件进行升级。
步骤S414,结束操作。
在本实施例中,当进行本地升级时,通过验证激活码中的ESN、升级文件的名称及有效期截止时间,可以防止升级文件被别人盗用,从而确保当前使用的终端设备的升级文件为合法用户,从而可保证服务器发送的升级文件的原始文件可以被合法的用户进行升级,即可以提高升级的可靠性。
图5为本发明实施例的终端设备的应用环境图。
在本实施例中,终端设备可以在第一服务器进行注册,当需要升级时,通过第一服务器对终端设备进行验证升级权限,当验证通过时,然后在第二服务器上获取升级文件进行升级。在本实施例中,终端设备还可以在一个服务器上进行升级,并通过该服务器上进行权限验证,及当验证通过后,在该服务器获取升级文件。可以理解的,第一种方案:可以将服务器分成二个服务器,第一个服务器做注册和验证,第二个服务器存储升级文件,此时,第一个服务器需要通知终端设备升级文件存储的第二服务器的信息。第二种方案:一个服务器同时做注册、验证和存储升级文件。
为使描述简单,以第一种方案作为例子进行说明。第二种方案的例子此处不再描述。不同的在于,第一种方案中的第一个服务器需要通知终端设备升级文件存储的第二服务器的信息,终端设备再通过第二服务器的信息获取升级文件。
在本实施例中,终端设备51通过网络52与服务器53通信连接,当终端设备51需要过行升级时,终端设备51发送升级请求信息至服务器53。在本实施例中,服务器53包括第一服务器531和第二服务器532。在本实施例中,第一服务器531为HTTP服务器。第二服务器532可以为FTP服务器。第一服务器531根据终端设备51发送的升级请求信息进行升级权限验证,当验证成功后,发送反馈信息至终端设备51。反馈信息包括当前升级文件的版本信息、第二服务器信息、激活码、信息-摘要算法值(Message-digest Algorithm 5,MD5)和数字签名信息。终端设备51根据该第二服务器信息向第二服务器532发送获取升级文件的请求信息。第二服务器532根据该请求信息对终端设备51进行升级权限验证,当验证成功后,将原始的原始文件生成适合网络传输的升级文件,并发送至终端设备51。
若采用第二种方案,反馈信息包括当前升级文件的版本信息、激活码、信息-摘要算法值(Message-digest Algorithm 5,MD5)和数字签名信息。
图6为本发明实施例的第二服务器的结构图。
在本实施例中,第二服务器532包括接收模块5320、验证模块5322、加密模块5324、数据库5326、处理器5328及发送模块5330。
在本实施例中,接收模块5320用于接收终端设备51发送的获取升级文件的请求信息,该请求信息包括第二服务器的登入密码信息及当前升级文件的版本信息。
验证模块5322用于根据请求信息中的第二服务器的登入密码信息进行升级权限验证。加密模块5324用于当验证模块5322验证成功后,根据请求信息中的当前升级文件的版本信息从数据库5326中获取相应的原始文件,并进行加密。
处理器5328用于当加密模块5324对原始的原始文件进行加密后,对加密后的原始文件增加头部信息,并将加密后的原始文件和头部信息进行MD5运算,以获得MD5值。在本实施例中,将获得的MD5值更新头部信息中的MD5值,从而生成适合网络传输的升级文件。可以理解为升级文件包括加密后的原始文件和经过更换MD5值的头部信息。
发送模块5330用于当处理器5328生成升级文件后,发送该升级文件至终端设备51。
在本实施例中,第二服务器将原始文件先进行加密,并在加密后的原始文件上增加头部信息,并对头部信息中的MD5值进行变更,生成升级文件,从而可以增加传输至终端设备的升级文件的安全性能,从而最终提高升级文件的可靠性。
图7为本发明实施例的终端设备的结构图。
在本实施例中,终端设备51包括发送模块510、接收模块511、选择模块512、解析模块513、判断模块514、计算模块515、数据库516、解密模块517、升级模块518。
在本实施例中,当终端设备51需要进行升级时,发送模块510用于发送向第一服务器531发起升级请求信息,该升级请求信息包括终端设备51的ESN、LAC及升级文件的名称。
当第一服务器531验证成功后,接收模块511用于接收第一服务器531发送的反馈信息。该反馈信息包括当前升级文件的版本信息、第二服务器信息、激活码、信息-摘要算法值(Message-digest Algorithm 5,MD5)和数字签名信息。当前升级文件的版本信息为当前升级文件的版本号。第二服务器信息包括第二服务器的地址信息及第二服务器的登入密码信息,第二服务器可以为FTP服务器。数字签名信息是对MD5值加密后的字符串。
解密模块517用于对第二服务器信息和数字签名信息进行解密,以获得第二服务器的地址信息、第二服务器的登入密码信息及MD5值。
判断模块514用于判断解密模块517解密后的MD5值与接收模块511接收的反馈信息中的MD5值是否相同,若不相同,说明第一服务器传送的反馈信息被修改,则中止升级操作。
发送模块510还用于当判断模块514判断判断解密模块517解密后的MD5值与接收模块511接收的反馈信息中的MD5值相同时,根据第二服务器的地址信息向第二服务器532发送获取升级文件的请求信息。该请求信息包括解密后的第二服务器信息中的第二服务器的登入密码信息及当前升级文件的版本信息。
若采用第二种方案,发送模块510根据反馈信息中的当前升级文件的版本信息向服务器发送获取升级文件的请求信息。
当第二服务器532验证后,接收模块511还用于接收第二服务器532发送的升级文件。
选择模块512用于当接收模块511接收到升级文件时,为用户提供升级方式,接收用户选择的升级方式。
解析模块513用于当用户选择在线升级方式时,解析接收模块511接收的升级文件中的头部信息,以获取头部信息中的MD5值及升级文件的版本号。
判断模块514还用于判断解析后的升级文件的版本号与反馈信息中的当前升级文件的版本号是否相同。若判断不相同,说明该升级文件被修改过,则中断升级操作。若判断相同时,判断模块514还用于判断头部信息中的MD5值是否被修改。在本实施例中,判断模块514将与第二服务器相同的密钥更换该头部信息中的MD5值,并对该升级文件中加密后的原始文件和头部信息进行MD5运算,以获得新的MD5值。再判断该获得的新的MD5值与头部信息中的MD5值是否相同。若判断不相同,即头部信息中的MD5值被修改,说明该升级文件被修改过,则中断升级操作。
计算模块515用于当判断头部信息中的MD5值没有被修改时,更新头部信息中的ESN字段的值,并将加密后的原始文件和更新后的头部信息进行MD5运算,并存储至数据库516。在本实施例中,将终端设备的ESN更新头部信息中的ESN字段的值,即将终端设备的ESN与原始文件进行绑定,主要为防止其他用户从该终端设备中拷贝该升级文件后,进行文件升级,由于不同的终端设备具有不同的ESN,因此,当该升级文件在其他的终端设备中进行升级时,会进行ESN的比对,由于ESN的不同,从而无法满足升级的条件,进而可阻止其他用户升级。
判断模块514还用于当判断头部信息中的MD5值没有被修改后,判断头部信息中的原始文件的版本号是否比当前使用的文件的版本号新。若判断头部信息中的原始文件的版本号没出息比当前使用的文件的版本号新,则中断升级操作。
解密模块517还用于判断模块514判断头部信息中的原始文件的版本号比当前使用的文件的版本号新时,对数据库516存储的原始文件进行解密。升级模块518用于当解密模块517解密原始文件后,进行升级操作。
解密模块517还用于当用户选择本地升级方式时,将反馈信息中的激活码进行解密,以获得激活码中的ESN、升级文件的名称及该升级文件的有效期截止时间,并解析升级文件中的头部信息以获取升级文件的生成时间。
判断模块514还用于当判断激活码中的ESN与终端设备的ESN是否相同,若判断不相同,则中断升级操作。
判断模块514还用于当判断激活码中的ESN与终端设备的ESN相同时,判断激活码中的升级文件的名称与终端设备的升级文件的名称是否相同。若判断不相同,则中断升级操作。
判断模块514还用于判断激活码中的升级文件的名称与终端设备的升级文件的名称相同时,判断激活码中的有效期截止时间是否大于等于升级文件的头部信息中的升级文件的生成时间。若判断激活码中的有效期截止时间小于升级文件的头部信息中的升级文件的生成时间,则中断升级操作。
计算模块515还用于当判断激活码中的有效期截止时间大于等于升级文件的头部信息中的升级文件的生成时间时,即判断激活码有效,更新头部信息中的ESN字段的值,并将加密后的原始文件和更新后的头部信息进行MD5运算,并存储至数据库516。
解密模块517还用于判断激活码有效时,对升级文件中的加密后的原始文件进行解密。
在本实施例中,终端设备选择在线升级时,通过将升级文件中的头部信息中的升级文件的版本号和MD5值分别进行验证,从而确保当前使用的终端设备的升级文件在网络传输过程中没有被修改,从而可以提高升级的可靠性;当进行本地升级时,通过验证激活码中的ESN、升级文件的名称及有效期截止时间,可以防止升级文件被别人盗用,从而确保当前使用的终端设备的升级文件为合法用户,从而可保证服务器发送的升级文件的原始文件可以被合法的用户进行升级,即可以提高升级的可靠性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AcccssMemory,RAM)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。