如今共享大戰(zhàn)愈演愈烈,摩拜之后,小黃、小藍更是層出不窮。“共享”給大家?guī)矸奖愕耐瑫r,也在經歷著嚴峻的考驗。為了防止單車被破解,必須采取嚴格可靠的保密措施,為產品保駕護航。
看到那些被刮去號碼牌,據(jù)為己有的共享單車,作為工程師的我,不禁想到自己加班開發(fā)的代碼可能會被別人分分鐘讀出來破解,頗有些擔心,眼前這些就是實實在在的前“車”之鑒。
面對日益重要知識產權保護,大部分芯片廠商為芯片設計完善了安全的代碼保護方案——芯片加密。各個廠商的加密手段不同,主要分為幾類:
一級加密(可擦除);
二級加密(密碼加密);
三級加密(加“死密”)。
不同的芯片可能提供了一種或多種級別的加密方式,根據(jù)不同的需求靈活使用加密方案才可以做到游刃有余。
一級加密
如果你的產品可能需要升級固件,建議使用這種加密方式。
一級加密又分為多種形式,最常見的一種形式經常在芯片手冊中叫做“Protect”。加密后如果試圖讀出芯片中的代碼,則會讀出全000,或者是全0FF,甚至是隨機數(shù)據(jù),但是通過某些特殊的方法,比如擦除或是解保護,就可以將芯片重置為默認狀態(tài)。
另外一種常見于ARM芯片,我們知道ARM芯片采用統(tǒng)一的編程接口SWD接口,某些ARM芯片會提供兩個AP(Access Port),通過關閉訪問內部空間的AP可以達到加密的目的。而如果想解鎖,就要訪問另一條AP,這條AP只可以訪問一個寄存器,通過寫入該寄存器特定的數(shù)據(jù)就可以將芯片重置為默認狀態(tài)。
還有一種加密方式和上面類似,只不過采用了兩個編程接口,而不是同一編程接口的兩條AP。
總之,一級加密就是讓你無法讀取芯片數(shù)據(jù),而又可以通過擦除再次升級固件。
二級加密