0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙开发:Universal Keystore Kit密钥管理服务 密钥证明介绍及算法规格

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-07-15 18:28 次阅读

密钥证明介绍及算法规格

HUKS为密钥提供合法性证明能力,主要应用于非对称密钥的公钥的证明。

基于PKI证书链技术,HUKS可以为存储在HUKS中的非对称密钥对的公钥签发证书,证明其公钥的合法性。业务可以通过系统提供的根CA证书,逐级验证HUKS签发的密钥证明证书,来确保证书中的公钥以及对应的私钥,确实来自合法的硬件设备,且存储管理在HUKS中。同时,输出的密钥证书中包含密钥属主信息,格式如下:

密钥属主格式说明
HAP应用{appId:"xxx", bundleName:"xxx"}bundleName为应用包名
系统服务{processName:"xxx", APL:"system_basicsystem_core"}

说明: 当调用方为系统服务且APL等级为normal时,暂不支持密钥证明,此种情况下,processName与APL字段将置空。 开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

密钥证明过程如下:

  1. 业务将指定密钥别名和需要证明的密钥属性的标签传入HUKS。
  2. 调用HUKS为应用生成一个依次由根CA证书、设备CA证书、设备证书、密钥证书组成的X.509证书链。
  3. 将证书链传输至受信任的服务器,并在服务器上解析和验证证书链的有效性和单个证书是否吊销。

当前提供了两种密钥证明方式。

  • 匿名密钥证明:不会泄露设备信息,没有权限管理。面向所有应用开放。为了保护用户设备信息,三方应用开发者只能使用匿名密钥证明。
  • 非匿名密钥证明:可以看到调用方设备信息,有权限管控,需申请"ohos.permission.ATTEST_KEY"权限。

支持的算法

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

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

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

算法备注API级别是否必选规格
RSA支持Padding为PSS与PKCS1_V1_5的密钥8+
ECC-8+
X25519仅支持非匿名接口8+
SM2-8+

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4612

    浏览量

    92887
  • 鸿蒙
    +关注

    关注

    57

    文章

    2351

    浏览量

    42850
收藏 人收藏

    评论

    相关推荐

    鸿蒙开发Universal Keystore Kit密钥管理服务简介

    Universal Keystore Kit密钥管理服务,下述简称为HUKS)向业务/应用提供
    的头像 发表于 07-04 14:20 451次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b><b class='flag-5'>密钥</b><b class='flag-5'>管理</b><b class='flag-5'>服务</b>简介

    鸿蒙开发Universal Keystore Kit密钥管理服务 密钥生成介绍算法规格

    当业务需要使用HUKS生成随机密钥,并由HUKS进行安全保存时,可以调用HUKS的接口生成密钥
    的头像 发表于 07-04 21:50 350次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b><b class='flag-5'>密钥</b><b class='flag-5'>管理</b><b class='flag-5'>服务</b> <b class='flag-5'>密钥</b>生成<b class='flag-5'>介绍</b>及<b class='flag-5'>算法规格</b>

    鸿蒙开发Universal Keystore Kit密钥管理服务 生成密钥ArkTS

    以生成DH密钥为例,生成随机密钥。具体的场景介绍及支持的算法规格
    的头像 发表于 07-05 15:17 324次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b><b class='flag-5'>密钥</b><b class='flag-5'>管理</b><b class='flag-5'>服务</b> 生成<b class='flag-5'>密钥</b>ArkTS

    鸿蒙开发Universal Keystore Kit密钥管理服务 生成密钥C、C++

    以生成ECC密钥为例,生成随机密钥。具体的场景介绍及支持的算法规格
    的头像 发表于 07-06 10:48 1144次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b><b class='flag-5'>密钥</b><b class='flag-5'>管理</b><b class='flag-5'>服务</b> 生成<b class='flag-5'>密钥</b>C、C++

    鸿蒙开发Universal Keystore Kit密钥管理服务 密钥导入介绍算法规格

    如果业务在HUKS外部生成密钥(比如应用间协商生成、服务器端生成),业务可以将密钥导入到HUKS中由HUKS进行管理密钥一旦导入到HUKS
    的头像 发表于 07-06 10:45 683次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b><b class='flag-5'>密钥</b><b class='flag-5'>管理</b><b class='flag-5'>服务</b> <b class='flag-5'>密钥</b>导入<b class='flag-5'>介绍</b>及<b class='flag-5'>算法规格</b>

    鸿蒙开发Universal Keystore Kit密钥管理服务 明文导入密钥 ArkTS

    分别以导入AES256与RSA2048密钥为例,具体的场景介绍及支持的算法规格
    的头像 发表于 07-08 10:22 379次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b><b class='flag-5'>密钥</b><b class='flag-5'>管理</b><b class='flag-5'>服务</b> 明文导入<b class='flag-5'>密钥</b> ArkTS

    鸿蒙开发Universal Keystore Kit密钥管理服务 明文导入密钥C、C++

    以明文导入ECC密钥为例。具体的场景介绍及支持的算法规格
    的头像 发表于 07-08 10:01 308次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b><b class='flag-5'>密钥</b><b class='flag-5'>管理</b><b class='flag-5'>服务</b> 明文导入<b class='flag-5'>密钥</b>C、C++

    鸿蒙开发Universal Keystore Kit 密钥管理服务 加密导入密钥 ArkTS

    以加密导入ECDH密钥对为例,涉及业务侧加密密钥的[密钥生成]、[协商])等操作不在本示例中体现。
    的头像 发表于 07-08 14:22 364次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b> <b class='flag-5'>密钥</b><b class='flag-5'>管理</b><b class='flag-5'>服务</b> 加密导入<b class='flag-5'>密钥</b> ArkTS

    鸿蒙开发Universal Keystore Kit 密钥管理服务 密钥使用介绍及通用流程

    为了实现对数据机密性、完整性等保护,可使用生成/导入的密钥,对数据进行密钥操作
    的头像 发表于 07-09 11:56 500次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b> <b class='flag-5'>密钥</b><b class='flag-5'>管理</b><b class='flag-5'>服务</b> <b class='flag-5'>密钥</b>使用<b class='flag-5'>介绍</b>及通用流程

    鸿蒙开发Universal Keystore Kit密钥管理服务 签名、验签介绍算法规格

    为实现数据完整性保护和防抵赖,可使用生成/导入的密钥,对数据进行签名验签操作。
    的头像 发表于 07-10 09:29 232次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b><b class='flag-5'>密钥</b><b class='flag-5'>管理</b><b class='flag-5'>服务</b> 签名、验签<b class='flag-5'>介绍</b>及<b class='flag-5'>算法规格</b>

    鸿蒙开发Universal Keystore Kit 密钥管理服务 密钥协商ArkTS

    以协商密钥类型为X25519 256,并密钥仅在HUKS内使用为例,完成密钥协商。
    的头像 发表于 07-10 09:22 332次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b> <b class='flag-5'>密钥</b><b class='flag-5'>管理</b><b class='flag-5'>服务</b> <b class='flag-5'>密钥</b>协商ArkTS

    鸿蒙开发Universal Keystore Kit 密钥管理服务 密钥协商 C、C++

    以协商密钥类型为ECDH,并密钥仅在HUKS内使用为例,完成密钥协商。具体的场景介绍及支持的算法规格,请参考[
    的头像 发表于 07-10 14:27 358次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b> <b class='flag-5'>密钥</b><b class='flag-5'>管理</b><b class='flag-5'>服务</b> <b class='flag-5'>密钥</b>协商 C、C++

    鸿蒙开发Universal Keystore Kit密钥管理服务 密钥派生介绍算法规格

    在密码学中,密钥派生函数(Key derivation function,KDF)使用伪随机函数从诸如主密码或密码的秘密值中派生出一个或多个密钥
    的头像 发表于 07-11 16:30 332次阅读

    鸿蒙开发Universal Keystore Kit密钥管理服务 密钥派生C、C++

    以HKDF256密钥为例,完成密钥派生。具体的场景介绍及支持的算法规格,请参考[密钥生成支持的算法
    的头像 发表于 07-11 14:28 297次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b><b class='flag-5'>密钥</b><b class='flag-5'>管理</b><b class='flag-5'>服务</b> <b class='flag-5'>密钥</b>派生C、C++

    鸿蒙开发Universal Keystore Kit 密钥管理服务 HMAC ArkTS

    HMAC是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code),是一种基于Hash函数和密钥进行消息认证的方法。
    的头像 发表于 07-12 18:22 637次阅读