The growing complexity of modern computing platforms and the need for strong isolation protections among their software components has led to the increased adoption of Trusted Execution Environments (TEEs). While several commercial and academic TEE architectures have emerged in recent times, they remain hard to compare and contrast. More generally, existing TEEs have not been subject to a holistic systematization to understand the available design alternatives for various aspects of TEE design and their corresponding pros-and-cons. Therefore, in this work, we analyze the design of existing TEEs and systematize the mechanisms that TEEs implement to achieve their security goals, namely, verifiable launch, run-time isolation, trusted IO, and secure storage. More specifically, we analyze the typical architectural building blocks underlying TEE solutions, design alternatives for each of these components and the trade-offs that they entail. We focus on hardware-assisted TEEs and cover a wide range of TEE proposals from academia and the industry. Our analysis shows that although TEEs are diverse in terms of their goals, usage models, and instruction set architectures, they all share many common building blocks in terms of their design.
翻译:现代计算机平台日益复杂,而且其软件组件需要强有力的隔离保护,这导致更多地采用信任的执行环境(TEEs)。虽然最近出现了若干商业和学术TEE结构,但它们仍然难以进行比较和对比。更一般地说,现有的TEE结构没有进行全面系统化,以了解TEE设计各个方面的现有设计备选方案及其相应的有利和有利条件。因此,在这项工作中,我们分析了现有TEE的设计,并系统化了TEE为实现其安全目标而实施的机制,即可核查的发射、运行时间隔离、可信赖的IO和安全储存。更具体地说,我们分析了典型的TEE解决方案的建筑构件、每个组成部分的设计替代物及其带来的权衡。我们侧重于硬件辅助TEE,并涵盖了学术界和工业界广泛的TEE建议。我们的分析表明,尽管TEE在目标、使用模式和教学设置架构方面各不相同,但它们在设计方面都拥有许多共同的建筑构件。