【HarmonyOS NEXT】FAQ之系统开发(安全-密钥管理)

1、HUKS生成的密钥在什么情况下会消失或被清理

A:应用中调用huks.deleteKeyItem接口可以手动删除指定别名的密钥;当应用卸载后,应用存储在设备的安全环境对应的密钥会被自动销毁。

2、HUKS初始向量是否必须为随机数?对生成的密钥有什么影响

A:为了密钥的语义安全,初始向量必须为随机数,产生随机数的方法必须具有不可预测性。使用HUKS生成密钥时,HUKS_TAG_IV初始向量为可选参数;密钥加解密的过程中,设置特定参数时该初始向量必选。

3、并发场景下AES加密失败

A:如果使用HUKS相同密钥只用导入一次,系统会安全存储密钥,使用密钥别名进行密码学操作。如果不需要系统保存密钥的场景可以使用cryptoFramework。

4、sa加密公钥convertKey异常:401 invalid param

A:入参经过base64 encode转string,出参时未做base64 decode。

5、通用密钥库系统中,使用AES GCM算法进行操作,AAD可以为空吗

A:密钥管理服务中对于gcm分组模式实现,当前要求强制使用AAD进行消息完整性认证。

6、HUKS解密时,若明文包含中文字符,则解密后明文与原明文不一致

A:需要使用utf-8进行编解码,不然会出现乱码。

7、如何获取HarmonyOS签名证书的公钥信息

A:获取HarmonyOS签名可以参考指南手动签名章节,公钥用于给数据加密,用公钥加密的数据只能使用私钥解密,可以通过以下命令获取公钥信息:

openssl x509 -in xxx.cer -pubkey -noout

8、如何使用用户自定义的pin码(6到16位)进行密钥解锁

A:目前是支持该能力的,可以将HUKS_TAG_USER_AUTH_TYPE属性在使用PIN时要设置为HUKS_USER_AUTH_TYPE_PIN。

对于秘钥验证,只支持锁屏密码及生物特征的验证,支持密钥的用户身份认证访问控制:

  1. 对于高安敏感的业务密钥,需要在使用密钥的时候,再次要求用户即时的验证锁屏密码或生物特征,验证通过后,才能使用业务密钥。

  2. 对于非高安敏感的业务密钥,通过单独的密码验证(非锁屏密码),需要应用自己实现这个验证业务。

9、如何保存私钥等重要数据

A:可以通过密钥导入接口,将私钥导入到密钥管理服务进行管理,导入后密钥在安全环境(如TEE)使用,提升安全性。也可以通过关键资产存储服务加密保护,可参考Asset Store Kit(关键资产存储服务)

10、huks.isKeyItemExist和huks.hasKeyItem的区别

A:如下

huks.isKeyItemExist:若密钥存在,data为true,若密钥不存在,则error中会输出密钥不存在的error code。开发者需要通过错误码判断密钥不存在,不符合逻辑习惯。建议使用hasKeyItem接口。

huks.hasKeyItem:若密钥存在,返回值为true,若密钥不存在,返回值为false。

更多详情查看:文档中心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值