TrustZone系统的安全需求

嵌入式系统中,安全有着多种不同的含义。在一般的系统中,安全包含但不限于以下几个部分:

  • 通信保护:它主要是避免传输的数据被侦听或者未授权访问,一般是通过加密等技术实现。
  • 数据保护:防止存储在设备的数据被非法访问。
  • 固件保护:防止设备的固件被非法逆向。
  • 操作保护:防止设备被恶意操作。
  • 篡改保护:很多的安全设备都会集成防篡改模块,用于防止设备被恶意篡改。

而TrustZone则实现了以下一些安全功能:

  • 数据保护:安全敏感的数据可以放在安全空间,只能通过安全固件访问。非安全软件只能通过API的形式经过鉴权后访问这些数据。
  • 固件防护:最开始的固件是存储在安全空间的,所以可以防止固件被逆向。ARMv8-M的TrustZone还提供一些额外的保护措施,比如器件层的读出保护,可以和TrustZone结合保护最终的固件信息。
  • 操作保护:一些关键的操作可以放到安全固件里面之行,另外一些关键的安全模块可以设置为安全模式访问,这样就可以实现对一些操作的安全防护。
  • 安全启动:安全启动提高了整个平台的安全性,因为系统总是会从安全空间启动。

TrustZone实际上只是安全和非安全两种空间之间的一个屏障,因此有些安全需求是无法通过TrustZone实现的,比如:
-通信保护:通信涉及的数据依然需要进行加密保护,加密通过软件或者硬件加速器实现。TrustZone可以辅助这些功能的实现,比如可以设置加密软件或者硬件加速器只能通过安全固件访问。
-防篡改保护:如有必要,产品中还需要针对防篡改要求进行特殊系统设计和板级设计。

总之,TrustZone提供了一个更加安全的系统保护平台。下面是一个最简单的保护系统固件的例子:

系统固件防护

很多微处理器已经集成了例如USB或者蓝牙这样的协议栈固件,这样TrustZone就可以为这些固件提供一种更为安全的访问,也可以保护这些固件,防止不被信任的软件跳过一些必要的初始化和鉴权步骤。

IoT产品的安全

在IoT产品中,TrustZone可以作为新的安全特性添加到下一代的IoT产品中,比如IoT应用中可以将一些安全相关的特性通过TrustZone加以保护。
添加TrustZone功能之后,可以限制安全相关的功能只能通过API的形式以固定的函数入口访问:

IoT中的TrustZone

通过使用TrustZone技术,软件设计者可以实现:

  • 防止非信任软件直接访问受保护的敏感资源
  • 保证只有通过鉴权之后才能下载Flash固件
  • 防止固件被工程逆向
  • 实现软件层面的敏感信息存储

无线通信中的安全需求

在某些特殊的应用场景,比如包含无线模块的SoC,它一般会内建一个认证过的无线协议栈,TrustZone可以保护协议栈只能通过API的形式访问,从而保证用户的应用必须使用认证操作。

无线通信中的TrustZone

发表新评论