optee RPC

RPC (Remote Procedure Call) are requests from secure world to kernel driver or tee-supplicant. An RPC is identified by a special range of SMCCC return values from OPTEE_SMC_CALL_WITH_ARG. RPC messages which are intended for the kernel are handled by the kernel driver. Other RPC messages will be forwarded to tee-supplicant without further involvement of the driver, except switching shared memory buffer representation.
https://www.kernel.org/doc/html/next/tee/op-tee.html

RPC 是从 secure world 向 内核驱动程序 或 tee-supplicant 发出的请求。RPC由来自OPTEE_SMC_CALL_WITH_ARG 的一组特殊的SMCCC返回值来标识。用于内核的RPC消息由内核驱动程序处理。除了切换共享内存缓冲区表示外,其他RPC消息将被转发到tee-supplicant,而无需驱动程序进一步参与。


https://blog.csdn.net/shuaifengyun/article/details/73061002

驱动获取来自TEE侧的请求

当libteec调用了需要做smc操作的请求之后,最终会调用到驱动的optee_do_call_with_arg函数,该函数会进入到死循环,第一条语句就会调用smc操作,进userspace的请求发送到secure world,待从secure world中返回之后。会对返回值进行判定。如果返回的res.a0参数是需要驱动做RPC操作,则该函数会调用到optee_handle_rpc操作。经过各种参数分析和函数调用之后,程序最后调用 optee_supp_thrd_req 函数来将来自TEE的请求放到tee_supplicant 的请求队列中。

tee_supplicant从驱动中获取TEE侧的请求

tee_supplicant进程,在 process_one_request 函数阻塞等待TEE的请求并处理。在tee_supplicant会调用read_request函数来从驱动的请求队列中获取当前存在的来自TEE的请求。该函数最终会调用到驱动中的 optee_supp_recv 函数,进入到loop循环中,从驱动的请求消息队列中获取来自TEE中的请求,直到获取之后才会跳出该loop。

驱动返回请求操作的结果给TEE侧

当tee_supplicant执行完TEE请求的操作之后,会调用write_response函数来实现将数据返回给TEE。而write_response函数最终会调用到驱动的optee_supp_send函数。该函数主要是调用complete(&req->c);操作来完成对该请求的c成员的置位,告诉optee_supp_thrd_req函数执行下一步操作,返回到optee_do_call_with_arg函数中进入该函数中的下一轮loop中,调用smc操作将结果返回给TEE侧。optee_supp_send 函数的内容如下:

//todo

相关推荐
欢璃2 天前
修电脑日志--电脑开机黑屏只有光标闪
windows·安全·电脑·安全架构
胡耀超4 天前
大数据平台安全指南——大数据平台安全架构全景:从认证授权到数据治理的企业级实践指南——认证、授权、审计、加密四大支柱
安全·数据治理·数据安全·权限管理·安全架构·hadoop生态·合规审计
半夏知半秋8 天前
skynet.newservice接口分析
笔记·后端·学习·安全架构
合作小小程序员小小店13 天前
Web渗透之一句话木马
web安全·网络安全·安全威胁分析·安全架构·安全性测试
Allen_LVyingbo14 天前
人工智能赋能传统医疗设施设备改造:路径、挑战与未来展望
信息可视化·健康医疗·ai编程·安全架构
weixin_3077791320 天前
通过AWS IAM Policy Simulator进行权限验证和模拟测试
运维·系统安全·aws·安全架构·安全性测试
Whoami!23 天前
⸢ 陆 ⸥ ⤳ 可信纵深防御:整体架构
网络安全·信息安全·安全架构
半夏知半秋25 天前
skynet.dispatch与skynet.register_protocol
笔记·后端·学习·安全架构
zz-zjx1 个月前
堡垒机安全架构:从零搭建企业级防护(单节点版)
安全·ssh·安全架构
Whoami!1 个月前
⸢ 肆-Ⅰ⸥ ⤳ 默认安全建设方案:c-1.增量风险管控
网络安全·信息安全·安全架构·风险控制