给树莓派小车控制系统加上装甲

栏目: 软件资讯 · 发布时间: 6年前

内容简介:前不久写了一篇题目为《Windows系统监听键盘通过UDP协议控制树莓派小车》的文章在FreeBuf上发表了,当初设计小车控制系统的时候仅仅是为了实现控制目的而没有加入安全性防范措施,这样的小车控制系统就好像一辆没有安装装甲的坦克是抵挡不了炮弹的袭击。本篇从攻防的角度对小车控制系统进行升级,给小车装上一层层可靠的“装甲”。因为本篇文章是在前篇《Windows系统监听键盘通过UDP协议控制树莓派小车》的基础上写的,所以在阅读本篇文章前,建议先阅读一下前篇,【传送门】。

给树莓派小车控制系统加上装甲

前不久写了一篇题目为《Windows系统监听键盘通过UDP协议控制树莓派小车》的文章在FreeBuf上发表了,当初设计小车控制系统的时候仅仅是为了实现控制目的而没有加入安全性防范措施,这样的小车控制系统就好像一辆没有安装装甲的坦克是抵挡不了炮弹的袭击。本篇从攻防的角度对小车控制系统进行升级,给小车装上一层层可靠的“装甲”。

因为本篇文章是在前篇《Windows系统监听键盘通过UDP协议控制树莓派小车》的基础上写的,所以在阅读本篇文章前,建议先阅读一下前篇,【传送门】。

下面开始为树莓派小车安装“装甲”。

小车原有控制协议,其格式如下:

协议版本号:包号:命令字

其中协议版本号固定为1;包号为一个数字,每发送一次进行加1处理;命令字用于向小车发送控制命令。

装甲一:防止重放攻击

重放攻击实验:

在小车的相同网络中,启动一台攻击用的电脑(以下简称攻击者),利用ARP欺骗 工具 将所有网络通信都先流经攻击者电脑再流向路由器。此时攻击者电脑就可以嗅探整个网络流量了,当然也包括对小车的控制通信。

然后在攻击者电脑上启动wireshark软件对小车的通信进行抓包,抓到的包如下图所示。

给树莓派小车控制系统加上装甲

通过UDP发送工具将抓到的信息手动发送,进行重放攻击,见:

给树莓派小车控制系统加上装甲

重放攻击实验结果:小车受到了重放攻击,进行了前进动作。

对策

1.当树莓派小车第一次收到控制信息时,记录控制方的IP、MAC情报,之后每次的通信都进行身份确认。
2.每次记录包号,凡是小于当前包号的消息均认为是异常包将其过滤掉。

装甲二:消息加密

原有的通信是明文通信的,这样会产生很多安全问题,必须改进为加密通信方式。

本次加密方式采用AES对称加密方式,密钥是通信前双方约定好的。由于对称加密的原因是密钥是通信前双方约定好的,这样不用担心密钥传递过程中被泄露。

最后,整个服务器端加装甲后的代码已经发到了百度网盘上。

链接: https://pan.baidu.com/s/1nlDUcf_LOXizjFhlvPfQ-Q 密码: d9pa

给树莓派小车控制系统加上装甲

结束语

加上了以上2层“装甲”后,经过测试发现并没有影响小车的原有控制性能,且提升了小车控制系统的安全性,目的已经达到。

补足语:

如果还有哪些改进的地方,请在评论区留言,我会进行改进的。

*本文作者:xutiejun,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

机器学习算法原理与编程实践

机器学习算法原理与编程实践

郑捷 / 电子工业出版社 / 2015-11 / 88.00

本书是机器学习原理和算法编码实现的基础性读物,内容分为两大主线:单个算法的原理讲解和机器学习理论的发展变迁。算法除包含传统的分类、聚类、预测等常用算法之外,还新增了深度学习、贝叶斯网、隐马尔科夫模型等内容。对于每个算法,均包括提出问题、解决策略、数学推导、编码实现、结果评估几部分。数学推导力图做到由浅入深,深入浅出。结构上数学原理与程序代码一一对照,有助于降低学习门槛,加深公式的理解,起到推广和扩......一起来看看 《机器学习算法原理与编程实践》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具