Odwracanie i hakowanie samoszyfrującego zewnętrznego dysku twardego Aigo. Część 1: Sekcja części

Odwracanie i hakowanie zewnętrznych dysków samoszyfrujących to moje stare hobby. W przeszłości miałem okazję ćwiczyć z takimi modelami jak Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500. Niedawno kolega przywiózł mi kolejny eksponat: Patriot (Aigo) SK8671, który zbudowany jest według typowej konstrukcji - wskaźnik LCD i klawiatura do wprowadzania kodu PIN. Oto co z tego wyszło…

1. Wprowadzenie
2. Architektura sprzętowa
– 2.1. Płyta główna
– 2.2. Tablica wskaźników LCD
– 2.3. Płyta klawiatury
– 2.4. Patrząc na przewody
3. Kolejność kroków ataku
– 3.1. Pobieranie zrzutu danych z dysku flash SPI
– 3.2. Podsłuchiwanie komunikacji

Odwracanie i hakowanie samoszyfrującego zewnętrznego dysku twardego Aigo. Część 1: Sekcja części


1. Wprowadzenie

Odwracanie i hakowanie samoszyfrującego zewnętrznego dysku twardego Aigo. Część 1: Sekcja części
obudowa

Odwracanie i hakowanie samoszyfrującego zewnętrznego dysku twardego Aigo. Część 1: Sekcja części
Opakowanie

Dostęp do danych zapisanych na dysku, który rzekomo jest zaszyfrowany, następuje po wprowadzeniu kodu PIN. Kilka uwag wstępnych na temat tego urządzenia:

  • Aby zmienić kod PIN, należy przed odblokowaniem nacisnąć klawisz F1;
  • Kod PIN musi zawierać od 6 do 9 cyfr;
  • Po 15 błędnych próbach dysk zostanie wyczyszczony.

2. Architektura sprzętowa

Najpierw rozkładamy urządzenie na części, aby zrozumieć, z jakich elementów się składa. Najbardziej żmudnym zadaniem jest otwieranie obudowy: mnóstwo mikroskopijnych śrubek i plastiku. Po otwarciu obudowy widzimy co następuje (zwróć uwagę na pięciopinowe złącze, które wlutowałem):

Odwracanie i hakowanie samoszyfrującego zewnętrznego dysku twardego Aigo. Część 1: Sekcja części

2.1. Płyta główna

Płyta główna jest dość prosta:

Odwracanie i hakowanie samoszyfrującego zewnętrznego dysku twardego Aigo. Część 1: Sekcja części

Jego najbardziej godne uwagi części (patrz od góry do dołu):

  • złącze dla wskaźnika LCD (CN1);
  • głośnik wysokotonowy (SP1);
  • Pm25LD010 (specyfikacja) Pendrive SPI (U2);
  • Kontroler Jmicron JMS539 (specyfikacja) dla USB-SATA (U1);
  • Złącze USB 3 (J1).

Na dysku flash SPI przechowywane jest oprogramowanie układowe JMS539 i niektóre ustawienia.

2.2. Tablica wskaźników LCD

Na płycie LCD nie ma nic godnego uwagi.

Odwracanie i hakowanie samoszyfrującego zewnętrznego dysku twardego Aigo. Część 1: Sekcja części
Odwracanie i hakowanie samoszyfrującego zewnętrznego dysku twardego Aigo. Część 1: Sekcja części

Tylko:

  • Wskaźnik LCD niewiadomego pochodzenia (prawdopodobnie z zestawem chińskich czcionek); ze sterowaniem sekwencyjnym;
  • Złącze taśmowe do płyty klawiatury.

2.3. Płyta klawiatury

Kiedy przyjrzymy się klawiaturze, sprawy przybierają ciekawszy obrót.

Odwracanie i hakowanie samoszyfrującego zewnętrznego dysku twardego Aigo. Część 1: Sekcja części

Tutaj, z tyłu, widzimy złącze taśmowe, a także mikrokontroler Cypress CY8C21434 PSoC 1 (w dalszej części będziemy go nazywać po prostu PSoC)

Odwracanie i hakowanie samoszyfrującego zewnętrznego dysku twardego Aigo. Część 1: Sekcja części

CY8C21434 wykorzystuje zestaw instrukcji M8C (patrz dokumentacja). Na [stronie produktu]( (http://www.cypress.com/part/cy8c21434-24ltxi) wskazano, że obsługuje tę technologię CapSense (rozwiązanie firmy Cypress, dla klawiatur pojemnościowych). Tutaj widać pięciopinowe złącze, które wlutowałem - to standardowe podejście do podłączenia zewnętrznego programatora poprzez interfejs ISSP.

2.4. Patrząc na przewody

Zastanówmy się, co jest tutaj połączone. Aby to zrobić, po prostu przetestuj przewody za pomocą multimetru:

Odwracanie i hakowanie samoszyfrującego zewnętrznego dysku twardego Aigo. Część 1: Sekcja części

Objaśnienia do tego diagramu narysowanego na kolanie:

  • PSoC opisano w specyfikacji technicznej;
  • kolejne złącze, to po prawej, to interfejs ISSP, który zrządzeniem losu odpowiada temu, co o nim napisano w Internecie;
  • Złącze znajdujące się najbardziej na prawo to zacisk złącza taśmowego do płyty klawiatury;
  • Czarny prostokąt to rysunek złącza CN1, przeznaczonego do połączenia płyty głównej z płytką LCD. P11, P13 i P4 są podłączone do pinów PSoC 11, 13 i 4 na płycie LCD.

3. Kolejność kroków ataku

Teraz, gdy wiemy, z jakich elementów składa się ten dysk, musimy: 1) upewnić się, że podstawowa funkcja szyfrowania rzeczywiście jest dostępna; 2) dowiedzieć się, w jaki sposób generowane/zapisywane są klucze szyfrujące; 3) dowiedzieć się, gdzie dokładnie będzie sprawdzany kod PIN.

Aby to zrobić, wykonałem następujące kroki:

  • wykonał zrzut danych z dysku flash SPI;
  • próbował zrzucić dane z dysku flash PSoC;
  • zweryfikowano, że komunikacja pomiędzy Cypress PSoC i JMS539 faktycznie zawiera wciśnięte klawisze;
  • Upewniłem się, że przy zmianie hasła nic nie zostanie nadpisane na dysku flash SPI;
  • był zbyt leniwy, aby cofnąć oprogramowanie układowe 8051 z JMS539.

3.1. Pobieranie zrzutu danych z dysku flash SPI

Ta procedura jest bardzo prosta:

  • podłącz sondy do nóg pendrive'a: CLK, MOSI, MISO i (opcjonalnie) EN;
  • „podsłuchiwanie” komunikacji ze snifferem za pomocą analizatora logicznego (użyłem Sprzedam Logic Pro 16);
  • dekodować protokół SPI i eksportować wyniki do CSV;
  • skorzystaj decode_spi.rbaby przeanalizować wyniki i uzyskać zrzut.

Należy pamiętać, że to podejście sprawdza się szczególnie dobrze w przypadku kontrolera JMS539, ponieważ kontroler ten ładuje całe oprogramowanie z pendrive'a na etapie inicjalizacji.

$ 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

Po zrobieniu zrzutu z pendrive'a SPI doszedłem do wniosku, że jego jedynym zadaniem jest przechowywanie oprogramowania układowego dla urządzenia sterującego JMicron, które jest wbudowane w mikrokontroler 8051. Niestety wykonanie zrzutu pendrive'a SPI okazało się bezużyteczne:

  • po zmianie kodu PIN zrzut dysku flash pozostaje taki sam;
  • Po etapie inicjalizacji urządzenie nie uzyskuje dostępu do dysku flash SPI.

3.2. Podsłuchiwanie komunikacji

Jest to jeden ze sposobów sprawdzenia, który chip jest odpowiedzialny za sprawdzanie komunikacji pod kątem interesującego czasu/treści. Jak już wiemy, kontroler USB-SATA podłączony jest do Cypress PSoC LCD za pomocą złącza CN1 i dwóch taśm. Dlatego podłączamy sondy do trzech odpowiednich nóg:

  • P4, ogólne wejście/wyjście;
  • P11, I2C SCL;
  • P13, I2C SDA.

Odwracanie i hakowanie samoszyfrującego zewnętrznego dysku twardego Aigo. Część 1: Sekcja części

Następnie uruchamiamy analizator logiczny Saleae i wpisujemy na klawiaturze: „123456~”. W rezultacie widzimy następujący diagram.

Odwracanie i hakowanie samoszyfrującego zewnętrznego dysku twardego Aigo. Część 1: Sekcja części

Widzimy na nim trzy kanały wymiany danych:

  • na kanale P4 jest kilka krótkich impulsów;
  • na P11 i P13 - prawie ciągła wymiana danych.

Powiększając pierwszy skok na kanale P4 (niebieski prostokąt na poprzednim rysunku), widzimy, co następuje:

Odwracanie i hakowanie samoszyfrującego zewnętrznego dysku twardego Aigo. Część 1: Sekcja części

Tu widać, że na P4 jest prawie 70ms monotonnego sygnału, który początkowo wydawał mi się pełnić rolę sygnału zegarowego. Jednak po pewnym czasie sprawdzając moje przypuszczenia, odkryłem, że nie jest to sygnał zegara, ale strumień audio wysyłany do głośnika wysokotonowego po naciśnięciu klawiszy. Dlatego ta część samego sygnału nie zawiera dla nas przydatnych informacji. Można go jednak wykorzystać jako wskaźnik informujący, kiedy PSoC zarejestruje naciśnięcie klawisza.

Jednak najnowszy strumień audio P4 jest nieco inny: jest to dźwięk dla „nieprawidłowego PIN-u”!

Wracając do wykresu naciśnięć klawiszy, powiększając wykres ostatniego strumienia audio (zobacz ponownie niebieski prostokąt), otrzymujemy:

Odwracanie i hakowanie samoszyfrującego zewnętrznego dysku twardego Aigo. Część 1: Sekcja części

Tutaj widzimy monotonne sygnały na P11. Wygląda więc na to, że to jest sygnał zegara. A P13 to dane. Zwróć uwagę, jak wzór zmienia się po zakończeniu sygnału dźwiękowego. Byłoby ciekawie zobaczyć, co się tutaj stanie.

Protokoły pracujące z dwoma przewodami to zazwyczaj SPI lub I2C, a specyfikacja techniczna Cypressa podaje, że te piny odpowiadają I2C, co, jak widzimy, jest prawdą w naszym przypadku:

Odwracanie i hakowanie samoszyfrującego zewnętrznego dysku twardego Aigo. Część 1: Sekcja części

Chipset USB-SATA stale odpytuje PSoC, aby odczytać stan klucza, który domyślnie wynosi „0”. Następnie po naciśnięciu klawisza „1” zmienia się on na „1”. Ostateczna transmisja bezpośrednio po naciśnięciu „~” będzie inna w przypadku wprowadzenia błędnego kodu PIN. Jednak w tej chwili nie sprawdzałem, co tak naprawdę jest tam transmitowane. Podejrzewam jednak, że jest mało prawdopodobne, aby był to klucz szyfrujący. W każdym razie zobacz następną sekcję, aby dowiedzieć się, jak usunąłem wewnętrzne oprogramowanie sprzętowe PSoC.

Źródło: www.habr.com

Dodaj komentarz