鲲鹏社区首页
中文
注册
开发者
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

简介

鲲鹏安全计算密码模块是基于华为自研可信执行环境操作系统(Trusted Execution Environment OS, TEE OS)提供的一个密码模块套件,该模块分为CA/TA两部分,TA部分内置于TEE OS中,CA部分包括API接口库和密钥管理工具,旨在为安全业务提供便捷、安全的密码算法能力。

应用场景

本密码模块符合GM/T 0018-2012、2023标准,为公钥密码基础设施应用中的通用密码服务层提供基础密码服务,包括密钥生成,单一的密码运算,文件管理等服务。典型应用场景如密码机应用场景:本密码设备可作为密码机(卡)、CPU内生密码模块的替代品,提供标准密码接口的同时,具备高可靠、低成本等优点。

软件架构

TEE OS是基于TrustZone架构的可信安全隔离执行环境,密码模块管理单元随TEE OS启动而加载运行。密码运算运行在安全侧,REE侧提供标准SDF接口支持和调用。

图1 鲲鹏安全计算密码模块架构图

libsdf.so:部署在REE侧,提供标准的SDF接口。将密码应用的密码运算请求转发到TEE OS密码模块管理单元中运行。

华为TEE OS架构详见系统架构

原理描述

鲲鹏安全计算密码模块运行在华为自研的安全TEE OS基础之上,REE侧提供符合GM/T 0018-2012和2023标准规范的接口库文件libsdf.so,用户应用调用libsdf.so接口后,请求被转发到TEE侧,由密码模块管理单元进行处理,算法服务单元基于TEE OS底层实现具体的密码运算,安全存储服务单元提供数据加密保存。

图2 SDF架构原理

基本概念

  • 设备密钥与内部用户密钥。
    • 内部用户密钥为鲲鹏安全计算密码模块管理的密钥,外部用户密钥为用户管理的密钥。
    • 设备密钥只能在设备初始化时生成或安装,内部用户密钥通过密码设备管理工具生成或安装。
    • 设备密钥和内部用户密钥存放于密钥存储区,索引号从0开始检索,每个索引号对应一个签名密钥对和一个加密密钥对。其中,索引号为0表示设备密钥。索引号从1开始表示用户密钥。
  • 密钥加密密钥。

    密钥加密密钥通过密码设备管理工具生成或安装,密钥长度为128位,存放于密钥存储区,使用索引号从1开始。

对系统的影响

客户侧程序通过集成libsdf.so来调用SDF接口,libsdf.so通过驱动调用TEE侧的鲲鹏安全计算密码模块,对REE侧系统无影响。