TEA加密控制LED实验最终版!!!

2019-07-20 10:26发布

本帖最后由 FreeRTOS 于 2017-1-9 15:26 编辑

上周发过一个抛砖引玉的帖子,链接如下:
http://www.openedv.com/thread-91823-1-1.html

在此重新归纳一下,小灯一直希望做一个简单的通信加密方式防止别人窃取自己的信息或控制自己的板子,
为此引入了IC卡授权的方式,具体请参照小灯的上面链接的帖子,上个帖子只是单纯做了MCU生成密文的实验,
这个帖子是完成版,完成了PC通过串口控制MCU的整个通信加密过程!
小灯为PC与MCU通信制定了一个简单的串口协议,协议具体如下:

数据帧格式:
---------------------------------------------------------------------
|     命令头部     | 数据长度 | 有效数据 |   校验    |
---------------------------------------------------------------------
| "APOLLO_TEA" |   4字节   |      ...     |   CRC32  |
---------------------------------------------------------------------

为了简单,暂时不使用校验,因此最后的4字节CRC校验并没有加入本次通信协议当中
PC与MCU具体通信步骤简单分为3步:

1、PC发送控制请求:
"APOLLO_TEA" + 4字节数据长度 + "LED_CONTROL"

2、MCU返回密码匹配要求:
"APOLLO_TEA" + 4字节数据长度 + 8字节密文

3、PC返回解密后的明文与控制信息:
"APOLLO_TEA" + 4字节数据长度 + 8字节明文 + 2字节控制信息
其中2字节控制信息如下:
-----------------------------------------------------------------------------------------------
|                 第一字节                |                 第二字节                 |
-----------------------------------------------------------------------------------------------
| LED编号,0表示DS0,1表示DS1 | LED控制,0表示关闭,1表示打开 |
-----------------------------------------------------------------------------------------------


通信过程就是这么简单,按照小灯的初衷,只有PC端输入正确的密码才能控制开发板的LED,
而上面的通信过程均采用随机序列授权验证,每次PC发送一个控制命令都必须重新授权,
因此哪怕你抓取了串口的整个通信数据,也是无法控制开发板的LED的,因为每次授权的数据都不相同!
如果你足够牛X,也可以通过通信过程当中的“明文”和“密文”反推出用户密码,哈哈!
下面晒几张实验的靓照:
/* PC端测试软件 */
PC.png

/* 输入正确密码情况 */
correct.png

/* 输入错误密码情况 */
wrong.png

小灯为各位大佬免费做的例程,请各位大佬过目!@正点原子 @zuozhongkai @八度空间 @openedvadmin @FantaSy_
测试板采用@阿波罗STM32F7,只要把程序烧进去就可以测试开发板上的DS0和DS1了。什么,没这款开发板?那赶紧买一套呗!
TEA加密通信实验-完善版.rar (1.04 MB, 下载次数: 386) 2017-1-6 11:16 上传 点击文件名下载附件

针对之前有坛友反应程序打不开,小灯研究了几天并最终在虚拟机XP和虚拟机win7上测试了确实有这问题,找了很久才找到问题所在,
原来是没开发过MFC的同学一般都没耍过串口控件MSCOMM,就是这玩意害死人!需要注册过才能使用串口相关的上位机!
有关注册的步骤其实也很简单,这里有教程:http://jingyan.baidu.com/article/375c8e19a2953b25f2a22986.html
MSCOMM控件小灯顺便也提供下:
MSCOMM.zip (57.6 KB, 下载次数: 167) 2017-1-9 15:19 上传 点击文件名下载附件
在此提供下困扰小灯几天的问题的解决帖子,顺便严重鄙视下百度:http://bbs.csdn.net/topics/350114194#new_post


小灯编译了2个版本的上位机,一个是XP版本的,另一个是win7及win8的,已亲测可用:
XP测试上位机.rar (1.25 MB, 下载次数: 179) 2017-1-9 15:22 上传 点击文件名下载附件 win7 win8测试上位机.rar (1.25 MB, 下载次数: 217) 2017-1-9 15:22 上传 点击文件名下载附件
好了,动下你们发财的小手把你们电脑的串口控件注册下,开始你们的跑灯之旅吧~



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。