芯片解密 反彙編 修改界面

單片機加密破解的常用方法及應對策略

  1、引言
 
  單片機(Microcontroller)一般都有(yǒu)內(nèi)部ROM/EEPROM/FLASH供用戶存放程序。為(wèi)了防止未經授權訪問或拷貝單片機的機內(nèi)程序,大(dà)部分單片機都帶有(yǒu)加密鎖定位或者加密字節,以保護片內(nèi)程序。如果在編程時(shí)加密鎖定位被使能(鎖定),就無法用普通(tōng)編程器(qì)直接讀取單片機內(nèi)的程序,這就是所謂拷貝保護或者說鎖定功能。事實上(shàng),這樣的保護措施很(hěn)脆弱,很(hěn)容易被破解。單片機攻擊者借助專用設備或者自制(zhì)設備,利用單片機芯片設計(jì)上(shàng)的漏洞或軟件缺陷,通(tōng)過多(duō)種技(jì)術(shù)手段,就可(kě)以從芯片中提取關鍵信息,獲取單片機內(nèi)程序。因此,作(zuò)為(wèi)電(diàn)子産品的設計(jì)工程師(shī)非常有(yǒu)必要了解當前單片機攻擊的最新技(jì)術(shù),做(zuò)到知己知彼,心中有(yǒu)數(shù),才能有(yǒu)效防止自己花(huā)費大(dà)量金錢(qián)和(hé)時(shí)間(jiān)辛辛苦苦設計(jì)出來(lái)的産品被人(rén)家(jiā)一夜之間(jiān)仿冒的事情發生(shēng)。
 
  2、單片機攻擊技(jì)術(shù)
 
  目前,攻擊單片機主要有(yǒu)四種技(jì)術(shù),分别是:
 
  (1)軟件攻擊
 
  該技(jì)術(shù)通(tōng)常使用處理(lǐ)器(qì)通(tōng)信接口并利用協議、加密算(suàn)法或這些(xiē)算(suàn)法中的安全漏洞來(lái)進行(xíng)攻擊。軟件攻擊取得(de)成功的一個(gè)典型事例是對早期ATMEL AT89C系列單片機的攻擊。攻擊者利用了該系列單片機擦除操作(zuò)時(shí)序設計(jì)上(shàng)的漏洞,使用自編程序在擦除加密鎖定位後,停止下一步擦除片內(nèi)程序存儲器(qì)數(shù)據的操作(zuò),從而使加過密的單片機變成沒加密的單片機,然後利用編程器(qì)讀出片內(nèi)程序。
 
  (2)電(diàn)子探測攻擊
 
  該技(jì)術(shù)通(tōng)常以高(gāo)時(shí)間(jiān)分辨率來(lái)監控處理(lǐ)器(qì)在正常操作(zuò)時(shí)所有(yǒu)電(diàn)源和(hé)接口連接的模拟特性,并通(tōng)過監控它的電(diàn)磁輻射特性來(lái)實施攻擊。因為(wèi)單片機是一個(gè)活動的電(diàn)子器(qì)件,當它執行(xíng)不同的指令時(shí),對應的電(diàn)源功率消耗也相應變化。這樣通(tōng)過使用特殊的電(diàn)子測量儀器(qì)和(hé)數(shù)學統計(jì)方法分析和(hé)檢測這些(xiē)變化,即可(kě)獲取單片機中的特定關鍵信息。
 
  (3)過錯産生(shēng)技(jì)術(shù)
 
  該技(jì)術(shù)使用異常工作(zuò)條件來(lái)使處理(lǐ)器(qì)出錯,然後提供額外的訪問來(lái)進行(xíng)攻擊。使用最廣泛的過錯産生(shēng)攻擊手段包括電(diàn)壓沖擊和(hé)時(shí)鍾沖擊。低(dī)電(diàn)壓和(hé)高(gāo)電(diàn)壓攻擊可(kě)用來(lái)禁止保護電(diàn)路工作(zuò)或強制(zhì)處理(lǐ)器(qì)執行(xíng)錯誤操作(zuò)。時(shí)鍾瞬态跳(tiào)變也許會(huì)複位保護電(diàn)路而不會(huì)破壞受保護信息。電(diàn)源和(hé)時(shí)鍾瞬态跳(tiào)變可(kě)以在某些(xiē)處理(lǐ)器(qì)中影(yǐng)響單條指令的解碼和(hé)執行(xíng)。
 
  (4)探針技(jì)術(shù)
 
  該技(jì)術(shù)是直接暴露芯片內(nèi)部連線,然後觀察、操控、幹擾單片機以達到攻擊目的。
 
  為(wèi)了方便起見,人(rén)們将以上(shàng)四種攻擊技(jì)術(shù)分成兩類,一類是侵入型攻擊(物理(lǐ)攻擊),這類攻擊需要破壞封裝,然後借助半導體(tǐ)測試設備、顯微鏡和(hé)微定位器(qì),在專門(mén)的實驗室花(huā)上(shàng)幾小(xiǎo)時(shí)甚至幾周時(shí)間(jiān)才能完成。所有(yǒu)的微探針技(jì)術(shù)都屬于侵入型攻擊。另外三種方法屬于非侵入型攻擊,被攻擊的單片機不會(huì)被物理(lǐ)損壞。在某些(xiē)場(chǎng)合非侵入型攻擊是特别危險的,這是因為(wèi)非侵入型攻擊所需設備通(tōng)常可(kě)以自制(zhì)和(hé)升級,因此非常廉價。
 
  大(dà)部分非侵入型攻擊需要攻擊者具備良好的處理(lǐ)器(qì)知識和(hé)軟件知識。與之相反,侵入型的探針攻擊則不需要太多(duō)的初始知識,而且通(tōng)常可(kě)用一整套相似的技(jì)術(shù)對付寬範圍的産品。因此,對單片機的攻擊往往從侵入型的反向工程開(kāi)始,積累的經驗有(yǒu)助于開(kāi)發更加廉價和(hé)快速的非侵入型攻擊技(jì)術(shù)。
 
  3、侵入型攻擊的一般過程
 
  侵入型攻擊的第一步是揭去芯片封裝。有(yǒu)兩種方法可(kě)以達到這一目的:第一種是完全溶解掉芯片封裝,暴露金屬連線。第二種是隻移掉矽核上(shàng)面的塑料封裝。第一種方法需要将芯片綁定到測試夾具上(shàng),借助綁定台來(lái)操作(zuò)。第二種方法除了需要具備攻擊者一定的知識和(hé)必要的技(jì)能外,還(hái)需要個(gè)人(rén)的智慧和(hé)耐心,但(dàn)操作(zuò)起來(lái)相對比較方便。
 
  芯片上(shàng)面的塑料可(kě)以用小(xiǎo)刀揭開(kāi),芯片周圍的環氧樹(shù)脂可(kě)以用濃硝酸腐蝕掉。熱的濃硝酸會(huì)溶解掉芯片封裝而不會(huì)影(yǐng)響芯片及連線。該過程一般在非常幹燥的條件下進行(xíng),因為(wèi)水(shuǐ)的存在可(kě)能會(huì)侵蝕已暴露的鋁線連接。
 
  接着在超聲池裏先用丙酮清洗該芯片以除去殘餘硝酸,然後用清水(shuǐ)清洗以除去鹽分并幹燥。沒有(yǒu)超聲池,一般就跳(tiào)過這一步。這種情況下,芯片表面會(huì)有(yǒu)點髒,但(dàn)是不太影(yǐng)響紫外光對芯片的操作(zuò)效果。
 
  最後一步是尋找保護熔絲的位置并将保護熔絲暴露在紫外光下。一般用一台放大(dà)倍數(shù)至少(shǎo)100倍的顯微鏡,從編程電(diàn)壓輸入腳的連線跟蹤進去,來(lái)尋找保護熔絲。若沒有(yǒu)顯微鏡,則采用将芯片的不同部分暴露到紫外光下并觀察結果的方式進行(xíng)簡單的搜索。操作(zuò)時(shí)應用不透明(míng)的紙片覆蓋芯片以保護程序存儲器(qì)不被紫外光擦除。将保護熔絲暴露在紫外光下5~10分鍾就能破壞掉保護位的保護作(zuò)用,之後,使用簡單的編程器(qì)就可(kě)直接讀出程序存儲器(qì)的內(nèi)容。
 
  對于使用了防護層來(lái)保護EEPROM單元的單片機來(lái)說,使用紫外光複位保護電(diàn)路是不可(kě)行(xíng)的。對于這種類型的單片機,一般使用微探針技(jì)術(shù)來(lái)讀取存儲器(qì)內(nèi)容。在芯片封裝打開(kāi)後,将芯片置于顯微鏡下就能夠很(hěn)容易的找到從存儲器(qì)連到電(diàn)路其它部分的數(shù)據總線。由于某種原因,芯片鎖定位在編程模式下并不鎖定對存儲器(qì)的訪問。利用這一缺陷将探針放在數(shù)據線的上(shàng)面就能讀到所有(yǒu)想要的數(shù)據。在編程模式下,重啓讀過程并連接探針到另外的數(shù)據線上(shàng)就可(kě)以讀出程序和(hé)數(shù)據存儲器(qì)中的所有(yǒu)信息。
 
  還(hái)有(yǒu)一種可(kě)能的攻擊手段是借助顯微鏡和(hé)激光切割機等設備來(lái)尋找保護熔絲,從而尋查和(hé)這部分電(diàn)路相聯系的所有(yǒu)信号線。由于設計(jì)有(yǒu)缺陷,因此,隻要切斷從保護熔絲到其它電(diàn)路的某一根信号線,就能禁止整個(gè)保護功能。由于某種原因,這根線離其它的線非常遠,所以使用激光切割機完全可(kě)以切斷這根線而不影(yǐng)響臨近線。這樣,使用簡單的編程器(qì)就能直接讀出程序存儲器(qì)的內(nèi)容。
 
  雖然大(dà)多(duō)數(shù)普通(tōng)單片機都具有(yǒu)熔絲燒斷保護單片機內(nèi)代碼的功能,但(dàn)由于通(tōng)用低(dī)檔的單片機并非定位于制(zhì)作(zuò)安全類産品,因此,它們往往沒有(yǒu)提供有(yǒu)針對性的防範措施且安全級别較低(dī)。加上(shàng)單片機應用場(chǎng)合廣泛,銷售量大(dà),廠商間(jiān)委托加工與技(jì)術(shù)轉讓頻繁,大(dà)量技(jì)術(shù)資料外瀉,使得(de)利用該類芯片的設計(jì)漏洞和(hé)廠商的測試接口,并通(tōng)過修改熔絲保護位等侵入型攻擊或非侵入型攻擊手段來(lái)讀取單片機的內(nèi)部程序變得(de)比較容易。
 
  4、應對單片機破解的幾點建議
 
  任何一款單片機從理(lǐ)論上(shàng)講,攻擊者均可(kě)利用足夠的投資和(hé)時(shí)間(jiān)使用以上(shàng)方法來(lái)攻破。所以,在用單片機做(zuò)加密認證或設計(jì)系統時(shí),應盡量加大(dà)攻擊者的攻擊成本和(hé)所耗費的時(shí)間(jiān)。這是系統設計(jì)者應該始終牢記的基本原則。除此之外,還(hái)應注意以下幾點:
 
  (1)在選定加密芯片前,要充分調研,了解單片機破解技(jì)術(shù)的新進展,包括哪些(xiē)單片機是已經确認可(kě)以破解的。盡量不選用已可(kě)破解或同系列、同型号的芯片。
 
  (2)盡量不要選用MCS51系列單片機,因為(wèi)該單片機在國內(nèi)的普及程度最高(gāo),被研究得(de)也最透。
 
  (3)産品的原創者,一般具有(yǒu)産量大(dà)的特點,所以可(kě)選用比較生(shēng)僻、偏冷門(mén)的單片機來(lái)加大(dà)仿冒者采購的難度。
 
  (4)選擇采用新工藝、新結構、上(shàng)市時(shí)間(jiān)較短(duǎn)的單片機,如ATMEL AVR系列單片機等。
 
  (5)在設計(jì)成本許可(kě)的條件下,應選用具有(yǒu)硬件自毀功能的智能卡芯片,以有(yǒu)效對付物理(lǐ)攻擊。
 
  (6)如果條件許可(kě),可(kě)采用兩片不同型号單片機互為(wèi)備份,相互驗證,從而增加破解成本。
 
  (7)打磨掉芯片型号等信息或者重新印上(shàng)其它的型号,以假亂真。
 
  當然,要想從根本上(shàng)防止單片機被解密,程序被盜版等侵權行(xíng)為(wèi)發生(shēng),隻能依靠法律手段來(lái)保障
 
  十年專業深圳市迪普思科技有限公司IC解密芯片解密、PCB抄闆、克隆、軟件編程硬件設計(jì)、電(diàn)路闆批量生(shēng)産加工
 



首頁

電(diàn)話(huà)

地址

到底了~