访问控制的方法、装置和系统
技术领域
本发明涉及虚拟化技术领域,尤其涉及访问控制的方法、装置和系统。
背景技术
《中华人民共和国通信行业标准——移动终端可信环境技术要求(报批稿)》中规定,移动终端的可信环境是存在与移动终端内,通过混合使用硬件和软件的方法在SoC(System on Chip,系统级芯片)上隔离出两个平行的执行环境:普通的非保密执行环境和安全的保密环境。其中,称非保密执行环境为富执行环境REE(Rich ExecutionEnvironment),它执行移动终端操作系统;安全的保密环境被称为可信执行环境TEE(Trusted Execution Environment),它针对在REE环境中生成的软件攻击提供保护,其架构如图1所示。
其中,一种在SoC上运行TEE的平台的架构为TrustZone。TrustZone是ARM针对消费电子设备安全所提出的一种架构,是整个系统设计过程中的安全体系的扩展,目标是防范设备可能遭受到的多种特定威胁,包括来自恶意软件或设备的持有人的威胁。
在需要TrustZone提供保护的各场景中,访问控制是重要场景之一。
以图1所示架构中的支付应用需要访问TrustZone,并在TrustZone中运行以实现支付应用的支付功能为例,应用程序生成访问TrustZone的访问请求,访问请求中包括支付应用的标识;TrustZone获得访问请求后,其请求响应模块根据访问请求中支付应用的标识,对该访问请求进行响应,以在支付功能实现过程中提供保护。
随着虚拟化技术的发展,移动终端中虚拟化技术和可信环境技术进行了融合,产生如图2所示的架构,其中,Hypervisor,也叫虚拟机监视器,是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个虚拟机和应用共享一套基础物理硬件,它可以协调访问服务器上的所有物理设备和虚拟机,是所有虚拟化技术的核心。
对于图2所示的架构,任一虚拟机均能够以发送访问请求的方式访问TrustZone,实现功能,即每个虚拟机的访问TrustZone的权限均相同。然而,随着虚拟机的增多,不同虚拟机的需要不同的访问权限,以对虚拟机的访问进行灵活的控制。
发明内容
为解决对虚拟机的访问进行灵活控制的问题,本发明实施例提出了一种访问控制的方法、装置和系统。
第一方面,本发明实施例提供了一种访问控制的方法,所述方法包括:
接收应用程序发送的访问TrustZone的访问请求,所述访问请求包括所述应用程序所在的虚拟机标识,所述应用程序的应用标识;
根据预设的第一访问策略、所述虚拟机标识和所述应用标识,确定所述应用程序能够访问所述TrustZone;
将所述访问请求发送至所述TrustZone的请求响应模块。
可选地,若确定所述应用程序不能访问所述TrustZone,则向所述应用程序反馈不能访问所述TrustZone的第一消息。
可选地,所述根据预设的第一访问策略、所述虚拟机标识和所述应用标识,确定所述应用程序能够访问所述TrustZone,包括:
虚拟机监视器Hypervisor根据预设的第一访问策略、所述虚拟机标识和所述应用标识,确定所述应用能够访问所述TrustZone。
可选地,在所述Hypervisor确定所述应用能够访问所述TrustZone之后,在将所述访问请求发送至所述TrustZone的请求响应模块之前,还包括:
所述Hypervisor获取用户信息,并对所述用户信息第一验证通过;
所述用户信息为使用所述应用程序的用户的信息。
可选地,当第一验证不通过时,所述Hypervisor向所述应用程序反馈不能访问所述TrustZone的第二消息。
可选地,所述Hypervisor获取用户信息,包括:
所述Hypervisor调用第一用户信息采集设备获取用户信息;
所述第一用户信息采集设备被所述方法所在终端中各模块调用。
可选地,所述访问请求还包括用户信息;
所述Hypervisor获取用户信息,包括:
所述Hypervisor获取所述访问请求中的用户信息。
可选地,所述根据预设的第一访问策略、所述虚拟机标识和所述应用标识,确定所述应用程序能够访问所述TrustZone,包括:
所述TrustZone的验证模块根据预设的第一访问策略、所述虚拟机标识和所述应用标识,确定所述应用能够访问所述TrustZone。
可选地,在所述验证模块确定所述应用能够访问所述TrustZone之后,在将所述访问请求发送至所述TrustZone的请求响应模块之前,还包括:
所述验证模块获取用户信息,并对所述用户信息第二验证通过。
可选地,当第二验证不通过时,所述验证模块向所述应用程序反馈不能访问所述TrustZone的第三消息。
可选地,所述验证模块获取用户信息,包括:
所述验证模块调用第二用户信息采集设备获取用户信息;
所述第二用户信息采集设备被所述TrustZone中各模块调用。
可选地,所述访问请求还包括用户信息;
所述验证模块获取用户信息,包括:
所述验证模块获取所述访问请求中的用户信息。
可选地,所述根据预设的第一访问策略、所述虚拟机标识和所述应用标识,确定所述应用程序能够访问所述TrustZone,包括:
所述Hypervisor根据预设的第一访问策略、所述虚拟机标识和所述应用标识,确定所述应用能够访问所述TrustZone。
可选地,在所述Hypervisor确定所述应用能够访问所述TrustZone之后,在将所述访问请求发送至所述TrustZone的请求响应模块之前,还包括:
所述验证模块根据预设的第二访问策略、所述虚拟机标识和所述应用标识,确定所述应用能够访问所述TrustZone。
可选地,在所述验证模块确定所述应用能够访问所述TrustZone之后,在将所述访问请求发送至所述TrustZone的请求响应模块之前,还包括:
所述验证模块获取用户信息,并对所述用户信息第三验证通过。
可选地,当第三验证不通过时,所述验证模块向所述应用程序反馈不能访问所述TrustZone的第四消息。
可选地,所述验证模块获取用户信息,包括:
所述验证模块调用所述第二用户信息采集设备获取用户信息。
可选地,所述访问请求还包括用户信息;
所述验证模块获取用户信息,包括:
所述验证模块获取所述访问请求中的用户信息。
第二方面,本发明实施例提供了一种访问控制的装置,所述装置包括:
接收子模块,用于接收应用程序发送的访问TrustZone的访问请求,所述访问请求包括所述应用程序所在的虚拟机标识,所述应用程序的应用标识;
第一确定子模块,用于根据预设的第一访问策略、所述虚拟机标识和所述应用标识,确定所述应用程序能够访问所述TrustZone;
发送子模块,用于将所述接收子模块接收的访问请求发送至所述TrustZone的请求响应模块。
可选地,所述装置还包括:
第一反馈子模块,用于当确定所述应用程序不能访问所述TrustZone时,向所述应用程序反馈不能访问所述TrustZone的第一消息。
可选地,所述第一确定子模块位于虚拟机监视器Hypervisor中,用于根据预设的第一访问策略、所述虚拟机标识和所述应用标识,确定所述应用能够访问所述TrustZone。
可选地,所述装置,还包括:
第一获取子模块,所述第一获取子模块位于所述Hypervisor中,用于获取用户信息;
第一验证子模块,所述第一验证子模块位于所述Hypervisor中,用于对所述第一获取子模块获取的用户信息第一验证通过;
所述用户信息为使用所述应用程序的用户的信息。
可选地,所述装置,还包括:
第二反馈子模块,所述第二反馈子模块位于所述Hypervisor中,用于当第一验证不通过时,向所述应用程序反馈不能访问所述TrustZone的第二消息。
可选地,所述第一获取子模块,用于调用第一用户信息采集设备获取用户信息;
所述第一用户信息采集设备被所述方法所在终端中各模块调用。
可选地,所述访问请求还包括用户信息;
第一获取子模块,用于获取所述访问请求中的用户信息。
可选地,所述第一确定子模块位于所述TrustZone的验证模块中,用于根据预设的第一访问策略、所述虚拟机标识和所述应用标识,确定所述应用能够访问所述TrustZone。
可选地,所述装置,还包括:
第二获取子模块,所述第二获取子模块位于所述验证模块中,用于获取用户信息;
第二验证子模块,所述第二验证子模块位于所述验证模块中,用于对所述第二获取子模块获取的用户信息第二验证通过。
可选地,所述装置,还包括:
第三反馈子模块,所述第三反馈子模块位于所述验证模块中,用于当第二验证不通过时,向所述应用程序反馈不能访问所述TrustZone的第三消息。
可选地,所述第二获取子模块,用于调用第二用户信息采集设备获取用户信息;
所述第二用户信息采集设备被所述TrustZone中各模块调用。
可选地,所述访问请求还包括用户信息;
所述第二获取子模块,用于获取所述访问请求中的用户信息。
可选地,所述第一确定子模块位于所述Hypervisor中,用于根据预设的第一访问策略、所述虚拟机标识和所述应用标识,确定所述应用能够访问所述TrustZone。
可选地,所述装置,还包括:
第二确定子模块,所述第二确定子模块位于所述验证模块中,用于根据预设的第二访问策略、所述虚拟机标识和所述应用标识,确定所述应用能够访问所述TrustZone。
可选地,所述装置,还包括:
第三获取子模块,所述第三获取子模块位于所述验证模块中,用于获取用户信息;
第三验证子模块,所述第三验证子模块位于所述验证模块中,用于对所述第三获取子模块获取的用户信息第三验证通过。
可选地,所述装置,还包括:
第四反馈子模块,所述第四反馈子模块位于所述验证模块中,用于当第三验证不通过时,向所述应用程序反馈不能访问所述TrustZone的第四消息。
可选地,所述第三获取子模块,用于调用所述第二用户信息采集设备获取用户信息。
可选地,所述访问请求还包括用户信息;
所述第三获取子模块,用于获取所述访问请求中的用户信息。
第三方面,本发明实施例提供了一种访问控制的系统,所述系统包括:至少一个虚拟机、TrustZone、访问控制的装置;
所述虚拟机中运行应用程序,当所述应用程序访问所述TrustZone时,向所述访问控制的装置发送访问TrustZone的访问请求,所述访问请求包括所述应用程序所在的虚拟机标识,所述应用程序的应用标识;
所述访问控制的装置,用于接收所述访问请求;根据预设的第一访问策略、所述虚拟机标识和所述应用标识,确定所述应用程序能够访问所述TrustZone;将所述访问请求发送至所述TrustZone的请求响应模块;
所述TrustZone的请求响应模块用于响应所述访问请求。
可选地,所述访问控制的装置,还用于当确定所述应用程序不能访问所述TrustZone时,向所述应用程序反馈不能访问所述TrustZone的第一消息。
可选地,所述系统,还包括:虚拟机监视器Hypervisor;
所述访问控制的装置,位于所述Hypervisor中。
可选地,所述访问控制的装置,位于所述TrustZone中。
可选地,所述系统,还包括:Hypervisor;
所述访问控制的装置,包括第一访问控制子装置和第二访问控制子装置;
所述第一访问控制子装置,位于Hypervisor中,用于根据预设的第一访问策略、所述虚拟机标识和所述应用标识,确定所述应用能够访问所述TrustZone;
所述第二访问控制子装置,位于所述TrustZone中,用于在所述第一访问控制子装置确定所述应用程序能够访问所述TrustZone之后,根据预设的第二访问策略、所述虚拟机标识和所述应用标识,确定所述应用能够访问所述TrustZone;将所述访问请求发送至所述TrustZone的请求响应模块。
有益效果如下:
接收应用程序发送的访问TrustZone的访问请求,访问请求包括应用程序所在的虚拟机标识,应用程序的应用标识;根据预设的访问策略、虚拟机标识和应用标识,确定应用程序能够访问TrustZone;将访问请求发送至TrustZone的请求响应模块,实现了针对不同虚拟机标识和不同应用标识的访问权限进行灵活控制。
附图说明
下面将参照附图描述本发明的具体实施例,其中:
图1示出了本发明提供的一种系统架构示意图;
图2示出了本发明提供的另一种系统架构示意图;
图3示出了本发明提供的另一种系统架构示意图;
图4示出了本发明实施例一中提供的一种系统架构示意图;
图5示出了本发明实施例一中提供的一种访问控制的方法流程示意图;
图6示出了本发明实施例二中提供的一种系统架构示意图;
图7示出了本发明实施例二中提供的一种访问控制的方法流程示意图;
图8示出了本发明实施例三中提供的一种访问控制的方法流程示意图;
图9示出了本发明实施例三中提供的一种访问控制的方法流程示意图;
图10示出了本发明实施例四中提供的一种访问控制的装置的结构示意图;
图11示出了本发明实施例四中提供的另一种访问控制的装置的结构示意图;
图12示出了本发明实施例五中提供的一种访问控制的系统的结构示意图;
图13示出了本发明实施例五中提供的另一种访问控制的系统的结构示意图;
图14示出了本发明实施例六中提供的一种访问控制的系统的结构示意图;
图15示出了本发明实施例七中提供的一种访问控制的系统的结构示意图;
图16示出了本发明实施例七中提供的另一种访问控制的系统的结构示意图。
具体实施方式
为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互相结合。
采用现有技术中的方案,存在不能对虚拟机的访问进行有效控制的技术问题,本发明提供了解决方案,该解决方案可以于智能终端中,该智能终端可以为智能手机、智能机器人、平板电脑等设备,本发明并不对智能终端的具体产品进行限定,只要其包括至少一个虚拟机、TrustZone,并且可以通过网络通信即可。
本发明提供的解决方案核心在于,提出了一种包括至少一个虚拟机301、访问控制的装置302、TrustZone 303的架构,如图3所示。在该架构中,访问控制的装置可以实现针对不同虚拟机标识和不同应用标识的访问权的行灵活控制。
图3中,虚拟机301中运行应用程序,当用户希望虚拟机301中的应用程序访问TrustZone 303时,应用程序向访问控制的装置302发送访问TrustZone303的访问请求,访问请求包括应用程序所在的虚拟机标识,应用程序的应用标识;
访问控制的装置302,用于接收访问请求,根据预设的第一访问策略,以及访问请求中虚拟机标识和应用标识,确定应用程序能够访问TrustZone 303后,将访问请求发送至TrustZone 303的请求响应模块,从而实现根据虚拟机标识和应用标识对不同虚拟机301中的不同应用程序的访问权限进行灵活控制的技术效果;
TrustZone 303位于CPU(Central Processing Unit,中央处理器)中,TrustZone303的请求响应模块接收到访问请求后,响应该访问请求。
图3所示的架构中的访问控制的装置302,在实际应用时,存在多种具体的实现方式。下面分别以访问控制的装置302在Hypervisor中实现,访问控制的装置302在TrustZone303中实现,访问控制的装置302同时在Hypervisor和TrustZone 303中实现为例进行说明。
实施例一
针对图3所示的架构中的访问控制的装置302在Hypervisor中实现的具体方式,本申请提供了一种访问控制的方法。访问控制的装置302位于Hypervisor中的具体实现架构如图4所示,包括:
1)2个VM(Virtual Machine,虚拟机)。分别为个人VM和企业VM,其中,个人VM中运行支付应用3,企业VM中运行支付应用1和即时聊天应用2;
2)Hypervisor。Hypervisor上运行有访问控制的装置,该访问控制的装置执行本实施例提供的访问控制的方法,且Hypervisor上存储有第一访问策略,通过第一访问策略可以对VM中应用发送的访问TrustZone的访问请求进行访问策略判断,从而实现根据不同VM和不同应用程序的访问权限进行灵活控制的技术效果;
3)CPU。CPU上包括TrustZone,TrustZone中包括请求响应模块,可以在接收到VM中应用程序发送的访问请求后,响应该访问请求。除此之外,TrustZone中运行有TrustZone操作系统,TrustZone操作系统包括用于身份认证的认证模块,用于通信的通信模块等其他模板,本实施例不对TrustZone中包括的具体模块进行限定。
需要说明的是:
(1)Hypervisor上运行有访问控制的装置,且Hypervisor上存储有第一访问策略。第一访问策略可以存储在访问控制的装置中,也可以存储在访问控制的装置外,图4仅以第一访问策略存储在访问控制的装置中为例进行展示,本实施例不对实际应用时第一访问策略的具体存储位置进行限定。
(2)请求响应模块的名称仅为示意,在具体实施时,还可以称为其他名称,不论叫何名称,只要实现响应访问请求功能的模块,均可认为是本实施例的请求响应模块。若在实际应用中,多个模块共同实现响应访问请求功能,则多个模块均可认为是本实施例的请求响应模块的子模块。
(3)CPU上还可以连接有第一用户信息采集设备,该第一用户信息采集设备可以被图4所示的架构中的各模块调用。其中,第一用户信息采集设备包括但不限于:硬键盘、虹膜扫描器、刷卡器、存有用户指纹信息的U盾、指纹扫描器等。且,上述“第一”仅为编号,用于对不同设备连接的用户信息采集设备进行区分,无实际意义。
基于图4的架构,本实施例以3个例子进行具体说明,其中:
例子1:支付应用1发起访问请求1,以在TrustZone中实现付款功能1,其中,支付应用1采用指纹方式验证用户身份,且企业VM的虚拟机标识为OS1,支付应用1的应用标识为ID1。
例子2:即时聊天应用2发起访问请求2,以在TrustZone中实现付款功能2,其中,企业VM的虚拟机标识为OS1,即时聊天应用2的应用标识为ID2。
例子3:支付应用3发起访问请求3,以在TrustZone中实现付款功能3,其中,个人VM的虚拟机标识为OS2,支付应用3的应用标识为ID3。
其中,支付应用1和支付应用3可以是相同的应用,也可以是不同的应用,本实施例不对支付应用1和支付应用3之间的关系进行限定。
若支付应用1和支付应用3为相同的应用,则付款功能1和付款功能3可以是相同的功能,也可以是不同的功能。本实施例不对支付应用1和支付应用3之间的关系进行限定。
另外,若支付应用1和支付应用3为相同的应用,ID1与ID3可以相同,也可以不同。本实施例不对ID1与ID3之间的关系进行限定。
参见图5,本实施例提供的方法流程具体如下:
501:Hypervisor接收应用程序发送的访问TrustZone的访问请求;
其中,访问请求包括应用程序所在的虚拟机标识,应用程序的应用标识。
访问请求除包括上述信息之外,还可以根据应用程序的具体需要包括其他信息,例如支付金额、支付对象、支付说明、备注等。
由于Hypervisor上运行本实施例提供的方法,因此,本步骤的执行主体可以为Hypervisor。
例子1:Hypervisor获取支付应用1发送的访问请求1,访问请求1包括OS1,ID1。
例子2:Hypervisor获取即时聊天应用2发送的访问请求2,访问请求2包括OS1,ID2。
例子3:Hypervisor获取支付应用3发送的访问请求3,访问请求3包括OS3,ID3。
502:Hypervisor根据预设的第一访问策略、虚拟机标识和应用标识,确定应用程序是否能够访问TrustZone,若能够访问TrustZone,则执行步骤503,若不能访问TrustZone,则执行步骤504;
其中,第一访问策略可以自动从网络中获取,也可以通过人机接口获取,还可以通过其他方式获取,本实施例不对第一访问策略的获取方式进行限定。
由于第一访问策略可以更改,因此,若有多份第一访问策略,可以选择获取时间最近的一份访问策略,也可以根据预设规则选择指定的第一访问策略。
若预设的第一访问策略为:
策略1:企业VM(OS1)的支付应用1(ID1)有访问TrustZone的权限;
策略2:企业VM(OS1)的即时聊天应用2(ID2)没有访问TrustZone的权限;
策略3:个人VM(OS2)的任何应用程序均没有访问TrustZone的权限。
则,例子1:Hypervisor根据策略1,可以确定支付应用1能够访问TrustZone。
例子2:Hypervisor根据策略2,可以确定即时聊天应用2不能够访问TrustZone。
例子3:Hypervisor根据策略3,可以确定支付应用3不能够访问TrustZone。
503:Hypervisor将访问请求发送至TrustZone的请求响应模块;
例子1,Hypervisor将访问请求1发送至TrustZone的请求响应模块。
504:Hypervisor向应用程序反馈不能访问TrustZone的第一消息。
其中,第一消息用于描述应用程序不能访问TrustZone,其内容可以包括:不能访问的具体原因,如虚拟机没有访问TrustZone的权限,或者,虚拟机的某应用程序没有访问TrustZone的权限。
例子2:Hypervisor向应用程序反馈不能访问TrustZone的第一消息,第一消息描述企业VM中即时聊天应用2没有访问TrustZone的权限。
例子3:Hypervisor向应用程序反馈不能访问TrustZone的第一消息,第一消息描述个人VM没有访问TrustZone的权限。
另外,在实际应用中,往往会对用户身份进行验证,以防止非法用户盗用身份使用应用。因此,为了提升本实施例提供的方法的安全性,Hypervisor在执行步骤502,且确定应用程序能够访问TrustZone之后,执行步骤503将访问请求发送至TrustZone的请求响应模块之前,还可以执行如下步骤:
步骤1.1:Hypervisor获取用户信息;
其中,用户信息为使用应用程序的用户的信息;
具体的,Hypervisor可以通过如下2种方式中的一种获取用户信息:
1)当执行本实施例提供的方法的终端连接有第一用户信息采集设备,且第一用户信息采集设备可以被该终端中各模块调用时,Hypervisor调用第一用户信息采集设备获取用户信息;
2)当访问请求还包括用户信息时,Hypervisor获取访问请求中的用户信息。
例子1,Hypervisor调用第一用户信息采集设备(例如:存有用户指纹信息的U盾、指纹扫描器等)获取用户指纹信息;或者,当访问请求还包括用户信息时(例如:用户指纹信息),Hypervisor获取访问请求中的用户指纹信息。
步骤1.2:Hypervisor对用户信息进行第一验证,若第一验证通过,则执行步骤503,若第一验证不通过,则执行步骤1.3;
可按现有用户信息的验证方法,对用户信息进行验证。例如,将步骤1.1中获取到的用户指纹信息与预设的该用户的标准指纹信息进行匹配,若匹配成功,则第一验证通过,若匹配不成功,则第一验证不通过。
步骤1.3:Hypervisor向应用程序反馈不能访问TrustZone的第二消息。
其中,第二消息用于描述应用程序不能访问TrustZone,其内容可以包括:不能访问的具体原因,如身份验证没通过。
需要说明的是,本实施例及后续实施例涉及的“第一”、“第二”等来描述消息、信息采集设备、验证、和访问策略等,但“第一”、“第二”等仅用来将消息、信息采集设备、验证、和访问策略等彼此区分开,无其他实质含义。即第一消息与第二消息可以相同也可以不同,第一访问策略与第二访问策略可以相同也可以不同。
有益效果:
Hypervisor接收应用程序发送的访问TrustZone的访问请求,访问请求包括应用程序所在的虚拟机标识,应用程序的应用标识;根据预设的访问策略、虚拟机标识和应用标识,确定应用程序能够访问TrustZone;将访问请求发送至TrustZone的请求响应模块,实现了Hypervisor针对不同虚拟机标识和不同应用标识的访问权限进行灵活控制。
实施例二
针对图3所示的架构中的访问控制的装置302在TrustZone中实现的具体方式,本申请提供了一种访问控制的方法。访问控制的装置302位于TrustZone中的具体实现架构如图6所示,包括:
1)2个VM(Virtual Machine,虚拟机)。分别为个人VM和企业VM,其中,个人VM中运行支付应用3,企业VM中运行支付应用1和即时聊天应用2;
2)Hypervisor。Hypervisor用于接收到应用程序发送的访问TrustZone的访问请求后,将该访问请求转发至访问控制的装置。
3)CPU。CPU上包括TrustZone,TrustZone中包括验证模块和请求响应模块,同时,TrustZone上存储有第一访问策略。
其中,验证模块上运行有访问控制的装置,该访问控制的装置执行本实施例提供的访问控制的方法,且验证模块可以获取TrustZone存储的第一访问策略,通过第一访问策略可以对访问请求进行访问策略判断,从而实现根据不同VM和不同应用程序的访问权限进行灵活控制的技术效果;
请求响应模块,可以在接收到VM中应用程序发送的访问请求后,响应该访问请求。
除此之外,TrustZone中运行有TrustZone操作系统,TrustZone操作系统包括用于身份认证的认证模块,用于通信的通信模块等其他模板。
另外,TrustZone上还可以连接有第二用户信息采集设备,该第二用户信息采集设备仅可以被图6所示的架构中TrustZone的各模块调用,不可以被图6所示的架构中的其他模块调用。其中,第二用户信息采集设备包括但不限于:硬键盘、虹膜扫描器、刷卡器、存有用户指纹信息的U盾、指纹扫描器等。
此外,TrustZone上运行有访问控制的装置,且TrustZone上存储有第一访问策略。第一访问策略可以存储在访问控制的装置中,也可以存储在访问控制的装置外,图6仅以第一访问策略存储在访问控制的装置外为例进行展示,本实施例不对实际应用时第一访问策略的具体存储位置进行限定。
基于图6的架构,本实施例仍以图5所示实施例中涉及的3个例子为例,进行具体说明。
参见图7,本实施例提供的方法流程具体如下:
701:Hypervisor接收应用程序发送的访问TrustZone的访问请求,将访问请求转发至TrustZone的验证模块;
其中,访问请求包括应用程序所在的虚拟机标识,应用程序的应用标识。
访问请求除包括上述信息之外,还可以根据应用程序的具体需要包括其他信息,例如支付金额、支付对象、支付说明、备注等。
702:TrustZone的验证模块接收访问请求,根据预设的第一访问策略、虚拟机标识和应用标识,确定应用程序是否能够访问TrustZone,若能够访问TrustZone,则执行步骤703,若不能访问TrustZone,则执行步骤704;
若预设的第一访问策略为:
策略1:企业VM(OS1)的支付应用1(ID1)有访问TrustZone的权限;
策略2:企业VM(OS1)的即时聊天应用2(ID2)没有访问TrustZone的权限;
策略3:个人VM(OS2)的任何应用程序均没有访问TrustZone的权限。
则,例子1:验证模块根据策略1,可以确定支付应用1能够访问TrustZone。
例子2:验证模块根据策略2,可以确定即时聊天应用2不能够访问TrustZone。
例子3:验证模块根据策略3,可以确定支付应用3不能够访问TrustZone。
703:验证模块将访问请求发送至TrustZone的请求响应模块;
例子1,验证模块将访问请求1发送至TrustZone的请求响应模块。
704:验证模块向应用程序反馈不能访问TrustZone的第一消息。
验证模块可以先向Hypervisor反馈不能访问TrustZone的第一消息,Hypervisor接收到第一消息后,将第一消息转发至应用程序。
另外,在实际应用中,往往会对用户身份进行验证,以防止非法用户盗用身份使用应用。因此,为了提升本实施例提供的方法的安全性,验证模块在执行步骤702,且确定应用程序能够访问TrustZone之后,执行步骤703将访问请求发送至TrustZone的请求响应模块之前,还可以执行如下步骤:
步骤2.1:验证模块获取用户信息;
具体的,验证模块可以通过如下3种方式中的一种获取用户信息:
1)当执行本实施例提供的方法的终端连接有第一用户信息采集设备,且第一用户信息采集设备可以被该终端中各模块调用时,验证模块调用第一用户信息采集设备获取用户信息;
对于此种方式,由于第一用户信息采集设备与终端连接,且第一用户信息采集设备可以被该终端中各模块调用,若终端中某模块不安全,则可能出现通过第一用户信息采集设备采集到的用户信息在验证模块获取到之前,被该不安全模块篡改的情况,降低了验证模块获取到的用户信息的准确性。
2)当执行本实施例提供的方法的终端的TrustZone上连接有第二用户信息采集设备,且第二用户信息采集设备可以被该TrustZone中各模块调用时,验证模块调用第二用户信息采集设备获取用户信息;
对于此种方式,由于第二用户信息采集设备直接与TrustZone连接,且第二用户信息采集设备仅可以被TrustZone中的各模块调用,可以防止用户信息在验证模块获取到之前被篡改的情况发生,提升了验证模块获取到的用户信息的准确性。
3)当访问请求还包括用户信息时,验证模块获取访问请求中的用户信息。
例子1,验证模块调用第二用户信息采集设备(例如:存有用户指纹信息的U盾、指纹扫描器等)获取用户指纹信息。
步骤2.2:验证模块对用户信息进行第二验证,若第二验证通过,则执行步骤703,若第二验证不通过,则执行步骤2.3;
步骤2.3:验证模块向应用程序反馈不能访问TrustZone的第三消息。
其中,第三消息用于描述应用程序不能访问TrustZone,其内容可以包括:不能访问的具体原因,如身份验证没通过。
验证模块可以先向Hypervisor反馈不能访问TrustZone的第三消息,Hypervisor接收到第三消息后,将第三消息转发至应用程序。
有益效果:
TrustZone的验证模块接收应用程序发送的访问TrustZone的访问请求,访问请求包括应用程序所在的虚拟机标识,应用程序的应用标识;根据预设的访问策略、虚拟机标识和应用标识,确定应用程序能够访问TrustZone;将访问请求发送至TrustZone的请求响应模块,实现了验证模块针对不同虚拟机标识和不同应用标识的访问权限进行灵活控制。
实施例三
针对图3所示的架构中的访问控制的装置302在同时在Hypervisor和TrustZone303中实现的具体方式,本申请提供了一种访问控制的方法。在此种实现方式中,访问控制的装置302包括:第一访问控制子装置和第二访问控制子装置,第一访问控制子装置位于Hypervisor中,第二访问控制子装置位于TrustZone 303中,由Hypervisor和TrustZone执行双重访问策略判断,从而实现根据不同VM和不同应用程序的访问权限进行灵活控制的技术效果。
具体参见图8,该架构包括:
1)2个VM(Virtual Machine,虚拟机)。分别为个人VM和企业VM,其中,个人VM中运行支付应用3,企业VM中运行支付应用1和即时聊天应用2;
2)Hypervisor。Hypervisor上存储有第一访问策略,且Hypervisor上运行有第一访问控制子装置,该第一访问控制子装置通过第一访问策略可以对VM中应用发送的访问TrustZone的访问请求进行访问策略判断,从而进行首次访问控制;
3)CPU。CPU上包括TrustZone,TrustZone中包括验证模块和请求响应模块,同时,TrustZone上存储有第二访问策略。除此之外,TrustZone中运行有TrustZone操作系统,TrustZone操作系统包括用于身份认证的认证模块,用于通信的通信模块等其他模板。
验证模块上运行有第二访问控制子装置,该第二访问控制子装置通过第二访问策略可以对VM中应用发送的访问TrustZone的访问请求进行访问策略判断,从而进行再次访问控制。
另外,CPU上还可以连接有第一用户信息采集设备,TrustZone上还可以连接有第二用户信息采集设备。
此外,Hypervisor上运行有第一访问控制子装置,且Hypervisor上存储有第一访问策略。第一访问策略可以存储在第一访问控制子装置中,也可以存储在第一访问控制子装置外,图8仅以第一访问策略存储在第一访问控制子装置中为例进行展示,本实施例不对实际应用时第一访问策略的具体存储位置进行限定。
TrustZone上运行有第二访问控制子装置,且TrustZone上存储有第二访问策略。第二访问策略可以存储在第二访问控制子装置中,也可以存储在第二访问控制子装置外,图8仅以第二访问策略存储在第二访问控制子装置外为例进行展示,本实施例不对实际应用时第二访问策略的具体存储位置进行限定。
基于图8的架构,本实施例仍以图5所示实施例中涉及的3个例子为例,进行具体说明。
参见图9,本实施例提供的方法流程具体如下:
901:Hypervisor接收应用程序发送的访问TrustZone的访问请求;
其中,访问请求包括应用程序所在的虚拟机标识,应用程序的应用标识;
此步骤的具体实现方式与步骤501相同,详见步骤501,此处不再赘述。
902:Hypervisor根据预设的第一访问策略、虚拟机标识和应用标识,确定应用程序是否能够访问TrustZone,若能够访问TrustZone,则执行步骤904至步骤907,若不能访问TrustZone,则执行步骤903;
此步骤的具体实现方式与步骤502相同,详见步骤502,此处不再赘述。
903:Hypervisor向应用程序反馈不能访问TrustZone的第一消息。
此步骤的具体实现方式与步骤504相同,详见步骤504,此处不再赘述。
904:Hypervisor将访问请求转发至TrustZone的验证模块;
905:验证模块根据预设的第二访问策略、虚拟机标识和应用标识,确定应用程序是否能够访问TrustZone,若能够访问TrustZone,则执行步骤906,若不能访问TrustZone,则执行步骤907;
其中,第二访问策略可以与步骤902中的第一访问策略相同,也可以不同。
若预设的第二访问策略为:
策略4:企业VM(OS1)的支付应用1(ID1)有访问TrustZone的权限;
策略5:企业VM(OS1)的即时聊天应用2(ID2)没有访问TrustZone的权限;
策略6:个人VM(OS2)的任何应用程序均没有访问TrustZone的权限。
则,例子1:验证模块根据策略4,可以确定支付应用1能够访问TrustZone。
例子2:验证模块根据策略5,可以确定即时聊天应用2不能够访问TrustZone。
例子3:验证模块根据策略6,可以确定支付应用3不能够访问TrustZone。
906:验证模块将访问请求发送至TrustZone的请求响应模块;
此步骤的具体实现方式与步骤703相同,详见步骤703,此处不再赘述。
907:验证模块向应用程序反馈不能访问TrustZone的第一消息。
此步骤的具体实现方式与步骤704相同,详见步骤704,此处不再赘述。
另外,在实际应用中,往往会对用户身份进行验证,以防止非法用户盗用身份使用应用。因此,为了提升本实施例提供的方法的安全性,验证模块在执行步骤905,且确定应用程序能够访问TrustZone之后,执行步骤906将访问请求发送至TrustZone的请求响应模块之前,还可以执行如下步骤:
步骤3.1:验证模块获取用户信息;
此步骤的具体实现方式与步骤2.1相同,详见步骤2.1,此处不再赘述。
步骤3.2:验证模块对用户信息进行第三验证,若第三验证通过,则执行步骤906,若第三验证不通过,则执行步骤3.3;
步骤3.3:验证模块向应用程序反馈不能访问TrustZone的第四消息。
其中,第四消息用于描述应用程序不能访问TrustZone,其内容可以包括:不能访问的具体原因,如身份验证没通过。
验证模块可以先向Hypervisor反馈不能访问TrustZone的第四消息,Hypervisor接收到第四消息后,将第四消息转发至应用程序。
有益效果:
Hypervisor接收应用程序发送的访问TrustZone的访问请求,访问请求包括应用程序所在的虚拟机标识,应用程序的应用标识;根据预设的第一访问策略、虚拟机标识和应用标识,首次确定应用程序是否能够访问TrustZone;当Hypervisor确定应用程序能够访问TrustZone后,由TrustZone的验证模块根据预设的第二访问策略、虚拟机标识和应用标识,再次确定应用程序是否能够访问TrustZone;当验证模块确定应用程序能够访问TrustZone后,将访问请求发送至TrustZone的请求响应模块,实现了Hypervisor和验证模块针对不同虚拟机标识和不同应用标识的访问权限进行双重判断,增加了访问控制的灵活性。
实施例四
基于同一发明构思,本申请还提供了一种访问控制的装置,由于访问控制的装置解决问题的原理与图5或图7或图9所示的一种访问控制的方法相似,因此访问控制的装置的实施可以参见图5或图7或图9所示的方法的实施,重复之处不再赘述。
本申请实施例所示的访问控制装置的结构可以参见图10,所述装置包括:
接收子模块1001,用于接收应用程序发送的访问TrustZone的访问请求,访问请求包括应用程序所在的虚拟机标识,应用程序的应用标识;
第一确定子模块1002,用于根据预设的第一访问策略、虚拟机标识和应用标识,确定应用程序能够访问TrustZone;
发送子模块1003,用于将接收子模块1001接收的访问请求发送至TrustZone的请求响应模块。
参见图11,该装置还包括:
第一反馈子模块1004,用于当确定应用程序不能访问TrustZone时,向应用程序反馈不能访问TrustZone的第一消息。
可选地,第一确定子模块1002位于Hypervisor中,用于根据预设的第一访问策略、虚拟机标识和应用标识,确定应用能够访问TrustZone。
可选地,本申请实施例所示的访问控制装置,还可以包括:
第一获取子模块,第一获取子模块位于Hypervisor中,用于获取用户信息;
第一验证子模块,第一验证子模块位于Hypervisor中,用于对第一获取子模块获取的用户信息第一验证通过;
其中,用户信息为使用应用程序的用户的信息。
可选地,本申请实施例所示的访问控制装置,还可以包括:
第二反馈子模块,第二反馈子模块位于Hypervisor中,用于当第一验证不通过时,向应用程序反馈不能访问TrustZone的第二消息。
可选地,第一获取子模块,用于调用第一用户信息采集设备获取用户信息;
其中,第一用户信息采集设备所在终端中各模块调用。
可选地,访问请求还包括用户信息;
第一获取子模块,用于获取访问请求中的用户信息。
可选地,第一确定子模块1002位于TrustZone的验证模块中,用于根据预设的第一访问策略、虚拟机标识和应用标识,确定应用能够访问TrustZone。
可选地,本申请实施例所示的访问控制装置,还可以包括:
第二获取子模块,第二获取子模块位于验证模块中,用于获取用户信息;
第二验证子模块,第二验证子模块位于验证模块中,用于对第二获取子模块获取的用户信息第二验证通过。
可选地,本申请实施例所示的访问控制装置,还可以包括:
第三反馈子模块,第三反馈子模块位于验证模块中,用于当第二验证不通过时,向应用程序反馈不能访问TrustZone的第三消息。
可选地,第二获取子模块,用于调用第二用户信息采集设备获取用户信息;
其中,第二用户信息采集设备被TrustZone中各模块调用。
可选地,访问请求还包括用户信息;
第二获取子模块,用于获取访问请求中的用户信息。
可选地,第一确定子模块1002位于Hypervisor中,用于根据预设的第一访问策略、虚拟机标识和应用标识,确定应用能够访问TrustZone。
可选地,本申请实施例所示的访问控制装置,还可以包括:
第二确定子模块,第二确定子模块位于验证模块中,用于根据预设的第二访问策略、虚拟机标识和应用标识,确定应用能够访问TrustZone。
可选地,本申请实施例所示的访问控制装置,还可以包括:
第三获取子模块,第三获取子模块位于验证模块中,用于获取用户信息;
第三验证子模块,第三验证子模块位于验证模块中,用于对第三获取子模块获取的用户信息第三验证通过。
可选地,本申请实施例所示的访问控制装置,还可以包括:
第四反馈子模块,第四反馈子模块位于验证模块中,用于当第三验证不通过时,向应用程序反馈不能访问TrustZone的第四消息。
可选地,第三获取子模块,用于调用第二用户信息采集设备获取用户信息。
可选地,访问请求还包括用户信息;
第三获取子模块,用于获取访问请求中的用户信息。
有益效果如下:
接收应用程序发送的访问TrustZone的访问请求,访问请求包括应用程序所在的虚拟机标识,应用程序的应用标识;根据预设的访问策略、虚拟机标识和应用标识,确定应用程序能够访问TrustZone;将访问请求发送至TrustZone的请求响应模块,实现了针对不同虚拟机标识和不同应用标识的访问权限进行灵活控制。
实施例五
基于同一发明构思,本申请还提供了一种访问控制的系统,由于访问控制的系统解决问题的原理与图5所示的一种访问控制的方法相似,因此访问控制的系统的实施可以参见图5所示的方法的实施,重复之处不再赘述。
本申请实施例所示的访问控制系统的结构可以参见图12,该系统包括:至少一个虚拟机1201、TrustZone 1202、访问控制的装置1203;
虚拟机1201中运行应用程序,当应用程序访问TrustZone 1202时,向访问控制的装置1203发送访问TrustZone 1202的访问请求,访问请求包括应用程序所在的虚拟机标识,应用程序的应用标识;
访问控制的装置1203,用于接收访问请求;根据预设的第一访问策略、虚拟机标识和应用标识,确定应用程序能够访问TrustZone 1202;将访问请求发送至TrustZone 1202的请求响应模块;
TrustZone 1202的请求响应模块用于响应访问请求。
其中,访问控制的装置1203,还用于当确定应用程序不能访问TrustZone 1202时,向应用程序反馈不能访问TrustZone 1202的第一消息。
参见图13,该系统,还包括:Hypervisor 1204;
访问控制的装置1203,位于Hypervisor 1204中。
有益效果如下:
访问控制的装置位于Hypervisor中,可以接收应用程序发送的访问TrustZone的访问请求,访问请求包括应用程序所在的虚拟机标识,应用程序的应用标识;根据预设的访问策略、虚拟机标识和应用标识,确定应用程序能够访问TrustZone;将访问请求发送至TrustZone的请求响应模块,实现了Hypervisor针对不同虚拟机标识和不同应用标识的访问权限进行灵活控制。
实施例六
基于同一发明构思,本申请还提供了一种访问控制的系统,由于访问控制的系统解决问题的原理与图7所示的一种访问控制的方法相似,因此访问控制的系统的实施可以参见图7所示的方法的实施,重复之处不再赘述。
本申请实施例所示的访问控制系统的结构可以参见图14,该系统包括:至少一个虚拟机1401、TrustZone 1402、访问控制的装置1403;
虚拟机1401中运行应用程序,当应用程序访问TrustZone 1402时,向访问控制的装置1403发送访问TrustZone 1402的访问请求,访问请求包括应用程序所在的虚拟机标识,应用程序的应用标识;
访问控制的装置1403,用于接收访问请求;根据预设的第一访问策略、虚拟机标识和应用标识,确定应用程序能够访问TrustZone 1402;将访问请求发送至TrustZone 1402的请求响应模块;
TrustZone 1402的请求响应模块用于响应访问请求。
其中,访问控制的装置1403,还用于当确定应用程序不能访问TrustZone1402时,向应用程序反馈不能访问TrustZone 1402的第一消息。
其中,访问控制的装置1403,位于TrustZone 1402中。
有益效果如下:
访问控制的装置位于TrustZone中,可以接收应用程序发送的访问TrustZone的访问请求,访问请求包括应用程序所在的虚拟机标识,应用程序的应用标识;根据预设的访问策略、虚拟机标识和应用标识,确定应用程序能够访问TrustZone;将访问请求发送至TrustZone的请求响应模块,实现了验证模块针对不同虚拟机标识和不同应用标识的访问权限进行灵活控制。
实施例七
基于同一发明构思,本申请还提供了一种访问控制的系统,由于访问控制的系统解决问题的原理与图9所示的一种访问控制的方法相似,因此访问控制的系统的实施可以参见图9所示的方法的实施,重复之处不再赘述。
本申请实施例所示的访问控制系统的结构可以参见图15,该系统包括:至少一个虚拟机1501、TrustZone 1502、访问控制的装置1503;
虚拟机中运行应用程序1501,当应用程序访问TrustZone 1502时,向访问控制的装置1503发送访问TrustZone 1502的访问请求,访问请求包括应用程序所在的虚拟机标识,应用程序的应用标识;
访问控制的装置1503,用于接收访问请求;根据预设的第一访问策略、虚拟机标识和应用标识,确定应用程序能够访问TrustZone 1502;将访问请求发送至TrustZone 1502的请求响应模块;
TrustZone 1502的请求响应模块用于响应访问请求。
其中,访问控制的装置1503,还用于当确定应用程序不能访问TrustZone 1502时,向应用程序反馈不能访问TrustZone 1502的第一消息。
参见图16,该系统,还包括:Hypervisor 1504;
访问控制的装置1503,包括第一访问控制子装置15031和第二访问控制子装置15032;
第一访问控制子装置15031,位于Hypervisor 1504中,用于根据预设的第一访问策略、虚拟机标识和应用标识,确定应用能够访问TrustZone 1502;
第二访问控制子装置15032,位于TrustZone 1502中,用于在第一访问控制子装置15031确定应用程序能够访问TrustZone 1502之后,根据预设的第二访问策略、虚拟机标识和应用标识,确定应用能够访问TrustZone 1502;将访问请求发送至TrustZone 1502的请求响应模块。
有益效果如下:
访问控制的装置位于Hypervisor和TrustZone中,可以在Hypervisor中接收应用程序发送的访问TrustZone的访问请求,访问请求包括应用程序所在的虚拟机标识,应用程序的应用标识;根据预设的第一访问策略、虚拟机标识和应用标识,首次确定应用程序是否能够访问TrustZone;当Hypervisor确定应用程序能够访问TrustZone后,在TrustZone中根据预设的第二访问策略、虚拟机标识和应用标识,再次确定应用程序是否能够访问TrustZone;当验证模块确定应用程序能够访问TrustZone后,将访问请求发送至TrustZone的请求响应模块,实现了Hypervisor和TrustZone针对不同虚拟机标识和不同应用标识的访问权限进行双重判断,增加了访问控制的灵活性。
为了描述的方便,以上所述装置的各部分以功能分为各种模块或单元分别描述。当然,在实施本发明时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。