這個需要微控制器解密
微控制器解密
微控制器解密又叫微控制器破解,晶片解密,IC解密,但是這嚴格說來這幾種稱呼都不科學,但已經成了習慣叫法,我們把CPLD解密,DSP解密都習慣稱為微控制器解密。微控制器只是能裝載程式晶片的其中一個類。能燒錄程式並能加密的晶片還有DSP,CPLD,PLD,AVR,ARM等。當然具儲存功能的儲存器晶片也能加密,比如DS2401 DS2501 AT88S0104 DM2602 AT88SC0104D等,當中也有專門設計有加密演算法用於專業加密的晶片或設計驗證廠家程式碼工作等功能晶片,該類晶片業能實現防止電子產品複製的目的。
微控制器攻擊者藉助專用裝置或者自制裝置,利用微控制器晶片設計上的漏洞或軟體缺陷,透過多種技術手段,就可以從晶片中提取關鍵資訊,獲取微控制器內程式這就叫微控制器解密。
解密過程
揭去晶片封裝
侵入型攻擊的第一步是揭去晶片封裝(簡稱“開蓋”有時候稱“開封”,英文為“DECAP”,decapsulation)。
有兩種方法可以達到這一目的:
第一種是完全溶解掉晶片封裝,暴露金屬連線。
第二種是隻移掉矽核上面的塑膠封裝。
第一種方法需要將晶片繫結到測試夾具上,藉助繫結臺來操作;第二種方法除了需要具備攻擊者一定的知識和必要的技能外,還需要個人的智慧和耐心,但操作起來相對比較方便,完全家庭中操作。
晶片上面的塑膠可以用小刀揭開,晶片周圍的環氧樹脂可以用濃硝酸腐蝕掉。熱的濃硝酸會溶解掉晶片封裝而不會影響晶片及連線。該過程一般在非常乾燥的條件下進行,因為水的存在可能會侵蝕已暴露的鋁線連線 (這就可能造成解密失敗)。
清洗晶片
接著在超聲池裡先用丙酮清洗該晶片以除去殘餘硝酸,並浸泡。
尋找保護熔絲的位置並破壞
最後一步是尋找保護熔絲的位置並將保護熔絲暴露在紫外光下。一般用一臺放大倍數至少100倍的顯微鏡,從程式設計電壓輸入腳的連線跟蹤進去,來尋找保護熔絲。若沒有顯微鏡,則採用將晶片的不同部分暴露到紫外光下並觀察結果的方式進行簡單的搜尋。操作時應用不透明的紙片覆蓋晶片以保護程式儲存器不被紫外光擦除。將保護熔絲暴露在紫外光下5~10分鐘就能破壞掉保護位的保護作用,之後,使用簡單的程式設計器就可直接讀出程式儲存器的內容。
對於使用了防護層來保護EEPROM單元的微控制器來說,使用紫外光復位保護電路是不可行的。對於這種型別的微控制器,一般使用微探針技術來讀取儲存器內容。在晶片封裝開啟後,將晶片置於顯微鏡下就能夠很容易的找到從儲存器連到電路其它部分的資料匯流排。由於某種原因,晶片鎖定位在程式設計模式下並不鎖定對儲存器的訪問。利用這一缺陷將探針放在資料線的上面就能讀到所有想要的資料。在程式設計模式下,重啟讀過程並連線探針到另外的資料線上就可以讀出程式和資料儲存器中的所有資訊。
藉助顯微鏡和鐳射切割機破壞保護熔絲
還有一種可能的攻擊手段是藉助顯微鏡和鐳射切割機等裝置來尋找保護熔絲,從而尋查和這部分電路相聯絡的所有訊號線。由於設計有缺陷,因此,只要切斷從保護熔絲到其它電路的某一根訊號線(或切割掉整個加密電路)或連線1~3根金線(通常稱FIB:focused ion beam),就能禁止整個保護功能,這樣,使用簡單的程式設計器就能直接讀出程式儲存器的內容。
雖然大多數普通微控制器都具有熔絲燒斷保護微控制器內程式碼的功能,但由於通用低檔的微控制器並非定位於製作安全類產品,因此,它們往往沒有提供有針對性的防範措施且安全級別較低。加上微控制器應用場合廣泛,銷售量大,廠商間委託加工與技術轉讓頻繁,大量技術資料外瀉,使得利用該類晶片的設計漏洞和廠商的測試介面,並透過修改熔絲保護位等侵入型攻擊或非侵入型攻擊手段來讀取微控制器的內部程式變得比較容易。
這個需要微控制器解密
微控制器解密
微控制器解密又叫微控制器破解,晶片解密,IC解密,但是這嚴格說來這幾種稱呼都不科學,但已經成了習慣叫法,我們把CPLD解密,DSP解密都習慣稱為微控制器解密。微控制器只是能裝載程式晶片的其中一個類。能燒錄程式並能加密的晶片還有DSP,CPLD,PLD,AVR,ARM等。當然具儲存功能的儲存器晶片也能加密,比如DS2401 DS2501 AT88S0104 DM2602 AT88SC0104D等,當中也有專門設計有加密演算法用於專業加密的晶片或設計驗證廠家程式碼工作等功能晶片,該類晶片業能實現防止電子產品複製的目的。
微控制器攻擊者藉助專用裝置或者自制裝置,利用微控制器晶片設計上的漏洞或軟體缺陷,透過多種技術手段,就可以從晶片中提取關鍵資訊,獲取微控制器內程式這就叫微控制器解密。
解密過程
揭去晶片封裝
侵入型攻擊的第一步是揭去晶片封裝(簡稱“開蓋”有時候稱“開封”,英文為“DECAP”,decapsulation)。
有兩種方法可以達到這一目的:
第一種是完全溶解掉晶片封裝,暴露金屬連線。
第二種是隻移掉矽核上面的塑膠封裝。
第一種方法需要將晶片繫結到測試夾具上,藉助繫結臺來操作;第二種方法除了需要具備攻擊者一定的知識和必要的技能外,還需要個人的智慧和耐心,但操作起來相對比較方便,完全家庭中操作。
晶片上面的塑膠可以用小刀揭開,晶片周圍的環氧樹脂可以用濃硝酸腐蝕掉。熱的濃硝酸會溶解掉晶片封裝而不會影響晶片及連線。該過程一般在非常乾燥的條件下進行,因為水的存在可能會侵蝕已暴露的鋁線連線 (這就可能造成解密失敗)。
清洗晶片
接著在超聲池裡先用丙酮清洗該晶片以除去殘餘硝酸,並浸泡。
尋找保護熔絲的位置並破壞
最後一步是尋找保護熔絲的位置並將保護熔絲暴露在紫外光下。一般用一臺放大倍數至少100倍的顯微鏡,從程式設計電壓輸入腳的連線跟蹤進去,來尋找保護熔絲。若沒有顯微鏡,則採用將晶片的不同部分暴露到紫外光下並觀察結果的方式進行簡單的搜尋。操作時應用不透明的紙片覆蓋晶片以保護程式儲存器不被紫外光擦除。將保護熔絲暴露在紫外光下5~10分鐘就能破壞掉保護位的保護作用,之後,使用簡單的程式設計器就可直接讀出程式儲存器的內容。
對於使用了防護層來保護EEPROM單元的微控制器來說,使用紫外光復位保護電路是不可行的。對於這種型別的微控制器,一般使用微探針技術來讀取儲存器內容。在晶片封裝開啟後,將晶片置於顯微鏡下就能夠很容易的找到從儲存器連到電路其它部分的資料匯流排。由於某種原因,晶片鎖定位在程式設計模式下並不鎖定對儲存器的訪問。利用這一缺陷將探針放在資料線的上面就能讀到所有想要的資料。在程式設計模式下,重啟讀過程並連線探針到另外的資料線上就可以讀出程式和資料儲存器中的所有資訊。
藉助顯微鏡和鐳射切割機破壞保護熔絲
還有一種可能的攻擊手段是藉助顯微鏡和鐳射切割機等裝置來尋找保護熔絲,從而尋查和這部分電路相聯絡的所有訊號線。由於設計有缺陷,因此,只要切斷從保護熔絲到其它電路的某一根訊號線(或切割掉整個加密電路)或連線1~3根金線(通常稱FIB:focused ion beam),就能禁止整個保護功能,這樣,使用簡單的程式設計器就能直接讀出程式儲存器的內容。
雖然大多數普通微控制器都具有熔絲燒斷保護微控制器內程式碼的功能,但由於通用低檔的微控制器並非定位於製作安全類產品,因此,它們往往沒有提供有針對性的防範措施且安全級別較低。加上微控制器應用場合廣泛,銷售量大,廠商間委託加工與技術轉讓頻繁,大量技術資料外瀉,使得利用該類晶片的設計漏洞和廠商的測試介面,並透過修改熔絲保護位等侵入型攻擊或非侵入型攻擊手段來讀取微控制器的內部程式變得比較容易。