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

(3)(3.2) MAVLink2数据包签名(安全)

文章目录

前言

1 配置

2 使用

3 MAVLink协议说明


前言

ArduPilot 和任务计划器能够通过使用加密密钥添加数据包签名,为空中 MAVLink 传输增加安全性。这并不加密数据,只是控制自动驾驶仪是否响应 MAVLink 命令。


自动驾驶仪处于激活状态时,任何非 USB 串行端口都可以配置为只响应任务规划器的 MAVLink 命令请求,前提是这些请求包含密码。这样可以防止其他不知道密码的地面控制站 (GCS) 读取或写入参数和发送命令。这在其他情况下是可能发生的。

遥测下行链路数据不受影响。

USB 连接不受影响,允许完全连接到使用未知密钥的自动驾驶仪,并允许用户清除(禁用签名)或更改其使用的密钥。

1 配置

确保遥测端口协议设置为选项 = 2 (MAVLink2)。使用 MAVLink 1 与任何串行端口的通信都不受保护。

在任务计划器中连接自动驾驶仪,使用设置菜单和高级子菜单,然后按"Mavlink Signing"(Mavlink 签名)。

对话框将显示已为任务计划器设置的所有密码的列表。

  • 该对话框可用于使用 ADD(添加)按钮创建新键。在 PC 上选择并按下删除键,然后按下保存键(SAVE)5350,即可从列表中删除密钥。你也可以在未连接的情况下执行此操作;
  • 要设置自动驾驶仪使用列表中的按键,请在连接时按下按键上的 USE 按钮

单击用于选择连接端口的通讯端口下拉框下的 "Stats...(统计...)",即可检查链接是否已签署。

要删除和禁用已连接自动驾驶仪的签名,请按禁用签名(Disable Signing)按钮。

2 使用

自动驾驶仪使用签名后,USB 连接不受影响,但通过使用 MAVLink2 协议的 SERIAL 端口进行的任何链接只有在与自动驾驶仪使用的密钥签名后才会响应 MAVLink 命令。但是,即使未使用激活密钥签名,链接仍可接收遥测更新。

当你通过签名链接连接任务规划器时,它会查看其密钥表中是否存储有您之前设置的正确密钥。如果有,连接将使用该密钥,自动驾驶仪将执行命令,包括在连接时下载参数。如果连接成功,但没有进行参数下载,则说明密钥不存在。添加密钥并重新连接。

3 MAVLink协议说明

MAVLink 是一种非常轻量级的消息传输协议, 用于地面控制终端(地面站)与无人机之间 (以及机载无人机组件之间) 进行通信。

Mavlink 遵循现代混合发布-订阅和点对点设计模式:数据流作为 topics 发送/发布的, 而配置子协议 (如 路径点协议 或 参数协议)是基于重传机制的点对点模式。

消息内容定义于与之关联的xml 文件中。 每个 xml 文件对应一个特定的 MAVLink 系统,并为该系统定义了专属的消息集(亦被称之为“语支dialect”)。 大部分 地面站和自动驾驶仪所采用的“通用消息集”定义于 common.xml 中 (大多数“语支”均是基于“通用消息集构建 的:即,大多数“语支”所对应的 xml 文件里,均包含了 common.xml) 。

Note

基于C封装的 MAVLink 库,是一个 header-only , 其针对资源受限系统有限的 ram 和闪存,进行了高度优化。 这种库,已经过现场验证, 并部署在许多产品中, 充当不同厂家组件之间的交互性接口。

MAVLink 于2009年初由 Lorenz Meier 首次发布, 目前为止,已拥有数量可观的贡献者。

相关文章:

  • redis06 redis事务
  • web组态(BY组态)接入流程
  • CAN总线位时序的介绍
  • OpenMMlab AI实战营第四期培训
  • MySQL——性能调优
  • [蓝桥杯 2020 省 B1] 整除序列
  • 如何在十几秒内高效实现几十万条数据的快速插入
  • TestNG @Test注释属性- threadPoolSize属性
  • 自适应哈希索引
  • python网络爬虫教程笔记(1)
  • 【组合递归】【StringBuilder】Leetcode 17. 电话号码的字母组合
  • Android开发技术总结,附项目源码
  • 【Golang】介绍
  • 微服务中的Feign:优雅实现远程调用的秘密武器(一)
  • 麒麟KYLINSOS服务器操作系统SP3安装
  • [译]如何构建服务器端web组件,为何要构建?
  • 0基础学习移动端适配
  • AWS实战 - 利用IAM对S3做访问控制
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Redis学习笔记 - pipline(流水线、管道)
  • SwizzleMethod 黑魔法
  • Vue2 SSR 的优化之旅
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 阿里云购买磁盘后挂载
  • 成为一名优秀的Developer的书单
  • 搭建gitbook 和 访问权限认证
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 分享一份非常强势的Android面试题
  • 力扣(LeetCode)965
  • 模型微调
  • 首页查询功能的一次实现过程
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 用Canvas画一棵二叉树
  • 在Unity中实现一个简单的消息管理器
  • 带你开发类似Pokemon Go的AR游戏
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • #考研#计算机文化知识1(局域网及网络互联)
  • (1)STL算法之遍历容器
  • (12)Hive调优——count distinct去重优化
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (42)STM32——LCD显示屏实验笔记
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (转) ns2/nam与nam实现相关的文件
  • (转)JAVA中的堆栈
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .NET Core 中插件式开发实现
  • .NET MVC 验证码
  • .NET 中的轻量级线程安全
  • .NET导入Excel数据