0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何实现TrustZone的可信执行环境来支持隐私计算呢?

Linux阅码场 来源:喔家ArchiSelf 2023-07-25 16:15 次阅读

1. 关于TrustZone

TrustZone技术是ARM公司开发的一种系统安全扩展技术。TrustZone技术的主要目标是保证嵌入式系统的安全,防止系统中的敏感数据发生安全泄漏或者系统中的关键功能遭到恶意程序的攻击。TrustZone的技术架构如下图所示:

8e1c58e4-2a03-11ee-a368-dac502259ad0.png

TrustZone通过软硬结合的方式对整个系统进行了资源划分,并将其中一部分划为安全域,另一部分划为普通域。安全域为整个系统提供相应的安全服务,既可以仅运行一个安全服务,也可以运行一个完整的操作系统;普通域则是一个传统的通用操作系统。两个执行区域之间相互独立,一般地,二者的系统运行时均不会受到对方的影响。

为确保系统内安全域和普通域之间的独立性,安全域中的敏感数据由其内部设备进行管理。支持TrustZone技术的系统在其安全域和普通域中各自拥有独立的地址映射表,使得两个执行区域内的地址转换完全独立,从而杜绝了安全域在地址转换过程中受到攻击的可能性。

1.1 TrustZone 的CPU架构

ARM处理器在实现TrustZone技术时通常会被划分为两个虚拟内核,称之为普通态和安全态,分别负责运行系统中普通域和安全域内的任务。

8e558dbc-2a03-11ee-a368-dac502259ad0.jpg

如上图所示,以ARMv8为例,系统处于普通态时,EL0中一般执行普通的用户程序;EL1中一般运行通用操作系统内核等特权软件;EL2用于实现虚拟化技术,一般运行支持虚拟化技术的相关代码。出于系统安全考虑,普通域内不存在EL3模式。当系统处于安全态时,EL0中通常运行如加密、解密等安全相关的安全服务;EL1中的软件负责为其上层应用提供支持;EL3模式具有整个系统的最高权限,一般运行系统的底层固件如用于切换执行区域的安全监控器。在安全域中,通常不存在EL2模式,但ARMv8.4发布后,开发者可以根据实际需要使用。

1.2 TrustZone 的软件架构

安全域内的应用主要负责为系统提供具体的安全服务,如敏感数据的加解密、安全储存等。可信内核主要用于支持上层应用的正常运行,负责处理安全域中的安全中断、与普通域间的通信以及为上层应用提供统一的安全接口等。

8e95c418-2a03-11ee-a368-dac502259ad0.jpg

普通域内用户空间的应用通常不会感知到TrustZone的存在,系统会通过用户空间为这些应用提供相应的接口。在执行区域间相互通信时,通常使用消息队列等方式进行,这些数据结构所处的内存被称为共享内存。由于安全域和普通域内的软件都需要对共享内存中的数据进行操作,且系统处于普通态时无法获取安全域内 的任何资源,故共享内存必须为非安全内存。

安全域内的安全服务在接收到经由可信内核处理的信息后,将处理相应请求并把结果发送到对应的共享内存,最终返回普通域。

1.3 基于TrustZone的TEE

基于TrustZone的技术特性,可信执行环境可作为一个独立的执行环境运行在ARM处理器的安全域中,并为整个系统提供灵活的安全服务。TEE标准的系统架构如下图所示。

8eba2b14-2a03-11ee-a368-dac502259ad0.jpg

其中可信执行环境由可信操作系统(Trusted OS,TOS)、可信应用(Trusted Application,TA)组成。TOS负责管理TEE内的软硬件资源以及为TA提供其运行需要的资源和接口。TA则负责为REE内的程序提供具体的安全服务。在TEE内部,TA之间也是相互独立的,除非通过特殊的API接口,否则它们无法直接访问其它TA内的资源。

2. 关于双操作系统

为同时保证系统的功能性及实时性的需求,将实时系统与非实时系统整合在同一硬件平台上可以组成双操作系统架构。在该架构中,实时系统负责处理实时任务及一些安全相关的任务,非实时系统负责处理功能相对复杂但实时性要求较低的非关键任务。双操作系统架构的性能取决于多个指标如复杂度、独立性和实时响应时间等。这些指标之间往往相互矛盾,很难达到完美。

双操作系统的实现同样有两种形式,一种是双内核操作系统,另一种基于虚拟化技术。

2.1 双内核系统

双内核系统将一个小的实时操作系统(RTOS)内核置于通用操作系统(GPOS)的底层,并把GPOS 作为该系统内的一个实时任务运行。

8ef0d6fa-2a03-11ee-a368-dac502259ad0.jpg

双内核系统具有较低的运行开销且不需要任何硬件的额外支持,但是该架构需要大幅修改GPOS的内核代码,显著降低了系统的灵活性。而且,双内核系统中RTOS和GPOS间的独立性较差,当GPOS遭到恶意攻击或其本身运行发生错误时,RTOS内的高关键度任务也会因此而无法正常运行。

2.2 虚拟化双系统

虚拟化技术将RTOS和GPOS作为两个虚拟机同时运行在同一硬件平台上,两个虚拟机由虚拟机管理器(Hypervisor)负责管理。

8f1f9fa8-2a03-11ee-a368-dac502259ad0.jpg

虚拟化使得操作系统之间具有较好的独立性,操作系统的数量也不仅限于GPOS和RTOS两个,同时,所有上层的操作系统均不需要做任何修改,具有良好的灵活性。但是该技术会为整个系统带来较大的额外开销,降低了RTOS和GPOS的性能,同时虚拟机管理器必须重新设计以满足系统实时性的要求。

3. 双操作系统支持TrustZone

利用TrustZone技术,可以在安全域内运行嵌入式实时操作系统,负责处理关键度较高的实时任务,普通域内运行Linux内核,负责处理关键度较低的通用任务。若普通域内的相关任务不需要和安全域相互通信,则Linux内核仅需要做极少量的修改,且在运行过程中将无法感知到安全域的存在,其内部程序也无法访问安全域内的任何资源,保证了安全域的独立性。若普通域中有程序需要使用安全域内提供的系统服务,可在Linux内核中添 加TrustZone驱动,该驱动将负责通过安全监控器与安全域间传递数据,普通域的用户层通常还需添加TrustZone相关的库,用于为用户程序提供TrustZone相关的API接口。

8f5e4460-2a03-11ee-a368-dac502259ad0.png

其中,安全监控器在系统中主要负责执行区域间的切换,具体包括:

(1)响应两个执行区域的指令。

(2)在通用操作系统运行期间负责响应安全中断,并将中断交由安全域中实时操作系统的中断处理程序处理。

(3)当发生执行区域间的切换时,负责保存并恢复相关上下文等具体的切换工作。

3.1 中断处理机制

系统将所有中断划分为安全中断和非安全中断,其中非安全中断由普通域的Linux负责处理,安全中断则由TrustZone 中的RTOS负责处理。

90df568a-2a03-11ee-a368-dac502259ad0.jpg

若安全域产生了非安全中断,为保证当前安全域内运行的关键任务可以正确执行,系统将暂时忽略该中断,也就是说,RTOS运行时,IRQ中断会一直处于屏蔽状态,待关键任务执行完毕,系统切换至普通域后,该中断才会由Linux负责处理。若普通域产生了安全中断,为确保安全域内关键任务的实时响应能力,系统将立刻通过安全监控器将系统切换至安全域处理中断。

3.2 调度策略

双操作系统中的调度算法需要建立合适的任务模型。为了判断系统中相应任务集的可调度性,一般需要计算所有任务的最坏响应时间。在确定了任务响应时间的分析方法后,需要一个算法为系统内所有任务分配各自的优先级。完成优先级排序后,将根据该优先级序列调度任务集中的任务运行。

一般地,可以采用两级调度策略,第一级是两个操作系统间的调度,由RTOS负责,采用固定优先级与时间片轮转相结合的调度策略。为使RTOS内的调度器可以调度Linux的运行,RTOS内部始终存在两个区域切换任务。当RTOS调度到区域切换任务时,将通过相应接口切换至Linux中运行。其中,一个任务作为RTOS的空闲任务运行;另一个任务用于降低Linux内核的响应时间,提高用户的使用体验,减小对其性能的影响。

4.小结

如果通过TrustZone 技术来实现TEE以支持隐私计算,那么,双操作系统可能是一个潜在的解决方案,同样地要处理诸如中断和调度等问题,或许,可以看作是分布式操作系统的一个特例。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 转换器
    +关注

    关注

    27

    文章

    8206

    浏览量

    141834
  • ARM处理器
    +关注

    关注

    6

    文章

    346

    浏览量

    41323
  • RTOS
    +关注

    关注

    20

    文章

    776

    浏览量

    118796
  • 虚拟机
    +关注

    关注

    1

    文章

    855

    浏览量

    27378
  • LINUX内核
    +关注

    关注

    1

    文章

    311

    浏览量

    21389

原文标题:隐私计算之TEE的双操作系统支撑

文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    RFID怎么接入可信计算平台?

    为了对无线射频识别技术进行可信计算平台的接入,我们在可信网络连接使用的协议标准基础上,设计了基于分组密码CBC 工作模式、ECB 工作模式对消息传送提供加密,并且以ECC 加强公开密钥交换所
    发表于 09-29 09:01

    介绍Cortex-A和Cortex-M的TrustZone之间的差异

    应用,数字版权保护等等,都是基于TrustZone实现保护的。其实对于底层安全技术来说,无论是哪个场景的安全要求归结到硬件上面可以分为两点,一个对数据的访问,一个是对外设的控制。TrustZ
    发表于 07-13 14:45

    如何在Arm计算平台中实现机密计算

    ) 如何在 Arm 计算平台中实现机密计算。看完本文后,您将能够:定义机密计算描述复杂的系统信任链了解Realm(机密领域)是由 Arm CCA 引入的受保护的
    发表于 08-05 14:40

    ARMv8-M trustzone IOT安全之基于Cortex-M33核的TFM测试

    Execution Environment,可信执行环境)无法运行在SPE,ARM给出了开源的TFM(Trusted Firmware-M)作为参考实现。本文编译运行TFM的代码,基
    发表于 09-14 14:41

    TSC峰会回顾04 | 异构计算场景下构建可信执行环境

    不同制程架构、不同指令集、不同功能的算力单元,组合起来形成一个混合的计算系统,使其具有更强大、更高效的功能。如何在异构计算场景下构建可信执行环境
    发表于 04-19 15:20

    了解体系结构-适用于AArch64的TrustZone介绍

    、对TrustZone的内存系统支持以及典型的软件体系结构。我们还介绍了Arm提供的资源,以帮助使用TrustZone的系统和软件开发人员。 在本指南的末尾,您将能够: •举一个TrustZo
    发表于 08-10 07:02

    异构计算场景下构建可信执行环境

    令集、不同功能的算力单元,组合起来形成一个混合的计算系统,使其具有更强大、更高效的功能。如何在异构计算场景下构建可信执行环境
    发表于 08-15 17:35

    开源机密计算平台:蓬莱-OpenHarmony

    OpenHarmony的可信执行环境,赋能OpenHarmony安全能力。那么,蓬莱-OpenHarmony主要做了哪些安全增强方面的工作,有哪些关键技术?上海交通大学助理研究员、中
    发表于 09-07 16:08

    网格服务中虚拟计算环境可信保证机制

    本文结合虚拟技术的发展和安全验证领域的相关技术,为保证网格计算中虚拟执行环境可信性,提高任务的计算质量,研究了适合于虚拟机应用
    发表于 08-04 15:34 19次下载

    可信计算平台管理中心的设计与实现

    针对能够提供可信的运行环境和服务的一种可信计算平台,文章设计并实现可信计算平台的管理和维护程序—“管理中心”;并对管理中心的工作流程和
    发表于 08-26 11:09 14次下载

    基于TrustZone的移动终端云服务安全接入方案

    可信云架构为云计算用户提供了安全可信的云服务执行环境,保护了用户私有数据的计算与存储安全.然而在
    发表于 01-13 09:59 0次下载
    基于<b class='flag-5'>TrustZone</b>的移动终端云服务安全接入方案

    环境下集合隐私计算

    多方保密计算是网络空间安全与隐私保护的关键技术,基于同态加密算法的多方保密计算协议是解决云计算安全的一个重要工具.集合隐私
    发表于 01-13 10:10 0次下载

    可信计算框架中是如何实现保密功能的

    可信计算框架(TCF)是基于可信计算API规范的开源参考实现,能让区块链开发者开发出下一代保密计算应用。
    发表于 10-17 16:43 877次阅读

    用基于英特尔® SGX 的可信执行环境有效应对大语言模型隐私和安全挑战

    、模型被攻击和知识产权被窃取等一些列隐私和安全风险或挑战。 可信执行环境(Trusted Execution Environment,以下缩写为 TEE)是一项基于软硬件组合创建安全
    的头像 发表于 07-14 20:10 338次阅读
    用基于英特尔® SGX 的<b class='flag-5'>可信</b><b class='flag-5'>执行</b><b class='flag-5'>环境</b>有效应对大语言模型<b class='flag-5'>隐私</b>和安全挑战

    喜报|易华录自研隐私计算平台通过信通院“可信隐私计算”测试

    12月20日,中国信通院在2023数据资产管理大会中公布第九批“可信隐私计算”评估测试结果, 易华录隐私计算平台V1.3(以下简称“平台”)
    的头像 发表于 12-22 19:55 461次阅读
    喜报|易华录自研<b class='flag-5'>隐私</b><b class='flag-5'>计算</b>平台通过信通院“<b class='flag-5'>可信</b><b class='flag-5'>隐私</b><b class='flag-5'>计算</b>”测试