OpenHarmony解读之设备认证:sts协议-服务端响应sts end请求 在上文中说到,客户端根据服务端的start响应消息发起了end请求,本文将重点介绍服务端是如何处理和响应end请求的。这一模块的源码位于:/base/security/deviceauth。
OpenHarmony解读之设备认证:sts协议-客户端发起sts end请求 客户端收到来自服务端的响应消息之后,针对消息内容进行相关处理并再次发起sts end请求,目的在于发送可信认证数据,使得服务端可以验证客户端的身份。本文将对这个过程进行详细介绍。这一模块的源码位于:/base/security/deviceauth。
OpenHarmony解读之设备认证:sts协议-服务端响应sts start请求 上文讲到,客户端设备向服务端设备发起认证start请求,本文将介绍服务端接收到请求消息后的处理过程以及如何响应客户端。这一模块的源码位于:/base/security/deviceauth。
OpenHarmony解读之设备认证:sts协议-客户端发起start请求 一、概述为实现用户个人数据在多个终端设备间的安全传输,设备认证模块提供将多个设备安全连接起来的能力,通过设备间信任关系建立和设备通信时信任关系验证保证安全性。主控设备和配件设备基于PAKE协议完成认证会话密钥协商,并基于该会话密钥,安全的交换各自身份公钥。当建立过信任关系的主控设备与配件设备间进行通信时,双方将相互交换身份公钥,并通过检查本地是否存储对端身份信息的方式确认对端与本设备的信任关系。进一步地,基于双方的身份公私钥对,通信对端设备可以基于STS协议进行密钥协商并建立安全通信通道,支撑设备间通信
OpenHarmony解读之设备认证:pake协议-客户端接收end响应 一、概述在上一篇博客中提到,服务端针对客户端发起的end请求,作出了end响应,因此,本文将介绍客户端接收到end响应之后的处理过程。二、源码分析这一模块的源码位于:/base/security/deviceauth。1. 首先执行parse_pake_server_confirm函数解析响应消息。/*函数功能:解析服务端confirm消息负载函数参数: payload:消息负载 data_type:数据类型函数返回值: 返回pake_end_response_dat
OpenHarmony解读之设备认证:pake协议-服务端响应pake end请求 一、概述针对客户端发起的end请求,服务端应作出对应的响应,本文重点介绍服务端解析end请求的过程及构造响应消息的过程。二、源码分析这一模块的源码位于:/base/security/deviceauth。1. 首先解析收到的消息数据:parse_pake_client_confirm函数。/*函数功能:解析pake客户端confirm消息函数参数: payload:消息负载部分 data_type:数据类型函数返回值: 返回pake_end_request_data结
OpenHarmony解读之设备认证:pake协议-客户端发起end请求 一、概述在前面的文中,客户端首先发起start请求,然后服务端进行响应,本文将介绍客户端收到来自服务端的响应(response)消息的处理过程以及客户端针对该响应发起end请求的过程。二、源码分析这一模块的源码位于:/base/security/deviceauth。1. 首先解析该response消息,调用parse_pake_response函数实现:/*函数功能:解析pake服务端响应消息函数参数: payload:消息负载 data_type:数据类型函数返回值:
OpenHarmony解读之设备认证:pake协议-服务端响应pake start请求(2) 一、概述本文将继续介绍服务端响应pake协议的start请求的过程,承接上文:OpenHarmony解读之设备认证:pake协议-服务端响应pake start请求(1)。二、源码分析这一模块的源码位于:/base/security/deviceauth。1. 在上文中创建完pake服务端对象之后,开始进入消息处理阶段,根据协议模块字段在全局分布式消息表中查询对应的消息处理函数,此处应该是proc_pake_request_message函数。/*函数功能:处理pake请求消息函数参数:
OpenHarmony解读之设备认证:pake协议-服务端响应pake start请求(1) 一、概述在上一篇博客OpenHarmony解读之设备认证:pake协议-客户端发起start请求中讲到,客户端设备向服务端设备发起请求,本文将介绍服务端设备是如何响应客户端设备的请求并作出具体回复的。接收消息数据的过程在前面的博客中已经有所介绍,这里不再赘述。二、源码分析这一模块的源码位于:/base/security/deviceauth。1. 首先执行函数parse_pake_request解析pake请求消息。/*函数功能:解析pake协议请求消息函数参数: payload:消息
OpenHarmony解读之设备认证:pake协议-客户端发起start请求 一、概述在设备认证过程中,pake协议用于认证会话密钥协商,基于该会话密钥,双方可以安全地交换各自的身份公钥。从本文开始,将对pake协议的详细过程进行介绍,本博客主要介绍客户端发起start请求的过程,协议状态从PROTOCOL_INIT转换为START_REQUEST。二、源码分析这一模块的源码位于:/base/security/deviceauth。1. start_pake函数,启动pake模块。/*函数功能:启动pake模块函数参数: handle:hichain实例
OpenHarmony解读之设备认证:数据接收管理-通知对端 一、概述在HiChain本端接收数据的处理过程中:(1)在正确解析并处理完接收的数据之后,应构造相应的通知消息回复给对端。(2)在消息处理过程中会有出现错误的情况,在发现错误之后,应针对相应的错误情况通知对端,否则对端会一直处于未知状态。本文将介绍回复通知的相应过程。二、源码分析这一模块的源码位于:/base/security/deviceauth。在receive_data函数中,出现错误会跳转到inform处,在inform阶段,首先调用函数encap_inform_message为通知消息申
OpenHarmony解读之设备认证:数据接收管理-消息处理(2) 一、概述本文将继续介绍HiChain本端接收数据的处理过程中的消息处理阶段的剩余内容。二、源码分析这一模块的源码位于:/base/security/deviceauth。检查消息为系统可支持并合法之后,调用build_object函数构建HiChain子对象,具体分析如下:/*函数功能:构建HiChain子对象函数参数: hichain:HiChain实例 modular:消息模块类型 is_client:是否是client params:构建参数函数返回
OpenHarmony解读之设备认证:数据接收管理-消息处理(1) 一、概述本文将承接上一篇博客OpenHarmony解读之设备认证:数据接收管理-消息解析的内容,主要介绍HiChain本端接收数据的处理过程中的消息处理阶段。二、源码分析这一模块的源码位于:/base/security/deviceauth。在receive_data函数中,首先执行deserialize_message函数将消息解析完毕保存在struct message结构中,然后调用navigate_message函数,根据消息码得到消息类型msg_type和消息模块modular,具体分析如
OpenHarmony源码分析之分布式软总线:trans_service模块(4)/TCP会话管理 一、概述trans_service模块基于系统内核提供的socket通信,向authmanager模块提供设备认证通道管理和设备认证数据的传输;向业务模块提供session管理和基于session的数据收发功能,并且通过GCM模块的加密功能提供收发报文的加解密保护。在上一篇博客 OpenHarmony源码分析之分布式软总线:trans_service模块(2)/会话管理之新会话中已经介绍了在分布式软总线中TCP会话管理的部分内容,如TCP新会话的管理。本文将继续介绍会话管理的相关内容,重点在于TCP会话
OpenHarmony解读之设备认证:数据接收管理-消息解析 一、概述从本文开始,将介绍在HiChain机制中如何处理本端接收到的数据及其响应对端的过程。这个过程的入口函数为receive_data,在receive_data函数中,主要分为三个阶段:消息解析阶段、消息处理阶段和通知对端阶段,本文的重点是总体分析receive_data函数,然后对消息解析阶段的部分内容进行分析。二、源码分析这一模块的源码位于:/base/security/deviceauth。receive_data函数的整体分析:/*函数功能:HiChain处理接收到的消息数据函
OpenHarmony解读之设备认证:数据接收管理-获取HiChain实例(4) 一、概述上一篇博客 OpenHarmony解读之设备认证:数据接收管理-获取HiChain实例(3)重点介绍了在生成本端长期存储的密钥对的过程中服务id的生成,本文将介绍后续两个阶段:密钥别名的生成过程以及密钥对的生成过程。二、源码分析这一模块的源码位于:/base/security/deviceauth。密钥别名的生成过程主要是在函数generate_key_alias中实现的,对该函数以及相关数据结构的详细分析如下:/*函数功能:通过服务id和认证id生成密钥别名函数参数: s
OpenHarmony解读之设备认证:数据接收管理-获取HiChain实例(3) 一、概述上一篇博客 OpenHarmony解读之设备认证:数据接收管理-获取HiChain实例(2)介绍的主要内容是构建本端的长期保存的密钥对,即重点是对函数build_self_lt_key_pair的总体分析,在上文中讲到该函数通过回调函数的方式调用位于分布式软总线模块的AuthGetProtocolParams函数进行协议参数的获取,主要是获取密钥长度、对端认证id和本端认证id。本文将继续分析build_self_lt_key_pair函数的其余内容。二、源码分析这一模块的源码位于:/base
OpenHarmony解读之设备认证:数据接收管理-获取HiChain实例(2) 一、概述上一篇博客 OpenHarmony解读之设备认证:数据接收管理-获取HiChain实例(1)介绍了hichain实例获取的部分内容,本文将继续进行分析。在上一篇博客介绍的get_instance函数中,在进行完密钥等信息的初始化之后,调用build_self_lt_key_pair函数创建属于本端的长期保存的密钥对,这个密钥对初步分析是用于设备之间的身份可信认证。创建密钥对部分可分为四个阶段:1、获取协议参数。2、生成服务id。3、生成密钥别名。4、生成长期保存的密钥对。下面将对build_se