---
title: 特殊规格说明
description: "- ECM内生密码模块提供内置密钥，对应内置密钥通过管理工具或管理接口生成，生成非对称密钥或者主密钥时需要配置密码。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcctrustzone/cca/devg/Kunpeng_ommercialcryptography_16_0035.html
sourcePath: /source/zh/kunpengcctrustzone/cca/devg/Kunpeng_ommercialcryptography_16_0035.html
indexId: b6533b0c73c529f630b0e7a1aa4a3421438f45c58361e339eedc81b85a3cf37481
---
# 特殊规格说明

#### 内置密钥使用与攻击场景防护

- ECM内生密码模块提供内置密钥，对应内置密钥通过管理工具或管理接口生成，生成非对称密钥或者主密钥时需要配置密码。
- 密码模块满足国标0018-2023标准，对应SDF接口不直接提供给用户调用，而是提供给密码设备服务层调用。密码设备服务层通过调用管理工具生成内部密钥，正常使用过程中，服务层调用SDF_GetPrivateKeyAccessRight或者SDF_GetKEKAccessRight不会出现密码错误问题。
- 若隔离的环境中存在攻击者通过恶意多次调用SDF_GetPrivateKeyAccessRight或SDF_GetKEKAccessRight接口暴力破解密码，密码模块会记录连续调用输入错误密码次数，若输入次数超过500次，则会将该密码模块对应索引的密钥文件置为不可用状态，调用相应接口会返回错误码SDR_COMMFAIL。用户在遇到调用SDF_GetPrivateKeyAccessRight或SDF_GetKEKAccessRight接口报错，除了排查接口参数是否正确外，还应该向管理员咨询使用的密码是否正确。


#### 密码模块初始化

设备在初始化时，需要调用管理工具，生成内置密钥并配置可访问的应用路径。完成配置后，应用通过输入对应密钥密码，获得密钥使用权限，使用密码模块提供的能力。文件操作只允许在Host执行，容器内不能使用文件类操作的接口。


#### 加密密钥使用说明

内部密钥非对称私钥需要使用SDF_GetPrivateKeyAccessRight接口获取使用权限，密钥加密密钥需要使用SDF_GetKEKAccessRight接口获取使用权限。


#### 密钥密码强度

密钥的密码需要满足以下格式要求：

1. 口令必须包含如下至少两种字符的组合。

  - 至少一个小写字母。
  - 至少一个大写字母。
  - 至少一个数字。
  - 至少一个特殊字符：`~!@#$%^&*()-_=+\|[{}];:'",<.>/? 和空格。
2. 长度最少8字节，最多128字节。


#### 算法自测试

根据国密认证标准要求，密码模块新增算法自测试功能。该功能旨在验证密码模块中关键算法的正确性，确保模块运行的安全性。

自测试包括全量自测试和条件自测试。全量自测试在密码模块初始化启动时执行，对认证要求的国密算法进行一次性完整测试，若任一算法自测试失败，则判定为全量自测试失败，密码模块将启动失败，无法正常提供服务，需重启密码模块再次进行全量自测试；密码模块正常启动后，每次执行某一特定算法之前，将进行对应算法的条件自测试，若该算法的条件自测试失败，将无法使用该算法的服务，需重新调用该算法进行条件自测试。

算法自测试可通过配置文件进行配置，调用SDF_OpenDeviceWithConf接口读取并解析配置文件。配置格式为

```
selftest:true
```

配置项参数表如下：

| 取值 | 说明 |
| --- | --- |
| true (不区分大小写) | 开启自测试功能 |
| false (不区分大小写) | 关闭自测试功能（默认状态） |
| 其他值 | 非法。解析将失败，不会执行自测试。 |


性能影响警告：开启自测试功能（全量自测试和条件自测试）将大幅增加算法运算时间，降低性能。

自测试算法清单如下：

| 测试函数 | 算法描述 |
| --- | --- |
| sm2\_sign\_selftest | SM2 签名 |
| sm2\_verify\_selftest | SM2 验签 |
| sm2\_encrypt\_selftest | SM2 加密 |
| sm2\_decrypt\_selftest | SM2 解密 |
| sm3\_hash\_selftest | SM3 哈希 |
| sm3\_hmac\_selftest | SM3 HMAC |
| sm4\_ecb\_encrypt\_selftest | SM4 ECB 加密 |
| sm4\_ecb\_decrypt\_selftest | SM4 ECB 解密 |
| sm4\_cbc\_encrypt\_selftest | SM4 CBC 加密 |
| sm4\_cbc\_decrypt\_selftest | SM4 CBC 解密 |
| sm4\_gcm\_encrypt\_selftest | SM4 GCM 加密 |
| sm4\_gcm\_decrypt\_selftest | SM4 GCM 解密 |
| sm4\_mac\_selftest | SM4 MAC |
| random\_selftest | 随机数（扑克测试） |
