本说明书一个或多个实施例涉及可信区技术,尤其涉及一种在可信区架构中提供可信执行环境的方法、装置和设备。
背景技术:
1、由于信息技术的迅速发展和普及,当今社会进入了大数据时代,网络空间中的数据信息每天都在呈爆炸式增长。需要加强数据保护和隐私保护的措施,以促进数据的良性流通和开放共享。为了同时保证数据的可流动性和安全性,提出了可信执行环境的概念。可信执行环境(trusted execution envi ronment,tee)通过基于硬件的加密或隔离在中央处理器cpu中构建一个安全的区域,保护其中的程序和数据的机密性和完整性,防止程序的执行过程被恶意软件或攻击者所干扰和破坏。它能够提供一种安全的计算环境,保护敏感数据不被泄露或篡改,同时也可以有效地防止黑客攻击和恶意软件的入侵。可信执行环境能够提供硬件级别的安全保障,使数据处理更加安全和可靠。
2、目前,使用较广的商业可信执行环境解决方案主要有intel的software guardextensions(sgx)和arm的trustzone,以及amd的secure encrypted vi rtual ization(sev)。这三种可信执行环境技术都拥有自己独特的隔离技术和安全特性,并且都已经被应用于各种场景中。其中,arm trustzone即可信区技术,主要应用于移动设备和嵌入式系统领域。市面上绝大部分智能手机和平板电脑都采用了arm架构的处理器,并且在智能家居、智能穿戴、工业自动化等领域,arm架构处理器也得到了广泛的应用。
3、虽然trustzone为应用程序提供了有助于提高安全性的可信执行环境,以及一些基本的安全服务,但大多数应用程序实际上无法利用trustzone的安全特性,因为trustzone对第三方应用程序开发者来说有许多使用限制。trustzone是为供应商而不是第三方应用程序开发者设计的。如果应用程序开发人员想把他们的敏感代码放入trustzone,他们必须与供应商合作。并且需要开发人员有足够的前置知识并且需要投入大量的开发精力,否则就会产生漏洞,导致隔离环境的安全性被破坏。
4、应用程序的迅猛发展重塑了安全领域对可信执行环境的需求,可信执行环境的研究趋势逐渐从以前由供应商控制的封闭式可信执行环境过渡到开放式可信执行环境,这种可信执行环境可以托管来自多个来源且具有独立任务的可信应用程序。2019年,arm提出了机密计算架构(confident ia l comput ing arch itecture,cca),通过为开发者提供隔离的领域(rea lm)来解决这个问题。然而,cca需要使用复杂的虚拟化技术来隔离rea lm,这会导致大量的性能和内存开销,从而限制了它在资源受限的移动和嵌入式设备中的可用性。此外,cca尚未在现实世界中得到广泛部署,规范的不成熟和新旧软硬件之间的兼容性问题导致cca的广泛应用可能需要数年时间。因此,亟需更加高效和轻量级的解决方案,来满足第三方开发者对于移动和嵌入式设备的安全需求。
技术实现思路
1、本说明书一个或多个实施例描述了一种基于可信区架构提供可信执行环境的方法及装置,能够基于已有的可信区架构,高效灵活地为第三方应用提供可信执行环境。
2、根据第一方面,提供一种基于可信区架构提供可信执行环境的方法,所述可信区架构包括,安全世界和非安全世界;其中非安全世界中运行有主机操作系统os,安全世界运行有安全监视器,所述安全监视器包括,内存保护器和沙盒管理器,所述方法包括:
3、响应于沙盒创建请求,所述主机os为第一沙盒分配第一内存区段;
4、所述内存保护器对运行主机os的cpu核所使用的第一页表进行第一更新,使得更新后的第一页表中不包含对所述第一内存区段的映射;
5、所述内存保护器创建第二页表,并将其设置为运行所述第一沙盒的cpu核使用的页表;其中所述第二页表中仅包含对所述第一内存区段的映射;
6、所述沙盒管理器启动所述第一沙盒,运行第三方部署在其中的目标应用,为目标应用提供可信执行环境。
7、根据第二方面,提供了一种基于可信区架构提供可信执行环境的装置,所述可信区架构包括,安全世界和非安全世界;所述装置包括,运行于非安全世界的主机操作系统os,运行于安全世界的安全监视器,所述安全监视器包括内存保护器,沙盒管理器,其中:
8、所述主机os配置为,响应于沙盒创建请求,为第一沙盒分配第一内存区段;
9、所述内存保护器配置为,对运行主机os的cpu核所使用的第一页表进行第一更新,使得更新后的第一页表中不包含对所述第一内存区段的映射;
10、所述内存保护器还配置为,创建第二页表,并将其设置为运行所述第一沙盒的cpu核使用的页表;其中所述第二页表中仅包含对所述第一内存区段的映射;
11、所述沙盒管理器配置为,启动所述第一沙盒,运行第三方部署在其中的目标应用,为目标应用提供可信执行环境。
12、根据第三方面,提供了一种计算设备,包括存储器和若干处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
13、在本说明书实施例提供的方案中,在正常世界中创建若干沙盒,用于部署第三方应用。通过安全监视器中的内存保护器为运行不同环境的不同cpu核提供不同的内存页表视图,强制沙盒与主机操作系统隔离执行。关于外设的使用,smmu管理器通过将smmu的管理转移到安全监视器,确保主机操作系统无法利用外设发起dma攻击,内存保护器通过页表设置确保不同环境对外设的独占访问权。如此,以轻量级的沙盒环境的方式,为第三方应用提供可信执行环境。
1.一种基于可信区架构提供可信执行环境的方法,所述可信区架构包括,安全世界和非安全世界;其中非安全世界中运行有主机操作系统os,安全世界运行有安全监视器,所述安全监视器包括,内存保护器和沙盒管理器,所述方法包括:
2.根据权利要求1所述的方法,其中,所述安全监视器还包括smmu管理器;所述方法还包括:
3.根据权利要求2所述的方法,在所述第一沙盒请求使用第一外设之前或之时,所述第一外设由所述主机os使用;所述方法还包括:
4.根据权利要求1所述的方法,其中,所述第一页表和第二页表为二阶段地址转译机制中的第二阶段页表。
5.根据权利要求1所述的方法,其中,所述内存保护器创建第二页表,并将其设置为运行所述第一沙盒的cpu核使用的页表,包括:
6.根据权利要求1所述的方法,其中,在启动所述第一沙盒之前,所述方法还包括:
7.根据权利要求1所述的方法,其中,所述主机os内核中包括用于创建沙盒的创建内核模块,所述沙盒创建请求通过调用所述创建内核模块而发出。
8.根据权利要求1所述的方法,其中,所述主机os内核中包括用于结束沙盒的结束内核模块;所述方法还包括:
9.根据权利要求8所述的方法,其中,清除第一沙盒的沙盒数据,包括:
10.一种基于可信区架构提供可信执行环境的装置,所述可信区架构包括,安全世界和非安全世界;所述装置包括,运行于非安全世界的主机操作系统os,运行于安全世界的安全监视器,所述安全监视器包括内存保护器,沙盒管理器,其中:
11.根据权利要求10所述的装置,其中,所述安全监视器还包括smmu管理器;
12.根据权利要求11所述的装置,在所述第一沙盒请求使用第一外设之前或之时,所述第一外设由所述主机os使用;
13.一种计算设备,包括存储器和若干处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-9中任一项所述的方法。
