一种文件保护方法以及装置与流程

文档序号:17644472发布日期:2019-05-11 00:54阅读:165来源:国知局
一种文件保护方法以及装置与流程

本申请涉及计算机技术领域,具体涉及一种文件保护方法以及装置。



背景技术:

随着汽车行业的发展,越来越多的汽车品牌涌现到市场,相应的汽车诊断项目也不断细化,用于检测汽车的诊断软件也需要进行升级更新,才能满足不断增加的业务需求。对诊断软件的拓展功能进行付费下载,是未来汽车诊断软件的发展趋势。

目前各个诊断软件的开发商为了抢占市场,通常为用户提供免费的基础版本,并且后续该基础版本的升级文件都能够进行免费下载。同时,随着软件功能的不断扩展,开发商会提供不同版本的付费汽车诊断软件,或者提供付费的软件升级文件包。用户根据自己的需要,选择相应版本的付费汽车诊断软件或者是软件升级文件包进行购买。但用户可以通过拷贝已付费设备中的文件,从而避开购买支付的环节。盗用付费文件不仅危害了企业的利益,使用盗用的付费文件还为用户带来了安全隐患。



技术实现要素:

本申请实施例提供一种文件保护方法以及装置,适用于各种付费软件的升级需求,有效保障了付费软件的安全,为使用该软件进行诊断的车辆带来了安全的诊断过程。

第一方面,本申请实施例提供了一种文件保护方法,包括:当接收到服务器发送的软件更新通知时,向所述服务器发送软件更新请求;接收所述服务器发送的加密的升级软件和所述升级软件的认证信息;调用检测加密认证接口函数,对所述升级软件的认证信息进行检测;当检测通过时,调用读取加密文件接口函数,读取所述加密的升级软件并解密所述升级软件,得到解密后的升级软件。

在一种可能的实现方式中,所述升级软件的认证信息包括所述升级软件的版本标识和所述升级软件中的一个或多个只读文件的第一特征值,所述调用检测加密认证接口函数,对所述升级软件的认证信息进行检测,包括:解压缩所述加密的升级软件;调用所述检测加密认证接口函数,检测解压缩后的升级软件中的版本标识与所述认证信息中软件的版本标识是否一致;当所述解压缩后的升级软件中的版本标识与所述认证信息中所述升级软件的版本标识一致时,对所述解压缩后的升级文件中的所述一个或多个只读文件进行计算,得到所述一个或多个只读文件的第二特征值;分别比较所述一个或多个只读文件的第一特征值与所述一个或多个只读文件的第二特征值是否一致;当所述一个或多个只读文件的第一特征值均与所述一个或多个只读文件的第二特征值一致时,检测通过。

在另一种可能的实现方式中,所述接收所述服务器发送的加密的升级软件和所述升级软件的认证信息之后,以及所述调用检测加密认证接口函数,对所述升级软件的认证信息进行检测之前,所述方法还包括:调用加密认证接口函数,将终端的硬件标识写入所述认证信息;所述解压缩所述加密的升级软件之前,所述方法还包括:比较所述终端的硬件标识与所述认证信息中的终端的硬件标识是否一致;当所述终端的硬件标识与所述认证信息中的终端的硬件标识一致时,执行所述解压缩所述加密的升级软件的步骤。

在又一种可能的实现方式中,所述方法还包括:运行所述解密后的升级软件。

第二方面,本申请实施例提供了一种文件保护方法,包括:接收终端发送的软件更新请求;根据所述软件更新请求,向所述终端发送加密的升级软件和所述升级软件的认证信息。

在一种可能的实现方式中,所述升级软件的认证信息包括所述升级软件的版本信息和所述升级软件中的一个或多个只读文件的第一特征值,所述根据所述软件更新请求,向所述终端发送加密的升级软件和所述升级认证信息,包括:使用预置的单向不可逆函数对所述升级软件中的一个或多个只读文件进行计算,得到所述升级软件中的一个或多个只读文件的第一特征值。

第三方面,本申请实施例提供了一种终端,包括:发送单元,用于当接收到服务器发送的软件更新通知时,向所述服务器发送软件更新请求;接收单元,用于接收所述服务器发送的加密的升级软件和所述升级软件的认证信息;检测单元,用于调用检测加密认证接口函数,对所述升级软件的认证信息进行检测;读取单元,用于当检测通过时,调用读取加密文件接口函数,读取所述加密的升级软件并解密所述升级软件,得到解密后的升级软件。

在一种可能的实现方式中,所述检测单元包括:解压缩子单元,用于解压缩所述加密的升级软件;检测子单元,用于调用所述检测加密认证接口函数,检测解压缩后的升级软件中的版本标识与所述认证信息中软件的版本标识是否一致;计算子单元,用于当所述解压缩后的升级软件中的版本标识与所述认证信息中所述升级软件的版本标识一致时,对所述解压缩后的升级文件中的所述一个或多个只读文件进行计算,得到所述一个或多个只读文件的第二特征值;比较子单元,用于分别比较所述一个或多个只读文件的第一特征值与所述一个或多个只读文件的第二特征值是否一致;所述检测子单元还用于,当所述一个或多个只读文件的第一特征值均与所述一个或多个只读文件的第二特征值一致时,检测通过。

在另一种可能的实现方式中,所述终端还包括:加密单元,用于调用加密认证接口函数,将终端的硬件标识写入所述认证信息。所述比较子单元还用于,比较所述终端的硬件标识与所述认证信息中的终端的硬件标识是否一致。

在又一种可能的实现方式中,所述终端还包括:运行单元,用于运行所述解密后的升级软件。

第四方面,本申请实施例提供了一种服务器,包括:接收单元,用于接收终端发送的软件更新请求;发送单元,用于根据所述软件更新请求,向所述终端发送加密的升级软件和所述升级软件的认证信息。

在一种可能的实现方式中,所述服务器还包括:计算单元,用于使用预置的单向不可逆函数对所述升级软件中的一个或多个只读文件进行计算,得到所述升级软件中的一个或多个只读文件的第一特征值。

第五方面,本申请实施例提供了一种终端,包括:处理器、输入装置、输出装置和存储器,其中,存储器用于存储支持服务器执行上述方法的计算机程序,计算机程序包括程序指令,处理器被配置用于调用程序指令,执行上述第一方面及其任一种可选方式的方法。

第六方面,本申请实施例提供了一种服务器,包括:处理器、输入装置、输出装置和存储器,处理器、输入装置、输出装置和存储器相互连接,其中,存储器用于存储支持终端执行上述方法的计算机程序,计算机程序包括程序指令,处理器被配置用于调用程序指令,执行上述第二方面及其任一种可选方式的方法。

第七方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

第八方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

本申请实施例具有以下有益效果:

通过对付费升级文件合理的加密和身份验证过程,达到了防止文件盗用的目的。实施本申请的方案,能够适用于各种付费软件的升级需求,有效保障了付费软件的安全,为使用该软件进行诊断的车辆带来了安全的诊断过程。

附图说明

图1是本申请实施例提供的一种文件保护方法的流程示意图;

图2是图1中步骤s103的进一步具体的实现的流程示意图;

图3是本申请实施例提供的一种文件保护方法的流程示意图;

图4是本申请实施例提供的又一种文件保护方法的流程示意图;

图5是本申请实施例提供的一种终端的结构示意图;

图6是本申请实施例提供的一种服务器的结构示意图

图7是本申请实施例提供的一种终端的硬件结构示意图;

图8是本申请实施例提供的一种服务器的硬件结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

请参阅图1,图1是本申请实施例提供的一种文件保护方法的流程示意图。其中:

s101、当接收到服务器发送的软件更新通知时,向所述服务器发送软件更新请求。

服务器通过发布升级软件,实现增加或者改善原有软件功能的作用。不同版本的升级软件,针对解决原有软件存在的不同问题。随着越来越多的汽车品牌、型号、新功能涌现到市场,软件需要支持更多新的业务需求。所以,获取较新版本的升级软件,能够更好地满足市场需求。

具体的,由于不同产地、品牌的汽车故障类型并不完全一致,针对主要进行诊断的车辆品牌,终端对于每种类型的车辆需要使用的诊断功能是不一样的。服务器发送的软件更新通知中包含了本次更新功能信息,上述更新功能信息包括但不限于车辆的产地信息、车辆的品牌信息、车辆故障信息、补丁信息和更新效果信息。根据上述更新功能信息,终端可以判断是否需要本次升级软件,然后选择性地向服务器发送软件更新请求。

例如,日系车本田容易出现汽车汽油增多的问题,当本次接收到的软件更新通知中包含本田品牌的油量相关的更新功能信息,可以知晓本次升级软件会对汽车诊断过程的质量有很大的提升。所以,终端向上述服务器发送软件更新请求。

在一种可能的实现方式中,终端根据实际的业务需求,向上述服务器发送软件更新请求。上述软件更新请求用于获取不同版本的更新软件。

例如,由于国产车的多媒体系统经常出现问题,终端为提升相关车辆的诊断质量,向服务器发送软件更新请求。上述软件更新请求包含终端的业务需求,服务器查找改善多媒体系统诊断功能升级软件,并向终端发送该升级软件版本的软件更新通知。应理解,上述举例仅仅是用作说明,不作任何具体限定。

s102、接收所述服务器发送的加密的升级软件和所述升级软件的认证信息。

处于安全考虑,上述升级软件中可能包含服务器的隐私信息,所以终端不能直接得到上述升级软件,需要进行相关的验证后,上述终端才能获取上述升级软件。对升级软件进行加密,避免了升级软件被直接拷贝到其他终端。

在一种可能的实现方式中,如果上述未经加密的升级软件被第三方获取,经第三方篡改后的升级软件可能携带有病毒程序。使用篡改版本的升级软件会对进行诊断的车辆带来安全隐患,同时也会对升级软件的发布者带来不必要的误解。

在另一种可能的实现方式中,将加密的升级软件和升级软件的认证信息同时发送给终端。终端可以通过上述认证信息,对升级软件的内容进行验证,当升级软件内容与认证信息有出入时,证明终端下载的升级软件存在问题。也避免因下载了不安全的升级软件,对进行诊断的车辆带来安全上的隐患。

s103、调用检测加密认证接口函数,对所述升级软件的认证信息进行检测。

在终端运行接收到的升级软件之前,需要对升级软件的来源和内容进行检测。上述升级软件的认证信息包括上述升级软件的版本标识和上述升级软件中的一个或多个只读文件的第一特征值。当升级软件的内容与认证信息上对应的内容完全一致时,证明该升级软件来源合法,可以进一步运行。

具体的,如图2所示,s103又包括如下步骤:

s1031、比较所述终端的硬件标识与所述认证信息中的终端的硬件标识是否一致。

在一种可能的实现方式中,由于认证信息中存在硬件标识,首先需要对终端的身份进行验证。根据认证信息硬件标识的组成规则,获取上述终端的硬件标识。若上述终端的硬件标识与上述认证信息中的终端的硬件标识不一致,则表示升级软件不属于上述终端,上述升级软件可能为其他设备中拷贝来的危险程序。

例如,认证信息中的硬件标识为24位,硬件标识的前12位由ip信息组成,硬件标识的后12位由cpu序列号信息组成。终端获取ip信息中的前12位作为硬件标识的前12位,获取cpu序列号信息中的末尾的12位作为硬件标识的后12位,组合生成硬件标识。终端将上述硬件标识与上述认证信息中的硬件标识进行对比,判断该认证信息对应的升级软件是否属于上述终端。

其中,s1031为步骤103中可选的步骤。

s1032、解压缩所述加密的升级软件。

为了保障传输速率,服务器将升级软件进行了压缩。终端要进一步对升级软件内容进行检验,就需要将压缩后的文件等恢复到压缩之前的样子。终端可以通过压缩文件的类型,选择合适的解压缩工具进行解压缩。本申请实施例不对解压缩工具和压缩文件的类型作任何具体限定。

s1033、调用所述检测加密认证接口函数,检测解压缩后的升级软件中的版本标识与所述认证信息中软件的版本标识是否一致。

终端的认证机制通常只在安装高于现有版本的新版本时,才会对进行安装的终端的资格进行认证。所以存在将升级软件的版本号改为比初始版本更低版本的做法,这种做法可以简单地绕过认证机制,使得用户可以任意下载盗版的软件。进一步的,终端的认证机制只对该软件的版本号进行认证,当用户将升级软件的版本号改为一个软件版本号中不存在的编号后,由于认证机制识别不出这一个软件,所以认证机制不能阻止这款软件的安装。

在一种可选的实现方式中,当解压缩后的升级软件中的版本标识与上述认证信息中软件的版本标识相比,升级软件的版本标识被篡改为比认证信息中版本标识更低的版本,终端删除解压缩后的升级软件,并生成不良记录。当上述不良记录达到预设次数时,终端向服务器发送标识信息和不良记录。服务器根据该不良记录的内容,选择性地向终端发送警告。

例如,由于用户多次试图以篡改升级软件版本标识的方式,安装升级软件。终端根据用户的违规操作次数,生成向服务器报告的不良记录。服务器根据接收到的不良记录,可以判断出用户的实际需求,向试图进行违规操作的用户发送警告和试用版软件的使用机会。

在另一种可选的实现方式中,服务器根据终端的不良记录,将不良记录分为轻微级别、一般级别、严重级别等多个级别,为不同级别的终端提供不同的反馈,实现从简单警告到转换潜在用户的目的。

例如,服务器可以向划分到轻微级别的终端发送产品调查问卷。当用户完成该产品调查问卷时,可以获得试用版升级软件的使用机会。

又例如,服务器可以向划分到轻微级别的终端提供以注册新用户来换取使用试用版升级软件的机会,可以通过邀请新用户的方式,获取试用版升级软件的使用机会。

又例如,服务器向划分到一般级别的终端发送产品调查问卷和邀请新用户的任务,当用户完成上述任务时,上述服务器向终端发送购买软件的折扣券。

又例如,服务器向划分到严重级别的终端发送警告,并将终端的标识存储在服务器的黑名单表。进一步的,黑名单表上的终端被禁止获取新的升级软件,终端定期向上述服务器发送使用记录,监控上述终端是否再次进行违规行为。当终端在监控期内没有再次进行违规操作,上述黑名单表中删除上述终端的标识,上述终端被划分到一般级别。

s1034、当所述解压缩后的升级软件中的版本标识与所述认证信息中所述升级软件的版本标识一致时,对所述解压缩后的升级文件中的所述一个或多个只读文件进行计算,得到所述一个或多个只读文件的第二特征值。

当升级软件的版本标识通过验证后,通过计算升级文件中只读文件的特征值的方式,相当于概括升级文件中只读文件的内容。

在一种可能的实现方式中,终端使用预置的单向不可逆函数,对升级文件中只读文件的特征值进行计算,得到上述升级文件中只读文件的所有第二特征值。进一步地,终端和服务器预置有单向不可逆函数表,上述终端和上述服务器使用相同的单向不可逆函数对只读文件内容进行计算。上述服务器可以向上述终端发送单向不可逆函数的序号,上述终端根据序号查找到对应的单向不可逆函数。上述终端使用查找到的单向不可逆函数对只读文件的内容进行计算。

上述单向不可逆函数可以将任意一段明文转换为固定长度的特征值,但由上述特征值无法计算出上述明文。上述单向不可逆函数包括但不限于信息-摘要算法5(messagedigestalgorithm5,md5)、安全哈希算法(securehashalgorithm,sha)、消息认证代码(messageauthenticationcode,mac)函数等,本申请实施例不作具体限制。

s1035、分别比较所述一个或多个只读文件的第一特征值与所述一个或多个只读文件的第二特征值是否一致。

当升级软件的版本标识通过验证后,通过对比升级文件中只读文件的特征值的方式,确认升级文件中的只读文件内容是否被篡改。

在一种可能的实现方式中,当某个第二特征值不与认证信息中对应的第一特征值完全相同时,终端判定该升级文件内容已被篡改,删除上述解压缩后的升级软件的内容。

s1036、当所述一个或多个只读文件的第一特征值均与所述一个或多个只读文件的第二特征值一致时,检测通过。

如果升级文件中某个只读文件的参数进行了修改,或者是用某个文件对原有的只读文件进行覆盖,对应的特征值会发生变化。若上述只读文件的第一特征值均与上述只读文件的第二特征值一致时,证明升级文件中的只读文件没有发生变换,检测通过。

s104、当检测通过时,调用读取加密文件接口函数,读取所述加密的升级软件并解密所述升级软件,得到解密后的升级软件。

当升级软件通过检测时,证明上述升级软件内容没有被篡改,可以放心进行解密。当终端的身份通过检测时,证明上述发出软件更新请求的终端和即将对升级软件进行解密的终端为同一个终端,即该终端拥有解密升级软件的权限。

在一种可能的实现方式中,终端使用预置的密钥对加密的升级软件进行解密,获取解密后的升级软件。上述终端使用的密钥与服务器加密使用的密钥为对应关系,密钥所代表的加密算法包括但不限于数据加密标准(dataencryptionstandard,des)、数字签名算法(digitalsignaturealgorithm,dsa)、高级加密算法(advancedencryptionstandard,aes)、国际数据机密算法(internationaldataencryptionalgorithm,ides)等。可选的,上述加密算法可以为一种或者多种加密算法的组合。

进一步的,终端有多个预置的密钥,每个密钥对应一个服务器进行加密的密钥。终端根据这种对应关系,使用序号将密钥存储起来。上述序号代表服务器此次加密使用的密钥,终端可以根据服务器传输的序号,选择对应的密钥进行解密。可选的,上述密钥的对应关系可以按照预设时间间隔为周期进行更新,更新后原有的密钥全部失效。

在另一种可能的实现方式中,终端与服务器之间使用共同的加密算法,协商出本次通信的密钥。服务器使用上述密钥进行加密,终端使用上述密钥进行解密。其中,上述加密算法生成的密钥对中包含公钥与私钥,使用私钥加密的内容,使用对应的公钥才能对其解密。上述加密算法包括但不限于rsa加密算法(rsaalgorithm,rsa)、elgamal算法、椭圆曲线加密算法(ecc)等,本申请实施例不作具体限定。

根据本申请实施例提供的一种文件保护方法,通过调用检测加密认证接口函数,对终端接收到的升级软件的认证信息进行检测,当检测通过时,才调用读取加密文件接口函数,读取并解密上述升级软件。实施本申请的方案,能够适用于各种文件、软件的升级需求,有效保障了升级软件的安全。

请参阅图3,图3是本申请实施例提供的一种文件保护方法的流程示意图。其中:

s201、当接收到服务器发送的软件更新通知时,向所述服务器发送软件更新请求。

该步骤的具体实现可参考图1所述实施例的步骤s101,在此不再赘述。

s202、接收所述服务器发送的加密的升级软件和所述升级软件的认证信息。

该步骤的具体实现可参考图1所述实施例的步骤s102,在此不再赘述。

s203、调用加密认证接口函数,将终端的硬件标识写入所述认证信息。

当终端接收升级软件时,终端调用加密认证接口函数,将该终端独有的硬件标识写入上述认证信息,使得上述升级软件只能被硬件标识中对应的终端使用。

在一种可能的实现方式中,上述硬件标识包括以下终端信息中的一种或多种:网络适配器id信息、硬盘id信息、主板id信息、mac地址信息、cpu序列号信息、ip信息和终端名称信息。终端选择其中几种信息,生成一个硬件标识,选择的信息的类型、数量和选取的顺序均不作具体限定。

例如,终端使用mac地址信息、cpu序列号信息和硬盘id信息,生成一个硬件标识信息。该硬件标识的头部由mac地址信息组成,中部由cpu序列号信息组成,尾部由硬盘id信息组成。

又例如,终端使用mac地址信息、cpu序列号信息和硬盘id信息,生成一个硬件标识信息。该硬件标识的头部由硬盘id信息组成,中部由mac地址信息组成,尾部由cpu序列号信息组成。

进一步的,终端使用一定预设规则,将上述终端信息中的部分信息进行截取,组合生成一个唯一的硬件标识。硬件标识的长度不作具体限定。

例如,终端要生成一个24位的硬件标识,硬件标识的前12位由mac地址信息组成,硬件标识的后12位由cpu序列号信息组成。终端选取mac地址信息中的前12位作为硬件标识的前12位,选取cpu序列号信息中的末尾的12位作为硬件标识的后12位。

又例如,终端要生成一个24位的硬件标识,硬件标识的前12位由mac地址信息组成,硬件标识的后12位由cpu序列号信息组成。终端选取mac地址信息中的末尾的12位作为硬件标识的前12位,选取cpu序列号信息中的前12位作为硬件标识的后12位。

又例如,终端要生成一个30位的硬件标识,硬件标识的前10位由主板id信息组成,硬件标识中间的12位由cpu序列号信息组成,硬件标识的后8位由网络适配器id信息组成。终端选取主板id信息中的前10位作为硬件标识的前10位,选取cpu序列号信息中的第2至13位作为硬件标识中间的12位,选取网络适配器id信息中的末尾8位作为硬件标识的后8位。

其中,s203为可选的步骤。

s204、调用检测加密认证接口函数,对所述升级软件的认证信息进行检测。

由于硬件标识的唯一性和生成标准的多样性,硬件标识可以保证升级文件只能被符合所有认证信息的终端使用。在一种可选的实现方式中,比较所述终端的硬件标识与所述认证信息中的终端的硬件标识是否一致,若一致,证明该升级文件没有处于上述终端以外的其他设备上,可以进一步对升级文件本身的内容进行验证。

例如,认证信息中的硬件标识为24位,硬件标识的前12位由mac地址信息组成,硬件标识的后12位由cpu序列号信息组成。终端获取mac地址信息中的前12位作为硬件标识的前12位,获取cpu序列号信息中的末尾的12位作为硬件标识的后12位,组合生成硬件标识。终端将上述硬件标识与上述认证信息中的硬件标识进行对比,若一致,终端继续对升级软件的内容进行验证。

该步骤的具体实现可参考图1所述实施例的步骤s103,在此不再赘述。

s205、当检测通过时,调用读取加密文件接口函数,读取所述加密的升级软件并解密所述升级软件,得到解密后的升级软件。

该步骤的具体实现可参考图1所述实施例的步骤s104,在此不再赘述。

s206、运行所述解密后的升级软件。

根据用户选择的安装路径,运行上述解密后的升级软件。

在一种可选的实现方式中,选择终端中存储空间最大的硬盘分区作为上述升级软件的安装路径。可选的,将本次选择的硬盘分区存入历史记录中,当下次进行某些软件的安装操作时,读取历史记录中的硬盘分区作为默认安装路径。

在另一种可能的实现方式中,终端根据每次安装的软件名称和对应安装路径,生成安装记录表。当终端需要进行安装操作时,在上述安装记录表中查找是否存在与本次安装的软件名称相同或相似的软件名称,若查找到相同或相似的结果,则选择对应的历史安装路径作为本次的安装路径。

例如,本次将要运行的软件名称为“aa文本编辑器”,安装记录表中存在“e文本编辑器”的安装记录,由于两款软件名称相似,可以认为将这两款软件安装到同一硬盘分区会减少管理难度。所以参考“e文本编辑器”的安装路径,完成“aa文本编辑器”安装路径的选择。

其中,s206为可选的步骤。

根据本申请实施例提供的一种文件保护方法,通过将终端的标识写入升级软件的认证信息中,使得同一个升级软件只能供提出下载请求的终端使用,并且调用检测加密认证接口函数,对上述升级软件的认证信息进行检测。实施本申请的方案,能够对升级软件的使用终端进行限制,从而有效保障了付费软件的安全,为使用软件的用户带来了安全的使用环境。

请参阅图4,图4是本申请实施例提供的一种文件保护方法的流程示意图。其中:

s301、接收终端发送的软件更新请求。

服务器上有多种类型的软件和同一种软件的不同版本。通过终端发送的软件更新请求,服务器获知终端需要更新的软件版本或者是软件类型,从而查找到终端需要的软件内容。

在一种可能的实现方式中,终端根据实际情况,选择主动向服务器发送软件更新请求,上述软件更新请求中包括业务需求信息。服务器根据上述业务需求信息,查找到终端需要的软件版本。

例如,终端向服务器发送的软件更新请求包括改善车辆制动系故障的业务需求,服务器进行查找后,发现上述软件的3.0版本更能针对性地解决该问题。所以,服务器将会把3.0版本的更新软件发送给终端。

又例如,终端向服务器发送的软件更新请求包括改善车辆转向系故障的业务需求,服务器进行查找后,发现上述软件的4.0版本和7.0插件都针对该问题进行了更新,所以,服务器将会把上述软件的4.0版本和7.0插件发送给终端。

又例如,终端向服务器发送的软件更新请求包括改善电气系统故障的业务需求,服务器经过搜素,没有查找到该软件对应的升级软件。但查找到的另一个诊断软件a有针对该故障进行诊断的功能,服务器向终端发送a软件的信息,得到终端发送的针对a软件的软件更新请求后,服务器向终端发送与a软件相关的升级软件内容。

s302、根据所述软件更新请求,向所述终端发送加密的升级软件和所述升级软件的认证信息。

服务器获取到发送给上述终端的升级软件内容后,需要使用预置的加密算法对升级软件的内容进行加密,使得接收方只能在解密后,才能获取升级软件中的一个或者多个只读文件的内容。同时,为了防止升级软件内容被篡改,服务器使用预置的单向不可逆函数对所述升级软件中的一个或多个只读文件进行计算,得到上述升级软件中的一个或多个只读文件的第一特征值。上述升级软件中的一个或多个只读文件的第一特征值和上述升级软件的版本信息组成上述升级软件的认证信息。

上述单向不可逆函数可以将任意一段明文转换为固定长度的特征值,但由上述特征值无法计算出上述明文。上述单向不可逆函数包括但不限于信息-摘要算法5(messagedigestalgorithm5,md5)、安全哈希算法(securehashalgorithm,sha)、消息认证代码(messageauthenticationcode,mac)函数等,本申请实施例不作具体限制。

由于单向不可逆函数无法由特征值计算出上述明文,解决了如何在不暴露升级软件内容的前提下,对升级软件的真伪性进行验证的问题。上述认证信息可以视为升级软件的简介,表明了该升级软件的版本号与每一个文件的内容。若接收方从升级软件中获知的信息与认证信息中的信息不是完全一致的,则证明该升级软件遭到篡改,终端可选择向服务器发送报告并删除该升级软件。

根据本申请实施例提供的一种文件保护方法,通过接收到的软件更新请求,向上述终端发送加密的升级软件和所述升级软件的认证信息。实施本申请的方案,能够适用于各种付费软件的升级需求,有效保护了付费软件的内容,为使用软件的用户带来了安全的使用环境。

请参阅图5,图5是本申请实施例提供的一种终端的结构示意图。上述终端包括:发送单元401、接收单元402、检测单元403及读取单元404;可选的,上述终端还包括加密单元405;可选的,上述终端包括运行单元406。其中:

发送单元401,用于当接收到服务器发送的软件更新通知时,向所述服务器发送软件更新请求;

接收单元402,用于接收所述服务器发送的加密的升级软件和所述升级软件的认证信息;

检测单元403,用于调用检测加密认证接口函数,对所述升级软件的认证信息进行检测;

读取单元404,用于当检测通过时,调用读取加密文件接口函数,读取所述加密的升级软件并解密所述升级软件,得到解密后的升级软件;

在一种可能的实现方式中,上述检测单元403包括:解压缩子单元4031,用于解压缩所述加密的升级软件;

检测子单元4032,用于调用所述检测加密认证接口函数,检测解压缩后的升级软件中的版本标识与所述认证信息中软件的版本标识是否一致;

计算子单元4033,用于当所述解压缩后的升级软件中的版本标识与所述认证信息中所述升级软件的版本标识一致时,对所述解压缩后的升级文件中的所述一个或多个只读文件进行计算,得到所述一个或多个只读文件的第二特征值。

比较子单元4034,用于分别比较所述一个或多个只读文件的第一特征值与所述一个或多个只读文件的第二特征值是否一致;

上述检测子单元4032还用于,当所述一个或多个只读文件的第一特征值均与所述一个或多个只读文件的第二特征值一致时,检测通过。

在另一种可能的实现方式中,上述终端还包括:

加密单元405,用于调用加密认证接口函数,将终端的硬件标识写入所述认证信息;

上述比较子单元4034还用于,比较所述终端的硬件标识与所述认证信息中的终端的硬件标识是否一致。

在又一种可能的实现方式中,上述终端还包括:

运行单元406,用于运行所述解密后的升级软件。

其中,加密单元405、运行单元406为可选的单元。

有关上述发送单元401、接收单元402、检测单元403、读取单元404、加密单元405及运行单元406更详细的描述可以直接参考上述图1和图2所示的方法实施例中文件保护方法的相关描述直接得到,这里不加赘述。

根据本申请实施例提供的一种文件保护方法,对接收到的升级软件的内容进行检测,当检测通过时,才能继续运行上述升级软件。实施本申请的方案,能够限制软件的使用终端,适用于各种付费软件的升级需求,有效保护了付费软件的内容,为使用软件的用户带来了安全的使用环境。

请参阅图6,图6是本申请实施例提供的一种服务器的结构示意图。上述服务器包括:接收单元501、发送单元502;可选的,上述服务器还包括:计算单元503。其中:

接收单元501,用于接收终端发送的软件更新请求;

发送单元502,用于根据所述软件更新请求,向所述终端发送加密的升级软件和所述升级软件的认证信息。

在一种实现方式中,上述服务器还包括:

计算单元503,用于使用预置的单向不可逆函数对所述升级软件中的一个或多个只读文件进行计算,得到所述升级软件中的一个或多个只读文件的第一特征值。

其中,计算单元503为可选的单元。

有关上述接收单元501、发送单元502及计算单元503更详细的描述可以直接参考上述图3所示的方法实施例中文件保护方法的相关描述直接得到,这里不加赘述。

根据本申请实施例提供的一种文件保护方法,通过接收到的软件更新请求,向上述终端发送加密的升级软件和所述升级软件的认证信息。实施本申请的方案,能够适用于各种付费软件的升级需求,有效保护了付费软件的内容,为使用软件的用户带来了安全的使用环境。

请参阅图7,图7是本申请实施例提供的一种终端的硬件结构示意图。如图7所示的本实施例中的终端可以包括:处理器601、输入装置602、输出装置603及存储器604。

存储器包括但不限于是随机存储记忆体(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)、可擦除可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、或便携式只读存储器(compactdiscread-onlymemory,cd-rom),该存储器用于相关指令及数据。

处理器可以包括是一个或多个处理器,例如包括一个或多个中央处理器(centralprocessingunit,cpu),在处理器是一个cpu的情况下,该cpu可以是单核cpu,也可以是多核cpu。

存储器用于存储网络设备的程序代码和数据。

收发器用于在连接网络时接收和发送数据。

处理器用于调用该存储器中的程序代码和数据,执行如下步骤:当接收到服务器发送的软件更新通知时,向所述服务器发送软件更新请求;接收所述服务器发送的加密的升级软件和所述升级软件的认证信息;调用检测加密认证接口函数,对所述升级软件的认证信息进行检测;当检测通过时,调用读取加密文件接口函数,读取所述加密的升级软件并解密所述升级软件,得到解密后的升级软件。

在一种可能的实现方式中,所述升级软件的认证信息包括所述升级软件的版本标识和所述升级软件中的一个或多个只读文件的第一特征值,所述处理器还用于执行以下步骤:解压缩所述加密的升级软件;调用所述检测加密认证接口函数,检测解压缩后的升级软件中的版本标识与所述认证信息中软件的版本标识是否一致;当所述解压缩后的升级软件中的版本标识与所述认证信息中所述升级软件的版本标识一致时,对所述解压缩后的升级文件中的所述一个或多个只读文件进行计算,得到所述一个或多个只读文件的第二特征值;分别比较所述一个或多个只读文件的第一特征值与所述一个或多个只读文件的第二特征值是否一致;当所述一个或多个只读文件的第一特征值均与所述一个或多个只读文件的第二特征值一致时,检测通过。

在另一种可能的实现方式中,所述处理器执行接收所述服务器发送的加密的升级软件和所述升级软件的认证信息的步骤之后,以及执行所述调用检测加密认证接口函数,对所述升级软件的认证信息进行检测的步骤之前,所述处理器还用于执行以下步骤:调用加密认证接口函数,将终端的硬件标识写入所述认证信息。在所述处理器执行所述解压缩所述加密的升级软件的步骤之前,所述处理器还用于执行以下步骤:比较所述终端的硬件标识与所述认证信息中的终端的硬件标识是否一致。当所述终端的硬件标识与所述认证信息中的终端的硬件标识一致时,所述处理器执行所述解压缩所述加密的升级软件的步骤。

在又一种可能的实现方式中,所述处理器执行运行所述解密后的升级软件的步骤。

可以理解的是,图7仅仅示出了终端的简化设计。在实际应用中,终端还可以分别包含必要的其他元件,包含但不限于任意数量的网络接口、输入装置、输出装置、处理器、存储器等,而所有可以实现本申请实施例的终端都在本申请的保护范围之内。

请参阅图8,图8是本申请实施例提供的一种服务器的硬件结构示意图。如图8所示的本实施例中的服务器可以包括:处理器701、输入装置702、输出装置703及存储器704。

存储器包括但不限于是随机存储记忆体(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)、可擦除可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、或便携式只读存储器(compactdiscread-onlymemory,cd-rom),该存储器用于相关指令及数据。

处理器可以包括是一个或多个处理器,例如包括一个或多个中央处理器(centralprocessingunit,cpu),在处理器是一个cpu的情况下,该cpu可以是单核cpu,也可以是多核cpu。

存储器用于存储网络设备的程序代码和数据。

收发器用于在连接网络时接收和发送数据。

处理器用于调用该存储器中的程序代码和数据,执行如下步骤:接收终端发送的软件更新请求;根据所述软件更新请求,向所述终端发送加密的升级软件和所述升级软件的认证信息。

在一种可能的实现方式中,所述升级软件的认证信息包括所述升级软件的版本信息和所述升级软件中的一个或多个只读文件的第一特征值,所述处理器执行以下步骤:使用预置的单向不可逆函数对所述升级软件中的一个或多个只读文件进行计算,得到所述升级软件中的一个或多个只读文件的第一特征值。

可以理解的是,图8仅仅示出了服务器的简化设计。在实际应用中,服务器还可以分别包含必要的其他元件,包含但不限于任意数量的网络接口、输入装置、输出装置、处理器、存储器等,而所有可以实现本申请实施例的服务器都在本申请的保护范围之内。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriberline,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-onlymemory,rom),或随机存储存储器(randomaccessmemory,ram),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digitalversatiledisc,dvd)、或者半导体介质,例如,固态硬盘(solidstatedisk,ssd)等。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1