硬汉嵌入式论坛

 找回密码
 立即注册
查看: 6604|回复: 37
收起左侧

[BSP视频教程] BSP视频教程第19期:单片机BootLoader的AES加密实战,含上位机和下位机代码全开源(2022-06-26)

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106721
QQ
发表于 2022-6-26 17:22:38 | 显示全部楼层 |阅读模式
本期视频教程,继续为大家带来BootLoader专题进阶,APP固件的AES加密实现,提升产品安全性,一定程度上防止被轻易破解。

视频:

https://www.bilibili.com/video/BV1Y3411u7d9



视频提纲:



上位机效果:

image.png

下位机运行效果:
image.png

参考资料:
1、例子下载:
https://pan.baidu.com/s/1olJIWk3orltxxJ0Kpxa6iw  提取码:j2fi

2、bin编辑免费小软件:
https://www.hhdsoftware.com/free-hex-editor

3、最强bin固件逆向,可方便查看每个外设的配置实现,代码安全任重道远
https://www.armbbs.cn/forum.php?mod=viewthread&tid=111237

评分

参与人数 1金币 +10 收起 理由
missfox + 10 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106721
QQ
 楼主| 发表于 2022-6-26 17:35:23 | 显示全部楼层
更新完毕
回复

使用道具 举报

19

主题

76

回帖

133

积分

初级会员

积分
133
发表于 2022-6-26 21:46:52 来自手机 | 显示全部楼层
Flash被读出来 boot不就被读取了
回复

使用道具 举报

44

主题

562

回帖

699

积分

金牌会员

积分
699
发表于 2022-6-27 07:47:52 | 显示全部楼层
威武
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106721
QQ
 楼主| 发表于 2022-6-27 10:16:23 | 显示全部楼层
blueice1108 发表于 2022-6-26 21:46
Flash被读出来 boot不就被读取了

是的,如果你的Flash能被人抠出来了,你的boot也不远处了。
回复

使用道具 举报

23

主题

1406

回帖

1475

积分

至尊会员

积分
1475
发表于 2022-6-27 12:17:44 | 显示全部楼层
给力给力,真的发布了
代码不规范,亲人两行泪!
回复

使用道具 举报

19

主题

76

回帖

133

积分

初级会员

积分
133
发表于 2022-6-29 09:27:44 | 显示全部楼层
下一期要做什么 有太多想学的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106721
QQ
 楼主| 发表于 2022-6-30 00:20:52 | 显示全部楼层
blueice1108 发表于 2022-6-29 09:27
下一期要做什么 有太多想学的

还没想好。
回复

使用道具 举报

19

主题

76

回帖

133

积分

初级会员

积分
133
发表于 2022-6-30 13:42:45 | 显示全部楼层

讲讲RTOS的应用编程怎样?
网上很少说这一块 任务的安排
回复

使用道具 举报

73

主题

1193

回帖

1412

积分

至尊会员

积分
1412
发表于 2022-10-13 10:59:23 | 显示全部楼层
硬汉哥,我用vs编译了上位机的代码,提示
错误        4        error C1083: 无法打开包括文件: “psa/crypto.h”: No such file or directory        e:\ziln\aha-algorithm\v7-077_生成aes加密固件的上位机软件\programs\psa\crypto_examples.c        1        1        crypto_examples
这个错误该怎么解决??
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106721
QQ
 楼主| 发表于 2022-10-13 15:31:07 | 显示全部楼层
wdliming 发表于 2022-10-13 10:59
硬汉哥,我用vs编译了上位机的代码,提示
错误        4        error C1083: 无法打开包括文件: “psa/crypto.h”: No s ...

看psa对应路径下有相应的h文件没,另外就是你的C环境搭建好了没
回复

使用道具 举报

73

主题

1193

回帖

1412

积分

至尊会员

积分
1412
发表于 2022-10-14 16:03:32 | 显示全部楼层
eric2013 发表于 2022-10-13 15:31
看psa对应路径下有相应的h文件没,另外就是你的C环境搭建好了没

我使用的是vs2013的编译环境
回复

使用道具 举报

73

主题

1193

回帖

1412

积分

至尊会员

积分
1412
发表于 2022-10-14 16:06:35 | 显示全部楼层
本帖最后由 wdliming 于 2022-10-14 16:09 编辑
eric2013 发表于 2022-10-13 15:31
看psa对应路径下有相应的h文件没,另外就是你的C环境搭建好了没

头文件已经解决,错误        1        error C1083: 无法打开包括文件: “psa_constant_names_generated.c”: No such file or directory        e:\ziln\aha-algorithm\v7-077_生成aes加密固件的上位机软件
回复

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

积分
6
发表于 2022-11-8 17:02:13 | 显示全部楼层
硬汉哥,请教一个问题,在普通MCU中,运算加密算法会有较大的时间花销吗?比如30Mhz的芯片使用 AES算法.打算对modbus rtu通讯进行加密,一帧50字节的数据解密会不会需要1ms?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106721
QQ
 楼主| 发表于 2022-11-9 13:09:24 | 显示全部楼层
小肚子工程师 发表于 2022-11-8 17:02
硬汉哥,请教一个问题,在普通MCU中,运算加密算法会有较大的时间花销吗?比如30Mhz的芯片使用 AES算法.打 ...

50个字节应该问题不大,你实际测试下看看
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
发表于 2022-12-9 00:17:07 | 显示全部楼层
老师,请问如果是外部SPI FLASH的APP是不是就没用了,直接取下FLASH可以读出来
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106721
QQ
 楼主| 发表于 2022-12-9 10:16:02 | 显示全部楼层
tiuhui 发表于 2022-12-9 00:17
老师,请问如果是外部SPI FLASH的APP是不是就没用了,直接取下FLASH可以读出来

让SPI Flash存储的加密后的固件,别人读取出来也没有关系。

需要运行可以解密到内部RAM空间运行。
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
发表于 2022-12-9 11:01:45 | 显示全部楼层
eric2013 发表于 2022-12-9 10:16
让SPI Flash存储的加密后的固件,别人读取出来也没有关系。

需要运行可以解密到内部RAM空间运行。

H7B0是不是带这种硬件功能,能做个教程吗
回复

使用道具 举报

76

主题

208

回帖

436

积分

高级会员

积分
436
发表于 2022-12-10 08:10:39 | 显示全部楼层
硬汉兄,这个上位机我用vs2019报这个错可能是啥原因

image.png

image.png
回复

使用道具 举报

76

主题

208

回帖

436

积分

高级会员

积分
436
发表于 2022-12-12 08:44:35 | 显示全部楼层
image.png
是要加头文件路径吗,没怎么用过vs,哪位大佬提示一下
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106721
QQ
 楼主| 发表于 2022-12-12 08:59:25 | 显示全部楼层
薪火相传 发表于 2022-12-12 08:44
是要加头文件路径吗,没怎么用过vs,哪位大佬提示一下

什么都不用设置,直接打开路径\visualc\VS2010里面的mbedTLS.sln
回复

使用道具 举报

3

主题

38

回帖

47

积分

新手上路

积分
47
发表于 2022-12-12 12:34:18 | 显示全部楼层
大佬,什么时候再搞个ECC加密。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106721
QQ
 楼主| 发表于 2022-12-12 13:46:10 | 显示全部楼层
wklhwkl 发表于 2022-12-12 12:34
大佬,什么时候再搞个ECC加密。

ECC用来做加密?

我只用过ECC来做Flash校验。

你说的是ECC椭圆加密?
回复

使用道具 举报

76

主题

208

回帖

436

积分

高级会员

积分
436
发表于 2022-12-14 16:34:29 | 显示全部楼层
eric2013 发表于 2022-12-12 08:59
什么都不用设置,直接打开路径\visualc\VS2010里面的mbedTLS.sln

醉了,我解压后用vs2019打开就报这三个错,无从下手
回复

使用道具 举报

76

主题

208

回帖

436

积分

高级会员

积分
436
发表于 2022-12-14 16:57:56 | 显示全部楼层
单独勾一个好像不行,勾了这两个window sdk才可以,c++不知道有没有依赖到,现在可以了
image.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106721
QQ
 楼主| 发表于 2022-12-15 14:14:11 | 显示全部楼层
薪火相传 发表于 2022-12-14 16:57
单独勾一个好像不行,勾了这两个window sdk才可以,c++不知道有没有依赖到,现在可以了

好的。
回复

使用道具 举报

76

主题

208

回帖

436

积分

高级会员

积分
436
发表于 2022-12-16 10:56:49 | 显示全部楼层

这个添加CRC32的多项式和初始值是啥,我用网上C# 的CRC算法算出来的值 与这个srec_cat.exe算出来的不一样
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106721
QQ
 楼主| 发表于 2022-12-16 11:42:03 | 显示全部楼层
薪火相传 发表于 2022-12-16 10:56
这个添加CRC32的多项式和初始值是啥,我用网上C# 的CRC算法算出来的值 与这个srec_cat.exe算出来的不一样 ...

C#也调用这个exe文件执行。
回复

使用道具 举报

10

主题

43

回帖

73

积分

初级会员

积分
73
发表于 2023-8-21 17:23:33 | 显示全部楼层
硬汉,我参照这个例程在v5上实现读取U盘文件并AES解密,不使用(注销mbedtls_aes_init及mbedtls_aes_setkey_dec)时,Fatfs正常读取U盘。使能后f_open报FR_DISK_ERR错误,请问大概是什么原因。
[C] 纯文本查看 复制代码
mbedtls_aes_init(&aes);
			  mbedtls_aes_setkey_dec(&aes, key, 128);
				sprintf(path, "%s/%s", audiodir,FileInf.fname);
				result = f_open(&file, path, FA_OPEN_EXISTING | FA_READ);
				
				if (result != FR_OK)
				{
					return;
				}
				else
				{
					

					

					for(;;)
					{
						result = f_read(&file, FsReadBuf, 512, &bw);
						
						if(result||bw ==0)break;//出错或已读完
						else
						{
							Count++;
						}
							
					}
			
					/* 关闭文件*/
					f_close(&file);
					
				}
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106721
QQ
 楼主| 发表于 2023-8-22 09:08:21 | 显示全部楼层
lishang4650 发表于 2023-8-21 17:23
硬汉,我参照这个例程在v5上实现读取U盘文件并AES解密,不使用(注销mbedtls_aes_init及mbedtls_aes_setkey ...

是不是栈空间开小了,如果使用了RTOS,需要加大任务栈,如果没有使用需要加大xxx.S启动文件的栈大小。

回复

使用道具 举报

10

主题

43

回帖

73

积分

初级会员

积分
73
发表于 2023-8-22 09:21:11 | 显示全部楼层
eric2013 发表于 2023-8-22 09:08
是不是栈空间开小了,如果使用了RTOS,需要加大任务栈,如果没有使用需要加大xxx.S启动文件的栈大小。

...

多谢大佬,确实是栈空间问题,加大就解决了,感谢!
回复

使用道具 举报

2

主题

13

回帖

19

积分

新手上路

积分
19
发表于 2023-8-28 14:11:32 | 显示全部楼层
硬汉老师您好!
我最近复现实践您这个项目遇到一个问题;
我直接用这个帖子的项目的output.bin文件进行加密得到一个writefile.bin 加密文件;然后先传输前2048字节到下位机,调用mbedtls_aes进行解密。
问题现象如下
从图1 可以看到writefile中[42 ef 02 79 ……] 是已经写入到下位机 flash buf [] 中的,
从图2  可以看到我调用了 " mbedtls_aes_crypt_cbc(&aes, MBEDTLS_AES_DECRYPT, sizeof(flash_buf), iv, flash_buf, output); "这条语句后,得到的output数组的数值和原始output.bin文件并不相同;
这可能是哪里的问题?
图 3  是我的源码。
盼复

1-加密bin文件和接收到的数组.png
2-原始斌文件和对接收数据后解密的数组.png
3源码.png
回复

使用道具 举报

2

主题

13

回帖

19

积分

新手上路

积分
19
发表于 2023-8-28 16:42:27 | 显示全部楼层
Le0122 发表于 2023-8-28 14:11
硬汉老师您好!
我最近复现实践您这个项目遇到一个问题;
我直接用这个帖子的项目的output.bin文件进行加 ...

/* mbed TLS feature support */
#define MBEDTLS_AES_ROM_TABLES

我打开这个宏就正常可以了,为什么您那边没有打开也可以?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106721
QQ
 楼主| 发表于 2023-8-29 09:36:09 | 显示全部楼层
Le0122 发表于 2023-8-28 16:42
/* mbed TLS feature support */
#define MBEDTLS_AES_ROM_TABLES

是不是版本不一样。版本更新后会略有区别。
回复

使用道具 举报

2

主题

33

回帖

39

积分

新手上路

积分
39
发表于 2023-10-30 09:50:23 | 显示全部楼层
会不会搞一个非对称RSA的例程
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106721
QQ
 楼主| 发表于 2023-10-30 12:23:42 | 显示全部楼层
木偶 发表于 2023-10-30 09:50
会不会搞一个非对称RSA的例程

可以的,现在搞加密,RSA方式的多不多。
回复

使用道具 举报

2

主题

33

回帖

39

积分

新手上路

积分
39
发表于 2023-10-31 14:07:02 | 显示全部楼层
eric2013 发表于 2023-10-30 12:23
可以的,现在搞加密,RSA方式的多不多。

汽车行业很多都要求RSA
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106721
QQ
 楼主| 发表于 2023-10-31 14:52:06 | 显示全部楼层
木偶 发表于 2023-10-31 14:07
汽车行业很多都要求RSA

好的,后面也搞下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-1 03:24 , Processed in 0.542834 second(s), 33 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表