安全從業者腦中有一系列的安全名詞,比如安全三要素Confidenciality 、Integrity、Availability,比如硬體安全品牌TPM、TrustZone、SGX、Titan-M,比如軟體層面的安全能力Isolation、Access Control,又比如漏洞緩解措施DEP、ASLR、CFI,從這些名詞可以看出,軟體最基礎的安全能力都得自于硬體的支持,如果一個硬體沒有特權級別,那就不要期望能實作什么安全能力了(沒有MPU,基本的隔離都沒辦法做了),硬體能力如同原材料,能做成什么樣的美味佳肴就靠廚師(工程師)的本領了,因此在考慮未來產品安全的發展趨勢時,硬體安全的未來演進是非常值得參考的,硬體安全系列主要講述下ARM指令集的演進、Intel SGX解決方案以及蘋果和Google硬體安全芯片的應用,本篇文章就從我們最熟悉的ARM開始講起,
ARM在v7架構中就已經有了Security Extension,也就是TrustZone,其目的也很簡單,在不增加硬體成本的情況下為設備提供一個可信執行環境,此種情況下CPU分為兩個模式,Normal World和Secure World,兩個世界有其各自獨立的MMU,與之配套的TZASC(用于隔離記憶體)、TZPC(用于隔離外設)以及CCI總線構成了Cortex系列上的可信執行環境,軟體所需要做的無非是配置好兩個世界的切換,構建Secure World的OS和安全能力,在安全世界,軟體開發者基于MMU構建了DEP和ASLR,配合安全世界的特權級別劃分(SEL0和SEL1)實作用戶態和內核態隔離,用戶態應用之間的隔離,除此之外,CPU指令直接支持AES和HASH演算法讓加解密演算法在ARM處理器上執行的更加高效,
當前手機上的主流芯片都是基于ARM v8架構,比如蘋果A12,高通驍龍855,海思麒麟980,而且已經明確能從ARM官網看到v8.x的演進,比如:
- v8.1/2: 引入PAN和UAO,讓內核態的程式在一定程度上不允許訪問用戶空間的資源;
- v8.3:引入Pointer Authentication,這是一項關鍵更新,當前蘋果的A12芯片已經具備了此硬體特性,此特性在硬體上實作了CFI(Control Flow Integrity),保證執行流的正確,防止ROP的攻擊,
- v8.4:ARM會在安全世界引入hypervisor,也就是SEL2,有了這一層,在軟體層面就可以支持多個TEEOS,一定程度解決TEE碎片化問題,同時對于安全級別要求更高的業務(比如支付)可以跑在一個獨立TEEOS中,與通用的TEEOS隔離開,
- v8.5 ARM會引入BTI(防JOP攻擊)和Memory Tagging(記憶體區域標記,有效檢測溢位和UAF漏洞),
除了Cortex A系列指令集的演進,ARM還將TrustZone帶入到了Cortex M系列,在MCU上構建一個可信執行環境,此處的TEE具備MCU的低功耗和相比A系列CPU安全世界與非安全世界更快的切換速度,在Cortex M上引入TrustZone主要用于安全啟動、韌體安全、創建可信根,同時可控制安全外設,比如獨立的安全存盤、亂數產生器、安全始終,M系列上雖然引入了隔離的安全世界,但不會降低業務的實時性(相比沒有TEE的MCU的確定性時延),當前已經有廠商生產了支持TrustZone的M系列的芯片,比如MicroChip的SAM L10和L11(基于Cortex M23),詳細參考安智客之前的一篇《支持輕量化TEE的ARM Cortex-M23/33 芯片廠商》,值得注意的是,除了Cortex M23和M33,ARM也提供了一個新的 IP CortexM35P,此MCU除了具備TrustZone能力外(防軟體攻擊),還具備防物理攻擊的能力(繼承自SC300的安全特性),可應用在某些高安領域,如果成本可以接受的話,有可能是未來IoT新品的主力,
專為防硬體攻擊設計的securecore SC300,cpu核心為ARM v7-M,SC300集合了Cortex M3以及防硬體攻擊的能力(防側信道攻擊和故障注入攻擊),之前基于Cortex M3開發程序式的工程師可以非常容易的切換到SC300進行代碼開發,驍龍845中的SPU就是基于SC300,具備智能卡級別的安全能力,可用于移動支付業務的部署,
除了CPU和MCU,ARM還提供很多安全IP,比如CryptoCell、CryptoIsland,前者提供硬體的加解密能力,后者除了提供加解密能力外還提供可編程的能力(內置了MCU),
以上都是為ARM為Security而設計的IP,除此之外,ARM也在為Safety設計專門的IP,比如Cortex R52,
綜合上面的描述,我們可以勾勒出如下ARM體系架構演進的路線,

由此可以看出,ARM不斷通過硬體指令集的擴展從硬體層面直接防止控制流和資料流的攻擊,提升黑客攻擊難度;同時ARM將TrustZone引入IoT領域,支持輕量化TEE的部署,在IoT領域為安全業務提供可信執行環境和可信根,有了這些豐富的硬體安全能力,軟體開發者就需要考慮如何使能這些安全能力,構建更安全可信的系統,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/394156.html
標籤:其他
上一篇:密碼學基礎自研
下一篇:docker安裝kali
