産品搜索(suǒ):

技術交流

拒絕破解,從(cóng)共享單車談如何防止代碼失竊
來源:   發(fā)布時間:2017-04-01   浏覽量:63

如今共享(xiǎng)大戰愈演愈(yù)烈(liè),摩拜之後(hòu),小黃、小藍更是層出不窮。“共享”給大(dà)家帶來方(fāng)便的(de)同時,也在經曆着嚴峻的考驗。爲了防止單車被破解,必須采取嚴格可(kě)靠的保密措施,爲産品保(bǎo)駕護航。

 

看到(dào)那些被刮(guā)去号碼牌,據爲(wèi)己有的共享單車,作爲工程師的我,不禁想到自(zì)己加班開發的代(dài)碼可能會被别人分分鍾讀出(chū)來(lái)破解,頗有些擔心,眼前這(zhè)些就(jiù)是實實在在的前“車”之鑒。 



面對日益重要知識産權保護,大部分芯片廠商爲(wèi)芯片設計完善了安全的代碼保護方案——芯片加密。各個廠商(shāng)的加(jiā)密手(shǒu)段不同,主要分(fèn)爲幾類:

  • 一級加密(可擦除);

  • 二級加密(密(mì)碼加密);

  • 三級加密(加“死密”)。


不同的(de)芯片可能提供了一種或多種(zhǒng)級别的加密方式,根據不(bú)同的需求靈(líng)活使用加密方案才可以做到遊刃有餘。


一級加密


如果你(nǐ)的産品可能需要升級固件,建議使用這種加密方式(shì)。


一級加密又分爲多種形式,最常見的一種形式經常(cháng)在芯片手冊中叫做“Protect”。加密(mì)後如果試圖讀出芯片中的代碼,則會(huì)讀出全(quán)0x00,或者(zhě)是全0xFF,甚至(zhì)是随機數據,但是通過某些特殊的方法,比如擦除或是(shì)解保護,就可以将芯(xīn)片重置爲默認(rèn)狀态。


另外一種(zhǒng)常見于ARM芯片,我們知(zhī)道ARM芯片采(cǎi)用統(tǒng)一的編程接口SWD接口,某些(xiē)ARM芯片會提供(gòng)兩個AP(Access Port),通過關閉訪(fǎng)問内部空間的AP可以達到加密(mì)的目的。而如果想解鎖,就要訪問另一條AP,這條AP隻可以訪問一(yī)個寄存器,通過寫入該寄存器特定的數據就可以将(jiāng)芯片重(zhòng)置爲默認狀(zhuàng)态(tài)。


還有一種加密方式和上面(miàn)類似,隻不過采用了兩個編(biān)程接口(kǒu),而不(bú)是同一編程接口的兩條AP。


總之(zhī),一級加(jiā)密就是讓你無法讀取芯片數據,而又可以通過擦除再次(cì)升級固件。

 


二(èr)級加(jiā)密


如果你的産(chǎn)品需要升級固件,但(dàn)是你(nǐ)又不想别人也随意升級你的固件(jiàn),可以使用這種加密方式。


二級加密與一級加密的不同之處在于,二級加密(mì)在加密時需要提供一段密碼,該密碼會保存到芯片(piàn)内部,而如果(guǒ)你想重置(zhì)芯片,則需(xū)要提供這段密碼。這就(jiù)防止了沒有權限(xiàn)(不知道(dào)密(mì)碼)的一方升級代碼。


二級加(jiā)密(mì)爲密碼保護的加密,不過部分廠商(shāng)的芯片可能并沒(méi)有提供這種加密方案(àn)。

 


三級加密


如果你的産品要批量生産了,也不用考慮升級固件,可以使用這種加密方(fāng)式(shì)。


三級加密通過向(xiàng)芯片特定位置(zhì)寫(xiě)入特定數據,或者是直接熔斷熔絲達到加密目的,這(zhè)是個不可逆的過程(chéng),一旦加密之後(hòu),芯片就(jiù)無法再擦除,讀取或者燒錄(lù),甚至仿真器也(yě)無法再連接芯片。


三(sān)級加(jiā)密是一條不歸路,一旦加密,芯片的固件就再(zài)也無法更改,因(yīn)此(cǐ)需要(yào)慎重再慎重。

 


這三種加密方式對(duì)産品的保護一級比(bǐ)一級嚴(yán)密,在不同的産品上靈活的使用(yòng)不同加密(mì)方式才可以保護(hù)好自己的勞動成果而又不被這種保(bǎo)護所束縛。


加密(mì)方式盡管多種多樣,但最終都是對(duì)芯片進行一些特(tè)定的操(cāo)作,以達到保護代碼的(de)目(mù)的。緻遠電子(zǐ)結合十(shí)餘年年的燒錄(lù)器研發經驗,自主獨立研發的P800系列編程器能(néng)根據不同的芯(xīn)片靈(líng)活的設置其加密方式,并(bìng)且通過内部嚴格的流程控制,有效(xiào)的防止芯片的(de)誤加密,可爲各大方案公司提供安全、可靠的編程(chéng)解決方案。