Reverzování a hackování Aigo samošifrovacího externího HDD disku. Část 1: Rozdělení na části

Reverzování a hackování externích samošifrovacích jednotek je můj starý koníček. V minulosti jsem měl možnost cvičit s takovými modely jako Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500. Zrovna nedávno mi kolega přinesl další exponát: Patriot (Aigo) SK8671, který je postaven podle typické konstrukce - LCD indikátor a klávesnice pro zadání PIN kódu. To z toho vyšlo…

1. Úvod
2. Architektura hardwaru
– 2.1. Hlavní deska
– 2.2. LCD indikační deska
– 2.3. Deska s klávesnicí
– 2.4. Při pohledu na dráty
3. Posloupnost kroků útoku
– 3.1. Převzetí výpisu dat z SPI flash disku
– 3.2. Sledování komunikace

Reverzování a hackování Aigo samošifrovacího externího HDD disku. Část 1: Rozdělení na části


1. Úvod

Reverzování a hackování Aigo samošifrovacího externího HDD disku. Část 1: Rozdělení na části
Корпус

Reverzování a hackování Aigo samošifrovacího externího HDD disku. Část 1: Rozdělení na části
Obal

Přístup k datům uloženým na disku, která jsou údajně šifrovaná, se provádí po zadání PIN kódu. Několik poznámek na úvod k tomuto zařízení:

  • Chcete-li změnit PIN kód, musíte před odemknutím stisknout F1;
  • PIN kód musí obsahovat 6 až 9 číslic;
  • Po 15 nesprávných pokusech se disk vymaže.

2. Architektura hardwaru

Nejprve si zařízení rozebereme na části, abychom pochopili, z jakých komponent se skládá. Nejnudnějším úkolem je otevření pouzdra: spousta mikroskopických šroubů a plastu. Po otevření pouzdra vidíme následující (pozor na pětikolíkový konektor, který jsem připájel):

Reverzování a hackování Aigo samošifrovacího externího HDD disku. Část 1: Rozdělení na části

2.1. Hlavní deska

Základní deska je poměrně jednoduchá:

Reverzování a hackování Aigo samošifrovacího externího HDD disku. Část 1: Rozdělení na části

Jeho nejpozoruhodnější části (viz shora dolů):

  • konektor pro LCD indikátor (CN1);
  • výškový reproduktor (SP1);
  • Pm25LD010 (Specifikace) SPI flash disk (U2);
  • Řadič Jmicron JMS539 (Specifikace) pro USB-SATA (U1);
  • USB 3 konektor (J1).

SPI flash disk ukládá firmware pro JMS539 a některá nastavení.

2.2. LCD indikační deska

Na desce LCD není nic pozoruhodného.

Reverzování a hackování Aigo samošifrovacího externího HDD disku. Část 1: Rozdělení na části
Reverzování a hackování Aigo samošifrovacího externího HDD disku. Část 1: Rozdělení na části

Pouze:

  • LCD indikátor neznámého původu (pravděpodobně se sadou čínských písem); se sekvenčním ovládáním;
  • Páskový konektor pro desku klávesnice.

2.3. Deska s klávesnicí

Při zkoumání desky klávesnice naberou věci zajímavější spád.

Reverzování a hackování Aigo samošifrovacího externího HDD disku. Část 1: Rozdělení na části

Zde na zadní straně vidíme plochý konektor a také mikrokontrolér Cypress CY8C21434 PSoC 1 (dále mu budeme říkat jednoduše PSoC)

Reverzování a hackování Aigo samošifrovacího externího HDD disku. Část 1: Rozdělení na části

CY8C21434 používá instrukční sadu M8C (viz dokumentace). Na [stránce produktu]( (http://www.cypress.com/part/cy8c21434-24ltxi) je uvedeno, že technologii podporuje CapSense (řešení od Cypress, pro kapacitní klávesnice). Zde vidíte mnou připájený pětipinový konektor - jedná se o standardní přístup pro připojení externího programátoru přes rozhraní ISSP.

2.4. Při pohledu na dráty

Pojďme zjistit, co je zde propojeno. Chcete-li to provést, stačí otestovat vodiče pomocí multimetru:

Reverzování a hackování Aigo samošifrovacího externího HDD disku. Část 1: Rozdělení na části

Vysvětlení tohoto diagramu nakresleného na koleni:

  • PSoC je popsán v technické specifikaci;
  • další konektor, ten vpravo, je rozhraní ISSP, které z vůle osudu odpovídá tomu, co se o něm píše na internetu;
  • Konektor zcela vpravo je svorka pro plochý konektor k desce klávesnice;
  • Černý obdélník je nákres konektoru CN1, určený pro připojení hlavní desky k desce LCD. P11, P13 a P4 jsou připojeny ke kolíkům PSoC 11, 13 a 4 na desce LCD.

3. Posloupnost kroků útoku

Nyní, když víme, z jakých součástí se tento disk skládá, musíme: 1) ujistit se, že základní funkce šifrování je skutečně přítomna; 2) zjistit, jak se generují/ukládají šifrovací klíče; 3) zjistěte, kde přesně bude PIN kód kontrolován.

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

  • vzal výpis dat z SPI flash disku;
  • pokusil se vypsat data z flash disku PSoC;
  • ověřili, že komunikace mezi Cypress PSoC a JMS539 skutečně obsahuje stisknuté klávesy;
  • Ujistil jsem se, že při změně hesla se v SPI flash disku nic nepřepíše;
  • byl příliš líný na to, aby zvrátil firmware 8051 z JMS539.

3.1. Převzetí výpisu dat z SPI flash disku

Tento postup je velmi jednoduchý:

  • připojte sondy k nohám flash disku: CLK, MOSI, MISO a (volitelně) EN;
  • „čichání“ komunikace s čichačem pomocí logického analyzátoru (použil jsem Prodám Logic Pro 16);
  • dekódovat protokol SPI a exportovat výsledky do CSV;
  • využít decode_spi.rbanalyzovat výsledky a získat výpis.

Upozorňujeme, že tento přístup funguje obzvláště dobře v případě řadiče JMS539, protože tento řadič načítá veškerý firmware z flash disku ve fázi inicializace.

$ 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 odebrání výpisu z flash disku SPI jsem došel k závěru, že jeho jediným úkolem je uložit firmware pro řídicí zařízení JMicron, které je vestavěno do mikrokontroléru 8051. Bohužel se ukázalo, že výpis paměti SPI flash disku je k ničemu:

  • při změně PIN kódu zůstane výpis paměti flash stejný;
  • Po inicializační fázi zařízení nepřistupuje k SPI flash disku.

3.2. Sledování komunikace

Toto je jeden způsob, jak zjistit, který čip je zodpovědný za kontrolu komunikace po dobu/obsah, který nás zajímá. Jak již víme, USB-SATA řadič je připojen k Cypress PSoC LCD pomocí konektoru CN1 a dvou stuh. Proto připojujeme sondy ke třem odpovídajícím nohám:

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

Reverzování a hackování Aigo samošifrovacího externího HDD disku. Část 1: Rozdělení na části

Poté spustíme logický analyzátor Saleae a na klávesnici zadáme: „123456~“. V důsledku toho vidíme následující diagram.

Reverzování a hackování Aigo samošifrovacího externího HDD disku. Část 1: Rozdělení na části

Na něm můžeme vidět tři kanály výměny dat:

  • na kanálu P4 je několik krátkých shluků;
  • na P11 a P13 - téměř nepřetržitá výměna dat.

Přiblížením na první bodec na kanálu P4 (modrý obdélník na předchozím obrázku) vidíme následující:

Reverzování a hackování Aigo samošifrovacího externího HDD disku. Část 1: Rozdělení na části

Zde je vidět, že na P4 je téměř 70ms monotónního signálu, který se mi zprvu zdál hrát roli hodinového signálu. Nicméně poté, co jsem strávil nějaký čas kontrolou svého odhadu, jsem zjistil, že se nejedná o hodinový signál, ale o zvukový proud, který je při stisku kláves vyveden na výškový reproduktor. Proto tato část signálu sama o sobě neobsahuje pro nás užitečné informace. Lze jej však použít jako indikátor pro zjištění, kdy PSoC zaregistruje stisknutí klávesy.

Nejnovější audio stream P4 je však trochu jiný: je to zvuk pro „neplatný PIN“!

Vrátíme-li se ke grafu úhozů a přiblížíme graf posledního audio streamu (viz opět modrý obdélník), dostaneme:

Reverzování a hackování Aigo samošifrovacího externího HDD disku. Část 1: Rozdělení na části

Zde vidíme monotónní signály na P11. Takže to vypadá, že jde o hodinový signál. A P13 jsou data. Všimněte si, jak se vzor změní po skončení pípnutí. Bylo by zajímavé vidět, co se zde stane.

Protokoly, které pracují se dvěma vodiči, jsou obvykle SPI nebo I2C a technická specifikace na Cypressu uvádí, že tyto piny odpovídají I2C, což je v našem případě pravda:

Reverzování a hackování Aigo samošifrovacího externího HDD disku. Část 1: Rozdělení na části

Čipová sada USB-SATA neustále dotazuje PSoC, aby přečetl stav klíče, který je ve výchozím nastavení „0“. Poté, když stisknete klávesu "1", změní se na "1". Konečný přenos ihned po stisknutí „~“ se liší, pokud je zadán nesprávný PIN kód. V tuto chvíli však nemám ověřeno, co se tam vlastně vysílá. Ale mám podezření, že to pravděpodobně nebude šifrovací klíč. Každopádně si přečtěte další část, abyste pochopili, jak jsem odstranil interní firmware PSoC.

Zdroj: www.habr.com

Přidat komentář