PSA平臺安全架構簡介
1. 導言
物聯(lián)網(wǎng)(IoT)轉型的進程正如火如荼,并有可能改變企業(yè)和消費者體驗?;ヂ?lián)網(wǎng)的這個新階段能否取得成功,很大程度上取決于數(shù)十億各種互聯(lián)設備的信任和安全性能。企業(yè)需要依靠來自邊緣計算的數(shù)據(jù)才能做出商業(yè)決策,而消費者需要確保他們的互聯(lián)家居和數(shù)字生活不會被黑客攻擊。近期的攻擊和安全研究表明,在極端情況下,設計不佳的連接設備有可能被攻陷并導致互聯(lián)網(wǎng)基礎架構的關鍵部件被破壞,甚至影響到我們的安全。因此,我們需要能夠應對這些威脅并且適用于各種成本點的設備安全。平臺安全架構(PSA)的使命就是克服這一挑戰(zhàn)。它能夠服務于任何設計合理的 Arm 處理器,包括低成本微控制器。
安全并非可有可無
Arm宣布將推出平臺安全架構(PSA)和配套的開源軟件計劃Trusted Firmware-M。該項目能夠提供由硬件支持的可擴展安全性,可應用于成本從低到高的各類設備。其目的是通過共享的最佳實踐方法提高整個生態(tài)系統(tǒng)的安全性。為此,我們需要轉變安全經(jīng)濟學,降低實施強大安全措施的風險、成本、低層次碎片化和復雜性。
基于微控制器(MCU)的設備數(shù)量急速增長將導致:
l 數(shù)十億種物聯(lián)網(wǎng)設備和嵌入式連接設備設計,全部基于各種 Arm 解決方案
l 種類繁雜的使用案例和安全健壯性要求
l 來自多家供應商的系統(tǒng)組件集成:硬件、軟件和固件
l 各種組件的多樣化實施
l 不同項目之間可能無法復用的集成工作
本白皮書概述了全新架構——PSA。這種架構將為日益增加的基于MCU的連接設備奠定基于硬件和固件的安全基礎。PSA不限定CPU架構,但以基于MCU的設備為優(yōu)先服務對象,同時也可應用于全面可信執(zhí)行環(huán)境(TEE)太過龐大、太過復雜的其他平臺。
運行 Linux 等復雜操作系統(tǒng)、Arm TrustZone® 等現(xiàn)有基于硬件的安全產(chǎn)品以及可信執(zhí)行環(huán)境(TEE)的 Arm 應用處理器(即Cortex-A系列)也同樣適用。
1.1 行業(yè)挑戰(zhàn)
行業(yè)面臨如下挑戰(zhàn):
1. 在設備的整個生命周期內實施安全可能代價不菲
2. 安全設備很難實現(xiàn)規(guī)?;芾?/p>
3. 行業(yè)對傳感器和執(zhí)行器接收和發(fā)送的數(shù)據(jù)缺乏信心,因此無法全面發(fā)掘物聯(lián)網(wǎng)的經(jīng)濟效益
1.2 Arm 對更安全物聯(lián)網(wǎng)的愿景
Arm的安全愿景側重于三個主要領域:
1. 轉變安全經(jīng)濟學
設備的整個生命周期都應當提供用戶負擔得起的安全性。
2. 實現(xiàn)規(guī)模化安全性
物聯(lián)網(wǎng)的云運營商需要相應的設施來安全、有效地管理海量設備,無論何種設備類型和芯片類型。
3. 整個價值鏈的安全
物聯(lián)網(wǎng)的一個主要優(yōu)點就在于它生成和交換的數(shù)據(jù),以及從這些數(shù)據(jù)中分析提取的信息。企業(yè)必須能夠判斷數(shù)據(jù)的可靠性,進而實現(xiàn)整個生態(tài)系統(tǒng)共享的經(jīng)濟效益。
1.3 IP支持
Arm現(xiàn)有的安全產(chǎn)品和技術能夠幫助移動和上網(wǎng)本市場的硅芯片合作伙伴提高安全性和質量并加快產(chǎn)品的上市速度。Arm現(xiàn)有的安全產(chǎn)品包括:
l Armv8-A等包含TrustZone的Cortex-A系列
l Arm可信固件(針對Cortex-A系列),一種開源參考實施,包括可信 啟動和TEE加載組件
l 將TrustZone引入微控制器市場的Armv8-M架構
l Arm SecurCore,防篡改處理器系列
l TrustZone CryptoCell,提供平臺級安全服務的安全模塊
l TrustZone CryptoIsland,高度集成式安全子系統(tǒng),旨在提供片上智能卡級別的安全性
l Arm Mbed IoT Device Platform,提供相應的操作系統(tǒng)、云服務、工具和開發(fā)者生態(tài)系統(tǒng),以實現(xiàn)基于標準的商業(yè)物聯(lián)網(wǎng)解決方案的規(guī)?;_發(fā)和部署。
接下來我們將介紹平臺安全架構,為制造更安全連接設備提供方法。
2. 平臺安全架構
2.1 目標
平臺安全架構(PSA)是一個由威脅模型、安全分析以及硬件和固件規(guī)范組成的整體。它與開源參考實施共同幫助您在最低的安全層面為所有互聯(lián)設備實現(xiàn)統(tǒng)一的安全設計。PSA吸收并整合了整個行業(yè)的最佳實踐。它的服務對象是整個物聯(lián)網(wǎng)生態(tài)系統(tǒng),從芯片設計師和設備開發(fā)者到云和網(wǎng)絡基礎架構提供商以及軟件供應商。
PSA 提供了一種無需自行開發(fā)所有元件就能構建安全系統(tǒng)的方法。Arm是這個生態(tài)系統(tǒng)的領導者,其目標是保護整個互聯(lián)世界。
下列目標概述了確保數(shù)十億設備安全的框架:
l 簡化按照安全標準評估物聯(lián)網(wǎng)設備的過程
l 促進重復利用、提高互操作性和最大程度減少API碎片,進而降低生態(tài)系統(tǒng)合作伙伴開發(fā)軟件的成本和復雜性
l 利用PSA提供的原始資源實現(xiàn)設備安全模型,進而降低SoC設計者的成本和復雜性
為了實現(xiàn)上述目標,下列要求必須得到滿足:
l 為認證/評估基于Arm的SoC或設備建立基礎
l 定義核心安全功能
l 定義沙箱安全模型
l 為第三方軟件提供商實施的安全功能定義框架
l 定義基礎物聯(lián)網(wǎng)安全硬件平臺
l 為物聯(lián)網(wǎng)提供健壯的開源參考實施(類似于上網(wǎng)本和移動市場的Arm可信固件)
2.2 構建模塊
PSA 由三個部分組成:
1. 威脅模型和安全分析,來自各種典型的物聯(lián)網(wǎng)使用案例
2. 架構的固件和硬件規(guī)范
3. 固件架構規(guī)范的開源參考實施
PSA的基礎是設備的威脅模型,它們將安全要求延伸至其他各大構件,如圖 1所示。威脅模型與CPU架構無關,而另外兩大構件的作用是為統(tǒng)一的實施提供支持。
三大構件之間的關系如圖 1 所示。
圖 1 – PSA 的組成
2.3 威脅模型與安全分析
設計安全系統(tǒng)時,我們需要結合關鍵問題進行風險分析并建立威脅模型。這些關鍵問題包括:
l 我們要保護的資產(chǎn)
l 潛在的威脅
l 潛在攻擊的范圍和強度
l 潛在攻擊者的類型以及攻擊方式
通過這些研究可以確定安全目標,隨后制定減輕此類威脅的安全功能要求。
Arm 對相關的物聯(lián)網(wǎng)使用案例和情境進行了分析。通過分析得出普遍適用的安全原則,然后用它來指導架構規(guī)范文件的制定。
Arm 使用英語語言保護范圍(PP)方法來為評估目標(TOE)制定一系列安全功能要求(SFR)。每一個輪廓都考慮了功能描述、TOE 和必要的安全要求。這些文件要讓并非安全專家的工程師能夠使用。
各種PSA架構規(guī)范描述的硬件和軟件安全構件提供了滿足威脅模型所凸顯的安全要求所需的原語。
圖 2 顯示了高層次分析示例。
圖 2 – 一個儀表的安全分析示例
2.4 架構規(guī)范文件
PSA架構規(guī)范包括一系列彼此關聯(lián)的文件,如下所列:
1. 設備安全模型 – 基礎的信任模型和模式
2. 可信設備初始化 – 初始安全設備編程和配置要求
3. 可信基礎系統(tǒng)架構 [TBSA-M] – v8-M的硬件平臺要求
4. 可信啟動與固件更新
5. PSA固件框架M [PSA FF] – 受限物聯(lián)網(wǎng)平臺安全處理環(huán)境(SPE)的固件接口定義
6. PSA可信功能 – SPE內標準可信設備的定義
2.4.1 設備安全模型
設備安全模型(DSM)定義了在生態(tài)系統(tǒng)內設計和部署 PSA兼容可信設備的總體安全架構。它是其他PSA規(guī)范的頂層文件,為它們規(guī)定了通用語言、高階魯棒性規(guī)則和模型。
DSM的基礎是威脅模型和安全分析針對使用案例提出的建議。雖然DSM與使用案例無關,但其最初側重于幾個選定的物聯(lián)網(wǎng)使用案例。
DSM 包括三個主要方面:
1. 信任根和相關安全服務
2. 根秘密及其存儲、保護和初始化
3. 設備生命周期及其對信任根的影響
2.4.2 可信設備初始化
只有在根秘密和設備固件在安全生產(chǎn)過程的背景下初始化時,安全和信任模型才有效。
生產(chǎn)過程延伸到設備管理,以便向服務提供商和設備所有者分配設備屬性和固件更新等。
這是一份資料性文件,它指出并討論了對基礎架構和通用框架的一般需求,以促進設備安全架構中的這些過程并以及它們對信任根的依賴性。配置實際的工廠供應和設備管理架構應當由行業(yè)利益相關方負責,或者使用類似 Arm Mbed Cloud 的設備來完成。
2.4.3 可信基礎系統(tǒng)架構(TBSA)
Armv8-M的Arm可信基礎系統(tǒng)架構((TBSA-M)是一系列SoC硬件要求。它適用于基于 Armv8-M的設計,有助于研發(fā)更安全的設備。TBSA-M文件也能為計劃使用Armv7-M架構實施安全設計的硅芯片制造商提供參考。
TBSA-M包含圍繞Armv8-M處理單元(PE)進行系統(tǒng)設計時適用的最佳實踐安全原則。這些原則為設計和集成下列植根于硬件的功能特點提供支持:
l 信任根
l 受保護的密鑰庫
l 可信和不可信軟件組件的隔離
l 安全的固件更新機制
l 生命周期管理機制和安全的調試
l 高熵隨機數(shù)發(fā)生器;它對可靠的密碼必不可少
l 密碼編譯加速器,其作用是為適當?shù)陌踩δ鼙3謱崟r功能性
固件框架(PSA-FF)實現(xiàn)最好能在TBSA-M兼容設計的頂層進行,以便實現(xiàn)安全關鍵功能性和數(shù)據(jù)與應用固件數(shù)據(jù)隔離的安全處理環(huán)境。這樣可以提高設備的可信度,即便出現(xiàn)可能被利用的軟件漏洞。
2.4.4 可信啟動與固件更新
可信啟動和固件更新規(guī)定了確保MCU啟動的完整性所必須滿足的系統(tǒng)和固件技術要求。規(guī)范包括以下內容:
l 經(jīng)過驗證的啟動過程以建立安全運行時服務
l 安全的固件更新代理
l 固件更新的認證和授權說明,包含密碼證書和設備密鑰
l 有助于實現(xiàn)健壯性的建議和最佳實踐說明
規(guī)范的范圍與A系列客戶端設備的可信主板引導要求(TBBR)類似。
2.4.5 固件框架(PSA-FF)
固件框架(FF)基于設備安全模型的要求,規(guī)定了用于在受限物聯(lián)網(wǎng)設備中隔離可信功能的標準接口和框架??蚣芴峁?/p>
l 為可信和不可信固件描述隔離運行環(huán)境(分區(qū))的架構
l 描述各個分區(qū)的功能和資源的標準模型
l 用于向其他分區(qū)請求服務的安全 IPC 接口
l 描述分區(qū)如何彼此進行互動的模型,以及硬件和固件框架實施本身
該規(guī)范能夠實現(xiàn)安全固件功能性的開發(fā),可復用于符合固件框架實施的不同設備。
圖 3 顯示了這個框架的概況。
圖 3 – PSA 固件框架概況
2.4.5.1 安全分區(qū)與隔離
平臺安全架構固件框架(PSA-FF)定義了三個許可的固件運行隔離層級。這樣可以允許在高度受限的設備中減少隔離。與此同時,還能在擁有充足的資源的平臺上增加安全性和魯棒性,并且為安全功能提供一致的固件接口。
PSA-FF將系統(tǒng)內的執(zhí)行劃分為兩個分區(qū)——非安全處理環(huán)境(NSPE)和安全處理環(huán)境(SPE)。NSPE包含應用固件、操作系統(tǒng)內核和庫,通??刂浦蟛糠州斎?輸出外圍設備。SPE包含安全固件和硬件資源,與 NSPE固件和非安全硬件資源隔離。
PSA-FF將SPE進一步劃分為安全分區(qū)管理器(SPM)和安全分區(qū)。安全分區(qū)為安全功能提供執(zhí)行環(huán)境。SPM運用隔離邏輯來分隔不同的分區(qū),由平臺硬件使用主側和/或從側過濾器執(zhí)行。例如,安全屬性單元(SAU)和存儲保護單元(MPU)可以在新的 Armv8-M平臺中使用。其他平臺可以使用其他機制來提供類似的分區(qū)隔離。
2.4.5.2 安全IPC
固件框架定義了基于安全會話的IPC機制,可以讓彼此隔離的分區(qū)中的固件進行互動。具體說來,IPC框架讓一個分區(qū)內的固件可以通過標準接口向另一分區(qū)內的固件請求服務。API要求由分區(qū)之間的框架來復制消息,進而消除直接共享內存帶來的脆弱性風險。
2.4.5.3 安全功能
PSA-FF 將安全性功能顯示為一系列安全功能。每一項安全功能都是安全分區(qū)中實施的一系列相關安全操作。每一個安全分區(qū)能夠支持多項安全功能。
不同的芯片合作伙伴可以為標準安全功能(SF)提供他們自己的插件實現(xiàn)。固件框架通過預定義的API和調用語義將SF實施抽離。芯片和其他合作伙伴也可以定義他們自己的安全功能實現(xiàn),以便提供針對平臺的服務或更高水平的安全服務。
有關固件框架的更多詳情見 PSA 固件框架-M [PSA-FF] 規(guī)范。
2.4.6 可信功能
有些安全功能提供信任根服務(例如身份認證),或者是信任根的使能(例如加密操作);這些安全功能被稱為“可信功能”??尚殴δ艿臉藴式涌趯⒂蒔SA定義,例如:
l 安全認證
l 安全存儲/數(shù)據(jù)封裝
l 加密操作
l RNG 和安全時間服務
l 安全的固件更新
2.5 Trusted Firmware-M(TF-M)參考實現(xiàn)
Trusted Firmware-M是一個開源計劃,其作用是為基于M系列平臺的物聯(lián)網(wǎng)設備提供 PSA 固件規(guī)范的參考實現(xiàn)。TF-M 將公開托管在 GitHub 上,與目前針對 Cortex-A 驅動的移動和翻蓋設備的 A 計劃 Arm Trusted Firmware 類似。其他生態(tài)系統(tǒng)合作伙伴可能提供其他實現(xiàn)。
TF-M將在 Armv8-M主線(Cortex M33)上處理PSA固件運行隔離層級1,并將為更高層級的隔離類型提供更多支持。其他內核將在今后進行處理。
初始版本旨在提供:
l SSE-200的受限PSA運行隔離層級1的實施(Arm Musca-A1 測試芯片主板)
l 操作系統(tǒng)支持
- 初始版本主要針對Mbed操作系統(tǒng)
- RTX 被用于原型創(chuàng)建工作,發(fā)布時將提供有限支持
l 啟動加載程序,為安全和非安全鏡像提供認證啟動
l 基于cmake和GNU工具鏈的跨平臺構建系統(tǒng)
l 從一開始就支持的GCC和ARMCLANG編譯器
l 固件更新例子
2.6 生態(tài)系統(tǒng)使能
下面是開發(fā)中的生態(tài)系統(tǒng)使能支持工具:
l Arm Cortex-M原型系統(tǒng)(MPS2和MPS3)以及Arm Musca-A1測試芯片主板,用于實現(xiàn)開發(fā)
l Trusted Firmware-M:Armv8-M 平臺安全架構的開源參考實施
l Mbed操作系統(tǒng):基于MCU的物聯(lián)網(wǎng)設備的開源平臺操作系統(tǒng),針對所有Arm Cortex-M目標提供PSA的優(yōu)化實施
l Arm KEIL開發(fā)系統(tǒng),用于安全和非安全的軟件開發(fā)、調試和驗證
圖 4 – 工具支持