引言
随着实时系统在关键任务领域的广泛应用,如工业控制、航空航天等,确保实时系统的可靠性和安全性变得至关重要。“可信实时执行环境”(Trusted Real-Time Execution Environment,TRTEE)正是为解决这一问题而提出的概念和技术框架。实时Linux作为一种成熟的实时操作系统,在构建TRTEE方面也做出了积极的探索和实践。
TRTEE(可信实时执行环境)简介
“可信实时执行环境”旨在为实时任务提供一个可靠、安全、隔离的执行环境,确保实时任务能够按时得到执行,并规避硬件和软件故障、恶意攻击等影响。TRTEE通常包括以下几个关键特性:
- 时间和空间隔离
- 访问控制和资源分配
- 健壮性和容错性
- 安全启动和远程证明
TRTEE(可信实时执行环境)的关键技术实现
实现TRTEE需要综合运用多种技术手段,从硬件、系统软件到应用层面全方位构建可信执行环境。TRTEE技术实现的系统框架如下图所示:
图1 TRTEE技术框架
下面分层次介绍TRTEE的关键技术:
1.硬件层技术
- 硬件虚拟化支持
现代CPU提供了诸如Intel VT-x、AMD-V等硬件虚拟化扩展,可以支持高效的硬件虚拟化,从硬件层面实现虚拟机之间的隔离。
- 可信执行环境
芯片级的可信执行环境(TEE)技术(如Intel TXT、ARM TrustZone等)以及TPM芯片,为操作系统和应用程序提供了硬件级的完整性检查和远程证明机制。
- 实时支持
一些新的硬件技术(如Intel Cache Allocation Technology)为实时任务的执行提供了更好的支持,有助于提升TRTEE的实时性能。
2.系统软件层技术
- 虚拟化技术
虚拟化技术如KVM(基于Linux内核)、Xen等hypervisor,可以在单个物理平台上运行多个相互隔离的虚拟机,每个虚拟机承载一个TRTEE实例。
- 实时操作系统
实时操作系统(如RT-Linux)具备实时调度、资源管理等关键能力,是构建TRTEE的基础。PREEMPT_RT等实时内核补丁可以增强Linux内核的实时性。
- 安全框架
操作系统内置的安全框架(SELinux、AppArmor等)可以为TRTEE提供细粒度的访问控制和沙盒隔离。IMA、EVM等完整性验证模块可以保护操作系统和应用程序的完整性。
- 容器和Namespace
Linux容器(LXC/Docker等)、Namespace等技术为TRTEE提供了进程、网络、文件系统等方面的资源和环境隔离。
- 实时虚拟化调度
实时虚拟化管理程序(RT-VMM)可以对虚拟机和虚拟CPU进行实时调度,保证实时任务在虚拟环境中的执行时间约束。
3.应用层技术
- 实时应用程序
关键实时任务作为TRTEE内的应用程序运行,如工业控制系统、航空航天任务等。这些应用程序需要经过全面的安全性和可靠性检测和强化。
- 监控与容错
实时任务监控机制可以持续跟踪任务的运行情况,一旦发生异常可以立即触发容错机制,如任务重启、故障隔离、主备切换等。
- 安全通信
TRTEE内的实时任务需要通过加密的通信渠道与外部系统交互,确保数据的机密性和完整性。可利用加密协议栈、VPN等技术。
- 远程证明和管理
基于硬件根证书和操作系统安全启动链,TRTEE可以进行远程完整性核查。同时也可以通过远程管理控制台对TRTEE进行部署、配置和监控。
实时Linux的TRTEE(可信实时执行环境)实现
Linux可以通过集成多种技术和机制来实现TRTEE(可信实时执行环境),具体包括:
- 实时内核补丁PREEMPT_RT
PREEMPT_RT为Linux内核添加了实时性增强,引入了优先级继承、高精度计时器、可抢占核心等机制,确保关键实时任务能够得到优先响应和执行。这是构建TRTEE的核心基础。
- 虚拟化支持
实时Linux支持基于KVM的硬件虚拟化,可以在单个物理机上运行多个相互隔离的虚拟机实例,每个虚拟机承载一个TRTEE环境,有助于实现故障隔离和容错。
- Linux安全模块
- SELinux及其最小权限原则为TRTEE提供了必要的访问控制和沙箱隔离
- IMA(Integrity Measurement Architecture)和EVM(Extended Verification Module)用于检测和防范对系统和应用程序的恶意修改,保护完整性。
- 资源和环境隔离
- cgroups和namespaces等Linux内核特性,可以为TRTEE的实时任务提供CPU、内存、网络等资源的隔离。
- 容器技术如Docker在隔离层面进一步增强。
- 可信启动链和远程证明
利用TPM芯片、DRTM等可信执行技术,实时Linux可以建立从硬件到应用层的完整可信启动链,并允许进行远程完整性验证,确保TRTEE环境未被篡改。
- 实时虚拟化管理程序(RT-VMM)
一些项目如Quest-V、RT-XEN等,为实时虚拟化环境提供了实时虚拟CPU调度、带宽预留等增强,进一步提升了TRTEE中实时任务的可预测性。
- 实时任务监控与容错机制
TRTEE中运行的关键实时任务需要配套的监控和容错机制,一旦发现异常可及时隔离、重启或切换备份实例,确保服务的连续性。