历史上的今天
今天是:2025年04月11日(星期五)
2019年04月11日 | 技术文章—如何在烧录生产过程中全方位保护芯片程序
2019-04-11
随着山寨产品层出不穷,越来越多的人开始关注芯片烧录的安全性问题。芯片作为一个产品的核心部件,其内部程序一旦被盗取,那么整个产品将面临被破解的风险,这里将介绍如何在烧录生产过程中全方位保护芯片程序,实现安全生产。
要实现安全生产,首先得保正烧录文件的安全性。烧录文件是研发项目的结晶,其安全性极为重要,特别对于代烧录工厂,人员配备参差不齐,如果将文件直接下发给工厂生产,容易造成文件泄漏。为此P800系列编程器提供了工程加密功能,烧录工程由研发制作,并对敏感文件数据进行加密,以加密工程的形式下发给工厂生产,既解决了工厂接触文件的风险,又避免了工人建立、配置烧录工程的繁琐操作,提高生产效率。

工程加密保证了文件的安全性,但是否就能确保芯片程序的安全呢?我们知道,芯片除了能烧写(编程)外,还有读取接口,以方便芯片的调试和校验数据的完整性,也就是烧录进去的程序还可以被完整的读取出来。即使不接触文件,也能获取文件内容,最终导致烧录文件被间接盗取。当然,芯片在设计时也会考虑到这个问题,每种芯片基本都拥有自己的一套加密方法,我们只要在烧录完成后,及时给芯片加密,就能在一定程度上保障代码的安全性。
然而,文件、芯片双重加密看似牢不可破,其实还是有一定的漏洞,这个漏洞主要出现在烧录流程上。擦除、烧写、校验、加密为传统的烧录流程,市面上绝大多数编程器均采用该流程。我们知道,芯片的保护在于加密,在该流程中,加密放到了最后执行,如果芯片在烧写完成后,加密之前被取走(也就是校验阶段,校验一般都会持续一段时间,而这段时间足够芯片被取走),那么芯片就处于烧录完成但未加密状态,导致程序被读取盗走。

为解决这个问题,我们可以把加密放到烧写之前,这样烧录流程就变为:擦除、加密、烧写、校验。即使在校验阶段把芯片取下,芯片也已经加密完成了,无法读取其内部数据。也许你会问,加密后芯片还能烧写和校验吗?其实对于大部分芯片来说,加密是需要重新启动才会生效的,也就是只要在烧录流程中不掉电、不复位,芯片依然可以正常烧写和校验。当芯片取下后,加密就会立即生效,及时保护芯片内部程序。

安全的工程加密,可靠的芯片保护以及灵活的流程配置是P800系列编程器的标准功能,既能拟补传统编程器的安全性不足,又能保证量产的稳定性,全方位保护知识产权。

下一篇:教你学会设计不规则形状PCB
史海拾趣
|
S3c610 Codec移植的工作经验总结[bootloader级] 1. S3C6410与WM9713的I2S,AC97,PCM相比较: 1.I2S,AC97,PCM是不同的,各是各的,三者时序不同,要双方通信,必须要是 同一种时序,要么均是I2S,要么均是AC97,要么均是PCM 2.S3C6410的I2S,AC97,PCM复用同一组Pin脚,但同一时间只能用一种类型 ...… 查看全部问答> |
|
前几天拿到一个mini2440,板子很精致。400M的主频,在跑uCos2的时候,发现速度很慢,可是却不知道为什么。怀疑是cache没有利用起来,可是我对于MMU也不是很明白,有没有点建议? void MMU_Init(void) { int i,j; / ...… 查看全部问答> |
|
用GDI绘图,非常闪砾,想用双缓冲实现,可发现网上搜到的双缓冲例子中用到的类,在wince下都没有,请问有人做过双缓冲绘图吗?如何实现,希望可以给出关键代码,谢谢… 查看全部问答> |
|
对于FPGA芯片,在上电的时候从EPCS内加载配置文件的信息,我想知道数据从EPCS传输到FPGA的过程中,是否存在冗余校验,就像422,485等通信过程中存在的校验。或者,我想为FPGA的*.pof文件内是否存有数据的冗余校验信息。谢谢… 查看全部问答> |
|
Firmware Lib的应用及C++工程建立过程杂谈Firmware Lib下在地址:http://www.st.com/stonline/products/support/micro/files/um0427.zipFirmware Lib用户手册下载地址:http://www.st.com/stonline/products/literature/um/134 ...… 查看全部问答> |
|
在增计数模式下设置了: CCR0 = 0x0fff; TACTL = TASSEL1 + MC1 + TAIE CCTL0 = CCIE; GIE 也置位了, 在TAR计数到0xffff时不能进中断!… 查看全部问答> |




