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

相关推荐
IT小白杨2 天前
指纹浏览器安全架构技术评测与API自动化能力对比
经验分享·安全·自动化·业界资讯·安全架构·指纹浏览器
zzq77974 天前
加固包闪退四象限定位:targetSdk 与保护策略实战解析
android·安全·安卓·安全架构
zzq77975 天前
Android 16 API 36 升级后 APP 加固兼容性问题解析
android·开发语言·安全·kotlin·安卓·安全架构
sbjdhjd7 天前
SQL 注入零基础详解:原理、手工注入流程与 Sqli-Labs 靶场实战1~5关和第9关思路
数据库·sql·计算机网络·web安全·网络安全·网络攻击模型·安全架构
X7x511 天前
攻防对抗的结构化思维:深度拆解网络杀伤链(Kill Chain)与现代防御演进
网络安全·网络攻击模型·安全架构·网络杀伤链·kill chain
小码哥哥11 天前
本地部署企业AI知识库的技术实现与安全架构深度分析
人工智能·安全·安全架构
XiaoLin laile15 天前
数据主权争议下,私有化即时通讯的安全架构升级
私有化部署·安全架构·企业im·数据主权·即时通讯安全
NOVAnet202315 天前
SASE 架构如何为本地 DeepSeek 大模型提供全域网络安全支撑
web安全·安全架构·sd-wan·sase·零信任访问
XiaoLin laile15 天前
政企私有化视频会议安全架构:从功能可用到安全可控
安全架构·国密加密·私有化视频会议·网络隔离·运维管控
米尔的可达鸭16 天前
深入操作系统 Socket 底层:套接字控制块、FD映射、阻塞IO核心完整实现
arm开发·数据结构·websocket·网络协议·算法·架构·安全架构