技術交流
看到那些被刮(guā)去号碼牌,據爲己(ji)有的共享單車,作(zuo)爲工🏃♂️程🚶♀️師😍的🌏我,不(bu)禁想到自己加班(ban)開發的代碼可能(neng)會被别人分分鍾(zhōng)💞讀出來破解,頗有(you)些擔心,眼前這些(xiē)就是實實🎯在在的(de)📱前“車”之鑒。
面對日(rì)益重要知識産權(quán)保護,大部分芯片(piàn)廠商爲芯片設計(jì)完善了安全的代(dài)碼保護方案——芯片(pian)加密。各個🔞廠商的(de)加密手💘段不同,主(zhǔ)要分爲幾類:
-
二級(jí)加密(密碼加密);
-
三(san)級加密(加“死密”)。
一級加密(mi)
如果你的産品可(kě)能需要升級固件(jiàn),建議使用這種加(jia)密方式。
一級加密(mi)又分爲多種形式(shi),最常見的一種形(xíng)式經常在芯片手(shǒu)💃冊中叫做“Protect”。加密後(hou)如果試圖讀出芯(xin)片✔️中的代碼,則會(huì)讀出🧡全0x00,或者是全(quan)0xFF,甚至是随機數據(jù)🍓,但是通💁過某些特(tè)殊的方法,比如擦(ca)除或是解保護,就(jiu)可以将芯片重置(zhi)爲默認狀态。
另外(wai)一種常見于ARM芯片(pian),我們知道ARM芯片采(cai)用統一的編程接(jie)口SWD接✂️口,某些ARM芯片(piàn)會提供兩個AP(Access Port),通過(guo)關閉訪☁️問内部空(kong)間的AP可以達到❗加(jia)密的目的。而如果(guǒ)想解鎖,就要⭐訪問(wen)另一條AP,這條AP隻可(kě)⭐以訪問一個寄存(cun)器,通過寫入該寄(jì)存器💰特定的數據(ju)就可以👌将芯片重(zhong)🌈置爲默認狀态。
還(hai)有一種加密方式(shi)和上面類似,隻不(bú)過采用了兩個編(biān)程🚩接口☎️,而不是同(tóng)一編程接口的兩(liǎng)條AP。
總之,一級加密(mi)就是讓你無法讀(du)取芯片數據,而又(yòu)可🙇🏻以🌈通過擦除再(zài)次升級固件。
二級(jí)加密
如果你的産(chan)品需要升級固件(jian),但是你又不想别(bie)人也随意升♌級你(ni)的固件,可以使用(yong)這種加密方式。
二(èr)級加密與一級加(jia)密的不同之處在(zài)于,二級加密✉️在加(jiā)密⭐時需要提供一(yī)段密碼,該密碼會(hui)保存到芯片内部(bù),而如果你想重置(zhi)芯片,則需要提供(gong)這段密碼。這就👌防(fang)止了沒有權限(不(bú)知道密碼)的一方(fāng)升級代碼。
二級加(jiā)密爲密碼保護的(de)加密,不過部分廠(chǎng)商的芯🈚片可🔅能并(bìng)沒有提供這種加(jiā)密方案。
三級加密(mi)
如果你的産品要(yao)批量生産了,也不(bú)用考慮升級固💞件(jiàn),可♊以使用這種加(jiā)密方式。
三級加密(mi)通過向芯片特定(ding)位置寫入特定數(shù)據,或🙇♀️者是直接熔(rong)斷熔絲達到加密(mì)目的,這是個不可(ke)逆的過程,一🈚旦加(jiā)密之後,芯片就無(wu)法再擦除,讀取或(huo)者燒錄,甚至仿⛷️真(zhēn)器也無法再連接(jiē)芯片。
三級加密是(shì)一條不歸路,一旦(dan)加密,芯片的固件(jiàn)就再也無♻️法更改(gai),因此需要慎重再(zài)慎重。
這三種加密(mì)方式對産品的保(bǎo)護一級比一級嚴(yan)密,在不同的産品(pin)上靈活的使用不(bú)同加密方式才可(kě)以保護好自己的(de)勞動成果而又不(bú)被這種保護所👉束(shu)縛。
加密方式盡管(guan)多種多樣,但最終(zhong)都是對芯片進行(hang)一些特✊定的操作(zuò),以達到保護代碼(ma)的目的。緻遠電子(zǐ)結合十餘年年的(de)燒錄器研發經驗(yàn),自主獨立研發的(de)P800系🏃🏻列編程器能根(gēn)據不同🔅的芯片靈(ling)活的設置其加密(mi)方式,并且通過内(nèi)部嚴格的流程控(kong)制,有效的防止芯(xīn)片的誤加密,可爲(wei)各大方案公司提(tí)供安全、可靠的編(biān)程解決方案。