optee共享内存shadow buffer的作用

【问题】

typedef struct {
    void *buffer;
    size_t size;
    uint32_t flags;
    /*
     * Implementation-Defined
     */
    int id;
    size_t alloced_size;
    void *shadow_buffer;
    int registered_fd;
    union {
        bool dummy;
        uint8_t flags;
    } internal;
} TEEC_SharedMemory;

有人知道这个optee定义的共享内存结构体中shadow_buffer的作用吗

【回答】
在信任执行环境 (TEE) 和不受信任的执行环境 (REE) 之间共享数据时,OP-TEE (Open Portable Trusted Execution Environment) 使用了一种叫做 “shadow buffer” 的内存管理机制。
“Shadow buffer” 的核心思想是为了解决一个重要问题,即防止不受信任的环境修改数据。当 TEE 需要处理来自 REE 的数据时,为了避免 REE 在处理过程中更改这些数据,OP-TEE 会创建一个在 TEE 中的 “shadow buffer”,并将 REE 的数据复制到这个 “shadow buffer” 中。因此,这个 “shadow buffer” 是 REE 数据在 TEE 中的一个“影子”或副本。TEE 只处理来自 “shadow buffer” 的数据,这样就避免了直接访问可能被 REE 修改的数据,从而提高了数据处理的安全性。
但是,需要注意的是,这种方式可能会对系统性能有一定影响,因为它需要在两个环境之间复制数据。
optee共享内存shadow buffer的作用_第1张图片

你可能感兴趣的:(问题答疑,嵌入式,arm,tee,armv8,armv9)