新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 對ARM TrustZone的理解

        對ARM TrustZone的理解

        作者: 時間:2016-11-10 來源:網絡 收藏
        TrustZoneARM對ARM6的擴展,其實只是增加了一條指令,一個配置狀態位,以及一個新的有別于核心態和用戶態的安全態。ARM并沒有把TrustZone設計成能夠解決所有的安全問題,它的目標是希望TrustZone能把一些安全性要求高的代碼放在安全區域里執行,這也就是TrustZone名字的由來。


        ARM把TrustZone固化在硬件里的道理是:

        本文引用地址:http://www.104case.com/article/201611/317199.htm

        系統的安全性不能全靠軟件來保證,而且改寫現有的不安全的軟件,使之更安全也不大可行。

        較為可行的方案就是引入一塊安全的硬件邏輯,并且只讓一小塊軟>件控制此安全邏輯。

        這樣既保護了既有投資,也把系統的安全風險降到最小。

        因為操作系統和普通應用都可以運行在安全態,所以安全態不同于傳統的運行態環狀的特權劃分,因此ARM把安全態描述成一個平行區域,稱之為安全區,又稱為安全監控模式。

        核心態程序要進入到安全區運行,必須執行安全監控中斷( secure monitor interrupt, SMI) 指令,而應用程序則必須通過API 函數來調用SMI 指令,此時,操作系統要負責檢查應用程序是否安全,若通過檢查則執行SMI 指令進入到安全區。這樣,整個系統的安全性就全由操作系統負責了。換句話說,TrustZone需要軟件的支持,才能達到安全目標。

        執行SMI 指令的具體動作是,SMI 在CP15的安全狀態寄存器中設置S位.。S位擴展還體現在AMBA總線上,這樣外設也可以實現對TrustZone的支持。

        安全監控程序(固件)是獨立于操作系統的、自足的、不可重入的一小段代碼。只要CP15安全狀態寄存的S位處于置1狀態,安全監控程序就要起作用(監測所有處理器操作)。首先監控程序要負責保存>上下文狀態,即寄存器內容(一般保存到緊致內存TCM中),并且把當前處理器配置信息保存到CP15的單獨一組分編(banked)寄存器中。TrustZone的開銷是增加了大約350位狀態信息,完成上下文切換需要200時鐘周期。

        由于TrustZone為安全區配備了單獨的緩存、TLB和緊致內存TCM,上下文切換并不會導致這些性能構件內容的倒換,也即不會導致系統性能的降低。

        ARM建議把安全監控程序及其運行時需要的內存置于一個TCM塊中,以使延遲更低且更可預測。

        安全擴展對于中斷處理也有影響。因為中斷既可以來自外設,也可來自軟件,那就必須假定中斷有可能造成安全漏洞,這樣,在安全代碼執行時,就不能簡單地讓任何中斷切入進來。ARM建議的方案是,把中斷也分為安全的和非安全的,安全代碼只能被安全中斷打斷。當然,也可以把所有中斷都提升為安全的,但那樣會引入不必要的延遲。

        TrustZone是體系結構的擴展,系統軟件可以利用這一擴展提供安全支持,TrustZone本身并不能實現安全保障功能,但這一解決方案硬件實現不復雜,也不增加許多功耗,仍是具有很好性價比的安全嵌入式解決方案。



        關鍵詞: ARMTrustZon

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 桦南县| 新邵县| 手游| 彩票| 万州区| 阿拉善盟| 浮梁县| 纳雍县| 安平县| 龙井市| 竹北市| 前郭尔| 衡水市| 承德市| 永清县| 乌审旗| 荣成市| 夏津县| 宜宾市| 新乡市| 临泉县| 台安县| 宁晋县| 新闻| 河西区| 清涧县| 浦城县| 乌兰县| 涡阳县| 湘阴县| 壤塘县| 宁陕县| 通许县| 蚌埠市| 祁门县| 林周县| 乌审旗| 新郑市| 商水县| 叙永县| 峨边|