安全引導(dǎo)可用于保證系統(tǒng)的完整性,防止系統(tǒng)中重要鏡像文件被破壞或替換。
一般情況下,安全引導(dǎo)需要保護
? 系統(tǒng)的BootLoader鏡像文件、
? TEE鏡像文件、
? Linux內(nèi)核鏡像文件、
? Recover鏡像文件
? 以及在ARMv8中使用的ATF鏡像文件。
將TEE鏡像文件的加載操作加入安全引導(dǎo)功能中可阻止黑客通過替換TEE鏡像文件的方式來竊取被TEE保護的重要資料。
當前使用ARM芯片的系統(tǒng)中大部分使能了安全引導(dǎo)功能,該功能對于用戶的最直接感受就是,當用戶非法刷入其他廠商的ROM后手機無法正常啟動,這是因為非法刷機將導(dǎo)致系統(tǒng)中的重要鏡像文件被替換,系統(tǒng)在啟動過程中對鏡像文件的電子驗簽失敗,如果BootLoader驗證失敗,則系統(tǒng)在進入BootLoader階段之前就會掛死。
(信任根這個詞語此時有沒有在你的腦子里包含)
安全引導(dǎo)的原理
安全引導(dǎo)功能的原理就是采用鏈式驗簽的方式啟動系統(tǒng),也就是在系統(tǒng)啟動過程中,在加載下一個階段的鏡像之前都會對需要被加載的鏡像文件進行電子驗簽,只有驗簽操作通過后,該鏡像才能被加載到內(nèi)存中,然后系統(tǒng)才會跳轉(zhuǎn)到下一個階段繼續(xù)執(zhí)行,整個驗簽鏈中的任何一環(huán)驗簽失敗都會導(dǎo)致系統(tǒng)掛死,系統(tǒng)啟動過程中的第一級驗簽操作是由ChipRom來完成的。
只要芯片一出廠,用戶就無法修改固化在芯片中的這部分代碼,因此無法通過修改第一級驗簽結(jié)果來關(guān)閉安全引導(dǎo)功能。
而且驗簽操作使用的RSA公鑰或者哈希值將會被保存在OTP/efuse中,該區(qū)域中的數(shù)據(jù)一般只有ChipRom和TEE能夠讀取且無法被修改。RSA公鑰或者哈希值將會在產(chǎn)品出廠之前被寫入到OTP/efuse中,而且不同廠商使用的密鑰會不一樣。
本質(zhì)上也就是說Rom拿來校驗后級第一部分的內(nèi)容所用到的密鑰是來自O(shè)TP里面,而這種是在出廠就確認好了的,無法修改的。ChipRom和OTP的配合讓這個安全啟動的最開始具備了靈活性和安全性兼顧。
在谷歌的安全引導(dǎo)功能白皮書中提出了安全引導(dǎo)功能實現(xiàn)方案的設(shè)計建議。
谷歌建議將鏡像文件的電子簽名信息和驗簽使用的RSA公鑰保存在電子證書中,系統(tǒng)在啟動的過程中首先會驗證電子證書的合法性,如果驗證通過則需從電子證書中獲取簽名信息和RSA公鑰,然后再利用它們對鏡像文件進行驗證。整個驗證過程就是先驗證證書,驗證證書通過后再去驗證鏡像文件的合法性。
但是在實際實現(xiàn)過程中,大多數(shù)芯片廠商是將簽名信息與需要被驗簽的鏡像文件打包在一起,而RSA公鑰則會被打包到執(zhí)行驗證操作的鏡像文件中。
(但是動態(tài)TA的事情)
不同廠商可能會對鏡像文件進行加密操作,使保存在設(shè)備中的鏡像文件都是以密文的形式存在。
在啟動過程中,首先會驗證密文鏡像文件的合法性然后再進行解密鏡像文件的操作,這些都完成后才會將明文的鏡像文件加載到內(nèi)存中然后再執(zhí)行跳轉(zhuǎn)操作。
先驗證,再解密,簽名的是加密的文件哦。
-
ROM
+關(guān)注
關(guān)注
4文章
578瀏覽量
87222 -
鏡像
+關(guān)注
關(guān)注
0文章
178瀏覽量
11190 -
系統(tǒng)
+關(guān)注
關(guān)注
1文章
1031瀏覽量
21779
發(fā)布評論請先 登錄
PSOC 5安全引導(dǎo)程序怎么實現(xiàn)
請問NORflash的燒寫和引導(dǎo)啟動作用是什么?
安全廣播的原理及應(yīng)用是什么?有什么作用?
怎樣使用基于安全引導(dǎo)加載程序構(gòu)建的應(yīng)用程序運行調(diào)試會話
STM32MP1部件號具有像STM32MP157C/F這樣的安全引導(dǎo)選項嗎?
LS1046AFRWY需要做什么才能使用安全引導(dǎo)架構(gòu)進行引導(dǎo)?
iMXRT MCU是否能夠支持安全引導(dǎo)加載程序?qū)嵤?/a>
Arm CryptoCell-312生成和驗證安全引導(dǎo)和安全調(diào)試證書鏈指南
通過安全引導(dǎo)和安全下載認證保護IoT設(shè)備
DS28C36安全認證器的安全引導(dǎo)和安全下載
怎樣引導(dǎo)區(qū)塊鏈應(yīng)用走上正軌
EE-366:Blackfin+?和SHARC+?處理器的安全引導(dǎo)指南

wolfBoot安全引導(dǎo)加載程序
ATECC608A安全引導(dǎo)入門用例

ARMv7安全引導(dǎo)的過程

評論