党国特派员 发表于 2015-1-5 09:46:47

几种读取唯一ID方法的优缺点分析

STM32系列芯片内置有芯片唯一ID,这个为我们进行程序加密提供了一种低成本的方法.为了对抗解密就必须尽可能隐藏程序内读取ID的地方,下面对这些常用方法作个比较,当然是一家之言,权当抛砖引玉.

1    直接读取ID,也可把普通的 LDR 指令用 LDREX 指令代替; 特点:简单,隐蔽性差,不能对抗模拟器攻击.
1.1 ID地址在运行时生成.特点:简单,有一定的隐蔽性,不能对抗模拟器攻击.
1.2 用硬件 DMA 把 ID 传输到RAM中; 特点:简单,隐蔽性较好,估计能对抗普通模拟器攻击.

2. 不直接读取 ID 而是生成相关区域的 Hash; 特点: 程序稍微复杂,隐蔽性较好,估计不能对抗模拟器攻击.
2.1 用 STM32 的CRC硬件模块生成 Hash; 特点: 程序简单,隐蔽性较好,估计能对抗普通模拟器攻击;但是碰撞性大一些.

实际加密产品时,把这些方法全部或组合运用到产品中,增强加密性.

ajane 发表于 2015-1-5 16:39:31

这个貌似挺高大上的

ajane 发表于 2015-1-5 16:40:04

楼主有这方面的经验没,我看到很多打着解密的旗号,不知真假
页: [1]
查看完整版本: 几种读取唯一ID方法的优缺点分析