Introduction to the Trusted Services Project

270 篇文章 407 订阅

快速链接:
.
👉👉👉 个人博客笔记导读目录(全部) 👈👈👈

在这里插入图片描述


在这里插入图片描述

1、Overview

(1) Trusted Services (TS)是一个新的属于trustedfirmware中的项目
(2) trustedfirmware的背景:

  • 开放管理社区项目
  • 为 Armv8-A 和 Armv8-M 提供安全世界固件的参考实现
  • 为 SoC 开发人员和 OEM 提供符合 Arm 规范的参考代码库

(3) Trusted Services (TS)第一次released是在2020/11/26
(4) 起源于 Arm OSS firmware group在Cortex-A上提供的PSA Service
(5) Service有助于满足 PSA 认证要求
(6) 补充现有的 trustfirmware.org 项目

2、What are Trusted Services?

(1) 在客户端执行安全相关操作的固件服务的通用术语
(2) Clients could be

  • User-space applications
  • Kernel drivers
  • Other trusted services

(3) trusted service provider在安全的处理环境中运行,以保护安全敏感资产免受在环境外运行的恶意软件的侵害

(4) 在 Arm Cortex-A SoC 上,可以使用一系列安全处理环境

  • 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 项目为服务相关组件提供了一个环境,这些组件可以集成和部署在不同的处理环境中
(2) 该项目独立于任何特定的安全处理环境项目

(3) 一个集中的项目创造了很多机会:

  • 采用具有标准约定和解决方案的通用框架
  • 组件和测试用例重用
  • 发布标准公共接口
  • 共享安全增强功能
  • 拥有用于构建、测试和导出到客户项目的通用解决方案

(4) 为使用通用核心组件在任何设备上运行可信服务创造机会

5、Project Goals
  • 采用易于复用组件的项目结构。
  • 使服务接口易于客户端使用。
  • 采用稳健的分层模型,允许替代层实现共存。
  • 支持业务部署到不同的处理环境。
  • 通过简化添加和运行测试用例来鼓励测试。
  • 支持在原生PC 环境中进行测试和调试,以帮助应用程序开发人员。
  • 重用外部项目中的组件,而无需维护分支。
  • 使 SoC 和平台开发人员能够贡献硬件特定代码。
  • 提供可扩展的构建系统,可与 Yocto 或 Buildroot 等 OS 构建系统集成
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) 所有部署构建文件都位于部署顶级目录下
(3) 具体部署名称由以下定义:
<descriptive-name>/<environment> + <platform> (if necessary)
(4) 所有的部署都使用CMake
(5) 源代码的重用单元称为组件。
(6) 一个 component.cmake 文件定义了一组可以作为一个单元重用的文件
(7) 部署的 CMakeLists.txt 文件结合了一组组件和一个环境,以定义可以构建和使用的可执行文件或库。
在这里插入图片描述

8、Using Trusted Services - protocols

(1) 公共接口定义称为协议
(2) 服务访问协议定义

  • 形成服务接口的一组操作
  • 每个操作的输入和输出参数
  • 服务特定状态代码

(3) 一个RPC协议的作用:远程调用、返回结果
(4) Protocol definitions 通 code repo保持独立。这有助于简化外部客户端项目对 TS 项目的依赖。
(5) 项目结构允许替代协议定义和序列化方法。 目前支持:

  • Protocol Buffers – 独立于语言的接口定义。 方便非 C 客户端。
  • Packed-C – 扩展 SCMI 使用的现有约定以支持可变长度参数。
9、Common Layered Model

在这里插入图片描述

  • 分层模型体现在项目结构中。
  • 保持层依赖尽可能简单有助于重用和扩展新的服务和环境。
10、Test Strategy(测试策略)

(1) 从一开始就将测试纳入项目。
(2) 不同类别的测试:

  • 单元测试——子组件级别的测试。
  • 组件测试——测试单个组件和组件。
  • 服务测试——使用标准访问协议的端到端服务测试。
  • 环境测试——测试安全处理环境提供的低级服务

(3) TS 项目已采用 CppUtest 来运行 C/C++ 测试用例。

(4) 许多测试可能会在本地 PC 环境中运行:

  • 快速方便的回归检查方法。
  • 在 PC 环境中调试更直接

(5) 添加新测试并运行它们非常容易

11、Future steps

(1)添加对真实硬件平台的支持——目前仅支持 Arm FVP (2020/11/26)
(2)添加新服务——目前支持加密和安全存储。
(3)强化安全性——特别是客户端身份和访问控制。
(4)PSA 1 级和2 级认证硬件平台。
将使 SoC 开发人员和 OEM 能够在他们的平台上使用 TS 作为 PSA RoT
(5)扩展测试以更好地代表现实生活中的用例


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码改变世界ctw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值