目录
本文深入探讨了Kinibi-600a,即Trustonic的可信执行环境(TEE)的2023版本。就像我们所有的版本一样,Kinibi-600a为我们的芯片OEM和一级合作伙伴带来了新功能和增强的威胁防御。Kinibi-600的主要特点是在ARMv9芯片上支持FF-A。其他功能包括ARMv9 MTE、Cert-C Level 1合规性、QEMU SDK的Ed25519f TA签名以及直通(Pass-through)虚拟化支持。我们还提高了操作系统的健壮性、性能和可调试性。
一、介绍
通过Kinibi-600,我们满足了移动和汽车行业对健壮的安全性不断发展的需求。
在移动设备市场,我们遵循Android的要求来支持FF-A和MTE-请参阅我们关于此事的专门博客文章。Trustonic与最新版本的Android(12)、Linux(6.1)、TF-A(2.8)、Clang(12.0.1)、GCC(10.3)和QEMU(7.1)保持一致。CERT-C Level 1现在在所有组件上强制执行。在使用F2FS时,我们的安全文件系统的健壮性得到了增强。此外,调用TEEC_InvokeCommand API的性能也得到了增强。
二、增强的开发者经验
Kinibi-600现在可以使用基于QEMU的模拟器。使用我们的模拟器,您可以启动一个内置Kinibi-600和Yocto Linux的虚拟机,使用QEMU中的共享文件夹安装可信应用程序和客户端应用程序(TA和CA)。然后,您可以从Linux串行控制台运行客户端应用程序(CA),创建与TEE和TA的连接。这样可以加速每个人的TA开发。我们的专家甚至将GDB附加到QEMU内部运行的TA上。
请注意,ARMv9内存标记扩展、指针身份验证代码和分支目标识别功能在QEMU上被激活,并帮助TA开发人员在开发过程中发现错误。
Kinibi-600默认情况下包括用于可信应用程序的内存档案器。当TA完成时,内存档案器会显示TA是否有遗漏TEE_Free的内存泄漏。TA还可以要求打印堆使用情况,这样TA开发人员就可以查看TA中进行了多少次分配,以及哪个函数分配了每个缓冲区。
Kinibi-600还支持可扩展堆栈。TA总是从4KB的堆栈开始,当TA需要更多内存时,堆栈会进一步扩展。
三、加密灵活性和安全性
在Kinibi-600中,除了RSA之外,原始设备制造商还可以使用Ed25519椭圆曲线验签可信应用程序。这种现代算法由于其简单性、增强的性能和安全性而成为行业标准。Trustonic也在评估后量子密码学在TEE领域的应用。
Kinibi-600包括改进的警告机制。签名机制现在对不安全的默认密钥发出警告。此外,编译TA时会显示更多编译器警告,但不会导致构建失败。
删除了一些不太安全的选项,同时加强了TEE对无效命令的响应。
四、加速集成
Kinibi-600支持最新版本的生态系统软件。我们现在也正式支持Grub、llboot、Xen和Ubuntu 22.04。
为了支持数字版权管理对安全时间的要求,我们的Kinibi集成套件现在配备了参考实时时钟(RTC)驱动程序和相关的安全时间编程API。
我们还改进了我们的RPMB驱动程序,包含RPMB硬件的安全协议。
最后,为了支持未来的TEE用例,我们现在为UFS硬件提供了一个示例Flash驱动程序。这样,TEE可以在开机时直接使用闪存,或者在主操作系统不再工作的情况下使用闪存
五、新架构
随着处理器的不断发展,TEE的位置也发生不断的变化。传统上,Kinibi是在Trustzone内运行的可信操作系统。随着ARMv9和Trustzone内部管理程序层的发展,TEE可以在安全的虚拟机(在FF-a框架中称为安全分区)中运行。
随着正常世界中的虚拟化,我们首先看到在汽车行业采用了两个支持TEE的虚拟机。自从Kinibi-401以来,我们通过类Xen管理程序的半虚拟化来支持这一点。
自发布Kinibi-600以来,我们一直持续进化。目前Trustonic支持直接虚拟化,这意味着来自每个虚拟机的调用都直接到达TEE。这可以改进先前需要通过主机虚拟机路由TEE请求的访客虚拟机的速度。根据系统管理程序的不同,系统管理程序中可能需要一些小补丁来进行SMC过滤、内存管理和中断生成。我们将在未来几个月内将此功能与我们的汽车客户集成。
在安卓生态系统中,我们看到了虚拟化的趋势,或者说,单片操作系统的微型内核化。主操作系统非常复杂,在其中运行安全和隐私敏感的用例似乎是不可能的。Trustzone是这个问题的传统答案,即将您的用例放在TEE中的可信应用程序中。
然而,RAM、CPU功率和ARM处理器的充分发展,使得在安卓手机正常世界中使用几个虚拟机成为可能。这样,每个用例都有自己的VM。几年后,我们预计这些虚拟机也将使用ARMv9机密计算。与此同时,我们也在探索在这样一个虚拟机中运行TEE的方法。
随着RISC-V对Android的支持,我们也在研究Kinibi在RISC-V架构上的使用。
六、总结
Kinibi-600支持TEE领域所需的最新技术功能,并开启了通往新TEE架构的道路。
实际上,Kinibi-600已经使用新的FF-A架构与我们的Silicon合作伙伴进行了集成。今年夏天已经开始生产,我们预计Kinibi-600的第一款手机将在秋季发布。
同样,我们希望汽车制造商采用Kinibi-600,因为它比Kinibi-520和Kinibi-510有了改进,而且Kinibi-600的寿命很长!
参考: