开发者
资源
文档评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

特殊规格说明

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

  • 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

随机数(扑克测试)