全景安全支持

安全应用程序

安全应用程序是在信任区中执行的一组安全功能。它包括各种证书管理和加密操作。

安全应用程序功能

安全应用程序的详细功能如下

名称

描述

SECURE_APP_FUNCTION_INIT_MODULE

初始化安全模块

SECURE_APP_FUNCTION_RELEASE_MODULE

释放安全模块

SECURE_APP_FUNCTION_GET_DAC

获取由PAI签署的证书

SECURE_APP_FUNCTION_GET_PAI_CERT

获取由PAA签署的证书

SECURE_APP_FUNCTION_SIGN_WITH_DACKEY

使用私钥签署DAC

启用安全应用支持

Matter 平台代码的默认配置未启用安全应用程序。用户可以通过在 ./subsys/matter/CMakePresets.json 中选择的预设中将 ENABLE_CG_SECURE_DAC_VENDOR 设置为 ON 来启用它。

准备 Secure APP

要在 Matter 平台上启用信任区,需要提供一个 Secure APP 。以下说明了如何编译安全应用程序。

打开命令提示符并导航到 matter 目录。

$ cd ./subsys/matter

转到 Secure APP 的编译目录。

$ cd thirdparty/cg/app_s_cg/proj/gcc

开始构建

$ make

编译成功后,应用程序的 bin 文件会生成在 ./subsys/matter/thirdparty/cg/app_s_cg/proj/gcc/build/bin 目录下,文件名为 app_s_MP_sdk_0.0.0.0_xxxx.bin

准备 Non-Secure APP

进入 Non-Secure APP 的编译目录

$ cd ./subsys/matter/samples

开始 build

$ ./build.py rtl8777g lighting --preset secure

编译成功后,应用程序 bin 文件 matter-cli-ftd_bank0_MP_dev_xxxx.bin 将生成在 ./subsys/matter/samples/build/bank0/bin 目录中。

用户数据

用户数据是在制造过程中设置的一组安全参数。它包括各种认证、固件版本、加密密钥。

用户数据的内容

用户数据的详细组件及其大小如下。

用户数据的格式

用户数据保存为 bin 文件(userdata_MP_0.0.0.0_xxxx.bin),可以下载到从定义地址开始的区域。它由加密密钥加密。

启用用户数据支持

Matter 平台代码的默认配置不启用用户数据。用户可以通过在 ./subsys/matter/CMakePresets.json 中选择的预设中将 ENABLE_CG_SECURE_DAC_VENDOR 设置为 ON 来启用它。

用户数据生成

本节介绍了使用工具从 DAC 软件包生成用户数据。

支持的平台

平台

架构

Windows

☒ x64

Linux

☒ x64

使用方法

在使用前,必须先配好 RealtekTeeGenBinTool.cfg

  • batchSize:要处理的最大 DAC 文件夹数量

  • privateKeyPath:私钥 PEM 文件的绝对路径

  • dacFolderPath:包含 PAI 证书和 DAC 文件夹的工作文件夹的绝对路径

  • headerPrependToolPath:prepend_header 的绝对路径

  • headerPrependToolArgs:prepend_header 的参数

  • md5ToolPath:md5 工具的绝对路径

DAC 文件夹结构示例如下

└── DAC-1316-1A25-A0001_enc
   ├── DAC-1316-1A25-A0001-00000279
      ├── DAC-1316-1A25-Cert-A0001-00000279.der
      ├── DAC-1316-1A25-Cert-A0001-00000279.pem
      ├── DAC-1316-1A25-Key-A0001-00000279.pem.enc
      └── DAC-1316-1A25-PrivateKey-A0001-00000279.der.enc
   ├── DAC-1316-1A25-A0001-00000280
      ├── DAC-1316-1A25-Cert-A0001-00000280.der
      ├── DAC-1316-1A25-Cert-A0001-00000280.pem
      ├── DAC-1316-1A25-Key-A0001-00000280.pem.enc
      └── DAC-1316-1A25-PrivateKey-A0001-00000280.der.enc
   ├── DAC-1316-1A25-A0001-00000281
      ├── DAC-1316-1A25-Cert-A0001-00000281.der
      ├── DAC-1316-1A25-Cert-A0001-00000281.pem
      ├── DAC-1316-1A25-Key-A0001-00000281.pem.enc
      └── DAC-1316-1A25-PrivateKey-A0001-00000281.der.enc
   ├── Pankore-Test-PAA-novid-Cert.der
   ├── Pankore-Test-PAA-novid-Cert.pem
   ├── Test-PAI-1316-1A25-Cert.der
   └── Test-PAI-1316-1A25-Cert.pem

然后通过以下命令,生成 bin

$ RealtekTeeGenBinTool ./RealtekTeeGenBinTool.cfg

成功生成后,用户数据 bin 文件会以 userdata_MP_0.0.0.0_xxxx.bin 命名,

保存在 ./subsys/matter/thirdparty/cg/realtekteegentool/bin/DAC-1316-1A25-A0001_enc/output 目录下。