现在同享大战愈演愈烈,摩拜之后,小黄、小蓝更是层出不穷。“同享”给咱们带来便利的一起,也在阅历着严峻的检测。为了避免单车被破解,有必要采纳严厉牢靠的保密办法,为产品保驾护航。
看到那些被刮去号码牌,据为己有的同享单车,作为工程师的我,不由想到自己加班开发的代码或许会被他人分分钟读出来破解,颇有些忧虑,眼前这些便是实实在在的前“车”之鉴。

面临日益重要知识产权维护,大部分芯片厂商为芯片规划完善了安全的代码维护计划——芯片加密。各个厂商的加密手法不同,首要分为几类:
一级加密(可擦除);
二级加密(暗码加密);
三级加密(加“死密”)。
不同的芯片或许供给了一种或多种等级的加密办法,依据不同的需求灵敏运用加密计划才能够做到挥洒自如。
一级加密
假如你的产品或许需求晋级固件,主张运用这种加密办法。
一级加密又分为多种方法,最常见的一种方法经常在芯片手册中叫做“Protect”。加密后假如企图读出芯片中的代码,则会读出全0x00,或许是全0xFF,乃至是随机数据,可是经过某些特别的办法,比方擦除或是解维护,就能够将芯片重置为默许状况。
别的一种常见于ARM芯片,咱们知道ARM芯片选用一致的编程接口SWD接口,某些ARM芯片会供给两个AP(Access Port),经过封闭拜访内部空间的AP能够到达加密的意图。而假如想解锁,就要拜访另一条AP,这条AP只能够拜访一个寄存器,经过写入该寄存器特定的数据就能够将芯片重置为默许状况。
还有一种加密办法和上面相似,只不过选用了两个编程接口,而不是同一编程接口的两条AP。
总归,一级加密便是让你无法读取芯片数据,而又能够经过擦除再次晋级固件。

二级加密
假如你的产品需求晋级固件,可是你又不想他人也随意晋级你的固件,能够运用这种加密办法。
二级加密与一级加密的不同之处在于,二级加密在加密时需求供给一段暗码,该暗码会保存到芯片内部,而假如你想重置芯片,则需求供给这段暗码。这就避免了没有权限(不知道暗码)的一方晋级代码。
二级加密为暗码维护的加密,不过部分厂商的芯片或许并没有供给这种加密计划。

三级加密
假如你的产品要批量生产了,也不必考虑晋级固件,能够运用这种加密办法。
三级加密经过向芯片特定方位写入特定数据,或许是直接熔断熔丝到达加密意图,这是个不可逆的进程,一旦加密之后,芯片就无法再擦除,读取或许烧录,乃至仿真器也无法再衔接芯片。
三级加密是一条不归路,一旦加密,芯片的固件就再也无法更改,因而需求稳重再稳重。

这三种加密办法对产品的维护一级比一级紧密,在不同的产品上灵敏的运用不同加密办法才能够维护好自己的劳动成果而又不被这种维护所捆绑。
加密办法虽然多种多样,但终究都是对芯片进行一些特定的操作,以到达维护代码的意图。