Reverzní inženýrství a hackování samošifrovacího externího HDD disku Aigo. Část 1: Rozebíráme na části

Reversing and hacking external self-encrypting drives has been a long-standing hobby of mine. In the past, I have experimented with models such as Zalman VE-400, Zalman ZM-SHE500, and Zalman ZM-VE500. Recently, a colleague brought me another specimen: Patriot (Aigo) SK8671, which is built on a typical design – an LCD indicator and a keyboard for entering a PIN code. Here's what I discovered…

1. Úvod
2. Hard Architecture
– 2.1. Motherboard
– 2.2. LCD Indicator Board
– 2.3. Keyboard Board
– 2.4. Looking at the Wires
3. Attack Steps Sequence
– 3.1. Dumping the SPI Flash Data
– 3.2. Sniffing the Communications

Reverzní inženýrství a hackování samošifrovacího externího HDD disku Aigo. Část 1: Rozebíráme na části


1. Úvod

Reverzní inženýrství a hackování samošifrovacího externího HDD disku Aigo. Část 1: Rozebíráme na části
Korpus

Reverzní inženýrství a hackování samošifrovacího externího HDD disku Aigo. Část 1: Rozebíráme na části
Packaging

Access to the data saved on the disk, which is allegedly encrypted, occurs after entering the PIN code. Here are a few introductory notes regarding this device:

  • To change the PIN code, you must press F1 before unlocking;
  • The PIN code must consist of 6 to 9 digits;
  • After 15 incorrect attempts, the drive is wiped.

2. Hard Architecture

First, we dismantle the device into parts to understand what components it consists of. The most tedious task is opening the case: many microscopic screws and plastic. After opening the case, we see the following (notice the 5-pin connector I soldered):

Reverzní inženýrství a hackování samošifrovacího externího HDD disku Aigo. Část 1: Rozebíráme na části

2.1. Motherboard

The motherboard is quite simple:

Reverzní inženýrství a hackování samošifrovacího externího HDD disku Aigo. Část 1: Rozebíráme na části

Its most notable parts (see from top to bottom):

  • connector for the LCD indicator (CN1);
  • buzzer (SP1);
  • Pm25LD010 (specification) SPI flash chip (U2);
  • Jmicron JMS539 controller (specification) for USB-SATA (U1);
  • USB 3 connector (J1).

The SPI flash chip stores the firmware for JMS539 and some settings.

2.2. LCD Indicator Board

There's nothing remarkable on the LCD board.

Reverzní inženýrství a hackování samošifrovacího externího HDD disku Aigo. Část 1: Rozebíráme na části
Reverzní inženýrství a hackování samošifrovacího externího HDD disku Aigo. Část 1: Rozebíráme na části

Just:

  • an LCD indicator of unknown origin (probably from a Chinese font kit); controlled serially;
  • a ribbon connector for the keyboard board.

2.3. Keyboard Board

Upon examining the keyboard board, things take a more interesting turn.

Reverzní inženýrství a hackování samošifrovacího externího HDD disku Aigo. Část 1: Rozebíráme na části

Here, on the back side, we see a ribbon connector, as well as the Cypress CY8C21434 – a PSoC 1 microcontroller (from now on, we will simply call it PSoC)

Reverzní inženýrství a hackování samošifrovacího externího HDD disku Aigo. Část 1: Rozebíráme na části

The CY8C21434 uses the M8C instruction set (see. dokumentaci). On the [product page]( (http://www.cypress.com/part/cy8c21434-24ltxi) it is stated that it supports the CapSense (Cypress solution for capacitive keyboards). Here, you can see the 5-pin connector I soldered – this is a standard approach for connecting an external programmer via the ISSP interface.

2.4. Podíváme se na kabely

Pojďme zjistit, co je s čím spojené. K tomu stačí otestovat kabely multimetr:

Reverzní inženýrství a hackování samošifrovacího externího HDD disku Aigo. Část 1: Rozebíráme na části

Vysvětlení k tomuto načrtnutému schématu:

  • PSoC je popsán v technické specifikaci;
  • další konektor, ten napravo – ISSP rozhraní, které je širší veřejnosti známo tak, jak je uvedeno na internetu;
  • nejpravejší konektor – je to svorkovnice pro párové spojení s klávesnicí;
  • černý obdélník – schéma konektoru CN1, určeného k propojení základní desky s LCD deskou. P11, P13 a P4 jsou připojeny k pinům PSoC 11, 13 a 4 na LCD desce.

3. Attack Steps Sequence

Nyní, když víme, z jakých komponentů se toto zařízení skládá, musíme: 1) ujistit se, že základní funkčnost šifrování je skutečně přítomna; 2) zjistit, jak jsou generovány/uloženy šifrovací klíče; 3) najít, kde se kontroluje PIN kód.

K tomu jsem provedl následující kroky:

  • vyjmul jsem dump dat z SPI flash;
  • pokoušel jsem se vyjmout dump dat z PSoC flash;
  • ujistil jsem se, že výměna dat mezi Cypress PSoC a JMS539 skutečně obsahuje stisknuté klávesy;
  • ujistil jsem se, že při změně hesla se na SPI flash nic nepřepisuje;
  • byl jsem příliš líný na to, abych prováděl reverzní inženýrství 8051 firmwaru od JMS539.

3.1. Získání dumpu dat z SPI flash

Tento postup je velmi jednoduchý:

  • připojit sondy k pinům flash: CLK, MOSI, MISO a (volitelně) EN;
  • analyzovat komunikace se snifferem, pomocí logického analyzátoru (já použil Saleae Logic Pro 16);
  • dešifrovat SPI protokol a exportovat výsledky do CSV;
  • využít decode_spi.rb, aby se parser výstupy a získal dump.

Všimněte si, že tento přístup u JMS539 kontroleru funguje obzvláště dobře, protože tento kontroler během inicializace načítá z flash veškerý firmware.

$ 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 získání dumpu ze SPI flash jsem dospěl k závěru, že její jedinou úlohou je uchovávat firmware pro řadič JMicron, který je integrován do 8051 mikrokontroléru. Bohužel získání dumpu ze SPI flash se ukázalo jako bezcenné:

  • při změně PIN kódu zůstává dump flash stejný;
  • po fázi inicializace zařízení na SPI flash neprovádí žádné dotazy.

3.2. Analyzujeme komunikace

Toto je jeden ze způsobů, jak zjistit, který čip odpovídá za kontrolu komunikací, pro specifický čas/obsah. Jak už víme, řadič USB-SATA je připojen k LCD Cypress PSoC prostřednictvím konektoru CN1 a dvou pásek. Proto připojujeme sondy k těmto třem odpovídajícím pinům:

  • P4, obecný vstup/výstup;
  • P11, I2C SCL;
  • P13, I2C SDA.

Reverzní inženýrství a hackování samošifrovacího externího HDD disku Aigo. Část 1: Rozebíráme na části

Poté spustíme logický analyzátor Saleae a na klávesnici zadáme: “123456~”. Výsledkem je následující diagram.

Reverzní inženýrství a hackování samošifrovacího externího HDD disku Aigo. Část 1: Rozebíráme na části

Na něm můžeme vidět tři kanály přenosu dat:

  • na kanálu P4 několik krátkých impulsů;
  • na P11 a P13 – téměř nepřetržitý přenos dat.

Zvětšením prvního impulsu na kanálu P4 (modrý obdélník z předchozího obrázku) vidíme následující:

Reverzní inženýrství a hackování samošifrovacího externího HDD disku Aigo. Část 1: Rozebíráme na části

Zde je vidět, že na P4 je téměř 70 ms jednotného signálu, který se na první pohled zdál jako synchronizační signál. Po chvíli se mi však podařilo ověřit moji domněnku, že to není synchronizační signál, ale audio tok, který se přehrává na reproduktoru při stisknutí kláves. Tento úsek signálu tedy sám o sobě neobsahuje pro nás užitečné informace. Lze ho však použít jako indikátor, abychom věděli, kdy PSoC registruje stisk klávesy.

Avšak poslední audio tok na kanálu P4 se mírně liší od ostatních: je to zvuk pro „špatný pin kód“!

Když se vrátíme k diagramu stisknutí kláves, po zvětšení diagramu posledního audio toku (viz opět modrý obdélník) dostaneme:

Reverzní inženýrství a hackování samošifrovacího externího HDD disku Aigo. Část 1: Rozebíráme na části

Zde vidíme jednotné signály na P11. Takže se zdá, že to je synchronizační signál. A P13 – data. Všimněte si, jak se vzor mění po skončení zvukového signálu. Bylo by zajímavé vidět, co se zde děje.

Protokoly pracující se dvěma vodiči jsou obvykle SPI nebo I2C, a v technické specifikaci pro Cypress je uvedeno, že tyto piny odpovídají I2C, což je, jak vidíme, pravdivé i pro náš případ:

Reverzní inženýrství a hackování samošifrovacího externího HDD disku Aigo. Část 1: Rozebíráme na části

Čipset USB-SATA neustále skenuje PSoC – aby načítal stav tlačítka, které je ve výchozím nastavení „0“. Poté, když je stisknuto tlačítko „1“, změní se na „1“. Konečný přenos, ihned po stisknutí “~” se liší, pokud je zadán nesprávný PIN kód. Dosud jsem však neověřoval, co se tam skutečně přenáší. Ale podezřívám, že to těžko bude klíč k šifrování. Tak či onak, podívejte se na další část, abyste pochopili, jak jsem extrahoval interní firmware PSoC.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster