日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車測(cè)試網(wǎng)

  • 公眾號(hào)
    • 汽車測(cè)試網(wǎng)

    • 在線課堂

    • 電車測(cè)試

安全啟動(dòng)- 云馳未來

2023-02-03 19:53:34·  來源:汽車測(cè)試網(wǎng)  
 
背景描述隨著車聯(lián)網(wǎng)的廣泛普及,對(duì)于車聯(lián)網(wǎng)類型的嵌入式系統(tǒng)劃定安全優(yōu)先順序的需求日益迫切。確保安全的啟動(dòng)過程是保護(hù)任何嵌入式系統(tǒng)的首要步驟,也是在應(yīng)用中預(yù)防惡意軟件壁壘的必要部分。“安全啟動(dòng)” (Secure Boot) 是指操作系統(tǒng)在啟動(dòng)鏡像與軟件之前必

背景描述

隨著車聯(lián)網(wǎng)的廣泛普及,對(duì)于車聯(lián)網(wǎng)類型的嵌入式系統(tǒng)劃定安全優(yōu)先順序的需求日益迫切。確保安全的啟動(dòng)過程是保護(hù)任何嵌入式系統(tǒng)的首要步驟,也是在應(yīng)用中預(yù)防惡意軟件壁壘的必要部分。“安全啟動(dòng)” (Secure Boot) 是指操作系統(tǒng)在啟動(dòng)鏡像與軟件之前必須先根據(jù)硬件信任根進(jìn)行認(rèn)證, 才能使其用于啟動(dòng)的過程。硬件信任根必須以此方式提前作好準(zhǔn)備:它只認(rèn)證使用受信任的安全憑證所 產(chǎn)生的程序??傊_保開機(jī)啟動(dòng)和 OS 軟件是預(yù)期的制造商版本,而不至于被惡意軟件或惡意的第三方篡改過。

實(shí)現(xiàn)概要

Secure Boot 的基本思想是從 Preloader 到啟動(dòng)末尾 Image 的多層鏈?zhǔn)叫r?yàn)機(jī)制(如下圖所示)。Preloader 利用 Hash 函數(shù)來驗(yàn)證 LK 的完整性;然后 LK 將會(huì)驗(yàn)證 Linux Kernel;最后 Linux Kernel 來驗(yàn)證 Android Image,所有的 Boot Images 會(huì)通過 RSA 算法的私鑰加密并在生產(chǎn)階段載入控制器,每個(gè)Image 文件的 RSA 公鑰保存在前一級(jí)用私鑰簽名的 image 當(dāng)中,而計(jì)算得到 LK 的 Hash 值和第一級(jí)的公鑰則保存在芯片的一次可編程模塊中,以防止其被修改。需要注意的是,RSA 私鑰是 Secure boot 的保障,需要被小心的保存起來。

圖片

圖7.2-1 基于信任鏈的啟動(dòng)流程分區(qū)說明:

Preloader

Preloader 位于芯片的 ROM 內(nèi),芯片出廠后不能修改,它包含了 SHA1 和 RSA 算法,且 Preloader 的 Hash 值也保存在芯片的一次性可編程模塊(efuse)中,Preloader 在下載或啟動(dòng)會(huì)比較 efuse 和 LK 的 Hash 值。

LK

Bootloader 的一部分,它會(huì)被加載到芯片的內(nèi)部 RAM 中,所以其大小受芯片內(nèi)部 RAM 大小的限制, LK 的主要作用是初始化外部?jī)?nèi)存,即我們常說的 DDR。

Linux Kernel

Linux 內(nèi)核,包含進(jìn)程管理、內(nèi)存管理、設(shè)備驅(qū)動(dòng)等內(nèi)核程序。

Android

安卓 System 分區(qū),包含了整個(gè)安卓操作系統(tǒng)、用戶界面、和所有預(yù)裝的系統(tǒng)應(yīng)用程序。

實(shí)現(xiàn)詳細(xì)(簽名與驗(yàn)簽)

圖片

圖7.2-2 簽名流程

簽名流程:

  1. 生成密鑰對(duì),即 public key 和 privete key

  2. 使用 SHA256 計(jì)算鏡像的 hash,并使用私鑰對(duì)鏡像進(jìn)行 RSA2048 簽名;

  3. 使用 SHA256 計(jì)算出 public key 的 hash;

  4. 將鏡像代碼 +2 中簽名 +public key 進(jìn)行打包形成新的鏡像;

  5. 使用 eFuse 工具將 3 中的 hash 燒寫到 eFuse。

驗(yàn)簽流程:

  1. 首先從新的鏡像中獲取 public key 計(jì)算 hash 值;

  2. 從 eFuse 中讀取預(yù)燒寫的 hash 值進(jìn)行對(duì)比,如果相同則繼續(xù)否則 boot 失敗;

  3. 從新的鏡像中獲取簽名,然后使用 RSA2048 計(jì)算 hash;

  4. 使用 SHA256 計(jì)算鏡像 code 段的 hash 值,3 和 4 的結(jié)果對(duì)比,相同則繼續(xù),否則失敗。

分享到:
 
反對(duì) 0 舉報(bào) 0 收藏 1 評(píng)論 0
滬ICP備11026917號(hào)-25