拒絕破解:從共享單車(chē)談如何防止代碼失竊
如今共享大戰愈演愈烈,摩拜之后,小黃、小藍更是層出不窮?!肮蚕怼苯o大家帶來(lái)方便的同時(shí),也在經(jīng)歷著(zhù)嚴峻的考驗。為了防止單車(chē)被破解,必須采取嚴格可靠的保密措施,為產(chǎn)品保駕護航。
本文引用地址:http://dyxdggzs.com/article/201704/346327.htm看到那些被刮去號碼牌,據為己有的共享單車(chē),作為工程師的我,不禁想到自己加班開(kāi)發(fā)的代碼可能會(huì )被別人分分鐘讀出來(lái)破解,頗有些擔心,眼前這些就是實(shí)實(shí)在在的前“車(chē)”之鑒。

面對日益重要知識產(chǎn)權保護,大部分芯片廠(chǎng)商為芯片設計完善了安全的代碼保護方案——芯片加密。各個(gè)廠(chǎng)商的加密手段不同,主要分為幾類(lèi):
一級加密(可擦除);
二級加密(密碼加密);
三級加密(加“死密”)。
不同的芯片可能提供了一種或多種級別的加密方式,根據不同的需求靈活使用加密方案才可以做到游刃有余。
一級加密
如果你的產(chǎn)品可能需要升級固件,建議使用這種加密方式。
一級加密又分為多種形式,最常見(jiàn)的一種形式經(jīng)常在芯片手冊中叫做“Protect”。加密后如果試圖讀出芯片中的代碼,則會(huì )讀出全0x00,或者是全0xFF,甚至是隨機數據,但是通過(guò)某些特殊的方法,比如擦除或是解保護,就可以將芯片重置為默認狀態(tài)。
另外一種常見(jiàn)于A(yíng)RM芯片,我們知道ARM芯片采用統一的編程接口SWD接口,某些ARM芯片會(huì )提供兩個(gè)AP(Access Port),通過(guò)關(guān)閉訪(fǎng)問(wèn)內部空間的AP可以達到加密的目的。而如果想解鎖,就要訪(fǎng)問(wèn)另一條AP,這條AP只可以訪(fǎng)問(wèn)一個(gè)寄存器,通過(guò)寫(xiě)入該寄存器特定的數據就可以將芯片重置為默認狀態(tài)。
還有一種加密方式和上面類(lèi)似,只不過(guò)采用了兩個(gè)編程接口,而不是同一編程接口的兩條AP。
總之,一級加密就是讓你無(wú)法讀取芯片數據,而又可以通過(guò)擦除再次升級固件。

二級加密
如果你的產(chǎn)品需要升級固件,但是你又不想別人也隨意升級你的固件,可以使用這種加密方式。
二級加密與一級加密的不同之處在于,二級加密在加密時(shí)需要提供一段密碼,該密碼會(huì )保存到芯片內部,而如果你想重置芯片,則需要提供這段密碼。這就防止了沒(méi)有權限(不知道密碼)的一方升級代碼。
二級加密為密碼保護的加密,不過(guò)部分廠(chǎng)商的芯片可能并沒(méi)有提供這種加密方案。

三級加密
如果你的產(chǎn)品要批量生產(chǎn)了,也不用考慮升級固件,可以使用這種加密方式。
三級加密通過(guò)向芯片特定位置寫(xiě)入特定數據,或者是直接熔斷熔絲達到加密目的,這是個(gè)不可逆的過(guò)程,一旦加密之后,芯片就無(wú)法再擦除,讀取或者燒錄,甚至仿真器也無(wú)法再連接芯片。
三級加密是一條不歸路,一旦加密,芯片的固件就再也無(wú)法更改,因此需要慎重再慎重。

這三種加密方式對產(chǎn)品的保護一級比一級嚴密,在不同的產(chǎn)品上靈活的使用不同加密方式才可以保護好自己的勞動(dòng)成果而又不被這種保護所束縛。
加密方式盡管多種多樣,但最終都是對芯片進(jìn)行一些特定的操作,以達到保護代碼的目的。
評論