SPE主要是提供需要安全保护的服务,例如固件更新、加解密;而NSPE则是一般使用者执行应用程序的环境。
如果在NSPE中执行的应用程序使用到secure层级的服务,则需要透过特定API来呼叫(这个概念类似操作系统的user-space和kernel-space会透过system call来沟通),这样可以限制NSPE的操作权限,避免重要机密资源外泄。
听起来有点抽象,那就来举个具体的例子吧!
应用场景
假设有一个应用场景是:一个应用程序需要使用硬件所保护的OTP(one-time programmable)securekey来进行数据的加解密。
执行流程
• 1、Task(应用程序)呼叫整合进RTOS的Crypto PSA(Platform Security Architecture)API,发出Crypto request。
• 2、TF-M core收到request,由context manager产生对应的request context(包含执行此request的stack、crypto service ID等)。
• 3、Crypto Service接收到此request,接着呼叫hardware API从OTP读取secure key并进行加解密算法。
• 4、加解密完成,Crypto Service将加解密后的结果透过context回传给Task。
如上述例子,由于重要的数据或是key仅能在SPE下存取,因此透过此构架来处理加解密需求,就能确保在NSPE执行的应用程序不会取得key。
其实这里和TFA是极其类似的思想。
全部0条评论
快来发表一下你的评论吧 !