一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

TF-A主要保護的是什么

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-09-11 16:25 ? 次閱讀

大量的嵌入式設(shè)備使用 ARM 為核心的芯片,為了保證安全 ARM 推出了 Arm Trusted Firmware 的可信固件,簡稱 TF-A。它是一個開源的軟件,最早是用在 Armv8-A。它的作用是隔離硬件,為硬件提供一個安全環(huán)境并且提供安全服務(wù)。

智能手機里面保存了我們的指紋、Face ID(3D 人臉信息)、虹膜、銀行卡密碼等重要信息。因此智能設(shè)備的安全問題就成了半導(dǎo)體行業(yè)的重要問題,ARM 為此提供了 TrustZone 解決方案,TrustZone 將 CPU 的工作狀態(tài)分為了 Secure World 和 Normal World,涉及到安全相關(guān)的內(nèi)容運行在安全世界,比如指紋、密碼等,其他的操作都在非安全世界運行,比如應(yīng)用程序。TrustZone 是一種硬件解決方案。

我們并不會直接去官方網(wǎng)站下載 TF-A 的源碼,這樣的開發(fā)難度太大,半導(dǎo)體廠商都會從 TF-A 官網(wǎng)下載源碼,然后修改適配自己的芯片,把自家的芯片加進去。我們在實際項目開發(fā)中直接使用半導(dǎo)體原廠給提供的 TF-A 即可。

TF-A 是有自己的 Makefile 文件的,而且真正編譯的時候也是要用 TF-A 自己的 Makefile。

TF-A 主要保護的就是設(shè)備啟動過程,通過各種鑒權(quán),保證設(shè)備啟動的過程中每個階段的固件都是安全的,防止被不法分子替換某些啟動固件導(dǎo)致安全信息泄露。

對于傳統(tǒng)的 ARM 處理器而言 , Linux 系統(tǒng)的啟動流程是:內(nèi)部 BootROM -》 Uboot -》 kernel -》 rootfs,整個啟動過程是一個鏈式結(jié)構(gòu),啟動過程其實是沒有安全校驗的。加入 TF-A 固件以后,TF-A 就可以對 uboot、kernel 進行校驗,如果還要使用 TEE OS(Trusted Execution Environment,TEE),那么 TF-A 還要完成對 TEE OS 的校驗。

Linux 啟動是一個鏈式結(jié)構(gòu),因此安全啟動的鑒權(quán)(校驗)過程也是鏈式結(jié)構(gòu)的。在系統(tǒng)啟動的過程中,會先對下一個要加載運行的鏡像進行鑒權(quán),只有鑒權(quán)成功此鏡像才能運行,并進入到下一階段,只要其中有一環(huán)鑒權(quán)失敗,那么整個系統(tǒng)就會啟動失敗。

bl1、bl2 和 bl31 都屬于 TF-A 固件,而 bl32 和 bl33 是 TF-A 要啟動的其他第三方固件,比如 TEE OS 和 uboot。

bl1、bl2、bl31、bl32 和 bl33 是 TF-A 的不同啟動階段,TF-A 的啟動過程是鏈式的,不同的階段完整的功能不同, bl1、bl2、bl31、bl32 和 bl33 全名如下:

bl1:Boot loader stage 1(BL1)
bl2:Boot loader stage 2(BL2)
bl31:Boot loader stage 3-1(BL31)
bl32:Boot loader stage 3-2(BL32)
bl33:Boot loader stage 3-3(BL33)

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

    關(guān)注

    459

    文章

    51961

    瀏覽量

    434022
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9278

    瀏覽量

    373797
  • 嵌入式
    +關(guān)注

    關(guān)注

    5126

    文章

    19446

    瀏覽量

    313381
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11427

    瀏覽量

    212408
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    如何使用Yocto更新已更改的TF-A設(shè)備樹來產(chǎn)生新的鏡像文件?

    求助大佬, 我用Yocto構(gòu)建了STM32MP157的鏡像文件,但我需要更改和移植TF-A和U-BOOT來適配我的板子, 我按照它正點原子教程里更改了.bl2和創(chuàng)建了新的.dtsi設(shè)備樹文件,但
    發(fā)表于 03-29 08:01

    關(guān)于TF-A(ATF)固件的基本知識詳解

    1、什么是ATF首先什么是TF-A(ATF)?ATF就是一個固件, 一段代碼,一個為armv7-A/armv8-A/armv9-A提供的參考實現(xiàn)代碼。(注意,這只是參考實現(xiàn),你也可以不
    發(fā)表于 06-15 16:57

    TF-A與U-boot的打印輸出顯示了不同的信息是為什么呢

    我已將 TF-A 放入詳細打印中,導(dǎo)致打印出有關(guān) BSEC 訪問的信息。但是 TF-A 與 U-boot 的打印輸出顯示了不同的信息,或者至少是令人困惑的信息。是什么賦予了?(TF-A 2.6-r1
    發(fā)表于 12-01 07:30

    為157F-DK2設(shè)置TF-A sp_min總是報錯的原因?

    您好,我正在嘗試為 157F-DK2 設(shè)置 TF-A sp_min。這是我的信息。搭建環(huán)境Ubuntu 22.04用于 OpenSSL 3.0 支持需要,因為 trusted-firmware-a
    發(fā)表于 12-08 07:40

    怎樣去更改默認的tf-a和u-boot串口linux控制臺呢

    內(nèi)核控制臺。如果我在 tf-a 和 u-boot dts 中嘗試相同的修改,在啟動時我會看到從 uart4 開始的日志,但此時它會阻塞Preparing exit to normal worldNo serial driver found我也應(yīng)該修改一些引導(dǎo)環(huán)境嗎?
    發(fā)表于 12-19 06:23

    如何去調(diào)試U-Boot和TF-A中的USB以及OTG控制器呢

    我正在開發(fā)基于 STM32MP157F 的定制板,我在 U-Boot 中的 USB 和 EHCI 驅(qū)動程序以及 U-Boot 和 TF-A 中的 USB 和 OTG 控制器方面遇到了一些問題。一旦
    發(fā)表于 12-20 07:00

    怎樣配置TF-A模塊來管理時間戳篡改呢

    我正在開發(fā)一個基于 STM32mp153 MPU 和 Linux 操作系統(tǒng)的項目。我已經(jīng)配置了 TF-A 模塊來管理時間戳篡改。當(dāng)篡改事件發(fā)生時,它會在標準輸出中報告。我想將 TF-A 檢測
    發(fā)表于 12-23 08:56

    請問如何使用TF-A中的I2C1來控制STPMIC1?

    在我們的定制板中,我們使用 I2C1 來控制和配置 STPMIC1。我想在 TF-A 中使用 I2C1,這樣 PMIC 就可以配置為在引導(dǎo)期間為 DDR 供電。TF-A 默認不支持 I2C1,但
    發(fā)表于 01-16 08:19

    構(gòu)建內(nèi)核/u-boot/tf-a時忽略自定義CubeMX DTS文件的路徑如何解決?

    嘗試構(gòu)建 tf-a、u-boot 或 linux 內(nèi)核時出現(xiàn)以下錯誤(以下是嘗試對 tf-a-stm32mp 進行 bitbake 時):make: *** No rule to make
    發(fā)表于 01-29 06:28

    什么會導(dǎo)致fsbl tf-a引導(dǎo)加載程序在閃爍后崩潰?

    好,并以 100% 完成,但稍等片刻,我就遇到了錯誤。似乎 TF-A 在加載后崩潰或無法啟動。我正在尋找原因以及如何解決。附件是我在編程器中使用的 TSV 文件。我正在使用 EcoSystem 4.1.0。
    發(fā)表于 02-01 07:31

    如何使用STM32CubeProgrammer在沒有USB的情況下將TF-A、u-boot、根文件系統(tǒng)刷入SD卡?

    以下 Wiki 頁面顯示了如何使用 STM32CubeProgrammer 將 TF-A、u-boot、根文件系統(tǒng)刷入 SD 卡。在上面的 wiki 頁面中,我可以使用 USB將 TF-A
    發(fā)表于 02-03 10:40

    如何從TF-A或uboot加載/啟動Cortex-M4?

    是否可以從 TF-A 或 uboot 加載/啟動 Cortex-M4?對于我們的用例,我們希望 Cortex-M4 中的 RTOS 盡快運行。在 linux 完成啟動之前。
    發(fā)表于 02-07 06:51

    TF-A的不同啟動階段有哪些

    TF-A 不同啟動階段 FSBL:First stage boot loader,第一階段啟動文件 SSBL:Second stage boot loader,第二階段啟動文件 TF-A 分為
    的頭像 發(fā)表于 09-11 16:54 ?1217次閱讀
    <b class='flag-5'>TF-A</b>的不同啟動階段有哪些

    TF-A啟動流程詳解

    bl 1 bl 1 是 TF-A 的第一個啟動階段,芯片復(fù)位以后就會運行 bl1 鏡像,TF-A 提供了 bl1 源碼。但是,實際上 bl1一般是半導(dǎo)體廠商自己編寫的內(nèi)部 Boot ROM 代碼
    的頭像 發(fā)表于 09-11 16:59 ?1635次閱讀
    <b class='flag-5'>TF-A</b>啟動流程詳解

    TF-A移植是什么意思

    TF-A 移植 當(dāng)我們實際做產(chǎn)品的時候我們的硬件平臺肯定會和芯片原廠的有區(qū)別,比如 DDR 容量會改變,自己的硬件沒有使用到官方開發(fā)板所使用的 PMIC芯片等等。因此這里就涉及到將半導(dǎo)體原廠提供
    的頭像 發(fā)表于 09-11 17:04 ?956次閱讀
    <b class='flag-5'>TF-A</b>移植是什么意思