我是看 https://zhuanlan.zhihu.com/p/26441212 這個文章知道trustzone自身會存儲秘鑰,這個秘鑰可以來自用戶指紋,也可以來自雲端下發的key。
Truztzone和已有trust computing比如TPM技術的區別。
trustzone並沒有打算取代TPM,它們關注的點不一樣,
TPM最關注的Key的安全,它的endorsement key從不會讓外界知道,所以這個秘鑰加密過的東西十分安全,你只有把密文扔給之前加密的那塊TPM芯片才能解密。但是TPM沒辦法保護運行時的攻擊,比如某個黑客直接在運行時進行破解,直接去內存訪問你解密過的東西,那TPM秘鑰就形同虛設了。
Trustzone正好能保護這一點,即使黑客root了你的設備,他也沒法訪問trustzone里面保護的東西,只有生產者自己寫的“trust”的代碼模塊才能訪問。(因為OS是沒法直接讀取trustzone數據的!)而且一整套secure boot的技術保證了別人沒法篡改你的代碼image。然而trustzone也沒有定義關於key保存的技術標准,所以它並不與TPM技術沖突,假如說SoC制造商即支持了trustzone,又實現了一套只有secure world才能訪問的key存儲技術,那么按理說這時候trustzone就能取代TPM了。那樣trustzone看起來就像是一個超級功能的TPM,所有的安全操作都可以在里面完成(甚至鍵盤驅動,顯示驅動等一條龍走到底都在安全世界里完成),攻擊者就沒任何辦法拿到敏感信息。
2.Trustzone技術的關鍵:隔離
每個物理的處理器核提供兩個虛擬核,一個是非安全核(Non-secure, NS),另一個是安全核(Secure, S),arm體系保證了很多硬件資源都是雙份的,每個虛擬核獨享自己的那份資源,大大簡化了軟件設計。在這二者之間切換的機制叫做monitor模式。NS核只能訪問NS的系統資源,而安全核能訪問所有資源。普通世界的軟件可以使用SMC指令或者通過硬件異常機制的一個子集來進入到monitor模式,從而獲取安全世界的服務。普通世界只能獲取安全世界的服務,要想拿到點其他東西,就連門都沒有了。
CP15的SCR寄存器中有一個NS位代表了當前cpu所處的世界,NS=0表示安全世界,只有安全世界能修改SCR寄存器,另外,monitor模式下總是安全世界。
參考:https://blog.csdn.net/u011279649/article/details/50935588