技術交流
如今共享(xiang)大戰愈演愈(yu)烈,摩拜之後(hou),小黃、小藍更(gèng)是層♍出不窮(qiong)。“共享”給大家(jiā)帶來方便的(de)同時,也在經(jing)曆着嚴峻的(de)考驗。爲了防(fáng)止單車被破(po)解,必須采取(qǔ)嚴格可靠的(de)保密措施,爲(wèi)🌈産品保駕護(hù)航。
看到那些(xie)被刮去号碼(ma)牌,據爲己有(you)的共享單車(che),作爲工程師(shi)的😘我,不禁想(xiang)到自己加班(bān)開發的代碼(mǎ)可能會被别(bié)人分🐆分鍾讀(dú)出來破解,頗(po)有些擔心,眼(yǎn)前這些就是(shi)實實在在的(de)前“車”之鑒。
面(miàn)對日益重要(yao)知識産權保(bǎo)護,大部分芯(xīn)片廠商爲芯(xīn)🔱片⭐設計完善(shan)了安全的代(dài)碼保護方案(an)——芯片加密🐕。各(ge)個廠商的加(jia)密手段不同(tóng),主要分爲幾(jǐ)類:
-
一級加密(mi)(可擦除);
-
二級(ji)加密(密碼加(jiā)密);
-
三級加密(mi)(加“死密”)。
不同(tóng)的芯片可能(néng)提供了一種(zhong)或多種級别(bie)的加密方式(shì),根據不同的(de)需求靈活使(shi)用加密方案(àn)才可以做到(dao)✏️遊刃有餘。
一(yi)級加密
如果(guǒ)你的産品可(kě)能需要升級(jí)固件,建議使(shi)用這種‼️加密(mì)方式。
一級加(jiā)密又分爲多(duō)種形式,最常(chang)見的一種形(xing)式經😄常在芯(xin)❤️片手冊中叫(jiào)做“Protect”。加密後如(ru)果試圖讀出(chu)芯片中的代(dai)碼,則會讀出(chu)全0x00,或者是全(quán)0xFF,甚至是随機(jī)數據,但是通(tong)過某些特殊(shu)的方法,比如(ru)擦除✍️或是解(jie)保護,就可以(yi)将✔️芯片重置(zhi)爲默認狀态(tai)。
另外一種常(cháng)見于ARM芯片,我(wǒ)們知道ARM芯片(piàn)采用統一的(de)編程接口SWD接(jie)口,某些ARM芯片(piàn)會提供兩個(gè)AP(Access Port),通過關閉訪(fang)問内部空間(jiān)的AP可以達到(dao)加密的目的(de)。而如果想解(jiě)鎖,就要訪問(wen)另一條AP,這條(tiao)AP隻可以訪問(wen)🐪一個寄存器(qì),通過寫入該(gāi)寄存器特定(ding)的數⛷️據就可(kě)以将芯片重(zhòng)置爲默認狀(zhuang)♍态。
還有一種(zhǒng)加密方式和(hé)上面類似,隻(zhi)不過采用了(le)兩個編程接(jiē)🧑🏾🤝🧑🏼口,而不是同(tong)一編程接口(kǒu)的兩條AP。
總之(zhi),一級加密就(jiu)是讓你無法(fǎ)讀取芯片數(shù)據,而又可以(yǐ)通過擦除再(zai)次升級固件(jian)。
二級加密
如(ru)果你的産品(pin)需要升級固(gu)件,但是你又(you)不想别人也(yě)随意升級你(ni)的固件,可以(yi)使用這種加(jiā)密方式。
二級(jí)加密與一級(ji)加密的不同(tong)之處在于,二(èr)級加密在加(jia)密時需要提(tí)供一段密碼(mǎ),該密碼會保(bǎo)存到芯片内(nei)部,而如果你(nǐ)想重置芯片(pian),則需要提供(gong)這段密碼。這(zhè)就防止了沒(méi)有權限(不知(zhī)道密碼)的一(yī)方升級代碼(ma)。
二級加密爲(wei)密碼保護的(de)加密,不過部(bu)分廠商的芯(xin)片可能并沒(méi)有提供這種(zhong)加密方案。
三(sān)級加密
如果(guǒ)你的産品要(yao)批量生産了(le),也不用考慮(lǜ)升級固件,可(kě)以使用♻️這種(zhong)加密方式。
三(san)級加密通過(guò)向芯片特定(dìng)位置寫入特(tè)定數據,或者(zhe)是直接☂️熔斷(duàn)熔絲達到加(jia)密目的,這是(shì)個不可逆的(de)過程,一旦加(jia)密之後,芯片(piàn)就無法再擦(ca)除,讀取或者(zhě)燒錄,甚至仿(pang)真器也🈲無法(fǎ)再☀️連接芯片(pian)。
三級加密是(shì)一條不歸路(lù),一旦加密,芯(xīn)片的固件就(jiu)再也無🧑🏾🤝🧑🏼法更(geng)改,因此需要(yào)慎重再慎重(zhòng)。
這三種加密(mì)方式對産品(pǐn)的保護一級(jí)比一級嚴密(mì),在不同的産(chǎn)品上靈活的(de)使用不同加(jia)密方式才可(kě)以保護好自(zì)己的勞動成(chéng)🏃♂️果而又不被(bei)這種保護所(suǒ)❄️束縛。
加密方(fang)式盡管多種(zhǒng)多樣,但最終(zhōng)都是對芯片(piàn)進行一🔴些🧑🏾🤝🧑🏼特(tè)定的操作,以(yi)達到保護代(dai)碼的目的。緻(zhi)遠電子結合(hé)十餘年年的(de)燒錄器研發(fā)經驗,自主獨(dú)立研發的P800系(xì)列編程器能(neng)根據不同的(de)芯片靈活的(de)設置🐆其加密(mì)方式,并且通(tōng)過内部嚴格(gé)的流程控制(zhì),有效🐆的防止(zhǐ)芯片的誤加(jia)密,可爲各大(dà)方案公司提(ti)供安全、可靠(kào)的編🍓程🐕解決(jué)方案。