這種技術通常使用處理器的通信接口,利用協議、加密算法或這些算法中的安全漏洞進行攻擊。軟件攻擊成功的典型例子是對早期ATMEL AT89C系列單片機的攻擊。攻擊者利用該系列單片機擦除操作的順序設計上的漏洞,在擦除加密鎖後停止下壹次擦除芯片程序存儲器中數據的操作,使加密的單片機變成未加密的單片機,然後用編程器讀取片上程序。
目前在其他加密方法的基礎上,可以開發壹些設備,配合某些軟件做軟件攻擊。
最近國內出現了壹個51的芯片解密裝置(成都壹位高手做的)。這個解密器主要是針對SyncMos生產過程中的漏洞。華邦。有些程序員用來定位插入的字節,通過壹定的方法,找到芯片中是否有連續的空位,也就是說可以找到芯片中連續的FF FF字節。插入的字節可以執行將芯片內部的程序發送到芯片外部的指令,然後被解密設備截獲。
(2)電子探測攻擊
該技術通常以高時間分辨率監測處理器正常工作時所有電源和接口連接的模擬特性,通過監測其電磁輻射特性實施攻擊。由於單片機是壹個移動電子設備,當它執行不同的指令時,對應的電源功耗也隨之變化。這樣,通過使用特殊的電子測量儀器和數理統計方法來分析和檢測這些變化,就可以在單片機中獲得特定的關鍵信息。
目前射頻編程器可以直接讀取老的加密MCU中的程序,就是基於這個原理。
(3)故障生成技術
這種技術利用異常工作條件使處理器失效,然後提供額外的攻擊途徑。最廣泛使用的故障生成攻擊手段包括電壓沖擊和時鐘沖擊。低壓和高壓攻擊可用於禁用保護電路或迫使處理器執行錯誤操作。時鐘瞬態跳變可以在不破壞受保護信息的情況下重置保護電路。電源和時鐘的瞬時跳變會影響某些處理器中單個指令的解碼和執行。
(4)探針技術
這種技術是直接暴露芯片內部布線,然後觀察、操縱、幹擾單片機,達到攻擊的目的。
2.入侵芯片解密的壹般過程。
入侵式攻擊的第壹步是移除芯片封裝(英文稱為“去封裝”或“解封裝”)。有兩種方法可以達到這個目的:第壹種是完全溶解芯片封裝,露出金屬布線。二是只去掉矽芯上的塑封。第壹種方法需要將芯片綁定到測試夾具上,並在綁定表的幫助下進行操作。第二種方法不僅需要攻擊者的知識和必要的技能,還需要個人的智慧和耐心,但操作起來相對方便,完全在家裏操作。
芯片上的塑料可以用刀揭開,芯片周圍的環氧樹脂可以用濃硝酸腐蝕掉。熱的濃硝酸會溶解芯片封裝而不影響芯片和布線。這壹過程通常在非常幹燥的條件下進行,因為水的存在可能會腐蝕暴露的鋁線連接(這可能會導致解密失敗)。
然後,在超聲波池中用丙酮清洗芯片以去除殘留的硝酸並浸泡。
最後壹步是找到保護熔絲的位置,將保護熔絲暴露在紫外線下。壹般使用放大倍數至少為100倍的顯微鏡,追蹤編程電壓輸入引腳的連接,找到保護熔絲。如果沒有顯微鏡,通過將芯片的不同部分暴露在紫外線下並觀察結果來進行簡單的搜索。在操作中,用不透明的紙覆蓋芯片,以保護程序存儲器不被紫外線擦除。將保護熔絲暴露在紫外線下5 ~ 10分鐘可破壞保護位的保護功能。之後,可以使用簡單的編程器直接讀出程序存儲器的內容。
用保護層保護EEPROM單元的單片機,用紫外線復位保護電路是不可行的。對於這種類型的單片機,壹般采用微探針技術來讀取存儲器中的內容。打開芯片封裝後,將芯片放在顯微鏡下,可以很容易地找到從存儲器到電路其他部分的數據總線。出於某種原因,在編程模式下,芯片鎖定位不會鎖定對存儲器的訪問。利用這個缺陷,把探頭放在數據線上就可以讀取所有想要的數據。在編程模式下,通過重啟讀取過程並將探頭連接到另壹條數據線,可以讀取程序和數據存儲器中的所有信息。
另壹種可能的攻擊手段是借助顯微鏡和激光切割機尋找保護熔絲,從而找到與這部分電路相關的所有信號線。因為設計有缺陷,只要從保護熔絲到其他電路的壹條信號線(或者整個加密電路被切斷)或者1 ~ 3根金線(通常稱為FIB:聚焦離子束)連接起來,就可以禁止整個保護功能,這樣使用簡單的編程器就可以直接讀出程序存儲器的內容。
雖然大部分普通單片機都有熔斷保險絲保護單片機內代碼的功能,但由於壹般低檔單片機的定位不是做安全產品,往往不提供針對性的防範措施,安全級別較低。此外,單片機應用範圍廣,銷量大,廠商之間的委托加工和技術轉讓頻繁,大量技術數據泄露出去,使得利用這類芯片的設計漏洞和廠商的測試接口,通過修改熔絲保護位等侵入性或非侵入性攻擊手段,讀取單片機內部程序變得更加容易。
芯片解密技術發展至今,其發展壹直是隨著芯片的設計和使用而發展的。由於客戶對IC解密/單片解密的需求,龍芯世紀等解密機構應運而生,也推動了解密技術的更新和發展。
目前最新的加密技術不斷出現,IC解密燒壞數據引腳,解密開蓋過程中漏酸的可能,電路修改過程中的誤操作,都可能造成芯片解密失敗;另外,目前單片機的程序存儲是靠內部電子存儲的。當芯片長時間使用或受到外界強磁場影響時,也會導致芯片解密失敗。如果是純軟件破解,和母片的編程軟件、編程方法甚至編程語言都有很大關系,也有失敗的概率。