鸿蒙开发:Universal Keystore Kit(密钥管理服务)【密钥导入介绍及算法规格】

密钥导入介绍及算法规格

如果业务在HUKS外部生成密钥(比如应用间协商生成、服务器端生成),业务可以将密钥导入到HUKS中由HUKS进行管理。密钥一旦导入到HUKS中,在密钥的生命周期内,其明文仅在安全环境中进行访问操作,不会传递出安全环境,保证任何人都无法获取到密钥的明文。

密钥导入的方式包含明文导入和加密导入两种方式。

明文导入

该方式直接将密钥明文导入HUKS,在导入过程中密钥明文会暴露在非安全环境中,一般适用于轻量级设备或低安业务。

加密导入

该方式支持业务与HUKS建立端到端的加密传输通道,将密钥安全加密导入到HUKS中,确保导入传入过程中密钥不被泄露,适用于高安敏感业务。相较于明文导入,加密导入步骤更多,密钥材料更复杂。

  • 推荐使用该方式导入的密钥类型:对称密钥、非对称密钥对

下图为加密导入密钥开发时序图。

加密导入密钥开发顺序图

根据开发流程,在导入加密密钥过程中,需要依次调用HUKS的生成密钥、导出公钥、导入加密密钥、删除密钥接口。

导出密钥接口返回的[公钥明文材料]是按照X.509格式封装,导入加密密钥接口中的密钥材料需满足LengthData-Data的格式封装。

加密导入密钥材料格式

内容长度
业务公钥长度LCaller_Pk4字节
业务公钥Caller_PkLCaller_Pk字节
Shared_Key加密参数AAD2长度LAAD24字节
Shared_Key加密参数AAD2LAAD2字节
Shared_Key加密参数Nonce2长度LNonce24字节
Shared_Key加密参数Nonce2LNonce2字节
Shared_Key加密参数AEAD2长度LAEAD24字节
Shared_Key加密参数AEAD2LAEAD2字节
Caller_Kek密文长度LCaller_Kek_enc4字节
Caller_Kek密文Caller_Kek_encLCaller_Kek_enc字节
Caller_Kek加密参数AAD3长度LAAD34字节
Caller_Kek加密参数AAD3LAAD3字节
Caller_Kek加密参数Nonce3长度LNonce34字节
Caller_Kek加密参数Nonce3LNonce3字节
Caller_Kek加密参数AEAD3长度LAEAD34字节
Caller_Kek加密参数AEAD3LAEAD3字节
密钥明文材料长度的长度LTo_Import_Key_size4字节
密钥明文材料长度To_Import_Key_sizeLTo_Import_Key_size字节
To_Import_Key密文长度LTo_Import_Key_enc4字节
To_Import_Key密文To_Import_Key_encLTo_Import_Key_enc字节 HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿

QQ截图20240705211300.png

支持的算法

以下为密钥导入支持的规格说明。

面向OpenHarmony的厂商适配密钥管理服务规格分为必选规格和可选规格。必选规格为所有厂商均支持的算法规格。而对于可选规格,厂商将基于实际情况决定是否实现,如需使用,请查阅具体厂商提供的说明,确保规格支持再使用。

建议开发者使用必选规格开发应用,可保证全平台兼容。

算法支持的密钥长度API级别是否必选规格
AES128、192、2568+
RSA512、768、10248+
RSA2048、3072、40968+
HMAC8-1024(含),必须是8的倍数8+
ECC2248+
ECC256、384、5218+
ED255192568+
X255192568+
DSA512-1024(含),8的倍数8+
DH20488+
DH3072、40968+
SM22569+
SM41289+
  • 26
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值