1# 密钥证明介绍及算法规格 2 3 4HUKS为密钥提供合法性证明能力,主要应用于非对称密钥的公钥的证明。 5 6 7基于PKI证书链技术,HUKS可以为存储在HUKS中的非对称密钥对的公钥签发证书,证明其公钥的合法性。业务可以通过系统提供的根CA证书,逐级验证HUKS签发的密钥证明证书,来确保证书中的公钥以及对应的私钥,确实来自合法的硬件设备,且存储管理在HUKS中。同时,输出的密钥证书中包含密钥属主信息,格式如下: 8| 密钥属主 | 格式 | 说明 | 9| -------- | -------- | -------- | 10| HAP应用| {appId:"xxx", bundleName:"xxx"} | bundleName为应用包名 | 11| 系统服务| {processName:"xxx", APL:"system_basic \| system_core"} | APL为系统服务等级 | 12 13>**说明:** 14> 1. 当调用方为系统服务且APL等级为normal时,暂不支持密钥证明,此种情况下,processName与APL字段将置空。 15> 2. 密钥证明功能在模拟器场景不支持。 16 17 18密钥证明过程如下: 19 20 211. 业务将指定密钥别名和需要证明的密钥属性的标签传入HUKS。 22 232. 调用HUKS为应用生成一个依次由根CA证书、设备CA证书、设备证书、密钥证书组成的X.509证书链。 24 253. 将证书链传输至受信任的服务器,并在服务器上解析和验证证书链的有效性和单个证书是否吊销。 26 27<!--RP1--> 28当前提供了两种密钥证明方式。 29- 匿名密钥证明:不会泄露设备信息,没有权限管理。面向所有应用开放。为了保护用户设备信息,三方应用开发者只能使用匿名密钥证明。 30- 非匿名密钥证明:可以看到调用方设备信息,有权限管控,需申请[ohos.permission.ATTEST_KEY](../AccessToken/permissions-for-system-apps.md#ohospermissionattest_key)权限。 31<!--RP1End--> 32 33## 支持的算法 34 35以下为密钥证明支持的规格说明。 36<!--Del--> 37面向OpenHarmony的厂商适配密钥管理服务规格分为必选规格和可选规格。必选规格为所有厂商均支持的算法规格。而对于可选规格,厂商将基于实际情况决定是否实现,如需使用,请查阅具体厂商提供的说明,确保规格支持再使用。 38 39**建议开发者使用必选规格开发应用,可保证全平台兼容。** 40<!--DelEnd--> 41 42<!--Del--> 43**匿名密钥证明:** 44<!--DelEnd--> 45 46| 算法 | 备注 | API级别 | <!--DelCol4-->是否必选规格 | 47| -------- | -------- | -------- | -------- | 48| RSA | 支持Padding为PSS与PKCS1_V1_5的密钥 | 11+ | 是 | 49| ECC | - | 11+ | 是 | 50| SM2 | - | 11+ | 是 | 51 52<!--Del--> 53**非匿名密钥证明:** 54 55| 算法 | 备注 | API级别 | 是否必选规格 | 56| -------- | -------- | -------- | -------- | 57| RSA | 支持Padding为PSS与PKCS1_V1_5的密钥 | 8+ | 是 | 58| ECC | - | 8+ | 是 | 59| X25519 | - | 8+ | 是 | 60| SM2 | - | 8+ | 是 | 61<!--DelEnd--> 62