産品搜索:

技術交流

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

如今(jīn)共享(xiǎng)大戰愈(yù)演愈(yù)烈(liè),摩拜之後,小黃、小藍更是層出不窮。“共享”給大家帶來方便的同(tóng)時,也在經曆着嚴(yán)峻的考驗。爲了防止單車被破解,必(bì)須采取(qǔ)嚴格可靠的保密(mì)措施,爲産(chǎn)品保駕護航。

 

看到那些被刮去号碼牌,據(jù)爲己有的共享(xiǎng)單車,作爲工程(chéng)師的(de)我,不禁想到自己加班開發的代碼可能會被别人分分(fèn)鍾讀出來(lái)破解,頗有些擔心,眼前這(zhè)些就是實實在在的前“車”之鑒。 



面對日益重要(yào)知識産權(quán)保護,大(dà)部分芯片廠商爲(wèi)芯(xīn)片設計(jì)完善了安(ān)全的代碼保護(hù)方案——芯片加密。各(gè)個廠(chǎng)商的加密手段不同,主要分(fèn)爲幾類:

  • 一級加密(可擦除(chú));

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

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


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


一級加密


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


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


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


還有一(yī)種加密(mì)方式和上面類(lèi)似,隻不過采用(yòng)了兩個編程接口,而不是同一編程接口的兩條AP。


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

 


二級加(jiā)密


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


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


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

 


三級加密


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


三級加密通過向芯片特定位置寫入特定數據,或者是直(zhí)接熔斷熔絲(sī)達到加密目的,這是個不可(kě)逆的過程,一旦加密之後,芯片就無法再擦除,讀取或者燒錄(lù),甚至仿真器也無(wú)法再連接芯片。


三級加(jiā)密是一條不(bú)歸路,一旦加密,芯片的固件就再也無法更改,因此需(xū)要慎重再慎重。

 


這三種加密方式對産品的保護一級比一級嚴密,在不同的産品上靈活的使用不同加密方式才可(kě)以保護好自己的勞動成果而又不被這種保(bǎo)護所束縛。


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

聯系我們 站點地圖 友情鏈接 工作機會
聯系地址:福(fú)州市八一七中路茶亭(tíng)國際 郵編:350004 電話:0591- 83275886
Copyright © 2011-2012 All Right Reserved 京ICP證000000号(hào)