1、软件架构
最近在需要设计一个CA,虽然学习了一些相关的方面。但是做设计的时候,对于调用关系还是因为缺乏宏观的架构认识,做的时候就还是很不顺畅。这里先来瞅瞅。
要使用OP-TEE来实现特定的安全功能就需要开发者根据自己的实际需求开发特定的CA和TA程序,并将TA集成到OP-TEE中。
CA端负责实现在RTOS端userspace层面的对外接口,而TA端的代码则是在OP-TEE OS的userspace层面负责实现具体的安全功能,例如使用何种算法组合来对数据进行安全处理,对处理后的数据的安全保存,解密加密数据等等功能。
(CA和TA都是用户层的)
下图为系统中CA与TA之间执行的软件框图。
借助OP-TEE来实现特定安全需求时,一次完整的功能调用一般都是起源于CA,TA做具体功能实现并返回数据到CA,而整个过程需要经过OP-TEE的client端接口,OP-TEE在Linux kernel端的驱动,Monitor模式下的SMC处理,OP-TEE OS的thread处理,OP-TEE中的