最经一直想在传统的安卓手机上使用传统android内核和安全seL4内核并行的架构,将安全性能要求高的应用和操作转移到seL4上去执行,从而提升系统的安全性。今天偶然发现TrustZone这个机制,顿时有种相见恨晚的感觉。
首先说说什么是TrustZone,TrustZone实质上就是在原有的os的基础上通过虚拟化技术虚拟出两个独立的核,一个非安全内核(Non -secure,NS)和一个安全内核(secure,S)。每个物理的处理器核提供两个虚拟核,一个是非安全核(Non-secure, NS),另一个是安全核(Secure, S)。在ARM体系中很多硬件资源(CPU核、TLB等)都是双份的,每个虚拟核独享自己的那份资源,大大简化了软件设计。在这二者之间切换的机制叫做monitor模式。NS核只能访问NS的系统资源,而安全核能访问所有资源。对于一些对于安全性要求高的程序我就可以用安全内核执行,对于密码等的机密信息我可以存放在安全内核的地址空间中。这样就可以避免恶意软件在程序运行时进行敏感数据的窃取以及一些破坏行为。