Ethan.Zhang · 11月3日

Arm的TrustZone, CryptoCell, 以及Cryptoisland到底什么关系?

        上周参加2019年中国(上海)嵌入式系统安全论坛期间,朋友发来一个问题:“Arm的TrustZone,CryptoCell,以及Cryptoisland分别什么定位,区别是什么”,然后昨天又有收到两个类似的问题,发现如果不是十分了解Arm Security IP产品的话,可能确实容易混淆,这次借offsite meeting空挡时间向大家一起介绍下,三者之间到底是什么关系。
        TrustZone是Arm架构的一个安全扩展,现在Armv7-A、Armv8-A,以及Armv8-M都是支持的,实现CPU时可以选择是否实现这个安全扩展,现在Arm设计的所有的Cortex-A,以及所有的Armv8-M的CPU都是实现了这个安全扩展。
                                                                      TrustZoneTechnology.JPG
       当客户设计SoC时如果用带TrustZone的CPU,也可选择是否使能TrustZone。但是使用带TrustZone的CPU,并不是就意味着SoC就支持TrustZone,因为TrustZone是个系统级别的安全方案,包括硬件和软件。那么即使硬件上支持了TrustZone,也需要软件来配合,例如国内外有很多Secure OS,Secure Service公司提供专业服务。那么一个SoC如果要支持TrustZone,硬件上主要包含了三部分:CPU,TrustZone System IP,TrustZone Security IP。现在所有的Cortex-A的CPU,和所有Armv8-M的CPU都是实现TrustZone安全扩展的;那么除了CPU以外,还需要有System IP的支持,例如Bus,GIC,SMMU, Coresight,TZASC等,如果选用Arm的IP都是天生支持的,如果是自己实现的话,需要考虑实现安全扩展。
               TBSA-A.JPG

        Security IP也是TrustZone系统中非常重要的一部分,其中CryptoCell就是其中一个Security IP,也通过FIPS认证,CryptoCell 有两个系列,分别是CryptoCell 700系列和CryptoCell 300系列,CryptoCell 700系列主要是真对一个些高性能的安全产品,一般是与Cortex-A CPU配合使用,CryptoCell 300系列主要是针对低功耗的产品,一般是跟Cortex-M的产品配合使用。
CryptoCell7xx&3xx.JPG
        这个要提别强调的CryptoCell不是Crypto Engine,是一个综合安全IP,这里也是客户问的最多的地方,说哪家的加速器面积又小,价格又便宜,因为那只是个加解密引擎,离安全的方案还差非常远。CryptoCell的定位是支持TrustZone,并且符合Arm TBSA,TBBR,TZMP的安全设计要求,也是目前市场上支持TrustZone最完善的Security IP。CryptoCell 支持常用的加解密算法,也支持国密,它能够与Arm Secure debug完美结合来管理SoC的不同调试权限,并支持TRNG,秘钥存储和管理,key provisioning来简化产线流程,支持生命周期管理限制不同的状态的访问权限,也支持防回滚攻击,具备安全的timer,同时提供secure lib集成到客户方案来实现secure boot和secure update等功能。CryptoCell有非常完善的生态,已经与很多主流的Secure OS进行了集成,大大简化开发流程并提高效率,现在CryptoCell已经运用到非常多的领域。当然如果SoC不使能trustzone,也可以使用CryptoCell。
CryptoCell.JPG

         Cryptoisland是2017年Arm发布的另外一个Security IP系列,跟CryptoCell有非常大的不同,CryptoCell可以认为SoC里面一个Slave,由CPU来调用才能工作。Cryptoisland可以认为是Subsystem,包含了一个可以防物理攻击的Secure CPU,有单独Bus,单独的timer,ROM,SRAM,甚至可以把CryptoCell312集成到Cryptoisland内部提供安全服务,隔离程度更高,通过后端防护,可以达到CC EAL4+,配合TrustZone可以支持更高安全要求的应用,例如支付、交通卡、SIM、Strongbox,eID等应用,已经被一些想引导安全大厂所采用,提供高安全应用和服务。
                                     Cryptoisland.JPG
        总结来说,TrustZone是系统安全方案,Crytocell是这个TrustZone系统安全的重要的部分,Cryptoisland是针对高安全的应用需求,配合TrustZone系统提供高附加值安全服务。安全不复杂,只要能发现问题,总能够想办法去解决,难点在于不知道潜在的安全需求对系统有哪些安全要求。我们提供提供TrustZone,CryptoCell,Crytoisland就是简化安全需求分析和架构定义,让大家可以更聚焦于高附加值的服务。

        上述只是个人见解,会持续更新,如果有问题,欢迎随时沟通,同时附上offsite的美图。
WeChat Image_20191103162804.jpg

2 阅读 629
推荐阅读
0 条评论
目录
qrcode
关注微信服务号
实时接收新的回答提醒和评论通知