題:
使用毛刺繞過微控制器中的複制保護
Cybergibbons
2013-04-10 15:04:45 UTC
view on stackexchange narkive permalink

ATmega微控制器通常具有兩個鎖定位LB1和LB2。一個阻止進一步編程,而另一個阻止閃存被讀回。如果兩者都設置,則需要擦除芯片,然後才能再次對其進行編程。這樣可以防止閃存被讀取和反向工程。在許多其他微控制器系列中也可以找到類似的機制。

某些其他處理器也已廣泛記錄了旁路技術,例如: PIC 18F452,可以在其中擦除單個模塊,並寫入固件以讀出其他模塊(《暗中之心-探索HID iCLASSTM安全性的空白》中的文檔)。

公司不時發布論壇帖子,提供服務以讀出受保護的ATmega芯片。也有一些網站(通常是.ru)提供這些服務。價格通常在500-1500美元左右,周轉時間為幾週。

我懷疑以此價格為代價,他們沒有對芯片進行封裝,而是使用激光探針來重置保險絲。我曾詢問他們是否返回未損壞的芯片,但沒有得到響應。

在此研究(“現代微控制器中的複制保護”)中,本節中對此進行了提及。 “微控制器的非侵入式攻擊”表明,許多微控制器可以通過使用時鐘,電源或數據故障來繞過複製保護。但是,我還沒有在該領域看到任何實際的例子或進一步的研究。

幾年前,為了防止對衛星電視接收器中使用的智能卡的保護而進行故障保護很普遍,但是,在這些故障保護器的電路圖之外,我再也沒有找到很多信息。

>

關於使用小故障繞過複製保護的人是否還有其他信息?

我討厭發表這些祝賀性的,無效的聲明,但真是令人質疑。
[RussianSemiResearch](http://RussianSemiResearch.com)公司可以讀取許多帶保護的MCU。
好吧,如果正確實現了鎖定,則無法使用引導加載程序來更改鎖定位並回讀代碼。但是與此同時,人們寫信要求以500美元解鎖AVR,他們如何實現這一目標?任何的想法?
她在這個YouTube頻道中提供了許多有關故障和解釋每個步驟的實用示例,它可能會對您有所幫助:https://www.youtube.com/channel/UCaEgw3321ct_PE4PJvdhXEQ。
五 答案:
ixje
2013-04-11 12:35:05 UTC
view on stackexchange narkive permalink

您正在尋找什麼樣的進一步信息?我認為您的目標是讀取ATmega微控制器的閃存內容。您找到了有關小故障器工作方式的信息,現在我想您想確認是否可以在確定小故障器之前進行確認?在這種情況下,有可能。我無法提供任何論文,因為它是基於實際經驗的(不一定基於ATmega mcu)。

由於通常無法自己為嵌入式板提供核心時鐘(與智能卡不同) ),您將不得不進行功率,激光或電磁干擾。假設您要供電,則基本上必須用您提供的電源替代目標的核心電源。在這種情況下,您可以注入電源故障(正向或反向)。

有很多原因可能會導致繞過複製保護,這完全取決於保護機制的實現。您可以嘗試一些時間:

  • 只是在冷重置之後。說複製保護位的值存儲在OTP中。系統在重置後立即執行一些初始化。這可以包括將保護位值傳輸到內部寄存器。在此時刻出現故障可以例如“取消”傳輸,更改總線上的值或阻止將該值存儲到目標寄存器中。
  • 運行時任何時候。運行時的故障可能會影響任何寄存器。這是一個瘋狂的嘗試,但可能會發生有趣的事情(您好JTAG解鎖!)
  • 在權限檢查期間。如果閃存讀取受保護,則意味著必須在某些時候驗證您是否具有權限。如果您可以影響此決定的結果,則可以授予您檢索內容的權限
  • 您可以想到的還有很多,但是還有許多原因可以阻止成功(例如,帶有反熔絲的JTAG接口的永久物理斷開連接)
謝謝你的回答。我並不是特別想繞過ATmega,這只是微控制器的一個例子,那裡沒有眾所周知的方法。我確實在尋找這樣的實用硬件和軟件示例-一切似乎都很羅word。
mncoppola
2013-04-13 10:56:18 UTC
view on stackexchange narkive permalink

它並不是直接針對繞過複製保護,而是由Jasper van Woudenberg通過故障注入對嵌入式系統進行故障處理方面進行了大量研究。他的研究應用包括操縱分支決策,洩漏指令和加密密鑰,因此也有可能將其應用於您的目標。

他2012年演講的幻燈片可在此處找到: http://www.riscure.com/news-events/fault-injection-attacks-on-embedded-chips(公司的更多出版物可以在此處找到)

>

他最近在Infiltrate 2013上發表了一個演講,在這個領域引起了廣泛關注,因此請留意其中的幻燈片和視頻。

此外,它可能值得了解 Xbox 360小故障及其涉及的過程。

Xbox小故障hack鏈接已死
user2659
2013-08-15 14:00:38 UTC
view on stackexchange narkive permalink

為了讀取Atmel AVR ATmega MCU的閃存內容,您可以斷開主芯片。它不會返回未損壞的芯片,而是提供代碼和程序。

您是在打開芯片蓋並在視覺上還是使用激光讀取閃光燈?這是可能的,但不是我要問的問題。
Mellowcandle
2013-04-11 16:28:03 UTC
view on stackexchange narkive permalink

這實際上不是您的問題的答案,而是我幾個小時一直在想的另一種方法。

根據我的經驗, JTAG code的鎖定>端口是通過將特定寄存器設置為特定值來由軟件完成的。這些信息可以很容易地從微控制器的手冊中獲得。

我的想法是從軟件方面而不是硬件方面進行攻擊。

假設:

  1. 設備允許使用USB,UART等進行現場固件更新。

  2. 固件未加密(嗯,根據我的經驗,有時不是。)

  3. ol>

    我的想法是更改固件文件,並註入清除鎖定寄存器的特定操作碼。

    這只是一個主意,我之前從未嘗試過,但是我想這是可能的。

如果正確實施了鎖定,則應該在沒有復位的情況下更改固件。
我不能說所有的微控制器,但是在Atmel的SAM3(Arm Cortex M3)中,可以進行一些更改。
那不是很大的鎖,不是嗎?我認為他們的AVR控制器並非如此。
您對AVR的看法是正確的,如此處所述:http://electronics.stackexchange.com/questions/53282/protecting-avr-flash-from-reading-through-isp
由於這不是小故障,因此我認為這不是答案。
通過注入操作碼,我們還可以讀取和發送固件,而我認為大多數時候都不需要修補。
關於第2點-每個有價值的固件都經過加密,並在MCU存儲器中進行解密。除了開發人員非常愚蠢的情況。
如果固件未加密,則可以就此停止,固件已包含在更新文件中。
WalterH
2015-10-06 00:03:37 UTC
view on stackexchange narkive permalink

我在中國見過其中一家公司,也見過很多顯微鏡,所以我假設要對芯片進行解封裝,並對芯片進行一些修改。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...