技(ji)術交流
看到那(na)些被刮去号碼(ma)牌,據爲己有的(de)共享單車,作🧑🏾🤝🧑🏼爲(wei)工程師的我,不(bu)禁想到自己加(jia)班開發的代碼(ma)可能會被别人(rén)分🌈分鍾讀出來(lái)破解,頗有些擔(dān)心,眼前這些就(jiù)是實實在在的(de)前“車”之🚶♀️鑒。

面對(duì)日益重要知識(shí)産權保護,大部(bù)分芯片廠商爲(wèi)芯片設計完🆚善(shan)了安全的代碼(mǎ)保護方案——芯片(piàn)加密✂️。各個廠商(shāng)🔴的加密手段不(bu)💘同,主要分爲幾(ji)類:
-
二級加密(mi)(密碼加密);
-
三級(ji)加密(加“死密”)。
不(bú)同的芯片可能(neng)提供了一種或(huo)多種級别的加(jiā)密方式,根據不(bu)同的需求靈活(huo)使用加密方案(an)才可以做到遊(you)刃🥵有餘。
一級加(jia)密
如果你的産(chan)品可能需要升(shēng)級固件,建議使(shǐ)用這種☀️加⛱️密方(fāng)式。
一級加密又(you)分爲多種形式(shi),最常見的一種(zhǒng)形式經常在㊙️芯(xīn)片手冊中叫做(zuò)“Protect”。加密後如果試(shì)圖讀出芯片中(zhōng)的代碼,則會🚶讀(du)出全0x00,或者是全(quan)0xFF,甚至是随機數(shu)據,但是通過某(mǒu)些特殊的方法(fa),比如擦除或是(shì)解保護,就可以(yǐ)将芯片重置爲(wèi)默認狀态。
另外(wài)一種常見于ARM芯(xīn)片,我們知道ARM芯(xin)片采用統一的(de)㊙️編⛷️程接口SWD接口(kou),某些ARM芯片會提(ti)供兩個AP(Access Port),通過關(guān)閉訪問内部空(kōng)間的AP可以達到(dào)加密的目的。而(ér)如果想解鎖,就(jiù)要訪問另一條(tiao)AP,這條AP隻可🔞以訪(fǎng)問一個寄存器(qi)🌈,通過寫入該寄(jì)存器🈚特定的數(shu)據就可以将芯(xin)片重置爲默認(rèn)狀态。
還有一種(zhong)加密方式和上(shàng)面類似,隻不過(guò)采用了兩個編(biān)程接口,而不是(shì)同一編程接口(kou)的兩條AP。
總之,一(yī)級加密就是讓(rang)你無法讀取芯(xin)片數據,而又可(kě)以通過擦除再(zai)次升級固件。

二(er)級加密
如果你(nǐ)的産品需要升(shēng)級固件,但是你(nǐ)又不想别人也(yě)随意升級你的(de)固件,可以使用(yòng)這種加密方式(shì)。
二級加密與一(yī)級加密的不同(tóng)之處在于,二級(jí)加密在加密時(shi)需要提供一段(duan)密碼,該密碼會(hui)保存到芯片内(nèi)😘部,而如果你想(xiǎng)重置芯片,則需(xū)要提供這段密(mi)碼。這就防止了(le)沒有權限(不知(zhi)道密碼)的一方(fang)升級代碼。
二級(jí)加密爲密碼保(bao)護的加密,不過(guò)部分廠商的芯(xīn)片可能并㊙️沒有(yǒu)提供這種加密(mì)方案。

三級加密(mì)
三級加密通(tong)過向芯片特定(dìng)位置寫入特定(ding)數據,或者是直(zhí)接熔斷熔絲達(dá)到加密目的,這(zhè)是個不可逆🔴的(de)過程,一☀️旦加密(mi)之後,芯片就無(wu)法再擦除,讀取(qu)或者燒錄,甚至(zhi)仿真器也無法(fǎ)再㊙️連接芯片。
三(san)級加密是一條(tiao)不歸路,一旦加(jiā)密,芯片的固件(jian)就再也無🧑🏽🤝🧑🏻法❄️更(geng)改,因此需要慎(shen)重再慎重。

這三(san)種加密方式對(dui)産品的保護一(yi)級比一級嚴密(mi),在不同的産品(pǐn)上靈活的使用(yong)不同加密方式(shì)才可以保護好(hǎo)自己的勞動成(cheng)果而又不被這(zhe)種保護所束縛(fù)。
加密方式盡管(guǎn)多種多樣,但最(zuì)終都是對芯片(pian)進行一💘些✔️特⭐定(dìng)的操作,以達到(dao)保護代碼的目(mù)的。緻遠電子結(jie)🤩合十餘年年的(de)燒錄器研發經(jing)驗,自主獨立研(yan)⛱️發的P800系列編程(chéng)器能根據不同(tóng)的芯片靈活的(de)設置其加密方(fāng)式,并且通過内(nèi)部嚴格的流程(cheng)控制,有效🧡的防(fáng)止芯片的誤加(jiā)密,可🈲爲各大方(fang)案公司提供安(ān)全、可靠的編程(cheng)💚解決方案。
