1樓:卡其電子
微控制器(mcu)一般都有內部eeprom/flash供使用者存放程式和工作資料。為了防止未經授權訪問或拷貝微控制器的機內程式,大部分微控制器都帶有加密鎖定位或者加密位元組,以保護片內程式。如果在程式設計時加密鎖定位被使能(鎖定),就無法用普通程式設計器直接讀取微控制器內的程式,這就叫微控制器加密。
微控制器攻擊者藉助專用裝置或者自制裝置,利用微控制器晶片設計上的漏洞或軟體缺陷,通過多種技術手段,就可以從晶片中提取關鍵資訊,獲取微控制器內程式這就叫微控制器解密。
任何一款微控制器從理論上講,攻擊者均可利用足夠的投資和時間使用以上方法來攻破。這是系統設計者應該始終牢記的基本原則。因此,作為電子產品的設計工程師非常有必要了解當前微控制器攻擊的最新技術,做到知己知彼,心中有數,才能有效防止自己花費大量金錢和時間辛辛苦苦設計出來的產品被人家一夜之間仿冒的事情發生。
我們根據滬生電子的解密實踐提出下面建議:
(1)在選定加密晶片前,要充分調研,瞭解微控制器破解技術的新進展,包括哪些微控制器是已經確認可以破解的。儘量不選用已可破解或同系列、同型號的晶片選擇採用新工藝、新結構、上市時間較短的微控制器,如可以使用atmega88/atmega88v,這種國內目前破解的費用一需要6k左右,另外目前相對難解密的有st12系列,dsppic等;其他也可以和cpld結合加密,這樣解密費用很高,解密一般的cpld也要1萬左右。
(2)儘量不要選用mcs51系列微控制器,因為該微控制器在國內的普及程度最高,被研究得也最透。
(3)產品的原創者,一般具有產量大的特點,所以可選用比較生僻、偏冷門的微控制器來加大仿冒者採購的難度,選用一些生僻的微控制器,比如attiny2313,at89c51rd2,at89c51rc2,motorola微控制器等比較難解密的晶片,目前國內會開發使用熟悉motorola微控制器的人很少,所以破解的費用也相當高,從3000~3萬左右。
(4)在設計成本許可的條件下,應選用具有硬體自毀功能的智慧卡晶片,以有效對付物理攻擊;另外程式設計的時候,加入時間到計時功能,比如使用到1年,自動停止所有功能的執行,這樣會增加破解者的成本。
(5)如果條件許可,可採用兩片不同型號微控制器互為備份,相互驗證,從而增加破解成本。
(6)打磨掉晶片型號等資訊或者重新印上其它的型號,以假亂真(注意,反面有logo的也要抹掉,很多晶片,解密者可以從反面判斷出型號,比如51,winbond,mdt等)。
(7)可以利用微控制器未公開,未被利用的標誌位或單元,作為軟體標誌位。
(8)利用mcs-51中a5指令加密,其實世界上所有資料,包括英文資料都沒有講這條指令,其實這是很好的加密指令,a5功能是二位元組空操作指令加密方法在a5後加一個二位元組或三位元組操作碼,因為所有反彙編軟體都不會反彙編a5指令,造成正常程式反彙編亂套,執行程式無問題仿製者就不能改變你的源程式。
(9)你應在程式區寫上你的大名單位開發時間及仿製必究的說法,以備獲得法律保護;另外寫上你的大名的時候,可以是隨機的,也就是說,採用某種演算法,外部不同條件下,你的名字不同,比如wwwhusooncom1011、wwwhusooncn1012等,這樣比較難反彙編修改。
(10)採用高檔的程式設計器,燒斷內部的部分管腳,還可以採用自制的裝置燒斷金線,這個目前國內幾乎不能解密,即使解密,也需要上萬的費用,需要多個母片。
(11)採用保密矽膠(環氧樹脂灌封膠)封住整個電路板,pcb上多一些沒有用途的焊盤,在矽膠中還可以摻雜一些沒有用途的元件,同時把mcu周圍電路的電子元件儘量抹掉型號。
(12)對syncmos,winbond微控制器,將把要燒錄的檔案轉成hex檔案,這樣燒錄到晶片內部的程式空位自動添00,如果你習慣bin檔案,也可以用程式設計器把空白區域中的ff改成00,這樣一般解密器也就找不到晶片中的空位,也就無法執行以後的解密操作。
當然,要想從根本上防止微控制器被解密,那是不可能的,加密技術不斷髮展,解密技術也不斷髮展,現在不管哪個微控制器,只要有人肯出錢去做,基本都可以做出來,只不過代價高低和週期長短的問題,程式設計者還可以從法律的途徑對自己的開發作出保護(比如專利)。
2樓:匿名使用者
簡單的方法可以在燒錄程式的時候按照晶片說明簡單加密,這樣可以防止一般的解密,當然了,只是一般的,也就是業餘級的。
再深一層就是利用瞬間的過載燒掉某些不用的但是讀取程式又必須的io腳,這樣不破壞晶片是讀取不了程式了。算比較狠的方法。
如果解密的使用晶片探針直接讀晶片裡面的flash或者rom,上面的那個方法也沒***了,而且這個級別也很專業了,一般的解密者都沒有這個條件。應付探針直接讀取,有的廠家是利用內部整合了暴露自動清除程式的加密,有的是對晶片多層封裝等,但是成本很高,一般的工業級都不會採用這些方法。
另外,現在最高階的解密是通過晶片的io電流等執行的引數進行動態功率分析,利用mos開關時不同的耗電量來估算內部的執行狀況。
防止解密,一般來說一個是晶片級的,一個是軟體級的,也可以通過軟體對編譯好的程式進行加密,然後再通過系統初始化以後內部ram中的解密程式對code進行動態的解密執行,這個思路就是ibm伺服器的加密思路。
3樓:匿名使用者
最簡單的,用晶片自帶的加密
再者,把一些重要資訊放在外部加密rom中,用的時候再讀出來, 即使破解了微控制器也沒用
或者引入fpga,這個就難解密了
也可以在程式中加入一些驗證, 發現自己是複製品時,滿足一些條件(比如使用了1000次),就馬上自毀, 彈出廣告(提示).........但小心自己也中招了
如何防止微控制器解密晶片破解
4樓:匿名使用者
51類微控制器採用燒壞加密鎖定位,來防止破解。加密鎖定位被燒壞後不再具有擦除特性。一旦用otp模式加密後,微控制器片內的加密位和程式儲存器內的資料就不能被再次擦除,當然也不能讀出。
微控制器如何解密
5樓:匿名使用者
作為電子產品的設計工程師非常有必要了解當前微控制器攻擊的最新技術,做到知己知彼,心中有數,才能有效防止自己花費大量金錢和時間辛辛苦苦設計出來的產品被人家一夜之間仿冒的事情發生。
1 引言 微控制器(microcontroller)一般都有內部rom/eeprom/flash供使用者存放程式。為了防止未經授權訪問或拷貝微控制器的機內程式,大部分微控制器都帶有加密鎖定位或者加密位元組,以保護片內程式。如果在程式設計時加密鎖定位被使能(鎖定),就無法用普通程式設計器直接讀取微控制器內的程式,這就是所謂拷貝保護或者說鎖定功能。
事實上,這樣的保護措施很脆弱,很容易被破解。微控制器攻擊者藉助專用裝置或者自制裝置,利用微控制器晶片設計上的漏洞或軟體缺陷,通過多種技術手段,就可以從晶片中提取關鍵資訊,獲取微控制器內程式。因此,作為電子產品的設計工程師非常有必要了解當前微控制器攻擊的最新技術,做到知己知彼,心中有數,才能有效防止自己花費大量金錢和時間辛辛苦苦設計出來的產品被人家一夜之間仿冒的事情發生。
2 微控制器攻擊技術解密 目前,攻擊微控制器主要有四種技術,分別是:(1)軟體攻擊 該技術通常使用處理器通訊介面並利用協議、加密演算法或這些演算法中的安全漏洞來進行攻擊。軟體攻擊取得成功的一個典型事例是對早期atmel at89c 系列微控制器的攻擊。
攻擊者利用了該系列微控制器擦除操作時序設計上的漏洞,使用自程式設計序在擦除加密鎖定位後,停止下一步擦除片內程式儲存器資料的操作,從而使加過密的微控制器變成沒加密的微控制器,然後利用程式設計器讀出片內程式。
(2) 電子探測攻擊解密 該技術通常以高時間解析度來監控處理器在正常操作時所有電源和介面連線的模擬特性,並通過監控它的電磁輻射特性來實施攻擊。因為微控制器是一個活動的電子器件,當它執行不同的指令時,對應的電源功率消耗也相應變化。這樣通過使用特殊的電子測量儀器和數學統計方法分析和檢測這些變化,即可獲取微控制器中的特定關鍵資訊。
(3)過錯產生技術解密 該技術使用異常工作條件來使處理器出錯,然後提供額外的訪問來進行攻擊。使用最廣泛的過錯產生攻擊手段包括電壓衝擊和時鐘衝擊。低電壓和高電壓攻擊可用來禁止保護電路工作或強制處理器執行錯誤操作。
時鐘瞬態跳變也許會復位保護電路而不會破壞受保護資訊。電源和時鐘瞬態跳變可以在某些處理器中影響單條指令的解碼和執行。
(4)探針技術解密 該技術是直接暴露晶片內部連線,然後觀察、操控、干擾微控制器以達到攻擊目的。為了方便起見,人們將以上四種攻擊技術分成兩類,一類是侵入型攻擊(物理攻擊),這類攻擊需要破壞封裝,然後藉助半導體測試裝置、顯微鏡和微定位器,在專門的實驗室花上幾小時甚至幾周時間才能完成。所有的微探針技術都屬於侵入型攻擊。
另外三種方法屬於非侵入型攻擊,被攻擊的微控制器不會被物理損壞。在某些場合非侵入型攻擊是特別危險的,這是因為非侵入型攻擊所需裝置通常可以自制和升級,因此非常廉價。
大部分非侵入型攻擊需要攻擊者具備良好的處理器知識和軟體知識。與之相反,侵入型的探針攻擊則不需要太多的初始知識,而且通常可用一整套相似的技術對付寬範圍的產品。因此,對微控制器的攻擊往往從侵入型的反向工程開始,積累的經驗有助於開發更加廉價和快速的非侵入型攻擊技術。
3 侵入型攻擊的一般過程 侵入型攻擊的第一步是揭去晶片封裝。有兩種方法可以達到這一目的:第一種是完全溶解掉晶片封裝,暴露金屬連線。
第二種是隻移掉矽核上面的塑料封裝。第一種方法需要將晶片繫結到測試夾具上,藉助繫結臺來操作。第二種方法除了需要具備攻擊者一定的知識和必要的技能外,還需要個人的智慧和耐心,但操作起來相對比較方便。
備註:【微控制器解密扣扣】1-9-9-4-2-2-6
目前,微控制器解密技術還有很多,這裡是【雙高科技】與你分享一部分,更多具體的解密技巧與經驗還需要廣大設計者在實踐中積累。歡迎更多電子愛好者與我們共同學習和分享!
如何自學微控制器,怎樣自學微控制器
首先,你肯定是要先 bai看書的du,看書主要是了zhi解微控制器的結構以及其定址方法和dao指回令集。這些東西要多看看,答然後要知道微控制器最小系統怎麼組成,中斷是什麼 怎麼實現,定時器 計數器怎麼使用,序列輸出怎麼實現等。最後看看微控制器系統的擴充套件和典型應用。學習微控制器主要用到keil軟體...
微控制器AD取樣如何取樣功率,新手,請教微控制器ADC取樣電池電壓
那就是同時採集電流和電壓訊號。然後像一二樓說的那樣根據p ui計算。需要多個專ad輸入。採集電壓訊號很簡屬單。採集電流有兩種方法,如果知道電流在一定範圍內,可以用串聯一個阻值較小的電阻,讀它兩端的電壓差,所以最好用如ad0832之類的帶差動輸入的ad晶片讀這個值,然後根據電阻值可計算出流過電阻的電流...
微控制器控制舵機的問題,如何用51微控制器控制舵機的?怎樣編寫程式啊?大哥幫幫忙
請教一下,如何使用at89s52編寫這樣一個程式。要求,微控制器控制舵機,讓舵機到中間位置後,左轉15度,延遲2ms,右轉15度。度數不要求精確 舵機為0.5 2.5ms。是舵機正反轉 要c的,不要彙編 一定是應用定時器來控制脈衝的。多少脈衝舵機轉動1度?0.5ms到2.5ms是180度。0.5是起...