芯片安全对接

本文通过移植pangu_secure_demo安全solution示例, 介绍YoC安全子系统的芯片移植对接过程。

安全solution移植

本章节介绍pangu_secure_demo的芯片移植过程,移植前可以参考相关内容 最小系统安全机制及安全组件介绍CSI设计驱动接口

pangu_secure_demo代码路径:

./solutions/pangu_secure_demo/

pangu_secure_demo配置文件路径,下文的配置项均在该文件中修改:

./solutions/pangu_secure_demo/package.yaml

移植过程分为五个步骤:

步骤1、安全机制选择

YoC提供SOFTSE、安全MCU、TEE、SE四种可选安全机制。

  • SOFTSE

    系统采用该安全机制时,不需要添加配置项。

  • 安全MCU

    系统采用该安全机制,需要添加配置项:

  CONFIG_SYSTEM_SECURE: 1
  • TEE

    系统采用该安全机制,需要添加配置项:

    CONFIG_TEE_CA: 1
    
  • SE

    系统采用该安全机制,需要添加配置项:

    CONFIG_SE_CA: 1
    

当前pangu_secure_demo中采用的是TEE安全机制。在package.yaml中配置如下:

CONFIG_TEE_CA: 1

步骤2、安全算法组件配置

1、mbedtls组件配置

mbedtls组件中的算法有两种可选的实现方式,并且各算法可独立配置。

  • 使用mbedtls本组件中算法实现

    mbedtls组件采用该实现时,不需要添加配置项。

  • 使用sec_crypto组件实现

    mbedtls组件采用该实现时,需要在package.yaml中添加配置项:

     MBEDTLS_AES_ALT: 1
     MBEDTLS_SHA256_ALT: 1
     MBEDTLS_RSA_ALT: 1
    

2、sec_crypto组件配置

sec_crypto组件中算法有两种实现方式,各算法可独立配置:

  • 调用平台安全机制实现。

    sec_crypto组件采用该实现时,不需要添加配置项,。

  • 使用sec_crypto组件中软件实现。 sec_crypto组件采用该实现时,需要在package.yaml中添加配置项:

  CONFIG_SEC_CRYPTO_AES_SW: 1
  CONFIG_SEC_CRYPTO_SHA_SW: 1
  CONFIG_SEC_CRYPTO_RSA_SW: 1
  CONFIG_SEC_CRYPTO_RNG_SW: 1
  CONFIG_SEC_CRYPTO_ECC_SW: 1

步骤3、CSI安全算法驱动移植

当sec_crypto组件中采用AES、SHA、RSA、RNG平台硬件实现时需要移植对应CSI驱动。

步骤4、CSI Efuse驱动移植

YoC默认使用efuse作为密钥存储介质,此时需要移植CSI efuse驱动。

当用户不使用efuse作为密钥存储介质时,需要实现key_mgr组件的km_get_key()接口。该接口在bootloader、TEE中使用。

步骤5、pangu_secure_demo移植验证

该步骤验证以上的移植是否成功。

  • 编译pangu_secure_demo 并烧写镜像。

  • 重启单板,系统自动运行pangu_secure_demo程序。

    重启后串口应该有如下打印,提示输入运行命令。

    Welcome to CLI...
    >
    
  • 输入各组件的基本验证命令

mbedtls验证命令:

  sdemo mbedtls

key_mgr验证命令:

  sdemo km

sec_crypto验证命令

  sdemo sec_crypto
  • 移植成功时串口会有”success“,”passed“ 关键字打印,失败时会有“failed” 关键字打印。

results matching ""

    No results matching ""