0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OP-TEE中安全驱动的框架

麦辣鸡腿堡 来源:TrustZone 作者:TrustZone 2023-10-30 16:04 次阅读

OP-TEE中的安全驱动是OP-TEE操作安全设备的载体。

TA通过调用某个安全驱动的接口就可实现对特定安全设备的操作。安全驱动在OP-TEE中的软件框架如图22-2所示。

图片

(其实这里,你要搞清楚linux kernel与驱动的关系,那真的还是蛮简单好理解的。但是我不知道~嘤嘤嘤)
系统服务层并非必需的,主要是为方便管理和上层使用。例如OP-TEE提供了各种各样的密码学算法,每一种算法的实现可通过不同的硬件引擎来完成。

为统一管理,可将这些硬件引擎驱动提供的操作接口统一集成到一个系统服务中,而上层用户只需调用系统服务暴露的接口就可实现对硬件引擎的调用。(可能是通过输入的参数进行分发)

下面展开讲讲这个框架的细节。

系统服务层

系统服务层在OP-TEE启动过程中由initcall段的代码进行初始化和启动,一个系统服务的初始化函数则是通过使用service_init宏来进行定义并在编译时链接到OP-TEE的镜像文件中。

在编译OP-TEE时,该初始化函数将被保存到OP-TEE镜像文件的initcall段中。

至于系统服务的初始化函数所要执行的内容则由开发者自行决定,一般是在系统服务的初始化函数中进行该服务的配置、状态量的初始化以及系统服务提供给上层调用的操作接口变量的初始化,系统服务提供的结构体变量会包含用于实现具体功能的函数指针变量,这些函数指针变量指向的函数就是安全驱动提供给TA调用的操作接口。

驱动层

OP-TEE启动过程中会执行各安全驱动的初始化,驱动的初始化函数是在OP-TEE执行initcall段中的内容时被调用的,在OP-TEE中通过使用driver_init宏来告诉编译器,在编译时将driver_init宏传入的函数作为某个驱动的入口函数保存在镜像文件的initcall段中。

安全驱动的初始化主要用来完成安全设备的寄存器的配置以及私有数据的初始化。

如果某个安全驱动需要系统服务的配合,则还需要将驱动提供的操作接口连接到系统服务中的操作接口变量中。

若该驱动不需以系统服务的方式向上层提供操作接口,则不用将对应接口暴露给系统服务,而是由TA通过系统调用的方式直接调用安全驱动的接口来操作安全设备。

driver_init service_init

驱动文件在源代码中的位置

安全驱动需要被编译到OP-TEE镜像文件中,OP-TEE中有专门的目录来存放驱动和系统服务的源代码。

将驱动编译到OP-TEE镜像文件之前还需修改对应的sub.mk文件。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    7653

    浏览量

    148559
  • 驱动
    +关注

    关注

    11

    文章

    1718

    浏览量

    84361
  • 框架
    +关注

    关注

    0

    文章

    301

    浏览量

    17049
  • 设备
    +关注

    关注

    2

    文章

    4172

    浏览量

    69316
收藏 人收藏

    评论

    相关推荐

    TEE解决了什么问题?

    一、引言近年来,可信执行的概念在物联网安全领域也逐渐流传。可信执行环境(TEE,Trusted Execution Environment)在智能手机的应用非常广泛,如OP-TEE[
    发表于 02-16 06:03

    请问Beal环境下编译OP-TEE后生成FIP需要哪些文件?

    stm32mp157d-***-bl32.dtb fip.bin但是当我使用 OP-TEE 时,我使用以下命令:fiptool 创建 --tos-fw tee
    发表于 12-05 07:06

    如何将大量电源管理和计时工作从ATF转移到OP-TEE上呢

    你好!据我了解,ST 正在将大量电源管理和计时工作从 ATF 转移到 OP-TEE。为了准备这次转变,我和我的合作开发人员已经开始尝试在 STM32MP157F-DK2 上构建和运行以下软件
    发表于 12-07 06:01

    如何在不使用op-tee的情况下进行编译?

    我按照本指南使用自定义 DTS 文件(按步骤操作)并出现以下错误,如何在不使用 op-tee 的情况下进行编译?ERROR: optee-os-stm32mp-3.12.0.r1-r0
    发表于 12-28 10:01

    请问HSE op-tee是什么关系?

    我有个问题。S32G同时支持HSE和op-tee。S32G的安全加解密和证书管理是通过HSE完成的吗?op-tee 和 HSE 只是其中之一吗?有没有相关的设计文档?谢谢
    发表于 04-06 06:26

    OP-TEE无法在锁定的i.MX6UL上初始化JR怎么解决?

    我们已经设置了一个带有 HABv4 引导链的 i.MX6UL 板。SPL --> U-boot --> OP-TEE --> LinuxOP-TEE 和 Linux 内核来自
    发表于 04-17 07:31

    物联网终端应用TEE的一些思考

    一、引言近年来,可信执行的概念在物联网安全领域也逐渐流传。可信执行环境(TEE,Trusted Execution Environment)在智能手机中的应用非常广泛,如OP-TEE
    发表于 12-17 18:21 12次下载
    物联网终端应用<b class='flag-5'>TEE</b>的一些思考

    安全驱动示例代码和实现

    的mk文件)和common.mk文件,同时也需要将安全驱动集成到OP-TEE的内核中。 然后编译整体OP-TEE后就能够使用该份示例代码来验证本书提供的
    的头像 发表于 10-30 16:07 392次阅读
    <b class='flag-5'>安全</b><b class='flag-5'>驱动</b>示例代码和实现

    OP-TEE的内核初始化过程

    1 OP-TEE OS的入口函数 • OP-TEE镜像的入口函数是在编译OP-TEE OS时通过链接文件来确定的, • OP-TEE在编译时是按照optee_os/core/arch/
    的头像 发表于 11-02 17:57 479次阅读
    <b class='flag-5'>OP-TEE</b>的内核初始化过程

    OP-TEE的内核初始化函数调用

    用init_primary_helper函数来完成系统运行环境的建立 ,如果系统支持ATF,则该函数会返回OP-TEE的处理句柄,该处理句柄主要包含 • 各种安全监控模式调用的处理函数、 • 安全世界状态(SWS)的中断 • 以
    的头像 发表于 11-02 18:18 358次阅读
    <b class='flag-5'>OP-TEE</b>的内核初始化函数调用

    OP-TEE服务项的启动

    OP-TEE服务项的启动分为: service_init以及service_init_late ,需要被启动的服务项通过使用这两个宏,在编译时,相关服务的内容将会被保存到initcall1
    的头像 发表于 11-07 15:04 323次阅读

    ARM64位与ARM32位OP-TEE启动过程的差异

    ARM32的OP-TEE与ARM64的OP-TEE启动过程大致相同。ARM64的OP-TEE的_start函数定义在generic_entry_a64.S文件中,而且该函数不像ARM32位系统
    的头像 发表于 11-07 15:12 293次阅读

    OP-TEE安全存储的简介

    OP-TEE安全存储的简介 OP-TEE安全存储功能是OP-TEE为用户提供的安全存储机制。
    的头像 发表于 11-21 11:33 363次阅读
    <b class='flag-5'>OP-TEE</b>的<b class='flag-5'>安全</b>存储的简介

    OP-TEE安全存储安全文件的格式

    安全文件、dirf.db文件的数据格式和操作过程 OP-TEE安全存储功能可满足用户保存敏感数据的需求,需要被保存的数据会被加 密保存到文件系统或RPMB分区中 。 当选择将数据保存到文件系统
    的头像 发表于 11-21 11:49 270次阅读
    <b class='flag-5'>OP-TEE</b><b class='flag-5'>安全</b>存储<b class='flag-5'>安全</b>文件的格式

    安全存储文件的创建

    OP-TEE中调用GP标准接口使用安全存储功能时,对文件的读写操作最终是由REE侧来完成的。 OP-TEE无法直接操作REE侧的
    的头像 发表于 11-21 15:02 233次阅读
    <b class='flag-5'>安全</b>存储文件的创建