当前位置: 首页 > news >正文

分布式软总线认证方式分析

一、进入认证的入口判断

DeviceAuthStateEnter中,根据以下标志决定认证路径:

auth_session_fsm.c:L1290-L1299

if (info->normalizedType == NORMALIZED_SUPPORT || info->isSupportFastAuth || info->isSupportDmDeviceKey) { ret = TryRecoveryKey(authFsm); // 走快速认证 } else { // 走完整HiChain PAKE认证 if (!info->isServer) { ret = ProcessClientAuthState(authFsm); } }

大分支有两种,一种走快速认证,一种走haichain完整认证

二、四种认证方式详解

认证方式优先级:DmDeviceKey > Normalized Auth > Fast Auth > HiChain PAKE

三、各认证方式触发条件

方式1️⃣:DmDeviceKey(设备密钥认证)-优先级最高
项目说明
触发条件isSupportDmDeviceKey == true
密钥来源预共享的设备级密钥(DM Device Key)
适用场景设备管理器(DM)已建立过信任关系
代码位置auth_session_fsm.c:L1234-L1240
if (authFsm->info.isSupportDmDeviceKey) { AUTH_LOGI(AUTH_FSM, "reuse device key"); return ReuseDeviceKey(authFsm); // 直接复用,跳过PAKE协商 }

何时设置

  • 当收到包含有效DM_DEVICE_KEY_ID的设备ID消息时设置
  • auth_session_json.c:L918-L925

方式2️⃣:Normalized Auth(标准化认证)
项目说明
触发条件normalizedType == NORMALIZED_SUPPORT
密钥来源之前PAKE协商保存的normalizedKey
适用场景双方都支持标准化链路,且有可用的标准化密钥
代码位置auth_session_fsm.c:L1243-L1249
if (authFsm->info.normalizedType == NORMALIZED_SUPPORT) { AUTH_LOGI(AUTH_FSM, "normalized auth succ"); return RecoveryNormalizedDeviceKey(authFsm); }

何时设置- auth_session_json.c:L661-L675:

  • 双方都支持BIT_SUPPORT_NORMALIZED_LINK特性
  • 能够找到对应的normalizedKey进行解密验证

何时不设置

  • 对端版本过旧或不支持标准化:NORMALIZED_NOT_SUPPORT
  • 密钥查找失败或解密失败:NORMALIZED_KEY_ERROR

方式3️⃣:Fast Auth(快速认证)
项目说明
触发条件isSupportFastAuth == true
密钥来源之前认证保存的会话密钥(设备Key)
适用场景设备曾在过去成功认证过,可以快速恢复密钥
代码位置auth_session_fsm.c:L1251-L1257
if (authFsm->info.isSupportFastAuth) { AUTH_LOGI(AUTH_FSM, "fast auth succ"); return RecoveryFastAuthKey(authFsm); }

何时设置- auth_session_json.c:L720-L757:

  1. 设备发送了FAST_AUTH加密标签
  2. 能够找到对应的设备密钥 (GetFastAuthKey)
  3. 解密验证标签内容为"SOFTBUS_FAST_AUTH"成功
  4. 设备是潜在可信设备 (IsPotentialTrustedDevice)

何时不设置

  • 对端版本过旧不发送fastAuth标签
  • 找不到设备密钥
  • 解密验证失败
  • 设备不在可信关系中

方式4️⃣:HiChain PAKE(完整认证)
项目说明
触发条件上述三种快速认证都不支持
密钥来源PAKE协议实时协商生成
适用场景首次认证、密钥过期、快速认证失败
代码位置auth_session_fsm.c:L1261-L1273
static int32_t ProcessClientAuthState(AuthFsm *authFsm) { return HichainStartAuth( authFsm->authSeq, authFsm->info.udid, authFsm->info.connInfo.peerUid, authFsm->info.userId ); }

四、触发条件汇总表

认证方式条件标志必需前提失败回退
DmDeviceKeyisSupportDmDeviceKey=trueDM已预共享密钥→ HiChain PAKE
NormalizednormalizedType=SUPPORT+ 有可用密钥双方支持标准化链路→ HiChain PAKE
Fast AuthisSupportFastAuth=true曾成功认证过,有缓存密钥→ HiChain PAKE
HiChain PAKE上述都不满足最终认证方式
场景1: 两设备首次配对(无任何历史密钥) ├── normalizedType = NORMALIZED_NOT_SUPPORT(不支持标准化) ├── isSupportFastAuth = false(没有历史密钥) ├── isSupportDmDeviceKey = false(没有DM密钥) └── 进入: HiChain PAKE 完整认证 场景2: 设备曾认证过,恢复通信 ├── normalizedType = NORMALIZED_SUPPORT(支持且有密钥) ├── 进入: Normalized Auth(跳过PAKE协商) 场景3: DM预共享密钥场景 ├── isSupportDmDeviceKey = true(DM提供了设备密钥) ├── 进入: DmDeviceKey(最高优先级) 场景4: 历史密钥残留场景 ├── normalizedType = NORMALIZED_KEY_ERROR(密钥有问题) ├── isSupportFastAuth = true(快速认证密钥可用) └── 进入: Fast Auth

六、快速认证 vs 完整认证的本质区别

对比项快速认证 (RecoveryKey)完整认证 (HiChain PAKE)
是否需要PIN码❌ 不需要✅ 需要(PAKE协议)
密钥协商从本地缓存恢复实时ECDH类密钥交换
安全性依赖历史密钥安全存储基于PAKE协议更安全
认证速度⚡ 快(毫秒级)🐢 慢(涉及网络往返)
适用场景曾配对过的设备首次配对/密钥过期
http://www.jsqmd.com/news/1228752/

相关文章:

  • 如何永久保存Spotify音乐:spotDL完整免费下载指南
  • 如何快速掌握ComfyUI Essentials:AI图像处理的新手完整教程
  • AI建站工具怎么用?从零到上线一份完整的保姆级攻略
  • 5分钟极速部署Bonsai-8B:1位量化大模型全平台实战指南
  • 发现Yaagl:重新定义动漫游戏体验的创新开源工具
  • 车企芯片减配内幕:8155芯片性能与识别指南
  • 免费跨平台原型设计工具:Pencil如何帮助新手快速上手UI设计
  • MySQL 3:数据类型
  • 技术赋能:开源视频生成生态的整合革命
  • 传奇3官网下载与安装问题全攻略
  • C语言学习心得(2026.7.19)
  • 还在为论文AI率发愁吗?别再花冤枉钱买那些低效的降AI工具
  • CosyVoice终极指南:零基础实现多语言语音合成,支持中文、日文、粤语等100+语言
  • 2026 北京朝阳区老牌翡翠回收实体全面测评排行,当场出价无套路 - 奢侈品回收实体店
  • Windows系统文件DragDropExperienceDataExchangeDelegated.dll丢失找不到问题解决
  • 互联网大厂 Java 面试:从 Spring Boot 到微服务的深度探讨
  • RPCS3模拟器:5个步骤让你在电脑上重温PS3经典游戏
  • 2Gb 1.8V BGA24 NAND怎么选?
  • 鸿蒙 ArkTS 实战:Daily Eco Quiz 从每日环保问答到绿色行动闭环完整解析
  • 别被名字迷惑:一份AI建站工具选型标准与深度对比指南
  • 3分钟学会DUSt3R:零代码实现浏览器端实时3D场景重建的终极指南
  • 基于Coze的投诉话术智能体开发实战
  • Mac窗口管理革命:5个Loop快捷键技巧让你的工作效率翻倍
  • QQ自动签到神器:XAutoDaily使用指南与配置方法
  • 2026年7月更新曲靖正规持证防水修缮公司,专业上门全屋补漏推荐 - 吉林同城获客
  • simple-web-worker项目解析:核心代码实现与架构设计
  • 终极指南:如何用RR快速搭建你的私有NAS系统
  • 探索Duix.Avatar:从零构建你的AI数字分身实战指南
  • 脑机接口与基因编辑:人类进化的科技前沿
  • 完整指南:用PyTorch Geometric构建异构图神经网络解决推荐系统难题