一种云存储数据的加密和解密的方法、装置、介质及设备与流程

文档序号:33629574发布日期:2023-03-28 22:24阅读:130来源:国知局
一种云存储数据的加密和解密的方法、装置、介质及设备与流程

1.本技术涉及计算机技术领域,尤其涉及一种云存储数据的加密和解密的方法、装置、介质及设备。


背景技术:

2.随着科技的发展,隐私数据安全受到大众的关注。随着互联网产业的快速发展,客户端处理的数据量越来越多,本地的存储难以满足需求,因此云存储服务得到广泛的使用。但是,在使用云存储服务对数据进行存储时,数据里面的隐私数据存在泄露的风险。因此,在使用云存储服务时,如何保证数据的安全是一个难点问题。
3.基于此,本技术说明书提供了基于安全切面的一种云存储数据的加密和解密的方法。


技术实现要素:

4.本说明书提供一种云存储数据的加密和解密的方法、装置、介质及设备,以至少部分的解决现有技术存在的上述问题。
5.本说明书采用下述技术方案:本说明书提供了一种云存储数据的加密的方法,所述方法应用于终端,所述终端有预先部署的切面底座,所述方法包括:通过所述切面底座接收切面服务器发送的所述终端中业务应用的切点以及切面程序,所述切点位于所述业务应用中用于向云存储服务器发送存储数据的发送函数处;通过所述切面底座,将所述切面程序注入所述业务应用的切点;当确定所述业务应用调用所述发送函数时,通过所述切面程序拦截调用所述发送函数的调用请求,确定拦截的所述调用请求中携带的待存储的数据,并对所述待存储的数据进行加密处理,得到加密后的数据;通过所述切面程序将所述加密后的数据发送给云存储服务器,使得所述云存储服务器存储所述加密后的数据。
6.本说明书提供了一种云存储数据的解密的方法,所述方法应用于终端,所述终端有预先部署的切面底座,所述方法包括:通过所述切面底座接收切面服务器发送的所述终端中业务应用的切点以及切面程序,所述切点位于所述业务应用中用于从云存储服务器获取云存储数据的获取函数处;通过所述切面底座,将所述切面程序注入所述业务应用的切点;当所述业务应用通过调用所述获取函数获取云存储数据时,通过所述切面程序拦截云存储服务器发送至所述获取函数的数据返回信息,确定拦截的所述数据返回信息中携带的云存储数据,并对所述云存储数据进行解密处理,得到解密后的数据;将所述解密后的数据发送给所述获取函数,使得业务应用根据所述获取函数获取所述解密后的数据执行业务。
7.本说明书提供了一种云存储数据的加密的装置,所述装置应用于终端,所述终端有预先部署的切面底座,所述装置具体包括:接收模块,用于通过所述切面底座接收切面服务器发送的所述终端中业务应用的切点以及切面程序,所述切点位于所述业务应用中用于向云存储服务器发送存储数据的发送函数处;注入模块,用于通过所述切面底座,将所述切面程序注入所述业务应用的切点;加密模块,用于当确定所述业务应用调用所述发送函数时,通过所述切面程序拦截调用所述发送函数的调用请求,确定拦截的所述调用请求中携带的待存储的数据,并对所述待存储的数据进行加密处理,得到加密后的数据;发送模块,用于通过所述切面程序将所述加密后的数据发送给云存储服务器,使得所述云存储服务器存储所述加密后的数据。
8.本说明书提供了一种云存储数据的解密的装置,所述装置应用于终端,所述终端有预先部署的切面底座,所述装置具体包括:第一接收模块,用于通过所述切面底座接收切面服务器发送的所述终端中业务应用的切点以及切面程序,所述切点位于所述业务应用中用于从云存储服务器获取云存储数据的获取函数处;注入模块,用于通过所述切面底座,将所述切面程序注入所述业务应用的切点;解密模块,用于当所述业务应用通过调用所述获取函数获取云存储数据时,通过所述切面程序拦截云存储服务器发送至所述获取函数的数据返回信息,确定拦截的所述数据返回信息中携带的云存储数据,并对所述云存储数据进行解密处理,得到解密后的数据;第二接收模块,用于将所述解密后的数据发送给所述获取函数,使得业务应用根据所述获取函数获取所述解密后的数据执行业务。
9.本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述云存储数据的加密和解密的方法。
10.本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述云存储数据的加密和解密的方法。
11.本说明书采用的上述至少一个技术方案能够达到以下有益效果:在本说明书提供的云存储数据的加密和解密的方法中,通过终端中预先部署的切面底座,接收切面服务器发送的业务应用的切点以及切面程序,而切点位于业务应用调用的的对数据的获取和/或发送函数处。然后通过切面底座将切面程序注入业务应用的切点。当业务应用调用获取和/或发送函数时,通过切面程序对需要进行云存储的数据进行加密,以及通过切面程序对需要获取的云存储数据进行解密。
12.从上述方法中可以看出,在不更新业务应用的前提下,通过切面程序实现了数据在业务应用本地不加密,而在云存储时加密存储的效果,实现了对云存储数据透明地加密。同理,通过切面程序对终端从云存储服务器获取的云存储数据进行解密,使得终端中的业务应用接收到已解密的明文数据以执行业务,实现了云端数据透明地解密。
附图说明
13.此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:图1为本说明书中一种云存储数据的加密的方法的流程示意图;图2为本说明书提供的可信执行环境与通用执行环境的交互结构示意图;图3为本说明书中一种云存储数据的解密的方法的流程示意图;图4为本说明书提供的一种云存储数据的加密的装置示意图;图5为本说明书提供的一种云存储数据的解密的装置示意图;图6为本说明书提供的对应于图1和图3的电子设备示意图。
具体实施方式
14.为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
15.伴随着互联网的快速发展,终端设备需要处理、存储的数据量陡增,仅仅使用本地的存储已经远远不能满足需求,使用云存储服务成为趋势。但是在金融、医疗等场景,直接把明文数据进行云存储,存在数据泄露的风险。因此,在将数据进行云存储时需要保证数据的安全。
16.基于此,本说明书提供了一种云存储数据的加密和解密的方法,通过采用安全切面的方式,在终端中预先部署切面底座,通过切面底座接收切面服务器发送的业务应用的切点以及切面程序,而切点位于业务应用的获取和/或发送函数处。然后通过切面底座将切面程序注入业务应用的切点。当业务应用调用关键函数时,通过切面程序对需要进行云存储的数据进行加密,以及通过切面程序对需要获取的云存储数据进行解密。实现了对云存储数据透明地加密和解密,并且通过不同的加密和解密策略,可实现对云存储数据不同程度的隐私保护。
17.其中,上文所说的安全切面是指通过采用面向切面编程(aspect-oriented programming,aop)的方式,在不修改业务应用程序的情况下,在业务应用程序的运行逻辑中动态的添加或修改用于实现安全切面业务的切面程序的方法。使得在实现安全切面业务的同时,使实现安全切面业务的程序与业务应用程序解耦,从而避免高耦合导致的开发迭代问题。
18.这里说的切面程序,即基于业务运行逻辑来实现安全切面业务的增强程序。可通过采用面向切面编程的方式,将切面程序注入至业务应用程序的相应切点处,该切面程序在执行业务应用程序的过程中被触发执行,实现所需的安全切面业务功能。
19.而业务应用程序在执行业务时,业务应用程序通常通过方法之间的调用进行业务执行。因此,可将业务应用程序中的任意方法作为切面程序的切入点,即上述所说的切点,并将切面程序注入对应切点。使得业务应用程序在执行至切点,即调用该切点对应的业务应用程序的方法时,执行在该切点注入的切面程序。
20.通常,负责将切面程序注入至切点的过程的代码存在较高的可复用性,因此,通常将实现这一过程的程序抽象为一个服务模块,即切面底座。切面底座可从提供安全切面业务的服务器获取需要部署的切面程序以及获取切面程序在业务应用程序中注入的切点,在应用容器启动后被唤醒并在业务应用程序的切点处注入对应的切面程序。
21.业务应用程序可以是业务平台的服务器中提供业务服务的业务应用程序。其中,业务服务可以是业务平台的服务器向用户提供的业务服务,如,查询业务、支付业务等。业务服务还可以是业务平台的某服务器向其他服务器提供的业务服务,如,结算业务等。
22.当然了,由上述描述可知,为了使安全切面业务的程序与业务应用程序解耦,本说明书通过采用面向切面编程的方式使得安全切面业务的程序与业务应用程序在业务执行时相互交织,但又互相平行可各自独立维护。因此,区别于业务应用程序的业务提供方,提供安全切面业务的第三方可通过服务器管理安全切面业务所涉及的内容,例如,安全切面业务管控策略的配置、切面程序的版本迭代、切面程序的部署规则配置等等。当然,提供安全切面业务的可以是第三方,也可以是业务提供方。
23.服务器在管理安全切面业务所涉及的内容时,可通过配置文件记录各种配置信息,例如各种策略的配置、切面程序的部署规则配置等。使得切面底座可根据配置文件完成对切面程序的部署,或者服务器可根据配置文件实现安全切面业务。
24.在实际应用中,业务提供方通常设置有包括若干物理机或物理服务器的机房,通过物理机提供业务应用程序所需的物理资源。当然,一个业务应用程序可能无需整个物理机的所有物理资源,于是,一般还会通过虚拟化技术在一个物理机上运行多个虚拟主机(virtual hosting)。各个虚拟主机之间是互相独立的,各自享有物理机的部分物理资源。然后,可在虚拟主机中部署应用容器,并通过应用容器运行业务应用程序。应用容器通常包含分配给该应用容器的物理资源,如cpu、内存等,以及提供给该应用容器的运行环境,如操作系统(operating system,os)或其他运行环境数据,如,容器的序列(serial number,sn)号、分配的ip(influential property)、应用名、租户、环境变量等)。业务应用程序可部署在应用容器中以执行业务。
25.而在基于安全切面执行业务的场景中,业务提供方或者提供安全切面业务的第三方的服务器可提供服务器,通过服务器管理安全切面业务所涉及的内容,并将切面底座部署在应用容器中,通过切面底座将切面程序注入业务应用容器中的业务应用程序中,以为业务提供方的应用容器提供安全切面业务的支持。
26.于是,可预先在业务提供方的应用容器中部署切面底座。一般情况下,在启动应用容器时,可唤起提供给应用容器的操作系统,以及运行预先部署的切面底座,通过切面底座从服务器中得到切面程序和业务应用程序的切点,并将切面程序注入应用容器中的业务应用程序的切点处。此外,切面底座也可在业务应用程序执行过程中,从服务器中得到切面程序和业务应用程序的切点,并将切面程序注入应用容器中的业务应用程序的切点处。
27.当然,切面底座如何从服务器中得到部署切面程序所需的信息,可根据需要设置。例如,可以是根据配置文件主动从服务器中拉取所需的信息,或者服务器可主动下发使切面底座接收所需的信息。
28.将切面程序注入业务应用程序的切点后,业务应用程序在执行过程中,即可触发该切面程序从而实现相应的安全切面业务功能。
29.以下结合附图,详细说明本技术各实施例提供的技术方案。
30.图1为本说明书提供的一种云存储数据的加密的方法的流程示意图,该方法应用于终端,该终端有预先部署的切面底座,具体可包括以下步骤:s100:通过所述切面底座接收切面服务器发送的所述终端中业务应用的切点以及切面程序,所述切点位于所述业务应用中用于向云存储服务器发送存储数据的发送函数处。
31.目前,随着互联网产业的快速发展,客户端处理的数据量巨大,由于本地存储难以满足需求,越来越多的数据被存储在云存储服务器上面。而在使用云存储服务时,若最直接将明文数据存储在云存储服务器上面,会存在隐私数据泄露的风险。基于此,本说明书提供了一种应用在终端的对云存储数据的加密的方法。
32.具体的,该终端中预先部署有切面底座,该切面底座为切面服务器部署在该终端中的。具体该切面底座如何部署,本说明书不做限制。例如,由切面服务器主动下发至终端,在通过用户授权后安装在终端,或者,终端根据用户的操作,向切面服务器发送对切面底座的获取请求后,切面服务器提供给该终端的。
33.在该终端在启动时,该终端的操作系统可以唤醒该切面底座。该切面底座可在被唤醒后向该切面服务器发送启动提示,使该切面服务器根据该启动提示,确定该终端中需要部署切面程序的业务应用、该业务应用的切点以及需要部署的切面程序。之后,该终端便可通过该切面底座,接收该服务器下发的切点以及该切面程序。
34.在本说明书一个或多个实施例中,由于需要通过切面程序对业务应用上传至云存储服务器的数据进行加密,因此可将业务应用中对数据进行云存储的函数,作为发送函数。可见,该切面服务器确定的切面应位于该发送函数处,使得通过后续步骤在该切点注入的切面程序可对需要进行云存储的数据进行加密。
35.需要说明的是,一般不同的业务应用其对数据进行云存储时所调用的函数可能不完全相同,例如,函数本身不同、函数在业务应用中的调用关系不同等等,因此不同的业务应用其切点也不完全相同。因此,终端中存在多个业务应用需要部署切面程序时,该切面底座可接收针对需要部署切面程序的每个业务应用对应的切点。
36.该终端中运行的业务应用不同,切面服务器确定出的业务应用的切点也不同。也就是说,不同的业务应用运行时,该终端都可通过切面底座接收切面服务器确定出的切点以及切面程序。
37.同理,不同业务应用由于设置的参数也可能不同,因此也可对不同的业务应用配置相应的切面程序。为了方便描述,后续以在终端中的一个业务应用中部署切面程序为例进行说明。
38.s102:通过所述切面底座,将所述切面程序注入所述业务应用的切点。
39.该终端在通过上述步骤接收到切面服务器发送的业务应用的切点以及切面程序后,可通过切面底座,将切面程序注入到业务应用的切点处。
40.在本说明书的一个或多个实施例中,由于已经通过切面底座接收到了切面服务器发送的业务应用的切点以及切面程序。并且,由于切点位于发送数据到云存储服务器进行数据的云存储的发送函数处,而该终端中的业务应用调用发送函数就是为了对数据进行云存储的,因此,可将对数据进行加密的切面程序注入到切点中,以在后续步骤中实现对需要
进行云存储的数据的加密。
41.s104:当确定所述业务应用调用所述发送函数时,通过所述切面程序拦截调用所述发送函数的调用请求,确定拦截的所述调用请求中携带的待存储的数据,并对所述待存储的数据进行加密处理,得到加密后的数据。
42.在本说明书的一个或多个实施例中,在上述步骤中该终端通过切面底座将切面程序注入到对数据进行云存储的发送函数处后,还可确定当业务应用调用关键函数时,通过切面程序拦截调用发送函数的调用请求,并根据拦截的调用请求确定待存储的数据,以对待存储的数据进行加密处理。
43.具体的,当终端中的业务应用执行业务时需要调用该发送函数时,由于切面程序已经通过上述步骤注入到发送函数处,因此该切面程序可先拦截业务应用发送到该发送函数的调用请求。之后,根据拦截到的该调用请求,确定该调用请求中携带的需要进行云存储的数据。最后,该切面程序可对需要进行云存储的数据进行加密处理。
44.进一步的,该切面程序在对需要进行云存储的数据进行加密处理之前,还可查询该终端本地是否存储有加密策略。当确定该终端本地未存储加密策略时,可向切面服务器发送加密策略获取请求。该切面服务器可接收该加密策略获取请求,并根据该加密策略获取请求确定与该切面程序匹配的加密策略。
45.由于对于同一终端中不同的业务应用,部署的切面程序可能不同,在不同类型终端中同样的业务应用,部署的切面程序也可能不同,因此可根据不同的切面程序,确定该切面程序对应的终端或者业务应用。则该切面服务器在接收到加密策略获取请求时,还可根据该切面程序确定对应的终端或者业务应用,之后根据确定出的该终端或者业务应用,确定需要下发的加密策略,即与该切面程序匹配的加密策略。
46.在该切面服务器确定出加密策略之后,便可将该加密策略返回该终端的切面程序。而该切面程序在接收到该加密策略之后,并可根据该加密策略确定需要采用的加密算法,并根据确定出的加密算法对该数据进行加密处理。
47.更进一步的,在根据该加密策略确定需要采用的加密算法时,该切面程序可先确定发送函数需要发送到云存储服务器进行云存储的数据的数据分类,然后根据接收到的加密策略以及确定出的需要进行云存储的数据的数据分类,判断是否对该数据进行加密。若是,则该切面程序根据加密策略,确定该数据分类对应的加密算法,并根据确定出的加密算法对该数据进行加密。进而,该切面程序便可通过后续步骤将加密后的数据上传至云存储服务器进行云存储。若否,则不对该数据进行加密。
48.s106:通过所述切面程序将所述加密后的数据发送给云存储服务器,使得所述云存储服务器存储所述加密后的数据。
49.在本说明书的一个或多个实施例中,通过上述步骤该终端得到加密的数据后,该终端中的切面程序可将加密后的数据发送至云存储服务器,然后云存储服务器便可存储加密后的数据。
50.基于图1所示的一种云存储数据的加密的方法,首先,终端通过切面底座接收切面服务器发送的业务应用的切点以及切面程序,切点位于所述业务应用调用的发送数据至云存储服务器进行数据的云存储的发送函数处。然后,通过切面底座,将切面程序注入业务应用的切点。最后,当业务应用调用发送函数时,通过切面程序对需要进行云存储的数据进行
加密处理,并通过切面程序将加密后的数据发送给云存储服务器,使得云存储服务器存储加密后的数据。在不更新业务应用的前提下,通过切面程序实现了数据在业务应用本地不加密,而在云存储服务器时加密存储的效果,实现了对云存储数据透明地加密。
51.需要说明的是,由于业务应用调用发送函数的调用请求中携带的不仅可以是需要进行云存储的数据,也可以是数据在该终端中对应的存储地址。因此,在上述步骤s104中,该切面程序在拦截了业务应用发送到发送函数的调用请求后,还可确定调用请求中携带的需要进行云存储的数据的存储地址。并通过访问该存储地址获取需要进行云存储的数据,以根据加密算法对获取的需要进行云存储的数据进行加密,得到加密后的数据。
52.此外,在本说明书的一个或多个实施例中,在上述步骤s104中当确定该终端未存储有加密策略,并通过切面程序向切面服务器发送加密策略获取请求时,该加密策略获取请求中携带有业务应用对应的该终端的标识或者该终端中的不同业务应用的标识,以便切面服务器下发对应的加密策略。由于不同的终端设备,即电脑、移动设备等对安全性的要求不同,比如,某园林记录各植物生长信息的设备中的数据的安全性要求,一定没有某医院用于记录接诊病人的数据的设备所要求的安全性高,因此可针对终端中的不同的业务应用或者终端中不同的业务应用对应的标识,使切面服务器下发不同的加密策略。并且,当该切面服务器更新所使用的加密策略时,该终端可通过切面底座接收切面服务器发送的加密策略更新指令,进而进行加密策略的更新。
53.进一步的,在上述步骤s104中,通过确定出的数据分类以及加密策略对数据进行加密时,在本说明书的一个或多个实施例中,所述加密策略至少包括:使用全局通用的密钥和独立密钥。由于不同的数据所要求的安全级别不同,比如涉及用户个人隐私的数据安全级别要求必然很高,因此可对数据使用不同的加密策略进行加密。一般地,当对安全级别要求高时,可使用独立的密钥对数据进行加密,即对不同种的数据分类使用不同的加密算法进行加密,也就是说,一种数据分类对应一个密钥,当该种数据需要进行删除时,对应的密钥也被销毁。当对性能要求较高时,可使用全局通用的密钥,即整个设备所有数据的加密都是用同一个加密算法,这样产生的密钥以及算法参数量大大减少,大大降低了终端的计算量以及减少占用的存储空间,因此可提高终端的性能。
54.需要说明的是,当使用全局通用的密钥时,可在已生成的密钥中选用一个密钥对云存储的数据进行加密,也可在切面程序确定策略为使用全局通用的密钥后,使用该策略对应的算法生成一个密钥,使用生成的该密钥对云存储的数据进行加密。同样的,当使用独立密钥进行云存储的数据的加密时,可在已经生成的密钥中选用未被其他数据分类的数据使用的密钥,对该云存储的数据进行加密。也可在使用不同的算法参数,生成另外一个密钥作为该种数据分类的独立密钥。具体如何使用密钥对云存储的数据进行加密,本说明书不做具体限制。
55.并且,在根据数据分类对数据进行加密时,可根据数据的地址对数据使用不同的加密算法进行加密。也可以根据不同文件类型中的数据、不同文件名中的数据或者终端中的某个进程产生的数据等等进行加密,还可设置黑白名单,即哪些数据需要进行加密,哪些数据不需要进行加密。对数据的分类方法有很多种,具体使用何种方法进行数据分类本说明书不做限制。
56.需要说明的是,在本说明书的一个或多个实施例中,所使用的加密算法可采用对
称加密算法或非对称加密算法,本说明书不做限制,可根据需要设置。
57.更进一步的,若终端中部署的切面底座、切面程序遭到恶意攻击或者加密算法参数泄露,会影响数据的安全性。而可信执行环境(trusted execution environment,tee)是在用户的设备中提供一个与通用执行环境(rich execution environment,ree)隔离的安全环境,保护在该可信执行环境内运行的应用的安全,有利于隐私保护。因此,为了进一步提高数据的安全性,该终端中可配置可信执行环境,并且该切面程序中的加密算法部署在可信执行环境中。
58.本说明书提供了可信执行环境与通用执行环境的交互示意图。如图2所示,在图2中可见,ree中有业务应用和切面程序。然后通过可信框架单元(arm trusted firmware,atf)发送指令与tee进行交互,tee中部署有切面程序中的加密算法部分。也就是说,切面程序中的加密算法部署在tee中,其他拦截发送函数等部分在ree环境中。
59.然后,在该终端通过切面程序对数据进行加密时,可通过切面程序拦截发送至发送函数的调用请求,并确定调用请求中携带的需要进行云存储的数据。然后,通过atf向tee中部署的切面程序发送加密请求,该加密请求中携带有需要进行云存储的数据,使tee中部署的切面程序。并通过加密算法对需要进行云存储的数据进行加密。最后接收atf返回的在tee加密后的数据。
60.图3为本说明书提供的一种云存储数据的解密的方法的流程示意图,所述方法应用于终端,所述终端有预先部署的切面底座,具体可包括以下步骤:s300:通过所述切面底座接收切面服务器发送的所述终端中业务应用的切点以及切面程序,所述切点位于所述业务应用中用于从云存储服务器获取云存储数据的获取函数处。
61.在本说明书的一个或多个实施例中,该终端可通过预先部署的切面底座,接收切面服务器发送的业务应用的切点和切面程序,切点位于业务应用调用的获取云存储服务器中的云存储数据的获取函数处。以便在后续步骤中,将切面程序注入到切点中,以实现对需要获取的云存储数据的解密处理。
62.s302:通过所述切面底座,将所述切面程序注入所述业务应用的切点。
63.在本说明书的一个或多个实施例中,该终端在通过上述步骤接收到切面服务器发送的业务应用的切点以及切面程序后,可通过切面底座,将切面程序注入到业务应用的切点处。
64.由于已经通过切面底座接收到了切面服务器发送的业务应用的切点以及切面程序。因此,可将对数据进行解密的切面程序注入到切点中,以在后续步骤中实现对需要获取的云存储数据的解密处理。
65.s304:当所述业务应用通过调用所述获取函数获取云存储数据时,通过所述切面程序拦截云存储服务器发送至所述获取函数的数据返回信息,确定拦截的所述数据返回信息中携带的云存储数据,并对所述云存储数据进行解密处理,得到解密后的数据。
66.在本说明书的一个或多个实施例中,在上述步骤中该终端通过切面底座将切面程序注入到需要获取的云存储数据的获取函数处后,还可通过切面程序拦截云存储服务器发送到获取函数的数据返回信息,并根据数据返回信息确定需要获取的云存储数据,以对获取函数需要获取的云存储数据进行解密处理,得到解密后的数据。
67.具体的,当终端中的业务应用调用获取函数从云存储服务器中获取云存储数据时,由于切面程序已经通过上述步骤注入到获取函数处,因此,该切面程序可拦截云存储服务器返回到获取函数的数据返回信息。并且,该切面程序可根据数据返回信息确定需要获取的云存储数据,然后对该数据进行解密处理,从而得到解密后的数据。以在后续步骤,通过切面程序将解密后的数据发送至获取函数,使得业务应用根据获取函数获取到的已经解密后的数据执行业务。
68.s306:将所述解密后的数据发送给所述获取函数,使得业务应用根据所述获取函数获取所述解密后的数据执行业务。
69.在本说明书的一个或多个实施例中,在上述步骤中该切面程序对需要获取的云存储数据进行解密后,该切面程序还可将解密后的数据发送给获取函数,然后业务应用可根据获取函数接收到的解密后的数据执行业务。
70.基于图3所示的一种云存储数据的解密的方法,首先,通过切面底座接收切面服务器发送的业务应用的切点以及切面程序,切点位于业务应用调用的从云存储服务器中获取云存储数据的获取函数处。然后,通过切面底座,将所述解切面程序注入业务应用的切点。最后,当通过调用获取函数获取云存储服务器发送的数据返回请求时,通过切面程序拦截该数据返回请求,并根据该数据返回请求确定该请求中携带的云存储数据,以通过切面程序对该云存储数据进行解密处理。最后,切面程序可将解密后的数据发送到获取函数,使得业务应用可以根据获取函数接收到的解密后的数据执行业务。实现了在终端中的业务应用获取云存储数据时,通过切面程序对获取的云存储数据进行解密处理,使得终端中的业务应用接收到已解密的明文数据以执行业务,实现了云存储数据透明地解密。
71.需要说明的是,在云存储数据的解密方法中,与云存储数据的加密方法类似。区别在于切面程序在对云存储数据解密之前,要先拦截云存储服务器发送至获取函数的数据返回信息,而不是拦截业务应用调用发送函数的调用请求。于是,该切面程序也可确定解密策略,根据解密策略确定拦截的数据是否需要进行解密,或者在解密时采用哪种解密算法,或者采用哪个解密密钥。并且,解密过程也可通过部署在终端tee环境中对云存储数据的解密算法实现,业务应用中注入的切面程序将需要解密的数据发送至tee环境中的解密算法,并接收通过解密算法解密得到的解密后的数据,再发送至业务应用中继续执行业务。当然,上述内容与加密过程中相应内容类似,可以参考上述对加密过程的描述,本说明书对此过程不再赘述。
72.基于上述内容所述的云存储数据的加密的方法,本说明书实施例还对应的提供一种用于云存储数据的加密的装置示意图,如图5所示。
73.图4为本说明书实施例提供的一种云存储数据的加密的装置的示意图,所述装置包括:接收模块400,用于通过所述切面底座接收切面服务器发送的所述终端中业务应用的切点以及切面程序,所述切点位于所述业务应用中用于向云存储服务器发送存储数据的发送函数处;注入模块402,用于通过所述切面底座,将所述切面程序注入所述业务应用的切点;加密模块404,用于当确定所述业务应用调用所述发送函数时,通过所述切面程序
拦截调用所述发送函数的调用请求,确定拦截的所述调用请求中携带的待存储的数据,并对所述待存储的数据进行加密处理,得到加密后的数据;发送模块406,用于通过所述切面程序将所述加密后的数据发送给云存储服务器,使得所述云存储服务器存储所述加密后的数据。
74.可选地,所述加密模块404,具体用于当确定未存储从所述切面服务器获取加密策略时,通过所述切面程序向所述切面服务器发送加密策略获取请求,使所述切面服务器确定所述切面程序匹配的加密策略;通过所述切面程序接收所述切面服务器返回的加密策略;根据所述加密策略,确定加密算法,并对所述待存储的数据进行加密处理。
75.可选地,所述加密模块404,具体用于确定所述待存储的数据的数据分类;根据所述加密策略以及所述数据分类,判断是否对所述待存储的数据进行加密;若是,则通过所述切面程序根据所述加密策略,确定所述数据分类对应的加密算法,并根据确定出的加密算法对所述待存储数据进行加密。
76.可选地,所述终端配置有可信执行环境,该切面程序中的加密算法部署在所述可信执行环境中;所述加密模块404,具体用于对所述待存储的数据进行加密处理,得到加密后的数据,具体包括:通过所述切面程序拦截发送至所述发送函数的调用请求;确定所述调用请求中携带的需要进行云存储的数据;通过可信框架单元,向所述可信执行环境中部署的切面程序发送加密请求,所述加密请求中携带有所述需要进行云存储的数据,使所述可信执行环境中部署的所述切面程序,通过所述加密算法对所述需要进行云存储的数据进行加密;接收可信单元框架返回的在可信执行环境中加密后的数据。
77.基于上述内容所述的云存储数据的解密的方法,本说明书实施例还对应的提供一种用于云存储数据的解密的装置示意图,如图5所示。
78.图5为本说明书实施例提供的一种云存储数据的解密的装置的示意图,所述装置包括:第一接收模块500,用于通过所述切面底座接收切面服务器发送的所述终端中业务应用的切点以及切面程序,所述切点位于所述业务应用中用于从云存储服务器获取云存储数据的获取函数处;注入模块502,用于通过所述切面底座,将所述切面程序注入所述业务应用的切点;解密模块504,用于当所述业务应用通过调用所述获取函数获取云存储数据时,通过所述切面程序拦截云存储服务器发送至所述获取函数的数据返回信息,确定拦截的所述数据返回信息中携带的云存储数据,并对所述云存储数据进行解密处理,得到解密后的数据;第二接收模块506,用于将所述解密后的数据发送给所述获取函数,使得业务应用根据所述获取函数获取所述解密后的数据执行业务。
79.可选地,所述解密模块504,具体用于当确定未存储从所述切面服务器获取解密策略时,通过所述切面程序向所述切面服务器发送解密策略获取请求,使所述切面服务器确定所述切面程序匹配的解密策略;通过所述切面程序接收所述切面服务器返回的解密策略;根据所述解密策略,确定解密算法,并对所述云存储数据进行解密处理。
80.可选地,所述解密模块504,具体用于确定所述获取函数需要获取的云存储数据的数据分类;根据所述解密策略以及所述数据分类,判断是否对所述获取函数需要获取的云存储数据进行解密;若是,则通过所述切面程序根据所述解密策略,确定所述数据分类对应的解密算法,并根据确定出的解密算法对所述需要获取的云存储数据进行解密。
81.可选地,所述终端配置有可信执行环境,该切面程序中的解密算法部署在所述可信执行环境中;所述解密模块504,具体用于通过所述切面程序拦截云存储服务器发送至所述获取函数的数据返回信息;确定所述数据返回信息中携带的所述获取函数需要获取的云存储数据;通过可信框架单元,向所述可信执行环境中部署的切面程序发送解密请求,所述解密请求中携带有所述需要获取的云存储数据,使所述可信执行环境中部署的所述切面程序,通过所述解密算法对所述需要获取的云存储数据进行解密;接收可信单元框架返回的在可信执行环境中解密后的数据。
82.本说明书实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述内容所述的云存储数据的加密和解密的方法。
83.基于上述内容所述的云存储数据的加密和解密的方法,本说明书实施例还提出了图6所示的电子设备的示意结构图。如图6,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述内容所述的云存储数据的加密和解密的方法。
84.当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
85.在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmable logic device, pld)(例如现场可编程门阵列(field programmable gate array,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardware description language,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advanced boolean expression language)、ahdl(altera hardware description language)、confluence、cupl(cornell university programming language)、hdcal、jhdl(java hardware description language)、lava、lola、myhdl、palasm、rhdl(ruby hardware description language)等,目前最普遍使用的是vhdl(very-high-speed integrated circuit hardware description language)与verilog。本领域技术人员也应
该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
86.控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc 625d、atmel at91sam、microchip pic18f26k20 以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
87.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
88.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
89.本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
90.本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
91.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
92.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
93.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
94.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
95.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
96.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
97.本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
98.本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
99.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
100.以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1