AG351.SELINUX
SElinux 是一個強制訪問控制系統,它為每個進程與文件都打上一個安全上下文標簽,而 selinux 通過這個標
簽對系統訪問控制進行管理。
2.針對車載產品對于啟動安全、平臺運行安全、通信安全三個主要領域有著
特 殊 很 高 的 要 求 , 為 此 Quectel 結 合 了 Qualcomm 給 出 的 secureboot 、QSEE/TrustZone安全機制以及Linux系統的DM-verity、SELinux和openSSL等組合方式,實現從啟動到客戶進程安全穩定運行,防止出現盜竊取、篡改客戶信息和文件等重要信息。
實時更新各層安全漏洞
通信安全基于iptabel(針對客戶特定的應用場景實現各種復雜安全路由策略),Openssl(定時完善安全漏洞、協助客戶開發),實現安全可靠的網絡通信。
平臺安全基于QSEE/TZ,SELinux等機制,實現linux系統資源文件保護,程序安裝和執行,網路安全。QUECTEL 提供動態靈活的分區和文件系統機制,從而增加文件的存儲安全以及FLASH 壽命QSEE/TZ TrustZone 提供一個可信程序執行環境(TEE)(包括內存安全、外設訪問安全等),保證你的代碼運行時不能被別人窺探到。
固件保護:跟文件系統只讀、備份還原機制、可定制化分區;
啟動安全基于QC-Secboot(內核安全啟動/鏡像簽名),DM-Verity(文件系統安全校驗,實現啟動文件驗證標簽、文件系統安全),硬件調試接口關閉,本地通信接口關閉等(關閉jtag、fastboot、adb、串口、usb口)。(啟動流程校驗、優化、規范化)
A7平臺安全機制
A7安全啟動
1.安全引導系統在啟動過程的每個階段添加加密檢查。設備執行的軟件鏡像必須經過安全校驗。這種額外的檢測能夠防止非法串改的軟件在設備上運行。
安全引導,通過hardware fuses識別被標記的啟動鏡像;
簽名工具,
2.每個階段啟動一個鏡像,被之前一個鏡像檢測;
ROMCODE是最先信任啟動的;
每個階段授權下一個階段:ROMCODE->bootloader->ARM TrustZone->每個鏡像通過其功能,建立設備安全性;
3.使能安全啟動ROMCODE 和bootloader
(1) 將默認的key改變成用戶使用的key,在目錄SOURCE_DIR/sbu/keys/使用命令:$ openssl genrsa –aes256 -out key.pem 2048
(2)?When prompted about the pass-phase for RSA key, put pass-phase inpassphrase.txtinthe same directory.
(3)Get user public key HASH and HASH ZERO bits count by the command tool:
$ python3
SOURCE_DIR/sbu/src/secure_boot_utils/sbu_main/primary_key_hash_creat
or.py SOURCE_DIR/sbu/keys/rsakey.pem ../keys/passphase.txt L
SHA256_TRUNC
(4)Write public key HASH and zero bit count into OTP.
使能安全啟動需要以下相關配置:
Secure boot configurations
0xB[7:0]Number of bit 0 in User Public Key HASH
0x10 – 0x13[31:0]User Public Key HASH
ROMCODEBootloader in signed formatCsrvisor、kernel
load and verifiesBootloader loads andverifies TrustEnvironment withSHA256 digest.
SHA and RSASHA and RSA | RSA
4.引導加載簽名格式
RSA 密匙證書和鏡像簽名;
證書簽名格式為:SHA256;
M3安全啟動
1.對啟動鏡像進行安全校驗。
安全性
一、安全特征
1.平臺安全
啟動校驗:A7、M3、Kalimba Audio(音頻處理器)
生命周期狀態:通過控制對設備的產生和管理決定設備的安全能力
客戶機密安全配置(密匙和證書)
安全調試
RMA mode :快速診斷由于缺陷而返回的設備
2.內容保護
cortexA7 TrustZone、SRAM、DRAM等
3.安全
對硬件單元的訪問控制的配置寄存器的防火墻保護
分區的NOC映射
4.第三方應用的執行
A7提供資源(TEE),允許執行第三方應用程序,同時保留
平臺的完整性、安全性、內容保護性、安全性等特點。
5.軟件許可與版本控制
二、安全資源
1.Trusted Execution Environment(TEES)
TrustZone extensions、DRAM 、SPRAM、regitsters、crypto engines、OTP 、ROMcode.etc
2.微型控制子系統(MCS)
cortex M3,Network on chip,SHA-256 engine,ROM code.
3.常供電區域
TEES MCS
4.IPC
內部處理器通信機制帶安全機制
5.安全DMA
大多數DMA通道可配置成安全模式和非安全模式
三、生命周期狀態(LCS)
芯片制造、設備制造、安全、安全禁用。
四、認證啟動
cortex M3、cortex A7
五、安全子系統
平臺安全由安全子系統硬件支持
六、MCS 安全
MCS安全包括SH-256和AES-128加密硬件控制器。
七、配置TEE
1.內存防火墻
SPRAM、DRAM
防火墻用于設置針對特定發起方的內存緩沖區,并可以提供不同的訪問。
對于不同的發起人和不同權限的讀/寫訪問的緩沖區的權限。
2.寄存器防火墻
寄存器防火墻可以被配置為保護塊(地址范圍)免受特定CPU發起人,其他,非
在任何情況下,CPU發起人都無法訪問寄存器。
3.KAS、ARM和cortex M3 安全通信傳輸
4.NoC安全邊帶信號
八、配置IPC安全
安全配置應該使用NFWW邊帶管理器根據安全要求劃分這些。
九、DMA控制器
每個DMA控制器(除DMAC1由NOC目標防火墻(NTFW)保護)
根據相關聯的安全狀態,每個DMAC信道可以被配置為安全或非安全的。
十、安全性
安全性是通過在ARM CORTEX-A7(CA7)和ARM CORTEX-M3(CM3)之間劃分單元來實現的。
十一、調試
ARM使用術語“安全調試”,這意味著CaleSee硬件可以生成安全事務。
調試與安全相關的項。安全調試還涉及安全設備的調試。
十二、供應
供應是引入OEM特定機密(例如DRM密鑰)和完整性關鍵數據(例如證書)的行為再進入系統
十三、區域返回操作/RMA
車載安全機制
一、硬件安全
1.主板安全(主板上調試接口、測試點安全評估)
2.存儲安全(敏感器件標識、存儲器件安全評估)
3.總線安全(can總線安全協議)
4.無線模塊安全
二、軟件安全
1.代碼邏輯安全
2.日志輸出安全
3.運行數據安全
4.通信安全(4G、wifi、藍牙等)
5.業務邏輯安全
6.啟動安全
7.權限控制
8.更新安全
9.操作系統安全
10.應用安全(應用系統和應用程序的安全)
11.可修復安全
12.固件安全(存儲安全、啟動安全、升級安全)
13.系統安全加固和漏洞利用緩解
(1)開啟隨機數生成開關(CONFIG_ARCH_RANDOM)、選擇對應隨機數生成硬件平臺(CONFIG_HW_RANDOM)
(2)開啟審計支持(CONFIG_AUDIT)、支持對系統調用審計(CONFIG_AUDITSYSCALL)
(3)開啟SYNcookie以應對拒絕服務攻擊(CONFIG_SYN_COOKIES)
(4)開啟棧溢出保護(CONFIG_CC_STACKPROTECTOR)
(5)開啟內核只讀數據不可寫(CONFIG_DEBUG_RODATA)
(6)約束root權限對/dev/mem訪問權限(CONFIG_STRICT_DEVMEM)
(7)關閉/proc/kcore內存映射(CONFIG_PROC_KCORE)
(8)開機系統內核日志訪問控制(CONFIG_SECUITY_DMESG_RESTRICT)
(9)開啟內存也可執行權限檢查(CONFIG_PAX_NOEXEC)
(10)開啟內存權限檢查(CONFIG_PAX_MPROTECT)
(11)開啟地址空間布局隨機化(CONFIG_PAX_ASLR)
(12)開啟內核棧布局隨機化(CONFIG_PAX_RANDKSTACK)
開啟用戶控件棧布局隨機化(CONFIG_PAX_RANDUSTACK)
(13)開機映射空間布局隨機化(CONFIG_PAX_RANDMMAP)
(14)開啟/proc目錄安全加固(CONFIG_GRKERNSEC_PROC)
(15)開啟/proc目錄用戶隔離(CONFIG_GRKERNSEC_PROC_USER)
(16)開啟/proc目錄用戶組隔離(CONFIG_GRKERNSEC_PROC_GROUP)
(17)阻止非root用戶訪問設備信息(CONFIG_GRKERNSEC_PROC_ADD)
(18)阻止查看其它用戶LINK信息(CONFIG_GRKERNSEC_LINK)
(19)阻止用戶向其他用戶管道進行寫入(CONFIG_GRKERNSEC_FIFO)
(20)CHRROOT安全策略加固(CONFIG_GRKERNSEC_CHROOT)
(21)開啟可執行文件與腳本白名單配置(CONFIG_GRKERNSEC_TPE)
(22)自主訪問控制(訪問權限控制USER-GROUP-OTHER、Linux Capability機制、安卓權限機制)
(23)強制訪問控制(SELINUX、APPArmor、基于linux內核系統模塊)
三、移動app
應用安全(應用系統和應用程序的安全)
身份認證、會話管理、敏感數據存儲傳輸、組件安全、常見安全漏洞、不安全運行環境。
四、云平臺TSP