Introduction to the Trusted Services Project
目錄
- 1、Overview
- 2、What are Trusted Services?
- 3、Reference Deployment
- 4、Why have a separate Trusted Services project?
- 5、Project Goals
- 6、Project Structure
- 7、Building Trusted Services - deployments
- 8、Using Trusted Services - protocols
- 9、Common Layered Model
- 10、Test Strategy(測(cè)試策略)
- 11、Future steps
1、Overview
(1) Trusted Services (TS)是一個(gè)新的屬于trustedfirmware中的項(xiàng)目
(2) trustedfirmware的背景:
- 開(kāi)放管理社區(qū)項(xiàng)目
- 為 Armv8-A 和 Armv8-M 提供安全世界固件的參考實(shí)現(xiàn)
- 為 SoC 開(kāi)發(fā)人員和 OEM 提供符合 Arm 規(guī)范的參考代碼庫(kù)
(3) Trusted Services (TS)第一次released是在2020/11/26
(4) 起源于 Arm OSS firmware group在Cortex-A上提供的PSA Service
(5) Service有助于滿(mǎn)足 PSA 認(rèn)證要求
(6) 補(bǔ)充現(xiàn)有的 trustfirmware.org 項(xiàng)目
2、What are Trusted Services?
(1) 在客戶(hù)端執(zhí)行安全相關(guān)操作的固件服務(wù)的通用術(shù)語(yǔ)
(2) Clients could be
- User-space applications
- Kernel drivers
- Other trusted services
(3) trusted service provider在安全的處理環(huán)境中運(yùn)行,以保護(hù)安全敏感資產(chǎn)免受在環(huán)境外運(yùn)行的惡意軟件的侵害
(4) 在 Arm Cortex-A SoC 上,可以使用一系列安全處理環(huán)境
- Secure partitions – managed by a Secure Partition Manager (SPM)
- Trusted applications – managed by a TEE
- Secure enclave – a secondary MCU
(5) Example service
- Crypto – provides cryptographic operations with a protected key store
- Protected storage – provides protected persistent storage
- fTPM – TPM 2.0 firmware, running as a trusted service
- UEFI Keystore – a protected persistent store for UEFI keys
3、Reference Deployment
4、Why have a separate Trusted Services project?
(1) Trusted Services 項(xiàng)目為服務(wù)相關(guān)組件提供了一個(gè)環(huán)境,這些組件可以集成和部署在不同的處理環(huán)境中
(2) 該項(xiàng)目獨(dú)立于任何特定的安全處理環(huán)境項(xiàng)目
(3) 一個(gè)集中的項(xiàng)目創(chuàng)造了很多機(jī)會(huì):
- 采用具有標(biāo)準(zhǔn)約定和解決方案的通用框架
- 組件和測(cè)試用例重用
- 發(fā)布標(biāo)準(zhǔn)公共接口
- 共享安全增強(qiáng)功能
- 擁有用于構(gòu)建、測(cè)試和導(dǎo)出到客戶(hù)項(xiàng)目的通用解決方案
(4) 為使用通用核心組件在任何設(shè)備上運(yùn)行可信服務(wù)創(chuàng)造機(jī)會(huì)
5、Project Goals
- 采用易于復(fù)用組件的項(xiàng)目結(jié)構(gòu)。
- 使服務(wù)接口易于客戶(hù)端使用。
- 采用穩(wěn)健的分層模型,允許替代層實(shí)現(xiàn)共存。
- 支持業(yè)務(wù)部署到不同的處理環(huán)境。
- 通過(guò)簡(jiǎn)化添加和運(yùn)行測(cè)試用例來(lái)鼓勵(lì)測(cè)試。
- 支持在原生PC 環(huán)境中進(jìn)行測(cè)試和調(diào)試,以幫助應(yīng)用程序開(kāi)發(fā)人員。
- 重用外部項(xiàng)目中的組件,而無(wú)需維護(hù)分支。
- 使 SoC 和平臺(tái)開(kāi)發(fā)人員能夠貢獻(xiàn)硬件特定代碼。
- 提供可擴(kuò)展的構(gòu)建系統(tǒng),可與 Yocto 或 Buildroot 等 OS 構(gòu)建系統(tǒng)集成
6、Project Structure
7、Building Trusted Services - deployments
(1) A build of a binary, elf file, library (or whatever) is referred to as a deployment.
(2) 所有部署構(gòu)建文件都位于部署頂級(jí)目錄下
(3) 具體部署名稱(chēng)由以下定義:
<descriptive-name>/<environment> + <platform> (if necessary)
(4) 所有的部署都使用CMake
(5) 源代碼的重用單元稱(chēng)為組件。
(6) 一個(gè) component.cmake 文件定義了一組可以作為一個(gè)單元重用的文件
(7) 部署的 CMakeLists.txt 文件結(jié)合了一組組件和一個(gè)環(huán)境,以定義可以構(gòu)建和使用的可執(zhí)行文件或庫(kù)。
8、Using Trusted Services - protocols
(1) 公共接口定義稱(chēng)為協(xié)議
(2) 服務(wù)訪問(wèn)協(xié)議定義
- 形成服務(wù)接口的一組操作
- 每個(gè)操作的輸入和輸出參數(shù)
- 服務(wù)特定狀態(tài)代碼
(3) 一個(gè)RPC協(xié)議的作用:遠(yuǎn)程調(diào)用、返回結(jié)果
(4) Protocol definitions 通 code repo保持獨(dú)立。這有助于簡(jiǎn)化外部客戶(hù)端項(xiàng)目對(duì) TS 項(xiàng)目的依賴(lài)。
(5) 項(xiàng)目結(jié)構(gòu)允許替代協(xié)議定義和序列化方法。 目前支持:
- Protocol Buffers – 獨(dú)立于語(yǔ)言的接口定義。 方便非 C 客戶(hù)端。
- Packed-C – 擴(kuò)展 SCMI 使用的現(xiàn)有約定以支持可變長(zhǎng)度參數(shù)。
9、Common Layered Model
- 分層模型體現(xiàn)在項(xiàng)目結(jié)構(gòu)中。
- 保持層依賴(lài)盡可能簡(jiǎn)單有助于重用和擴(kuò)展新的服務(wù)和環(huán)境。
10、Test Strategy(測(cè)試策略)
(1) 從一開(kāi)始就將測(cè)試納入項(xiàng)目。
(2) 不同類(lèi)別的測(cè)試:
- 單元測(cè)試——子組件級(jí)別的測(cè)試。
- 組件測(cè)試——測(cè)試單個(gè)組件和組件。
- 服務(wù)測(cè)試——使用標(biāo)準(zhǔn)訪問(wèn)協(xié)議的端到端服務(wù)測(cè)試。
- 環(huán)境測(cè)試——測(cè)試安全處理環(huán)境提供的低級(jí)服務(wù)
(3) TS 項(xiàng)目已采用 CppUtest 來(lái)運(yùn)行 C/C++ 測(cè)試用例。
(4) 許多測(cè)試可能會(huì)在本地 PC 環(huán)境中運(yùn)行:
- 快速方便的回歸檢查方法。
- 在 PC 環(huán)境中調(diào)試更直接
(5) 添加新測(cè)試并運(yùn)行它們非常容易
11、Future steps
(1)添加對(duì)真實(shí)硬件平臺(tái)的支持——目前僅支持 Arm FVP (2020/11/26)
(2)添加新服務(wù)——目前支持加密和安全存儲(chǔ)。
(3)強(qiáng)化安全性——特別是客戶(hù)端身份和訪問(wèn)控制。
(4)PSA 1 級(jí)和2 級(jí)認(rèn)證硬件平臺(tái)。
將使 SoC 開(kāi)發(fā)人員和 OEM 能夠在他們的平臺(tái)上使用 TS 作為 PSA RoT
(5)擴(kuò)展測(cè)試以更好地代表現(xiàn)實(shí)生活中的用例
總結(jié)
以上是生活随笔為你收集整理的Introduction to the Trusted Services Project的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 01_SMC_Calling_Conve
- 下一篇: 物理攻击规避(Physical Atta