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

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

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

MCU如何安全啟動以及安全啟動的信任鏈如何建立

jf_EksNQtU6 ? 來源: 開心果 Need Car ? 2023-12-28 10:28 ? 次閱讀

隨著汽車智能化的發(fā)展,車輛已經(jīng)成為萬物互聯(lián)的一部分。我們知道,不管何種終端設(shè)備,一旦聯(lián)網(wǎng),就存在著信息泄露的風(fēng)險(xiǎn)。自然,車輛也不例外,一旦車輛聯(lián)網(wǎng),那么,車輛就有被黑客或者第三方攻擊、截獲信息的風(fēng)險(xiǎn)。因此,車輛信息安全,已成為車企關(guān)注的焦點(diǎn)。本文,主要討論MCU如何安全啟動(Secure Boot),以及安全啟動的信任鏈如何建立。

1、安全啟動

討論汽車信息安全的話題,繞不過"安全啟動"的討論。所謂安全啟動就是確保每一個可執(zhí)行程序都是可信的、沒有被篡改的。目前,針對安全啟動的方案有硬件(eg:HSM,Hardware Security Module)啟動方案、軟件啟動兩種方案。本文主要討論基于HSM的硬件實(shí)現(xiàn)方案,不管哪種方案,"信任根"和"信任鏈"是所有安全啟動設(shè)計(jì)中,不可規(guī)避的兩個點(diǎn)。

(一)信任根

既然要安全啟動,那么,啟動總得有一個起點(diǎn),而這個起點(diǎn)需要無條件信任,即:信任根。信任根必須具有不可攻破性,它可以是一段固化的程序或者硬件。以TC3xx為例,信任根是BootRom(也稱為固件)。

(二)信任鏈

有了信任根以后,就可以從信任根開始,展開軟件程序的逐級驗(yàn)證。工程中,常見的信任鏈驗(yàn)證方式如下:

b1736b0c-a4a1-11ee-8b88-92fbcf53809c.png

如上圖,從芯片加電開始,程序從信任根開始執(zhí)行,逐級的驗(yàn)證下一級程序,只有每級程序驗(yàn)證通過才能啟動下一級程序,以此確保每個程序是安全的、可信的。

一般來說,程序可分為"安全啟動程序"和"用戶程序"。兩者的CPU可以使用相同的內(nèi)核架構(gòu),也可以使用不同的內(nèi)核架構(gòu)。一般,兩者屬于核間通信(Inter-Processor Communication)。

如上安全啟動方式有一個不足:由于采用逐級驗(yàn)證方式,啟動時(shí)間過長。如果OEM(Original Equipment Manufacturer)有嚴(yán)苛的啟動時(shí)間要求,則這個方案很可能不能滿足要求。

所以,工程上的另一種安全啟動方案:"安全啟動程序"和"用戶程序"并行啟動,如下所示:

b181a794-a4a1-11ee-8b88-92fbcf53809c.png

并行啟動方案雖然可以縮短啟動時(shí)間,但是,并行啟動方案有被篡改用戶入口程序地址的風(fēng)險(xiǎn)(如果用戶程序入口存放在BootRom,幾乎不可能修改)。所以,為了兼顧啟動時(shí)間和安全性,工程上還有另一種方案:對程序采取部分校驗(yàn)的方式,縮短啟動時(shí)間的同時(shí),兼顧一定的安全性。

2、驗(yàn)證內(nèi)容及驗(yàn)證方法

(一)公鑰存儲

信任鏈的校驗(yàn)自然脫離不了密碼學(xué)的方法論,而密碼學(xué)又和密鑰緊密關(guān)聯(lián)。工程上,不管程序刷寫還是程序啟動,均需要使用公鑰驗(yàn)簽,所以,加強(qiáng)公鑰的保護(hù),至關(guān)重要。如果公鑰被第三方識別和替換,那么,第三方即可通過配對的私鑰偽造簽名信息,進(jìn)而"為所欲為",信息安全也不復(fù)存在。

我們知道,在車輛下線時(shí),OEM會在產(chǎn)線端分配根公鑰(也就是產(chǎn)品公鑰),產(chǎn)線刷寫時(shí),車輛不連接網(wǎng)絡(luò),也就不存在被網(wǎng)絡(luò)攻擊的風(fēng)險(xiǎn),因此,根公鑰的刷寫是安全的(PS:不考慮異常斷電場景)。一般來說,根公鑰可以刷寫到HSM專屬的OTP(One Time Program)存儲區(qū),此區(qū)域,不允許Host端訪問。如果根公鑰對應(yīng)的算法RSA-2048、RSA-3072等,根公鑰的長度較長,所以,工程上,常存儲根公鑰的哈希值,通過校驗(yàn)根公鑰的哈希值,確認(rèn)根公鑰的完整性。

(二)級聯(lián)校驗(yàn)內(nèi)容

級聯(lián)校驗(yàn)內(nèi)容及時(shí)序如下所示:

b18f40e8-a4a1-11ee-8b88-92fbcf53809c.png

首先,安全啟動程序(eg:HSM)通過計(jì)算User Bootloader中的根公鑰,得到根公鑰的Hash Value,如果與HSM中的根公鑰Hash Value比對一致,則校驗(yàn)通過,之后,HSM通過根公鑰得到UserBootloader+AppPublic KeyHashValue簽名信息,如果與UserBootloader中的簽名信息一致,則校驗(yàn)通過,程序可以進(jìn)入U(xiǎn)ser Bootloader程序。

User Bootloader+App Public Key Hash Value驗(yàn)證通過,則說明User Bootloader中的App Public Key Hash Value完整。User Bootloader通過指定地址找到App Public Key,進(jìn)一步計(jì)算Application程序中的Application Public Key Hash Value,如果一致,則Application Public Key可以用于驗(yàn)證User Application,如果兩者的Application簽名信息一致,則驗(yàn)證通過,程序完成安全啟動。

拓展思考:程序第一次燒錄時(shí),HSM中沒有根公鑰的Hash Value怎么辦?答:程序啟動時(shí),如果發(fā)現(xiàn)HSM沒有根公鑰Hash Value,則認(rèn)為是首次啟動,User Bootloader去指定地址獲取Root Public Key,計(jì)算得到的Root Public Key Hash Value,并存儲到HSM,之后,執(zhí)行復(fù)位,重新啟動程序,并進(jìn)行驗(yàn)證。

審核編輯:湯梓紅

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

    關(guān)注

    146

    文章

    16801

    瀏覽量

    349351
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10771

    瀏覽量

    210435
  • 硬件
    +關(guān)注

    關(guān)注

    11

    文章

    3163

    瀏覽量

    66004
  • 程序
    +關(guān)注

    關(guān)注

    115

    文章

    3747

    瀏覽量

    80665

原文標(biāo)題:信息安全:安全啟動的信任鏈如何建立?

文章出處:【微信號:談思實(shí)驗(yàn)室,微信公眾號:談思實(shí)驗(yàn)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    ACM32 MCU安全特性概述

    ACM32 MCU安全特性。 安全啟動安全更新 上海航芯MCU提供
    的頭像 發(fā)表于 04-28 19:00 ?9268次閱讀
    ACM32 <b class='flag-5'>MCU</b><b class='flag-5'>安全</b>特性概述

    如何使用PSoC 61進(jìn)行安全啟動?

    我們知道所有關(guān)于安全啟動的文檔都是基于 PSoC 62、63 或 64 的。 因?yàn)?b class='flag-5'>安全啟動機(jī)制包括 M0+ 和 M4。 我們想知道如何使用 PSoC 61 進(jìn)行
    發(fā)表于 01-30 07:51

    禁用安全啟動Hades Canyon NUC

    的東西,卻無法找到解決方案。我已經(jīng)嘗試更新BIOS,清除安全啟動數(shù)據(jù),以及其他一些功能,但都沒有。有沒有人對這個問題有什么想法?我可以確認(rèn)UEFI啟動仍然啟用,我的閃存驅(qū)動器是使用UE
    發(fā)表于 12-05 10:44

    s32k312 MCU如何使用安全啟動功能?

    我目前正在使用s32k312 MCU ,需要使用安全啟動功能。 我試圖在文檔(HSE 參考手冊等)中找到任何指示,說明如果啟用此功能會增加多少時(shí)間到啟動時(shí)間,但運(yùn)氣不好。我在哪里可以找
    發(fā)表于 06-05 09:54

    Arm CryptoCell-312生成和驗(yàn)證安全引導(dǎo)和安全調(diào)試證書指南

    安全啟動證書安全調(diào)試證書之間的主要區(qū)別。 本指南包含以下各節(jié): ·證書和證書。 ·證書
    發(fā)表于 08-24 06:09

    國內(nèi)首創(chuàng)!通過SDK集成PUF,“芯片指紋”打造MCU安全芯片

    MCU芯片或嵌入式設(shè)備建立硬件信任根。通過將信任根作為錨點(diǎn),逐步建立信任
    發(fā)表于 09-06 09:44

    使用STM32安全啟動與固件更新

    STM32 內(nèi)建的各種軟硬件安全技術(shù),構(gòu)建了從啟動開始的根信任,可以用來防止固件克隆、惡意軟件下載以及固件破壞。本文則是帶領(lǐng)讀者一步一步
    發(fā)表于 09-11 07:35

    開關(guān)電源如何安全可靠啟動

    在開關(guān)電源設(shè)計(jì)中,啟動電路的設(shè)計(jì)往往會影響開關(guān)電源的啟動性能、轉(zhuǎn)換效率以及在高溫高壓滿載下的穩(wěn)定性,ZLG致遠(yuǎn)電子開關(guān)電源模塊是如何設(shè)計(jì)穩(wěn)定、高效、安全
    的頭像 發(fā)表于 08-21 18:39 ?8535次閱讀
    開關(guān)電源如何<b class='flag-5'>安全</b>可靠<b class='flag-5'>啟動</b>

    美高森美推出安全啟動參考設(shè)計(jì)及主要特性

    FPGA-based 安全啟動參考設(shè)計(jì)。這款新型參考設(shè)計(jì)使用了主流SmartFusion2 SoC FPGA中的先進(jìn)安全特性,在嵌入式系統(tǒng)中安全
    的頭像 發(fā)表于 02-11 13:25 ?4469次閱讀

    i.MX/MCU安全設(shè)計(jì)的介紹

    安全設(shè)計(jì)需從以下方面入手:包含策略的安全模型、對威脅環(huán)境的了解以及加強(qiáng)物理和邏輯安全的方法。本講座主要介紹安全的基本概念,用戶面臨的
    的頭像 發(fā)表于 01-14 07:12 ?2177次閱讀
    i.MX/<b class='flag-5'>MCU</b><b class='flag-5'>安全</b>設(shè)計(jì)的介紹

    基于Arm的Renesas R-Car Gen 3 SoC設(shè)備的安全啟動

      SoC 具有比 MCU 設(shè)備更長的引導(dǎo)。我們的 R-Car 設(shè)備中的安全啟動邏輯允許設(shè)計(jì)人員在整個啟動過程中利用簽名檢查的硬件加速。瑞
    的頭像 發(fā)表于 04-24 15:00 ?2355次閱讀
    基于Arm的Renesas R-Car Gen 3 SoC設(shè)備的<b class='flag-5'>安全</b><b class='flag-5'>啟動</b>

    物聯(lián)網(wǎng)安全始于安全啟動

      總而言之,安全啟動對于在設(shè)備的整個生命周期內(nèi)保持設(shè)備完整性至關(guān)重要。重要的是設(shè)備架構(gòu)師和應(yīng)用程序設(shè)計(jì)人員在定義安全啟動過程之前列出所有安全
    的頭像 發(fā)表于 09-17 17:08 ?554次閱讀

    提高安全需求的標(biāo)準(zhǔn):“安全啟動”的真正含義是什么

    嵌入式引導(dǎo)代碼安全性是技術(shù)提供商正在研究的漏洞分析的一個重要領(lǐng)域。但是,在添加數(shù)字簽名或身份驗(yàn)證步驟后,營銷部門會立即將解決方案標(biāo)記為“安全啟動”?,F(xiàn)在是時(shí)候研究安全boot_的真正含
    的頭像 發(fā)表于 11-10 15:04 ?1094次閱讀
    提高<b class='flag-5'>安全</b>需求的標(biāo)準(zhǔn):“<b class='flag-5'>安全</b><b class='flag-5'>啟動</b>”的真正含義是什么

    建立信任根:可信計(jì)算和基于Intel的系統(tǒng)

      網(wǎng)絡(luò)安全的基本概念和正確響應(yīng)的起點(diǎn)是硬件信任根 (RoT)。此類組件基于啟動過程的硬件驗(yàn)證建立信任的功能,以確保設(shè)備的操作系統(tǒng)使用未損
    的頭像 發(fā)表于 11-11 15:26 ?1644次閱讀

    車規(guī)MCU安全啟動固件

    安全啟動固件(Secure Boot Firmware) 車規(guī)MCU安全啟動固件(Secure Boot Firmware)是一種用于保護(hù)
    的頭像 發(fā)表于 10-27 17:20 ?2097次閱讀
    車規(guī)<b class='flag-5'>MCU</b>的<b class='flag-5'>安全</b><b class='flag-5'>啟動</b>固件