[发明专利]用于访问安全世界的方法、装置和系统有效
申请号: | 201710364027.2 | 申请日: | 2017-05-22 |
公开(公告)号: | CN108959916B | 公开(公告)日: | 2022-01-14 |
发明(设计)人: | 杜小强 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F21/53 | 分类号: | G06F21/53;G06F21/74 |
代理公司: | 北京龙双利达知识产权代理有限公司 11329 | 代理人: | 范华英;毛威 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 访问 安全 世界 方法 装置 系统 | ||
1.一种用于访问安全世界的方法,其特征在于,包括:
在非安全世界创建第一虚拟机;
将所述非安全世界中的多个程序加载到所述第一虚拟机中,所述多个程序包括内核和至少一个用户程序,其中,所述内核运行在第一等级的模式下,所述至少一个用户程序运行在第二等级的模式下,所述第一等级高于所述第二等级;
在确定所述至少一个用户程序中的第一用户程序需要访问安全世界时,在所述非安全世界创建运行在所述第一等级的模式下的第二虚拟机;
将所述第一用户程序从所述第一虚拟机中剥离,并加载到所述第二虚拟机,以便于所述第一用户程序通过所述第二虚拟机访问所述安全世界。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
设置虚拟化列表,以禁止所述多个程序中除所述第一用户程序之外的其他程序访问属于被剥离的所述第一用户程序的内存页。
3.根据权利要求1所述的方法,其特征在于,所述在所述非安全世界创建运行在所述第一等级的模式下的第二虚拟机,包括:
为所述第二虚拟机分配由所述第一用户程序独享的资源。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述多个程序还包括所述第一用户程序对应的代理程序,其中,在所述第一用户程序从所述第一虚拟机剥离之后,所述代理程序作为所述第一用户程序在所述第一虚拟机的代理,以触发所述内核处理需要由所述内核处理的待处理事件,其中,所述待处理事件是在所述第一用户程序在所述第二虚拟机运行时产生的。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取所述待处理事件,所述待处理事件需要由所述内核处理,且是在所述第一用户程序在所述第二虚拟机中运行时产生的;
保存所述第二虚拟机的上下文;
恢复所述第一虚拟机中所述代理程序的上下文,以用于触发所述第一虚拟机加载的所述内核对所述待处理事件进行处理。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述第一虚拟机处理完所述待处理事件之后,在所述第二虚拟机中恢复所述第一用户程序。
7.根据权利要求5或6所述的方法,其特征在于,所述待处理事件为中断事件、缺页异常事件或系统调用事件。
8.根据权利要求1至3中任一项所述的方法,其特征在于,在所述将所述第一用户程序从所述第一虚拟机中剥离之前,所述方法还包括:
确定所述第一用户程序为安全用户程序。
9.根据权利要求8所述的方法,其特征在于,所述确定所述第一用户程序为安全用户程序包括:
获取第一哈希值组和第二哈希值组,所述第一哈希值组包括至少一个第一哈希值,所述第二哈希值组包括至少一个第二哈希值,其中,
每个第一哈希值与所述第一用户程序中的至少一个数据对象中的每个数据对象一一对应,所述每个第一哈希值为数据对象的当前的哈希值;
每个第二哈希值与所述第一用户程序中的至少一个数据对象中的每个数据对象一一对应,所述每个第二哈希值是所述数据对象在出厂时的哈希值;
在所述第一哈希值组与第二哈希值组相同时,确定所述第一用户程序为安全用户程序。
10.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法由ARM处理器实现,所述第一等级的模式为特权等级EL1模式,所述第二等级的模式为EL0模式。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710364027.2/1.html,转载请声明来源钻瓜专利网。