高通Linux安全指南(二)

功能

高通 TEE 增强了安全功能及其扩展。它提供了接口,允许通过受信任应用程序 (TA) 扩展安全功能集。某些功能集成在硬件支持的 TZ 架构中,提供了一种系统安全配置。这些功能可以进一步定制以满足特定需求。

有关高通 TEE 和安全组件的信息,请参阅高通 TEE 和架构。

在本全面教程中,解锁在高通设备上安全启动技术的全部潜力。从生成加密密钥到编程硬件熔断器和管理安全启动状态,本视频详细介绍了每个步骤。适合希望通过认证启动过程增强设备安全性的开发人员。学习如何有效使用高通的工具,确保您的设备每次都能安全启动。
视频:高通处理器安全 – 基础

在本全面教程中,学习如何使用高通的 Type 1 虚拟机监控程序和可信执行环境。深入了解平台虚拟化、安全通信以及高通技术提供的广泛安全功能。学习如何使用高通的工具和 API 开发安全应用程序,并了解高通支持的关键安全用例和合规标准。非常适合希望增强设备安全性和功能性的开发人员。
视频:Qualcomm 处理器安全 - TEE 和芯片组服务

注意: 本指南中与功能相关的信息仅供您理解。对于任何配置或自定义,请参阅配置和自定义。

加密

高通 Linux 安全方案包括对硬件和软件加密的支持。

密钥管理

高通安全解决方案通过实现 PKCS#11 API 支持公钥密码学标准 (PKCS#11)。这使应用程序能够以平台无关的方式使用密钥和证书。

安全启动

安全启动是建立整个软件栈可信平台的启动序列。

存储安全

安全文件系统 (SFS) 用于存储敏感数据,如密钥和生物识别数据。

存储加密

存储加密通过支持文件和目录的透明加密来增强安全性。

SMC 调用

安全监控调用 (SMC) 用于将 Qualcomm TEE 中实现的服务和接口暴露给 Linux 客户端。它为请求进程提供识别信息给 Qualcomm TEE。

访问控制

访问控制信任模型确保持续的安全性,并在资产、接口、SoC 组件和镜像之间管理访问控制配置。

安全外设镜像加载

TZ 的安全外设镜像加载 (PIL) 认证不同的镜像并配置所有子系统(如音频、摄像头和视频)的 xPU。

SELinux

SELinux 是 Linux 的安全增强功能,提供对系统访问的更大控制。它在 Linux 内核中使用 Linux 安全模块 (LSM) 框架实现强制访问控制 (MAC)。

Qualcomm TEE

Qualcomm TEE 是在 Qualcomm 设备上的 Arm TZ 环境中运行的软件。

Qualcomm 虚拟机监控程序

Qualcomm 虚拟机监控程序提供了一个现代化的虚拟化框架,允许多个操作系统独立且同时运行,提供高性能。

Qualcomm WES

Qualcomm WES 是一套可信赖的服务,根植于硬件,能够安全地连接和管理设备。

安全强化

安全强化是一种通过使攻击者更难以利用系统漏洞来降低系统攻击风险的过程。

架构

Armv8 增强了 TZ 技术,将安全性纳入其架构。此技术提供了一个安全框架,使设备能够在软件和硬件层面应对安全威胁。

注意:提供的架构信息仅用于理解目的。您不需要进行任何配置或定制。

Arm 的硬件解决方案允许设计和实现运行在安全环境中的软件、应用程序或服务。此环境是一个独立的执行单元,确保硬件与非安全执行环境隔离。有关更多信息,请参阅 Qualcomm TEE。

高通 Linux 运行在 64 位 Arm 8.x 架构上。在此设置中,Arm 内核有两种执行模式:

  • 非安全模式:Linux 在 Arm 内核的这种模式下运行
  • 安全模式:Qualcomm TEE 和 TA 在 Arm 内核的安全模式下运行

Arm 内核的安全模式构成了 TZ 技术的核心。它为安全操作系统提供了一个基于硬件的安全环境,并将安全世界与非安全世界分隔开来。

下图展示了高通 Linux 安全软件架构。图中显示了组件或模块在丰富的(用户空间和内核空间)和可信执行环境中的分布。
在这里插入图片描述
高通 Linux 安全软件具有以下关键组件,每个组件在不同的执行环境中运行:

异常级别软件组件
非安全 EL0Linux 用户空间 – Mink、密钥管理、客户端应用程序和 Qualcomm WES
非安全 EL1Linux 内核空间 – SMC 调用和加密/伪随机数生成 (PRNG) 驱动程序
非安全 EL2Qualcomm 虚拟机监控程序
安全 EL0Qualcomm TEE SDK 和受信任应用程序
安全 EL1Qualcomm TEE MINK
安全 EL3安全监控器

Linux 用户空间(非安全 EL0)

这包括 Linux 用户空间中的主要安全模块/接口,它们根据 Arm 异常级别在非安全 EL0 中运行。

  • MINK – Linux(MINK 平台/系统监听服务/传输机制)

    • 提供服务和传输机制,通过 TA 使用 Qualcomm TEE 能力。
    • 包含系统监听服务,旨在扩展 Qualcomm TEE 功能。MINK 接口也常被称为 SMC 调用。
    • 实现 GP TEE 客户端 API,通过 libGPTEEC 和 libMTEEC 库执行基于 GP 的 TA。有关更多信息,请参见 GP
      TEE 客户端 API 规范。
    • 在富执行环境(Linux 用户空间)中实现客户端应用程序(CA)。它与在 Qualcomm TEE 中运行的 TA 交互。各种 CA 包括:
      • 基于 SMC 调用的/MINK CA
      • 使用 MINK/SMC 调用 API 开发的 CA
      • 基于 GP 的 CA
      • 使用 GP 基于 TEE 客户端 API 规范开发的 CA
  • 密钥管理

    • 加密客户端库(libckteec)与 TEE 的 PKCS#11 接口连接。运行在 Linux 上的用户空间应用程序可以使用此库直接访问 PKCS#11 接口。
    • libckteec 库定义了应用程序与加密设备之间的接口,使应用程序能够将加密设备视为令牌并执行由这些令牌实现的加密功能
    • PKCS#11 接口提供一系列加密服务,用于加密、解密、签名生成、签名验证和永久密钥存储。
      图示展示了内核和用户空间中的密钥管理:
      在这里插入图片描述
  • 参考 Qualcomm WES

  • 参考 存储加密
    有关各种安全软件组件的更多信息,请参见功能。

Linux – 内核空间(非安全 EL1)

以下是特定于安全的内核驱动程序:

  • SMC 调用驱动程序:
    • 通过将 Qualcomm TEE 对象封装在文件描述符中,为它们提供 Linux 抽象。
    • 将调用封装到共享缓冲区中的 Qualcomm TEE 对象中。
    • 追踪并分配回调调用给 Linux 进程。
    • 跟踪所有共享内存对象,并向 Qualcomm TEE 提供有关它们的信息。
  • 有关 CM 和加密/PRNG 驱动程序,请参阅相应的内核文档。

Qualcomm 虚拟机监控程序(非安全 EL2)

参见 Qualcomm 虚拟机监控程序章节。

Qualcomm TEE SDK(安全 EL0)

Qualcomm 提供了一个软件开发工具包 (SDK) 用于开发和构建 TA。该 SDK 包括必要的构建系统、头文件和库依赖项来编译 TA。

  • 有关受信任应用程序,请参阅 Qualcomm TEE → 受信任应用程序。

  • 为了开发 SMC 调用 TA、GP TA 以及基于 IDL/对象的 Qualcomm TEE,服务 API 可供完全访问 Qualcomm
    Linux 随附专有软件的用户使用。有关更多信息,请参阅《Qualcomm Linux 安全指南 - 附录》。

Qualcomm TEE MINK(安全 EL1)

在基于 Qualcomm TEE 内核的系统中,软件在一个或多个通信域中运行,如内核域或用户域。
这些域在访问内存和其他系统资源的能力上有所不同。

  • 其中一个域,称为内核域,在安全 EL1 执行,并完全控制系统的资源。
  • 其他域,称为用户域或进程,在安全 EL0 执行并对系统资源有受限访问。MINK 允许对授予进程的访问进行精确控制。

IPC 原语是基于对象能力的同步消息传递机制,允许在一个域中执行的代码调用在其他域中运行的对象。IPC MINK 原语启用域之间的通信。

安全监控器(安全 EL3)

安全监控器是 TZ 的一个组件,负责管理安全世界和非安全世界之间的转换。
它在监控模式下运行,通过从特权 Arm 模式执行安全监控调用 (SMC) 指令来激活。
安全监控器确保在非安全世界和安全世界之间切换时准确保存和恢复上下文。此外,它还处理安全中断的初始处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值