1、引言
假設(shè)軟件存在漏洞,攻擊者利用軟件漏洞就有可能導(dǎo)致關(guān)鍵的信息受損。這種情況下,使用系統(tǒng)隔離,將關(guān)鍵的資源以及操作和普通的分開,普通的應(yīng)用程序無法訪問關(guān)鍵資源,從而可以有效的降低軟件漏洞帶來的風(fēng)險(xiǎn)。
TrustZone 是系統(tǒng)隔離的一種硬件手段,它將整個(gè)系統(tǒng)分為安全世界和非安全世界。安全世界可以存儲(chǔ)像密鑰、配置關(guān)鍵外設(shè)等,非安全世界運(yùn)行其余代碼。這樣,即使非安全側(cè)遭受到攻擊,由于訪問權(quán)限的限制,安全側(cè)的數(shù)據(jù)以及關(guān)鍵外設(shè)不會(huì)受到影響。
TrustZone 技術(shù),在一個(gè)芯片上,按照地址,劃分了安全世界和非安全世界。但一個(gè)地址,它的安全屬性,有三種 Secure、NSC、Non-Secure。
為什么在安全世界中,要存在一個(gè) NSC 區(qū)域呢?TZ 隔離出的兩個(gè)世界,安全世界和非安全世界。安全世界可以隨意調(diào)用非安全世界的代碼,而非安全世界調(diào)安全世界的 API 則要經(jīng)過中轉(zhuǎn)站(NSC 區(qū)域)。
2、按鍵點(diǎn)燈實(shí)驗(yàn)
接下來,我們將通過按鍵點(diǎn)燈實(shí)驗(yàn),來體會(huì)系統(tǒng)隔離的魅力所在。這也將更好的幫助去
理解系統(tǒng)的安全側(cè)和非安全側(cè)。
2.1. 使用準(zhǔn)備
硬件:
- NUCLEO-H563ZI
軟件:
- CubeMX 6.12.1 (或最新版本)
- STM32Cube_FW_H5_V1.2.0 (或最新版本)
- STM32CubeProgrammer 2.17.0 (或最新版本)
- IAR EW for Arm 9.50.2 (或最新版本)
2.2. 實(shí)驗(yàn)思想
在實(shí)驗(yàn)中,開啟 USER_BUTTON (處于非安全側(cè))的外部中斷功能。當(dāng)用戶按下按鍵并松開手,觸發(fā)上升沿中斷。在上升沿中斷回調(diào)函數(shù)中,去翻轉(zhuǎn)小燈 LED1_GREEN(處于安全側(cè))、LED2_YELLOW(處于非安全側(cè))、LED3_RED(處于非安全側(cè))。
3、小結(jié)
通過上面演示,操作非安全側(cè)按鍵去點(diǎn)亮安全側(cè)的 LED1 和非安全側(cè)的 LED2、LED3, 來幫助大家更好的理解安全側(cè)與非安全側(cè)的資源與外設(shè)調(diào)用。