打印

100%防**是不可能的

[复制链接]
5014|32
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
inter_zhou|  楼主 | 2008-10-14 23:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序写完了,产品也开发出来了但是不敢卖。
程序的架构采用任务调度机制,中型大小的程序,代码部分100K左右,全部代码放在flash里面,主控MCU有一小段MASK ROM,相当于引导程序。上电后会从Flash里面读入代码,然后将代码放在XRAM里面执行(IC的设计可以决定此机制是可行的)。从flash里面载入不同的代码段可以实现多任务之间的调度。

现在面临的问题是由于MCU是已经固化死了程序,不可修改,那么全部代码放在flash里面,随便哪个公司只有把flash里面的东西读出来就可以直接用了,那么所有的努力就没有价值了,请问怎么解此问题?

相关帖子

沙发
jerkoh| | 2008-10-14 23:32 | 只看该作者

re

初学者路过帮顶

使用特权

评论回复
板凳
5880527| | 2008-10-14 23:41 | 只看该作者

那意思是要整个编译器在里面了

象PLC的原理一样

使用特权

评论回复
地板
chunyang| | 2008-10-14 23:45 | 只看该作者

还是老老实实重新设计吧

是自己的设计,重新再来一遍没什么难度。

使用特权

评论回复
5
inter_zhou|  楼主 | 2008-10-14 23:57 | 只看该作者

重新设计不太现实

一个100多k程序,七万多行重新来过不是那么简单的事情,程序的代码放在外挂的flash里面。MCU里面是放不了代码的。

使用特权

评论回复
6
李冬发| | 2008-10-15 00:07 | 只看该作者

不知道你是什么CPU,要是可能放一部分到MCU里面吧

使用特权

评论回复
7
atuz| | 2008-10-15 04:26 | 只看该作者

。。。。

貌似没有任何办法。不管怎么加密,最总进入MCU的都是不加密的

使用特权

评论回复
8
呆板书生| | 2008-10-15 06:20 | 只看该作者

接口已经是公开,怎么加密也可以从接口读出,然后在接口仿真一个XRAM的模块就OK

使用特权

评论回复
9
awey| | 2008-10-15 08:23 | 只看该作者

不可以先将程序加密后放入Flash里吗?

引导程序读取Flash后经解密再存放在XRAM里执行

使用特权

评论回复
10
红心j| | 2008-10-15 09:16 | 只看该作者

增加解密难度只能自己做引导程序

使用特权

评论回复
11
zusen| | 2008-10-15 11:38 | 只看该作者

嘿嘿

设ID,如果不是批量的话,就每台机子都搞唯一一个ID
只有flash里的ID和MCU里的ID相同,才能运行,不过呢,比较累,批量生产就是麻烦事,,

STM的ARM就有唯一ID,我就看中他这个,嘿嘿嘿嘿

使用特权

评论回复
12
inter_zhou|  楼主 | 2008-10-15 13:15 | 只看该作者

针对以上回复

MCU从出厂时引导程序已经做成掩膜的了,也就是说MCU已经不可以再次烧写了,因为MCU里面根本没有可以用户使用的ROM了,但是有64K的XRAM可以使用,程序运行的机制是将FLASH里面的机器码载入到XRAM里面执行。根据任务的不同载入不同段的机器码。
是需要KK级数量的批量生产。
难题是只要买同样的MCU,然后再买一个产品,将该产品的FLASH里面的数据全部读出的话就可以自己重新烧FLASH了,技术也就被盗了。

有一个解法就是:再加一个非常便宜的OTP性的MCU,将加密与解密的任务交给这颗MCU,这样做可以部分防止被COPY的问题,但不能全防,因为加的这颗MCU也可能被别人解出来。越便宜的IC保密机制也就越差。还有KK级的数量也就面临增加了很多成本。

使用特权

评论回复
13
mylovetus| | 2008-10-15 14:45 | 只看该作者

流行的MP3方案都是同楼主的一样的

基本上所有的程序都是放在NAND FLASH里面的.
只不过他们的主要手段还是控制IC.
如果你没有能控制到IC的手段的话,那么就只有加一颗很便宜的MCU,或者就该MCU来替代其中的一些标准IC做到成本控制.例如,我们有一个产品是用的小点阵的LCD屏幕驱动,我们就不用标准的LCD驱动IC,而是找一颗带有LCD驱动的MCU来代替,这样成本就不会增加太多.

使用特权

评论回复
14
atuz| | 2008-10-16 00:40 | 只看该作者

....

有一个解法就是:再加一个非常便宜的OTP性的MCU,将加密与解密的任务交给这颗MCU,这样做可以部分防止被COPY的问题,但不能全防,因为加的这颗MCU也可能被别人解出来。越便宜的IC保密机制也就越差。还有KK级的数量也就面临增加了很多成本。
------------------------------------------------------------
不明白有什么用处?
你再怎么加密,程序还是要在掩膜MCU中运行的,由于MCU程序是固定的,没有解密功能,所以MCU读程序时,已经是解密状态。仿制着只要在MCU总线上进行监测,就可以把完整程序读出来。

使用特权

评论回复
15
tage| | 2008-10-16 08:43 | 只看该作者

要是能支持iap,也有办法

找一个有唯一id,有加密功能,不能**的安全芯片,在板上设定一个跳线开关,出厂前跳线都插上,
程序检测到跳线插上,读安全芯片的id,然后运算,然后写flash,出厂时拔掉跳线,程序检测然后在做一记录,

读程序的人因为没有安全芯片,flash读出来也是错的,

使用特权

评论回复
16
xc_cz| | 2008-10-16 11:03 | 只看该作者

那找MCU厂家问问。。

实在不行,换厂家。。。

使用特权

评论回复
17
WOAILYMD| | 2008-10-16 14:42 | 只看该作者

技术人员也这么多虑?

是需要KK级数量的批量生产。
难题是只要买同样的MCU,然后再买一个产品,将该产品的FLASH里面的数据全部读出的话就可以自己重新烧FLASH了,技术也就被盗了。

有一个解法就是:再加一个非常便宜的OTP性的MCU,将加密与解密的任务交给这颗MCU,这样做可以部分防止被COPY的问题,但不能全防,因为加的这颗MCU也可能被别人解出来。越便宜的IC保密机制也就越差。还有KK级的数量也就面临增加了很多成本。

------------------------------------------------------------------------------------------------------------------------------------------

KK级数量,几百万,那一定不是什么高档产品,想克隆者也一定不是技术很强,不然,不会想去克隆。既然这样,那就抹去MCU的型号呀(市场有一种象涂改液那样的可以轻易抹去,便于量产),当然,这是下下策。

不过,老顾忌别人克隆也未免小家子气了,哈哈,一是道高一尺,魔高一丈,人真想克隆,你也没招,MICROSOFT厉害吧,番茄花园不一样克隆?!

搞好你的销售,售后服务,品牌,即使有人仿冒,又如何?说不定,仿冒者还能帮你把蛋糕做大。

等你有了经济收益,就可以重新设计增强版,那时候再来考虑这些也不迟。

使用特权

评论回复
18
walnutcy| | 2008-10-16 23:34 | 只看该作者

同意LS的,技术上不好做得,就从销售上想办法,呵呵

比如U盘,上贴一个认证标签等,
不要钻牛角尖,

使用特权

评论回复
19
black_wolf| | 2008-10-17 03:34 | 只看该作者

只能换内部带FLASH的MCU,别无他法

外部FLASH + 内部RAM 是无论如何都做不到保密的

使用特权

评论回复
20
chunk| | 2008-10-17 09:38 | 只看该作者

KK级的量,为什么不做硬掩模?

假设有2万美元的掩模费,要求你一次定货4个WAFER,这也没多少钱啊?何况KK级的量掩模费是可以退回来的啊。

使用特权

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

本版积分规则

26

主题

272

帖子

0

粉丝