GAT1399协议分析(二)--注册流程分析

2024-06-05 10:20

本文主要是介绍GAT1399协议分析(二)--注册流程分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、官方流程说明

二、官方流程解析

1 : 发起方向接收方发送注册 HTTP POST 请求/VIID/System/Register。

2: 接收方向发送方发送响应401 Unauthorized, 并在响应的消息头 WWW-Authenticate 字段中给

出适合发送方的认证机制和参数。

3: 发起方重新向接收方发送注册 HTTP POST 请求, 在请求的 Authorization 字段给出信任书, 包

含认证信息。

4: 接收方对请求进行验证, 如果发起方身份合法, 向发起方发送成功响应200 OK, 如果身份不合

法则发送拒绝服务应答。

三、Regist消息解析

wireshark抓包分析:

HTTP消息头:Post消息+消息体(Json)

消息内容文本话:

[POST /VIID/System/Register HTTP/1.1
Host: 10.0.21.166:1400
Content-Type: application/VIID+JSON; charset=UTF-8
Accept: */*
User-Agent: Vision-Zenith, ChengDu
Accept-Encoding: gzip, deflate
Cache-Control: no-cache
Content-Length: 54

{"RegisterObject":{"DeviceID":"34078100001190001002"}}

四、Regist消息回复未认证

文本化:

HTTP/1.1 401 Unauthorized
Content-Type: text/plain
WWW-Authenticate: Digest realm="12312312315031231231", nonce="zWq5D1nFFUa71Ni9", opaque="BSTjT6ow+VLrnu4k", algorithm=MD5, qop="auth"
Date: Tue, 04 Jun 2024 01:45:47 GMT
Content-Length: 17

401 Unauthorized

五、认证再次注册

文本化:

POST /VIID/System/Register HTTP/1.1
Host: 10.0.21.166:1400
Content-Type: application/VIID+JSON; charset=UTF-8
Authorization: Digest username="34078100001190001002", realm="12312312315031231231", nonce="zWq5D1nFFUa71Ni9", uri="/VIID/System/Register", algorithm="MD5", qop=auth, nc=00000001, cnonce="0a4f113b", response="72ad0bd84ec2ff10acf0c310b3beab16", opaque="BSTjT6ow+VLrnu4k"
Accept: */*
User-Agent: Vision-Zenith, ChengDu
Accept-Encoding: gzip, deflate
Cache-Control: no-cache
Content-Length: 54

{"RegisterObject":{"DeviceID":"34078100001190001002"}}

六、注册成功返回

官方定义:

wireshark抓包:

文本化:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Date: Tue, 04 Jun 2024 01:46:02 GMT
Content-Length: 153

{

"ResponseStatusObject":{

"Id":"34078100001190001002",

"StatusCode":0,

"RequestURL":"/VIID/System/Register",

"StatusString":"",

"LocalTime":"20240604094602"

}}

这篇关于GAT1399协议分析(二)--注册流程分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1032788

相关文章

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

MySQL 临时表与复制表操作全流程案例

《MySQL临时表与复制表操作全流程案例》本文介绍MySQL临时表与复制表的区别与使用,涵盖生命周期、存储机制、操作限制、创建方法及常见问题,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小... 目录一、mysql 临时表(一)核心特性拓展(二)操作全流程案例1. 复杂查询中的临时表应用2. 临时

Java对接MQTT协议的完整实现示例代码

《Java对接MQTT协议的完整实现示例代码》MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,:本文主要介绍Ja... 目录前言前置依赖1. MQTT配置类代码解析1.1 MQTT客户端工厂1.2 MQTT消息订阅适配器1.

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

MySQL 升级到8.4版本的完整流程及操作方法

《MySQL升级到8.4版本的完整流程及操作方法》本文详细说明了MySQL升级至8.4的完整流程,涵盖升级前准备(备份、兼容性检查)、支持路径(原地、逻辑导出、复制)、关键变更(空间索引、保留关键字... 目录一、升级前准备 (3.1 Before You Begin)二、升级路径 (3.2 Upgrade

Linux中的自定义协议+序列反序列化用法

《Linux中的自定义协议+序列反序列化用法》文章探讨网络程序在应用层的实现,涉及TCP协议的数据传输机制、结构化数据的序列化与反序列化方法,以及通过JSON和自定义协议构建网络计算器的思路,强调分层... 目录一,再次理解协议二,序列化和反序列化三,实现网络计算器3.1 日志文件3.2Socket.hpp

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、

MySQL中读写分离方案对比分析与选型建议

《MySQL中读写分离方案对比分析与选型建议》MySQL读写分离是提升数据库可用性和性能的常见手段,本文将围绕现实生产环境中常见的几种读写分离模式进行系统对比,希望对大家有所帮助... 目录一、问题背景介绍二、多种解决方案对比2.1 原生mysql主从复制2.2 Proxy层中间件:ProxySQL2.3