Pitanje:
Zaobilaženje zaštite od kopiranja u mikrokontrolerima pomoću glitchinga
Cybergibbons
2013-04-10 15:04:45 UTC
view on stackexchange narkive permalink

Mikrokontroleri ATmega obično imaju dva bita za zaključavanje, LB1 i LB2. Jedan sprječava daljnje programiranje, a drugi sprječava ponovno očitavanje bljeskalice. Ako su postavljena oba, čip treba izbrisati prije nego što se može ponovno programirati. To sprječava očitavanje i ponovno inženjerstvo flash memorije. Slični mehanizmi mogu se naći na mnogim drugim obiteljima mikrokontrolera.

Određeni drugi procesori široko su dokumentirali zaobilaznice, npr. PIC 18F452, gdje se pojedinačni blok može izbrisati i napisati firmware za čitanje drugih blokova ( dokumentirano u "Srcu tame - istraživanje neistraženih rukavca HID iCLASSTM sigurnosti").

S vremena na vrijeme, forume objavljuju tvrtke koje nude svoje usluge za čitanje zaštićenih ATmega čipova. Postoje i web stranice, općenito .ru, koje nude ove usluge. Cijena se kreće oko 500 - 1500 USD s vremenom obrade od nekoliko tjedana.

Pretpostavljam da po tim troškovima ne dekapsuliraju čip i koriste lasersku sondu za resetiranje bitova osigurača. Raspitivao sam se vraćaju li čip neoštećen, ali nisam dobio odgovor.

U ovom istraživanju ("Zaštita od kopiranja u modernim mikrokontrolerima") spomenuto je u odjeljku "Neinvazivni napadi na mikrokontrolere" koje mnogi mikrokontroleri mogu zaobići zaštitu od kopiranja pomoću kvara sata, napajanja ili podataka. Međutim, nisam vidio nikakve praktične primjere niti daljnja istraživanja na ovom području.

Prije nekoliko godina glitching je bio vrlo popularan za zaobilaženje zaštite pametnih kartica koje se koriste u satelitskim TV prijamnicima, ali opet, ovdje nisam pronašao puno informacija izvan nekih shema sklopova glitchera.

Ima li netko daljnje informacije o korištenju glitchinga za zaobilaženje zaštite od kopiranja?

Mrzim davati ove čestitke, neproduktivne izjave, ali SJAJNO pitanje.
Tvrtka [RussianSemiResearch] (http://RussianSemiResearch.com) može zaštititi mnoge MCU-ove.
Pa, ako je zaključavanje pravilno implementirano, ne možete se poigrati s pokretačkim programom za promjenu bita zaključavanja i vraćanja koda za čitanje. Ali u isto vrijeme ljudi su napisali da se avr otključa za 500 dolara, kako to postižu? bilo koja ideja?
Na ovom YouTube kanalu daje puno praktičnih primjera o kvarenju i objašnjavanju svakog koraka, možda će vam pomoći: https://www.youtube.com/channel/UCaEgw3321ct_PE4PJvdhXEQ.
Pet odgovori:
#1
+16
ixje
2013-04-11 12:35:05 UTC
view on stackexchange narkive permalink

Kakve daljnje informacije tražite? Pretpostavljam da je vaš cilj pročitati flash sadržaj ATmega mikrokontrolera. Pronašli ste informacije o načinu rada glitchera, pretpostavljam da želite potvrdu da je to općenito moguće prije nego što se obvežete na izgradnju? U tom slučaju da, moguće je. Ne mogu vam dostaviti nikakve radove jer se temelji na praktičnom iskustvu (ne nužno na ATmega mcu).

Budući da općenito ne postoji način da sami pružite jezgru na ugrađenu ploču (za razliku od pametnih kartica ) morat ćete napraviti bilo napajanje, lasersko ili elektromagnetsko kvarenje. Pod pretpostavkom da ćete raditi napajanje, u osnovi morate zamijeniti glavni izvor napajanja cilja onim koji ste dobili. U ovo možete ubrizgati svoje napake (negativne ili pozitivne).

Postoji mnogo razloga zbog kojih se zaštita od kopiranja može zaobići, sve ovisno o provedbi zaštitnog mehanizma. Neki od trenutaka koje možete isprobati su:

  • Odmah nakon hladnog resetiranja. Recimo da je vrijednost bita zaštite od kopiranja pohranjena u OTP. Sustav izvršava određenu inicijalizaciju odmah nakon resetiranja. To može uključivati ​​prijenos vrijednosti bita zaštite u interni registar. Glitching u ovom trenutku može, na primjer, "poništiti" prijenos, promijeniti vrijednost na sabirnici ili spriječiti pohranu vrijednosti u registar odredišta.
  • Bilo kada tijekom vremena izvođenja . Glitching tijekom vremena izvođenja može utjecati na bilo koji registar. To je divlji pucanj, ali mogu se dogoditi zabavne stvari (pozdrav, otključaj JTAG!)
  • Tijekom provjere dozvole . Ako je čitanje bljeskalice zaštićeno, to znači da u jednom trenutku mora provjeriti imate li dopuštenje. Ako možete utjecati na ishod ove odluke, može vam odobriti pristup za preuzimanje sadržaja
  • A možete se sjetiti još mnogo toga, ali i mnogo razloga za to što može spriječiti uspjeh (npr. trajno fizičko prekidanje JTAG sučelja s antifuzima itd.)
Hvala na odgovoru. Nisam posebno želio zaobići ATmegu, to je bio samo primjer mikrokontrolera u kojem ne postoji općepoznata metoda. Zaista sam tražio praktični primjer toga - hardverski i softverski - sve mi se čini vrlo rječitim.
#2
+5
mncoppola
2013-04-13 10:56:18 UTC
view on stackexchange narkive permalink

Nije izravno usmjeren na zaobilaženje zaštite od kopiranja, ali postoje značajna istraživanja u kvarenim ugrađenim sustavima ubrizgavanjem kvara, Jasper van Woudenberg. Primjene njegovog istraživanja uključuju manipuliranje odlukama grana i curenje uputa i kripto ključeva, pa će vjerojatno postojati mogućnosti da se to primijeni i na vaš cilj.

Slajdovi iz njegovog govora iz 2012. godine mogu se naći ovdje: http://www.riscure.com/news-events/fault-injection-attacks-on-embedded-chips (više publikacija tvrtke može se naći ovdje)

Nedavno je održao govor na Infiltrate 2013 koji se jako dotaknuo u ovom području, pa pripazite na slajdove i videozapise s toga.

Uz to, možda je vrijedno saznati više o hack-u Xbox 360 i procesu koji je tamo uključen.

Veza do kvara na Xbox glitchu je mrtva
#3
+1
user2659
2013-08-15 14:00:38 UTC
view on stackexchange narkive permalink

Da biste pročitali flash sadržaj za Atmel AVR ATmega MCU ,, možete slomiti glavni čip. Ne vraća čip neoštećen, ali pruža kôd i program.

Otklanjate li čip i čitate li bljeskalicu vizualno ili koristite laser? To je moguće, ali ne i pitanje koje postavljam.
#4
  0
Mellowcandle
2013-04-11 16:28:03 UTC
view on stackexchange narkive permalink

Ovo zapravo nije odgovor na vaše pitanje, već drugačiji pristup na koji sam razmišljao nekoliko sati.

Iz mog iskustva zaključavanje JTAG koda > port vrši softver, postavljanjem određenog registra na određenu vrijednost. ove se informacije lako mogu dobiti u priručniku mikrokontrolera.

Moja ideja je napadati sa softverske strane, a ne sa hardvera.

Pretpostavke:

  1. Uređaj omogućuje ažuriranje firmvera na terenu pomoću USB-a, UART-a itd.

  2. Firmver nije šifriran (dobro, iz mog iskustva to ponekad nije).

Moja je ideja izmijeniti datoteku firmvera i ubrizgati određeni optički kod koji briše registar zaključavanja.

Ovo je samo ideja, nikada je prije nisam probao, ali pretpostavljam da je to moguće ....

Ako je zaključavanje pravilno provedeno, ne bi trebalo biti moguće promijeniti firmware bez resetiranja.
Ne mogu govoriti u ime svih mikrokontrolera, ali u Atmelovom SAM3 (Arm Cortex M3) pomalo se može mijenjati naprijed-natrag.
To onda nije velika brava, zar ne? Ne vjerujem da je to slučaj s njihovim AVR kontrolerima.
u pravu ste u vezi s AVR-ima, kao što je ovdje navedeno: http://electronics.stackexchange.com/questions/53282/protecting-avr-flash-from-reading-through-isp
Kako se ovdje ne radi o kvarenju, mislim da ovo ne bi trebao biti odgovor ovdje.
Ubrizgavanjem opcode-a također možemo čitati i slati firmware, mislim da većinu puta nije potrebno zakrpati.
O točki 2 - svaki vrijedni firmware šifrira se i dešifrira u MCU memoriji. Osim slučajeva kada je programer vrlo glup.
Ako firmware nije šifriran, možete se odmah zaustaviti, imate firmware u datoteci za ažuriranje.
#5
-1
WalterH
2015-10-06 00:03:37 UTC
view on stackexchange narkive permalink

Vidio sam jednu od ovih tvrtki u Kini, vidio sam puno mikroskopa, pa pretpostavljam da se dekapsulira čip i napravim neke preinake na čipu.



Ova pitanja su automatski prevedena s engleskog jezika.Izvorni sadržaj dostupan je na stackexchange-u, što zahvaljujemo na cc by-sa 3.0 licenci pod kojom se distribuira.
Loading...