一种数据访问方法、终端及计算机可读存储介质
技术领域
本发明涉及电子应用领域中的数据访问技术,尤其涉及一种数据访问方法、终端及计算机可读存储介质。
背景技术
随着电子技术的发展,安卓(Android)系统的应用也越来越广泛,因此,Android应用程序的使用也显得十分重要和必要。Android应用程序在进行系统设计时,是采用基于组件(四大组件:Activity、Content Provider、Service和Broadcast Receiver)的方式实现各种应用的功能,采用组件的方式使得Android应用程序不可避免的存在组件暴露和组件劫持的安全风险,这样使得暴露的组件可以被第三方应用任意调用,导致用户的敏感信息泄露,甚至可能受到认证、恶意代码注入等攻击风险。
目前,可采用的控制组件暴露的方式为:通过自定义权限的方式,设置单独的组件的被调用方(被调用应用)与调用方(调用应用)的权限声明/申请,以实现最小范围的权限控制,使权限的影响范围仅限于两个被调用方与调用方之间。但是采用单独的组件权限控制时,无法知道被调用方是系统应用还是第三方应用,是正常应用还是恶意攻击的应用,同时也无法保证暴露的敏感信息的控制量(暴露信息),因此,存在一些安全隐患。
发明内容
为解决上述技术问题,本发明实施例期望提供一种数据访问方法、终端及计算机可读存储介质,能够基于组件的权限等级并结合组件的暴露信息来提高组件暴露的安全性。
本发明的技术方案是这样实现的:
本发明实施例提供了一种数据访问方法,包括:
当获取到调用应用调用被调用应用的访问请求时,响应所述访问请求,获取所述被调用应用对应的第一应用级别和暴露信息级别,以及获取所述调用应用对应的第二应用级别和安全信息级别;其中,所述暴露信息级别用于表征所述被调用应用对应的暴露信息的重要程度;所述安全级别信息是依据劫持信息得到的表征所述调用应用的安全性能的信息;
基于所述第一应用级别和所述暴露信息级别,确定所述被调用应用的被访问权限级别;
基于所述第二应用级别和所述安全信息级别,确定所述调用应用的访问权限级别;
依据所述被访问权限级别和所述访问权限级别,实现所述被调用应用和所述调用应用之间的数据访问。
在上述方案中,所述获取到调用应用调用被调用应用的访问请求之前,所述方法还包括:
根据预设应用类型,设置所述被调用应用的应用级别为所述第一应用级别,以及设置所述调用应用的应用级别为所述第二应用级别。
在上述方案中,所述基于所述第一应用级别和所述暴露信息级别,确定所述被调用应用的被访问权限级别,包括:
对所述第一应用级别和所述暴露信息级别进行加权求和,得到第一求和评分;
根据所述第一求和评分和预设评分与权限级别的对应关系,确定所述被访问权限级别。
相应的,所述基于所述第二应用级别和所述安全信息级别,确定所述调用应用的访问权限级别,包括:
对所述第二应用级别和所述安全信息级别进行加权求和,得到第二求和评分;
根据所述第二求和评分和预设评分与权限级别的对应关系,确定所述访问权限级别。
在上述方案中,所述依据所述被访问权限级别和所述访问权限级别,实现所述被调用应用和所述调用应用之间的数据访问,包括:
当所述被访问权限级别高于所述访问权限级别时,禁止所述调用应用调用所述被调用应用,结束所述数据访问;
当所述被访问权限级别低于或等于所述访问权限级别时,允许所述调用应用调用所述被调用应用,完成所述数据访问。
在上述方案中,所述获取到调用应用调用被调用应用的访问请求之前,所述方法还包括:
获取所述被调用应用允许访问的访问组件数据包。
在上述方案中,所述基于所述第一应用级别和所述暴露信息级别,确定所述被调用应用的被访问权限级别之后,所述方法还包括:
在预设组件暴露层中对所述被访问应用进行组件注册,保存所述访问组件数据包和所述被访问权限级别。
在上述方案中,所述依据所述被访问权限级别和所述访问权限级别,实现所述被调用应用和所述调用应用之间的数据访问,包括:
当所述访问请求表征访问所述访问组件数据包、且所述预设组件暴露层中的所述被访问权限级别高于所述访问权限级别时,或者当所述访问请求访问非所述访问组件数据包时,禁止所述调用应用调用所述被调用应用,结束所述数据访问;
当所述访问请求表征访问所述访问组件数据包、且所述预设组件暴露层中的所述被访问权限级别高于所述访问权限级别时,对所述调用应用进行访问授权,从所述预设组件暴露层中获取所述访问组件数据包,允许所述调用应用调用所述访问组件数据包。
在上述方案中,所述在预设组件暴露层中对所述被访问应用进行组件注册,保存所述访问组件数据包和所述被访问权限级别之后,所述方法还包括:
更新所述访问组件数据包、所述第一应用级别和所述暴露信息级别;
基于所述第一应用级别和所述暴露信息级别,更新所述被访问权限级别;
将更新后的所述访问组件数据包和更新后的所述被访问权限级别更新在所述预设组件暴露层中;
采用更新后的所述预设组件暴露层,实现所述被调用应用和所述调用应用之间的数据访问。
本发明实施例提供了一种终端,包括:处理器、存储器及通信总线,所述存储器及所述处理器通过所述通信总线连接;
所述存储器,用于存储有所述处理器可执行指令或运行有数据访问相关程序;
所述处理器,用于调用所述存储器存储的数据访问相关程序,并执行上述的数据访问方法。
本发明实施例提供了一种计算机可读存储介质,应用于终端中,所述计算机可读存储介质存储有一个或者多个数据访问相关程序,所述一个或者多个数据访问相关程序可被一个或者多个处理器执行,以实现上述的数据访问方法。
本发明实施例提供了一种数据访问方法、终端及计算机可读存储介质,当获取到调用应用调用被调用应用的访问请求时,响应访问请求,获取被调用应用对应的第一应用级别和暴露信息级别,以及获取调用应用对应的第二应用级别和安全信息级别;其中,暴露信息级别用于表征被调用应用对应的暴露信息的重要程度;安全级别信息是依据劫持信息得到的表征调用应用的安全性能的信息;基于第一应用级别和暴露信息级别,确定被调用应用的被访问权限级别;基于第二应用级别和安全信息级别,确定调用应用的访问权限级别;依据被访问权限级别和访问权限级别,实现被调用应用和调用应用之间的数据访问。采用上述技术实现方案,由于被调用应用是由组件实现的应用功能,那么在调用应用在请求调用被调用应用的过程中,终端可以基于被调用应用(组件)的应用界别和暴露信息级别(暴露信息的重要性)来实现被访问权限的设置,同时调用应用也基于自身组件的安全性和应用类型,进行了访问权限的设定,这样,终端就可以基于被访问权限和访问权限来进行数据访问的流程了,也就是说,终端在能够基于组件的权限等级(即应用级别)并结合组件的暴露信息等来进行第三方应用或系统应用的调用,使得调用的过程可以考虑的更加全面再调用,从而提高组件暴露的安全性。
附图说明
图1为本发明实施例提供的一种可选的移动终端的硬件结构示意图;
图2为本发明实施例提供的一种通信网络系统架构图;
图3为本发明实施例提供的一种数据访问方法的流程图一;
图4为本发明实施例提供的一种示例性的登录界面的示意图;
图5为本发明实施例提供的一种数据访问方法的流程图二;
图6为本发明实施例提供的一种数据访问方法的流程图三;
图7为本发明实施例提供的一种终端的结构示意图一;
图8为本发明实施例提供的一种终端的结构示意图二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
本发明实施例中的终端可以为具有应用功能的电子设备等,本发明实施例不作限制。
终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字TV、台式计算机等固定终端。
后续描述中将以移动终端为例进行说明,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
请参阅图1,其为实现本发明各个实施例的一种可选的移动终端的硬件结构示意图,该移动终端100可以包括:RF(Radio Frequency,射频)单元101、Wi-Fi模块102、音频输出单元103、A/V(音频/视频)输入单元104、传感器105、显示单元106、用户输入单元107、接口单元108、存储器109、处理器110、以及电源111等部件。本领域技术人员可以理解,图1中示出的移动终端结构并不构成对移动终端的限定,移动终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图1对移动终端的各个部件进行具体的介绍:
射频单元101可用于收发信息或通话过程中,信号的接收和发送,具体的,将基站的下行信息接收后,给处理器110处理;另外,将上行的数据发送给基站。通常,射频单元101包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元101还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA2000(CodeDivision Multiple Access 2000,码分多址2000)、WCDMA(Wideband Code DivisionMultiple Access,宽带码分多址)、TD-SCDMA(Time Division-Synchronous CodeDivision Multiple Access,时分同步码分多址)、FDD-LTE(Frequency DivisionDuplexing-Long Term Evolution,频分双工长期演进)和TDD-LTE(Time DivisionDuplexing-Long Term Evolution,分时双工长期演进)等。
Wi-Fi属于短距离无线传输技术,移动终端通过Wi-Fi模块102可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图1示出了Wi-Fi模块102,但是可以理解的是,其并不属于移动终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
音频输出单元103可以在移动终端100处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将射频单元101或Wi-Fi模块102接收的或者在存储器109中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元103还可以提供与移动终端100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元103可以包括扬声器、蜂鸣器等等。
移动终端100还包括至少一种传感器105,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1061的亮度,接近传感器可在移动终端100移动到耳边时,关闭显示面板1061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
显示单元106用于显示由用户输入的信息或提供给用户的信息。显示单元106可包括显示面板1061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1061。
用户输入单元107可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元107可包括触控面板1071以及其他输入设备1072。触控面板1071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1071上或在触控面板1071附近的操作),并根据预先设定的程式驱动相应的连接装置。触控面板1071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器110,并能接收处理器110发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1071。除了触控面板1071,用户输入单元107还可以包括其他输入设备1072。具体地,其他输入设备1072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种,具体此处不做限定。
进一步的,触控面板1071可覆盖显示面板1061,当触控面板1071检测到在其上或附近的触摸操作后,传送给处理器110以确定触摸事件的类型,随后处理器110根据触摸事件的类型在显示面板1061上提供相应的视觉输出。虽然在图1中,触控面板1071与显示面板1061是作为两个独立的部件来实现移动终端的输入和输出功能,但是在某些实施例中,可以将触控面板1071与显示面板1061集成而实现移动终端的输入和输出功能,具体此处不做限定。
接口单元108用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元108可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端100和外部装置之间传输数据。
存储器109可用于存储软件程序以及各种数据。存储器109可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器109可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器110是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器109内的软件程序和/或模块,以及调用存储在存储器109内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。处理器110可包括一个或多个处理单元;优选的,处理器110可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器110中。
移动终端100还可以包括给各个部件供电的电源111(比如电池),优选的,电源111可以通过电源管理系统与处理器110逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管图1未示出,移动终端100还可以包括蓝牙模块等,在此不再赘述。
为了便于理解本发明实施例,下面对本发明的移动终端所基于的通信网络系统进行描述。
请参阅图2,图2为本发明实施例提供的一种通信网络系统架构图,该通信网络系统为通用移动通信技术的LTE系统,该LTE系统包括依次通讯连接的UE(User Equipment,用户设备)201,E-UTRAN(Evolved UMTS Terrestrial Radio Access Network,演进式UMTS陆地无线接入网)202,EPC(Evolved Packet Core,演进式分组核心网)203和运营商的IP业务204。
具体地,UE201可以是上述终端100,此处不再赘述。
E-UTRAN202包括eNodeB2021和其它eNodeB2022等。其中,eNodeB2021可以通过回程(backhaul)(例如X2接口)与其它eNodeB2022连接,eNodeB2021连接到EPC203,eNodeB2021可以提供UE201到EPC203的接入。
EPC203可以包括MME(Mobility Management Entity,移动性管理实体)2031,HSS(Home Subscriber Server,归属用户服务器)2032,其它MME2033,SGW(Serving Gate Way,服务网关)2034,PGW(PDN Gate Way,分组数据网络网关)2035和PCRF(Policy andCharging Rules Function,政策和资费功能实体)2036等。其中,MME2031是处理UE201和EPC203之间信令的控制节点,提供承载和连接管理。HSS2032用于提供一些寄存器来管理诸如归属位置寄存器(图中未示)之类的功能,并且保存有一些有关服务特征、数据速率等用户专用的信息。所有用户数据都可以通过SGW2034进行发送,PGW2035可以提供UE 201的IP地址分配以及其它功能,PCRF2036是业务数据流和IP承载资源的策略与计费控制策略决策点,它为策略与计费执行功能单元(图中未示)选择及提供可用的策略和计费控制决策。
IP业务204可以包括因特网、内联网、IMS(IP Multimedia Subsystem,IP多媒体子系统)或其它IP业务等。
虽然上述以LTE系统为例进行了介绍,但本领域技术人员应当知晓,本发明不仅仅适用于LTE系统,也可以适用于其他无线通信系统,例如GSM、CDMA2000、WCDMA、TD-SCDMA以及未来新的网络系统等,此处不做限定。
本发明实施例中的终端可以为移动终端,那么,示例性的,基于上述移动终端硬件结构以及通信网络系统,可以提出本发明方法各个实施例。下述的终端可以利用移动终端来代替。
在本发明实施例中,Android系统中的四大组件可以包括:Activity、ContentProvider、Service和Broadcast Receiver。其中,对于Activity,在应用程序中,一个Activity通常就是一个单独的屏幕,其上面可以显示一些控件也可以监听并处理用户的事件做出的响应。Content Provider:内容提供者,Adroid平台提供了Content Provider,以使得一个应用程序的指定数据集提供给其他应用程序。这些指定数据集可以存储在文件系统中、或在一个SQLite数据库、或以任何其他合理的方式,使得其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据(相当于在应用程序外包了一层壳)。也就是说,只有需要在多个应用程序间共享数据时才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中的情况。Service:服务,一个Service是由一段长生命周期的,且没有用户界面的程序实现的,Service可以用来开发如监控类程序。例如,一个正在从播放列表中播放歌曲的媒体播放器。具体的,在一个媒体播放器的应用中,应该会有多个Activity,便于使用者可以选择歌曲并播放歌曲。然而,音乐重放这个功能(也可以是暂停、重播等功能)并没有对应的Activity,因为使用者当然会认为在导航到其它屏幕时音乐应该还在播放的。在这个例子中,媒体播放器这个Activity会使用Context.startService()来启动一个Service,从而可以在后台保持音乐的播放。同时,系统也将保持这个Service一直执行,直到这个Service运行结束。另外,还可以通过使用Context.bindService()方法,连接到一个Service上(如果这个Service还没有运行将启动它)。这样,当连接到一个Service之后,还可以由Service提供的接口与它进行通讯。Broadcast Receive:广播接收器,应用程序可以使用其对外部事件进行过滤只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面,但是广播接收器可以启动一个Activity或Service来响应它们收到的信息,或者用NotificationManager来通知用户。这里,通知可以用很多种方式,例如,闪动背灯、震动、播放声音等。一般来说,可以在状态栏上放一个持久的图标,用户可以打开它并获取消息。其中,广播的类型可以包括:普通广播、有序广播和异步广播。
在本发明实施例中,Android系统中的Android应用的漏洞大部分都是因为开发人员没有对输入信息做验证造成的。另外,因为Intent这种特殊的机制,需要过滤外部的各种恶意行为。针对Android系统的设计以及生态环境造成的安全漏洞可以包括:1、应用反编译;2、数据的存储与传输;3、密码泄露;4、组件暴露;5、WebView漏洞等。
实施例一
本发明实施例提供了一种数据访问方法,应用于终端中,如图3所示,该方法可以包括:
S101、当获取到调用应用调用被调用应用的访问请求时,响应访问请求,获取被调用应用对应的第一应用级别和暴露信息级别,以及获取调用应用对应的第二应用级别和安全信息级别;其中,暴露信息级别用于表征被调用应用对应的暴露信息的重要程度;安全级别信息是依据劫持信息得到的表征调用应用的安全性能的信息。
本发明实施例提供的一种数据访问方法是针对组件暴露造成的安全漏洞进行的优化。
需要说明的是,组件暴露的漏洞包括:组件在被调用时未做验证;以及在调用其他组件时未做验证。利用组件暴露的漏洞可以调用暴露的组件,达到某种效果,获取某些信息,构造某些数据。(比如:调用暴露的组件发短信、微博等),以及监听暴露组件,读取数据,造成信息泄露等。
在本发明实施例中,每个应用程序的功能实现都是由四大组件来实现的,这里组件调用的实现是在应用调用的过程中实现的,本发明实施例中以应用调用来描述和体现对组件的调用过程。这里,调用应用表征主动调用别的应用的应用,而被调用应用表征等待别的应用来调用的应用。而调用应用和被调用应用可以为安装在终端上的不同的应用程序。也就是说,在本发明实施例中,端的类型可以包括手机、平板电脑或PDA、台式机、PC机和智能TV等类型。其中,终端中安装有各种用户所需的应用,比如具备娱乐功能的应用(如视频应用,音频播放应用,游戏应用,阅读软件),又如具备服务功能的应用(如地图导航应用、团购应用、拍摄应用等)。这些终端上安装的应用既可以作为调用应用也可以作为被调用应用,具体需要看实际的调用情况来决定,本发明实施例不作限制。
在本发明实施例中,调用应用可以通过用户在终端上的操作对被调用应用发起访问请求。
示例性的,如图4所示,在终端中的应用A的登录界面中,在登录或者打开应用A的时候,是可以提示是否采用应用B来进行登录,如提示“是否跳转到应用B登录?”,若用户在终端的应用A的登录界面中确定选择应用B来进行登录(即选择“是”选项),则表征终端获取到了应用A调用应用B的访问请求,其中,应用A为调用应用,应用B为被调用应用。
这样,当获取到调用应用调用被调用应用的访问请求时,终端响应访问请求,获取被调用应用对应的第一应用级别和暴露信息级别,以及获取调用应用对应的第二应用级别和安全信息级别;其中,暴露信息级别用于表征被调用应用对应的暴露信息的重要程度;安全级别信息是依据劫持信息得到的表征调用应用的安全性能的信息。
需要说明的是,在本发明实施例中,终端在获取访问请求之前,该终端是可以对自身安装的应用按照预设应用类型进行应用级别的划分的。也就是说,终端是可以根据预设应用类型,设置被调用应用的应用级别为第一应用级别,以及设置调用应用的应用级别为第二应用级别。
在本发明实施例中,终端中安装的应用的类型可以分为系统应用和非系统应用,那么预设应用类型就为可以理解为系统应用和非系统应用,在本发明实施例中,系统应用的级别是要高级非系统应用的级别的,这样,终端可以根据预设应用类型,来判断调用应用和被调用应用的类型,进而根据预设应用类型与级别的对应关系,来确定第一应用级别和第二应用级别。
也就是说,在本发明实施例中,终端是可以事先设置有预设应用类型和应用级别的对应关系的,这样终端在根据预设应用类型确定了应用的类型之后,就可以进一步的根据预设应用类型和应用级别的对应关系,确定应用级别了,即确定了第一应用级别和第二应用级别了,这样在终端获取到访问请求时就可以直接去获取第一应用级别和第二应用级别了。
在本发明实施例中,应用级别的表现方式可以为分值,也可以为级别的标识等,本发明实施例不作限制。优选的,应用级别采用分值(或者分值区间)的方式进行表示。例如,系统应用对应的应用级别为90,非系统应用对应的应用级别为60。
另外,终端还可以将被调用应用的组件分为若干等级:例如系统安全、系统非安全、非系统安全和非系统不安全等级别。具体的划分等级的多少,本发明实施例不作限制。
需要说明的是,在本发明实施例中,应用程序(调用应用或者被调用应用)均可以设置组件的export属性,即声明组件单独的权限,控制该组件是否被其他应用跨进程调用。其中,对组件设置单独的权限,为跨进程调用方(调用应用)请求所调用组件(调用应用的具体的调用的组件)的配对权限。而本发明实施例中是通过export属性表征暴露信息级别的。暴露信息量越大则其安全等级越高,即暴露信息级别越高。
这里,暴露信息级别的表现形式可以与应用高级别的表现形式一致,也可以采用别的表现形式,本发明实施例不作限制。
需要说明的是,在本发明实施例中,安全信息级别是依据劫持信息得到的表征调用应用的安全性能的信息,调用应用是可能存在被恶意攻击或劫持信息的情况的,因此,终端是可以通过获取调用应用的安全信息级别,来表征调用应用的安全情况的。
在本发明实施例中,安全信息级别的确定由劫持信息确定,调用应用被劫持的次数或者数量越多,那么,安全信息级别就越低,采用分值的标识方式的时候,安全信息级别越低,那么分值就越低,本发明实施例不限制安全信息级别的表现方式。
S102、基于第一应用级别和暴露信息级别,确定被调用应用的被访问权限级别。
终端在获取了被调用应用对应的第一应用级别和暴露信息级别,以及获取调用应用对应的第二应用级别和安全信息级别之后,该终端可以基于第一应用级别和暴露信息级别,对被调用应用的被访问权限级别进行限定。
具体的,终端可以对第一应用级别和暴露信息级别进行加权求和,得到第一求和评分;然后,终端根据第一求和评分和预设评分与权限级别的对应关系,确定被访问权限级别。
在本发明实施例中,终端可以将第一应用级别和暴露信息级别转换为分值的表现形式,然后基于第一应用级别和暴露信息级别的不同权重的设定,进行加权求和处理后,得到加权结果对应的被访问权限级别。这样,终端就可以获取到被调用应用的可以被访问的被访问权限级别了。
其中,加权求和可以表示为:Priority 1=Ax+By,其中A+B=1,A、B取值根据需要选择,x代表组件级别(即第一应用级别),y代表组件暴露信息(暴露信息级别),Priority 1表示被访问权限级别。
需要说明的是,在本发明实施例中,第一应用级别对应的权重A和暴露信息级别对应的权重B的大小可以依据暴露信息重要还是应用级别重要的程度进行设置,但是权重A+权重B=1。
示例性的,假设第一应用级别对应的分值为80,暴露信息级别对应的分值为90,权重A为0.5,权重B为0.5,那么,被调用应用的被访问权限级别为80*0.5+90*0.5=85。
在本发明实施例中,被访问权限级别可以采用分值形式表示,也可以事先设定分值或分值范围与权限级别的对应关系,来确定被访问权限级别,具体的本发明实施例不作限制。
S103、基于第二应用级别和安全信息级别,确定调用应用的访问权限级别。
终端在获取了被调用应用对应的第一应用级别和暴露信息级别,以及获取调用应用对应的第二应用级别和安全信息级别之后,该终端可以基于第二应用级别和安全信息级别,对调用应用的访问权限级别进行限定。
具体的,终端可以对第二应用级别和安全信息级别进行加权求和,得到第二求和评分;然后,终端可以根据第二求和评分和预设评分与权限级别的对应关系,确定访问权限级别。
在本发明实施例中,终端可以将第二应用级别和安全信息级别转换为分值的表现形式,然后基于第二应用级别和安全信息级别的不同权重的设定,进行加权求和处理后,得到加权结果对应的访问权限级别。这样,终端就可以获取到调用应用的可以访问的访问权限级别了。
其中,加权求和可以表示为:Priority 2=Cm+Dn,其中C+D=1,C、D取值根据需要选择,m代表组件级别(即第二应用级别),n代表组件劫持信息(安全信息级别),Priority 2表示访问权限级别。
需要说明的是,在本发明实施例中,第二应用级别对应的权重C和安全信息级别对应的权重D的大小可以依据安全信息重要还是应用级别重要的程度进行设置,但是权重C+权重D=1。
示例性的,假设第二应用级别对应的分值为80,安全信息级别对应的分值为80,权重C为0.3,权重D为0.7,那么,调用应用的访问权限级别为80*0.3+80*0.7=80。
在本发明实施例中,访问权限级别可以采用分值形式表示,也可以事先设定分值或分值范围与权限级别的对应关系,来确定访问权限级别,具体的本发明实施例不作限制。
需要说明的是,在S101之后,本发明实施例不限制S102和S103的执行顺序。
S104、依据被访问权限级别和访问权限级别,实现被调用应用和调用应用之间的数据访问。
终端在获取了调用应用的访问权限级别以及被调用应用的被访问权限级别之后,该终端可以根据对比被访问权限级别和访问权限级别,实现被调用应用和调用应用之间的数据访问。
具体的,当被访问权限级别高于访问权限级别时,终端禁止调用应用调用被调用应用,结束数据访问;以及当被访问权限级别低于或等于访问权限级别时,终端允许调用应用调用被调用应用,完成数据访问。
也就是说,终端可以检查被调用应用的访问权限级别是否高于被调用应用设置的访问权限级别,只有当访问权限级别等于或者高于被调用应用的被访问权限级别时,终端才授予被调用应用方跨进程组件调用,实现被调用应用和调用应用之间的数据访问。
进一步地,在本发明实施例中,在终端获取到调用应用调用被调用应用的访问请求之前,终端需要先检查调用应用的申请的组件访问权限(即允许访问组件数据包)是否与被调用应用申请的被访问组件权限(请求访问组件数据包)一致,即终端需要确认调用应用想要访问的组件是否是被调用应用允许访问的组件,若不是则直接结束对被调用应用的访问。其中,调用应用的申请的组件访问权限是在export属性中声明的。
可以理解的是,由于被调用应用是由组件实现的应用功能,那么在调用应用在请求调用被调用应用的过程中,终端可以基于被调用应用(组件)的应用界别和暴露信息级别(暴露信息的重要性)来实现被访问权限的设置,同时调用应用也基于自身组件的安全性和应用类型,进行了访问权限的设定,这样,终端就可以基于被访问权限和访问权限来进行数据访问的流程了,也就是说,终端在能够基于组件的权限等级(即应用级别)并结合组件的暴露信息等来进行第三方应用或系统应用的调用,使得调用的过程可以考虑的更加全面再调用,从而提高组件暴露的安全性。
实施例二
基于实施例一的同一发明构思下,本发明实施例提供了一种数据访问方法,如图5所示,该方法可以包括:
S201、获取被调用应用允许访问的访问组件数据包。
在本发明实施例中,调用应用可以通过用户在终端上的操作对被调用应用发起访问请求,进行数据访问,而终端在获取到调用应用调用被调用应用的访问请求前,是可以获取被调用应用允许访问的访问组件数据包的。
详细的,应用程序(调用应用或者被调用应用)均可以设置组件的export属性,即声明组件单独的权限,控制该组件是否被其他应用跨进程调用。其中,对组件设置单独的权限,为跨进程调用方(调用应用)请求所调用组件(调用应用的具体的调用的组件)的配对权限。
也就是说,在终端获取到调用应用调用被调用应用的访问请求之前,终端需要先检查调用应用的申请的组件访问权限(即允许访问组件数据包)是否与被调用应用申请的被访问组件权限(请求访问组件数据包)一致,即终端需要确认调用应用想要访问的组件是否是被调用应用允许访问的组件,若不是则直接结束对被调用应用的访问。其中,调用应用的申请的组件访问权限是在export属性中声明的。
S202、当获取到调用应用调用被调用应用的访问请求时,响应访问请求,获取被调用应用对应的第一应用级别和暴露信息级别,以及获取调用应用对应的第二应用级别和安全信息级别;其中,暴露信息级别用于表征被调用应用对应的暴露信息的重要程度;安全级别信息是依据劫持信息得到的表征调用应用的安全性能的信息。
在本发明实施例中,终端对“当获取到调用应用调用被调用应用的访问请求时,响应访问请求,获取被调用应用对应的第一应用级别和暴露信息级别,以及获取调用应用对应的第二应用级别和安全信息级别;其中,暴露信息级别用于表征被调用应用对应的暴露信息的重要程度;安全级别信息是依据劫持信息得到的表征调用应用的安全性能的信息”的描述与实施例一中的S101的描述一致,此处不再赘述。
不同的是,本发明实施例中设置有预设组件暴露层,终端发送调用应用的访问请求(即调用请求)时,是将该调用请求发送在预设组件暴露层去进行访问请求的。其中,访问请求中可以携带想要访问或调用的组件名或者访问组件数据包等信息。
S203、基于第一应用级别和暴露信息级别,确定被调用应用的被访问权限级别。
在本发明实施例中,终端对“基于第一应用级别和暴露信息级别,确定被调用应用的被访问权限级别”的描述与实施例一中的S102的描述一致,此处不再赘述。
S204、在预设组件暴露层中对被访问应用进行组件注册,保存访问组件数据包和被访问权限级别。
终端在基于第一应用级别和暴露信息级别,确定被调用应用的被访问权限级别之后,由于该终端获知了被调用应用的被访问权限级别,以及该被调用应用允许访问的组件数据包,因此,该终端可以在预设组件暴露层中保存访问组件数据包和被访问权限级别,完成对被访问应用的组件注册过程。
在本发明实施例中,终端中设置有预设组件暴露层,该预设组件暴露层是被调用应用和调用应用之外抽离出来的一个独立的组件暴露控制层,该组件暴露控制层用于管理和分发组件的注册和组件权限的授予。终端在获取了被调用应用的相关注册信息之后,就可以在预设组件暴露层上进行被调用应用的组件注册了。
需要说明的是,本发明实施例中的注册信息包括访问组件数据包和被访问权限级别。其中,被访问权限级别中可以包括:组件名与被访问权限级别的对应关系,例如,组件名-被访问权限级别的键值对(key-value),具体的对应关系的表现形式本发明实施例不作限制。
S205、基于第二应用级别和安全信息级别,确定调用应用的访问权限级别。
在本发明实施例中,终端对“基于第二应用级别和安全信息级别,确定调用应用的访问权限级别”的描述与实施例一中的S103的描述一致,此处不再赘述。
在S202之后,本发明实施例并不限制S203-S204与S205的执行顺序。
S206、当访问请求表征访问访问组件数据包、且预设组件暴露层中的被访问权限级别高于访问权限级别时,或者当访问请求访问非访问组件数据包时,禁止调用应用调用被调用应用,结束数据访问。
S207、当访问请求表征访问访问组件数据包、且预设组件暴露层中的被访问权限级别高于访问权限级别时,对调用应用进行访问授权,从预设组件暴露层中获取访问组件数据包,允许调用应用调用访问组件数据包。
在本发明实施例中,终端在获取了被访问权限级别,访问权限级别以及访问组件数据包等信息之后,该终端就可以依据被访问权限级别,访问权限级别以及访问组件数据包,实现被调用应用和调用应用之间的数据访问。
详细的,当访问请求表征访问访问组件数据包、且预设组件暴露层中的被访问权限级别高于访问权限级别时,或者当访问请求访问非访问组件数据包时,终端禁止调用应用调用被调用应用,结束数据访问。当访问请求表征访问访问组件数据包、且预设组件暴露层中的被访问权限级别高于访问权限级别时,终端对调用应用进行访问授权,从预设组件暴露层中获取访问组件数据包,允许调用应用调用访问组件数据包。
也就是说,在本发明实施例中,终端需要先检查调用应用的申请的组件访问权限(即允许访问组件数据包)是否与被调用应用申请的被访问组件权限(请求访问组件数据包)一致,终端需要确认调用应用想要访问的组件是否是被调用应用允许访问的组件,即访问请求是否表征访问访问组件数据包,当访问请求访问非访问组件数据包时,终端就禁止调用应用调用被调用应用,结束数据访问。但是,当访问请求表征访问访问组件数据包时,终端就需要通过对比被访问权限级别和访问权限级别来实现数据访问了,具体的,当被访问权限级别高于访问权限级别时,终端禁止调用应用调用被调用应用,结束数据访问;以及当被访问权限级别低于或等于访问权限级别时,终端允许调用应用调用被调用应用,完成数据访问。即终端可以检查被调用应用的访问权限级别是否高于被调用应用设置的访问权限级别,只有当访问权限级别等于或者高于被调用应用的被访问权限级别时,终端才授予被调用应用方跨进程组件调用,实现被调用应用和调用应用之间的数据访问。
需要说明的是,在本发明实施例中,调用应用若想调用被调用应用的组件,则不需要像直接与被调用应用直接交互和匹配,只需向预设组件暴露层通过访问请求来请求想要调用的组件(需提供调用方组件名和访问组件数据包名)即可。
进一步地,在本发明实施例中,对于预设组件暴露层中组件权限的授权,默认情况下,对于被调用应用在预设组件暴露层中注册的组件信息,调用应用只要向预设组件暴露层提供调用信息,即可被授权,若被调用应用注册时注册了其他特殊信息,如黑/白名单等限制权限时,预设组件暴露层则需要根据黑/白名单等限制权限对调用应用进行权限的授予。
在本发明实施例中,被调用应用若想将组件暴露出去,则只需将相关的组件信息注册到预设组件暴露层,不想暴露的组件则不需注册。
需要说明的是,S206和S207为S203-S205之后的两个并列的数据访问过程,本发明实施例依据实际的情况执行S206和S207。
可以理解的是,由于被调用应用是由组件实现的应用功能,那么在调用应用在请求调用被调用应用的过程中,终端可以基于被调用应用(组件)的应用界别和暴露信息级别(暴露信息的重要性)来实现被访问权限的设置,同时调用应用也基于自身组件的安全性和应用类型,进行了访问权限的设定,这样,终端就可以基于被访问权限和访问权限来进行数据访问的流程了,也就是说,终端在能够基于组件的权限等级(即应用级别)并结合组件的暴露信息等来进行第三方应用或系统应用的调用,使得调用的过程可以考虑的更加全面再调用,从而提高组件暴露的安全性。除此之外,终端可以通过将预设组件暴露层和组件注册的部分独立,降低了调用应用和被调用应用对组件调用的权限控制的难度,同时也能增加组件暴露的安全性,同时有助于后期代码的维护,减少潜在的代码冗余问题。调用方申请调用,只需向组件暴露控制层申请。同时,由于预设组件暴露层记录了多个调用应用详细的调用的组件信息。因此,开发者可以很清楚的知道哪些组件被调用了,也可以知道哪些组件被跨进程调用,哪些没有被调用(长时间未调用,则认为为冗余权限注册,后续可删除该部分注册,和组件不暴露设置),提高了用户的人机交互性能。
进一步地,如图6所示,在S204之后,本发明实施例提供的一种数据访问方法还可以包括:S208-S211。如下:
S208、更新访问组件数据包、第一应用级别和暴露信息级别。
S209、基于第一应用级别和暴露信息级别,更新被访问权限级别。
S210、将更新后的访问组件数据包和更新后的被访问权限级别更新在预设组件暴露层中。
S211、采用更新后的预设组件暴露层,实现被调用应用和调用应用之间的数据访问。
终端在在预设组件暴露层中对被访问应用进行组件注册,保存访问组件数据包和被访问权限级别之后,被调用应用完成了在预设组件暴露层的注册,那么,当被调用应用中允许被访问或调用的组件信息有更新时,终端就可以在预设组件暴露层直接被调用方修改某个组件的独立权限后,主动将组件信息在组件暴露层更新访问组件数据包、第一应用级别和暴露信息级别,并基于第一应用级别和暴露信息级别,更新被访问权限级别,在预设组件暴露层中重新保存更新后的访问组件数据包和更新后的被访问权限级别,在后续获取到访问请求时,通过采用更新后的预设组件暴露层,实现被调用应用和调用应用之间的数据访问。
可以理解的是,在本发明实施例中,在被调用应用的可调用组件信息发生变化时,终端可以通过在预设组件暴露层中进行组件的注册更新就可以完成组件信息的变动,提高了组件调用维护的便捷和速度。
实施例三
基于实施例一和实施例二的同一发明构思,如图7所示,本发明实施例提供了一种终端1,该终端1可以包括:
获取单元10,用于当获取到调用应用调用被调用应用的访问请求时,响应所述访问请求,获取所述被调用应用对应的第一应用级别和暴露信息级别,以及获取所述调用应用对应的第二应用级别和安全信息级别;其中,所述暴露信息级别用于表征所述被调用应用对应的暴露信息的重要程度;所述安全级别信息是依据劫持信息得到的表征所述调用应用的安全性能的信息;
确定单元11,用于基于所述第一应用级别和所述暴露信息级别,确定所述被调用应用的被访问权限级别;以及基于所述第二应用级别和所述安全信息级别,确定所述调用应用的访问权限级别;
访问单元12,用于依据所述被访问权限级别和所述访问权限级别,实现所述被调用应用和所述调用应用之间的数据访问。
在本发明的一些实施例中,所述终端1还可以包括:设置单元13。
所述设置单元13,用于所述获取到调用应用调用被调用应用的访问请求之前,根据预设应用类型,设置所述被调用应用的应用级别为所述第一应用级别,以及设置所述调用应用的应用级别为所述第二应用级别。
在本发明的一些实施例中,所述确定单元11,具体用于对所述第一应用级别和所述暴露信息级别进行加权求和,得到第一求和评分;根据所述第一求和评分和预设评分与权限级别的对应关系,确定所述被访问权限级别。
在本发明的一些实施例中,所述确定单元11,具体用于对所述第二应用级别和所述安全信息级别进行加权求和,得到第二求和评分;根据所述第二求和评分和预设评分与权限级别的对应关系,确定所述访问权限级别。
在本发明的一些实施例中,所述访问单元12,具体用于当所述被访问权限级别高于所述访问权限级别时,禁止所述调用应用调用所述被调用应用,结束所述数据访问;或者,当所述被访问权限级别低于或等于所述访问权限级别时,允许所述调用应用调用所述被调用应用,完成所述数据访问。
在本发明的一些实施例中,所述获取单元10,还用于所述获取到调用应用调用被调用应用的访问请求之前,获取所述被调用应用允许访问的访问组件数据包。
在本发明的一些实施例中,所述终端1还包括:注册单元14和保存单元15。
所述注册单元14,用于所述基于所述第一应用级别和所述暴露信息级别,确定所述被调用应用的被访问权限级别之后,在预设组件暴露层中对所述被访问应用进行组件注册,
所述保存单元15,用于保存所述访问组件数据包和所述被访问权限级别。
在本发明的一些实施例中,所述访问单元12,具体用于当所述访问请求表征访问所述访问组件数据包、且所述预设组件暴露层中的所述被访问权限级别高于所述访问权限级别时,或者当所述访问请求访问非所述访问组件数据包时,禁止所述调用应用调用所述被调用应用,结束所述数据访问;或者,当所述访问请求表征访问所述访问组件数据包、且所述预设组件暴露层中的所述被访问权限级别高于所述访问权限级别时,对所述调用应用进行访问授权,从所述预设组件暴露层中获取所述访问组件数据包,允许所述调用应用调用所述访问组件数据包。
在本发明的一些实施例中,所述终端1还包括:更新单元16。
所述更新单元16,用于所述在预设组件暴露层中对所述被访问应用进行组件注册,保存所述访问组件数据包和所述被访问权限级别之后,更新所述访问组件数据包、所述第一应用级别和所述暴露信息级别;及基于所述第一应用级别和所述暴露信息级别,更新所述被访问权限级别;以及将更新后的所述访问组件数据包和更新后的所述被访问权限级别更新在所述预设组件暴露层中;
所述访问单元12,还用于采用更新后的所述预设组件暴露层,实现所述被调用应用和所述调用应用之间的数据访问。
在实际应用中,上述获取单元10、设置单元13、访问单元12、确定单元11、所述注册单元14和更新单元16可由终端上的处理器17实现,具体可以为中央处理器(CPU,CentralProcessing Unit)、微处理器(MPU,Microprocessor Unit)、数字信号处理器(DSP,DigitalSignal Processing)或现场可编程门阵列(FPGA,Field Programmable Gate Array)等;保存单元15可由存储器18实现,本发明实施例不作限制。其中,该存储器18和处理器17可通过通信总线19进行通信。在实际应用中,上述的存储器可以是易失性存储器(volatilememory),例如随机存取存储器(Random-Access Memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(Read-Only Memory,ROM),快闪存储器(flashmemory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向处理器提供指令和数据。
因此,如图8所示,本发明实施例还提供了一种终端,包括:
处理器17、存储器18及通信总线19,所述存储器18及所述处理器17通过所述通信总线19连接;
所述存储器18,用于存储有所述处理器17可执行指令或运行有数据访问相关程序;
所述处理器17,用于调用所述存储器18存储的数据访问相关程序,并执行如实施例一和实施例二中任一实施例描述的数据访问方法。
需要说明的是,在本发明实施例中,处理器17可与图1中的处理器110一致,存储器18可与图1中的存储器109一致。
本发明实施例提供了一种计算机可读存储介质,应用于终端中,所述计算机可读存储介质存储有一个或者多个数据访问相关程序,所述一个或者多个数据访问相关程序可被一个或者多个处理器执行,以实现上述实施例一和实施例二中的任一实施例描述的数据访问方法。
可以理解的是,由于被调用应用是由组件实现的应用功能,那么在调用应用在请求调用被调用应用的过程中,终端可以基于被调用应用(组件)的应用界别和暴露信息级别(暴露信息的重要性)来实现被访问权限的设置,同时调用应用也基于自身组件的安全性和应用类型,进行了访问权限的设定,这样,终端就可以基于被访问权限和访问权限来进行数据访问的流程了,也就是说,终端在能够基于组件的权限等级(即应用级别)并结合组件的暴露信息等来进行第三方应用或系统应用的调用,使得调用的过程可以考虑的更加全面再调用,从而提高组件暴露的安全性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。