打印
[STM32F4]

关于hotpower加密方式的疑问

[复制链接]
1954|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
KC_CEC|  楼主 | 2014-1-13 13:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个是hotpower的原文连接:
https://bbs.21ic.com/icview-190954-1-1.html
他的加密思路主要就是:
1、利用stm32的ID号进行CRC运算得辅助ID,将这个辅助ID再次与ID合并进行CRC运算最终就为0了。
2、将辅助ID存储于内部flash或者外部EEPROM等。
3、然后可以将整个代码中的常量0替换为CRC公式,或者经过与或非替换其他常量。
4、以后程序运行的时候就要将当前单片机ID与存储的数字进行CRC效验,如果不为0那么将会
打乱整个程序的数据,程序会怎么样运行就连作者都不清楚。

所以,**者比较好的方法就是只要更换存储好的那个辅助ID,让当前单片机ID与之CRC为0就可以了。
我的问题是:
stm32内置CRC,那么**者经过反汇编也当然很清楚加密方式用了CRC效验。所以只要在当前代码加入
一段程序:将当前存储的辅助ID替换为单片机ID进行CRC效验的值就行了。不管是hotpower说了进行26次
循环运算,只要反汇编了**者应该也一样可以看得出你进行了26次循环的。
那么到底要怎么样做才能让他看不出来呢?
沙发
jlhgold| | 2014-1-21 22:12 | 只看该作者
硬件加密就可以了 用哪种比OTP还要狠的方法 比如硬件熔丝 熔断后内部程序除非开壳通过直接改动晶圆 别无他法的那种!!!或者再狠一点 直接硬件校验晶圆 哈哈 如果这可能的话!!

使用特权

评论回复
板凳
KC_CEC|  楼主 | 2014-1-22 09:37 | 只看该作者
jlhgold 发表于 2014-1-21 22:12
硬件加密就可以了 用哪种比OTP还要狠的方法 比如硬件熔丝 熔断后内部程序除非开壳通过直接改动晶圆 别无他 ...

如果人家真要**的话,硬件加密估计不行。聚焦离子束加上液氮冷却**是分分钟的事

使用特权

评论回复
地板
airwill| | 2014-1-22 11:38 | 只看该作者
关于hotpower加密方式:
你应该看成是提供的思路和样例, 而不是具体手段.

使用特权

评论回复
5
kseeker| | 2014-1-22 12:34 | 只看该作者
如果你的程序代码被**者拿到了,从理论上说,你的程序被**只是早晚的事。你能做的只是加大**者读懂程序的难度。
“经过反汇编也当然很清楚加密方式用了CRC效验”,那么就不要用CRC校验,尤其不要用stm32内置的硬件CRC校验。然后,不要
用标准的CRC表,那东西特点太明显。说起来,对于加密,CRC本来就不安全。进行校验的代码要藏到不容易想到的地方,不要
在程序的开头让人家一眼就看到。校验的程序多一些,分散在不同的地方,让**者只改一个或几个不管用,必须全改掉。

顺便说一下,如果**者搜索所有访问唯一ID寄存器的地址,就可以直接精确定位加密代码,你最好不要让他能做到这一点。

对于“当前代码加入一段程序”这种**,一个有效的防护手段是对程序本身进行校验,这样,对于被修改过的程序将无**常
工作。不过,你要知道这段对程序进行校验的程序同样可以被找到并修改,所以藏得好一些。

使用特权

评论回复
6
KC_CEC|  楼主 | 2014-1-22 16:12 | 只看该作者
所以,这种方法还是用软件不可逆算法比较妥当啊,那么结贴了

使用特权

评论回复
7
jlhgold| | 2014-1-27 13:33 | 只看该作者
KC_CEC 发表于 2014-1-22 09:37
如果人家真要**的话,硬件加密估计不行。聚焦离子束加上液氮冷却**是分分钟的事 ...

关键是成本 你的东西要是卖的便宜到**成本需要1年以上的时间才能收回 那就没事了!!!

使用特权

评论回复
8
wanming2008| | 2018-11-27 17:12 | 只看该作者
mark

使用特权

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

本版积分规则

20

主题

169

帖子

1

粉丝