trustzone調研

trustzone是一種arm處理器安全架構,是一種虛擬cpu技術,允許cpu狀態,mmu單元在安全世界和非安全世界切換。提供了一個隔離的,優先級高於正常世界操作系統的安全執行環境(通常片上rom和ram只能由安全世界訪問,使用內部總線連接,一定程度上抵禦了簡單的硬件攻擊),爲安全引導和安全存儲機制提供支持。

安全世界與正常世界的切換通過smc指令進入cpu的monitor模式 完成狀態切換。

安全世界通常佔有少量的硬件資源,大多數手機設備中,安全模式下只能訪問片上rom和ram,不支持安全世界訪問外部內存。一般非安全世界(擁有大部分或全部外部內存)執行操作系統代碼,安全世界運行安全相關的少量代碼,如密碼學算法,安全引導代碼。以及存儲一些關鍵數據,如設備特定的密鑰。爲保證安全,安全世界中的用戶定義代碼(boot loader)必需被簽名認證。trustzone的安全引導功能由片上rom中的trust root(設備密鑰的公鑰部分,出廠時寫入rom),加密功能,安全引導代碼支持,設備啓動後(進入安全狀態),主cpu首先執行片上rom中特定位置的安全引導代碼,利用trust root和加密算法驗證boot loader的簽名,之後bootloader執行,再由boot loader驗證OS kernel的簽名,這就是verify-before-execute機制。

考慮到安全模式下內存資源的限制,一般手機設備的安全模式中沒有用戶I/O組件,只能通過受限的方法,由正常世界的操作系統特權狀態(內核態)訪問安全世界。也沒有單調安全計數器,在一定程度上不能防止重放攻擊。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章