可信执行环境
发布日期:2021-06-28 22:53:21 浏览次数:2 分类:技术文章

本文共 2265 字,大约阅读时间需要 7 分钟。

文章目录

paper: Trusted Execution Environments: Properties, Applications, and Challenges

软件攻击在近几十年都是一个挑战,操作系统内核作为第一道防线,通过进程隔离对软件提供了一定程度的保护。然而内核本身的漏洞、侧信道攻击、物理攻击可以无视进程的隔离对软件进行攻击。

为了提供更强的软件间的隔离(包括操作系统的隔离),一些基于硬件的解决方案被提出,主要有TPMs(Trusted Platform Modules)、HSMs(Hardware Security Modules)、SEs(Secure Elements)、TEEs(Trusted Execution Environments)。

TPMs是一个复杂的、安全的与个人设备绑定的密码处理器(cryptoprocessor),提供秘钥生成、加密、可信的完整性测量(证明,attestation),但是不提供软件级别的隔离。

HSMs支持敏感代码的执行,不与个人设备绑定,作为插件/外设提供服务。

SEs以协处理器(coprocessor)的方式实现了HSMs的功能,性能较低,受生产厂商限制。

TEEs与SoC(System of Chip)集成,可以提供比前几种方案更加灵活的密码学原语、隔离执行功能,受工业界推荐。

在这里插入图片描述

工业界

Intel SGX:Protecting Apps in User Space

英特尔于2015年提出SGX,假设任何软件(包括操作系统)、甚至一些硬件都是不可信的,因此SGX的TCB只包含CPU和它的微指令。在SGX中,TEE的实例叫做飞地(enclaves),用于在用户空间执行敏感的程序代码,与可能恶意的操作系统、虚拟机监视器隔离。在飞地启动时,验证飞地代码和数据的完整性。当飞地运行时,与主进程共享虚拟地址空间。飞地的内存管理完全由不可信的操作系统负责,操作系统还为飞地提供异常处理和输入输出服务。使用硬件特性保护飞地的代码和数据不被主进程、操作系统访问。 英特尔在设计SGX的时候没有考虑侧信道攻击。

AMD SEV: Moving to the Cloud

AMD于2017年提出了自己的TEE, SEV,与英特尔的SGX采用了完全不同的方法。

SEV为云而设计,为密集计算提供更好的性能,并对运行在支持SEV的虚拟机上的软件透明。

SEV使用秘钥加密VM达到隔离VM的目的,秘钥只能由硬件访问,因此hypervisor或者VM外其他软件无法干扰加密。 相比于SGX飞地的实现使用了内存管理单元,SEV使用了Secure Memory Encryption(SEM)来加密VM内存保护防止物理攻击和特权软件攻击。SME是一个透明的硬件内存加密特性,在数据进入内存前对其加密,加载如cache前解密。

在设计上同样没有考虑侧信道攻击。

ARM TrustZone: Protecting Mobile Devices

早在2004年ARM就提出了TrustZone,实现了在移动设备上的TEE安全架构。

TrustZone将系统分为两个世界:正常世界(包含不可信的商业操作系统和所有的非敏感应用),安全世界(包含敏感程序(Trusted Apps, TAs)和可信操作系统(Trusted OS,TOS))。TOS为TA提供进程的隔离和服务。

与SGX和SEV不同的是,TrustZone只支持一个TEE实例。

通过将外设的驱动程序放入TOS,TrustZone可以从外设到敏感程序建立安全的通信通道,设置允许安全的直接内存访问(DMA)。

TrustZone最核心的idea—世界切换,在特权登记最高的软件模块(可信固件, Trusted Firmware, TF)实现,TF也负责两个世界的通信。

TrustZone不支持cache partitioning,因此无法抵御侧信道攻击。

TrustZone最大的不足是只支持一个TEE,因此设备提供商与每一个软件开发者需要建立信息关系,成本较高,限制了一些安全移动服务的开发。

学术界

由于工业界的SGX和TrustZone都无法防御侧信道攻击,学术界分别提出了Sanctum和Sanctuary对二者进行了改进。

Sanctum: Extending Enclave Protection

Costan等人于2016年为RISC-V架构提出Sanctum安全架构,相比SGX,通过memory page coloring实现了cache partitioning,提供了cache侧信道攻击的防御。

  1. 每个飞地管理自己的页表。

Sanctuary: Providing Multidomain Security

由于TrustZone的限制(只支持一个TEE?),Brasser等人于2019年提出Sanctuary,为基于ARM的设备提供了任意数量的TEE,可以抵御cache侧信道攻击。

Sanctuary不支持硬件cache partitioning,但是对于敏感程序的软件cache侧信道攻击可以防御:启动飞地的时候flushing core-exclusive cache,从共享的LLC(last-level cache)中移除数据和代码。

总结

TEE本质上是资源共享和隔离之间的tradeoff,资源共享提高了系统性能,但是共享意味着安全问题,隔离可以提高安全性,但是会降低系统性能。

转载地址:https://blog.csdn.net/yijiull/article/details/106200796 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:容器安全问题综述
下一篇:Linux脚本初步

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月14日 05时07分02秒