0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OP-TEE中安全驅(qū)動的框架

麥辣雞腿堡 ? 來源:TrustZone ? 作者:TrustZone ? 2023-10-30 16:04 ? 次閱讀

OP-TEE中的安全驅(qū)動是OP-TEE操作安全設備的載體。

TA通過調(diào)用某個安全驅(qū)動的接口就可實現(xiàn)對特定安全設備的操作。安全驅(qū)動在OP-TEE中的軟件框架如圖22-2所示。

圖片

(其實這里,你要搞清楚linux kernel與驅(qū)動的關(guān)系,那真的還是蠻簡單好理解的。但是我不知道~嚶嚶嚶)
系統(tǒng)服務層并非必需的,主要是為方便管理和上層使用。例如OP-TEE提供了各種各樣的密碼學算法,每一種算法的實現(xiàn)可通過不同的硬件引擎來完成。

為統(tǒng)一管理,可將這些硬件引擎驅(qū)動提供的操作接口統(tǒng)一集成到一個系統(tǒng)服務中,而上層用戶只需調(diào)用系統(tǒng)服務暴露的接口就可實現(xiàn)對硬件引擎的調(diào)用。(可能是通過輸入的參數(shù)進行分發(fā))

下面展開講講這個框架的細節(jié)。

系統(tǒng)服務層

系統(tǒng)服務層在OP-TEE啟動過程中由initcall段的代碼進行初始化和啟動,一個系統(tǒng)服務的初始化函數(shù)則是通過使用service_init宏來進行定義并在編譯時鏈接到OP-TEE的鏡像文件中。

在編譯OP-TEE時,該初始化函數(shù)將被保存到OP-TEE鏡像文件的initcall段中。

至于系統(tǒng)服務的初始化函數(shù)所要執(zhí)行的內(nèi)容則由開發(fā)者自行決定,一般是在系統(tǒng)服務的初始化函數(shù)中進行該服務的配置、狀態(tài)量的初始化以及系統(tǒng)服務提供給上層調(diào)用的操作接口變量的初始化,系統(tǒng)服務提供的結(jié)構(gòu)體變量會包含用于實現(xiàn)具體功能的函數(shù)指針變量,這些函數(shù)指針變量指向的函數(shù)就是安全驅(qū)動提供給TA調(diào)用的操作接口。

驅(qū)動層

OP-TEE啟動過程中會執(zhí)行各安全驅(qū)動的初始化,驅(qū)動的初始化函數(shù)是在OP-TEE執(zhí)行initcall段中的內(nèi)容時被調(diào)用的,在OP-TEE中通過使用driver_init宏來告訴編譯器,在編譯時將driver_init宏傳入的函數(shù)作為某個驅(qū)動的入口函數(shù)保存在鏡像文件的initcall段中。

安全驅(qū)動的初始化主要用來完成安全設備的寄存器的配置以及私有數(shù)據(jù)的初始化。

如果某個安全驅(qū)動需要系統(tǒng)服務的配合,則還需要將驅(qū)動提供的操作接口連接到系統(tǒng)服務中的操作接口變量中。

若該驅(qū)動不需以系統(tǒng)服務的方式向上層提供操作接口,則不用將對應接口暴露給系統(tǒng)服務,而是由TA通過系統(tǒng)調(diào)用的方式直接調(diào)用安全驅(qū)動的接口來操作安全設備。

driver_init service_init

驅(qū)動文件在源代碼中的位置

安全驅(qū)動需要被編譯到OP-TEE鏡像文件中,OP-TEE中有專門的目錄來存放驅(qū)動和系統(tǒng)服務的源代碼。

將驅(qū)動編譯到OP-TEE鏡像文件之前還需修改對應的sub.mk文件。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8254

    瀏覽量

    149947
  • 驅(qū)動
    +關(guān)注

    關(guān)注

    12

    文章

    1788

    瀏覽量

    84901
  • 框架
    +關(guān)注

    關(guān)注

    0

    文章

    396

    瀏覽量

    17266
  • 設備
    +關(guān)注

    關(guān)注

    2

    文章

    4346

    瀏覽量

    70267
收藏 人收藏

    評論

    相關(guān)推薦

    TEE解決了什么問題?

    一、引言近年來,可信執(zhí)行的概念在物聯(lián)網(wǎng)安全領(lǐng)域也逐漸流傳。可信執(zhí)行環(huán)境(TEE,Trusted Execution Environment)在智能手機的應用非常廣泛,如OP-TEE[
    發(fā)表于 02-16 06:03

    請問Beal環(huán)境下編譯OP-TEE后生成FIP需要哪些文件?

    stm32mp157d-***-bl32.dtb fip.bin但是當我使用 OP-TEE 時,我使用以下命令:fiptool 創(chuàng)建 --tos-fw tee
    發(fā)表于 12-05 07:06

    如何將大量電源管理和計時工作從ATF轉(zhuǎn)移到OP-TEE上呢

    你好!據(jù)我了解,ST 正在將大量電源管理和計時工作從 ATF 轉(zhuǎn)移到 OP-TEE。為了準備這次轉(zhuǎn)變,我和我的合作開發(fā)人員已經(jīng)開始嘗試在 STM32MP157F-DK2 上構(gòu)建和運行以下軟件
    發(fā)表于 12-07 06:01

    如何在不使用op-tee的情況下進行編譯?

    我按照本指南使用自定義 DTS 文件(按步驟操作)并出現(xiàn)以下錯誤,如何在不使用 op-tee 的情況下進行編譯?ERROR: optee-os-stm32mp-3.12.0.r1-r0
    發(fā)表于 12-28 10:01

    請問HSE op-tee是什么關(guān)系?

    我有個問題。S32G同時支持HSE和op-tee。S32G的安全加解密和證書管理是通過HSE完成的嗎?op-tee 和 HSE 只是其中之一嗎?有沒有相關(guān)的設計文檔?謝謝
    發(fā)表于 04-06 06:26

    OP-TEE無法在鎖定的i.MX6UL上初始化JR怎么解決?

    我們已經(jīng)設置了一個帶有 HABv4 引導鏈的 i.MX6UL 板。SPL --> U-boot --> OP-TEE --> LinuxOP-TEE 和 Linux 內(nèi)核來自
    發(fā)表于 04-17 07:31

    物聯(lián)網(wǎng)終端應用TEE的一些思考

    一、引言近年來,可信執(zhí)行的概念在物聯(lián)網(wǎng)安全領(lǐng)域也逐漸流傳??尚艌?zhí)行環(huán)境(TEE,Trusted Execution Environment)在智能手機的應用非常廣泛,如OP-TEE[
    發(fā)表于 12-17 18:21 ?12次下載
    物聯(lián)網(wǎng)終端應用<b class='flag-5'>TEE</b>的一些思考

    安全驅(qū)動示例代碼和實現(xiàn)

    的mk文件)和common.mk文件,同時也需要將安全驅(qū)動集成到OP-TEE的內(nèi)核。 然后編譯整體OP-TEE后就能夠使用該份示例代碼來驗
    的頭像 發(fā)表于 10-30 16:07 ?526次閱讀
    <b class='flag-5'>安全</b><b class='flag-5'>驅(qū)動</b>示例代碼和實現(xiàn)

    OP-TEE的內(nèi)核初始化過程

    /kernel/kern.ld.S文件鏈接生成OP-TEE OS的鏡像文件, ? 在kern.ld.S文件通過ENTRY宏來指定OP-TEE OS的入口函數(shù),在OP-TEE中指定的入
    的頭像 發(fā)表于 11-02 17:57 ?1089次閱讀
    <b class='flag-5'>OP-TEE</b>的內(nèi)核初始化過程

    OP-TEE的內(nèi)核初始化函數(shù)調(diào)用

    用init_primary_helper函數(shù)來完成系統(tǒng)運行環(huán)境的建立 ,如果系統(tǒng)支持ATF,則該函數(shù)會返回OP-TEE的處理句柄,該處理句柄主要包含 ? 各種安全監(jiān)控模式調(diào)用的處理函數(shù)、 ? 安全世界狀態(tài)(SWS)的中斷 ? 以
    的頭像 發(fā)表于 11-02 18:18 ?575次閱讀
    <b class='flag-5'>OP-TEE</b>的內(nèi)核初始化函數(shù)調(diào)用

    OP-TEE服務項的啟動

    和initcall2。 1. service_init宏 在OP-TEE使用中使用service_init宏定義的服務項如下: service_init
    的頭像 發(fā)表于 11-07 15:04 ?555次閱讀

    ARM64位與ARM32位OP-TEE啟動過程的差異

    ARM32的OP-TEE與ARM64的OP-TEE啟動過程大致相同。ARM64的OP-TEE的_start函數(shù)定義在generic_entry_a64.S文件,而且該函數(shù)不像ARM3
    的頭像 發(fā)表于 11-07 15:12 ?590次閱讀

    ATFbl32的啟動方法

    ATFbl32的啟動 bl31的runtime_svc_init函數(shù)會初始化OP-TEE對應的服務,通過調(diào)用該服務項的初始化函數(shù)來完成OP-TEE的啟動。對于
    的頭像 發(fā)表于 11-07 16:32 ?473次閱讀
    ATF<b class='flag-5'>中</b>bl32的啟動方法

    OP-TEE安全存儲的簡介

    時,OP-TEE會對需要被保存的數(shù)據(jù)進行加密,且每次更新安全文件時所用的加密密鑰都會使用隨機數(shù)重新生成,用戶只要調(diào)用GP標準定義的安全存儲相關(guān)接口就能使用
    的頭像 發(fā)表于 11-21 11:33 ?815次閱讀
    <b class='flag-5'>OP-TEE</b>的<b class='flag-5'>安全</b>存儲的簡介

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

    安全文件、dirf.db文件的數(shù)據(jù)格式和操作過程 OP-TEE安全存儲功能可滿足用戶保存敏感數(shù)據(jù)的需求,需要被保存的數(shù)據(jù)會被加 密保存到文件系統(tǒng)或RPMB分區(qū) 。 當選擇將數(shù)據(jù)保存
    的頭像 發(fā)表于 11-21 11:49 ?545次閱讀
    <b class='flag-5'>OP-TEE</b><b class='flag-5'>安全</b>存儲<b class='flag-5'>安全</b>文件的格式