技(jì)術交流
看到那(nà)些被刮去(qu)号碼牌,據(ju)爲己有的(de)共享單車(chē),作爲工程(chéng)師的🐇我,不(bu)禁想到自(zì)己加班開(kai)發的代碼(ma)可能會被(bei)别♊人分分(fèn)鍾讀出來(lái)破解,頗有(you)些擔心,眼(yan)前這些就(jiù)是實實在(zai)在的前“車(che)”之鑒。
面對(dui)日益重要(yao)知識産權(quan)保護,大部(bù)分芯片廠(chang)商爲芯🛀🏻片(pian)🔞設計完善(shan)了安全的(de)代碼保護(hù)方案——芯片(piàn)加密。各個(ge)廠商的加(jiā)🚶♀️密手段不(bu)同,主要分(fen)爲幾類:
不同的(de)芯片可能(neng)提供了一(yi)種或多種(zhong)級别的加(jiā)密方式,根(gen)據不同的(de)需求靈活(huo)使用加密(mì)方案才可(kě)以做到遊(yóu)刃🤩有餘。
一(yi)級加密
如(ru)果你的産(chǎn)品可能需(xu)要升級固(gù)件,建議使(shi)用這種加(jia)密🔅方式。
一(yī)級加密又(you)分爲多種(zhong)形式,最常(chang)見的一種(zhong)形式經常(cháng)在芯♉片手(shou)✊冊中叫做(zuo)“Protect”。加密後如(ru)果試圖讀(dú)出芯片中(zhōng)的🈚代碼🛀,則(zé)會讀出全(quan)0x00,或者是全(quán)0xFF,甚至是随(sui)機數據,但(dan)是通過某(mou)些特殊的(de)方法,比如(ru)擦除或是(shi)解保護,就(jiu)可以将💁芯(xin)片重置爲(wei)默認狀态(tài)。
另外一種(zhong)常見于ARM芯(xīn)片,我們知(zhī)道ARM芯片采(cǎi)用統一的(de)編程接口(kǒu)SWD接口,某些(xie)ARM芯片會提(tí)供兩個AP(Access Port),通(tong)過關閉訪(fǎng)問内部空(kong)間的AP可以(yi)達到加密(mi)的目的。而(ér)如果想解(jie)鎖,就要訪(fǎng)問另一條(tiáo)AP,這條AP隻可(ke)以訪問一(yi)個寄存器(qi),通過寫入(ru)該寄存器(qi)特定的數(shu)據就可以(yǐ)将芯片重(zhòng)🐪置爲默認(ren)狀态。
還有(you)一種加密(mì)方式和上(shang)面類似,隻(zhī)不過采用(yong)了兩個編(biān)程接口,而(er)不是同一(yī)編程接口(kou)的兩條AP。
總(zǒng)之,一級加(jia)密就是讓(rang)你無法讀(dú)取芯片數(shù)據,而又可(ke)🔱以通過擦(ca)除再次升(shēng)級固件。
二(èr)級加密
如(ru)果你的産(chǎn)品需要升(sheng)級固件,但(dàn)是你又不(bu)想别人也(ye)随意升級(jí)你的固件(jian),可以使用(yòng)這種加密(mì)方式。
二級(jí)加密與一(yi)級加密的(de)不同之處(chu)在于,二級(ji)加密在加(jia)密時需要(yào)提供一段(duan)密碼,該密(mì)碼會保存(cun)到芯⭐片内(nei)💃🏻部,而🌈如果(guǒ)你想重置(zhì)🛀🏻芯片,則需(xū)要提供這(zhè)段密碼。這(zhè)就防止了(le)沒有權🛀🏻限(xiàn)(不知道密(mì)碼✔️)的一方(fāng)升級代碼(mǎ)。
二級加密(mi)爲密碼保(bǎo)護的加密(mi),不過部分(fèn)廠商的芯(xīn)片可能并(bing)沒有提供(gòng)這種加密(mi)方案。
三級(ji)加密
如果(guo)你的産品(pin)要批量生(sheng)産了,也不(bu)用考慮升(sheng)級固件,可(kě)以使用這(zhè)種加密方(fang)式。
三級加(jia)密通過向(xiang)芯片特定(ding)位置寫入(ru)特定數據(ju),或者🌍是直(zhi)接熔斷熔(róng)絲達到加(jiā)密目的,這(zhè)是個不可(ke)逆的過程(chéng),一旦加密(mi)之後,芯片(piàn)就無法再(zai)擦除,讀取(qu)或者燒錄(lu),甚至仿真(zhēn)器也無法(fa)再連接芯(xīn)片。
三級加(jia)密是一條(tiao)不歸路,一(yī)旦加密,芯(xin)片的固件(jiàn)就再🐅也🐆無(wú)法更改,因(yin)此需要慎(shen)重再慎重(zhong)。
這三種加(jiā)密方式對(dui)産品的保(bǎo)護一級比(bǐ)一級嚴密(mì),在不🌈同🧑🏾🤝🧑🏼的(de)🤟産品上靈(líng)活的使用(yong)不同加密(mi)方式才可(kě)以保護好(hǎo)自己的勞(láo)動成果而(er)又不被這(zhè)種保護所(suǒ)✂️束縛。
加密(mi)方式盡管(guǎn)多種多樣(yàng),但最終都(dōu)是對芯片(pian)進行一些(xiē)特定的操(cao)作,以達到(dào)保護代碼(ma)的目的。緻(zhì)遠電🌐子結(jié)合十餘年(nian)年的燒錄(lù)器研發經(jing)驗,自主獨(du)立研發的(de)P800系列編程(chéng)器能根據(ju)不同的芯(xīn)片靈活的(de)設置其加(jiā)密方式,并(bìng)且通🤟過内(nèi)部嚴🏃♂️格的(de)流程控制(zhì),有效的防(fáng)止芯片的(de)誤加密,可(ke)爲各大方(fang)案公司提(ti)供安全、可(kě)靠的編☔程(cheng)解決方案(àn)。