
OpenHarmony
文章平均质量分 79
陈乔布斯
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
OpenHarmony解读之设备认证:解密流程全揭秘
文章详细分析了鸿蒙设备认证过程中客户端处理end响应消息的流程。首先通过parse_auth_ack_response解析消息负载,获取关键字段;然后proc_sts_response_message根据消息类型调用receive_sts_end_response处理;最后通过回调函数parse_end_response_data解密认证返回值,并基于HKDF算法生成派生密钥。该过程涉及多个关键函数调用和状态转换,确保认证流程安全完成。(150字)原创 2025-06-20 14:40:53 · 498 阅读 · 0 评论 -
OpenHarmony解读之设备认证:服务端end请求处理深度解析~
本文分析了鸿蒙设备认证模块中服务端处理end请求的流程。源码位于/base/security/deviceauth,核心函数包括: parse_auth_ack_request:解析认证ack请求消息,将JSON格式数据转换为结构体; proc_sts_request_message:根据消息类型路由处理逻辑; send_sts_end_response:构造end响应数据,包含状态码设置、内存分配和数据拷贝等操作; send_end_response:具体实现end响应消息的生成逻辑。原创 2025-06-20 13:55:03 · 513 阅读 · 0 评论 -
OpenHarmony解读之设备认证:揭秘STS认证流程
本文分析了鸿蒙系统中设备认证模块的关键源码流程,主要包含三个核心函数:parse_auth_start_response负责解析认证响应消息,proc_sts_response_message处理STS协议响应,send_sts_end_request构造认证结束请求。这些函数共同完成了从接收服务端响应、数据处理到发起新一轮认证请求的全过程,其中涉及JSON解析、数据格式转换、加密验证等关键操作,最终通过设置会话密钥建立安全通信。该过程体现了鸿蒙系统在设备互认证环节的安全设计机制。原创 2025-06-19 20:36:16 · 445 阅读 · 0 评论 -
OpenHarmony解读之设备认证:sts协议-服务端响应sts start请求
本文介绍了鸿蒙设备认证过程中服务端处理认证请求的流程。服务端首先解析客户端发送的认证start请求消息,获取操作码、挑战值、密钥等关键信息。然后创建STS服务端对象,初始化协议参数并检查有效性。文章提供了相关函数源码,包括解析请求的parse_auth_start_request函数和创建STS对象的build_sts_server函数,展示了鸿蒙系统如何通过加密通信确保设备安全认证。该认证机制为鸿蒙分布式能力提供了基础安全保障。原创 2025-06-19 17:52:36 · 393 阅读 · 0 评论 -
OpenHarmony解读之设备认证:STS协议通信全流程解析
本文分析了HarmonyOS设备认证模块中基于STS协议的通信过程,重点探讨了客户端发起start请求的实现机制。设备认证模块通过PAKE协议完成会话密钥协商,并使用STS协议建立安全通信通道。文章详细解读了核心源码,包括: authenticate_peer函数作为身份认证入口 build_sts_client_object创建STS客户端对象 triggered_sts_client触发认证请求流程 消息构建和传输机制 该机制利用HC_OK等返回值确认操作状态原创 2025-06-19 17:17:20 · 1033 阅读 · 0 评论 -
OpenHarmony解读之设备认证:服务端处理PAKE协议End请求过程(2)
本文介绍了鸿蒙PAKE协议客户端处理End响应的流程。主要包含四个步骤:1)解析服务端confirm消息负载,获取kcfData字段;2)接收end响应消息并检查参数有效性;3)接收end响应数据,验证协议状态;4)解析end响应数据,验证对端proof并生成服务密钥。代码分析展示了鸿蒙安全协议的具体实现方式,包括消息解析、状态验证和密钥生成等关键过程。相关源码位于/base/security/deviceauth目录下。原创 2025-06-19 15:42:54 · 348 阅读 · 0 评论 -
OpenHarmony解读之设备认证:服务端处理PAKE协议End请求过程
本文分析了服务端处理PAKE协议End请求的关键流程,主要涉及消息解析和处理响应两个阶段。首先通过parse_pake_client_confirm函数解析收到的End请求消息,提取challenge、kcfData和epk等关键字段;然后调用proc_pake_request_message函数根据消息类型(PAKE_END_MSG)触发send_pake_end_response函数构造响应消息。处理过程中会申请内存空间存储解析数据,进行字段验证和字节转换,并最原创 2025-06-19 14:57:40 · 918 阅读 · 0 评论 -
OpenHarmony解读之设备认证:响应处理与End请求全流程
本文分析了鸿蒙设备认证模块中客户端处理PAKE协议响应消息的过程。主要内容包括: 客户端解析服务端响应消息,提取挑战值(challenge)、盐值(salt)、临时公钥(epk)等关键字段 通过json解析工具将消息负载转换为cjson结构体对象 使用字节转换函数将十六进制字符串转为byte数组 根据消息类型调用proc_pake_response_message处理响应 准备发送PAKE结束请求(end request)所需的回复数据 该过程体现了鸿蒙设备认证中安全密钥交换的实现细节,为开发者理解鸿蒙安全原创 2025-06-19 13:43:14 · 517 阅读 · 0 评论 -
OpenHarmony解读之设备认证:Pake协议服务端响应全解析(2)
本文解析OpenHarmony设备认证中PAKE协议服务端响应过程,重点分析服务端处理PAKE_START请求的源码实现。通过调用链追踪,详细解读了proc_pake_request_message、send_pake_start_response和send_start_response三个核心函数,包括参数校验、状态检查、消息解析与构建等关键流程。文中还涉及会话密钥设置、内存管理及错误处理机制,为开发者理解鸿蒙设备认证机制提供技术参考。原创 2025-06-18 21:53:57 · 852 阅读 · 0 评论 -
OpenHarmony解读之设备认证:Pake协议服务端响应全解析(1)
本文深入分析了OpenHarmony设备认证中PAKE协议服务端的响应流程,重点解读了服务端如何解析客户端发起的PAKE请求。通过源码分析可见,服务端首先调用parse_pake_request函数解析请求数据,该函数会处理以下关键信息: 解析操作码(operationCode)确定当前操作类型 获取版本信息(当前版本和最低支持版本) 判断是否支持256位模运算模块 通过JSON解析器处理请求数据包 文章详细讲解了版本号解析过程、内存管理机制以及错误处理逻辑,为开原创 2025-06-18 20:32:53 · 377 阅读 · 0 评论 -
OpenHarmony解读之设备认证:Pake协议详解与实战
本文分析了鸿蒙设备认证中PAKE协议的客户端启动过程。首先通过start_pake函数启动PAKE模块,检查参数后构建PAKE客户端对象;然后调用build_object函数根据模块类型创建子对象,检查对象依赖关系;最终执行build_pake_client_object构建客户端对象,获取协议参数并验证后,建立PAKE客户端。整个过程实现了从初始状态到START_REQUEST的转换,为后续设备认证奠定基础。原创 2025-06-18 17:47:44 · 1129 阅读 · 0 评论 -
OpenHarmony解读之设备认证:数据接收管理-通知对端
鸿蒙开发技术文章摘要(142字) 本文深入分析HiChain模块的接收数据处理流程,重点剖析了回复通知机制实现原理。源码层面解读了三大关键函数:1)encap_inform_message负责为通知消息分配内存并封装错误码;2)build_send_data_by_struct通过消息构造表动态生成不同类型的协议消息;3)set_result函数最终设置HiChain状态机处理结果。原创 2025-06-18 16:45:06 · 529 阅读 · 0 评论 -
OpenHarmony解读之设备认证:HiChain消息处理全解析(2)
本文主要分析了HiChain设备认证框架中构建子对象的核心源码逻辑。文章详细解读了build_object函数的实现过程,该函数根据消息模块类型(PAKE、STS等)创建相应的子对象实例(客户端/服务端)。通过对象映射表、互斥检查和依赖检查机制,确保对象创建的正确性和安全性。代码中包含了模块类型判断、对象互斥检测(如PAKE与STS模块不能同时存在)、对象依赖验证等关键流程,最终通过build_object_by_modular完成具体子对象的构建。该设计体现了HiChain在多模块协同工作时的精细化管理能原创 2025-06-18 15:53:41 · 302 阅读 · 0 评论 -
OpenHarmony解读之设备认证:HiChain消息处理全解析(1)
本文介绍了OpenHarmony设备认证中HiChain本端接收数据的消息处理阶段,重点分析了源码中的关键函数。主要内容包括:通过navigate_message函数解析消息类型和模块,check_message_support函数验证消息有效性,以及check_hichain_state_is_success状态检查机制。文章深入解读了PAKE和STS协议的处理流程,包括操作码获取、状态验证等核心功能实现,为理解鸿蒙设备认证机制提供了技术参考原创 2025-06-18 14:55:10 · 426 阅读 · 0 评论 -
OpenHarmony解读之设备认证:数据接收管理-消息解析
本文介绍了HiChain机制中处理接收数据的核心流程,重点分析了receive_data函数的三个阶段:消息解析、处理和通知对端。在消息解析阶段,通过deserialize_message和parse_data函数实现对原始数据的反序列化,将JSON格式数据解析为结构化消息对象。原创 2025-06-18 13:45:39 · 216 阅读 · 0 评论 -
OpenHarmony解读之设备认证:数据接收管理-获取HiChain实例(4)
本文详细解析了OpenHarmony设备认证中密钥对生成的两个关键阶段:密钥别名生成和密钥对生成。在密钥别名生成过程中,系统通过服务ID、认证ID和密钥类型计算出SHA256哈希值,并转换为十六进制字符串作为密钥别名;在密钥对生成阶段,源码分析揭示了密钥存储和管理的具体实现机制。文章还附带了对相关工具函数convert_byte_to_hex_string的解析,展示了字节数组到十六进制字符串的转换过程。这些核心技术为OpenHarmony的安全认证体系提供了底层支持。原创 2025-06-17 21:52:57 · 419 阅读 · 0 评论 -
OpenHarmony解读之设备认证:数据接收管理-获取HiChain实例(3)
本文深入分析了OpenHarmony设备认证模块中构建本地长期密钥对的后续流程。重点解析了generate_service_id和sha256两个关键函数: generate_service_id函数通过SHA256哈希算法,将会话标识中的HC包名称和服务类型组合计算,生成唯一的服务ID。该函数详细处理了参数校验、内存分配、数据拷贝等关键步骤,最终返回包含32字节哈希值的服务ID结构体。 sha256函数是对HUKS(Harmony Universal KeyStore)哈希接口的封装,接收字节缓冲区作为输原创 2025-06-17 20:31:25 · 362 阅读 · 0 评论 -
OpenHarmony解读之设备认证:数据接收管理-获取HiChain实例(2)
本文分析了鸿蒙设备认证模块中生成长期密钥对的关键流程,重点解读了build_self_lt_key_pair函数的实现细节。该流程主要包括:1)通过回调函数获取协议参数,包括认证会话密钥长度和双方认证ID;2)生成服务ID;3)创建密钥别名;4)生成长期保存的密钥对。文章详细剖析了设备认证过程中获取协议参数的实现机制,包括如何通过会话ID查询认证会话、获取对端认证ID和本端设备ID等关键步骤。通过对底层安全机制的深入解析,展现了鸿蒙系统在设备间可信认证方面的技术实现。原创 2025-06-17 17:34:36 · 691 阅读 · 0 评论 -
OpenHarmony解读之设备认证:数据接收管理-获取HiChain实例(1)
本文分析了OpenHarmony设备认证模块中HiChain实例获取的关键源码,重点解读了hichain.c文件的get_instance函数实现过程。主要包括: 检查会话标识信息和回调函数的有效性(check_identity和check_call_back) 初始化密钥信息(key_info_init) 创建HiChain实例并初始化其属性 创建长期密钥对(build_self_lt_key_pair) 文章还涉及设备认证模块的基本概念原创 2025-06-17 16:56:36 · 312 阅读 · 0 评论 -
OpenHarmony深度解读之设备认证:HiChain机制部分源码解析1(推荐模块之外)
本文分析了OpenHarmony分布式软总线中HiChain机制的接口实现,主要包括: 介绍了AuthProcessReceivedData函数处理身份认证数据的过程; 解析了AuthInitHiChain函数初始化HiChain的流程; 详细说明了get_instance函数创建hichain实例的执行步骤; 简要提及receive_data函数对数据的后续处理。 文章展示了HiChain如何实现设备互联安全,为后续深入分析HiChain数据处理流程奠定了基础。内容涉及会话管理、回调机制、内存分配等关键技原创 2025-06-17 15:44:58 · 262 阅读 · 0 评论 -
OpenHarmony深度解读之分布式软总线:设备认证机制分析
本文介绍了OpenHarmony的设备认证机制,主要包括设备间信任关系的建立和验证过程。该机制通过生成椭圆曲线公私钥对作为设备身份标识,并通过PIN码输入完成安全会话密钥协商。文章详细分析了设备认证协议的数据包格式,包括4字节协议标识符、4字节数据包类型标识等头部字段,以及会话密钥索引和密文数据等负载格式。这套机制支持多终端设备间的安全数据流转,实现端到端加密传输,确保用户数据在IoT设备间互联的安全性。原创 2025-06-17 14:42:50 · 1006 阅读 · 0 评论 -
OpenHarmony深度解读之分布式软总线:auth_interface.c文件部分源码解析
鸿蒙认证模块源码分析摘要 本文对鸿蒙系统auth_interface.c文件进行了部分源码解析,该文件主要提供设备间身份认证的接口实现。分析内容包括: 关键数据结构:定义认证会话信息、会话密钥结构体等 核心函数实现: AuthSessionMapInit():初始化认证会话表 AuthGetAuthSessionBySeqId():根据序列号查找认证会话 AuthGetNewAuthSession():创建新认证会话 ClearSessionKeyByFd():清除指定套接字的会话密钥 AuthGetSes原创 2025-06-17 13:40:08 · 288 阅读 · 0 评论 -
OpenHarmony源码分析之分布式软总线:authmanager/auth_conn.c
本文分析了鸿蒙操作系统中设备认证模块auth_conn.c的核心功能实现。该文件主要提供:基础通信功能:AuthConnSend()和AuthConnRecv()实现设备认证过程中的TCP数据收发包含参数校验和边界检查等安全机制加密传输机制:ModuleUseCipherText()根据模块类型判断是否启用加密GetEncryptTransData()实现数据加密处理,包括会话密钥获取、随机IV生成和AES-GCM加密原创 2025-06-16 22:07:05 · 279 阅读 · 0 评论 -
OpenHarmony源码分析之分布式软总线:authmanager/auth_conn.h
本文介绍鸿蒙设备认证连接头文件auth_conn.h的核心内容。该文件定义了设备认证相关的数据结构、常量宏和接口函数,用于管理设备间的身份认证和数据传输。主要包含:1) 定义了消息加密参数、数据包类型等常量;2) 设计了AuthConn、DataBuffer等关键数据结构,用于存储设备连接状态和通信数据;3) 提供了AuthConnRecv、AuthConnPostBytes等接口函数,实现认证数据的收发功能;4) 支持多种认证模块,包括可信设备、认证SDK等。该头文件为鸿蒙系统的设备互认证和安全通信提供了原创 2025-06-16 20:30:35 · 363 阅读 · 0 评论 -
OpenHarmony源码分析之分布式软总线:mbed TLS库的应用
本文介绍了Mbed TLS库在认证传输模块中用于数据加解密的实现细节。主要分析了AES-GCM对称加密算法在aes_gcm.c文件中的具体应用,包括关键函数如GenerateRandomIv()、EncryptTransData()和DecryptTransData()的实现逻辑。文章详细解读了Mbed TLS的GCM上下文初始化、密钥设置、加密/解密操作以及资源释放等过程,并说明了该方案如何同时提供数据加密和完整性校验功能。通过使用mbedtls_gcm_crypt_and_tag和mbedtls_gcm原创 2025-06-16 17:10:28 · 407 阅读 · 0 评论 -
OpenHarmony深度解读之分布式软总线:authmanager模块(6)/设备身份认证过程
本文分析了鸿蒙设备间身份认证的关键流程,重点关注MODULE_CONNECTION类型数据包的处理。主要包含两个认证环节:验证IP地址和验证设备ID。当收到认证请求后,系统会检查请求中的CODE字段,分别调用OnVerifyIp()或OnVerifyDeviceId()函数进行相应验证,并构造回复消息。验证通过后将连接状态设为在线。整个流程通过cJSON处理数据包,确保了设备间通信的安全性和可靠性。该认证机制为鸿蒙分布式能力提供了基础安全保障。原创 2025-06-16 16:02:30 · 323 阅读 · 0 评论 -
OpenHarmony深度解读之分布式软总线:authmanager模块(5)/设备身份认证过程
本文分析了鸿蒙系统中设备身份认证模块的核心处理流程,重点研究了MODULE_TRUST_ENGINE类型数据包的处理过程。主要内容包括: 当收到MODULE_TRUST_ENGINE类型且带有FLAG_REPLY标志的数据包时,系统会调用OnMsgOpenChannelReq函数进行处理; 详细解析了消息获取设备ID和认证ID的过程,包括MsgGetDeviceIdUnPack函数的实现细节; 介绍了将设备信息打包成JSON格式回复消息的MsgGetDeviceIdPack函数; 最终通过AuthConnP原创 2025-06-16 15:17:39 · 573 阅读 · 0 评论 -
OpenHarmony深度解读之分布式软总线:authmanager模块(4)/设备身份认证过程
本文分析了鸿蒙系统authmanager模块的设备身份认证过程源码。主要内容包括:介绍了OnDataReceived函数对认证协议数据包的处理流程,根据module字段区分不同处理分支;详细解析了DecryptMessage函数的消息解密过程,包括密钥获取、AES-GCM解密等步骤;分析了OnModuleMessageReceived函数如何根据模块类型进行消息分发处理;说明了对不同模块类型(MODULE_TRUST_ENGINE/MODULE_CONNECTION)消息的处理方式。原创 2025-06-16 14:14:24 · 267 阅读 · 0 评论 -
OpenHarmony深度解读之分布式软总线:authmanager模块(3)/设备身份认证过程
本文分析了OpenHarmony分布式软总线中authmanager模块对设备认证协议数据包负载部分的处理过程。主要流程包括:1) 在ProcessPackets函数中循环解析数据包头部和负载;2) OnDataReceived函数根据负载类型调用不同处理逻辑;3) 对于MODULE_AUTH_SDK类型数据,通过AuthInterfaceOnDataReceived创建或查找认证会话;4) 使用AuthSessionMapInit初始化全局会话表,并支持按序列号查询会话。原创 2025-06-15 21:03:27 · 285 阅读 · 0 评论 -
OpenHarmony源码分析之分布式软总线:authmanager模块(2)/设备认证通信管理
本文介绍了鸿蒙系统authmanager模块的设备认证处理流程,重点分析了wifi_auth_manager.c文件中数据接收和处理的核心代码。原创 2025-06-15 20:21:08 · 533 阅读 · 0 评论 -
OpenHarmony源码分析之分布式软总线:authmanager模块(1)/设备认证连接管理
本文分析了鸿蒙系统中的authmanager模块,重点介绍了设备身份认证连接请求的处理流程。当设备发起连接时,系统首先在trans_service模块建立socket连接,主要通过ProcessAuthData()函数实现。随后调用onConnectEvent()和ProcessConnectEvent()处理新连接事件。原创 2025-06-15 19:13:56 · 388 阅读 · 0 评论 -
OpenHarmony源码分析之分布式软总线:os_adapter模块解析
本文深入分析了鸿蒙系统os_adapter模块的源码实现,该模块作为操作系统适配层,针对LiteOS和Linux两种内核实现了互斥锁和消息队列的适配。原创 2025-06-14 21:37:51 · 533 阅读 · 0 评论 -
OpenHarmony源码分析之分布式软总线:msg_get_deviceid.c文件分析
本文分析了鸿蒙设备信息管理的核心代码,主要包含以下功能:设备信息打包和解包功能:MsgGetDeviceIdpack将设备ID和命令封装为cJSON格式MsgGetDeviceIdunpack解析JSON消息获取deviceId和authId原创 2025-06-14 20:23:12 · 353 阅读 · 0 评论 -
鸿蒙OpenHarmony源码分析之分布式软总线:trans_service/tcp_session.c
tcp_session.c文件提供的接口功能主要是创建一个TCP会话并返回其地址,在tcp_session.h文件中还提供了会话的属性结构体,本文将对这两个文件进行详细分析。原创 2025-06-14 19:13:52 · 407 阅读 · 0 评论 -
鸿蒙OpenHarmony源码分析之分布式软总线:trans_service/message.c文件分析
本文分析了鸿蒙系统trans_service模块中的message.c文件,该文件主要提供与cJSON库相关的接口,用于处理JSON格式数据的封装和解析。源码包含两个核心函数:GetJsonInt用于获取JSON对象的整数值,GetJsonString用于获取字符串值。两个函数均进行了输入参数校验,确保数据安全性和类型正确性。该模块为设备间通信提供基础数据解析支持,是鸿蒙分布式能力的重要组成部分。原创 2025-06-13 21:45:17 · 200 阅读 · 0 评论 -
鸿蒙OpenHarmony源码分析之分布式软总线:trans_service模块(6)/TCP会话管理
本文分析了OpenHarmony分布式软总线trans_service模块中TCP会话管理的数据处理机制。原创 2025-06-13 20:24:57 · 447 阅读 · 0 评论 -
鸿蒙OpenHarmony源码分析之分布式软总线:trans_service模块(5)/TCP会话管理
trans_service模块基于系统内核提供的socket通信,向authmanager模块提供设备认证通道管理和设备认证数据的传输;向业务模块提供session管理和基于session的数据收发功能,并且通过GCM模块的加密功能提供收发报文的加解密保护。本文将继续介绍鸿蒙系统的会话机制的管理,承接上文 OpenHarmony源码分析之分布式软总线:trans_service模块(4)/TCP会话管理 的内容,本文将介绍鸿蒙系统如何处理客户端发起的请求消息。原创 2025-06-13 17:39:10 · 507 阅读 · 0 评论 -
鸿蒙OpenHarmony源码分析之分布式软总线:trans_service模块(4)/TCP会话管理
trans_service模块基于系统内核提供的socket通信,向authmanager模块提供设备认证通道管理和设备认证数据的传输;向业务模块提供session管理和基于session的数据收发功能,并且通过GCM模块的加密功能提供收发报文的加解密保护。在上一篇博客 OpenHarmony源码分析之分布式软总线:trans_service模块(2)/会话管理之新会话 中已经介绍了在分布式软总线中TCP会话管理的部分内容,如TCP新会话的管理。原创 2025-06-13 15:33:50 · 417 阅读 · 0 评论 -
鸿蒙OpenHarmony源码分析之分布式软总线:trans_service模块(3)/线程同步锁管理
在分布式软总线提供的数据传输服务中,为了提高处理效率,使用了多线程并发处理的机制,因此就会引入线程同步的问题,所谓线程同步,即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作, 其他线程才能对该内存地址进行操作,而其他线程又处于等待状态,实现线程同步的方法有很多,临界区对象就是其中一种。trans_service模块的线程同步管理是基于互斥锁实现的,而对于不同的底层内核设备,互斥锁的调用库有所不同。原创 2025-06-13 14:27:43 · 287 阅读 · 0 评论 -
鸿蒙OpenHarmony源码分析之分布式软总线:trans_service模块(2)/会话管理之新会话
trans_service模块基于系统内核提供的socket通信,向authmanager模块提供设备认证通道管理和设备认证数据的传输;向业务模块提供session管理和基于session的数据收发功能,并且通过GCM模块的加密功能提供收发报文的加解密保护。在之前的博客 OpenHarmony源码分析之分布式软总线:trans_service模块/认证通道管理 中已经对认证通道管理的相关源码进行了详细的分析,因此本文重点介绍trans_service模块提供的第二个功能——会话管理。原创 2025-06-13 13:39:26 · 450 阅读 · 0 评论