应用程序安全启动方法、装置、计算机设备和存储介质与流程

文档序号:22241329发布日期:2020-09-15 19:54阅读:159来源:国知局
应用程序安全启动方法、装置、计算机设备和存储介质与流程

本申请涉及人工智能技术领域,特别是涉及一种应用程序安全启动方法、装置、计算机设备和存储介质。



背景技术:

随着计算机技术的发展,在网络上下载文件的需求越来越多,故而如何保证从网络上下载文件的安全性变得越来越重要。

传统技术中,根据获取到的下载地址从网络中下载应用程序文件,但是不能保证获取到的应用程序文件的安全性,如当从网络中下载小程序资源时,需要将小程序资源解压到宿主沙盒中,但是不能保证小程序资源在宿主沙盒中不被篡改,使得文件的安全性较低。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够提高应用程序数据安全的应用程序安全启动方法、装置、计算机设备和存储介质。

一种应用程序安全启动方法,方法包括:

接收应用程序启动请求,应用程序启动请求携带有应用程序标识;

查询应用程序标识对应的应用程序是否为首次运行;

当应用程序不是首次运行时,获取应用程序标识对应的解压资源文件;

计算解压资源文件的实际解压校验码;

获取所述解压资源文件的下载解压校验码,其中,所述下载解压校验码为预先从服务器下载的用于标识所述解压资源文件的校验码;

判断实际解压校验码与下载解压校验码是否一致;

当实际解压校验码与下载解压校验码一致时,启动应用程序。

在其中一个实施例中,所述解压资源文件中包含多个解压子文件,计算解压资源文件的实际解压校验码,包括:

获取各解压子文件对应的子文件标识以及子文件校验码;

按照预设的规则将各子文件标识以及各子文件校验码进行组合,得到解压资源文件对应的实际解压校验码。

在其中一个实施例中,查询应用程序标识对应的应用程序是否为首次运行之后,还包括:

当应用程序是首次运行时,获取与应用程序标识对应的压缩资源文件;

计算压缩资源文件的实际压缩校验码;

获取预先从服务器下载的应用程序对应的压缩资源文件的下载压缩校验码;

判断实际压缩校验码与下载压缩校验码是否一致;

当实际压缩校验码与下载压缩校验码一致时,判定压缩资源文件为安全压缩文件;

当压缩资源文件为安全压缩文件时,对安全压缩文件进行解压得到解压资源文件,并根据解压压缩文件启动应用程序。

在其中一个实施例中,当应用程序是首次运行时,获取与应用程序标识对应的压缩资源文件,包括:

当应用程序是首次运行时,生成加密后的对称秘钥,将对称秘钥发送至服务器,对称秘钥用于指示服务器对应用程序的下载地址、下载解压校验码以及下载压缩校验码进行加密生成加密业务文件;

接收服务器返回的加密业务文件;通过对称秘钥对加密业务文件进行解密得到业务文件;

从业务文件中获取应用程序对应的下载地址;

根据下载地址进行下载得到压缩资源文件。

在其中一个实施例中,下载解压校验码和下载压缩校验码的获取方式包括:

通过对称秘钥对加密业务文件进行解密得到的业务文件中提取下载解压校验码和下载压缩校验码,其中所述下载解压校验码以及所述下载压缩校验码存储于区块链中。

在其中一个实施例中,将对称秘钥发送至服务器,包括:

通过非对称秘钥的公钥对对称秘钥进行加密后发送至服务器,以使得服务器通过与非对称秘钥的公钥对应的私钥进行解密得到对称秘钥。

在其中一个实施例中,判断实际压缩校验码与下载压缩校验码是否一致之后,还包括:

当实际压缩校验码与下载压缩校验码不一致时,判定压缩资源文件为不安全的压缩资源文件;生成针对不安全的压缩资源文件的警示信息;

判断实际解压校验码与下载解压校验码是否一致之后,还包括:

当实际解压校验码与下载解压校验码不一致时,判定解压资源文件为不安全的解压资源文件;生成针对不安全的解压资源文件的警示信息。

一种应用程序安全启动装置,装置包括:

请求接收模块,用于接收应用程序启动请求,应用程序启动请求携带有应用程序标识;

查询模块,用于查询应用程序标识对应的应用程序是否为首次运行;

解压文件获取模块,用于当应用程序不是首次运行时,获取应用程序标识对应的解压资源文件;

实际解压校验码计算模块,用于计算解压资源文件的实际解压校验码;

下载解压校验码获取模块,用于获取解压资源文件的下载解压校验码,其中,下载解压校验码为预先从服务器下载的用于标识解压资源文件的校验码;

判断模块,用于判断实际解压校验码与下载解压校验码是否一致;

启动模块,用于当实际解压校验码与下载解压校验码一致时,启动应用程序。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。

上述应用程序安全启动方法、装置、计算机设备和存储介质,接收应用程序启动请求,应用程序启动请求携带有应用程序标识;查询应用程序标识对应的应用程序是否为首次运行;当应用程序不是首次运行时,获取应用程序标识对应的资源文件;计算资源文件的实际解压校验码;获取预先从服务器下载的应用程序对应的解压后的资源文件的下载解压校验码;当实际解压校验码与下载解压校验码一致时,启用应用程序。当不是首次运行应用程序时对解压后的资源文件进行安全性校验,在确保资源文件安全性的前提下再运行应用程序,保证了数据的安全性。

附图说明

图1为一个实施例中应用程序启动方法的应用环境图;

图2为一个实施例中应用程序启动方法的流程示意图;

图3为另一个实施例中应用程序启动方法的流程示意图;

图4为另一个实施例中应用程序启动方法的时序图;

图5为一个实施例中应用程序启动装置的结构框图;

图6为一个实施例中终端设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的应用程序安全启动方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。终端102接收应用程序启动请求,应用程序启动请求携带有应用程序标识;查询应用程序标识对应的应用程序是否为首次运行;当应用程序不是首次运行时,获取应用程序标识对应的解压资源文件;计算解压资源文件的实际解压校验码;获取解压资源文件的下载解压校验码,其中,下载解压校验码为预先从服务器104下载的用于标识解压资源文件的校验码;判断实际解压校验码与下载解压校验码是否一致;当实际解压校验码与下载解压校验码一致时,启动应用程序。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种应用程序安全启动方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:

步骤210,接收应用程序启动请求,应用程序启动请求携带有应用程序标识。

具体地,用户可以对终端上的应用程序进行触发操作生成应用程序启动请求,终端接收用户发送的应用程序启动请求后,提取应用程序启动请求中携带的应用程序标识,以根据应用程序标识定位到对应的应用程序。其中,应用程序标识用于唯一标识一个应用程序,如可以为应用程序的程序名称或者应用程序编号等,在此不作限制。在一个实施例中,应用程序可以为小程序等程序,在此不作限制。

在另一个实施例中,也可以在终端中自动生成应用程序启动请求,如可以适应于对应用程序的定期校验或者定期安全性检查等操作业务中,具体地,可以预先设定应用程序启动的预设启动时间,当到达预设启动时间时自动触发应用程序启动请求,以保证定期执行应用程序的启动业务完成应用程序的定期安全性检查。

步骤220,查询应用程序标识对应的应用程序是否为首次运行。

首次运行可以是指在终端中第一次运行该应用程序,也可以是指虽然不是在终端中第一次运行该应用程序但是该终端中不存在关于该应用程序的相关历史数据。具体地,终端可以根据获取到的应用程序标识在终端中查找对应的历史数据,当查找到与该应用程序标识对应的历史数据时判定该应用程序不是首次运行,当终端未查找到与该应用程序标识对应的历史数据时判定该应用程序是首次运行。

当应用程序为小程序时,终端通过网络从服务器中下载小程序对应的小程序资源文件,然后将下载到的小程序资源文件解压缩到宿主沙盒里,以在宿主沙盒里执行小程序的运行。具体地,终端接收到关于小程序的启动请求时,在宿主沙盒里查找是否存在关于该小程序的历史下载数据,当查找到历史下载数据时,判定小程序不是首次运行,当未能查找到历史下载数据时判定该小程序为首次运行。在其他实施例中也可以将从服务器中下载的资源文件存储至终端对应的数据库中,如可以是本地数据库也可以是云端数据库,在此不做限定。

步骤230,当应用程序不是首次运行时,获取应用程序标识对应的解压资源文件。

解压资源文件可以为运行该应用程序对应的数据资源。具体地,当终端根据应用程序标识在终端对应的数据库中查找到该应用程序标识对应的历史下载数据后,终端判定该应用程序不是首次运行,然后从终端对应的数据库中获取该应用程序标识对应的解压后的解压资源文件。其中,当应用程序对应小程序时,终端数据库可以为终端中的宿主沙盒,宿主沙盒里存储了运行该小程序的资源文件,可包含压缩资源文件以及对压缩资源文件进行解压得到的解压资源文件。

具体地,当该小程序不是首次在终端运行时,终端的宿主沙盒里可以存储有关于该小程序的压缩资源文件或者解压后的解压资源文件,故而不需要再次通过网络从服务器中下载应用程序对应的压缩资源文件,可以直接从宿主沙盒中查找到对应的压缩资源文件然后终端可以对压缩资源文件进行解压缩得到解压后的解压资源文件,或者直接从宿主沙盒里查找到对应的解压资源文件。

需要说明的是,当终端接收到应用程序启动请求后判定应用程序不是首次运行时,可以先启动对应的应用程序,或者在启动应用程序的同时获取应用程序对应的解压资源文件,对解压资源文件进行安全性校验,当校验通过时继续启动应用程序,当校验失败时,说明解压资源文件的不是安全文件可以向终端发送安全性警示提示或者直接禁止终端继续执行对应的应用程序。

步骤240,计算解压资源文件的实际解压校验码。

具体地,校验码可用于唯一标识一个资源文件,如校验码可以为md5校验码,md5是一个32位的字符串,可以用来作为资源文件的唯一特征值,确定资源文件的唯一性,故而可以利用md5校验码判断资源文件的安全性如判断资源文件是否被修改。具体地,终端获取到解压资源文件后,可以利用预设的校验算法获取解压资源文件对应的实际解压校验码,如当校验码对应md5校验码时,可以利用预设的md5验证算法在本地获取解压资源文件对应的实际解压校验码。在其他实施例中还可以利用人工智能领域的特征识别技术计算解压资源文件的实际解压校验码。

步骤250,获取解压资源文件的下载解压校验码,其中,下载解压校验码为预先从服务器下载的用于标识解压资源文件的校验码。

服务器中预先存储了关于该解压资源文件的校验码,将该校验码标记为下载解压校验码,以利用下载解压校验码对该解压资源文件进行唯一标识。具体地,终端在本地的宿主沙盒里获取对应的解压资源文件,然后在本地计算该解压资源文件对应的实际解压校验码,然后终端从服务器中获取关于该解压资源文件的下载解压校验码,然后可以将实际解压校验码与下载解压校验码进行比对,以验证服务器中的解压资源文件与终端从宿主沙盒中获取到的本地存储的解压资源文件是否为同一个解压资源文件。

具体地,服务器对待上传的解压资源文件进行一次md5得到下载压缩md5值,以对待上传的资源文件进行唯一标识,然后服务器将下载解压md5值返回给终端,使得终端从服务器中下载到解压资源文件时,在本地进行一次md5,然后将服务器返回下载解压md5的和本地生成的实际解压md5进行匹配,如果字符串一样,就说明终端获取到的解压资源文件是正确的,如果字符串不一样,说明解压资源文件被修改,终端获取到的解压资源文件是不安全的。

步骤260,判断实际解压校验码与下载解压校验码是否一致。

具体地,终端将实际解压校验码与下载解压校验码中的字符一一比对,当所有的字符均相同时,判定实际解压校验码与下载解压校验码是一致的,当实际解压校验码与下载解压校验码中的字符存在任意一个字符不一致时,判定实际解压校验码与下载解压校验码不一致。在具体实施中,可以按照一定的顺序依次对实际解压校验码与下载解压校验码中的字符进行比对,当存在任意一个字符不一致时,直接得出不一致的结论而不需要将所有的字符均进行比对之后才得出不一致的结论。

步骤270,当实际解压校验码与下载解压校验码一致时,启动应用程序。

具体地,当实际解压校验码与下载解压校验码一致时,说明终端获取到的解压资源文件与服务器上传的解压资源文件是一致的,即终端获取到的解压资源文件正是服务器事先上传的解压资源文件,未被篡改过的解压资源文件,此时可以执行启动应用程序的步骤。反之,当实际解压校验码与下载解压校验码不一致时,说明终端获取到的解压资源文件与服务器预先上传的解压资源文件不是同一个文件,也就是说在服务器与终端之间的数据传输中发生了解压资源文件被篡改或者丢失的情况,或者解压资源文件在宿主沙盒中被篡改,此时应该发出警示信息提示终端该应用程序存在风险或者直接禁止终端启动对应的应用程序。

在本实施例中,对解压后的解压资源文件进行安全性校验,确保解压资源文件的安全性,当确定解压资源是安全的数据时再运行对应的应用程序,保证了数据的安全性。进一步地,通过将终端得到的实际压缩校验码与从服务器下载到的下载压缩校验码进行比对,保证了应用程序对应的解压之后数据的安全性,防止中间人攻击或者篡改数据,提高黑客恶意攻击的成本和难度。并且当应用程序不是首次运行时,直接获取应用程序对应的解压资源文件,无需多次从服务器中下载压缩资源文件然后再进行解压,提高了应用程序如小程序的开启速度并节约了终端的网络资源。

在其中一个实施例中,解压资源文件中包含多个解压子文件,计算解压资源文件的实际解压校验码,包括:所述获取各解压子文件对应的子文件标识以及子文件校验码;按照预设的规则将各子文件标识以及各子文件校验码进行组合,得到解压资源文件对应的实际解压校验码。

解压资源文件是运行对应的应用程序对应的数据文件,具体地,解压之后的资源文件可以是一个文件夹,并且文件夹里还可以包含多个子文件夹以及多个解压子文件。对多个文件进行安全性校验时,可以获取各个解压子文件对应的子文件标识,如文件名,以及获取各个解压子文件对应的子文件校验码,然后利用预设算法将各个子文件标识与子文件校验码进行组合得到解压资源文件对应的实际解压校验码。如预设算法可以为将文件夹中的所有单个的文件统计出来,对这些文件的名称进行升序排序,排好序之后以“文件1名称:文件1的md5,文件2名称:文件2的md5,…”的形式拼接成字符串,得到解压资源文件对应的md5,然后对这串字符串进行md5。需要说明的是,预设算法是终端与服务器预先预定的,即在服务器中预先根据预设算法生成解压资源文件的下载解压校验码,然后当终端获取到解压资源文件时在本地进行解压资源的md5得到实际解压资源文件,然后执行实际解压校验码与下载解压校验码的一致性校验。并且,预设算法还可以为预先约定的其他算法在此不做限定。

在本实施例中,考虑到解压后解压资源文件中会包含多个文件,并且每个文件都会有对应的文件校验码,为了实现对多个文件的安全性校验,通过预设算法生成多个文件对应的校验码,并且预设算法是终端与服务器预先约定的,形式多种多样,防止了被窃取,进一步地保证了解压资源文件的安全性。并且通过对解压资源文件的安全性进行校验可以得知解压后的文件夹内部文件是否被修改。

如图3所示,提供了另一种应用程序启动的方法流程示意图,包括:查询应用程序标识对应的应用程序是否为首次运行之后,还包括:

步骤310,当应用程序是首次运行时,获取与应用程序标识对应的压缩资源文件。

具体地,接收应用程序启动请求,应用程序启动请求携带有应用程序标识,查询应用程序标识对应的应用程序是否为首次运行,当应用程序是首次运行时,获取与应用程序标识对应的压缩资源文件。

具体地,终端从对应的宿主沙盒或者其他数据库中未查找到关于应用程序标识对应的历史下载数据时,判断该应用程序为首次运行,然后终端从服务器中下载应用程序标识对应的压缩资源文件。如终端可以根据获取到的下载地址,根据下载地址定位到待下载资源,对待下载资源进行文件下载得到压缩资源文件。

步骤320,计算压缩资源文件的实际压缩校验码。

具体地,终端获取到压缩资源文件后,可以利用预设的校验算法获取压缩资源文件对应的实际压缩校验码,如当校验码对应md5校验码时,可以利用预设的md5验证算法在本地获取压缩资源文件对应的实际压缩校验码。需要说明的是,压缩资源文件可以为后缀名为zip的文件,对应为一个文件,可以直接进行md5校验。

步骤330,获取预先从服务器下载的应用程序对应的压缩资源文件的下载压缩校验码。

服务器中预先存储了关于该压缩资源文件的校验码,将该校验码标记为下载压缩校验码,以利用下载压缩校验码对该压缩资源文件进行唯一标识。具体地,终端服务器中下载到对应的压缩资源文件后,在本地计算该压缩资源文件对应的实际压缩校验码,然后终端从服务器中获取关于该压缩资源文件的下载压缩校验码,然后可以将实际压缩校验码与下载压缩校验码进行比对,以验证服务器中的压缩资源文件与终端获取到的压缩资源文件是否为同一个压缩资源文件。

具体地,服务器对待上传的压缩资源文件进行一次md5得到下载压缩md5值,以对待上传的资源文件进行唯一标识,然后服务器将下载压缩md5值返回给终端,使得终端从服务器中下载到压缩资源文件时,在本地进行一次md5,然后将服务器返回下载压缩md5的和本地生成的实际压缩md5进行匹配,如果字符串一样,就说明终端获取到的压缩资源文件是正确的,如果字符串不一样,说明压缩资源文件被修改,终端获取到的压缩资源文件是不安全的。

步骤340,判断实际压缩校验码与下载压缩校验码是否一致。

具体地,终端将实际压缩校验码与下载压缩校验码中的字符一一比对,当所有的字符均相同时,判定实际压缩校验码与下载压缩校验码是一致的,当实际压缩校验码与下载压缩校验码中的字符存在任意一个字符不一致时,判定实际压缩校验码与下载压缩校验码不一致。在具体实施中,可以按照一定的顺序依次对实际压缩校验码与下载压缩校验码中的字符进行比对,当存在任意一个字符不一致时,直接得出不一致的结论而不需要将所有的字符均进行比对之后才得出不一致的结论。

步骤350,当实际压缩校验码与下载压缩校验码一致时,判定压缩资源文件为安全压缩文件。

具体地,当实际压缩校验码与下载压缩校验码一致时,说明终端获取到的压缩资源文件与服务器上传的压缩资源文件是一致的,即终端获取到的压缩资源文件正是服务器事先上传的压缩资源文件,未被篡改过的压缩资源文件,此时可以执行启动应用程序的步骤。反之,当实际压缩校验码与下载压缩校验码不一致时,说明终端获取到的压缩资源文件与服务器预先上传的压缩资源文件不是同一个文件,也就是说在服务器与终端之间的数据传输中发生了压缩资源文件被篡改或者丢失的情况,此时应该发出警示信息提示终端该应用程序存在风险或者直接禁止终端启动对应的应用程序。

步骤360,当压缩资源文件为安全压缩文件时,对安全压缩文件进行解压得到解压资源文件,并根据解压压缩文件启动应用程序。

具体地,当终端判定压缩资源文件为安全压缩文件时,对安全压缩文件进行解压得到解压资源文件,然后再执行对解压资源文件的安全性校验,当解压资源文件也为安全解压文件时,启用应用程序。

在本实施例中,当终端首次下载应用程序对应的压缩资源文件后,对压缩资源文件进行安全性校验如进行md5验证,当安全性验证通过时,则对压缩资源文件进行解压运行得到解压资源文件,如果压缩资源文件的安全性验证未通过时,则说明压缩资源文件被修改,做错误处理如可以拒绝用户终端启动应用程序,保证了数据的安全性。

在其中一个实施例中,判断实际压缩校验码与下载压缩校验码是否一致之后,还包括:当实际压缩校验码与下载压缩校验码不一致时,判定压缩资源文件为不安全的压缩资源文件;生成针对不安全的压缩资源文件的警示信息。

在其中一个实施例中,判断实际解压校验码与下载解压校验码是否一致之后,还包括:当实际解压校验码与下载解压校验码不一致时,判定解压资源文件为不安全的解压资源文件;生成针对不安全的解压资源文件的警示信息。

在其中一个实施例中,当应用程序是首次运行时,获取与应用程序标识对应的压缩资源文件,包括:当应用程序是首次运行时,生成加密后的对称秘钥,将对称秘钥发送至服务器,对称秘钥用于指示服务器对应用程序的下载地址、下载解压校验码以及下载压缩校验码进行加密生成加密业务文件。接收服务器返回的加密业务文件;通过对称秘钥对加密业务文件进行解密得到业务文件;从业务文件中获取应用程序对应的下载地址;根据下载地址进行下载得到压缩资源文件。

具体地,终端在判定应用程序是首次运行时,需要通过网络从服务器中获取关于启动该应用程序的压缩资源文件,具体地,终端需从服务器提供下载压缩资源文件的下载地址、压缩资源文件的下载压缩校验码以及解压资源校验码。其中下载地址用于下载对应的压缩资源文件,下载压缩校验码用于校验下载到的压缩资源文件的安全性,下载解压校验码用于校验对压缩资源文件进行解压后生成的解压资源文件的安全性,如验证解压资源文件在宿主沙盒中是否被修改。

进一步地,终端通过网络与服务器通信,在服务器向终端发送下载地址以及校验码的过程中,需要保证网络数据传输过程的安全性,即保证传输的数据不被篡改。具体地,终端可以按照预设规则生成对称秘钥,将对称秘钥发送至服务器,以使得服务器根据接收到的对称秘钥对应用程序的下载地址、下载解压校验码以及下载压缩校验码进行加密生成加密业务文件,通过对业务文件进行加密,将加密后的业务文件发送至终端,提高了数据传输过程的安全性。其中对称加密的特点是加密和解密的密钥是一样的,使得加密和解密的效率很高,不会影响数据传输的效率。需要说明的是,在其他实施例中,终端也可以利用其他加密算法如非对称加密算法生成加密业务文件,在本实施例中不做限制。

具体地,对称秘钥可以为aes加密算法,具体地,对称秘钥可以是动态随机生成的,生成对称秘钥的的步骤可包括:首先随机生成一个字符串abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789,然后利用循环算法如可以是一个循环16次的代码算法,每次随机取这个字符串中的某个字母,并将取出的字母拼接起来,生成一个字符串,将该字符串作为随机生成的16位对称密钥。然后终端将该对称密钥发送到服务器,以指示服务器利用该对称秘钥对业务数据进行加密生成加密业务文件,然后终端再根据对称秘钥对加密业务数据进行解密生成业务数据,然后利用业务数据执行应用程序启动的步骤。通过利用对称秘钥进行加密,将加密后的文件发送至终端保证数据传输的安全性,并且对称秘钥算法简单,不会影响数据传输的效率。

为了进一步地保证对称秘钥在网络传输过程中不被篡改,还可以包括对对称秘钥进行再次加密,如可以利用rsa加密技术对对称秘钥进行加密传输,其中rsa加密技术是一种非对称加密,即加密和解密对应的密钥是不一样的,具体地rsa有两个密钥公钥和私钥,利用公钥进行加密,利用私钥进行解密。

在其中一个实施例中,将对称秘钥发送至服务器,包括:通过非对称秘钥的公钥对对称秘钥进行加密后发送至服务器,以使得服务器通过与非对称秘钥的公钥对应的私钥进行解密得到对称秘钥。

具体地,终端代码里面保存了非对称秘钥的公钥,由于公钥只用来加密,保存在终端代码里面或者通过网络传输,即使黑客拿到了也只能用于加密,无法用于解密,所以无需担心有不法人员反编译去获取它,非对称秘钥的私钥在后台服务器。具体地,终端用非对称秘钥的公钥将对称秘钥如aes密钥进行加密,将加密后的数据发送到后台服务器,后台服务器利用非对称秘钥的公钥对应的私钥进行解密得到aes对应的对称密钥,进而完成终端和后台服务器的aes密钥的传递。通过rsa对aes进行加密后再执行数据传输,只对较小的数据量如关键的对称秘钥进行加密,不影响数据传输的效率。

在其中一个实施例中,下载解压校验码和下载压缩校验码的获取方式包括:通过对称秘钥对加密业务文件进行解密得到的业务文件中提取下载解压校验码和下载压缩校验码,其中所述下载解压校验码以及所述下载压缩校验码存储于区块链中。

具体地,获取预先从服务器下载的应用程序对应的解压资源文件的下载解压校验码,包括:从解压后的业务文件中获取应用程序对应的下载解压校验码;获取预先从服务器下载的应用程序对应的压缩资源文件的下载压缩校验码,包括:从解压后的业务文件中获取应用程序对应的下载压缩校验码。

如后台服务器返回的下载地址为http://fcloud.paic.com.cn/f/ios_app.zip,返回的下载压缩md5为6ea84e6330f55248cbb5b06fbcf95d59。终端接收到下载地址以及md5数据之后,先使用下载地址将压缩资源文件下载到终端如手机,然后对下载到的压缩资源文件及进行md5验证,得到对应的实际压缩md5,如实际压缩md5可为6ea84e6330f55248cbb5b06fbcf95d59,然后将实际压缩md5与后台服务器返回的下载压缩md5进行比对,若比对结果一致,说明下载压缩资源文件没被修改可以使用,如果md5的值对不上,说明下载包和预期结果不符,本地流程终止。

需要强调的是,为进一步保证上述下载解压校验码和下载压缩校验码的私密和安全性,上述下载解压校验码和下载压缩校验码还可以存储于一区块链的节点中,当需要利用下载解压校验码和下载压缩校验码进行应用程序的安全性校验时,直接从对应的区块链节点中获取下载解压校验码和下载压缩校验码,以保证获取到的信息的安全性。

如图4所示,提供了一种应用程序启动方法的时序图。具体地,包括:

终端如手机端随机生成aes密钥结果为a,然后终端使用rsa公钥对秘钥a进行加密得到解密结果b。终端将b发送到后台服务器,后台服务器使用rsa的私钥对b进行解密得到结果a,后台服务器使用a将待发送的业务数据进行加密得到c,将c发送到终端,终端使用a对c进行解密得到解密后的业务数据,同时也将待发送的业务数据使用a进行加密得到加密后的业务数据发送到后台服务器。

当应用程序对应小程序时,小程序包的资源文件一般是通过网络下载,解压到宿主沙盒里面的,因为宿主较多,不排除宿主开发者去修改小程序资源,或者因为宿主代码的原因导致资源被修改。为了保证资源的正确性,一般的做法是下载之后进行md5验证,但是无法防止接口中md5也被修改,更无法防止解压后的资源修改,这就会导致小程序包资源的不安全。本实施例中通过校验码对压缩资源文件以及解压资源文件进行安全性校验,确保文件的安全性,进而保证了数据的安全性。并且在终端与服务器之间数据传输的过程中进行数据加密进一步地保证了数据传输的安全性,提高了小程序资源的安全性。

应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图5所示,提供了一种应用程序安全启动装置的结构框图,包括:请求接收模块510、查询模块520、解压文件获取模块530、实际解压校验码计算模块540、下载解压校验码获取模块550、判断模块560和启动模块570,其中:

请求接收模块510,用于接收应用程序启动请求,应用程序启动请求携带有应用程序标识。

查询模块520,用于查询应用程序标识对应的应用程序是否为首次运行。

解压文件获取模块530,用于当应用程序不是首次运行时,获取应用程序标识对应的解压资源文件。

实际解压校验码计算模块540,用于计算解压资源文件的实际解压校验码。

下载解压校验码获取模块550,用于获取解压资源文件的下载解压校验码,其中,下载解压校验码为预先从服务器下载的用于标识解压资源文件的校验码。

判断模块560,用于判断实际解压校验码与下载解压校验码是否一致;

第一启动模块570,用于当实际解压校验码与下载解压校验码一致时,启动应用程序。

在其中一个实施例中,实际解压校验码计算模块540,包括:

文件校验获取单元,用于获取各解压子文件对应的子文件标识以及子文件校验码。

实际解压校验码计算单元,用于按照预设的规则将各子文件标识以及各子文件校验码进行组合,得到解压资源文件对应的实际解压校验码。

在其中一个实施例中,应用程序安全启动装置,还包括:

压缩资源文件获取模块,用于当应用程序是首次运行时,获取与应用程序标识对应的压缩资源文件。

计算实际压缩校验码模块,用于计算压缩资源文件的实际压缩校验码。

下载压缩校验码获取模块,用于获取预先从服务器下载的应用程序对应的压缩资源文件的下载压缩校验码。

压缩文件判断模块,用于判断实际压缩校验码与下载压缩校验码是否一致。

压缩文件判定模块,用于当实际压缩校验码与下载压缩校验码一致时,判定压缩资源文件为安全压缩文件。

第二启动模块,用于当压缩资源文件为安全压缩文件时,对安全压缩文件进行解压得到解压资源文件,并根据解压压缩文件启动应用程序。

在其中一个实施例中,压缩资源文件获取模块,包括:

加密业务文件生成单元,用于当应用程序是首次运行时,生成加密后的对称秘钥,将对称秘钥发送至服务器,对称秘钥用于指示服务器对应用程序的下载地址、下载解压校验码以及下载压缩校验码进行加密生成加密业务文件。

加密业务文件接收单元,用于接收服务器返回的加密业务文件。

业务文件获取单元,用于通过对称秘钥对加密业务文件进行解密得到业务文件。

下载地址获取单元,用于从业务文件中获取应用程序对应的下载地址。

压缩文件下载单元,用于根据下载地址进行下载得到压缩资源文件。

在其中一个实施例中,应用程序安全启动装置,包括:

验证码提取模块,用于通过对称秘钥对加密业务文件进行解密得到的业务文件中提取下载解压校验码和下载压缩校验码,其中所述下载解压校验码以及所述下载压缩校验码存储于区块链中。

在其中一个实施例中,加密业务文件生成单元,包括:

对称秘钥获取子单元,用于通过非对称秘钥的公钥对对称秘钥进行加密后发送至服务器,以使得服务器通过与非对称秘钥的公钥对应的私钥进行解密得到对称秘钥。

在其中一个实施例中,应用程序安全启动装置,还包括:

第一警示模块,用于当实际压缩校验码与下载压缩校验码不一致时,判定压缩资源文件为不安全的压缩资源文件;生成针对不安全的压缩资源文件的警示信息。

第二警示模块,用于当实际解压校验码与下载解压校验码不一致时,判定解压资源文件为不安全的解压资源文件;生成针对不安全的解压资源文件的警示信息。

关于应用程序安全启动装置的具体限定可以参见上文中对于应用程序安全启动方法的限定,在此不再赘述。上述应用程序安全启动装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种应用程序安全启动方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收应用程序启动请求,应用程序启动请求携带有应用程序标识;查询应用程序标识对应的应用程序是否为首次运行;当应用程序不是首次运行时,获取应用程序标识对应的解压资源文件;计算解压资源文件的实际解压校验码;获取解压资源文件的下载解压校验码,其中,下载解压校验码为预先从服务器下载的用于标识解压资源文件的校验码;判断实际解压校验码与下载解压校验码是否一致;当实际解压校验码与下载解压校验码一致时,启动应用程序。

在其中一个实施例中,所述解压资源文件中包含多个解压子文件,处理器执行计算机程序时实现计算解压资源文件的实际解压校验码的步骤时还用于:获取各解压子文件对应的子文件标识以及子文件校验码;按照预设的规则将各子文件标识以及各子文件校验码进行组合,得到解压资源文件对应的实际解压校验码。

在其中一个实施例中,处理器执行计算机程序时实现查询应用程序标识对应的应用程序是否为首次运行之后的步骤时还用于:当应用程序是首次运行时,获取与应用程序标识对应的压缩资源文件;计算压缩资源文件的实际压缩校验码;获取预先从服务器下载的应用程序对应的压缩资源文件的下载压缩校验码;判断实际压缩校验码与下载压缩校验码是否一致;当实际压缩校验码与下载压缩校验码一致时,判定压缩资源文件为安全压缩文件;当压缩资源文件为安全压缩文件时,对安全压缩文件进行解压得到解压资源文件,并根据解压压缩文件启动应用程序。

在其中一个实施例中,处理器执行计算机程序时实现当应用程序是首次运行时,获取与应用程序标识对应的压缩资源文件的步骤时还用于:当应用程序是首次运行时,生成加密后的对称秘钥,将对称秘钥发送至服务器,对称秘钥用于指示服务器对应用程序的下载地址、下载解压校验码以及下载压缩校验码进行加密生成加密业务文件;接收服务器返回的加密业务文件;通过对称秘钥对加密业务文件进行解密得到业务文件;从业务文件中获取应用程序对应的下载地址;根据下载地址进行下载得到压缩资源文件。

在其中一个实施例中,处理器执行计算机程序时实现下载解压校验码和下载压缩校验码的获取方式的步骤时还用于:通过对称秘钥对加密业务文件进行解密得到的业务文件中提取下载解压校验码和下载压缩校验码,其中所述下载解压校验码以及所述下载压缩校验码存储于区块链中。

在其中一个实施例中,处理器执行计算机程序时实现将对称秘钥发送至服务器的步骤时还用于:通过非对称秘钥的公钥对对称秘钥进行加密后发送至服务器,以使得服务器通过与非对称秘钥的公钥对应的私钥进行解密得到对称秘钥。

在其中一个实施例中,处理器执行计算机程序时实现判断实际压缩校验码与下载压缩校验码是否一致之后的步骤时还用于:当实际压缩校验码与下载压缩校验码不一致时,判定压缩资源文件为不安全的压缩资源文件;生成针对不安全的压缩资源文件的警示信息;

处理器执行计算机程序时实现判断实际解压校验码与下载解压校验码是否一致之后的步骤时还用于:当实际解压校验码与下载解压校验码不一致时,判定解压资源文件为不安全的解压资源文件;生成针对不安全的解压资源文件的警示信息。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收应用程序启动请求,应用程序启动请求携带有应用程序标识;查询应用程序标识对应的应用程序是否为首次运行;当应用程序不是首次运行时,获取应用程序标识对应的解压资源文件;计算解压资源文件的实际解压校验码;获取解压资源文件的下载解压校验码,其中,下载解压校验码为预先从服务器下载的用于标识解压资源文件的校验码;判断实际解压校验码与下载解压校验码是否一致;当实际解压校验码与下载解压校验码一致时,启动应用程序。

在其中一个实施例中,所述解压资源文件中包含多个解压子文件,计算机程序被处理器执行时实现计算解压资源文件的实际解压校验码的步骤时还用于:获取各解压子文件对应的子文件标识以及子文件校验码;按照预设的规则将各子文件标识以及各子文件校验码进行组合,得到解压资源文件对应的实际解压校验码。

在其中一个实施例中,计算机程序被处理器执行时实现查询应用程序标识对应的应用程序是否为首次运行之后的步骤时还用于:当应用程序是首次运行时,获取与应用程序标识对应的压缩资源文件;计算压缩资源文件的实际压缩校验码;获取预先从服务器下载的应用程序对应的压缩资源文件的下载压缩校验码;判断实际压缩校验码与下载压缩校验码是否一致;当实际压缩校验码与下载压缩校验码一致时,判定压缩资源文件为安全压缩文件;当压缩资源文件为安全压缩文件时,对安全压缩文件进行解压得到解压资源文件,并根据解压压缩文件启动应用程序。

在其中一个实施例中,计算机程序被处理器执行时实现当应用程序是首次运行时,获取与应用程序标识对应的压缩资源文件的步骤时还用于:当应用程序是首次运行时,生成加密后的对称秘钥,将对称秘钥发送至服务器,对称秘钥用于指示服务器对应用程序的下载地址、下载解压校验码以及下载压缩校验码进行加密生成加密业务文件;接收服务器返回的加密业务文件;通过对称秘钥对加密业务文件进行解密得到业务文件;从业务文件中获取应用程序对应的下载地址;根据下载地址进行下载得到压缩资源文件。

在其中一个实施例中,计算机程序被处理器执行时实现下载解压校验码和下载压缩校验码的获取方式的步骤时还用于:通过对称秘钥对加密业务文件进行解密得到的业务文件中提取下载解压校验码和下载压缩校验码,其中所述下载解压校验码以及所述下载压缩校验码存储于区块链中。

在其中一个实施例中,计算机程序被处理器执行时实现将对称秘钥发送至服务器的步骤时还用于:通过非对称秘钥的公钥对对称秘钥进行加密后发送至服务器,以使得服务器通过与非对称秘钥的公钥对应的私钥进行解密得到对称秘钥。

在其中一个实施例中,计算机程序被处理器执行时实现判断实际压缩校验码与下载压缩校验码是否一致之后的步骤时还用于:当实际压缩校验码与下载压缩校验码不一致时,判定压缩资源文件为不安全的压缩资源文件;生成针对不安全的压缩资源文件的警示信息。计算机程序被处理器执行时实现判断实际解压校验码与下载解压校验码是否一致之后的步骤时还用于:当实际解压校验码与下载解压校验码不一致时,判定解压资源文件为不安全的解压资源文件;生成针对不安全的解压资源文件的警示信息。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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