【ZLG微信文档精选】国产ARM领导者—GD32加密技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
广州周立功单片机科技有限公司
国产ARM 领导者—GD32加密技术
国产ARM领导者—GD32加密技术
摘要:电子产品主要分硬件和软件,硬件电路往往容易获得,那么软件就必须要做好防“盗”。所以不管什么产品在上市前,产品“内部程序”的安全性是必须要考虑的。
推送目的:简单普及芯片加密
是否原创:是
关键字:芯片加密、防硬破解
正文:
电子产品主要分硬件和软件,硬件电路往往容易获得,那么软件就必须要做好防“盗”。所以不管什么产品在上市前,产品“内部程序”的安全性是必须要考虑的。如果产品内部程序轻易被其他人获取,那么该款产品的山寨版将比比皆是。在中国这样一个“山寨”漫天飞国度,你的产品够安全吗?GigaDevice(兆易创新)已经在中国发布十几款基于ARM@Cortex TM-M3内核的MCU,简称GD32。让我们来看看国产MCU—GD32的加密技术。
在介绍芯片加密之前,先普及一下芯片“程序下载”的知识!大部分芯片的下载分为:ICP(用JTAG、SWD),ISP(在系统编程),IAP(在应用编程)。
ICP:主要用于产品在研发调试阶段用,也就是我们通过J-link、ST-link、AK100、CK100等等第三方调试器与芯片的JTAG结合、SWD接口相连调试序,此阶段产品未成形。
ISP在系统编程:当产品需要量产时可以通过设置相应模式,用芯片串行接口(串口、USB等)进行大批量烧写。此阶段如果芯片没有加密,一个业余的单片机从事者都可以将芯片内代码盗取。
IAP在应用编程:当产品硬件做好了,而固件需要维护升级就要用IAP。就是在芯片内部先下载一个IAP升级程序,然后同过串行接口把应用代码APP下载至芯片内运行。市面上绝大部分产品都留有升级接口,除非你的产品一次就绝对完美。如果某高手写一个APP 程序是读取芯片内所有Flash数据,你的产品也是容易被盗。
咱国产ARM单片机GD32是如何防火,防骗,防盗版?告诉你GD32“芯片加密”有
5大招!
第1大招:读保护
“读保护”就是不能通过外部手段(ISP、JTAG、SWD等等)读取到Flash内部的数据,如果要想更改内部代码,只有先将内部程序全部擦除才能重新下载,这样加密!设置GD32的一个RDP选项字节以开启读保护,然后系统重新上电就实现了“读保护”功能,或者在GD32专用的ISP下载软件上开启“读保护“功能。
第2大招:在系统下载中读保护
使用系统启动程序将Flash设置为读保护。所有以调试工具、内置SRAM或FSMC执行代码等方式对主存储器访问的操作将被禁止,只允许用户代码对主Flash存储器的读操作和编程操作(除了Flash开始的4KB区域不能编程)。
第3大招:使用全球唯一96位UID
将Flash设置为读保护,破解者也可以通过IAP下载自己的一段小程序,从而读出Flash 中的内容。因此,还需要利用设备的唯一ID作为“密钥”进行加密保护。在主程序中加入对设备唯一ID的检测,这样即使破解者读出了芯片中的二进制码,也不能用这个二进制码去copy新的器件。
第4大招:全球唯一96位UID+自助算法
有些技术好的破解者利用反汇编根据芯片ID数据在二进制文件中查找对应相同数据的位置从而破解。我们可以将ID拆散成不同的组合,然后利用自助算法将ID再封装一层作为新“密钥”,并且写到不同且不连续的地方。再者,可在程序中设置多处检测这样的加密ID,以增加反汇编的难度,让破解者望而却步。
最后的战役—5大招:防硬件破解
如果遇到一些相当专业的“毁坏性破解”高手,他们往往在拇指大的芯片上,用特殊的手段将芯片盖儿打开,据说用超微放大镜或者什么特殊手段从芯片Flash上把数据偷出来。这一做法可以说是丧心病狂,真是道高一尺,魔高一丈!往往对于一些“物理地址连续”的芯片,这样不计成本的破解下它们也是在劫难逃。然而市面上绝大多数的芯片都是物理地址连续!
不要着急,导演都说了“从古至今,邪不压正!”我们国产ARM版MCU—GD在Flash 内部做了一个重组算法,使得内部Flash在逻辑上连续,在物理地址上是不连续的!也就是说这些专业的破解高手,用那种丧心病狂的破解方法“盗”出来的代码是废的,这种办法得出的代码是乱序的根本不可用!
免责声明
广州周立功单片机科技有限公司随附提供的软件或文档资料旨在提供给您(本公司的客户)使用,仅限于且只能在本公司制造或销售的产品上使用。
该软件或文档资料为本公司和/或其供应商所有,并受适用的版权法保护,版权所有。如有违反,将面临相关适用法律的刑事制裁,并承担违背此许可的条款和条件的民事责任。
本公司保留在不通知读者的情况下,有修改文档或软件相关内容的权利,对于使用中所出现的任何效果,本公司不承担任何责任。
该软件或文档资料“按现状”提供,不提供保证,无论是明示的、暗示的还是法定的保证。这些保证包括(但不限于)对出于某一特定目的应用此软件的适销性和适用性默示的保证。在任何情况下,公司不会对任何原因造成的特别的、偶然的或间接的损害负责。