摘要:产品就像工程师的“孩子”,是辛苦数月、乃至数年的结晶!为了“孩子”的安全,为了辛苦支付的效果不被他人抄袭,咱们需求采纳强有力的办法!
产品就像工程师的“孩子”!需求支付数月、乃至数年的精力和汗水去规划每个细节。它既需求仔细呵护长大;也需求打预防针来增强免疫力,以便应对外面五光十色但一起危险的国际。假如“免疫力”太差,“孩子”将面临各种不安全问题。这其间最重要的安全问题便是被“抄袭”?
中心的安全要素在“固件”
有人说,硬件和固件的安全平等重要!实践不然,硬件十分简单破解。因为资料、元器件,以及PCB都是标准化出产的,没有隐秘可言。且从技术含量上来说,固件一般比硬件要高,固件发挥地步最大,最能体现产品的规划水平。
办法一:封闭通往外界的“大门”
芯片的烧录接口(如UART、JTAG)就像是通往外界的“大门”。经过这扇门,东西能够将固件灌入芯片或许读取出来。假如不把这扇门给关上,里边的固件极易被抄袭者读取,然后烧录到仿制的硬件。这样,辛苦培育的“孩子”就变成了他人家的“孩子”。
封闭“大门”有以下几种方法方法。
l 使能加密位(如MSP430的JTAG熔丝位),封闭烧录接口,任何东西都无法接入。这种方法可靠性高,大多数MCU都具有这种特性;
l 固件自动将烧录接口管脚装备成IO管脚,完成烧录接口封闭,如JTAG的TCK管脚装备成GPIO。这种方法有必定危险,固件必须在芯片发动后尽可能快地封闭;
l 剪掉烧录管脚。除非翻开芯片,不然很难将管脚引出。因为可操作性较差,适用于产品量少、价值低的状况。
引荐第一种方法,且这种方法也现已由SmartPro 2008软件支撑。能够直接在装备界面中勾选“加密位”。以MB9BF506R为例,装备界面如下。
办法二:为固件“加壳”
“加壳”便是为固件披上“保护罩”,数据格式及含义发生变化。抄袭者拿到数据后,至少得花个几年的时刻才干够解开。终究解开时,产品行将跨入生命结尾,这时现已没什么含义了。适用于不具有加密机制的NorFlash、NandFlash、EEPROM。
具体办法是:采纳加密算法对原始数据加密,将加密后的数据写入存储器。读取时,选用解密算法还原成原始数据。这种方法,需求工程师在固件中设置好加解密算法。
办法三:选用仅有ID芯片,固件跟硬件绑定
假如做最坏的计划,固件现已被读出来了,是否还有希望防抄袭?有!有些工程师奇妙地选用具有仅有ID的芯片,这样便无法仿制出彻底相同的硬件。固件会查看ID是不是与它希望的相同。假如不相同,就能够判别出有人现已破解成功,然后将固件烧到其它硬件。
当发现不一致时,固件能够不作业。有些工程师比较“坏”,固件会在某个特定的时刻点做出“使坏”,比方反常死机。假如此刻产品现已卖给客户,那些抄袭者们将会自食恶果!
怎么确保固件跟硬件是彻底绑定?运用SmartPro 2008软件里的自定义SN功用,烧录时能够读取芯片ID,进行运算,将成果植入主控芯片。固件只需求读取运算成果,然后与当时ID是否匹配,便可查看出是否被抄袭。只需保密运算成果的存储方位和计算方法,即使抄袭者读取出数据,也无法在其它芯片上运用!
办法四:不要简单将原始固件交给其他人
在将固件交给工厂时,也要特别注意做好加密。看似安全的当地往往简单隐藏着问题。不管是交给自己的工厂,仍是交给代烧工厂,尽量树立加密工程,而且限制只能在特定编程器上运用、限制答应烧录的次数。即使加密工程被抄袭者拿到,也没有任何用途。
在运用SmartPro 2008软件时,能够敞开保护模式,答应用户设置暗码,加密工程。
总结
以上几种安全办法,没有哪一种是肯定安全的。在实践规划时,应该考虑选用多种办法,从各个方面提高安全功能。这样一来,咱们心爱的工程师们辛苦劳动效果才不会那么简单地被抄袭,“孩子”才干安全!