打印
[开发工具]

【PW200烧录器评测】三:UID离线授权加密

[复制链接]
722|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 数码小叶 于 2020-7-11 11:32 编辑

前面已经体验了PW200的基本烧录调试功能,但是PW200的主要特色是加密,加密分为:在线授权、离线授权、IcwKey三种,可以体验的是在线授权和离线授权。
这一篇体验的是离线加密,打开PowerWriter的烧录器Tab标签,UID加密设置





加密模式选择“内置离线授权”,选择后可以设置的就是密钥地址、用户密码、Matrix编码。
用户密码有一点不太友好,不能全部显示出明码,要点一个输入框才能看到那一个框的密码。

离线授权主要的重点是Matrix编码设置,自动的按键有随机生成,检查代码,导出编码,编译并保存




检查代码可以检查出哪些项没有用到,同时这个加密矩阵是可以手动编辑的,手动加入这些项以及符号。





导出源码就是导出MDK工程,编译保存反而是同步到PW200,按钮命名“编译并保存”有点不太容易让人直白的理解按键功能。
这个导出的工程,实际是不能直接使用的





生成的模板里的启动文件是F1芯片,但是打开生成的文件里面又是正确的F4芯片,工程里包含的也是F1,所以需要自己新建工程。





这里还有一个问题,就是密钥地址,如果按照用户手册写的



这个地址是会根据目标芯片而改变的,实际测试,确实一直保持不变的





打开cortex_chipid_binding.c,可以看到刚才生成的加密矩阵,默认使用的不是直接生成的加密矩阵,二是加入了花指令的矩阵,增加破译难度。



手动新建一个工程,工程只保留基本的串口打印功能,测试通过后,在工程中加入m_serial_number的定义,主要是验证下实际地址和map文件的一致性。



map文件中的地址0x080015AC,打开PowerWriter,添加刚刚生成的固件,查看0x080015AC的数据





数据确实是我们定义的“5A A5 A5 5A”

再将生成的两个加密文件,cortex_chipid_binding.c和cortex_chipid_binding.h添加到工程中,



在主函数中添加验证和相应的执行信息,根据打印信息可以知道密码验证是否通过。



编译、下载后,打开串口助手



根据串口打印信息,可以知道,密码验证没过



反复测试检查多次,依旧失败,最后才发现,这个"智能自动编程"

原本以为这个和“自动编程”的区别只是擦除的flash范围不一样,结果却是差的不是一点点,智能自动编程会下载所有的内容,包括包括 SN和 Matrix 绑定数据。之前一直失败的原因就是在这,用“智能自动编程”后,程序验证通过



最后来看下两个读回来的密钥区内容对比




可以看到通过PowerWriter授权后,读取的flash内容已经改变了。是不是这个读取回来的文件已经包含离线授权呢?那就来测试下,先把授权通过的芯片读取回的文件保存,为了排除影响,关闭PowerWriter、写入其他Matrix编码、再往芯片里烧写个未经授权的文件、串口提示密钥验证失败,说明一起都排除了,再次烧录经过授权的文件,程序验证通过



又测试几次,效果依旧
所以说这个UID离线授权加密只要经过一次PowerWriter授权后就失去保护作用了么,或者说我就没有理解这个UID离线授权加密的意义


使用特权

评论回复
沙发
数码小叶|  楼主 | 2020-7-20 13:06 | 只看该作者
本帖最后由 数码小叶 于 2020-7-20 13:07 编辑

今天在和技术讨论在线授权的时候,说到这个加密,猛然意识到问题的答案了,第一个问题,地址是否更新,再次验证了,说明确实是不变的

按照技术说的,根据容量变化而变化,选择两个不一样的,实际结果就是不变
512KB的STM32F446RE:







256KB的STM32F411RC:




第二个问题,为什么失去保护作用了,实际是自己在排除影响因素的时候,只排除了软件影响,忘了UID加密的根本含义,一直在一块芯片上操作,换一块芯片就对了




使用特权

评论回复
板凳
gejigeji521| | 2020-7-20 21:15 | 只看该作者
没有用过啊

使用特权

评论回复
地板
天灵灵地灵灵| | 2020-7-20 23:51 | 只看该作者
看起来给力啊。

使用特权

评论回复
5
AlexChiu| | 2020-7-21 21:41 | 只看该作者
打怪继续 。。。

使用特权

评论回复
6
huahuagg| | 2020-7-24 10:25 | 只看该作者
高级产品

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

103

主题

2540

帖子

19

粉丝