芯片安全对接
本文通过移植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” 关键字打印。