Preokretanje i hakovanje Aigo eksternog HDD diska koji se samošifruje. Dio 1: Seciranje na dijelove

Preokretanje i hakovanje eksternih samošifrujućih diskova moj je stari hobi. U prošlosti sam imao priliku vježbati sa takvim modelima kao što su Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500. Nedavno mi je kolega doneo još jedan eksponat: Patriot (Aigo) SK8671, koji je napravljen po tipičnom dizajnu - LCD indikator i tastatura za unos PIN koda. Eto šta je iz toga proizašlo…

1. Uvod
2. Arhitektura hardvera
– 2.1. Glavna ploča
– 2.2. LCD indikatorska ploča
– 2.3. Tastaturna ploča
– 2.4. Gledajući žice
3. Redoslijed napadačkih koraka
– 3.1. Preuzimanje dump podataka sa SPI fleš diska
– 3.2. Njuškanje komunikacija

Preokretanje i hakovanje Aigo eksternog HDD diska koji se samošifruje. Dio 1: Seciranje na dijelove


1. Uvod

Preokretanje i hakovanje Aigo eksternog HDD diska koji se samošifruje. Dio 1: Seciranje na dijelove
Stanovanje

Preokretanje i hakovanje Aigo eksternog HDD diska koji se samošifruje. Dio 1: Seciranje na dijelove
Упаковка

Pristup podacima pohranjenim na disku, koji su navodno šifrirani, vrši se nakon unosa PIN koda. Nekoliko uvodnih napomena o ovom uređaju:

  • Da biste promijenili PIN kod, morate pritisnuti F1 prije otključavanja;
  • PIN kod mora sadržavati od 6 do 9 cifara;
  • Nakon 15 pogrešnih pokušaja, disk se briše.

2. Arhitektura hardvera

Prvo, seciramo uređaj na dijelove kako bismo razumjeli od kojih se komponenti sastoji. Najzamorniji zadatak je otvaranje kućišta: puno mikroskopskih vijaka i plastike. Nakon otvaranja kućišta, vidimo sljedeće (obratite pažnju na petopinski konektor koji sam zalemio):

Preokretanje i hakovanje Aigo eksternog HDD diska koji se samošifruje. Dio 1: Seciranje na dijelove

2.1. Glavna ploča

Glavna ploča je prilično jednostavna:

Preokretanje i hakovanje Aigo eksternog HDD diska koji se samošifruje. Dio 1: Seciranje na dijelove

Njegovi najznačajniji dijelovi (pogledajte odozgo prema dolje):

  • konektor za LCD indikator (CN1);
  • visokotonac (SP1);
  • Pm25LD010 (specifikacija) SPI fleš disk (U2);
  • Jmicron JMS539 kontroler (specifikacija) za USB-SATA (U1);
  • USB 3 konektor (J1).

SPI fleš disk čuva firmver za JMS539 i neka podešavanja.

2.2. LCD indikatorska ploča

Na LCD ploči nema ničeg značajnog.

Preokretanje i hakovanje Aigo eksternog HDD diska koji se samošifruje. Dio 1: Seciranje na dijelove
Preokretanje i hakovanje Aigo eksternog HDD diska koji se samošifruje. Dio 1: Seciranje na dijelove

samo:

  • LCD indikator nepoznatog porijekla (vjerovatno s kineskim fontom); sa sekvencijalnom kontrolom;
  • Ribbon konektor za tastaturu.

2.3. Tastaturna ploča

Kada se ispita tastatura, stvari dobijaju zanimljiviji obrt.

Preokretanje i hakovanje Aigo eksternog HDD diska koji se samošifruje. Dio 1: Seciranje na dijelove

Ovdje na poleđini vidimo ribbon konektor, kao i Cypress CY8C21434 mikrokontroler PSoC 1 (u daljem tekstu ćemo ga jednostavno zvati PSoC)

Preokretanje i hakovanje Aigo eksternog HDD diska koji se samošifruje. Dio 1: Seciranje na dijelove

CY8C21434 koristi M8C skup instrukcija (vidi dokumentaciju). Na [stranici proizvoda]( (http://www.cypress.com/part/cy8c21434-24ltxi) naznačeno je da podržava tehnologiju CapSense (rešenje iz Cypressa, za kapacitivne tastature). Ovdje možete vidjeti petopinski konektor koji sam zalemio - ovo je standardni pristup za povezivanje eksternog programatora preko ISSP sučelja.

2.4. Gledajući žice

Hajde da shvatimo šta je ovde povezano. Da biste to učinili, samo testirajte žice multimetrom:

Preokretanje i hakovanje Aigo eksternog HDD diska koji se samošifruje. Dio 1: Seciranje na dijelove

Objašnjenja za ovaj dijagram nacrtan na kolenu:

  • PSoC je opisan u tehničkoj specifikaciji;
  • sledeći konektor, onaj sa desne strane, je ISSP interfejs, koji voljom sudbine odgovara onome što o njemu piše na internetu;
  • Krajnji desni konektor je terminal za vrpcu konektor za tastaturu;
  • Crni pravougaonik je crtež CN1 konektora, dizajniran da poveže glavnu ploču sa LCD pločom. P11, P13 i P4 su povezani na PSoC pinove 11, 13 i 4, na LCD ploči.

3. Redoslijed napadačkih koraka

Sada kada znamo od kojih se komponenti sastoji ovaj drajv, moramo: 1) da se uverimo da je osnovna funkcionalnost šifrovanja zaista prisutna; 2) saznati kako se generišu/čuvaju ključevi za šifrovanje; 3) pronaći gdje će se tačno provjeriti PIN kod.

Da to uradim uradio sam sledeće korake:

  • preuzeo dump podataka sa SPI fleš diska;
  • pokušao da izbaci podatke sa PSoC fleš diska;
  • potvrđeno da komunikacija između Cypress PSoC-a i JMS539 zapravo sadrži pritiske na tipke;
  • Uvjerio sam se da prilikom promjene lozinke ništa nije prepisano u SPI fleš disk;
  • bio previše lijen da poništi firmver 8051 sa JMS539.

3.1. Uzimanje dump podataka sa SPI fleš diska

Ova procedura je vrlo jednostavna:

  • povežite sonde na noge fleš diska: CLK, MOSI, MISO i (opciono) EN;
  • „njušiti“ komunikaciju sa njuškačem pomoću logičkog analizatora (ja sam koristio Saleae Logic Pro 16);
  • dekodiranje SPI protokola i izvoz rezultata u CSV;
  • iskoristite decode_spi.rbda analizirate rezultate i dobijete dump.

Imajte na umu da ovaj pristup posebno dobro funkcioniše u slučaju JMS539 kontrolera, jer ovaj kontroler učitava sav firmver sa fleš diska u fazi inicijalizacije.

$ decode_spi.rb boot_spi1.csv dump
0.039776 : WRITE DISABLE
0.039777 : JEDEC READ ID
0.039784 : ID 0x7f 0x9d 0x21
---------------------
0.039788 : READ @ 0x0
0x12,0x42,0x00,0xd3,0x22,0x00,
[...]
$ ls --size --block-size=1 dump
49152 dump
$ sha1sum dump
3d9db0dde7b4aadd2b7705a46b5d04e1a1f3b125 dump

Nakon što sam napravio dump sa SPI fleš diska, došao sam do zaključka da je njegov jedini zadatak pohranjivanje firmvera za JMicron kontrolni uređaj, koji je ugrađen u 8051 mikrokontroler. Nažalost, uzimanje dump-a SPI fleš diska pokazalo se beskorisnim:

  • kada se PIN kod promeni, dump fleš diska ostaje isti;
  • Nakon faze inicijalizacije, uređaj ne pristupa SPI fleš disku.

3.2. Njuškanje komunikacija

Ovo je jedan od načina da saznate koji je čip odgovoran za provjeru komunikacije za vrijeme/sadržaj od interesa. Kao što već znamo, USB-SATA kontroler je povezan na Cypress PSoC LCD preko konektora CN1 i dva ribona. Stoga povezujemo sonde na tri odgovarajuće krake:

  • P4, opšti ulaz/izlaz;
  • P11, I2C SCL;
  • P13, I2C SDA.

Preokretanje i hakovanje Aigo eksternog HDD diska koji se samošifruje. Dio 1: Seciranje na dijelove

Zatim pokrećemo Saleae logički analizator i unosimo na tastaturi: “123456~”. Kao rezultat, vidimo sljedeći dijagram.

Preokretanje i hakovanje Aigo eksternog HDD diska koji se samošifruje. Dio 1: Seciranje na dijelove

Na njemu možemo vidjeti tri kanala za razmjenu podataka:

  • postoji nekoliko kratkih rafala na kanalu P4;
  • na P11 i P13 - gotovo kontinuirana razmjena podataka.

Zumirajući prvi šiljak na kanalu P4 (plavi pravougaonik na prethodnoj slici), vidimo sledeće:

Preokretanje i hakovanje Aigo eksternog HDD diska koji se samošifruje. Dio 1: Seciranje na dijelove

Ovdje možete vidjeti da na P4 postoji skoro 70ms monotonog signala, što mi se u početku činilo da igra ulogu taktnog signala. Međutim, nakon što sam proveo neko vrijeme provjeravajući svoju pretpostavku, otkrio sam da ovo nije signal sata, već audio stream koji se emituje na visokotonac kada se pritisnu tipke. Stoga ovaj dio samog signala ne sadrži korisne informacije za nas. Međutim, može se koristiti kao indikator da se zna kada PSoC registruje pritisak na taster.

Međutim, najnoviji P4 audio stream je malo drugačiji: to je zvuk za "nevažeći PIN"!

Vraćajući se na grafikon pritiska na tipku, zumiranjem na posljednji graf audio toka (pogledajte ponovo plavi pravougaonik), dobijamo:

Preokretanje i hakovanje Aigo eksternog HDD diska koji se samošifruje. Dio 1: Seciranje na dijelove

Ovdje vidimo monotone signale na P11. Dakle, izgleda da je ovo signal sata. A P13 je podatak. Primijetite kako se obrazac mijenja nakon završetka zvučnog signala. Bilo bi zanimljivo vidjeti šta se ovdje dešava.

Protokoli koji rade sa dvije žice su obično SPI ili I2C, a tehničke specifikacije na Cypressu navode da ovi pinovi odgovaraju I2C, što vidimo da je istina u našem slučaju:

Preokretanje i hakovanje Aigo eksternog HDD diska koji se samošifruje. Dio 1: Seciranje na dijelove

USB-SATA čipset stalno ispituje PSoC da bi pročitao stanje ključa, koje je po defaultu "0". Zatim, kada pritisnete tipku "1", ona se mijenja u "1". Konačni prijenos odmah nakon pritiska na “~” je drugačiji ako se unese pogrešan PIN kod. Međutim, trenutno nisam provjerio šta se zapravo tamo prenosi. Ali sumnjam da je malo vjerovatno da se radi o ključu za šifriranje. U svakom slučaju, pogledajte sljedeći odjeljak da biste razumjeli kako sam uklonio PSoC interni firmver.

izvor: www.habr.com

Dodajte komentar