Reverzovanie a hackovanie Aigo samošifrovacieho externého HDD. Časť 1: Rozoberanie častí

Reverzovanie a hackovanie externých samošifrovacích diskov je moje staré hobby. V minulosti som mal možnosť cvičiť s takými modelmi ako Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500. Len nedávno mi kolega priniesol ďalší exponát: Patriot (Aigo) SK8671, ktorý je postavený podľa typického dizajnu - LCD indikátor a klávesnica na zadávanie PIN kódu. To je to, čo z toho vyšlo…

1. úvod
2. Hardvérová architektúra
– 2.1. Hlavna tabula
– 2.2. LCD indikačná doska
– 2.3. Doska s klávesnicou
– 2.4. Pri pohľade na drôty
3. Postupnosť krokov útoku
– 3.1. Prevzatie výpisu dát z SPI flash disku
– 3.2. Čuchanie komunikácie

Reverzovanie a hackovanie Aigo samošifrovacieho externého HDD. Časť 1: Rozoberanie častí


1. úvod

Reverzovanie a hackovanie Aigo samošifrovacieho externého HDD. Časť 1: Rozoberanie častí
bývanie

Reverzovanie a hackovanie Aigo samošifrovacieho externého HDD. Časť 1: Rozoberanie častí
Obal

Prístup k údajom uloženým na disku, ktorý je údajne šifrovaný, sa uskutoční po zadaní PIN kódu. Niekoľko poznámok na úvod k tomuto zariadeniu:

  • Ak chcete zmeniť PIN kód, musíte pred odomknutím stlačiť F1;
  • PIN kód musí obsahovať 6 až 9 číslic;
  • Po 15 nesprávnych pokusoch sa disk vymaže.

2. Hardvérová architektúra

Najprv zariadenie rozoberieme na časti, aby sme pochopili, z akých komponentov sa skladá. Najnamáhavejšou úlohou je otváranie puzdra: veľa mikroskopických skrutiek a plastu. Po otvorení puzdra vidíme nasledovné (venujte pozornosť päťkolíkovému konektoru, ktorý som spájkoval):

Reverzovanie a hackovanie Aigo samošifrovacieho externého HDD. Časť 1: Rozoberanie častí

2.1. Hlavna tabula

Hlavná doska je pomerne jednoduchá:

Reverzovanie a hackovanie Aigo samošifrovacieho externého HDD. Časť 1: Rozoberanie častí

Jeho najvýznamnejšie časti (pozri zhora nadol):

  • konektor pre LCD indikátor (CN1);
  • výškový reproduktor (SP1);
  • Pm25LD010 (špecifikácia) SPI flash disk (U2);
  • Ovládač Jmicron JMS539 (špecifikácia) pre USB-SATA (U1);
  • USB 3 konektor (J1).

SPI flash disk ukladá firmvér pre JMS539 a niektoré nastavenia.

2.2. LCD indikačná doska

Na doske LCD nie je nič pozoruhodné.

Reverzovanie a hackovanie Aigo samošifrovacieho externého HDD. Časť 1: Rozoberanie častí
Reverzovanie a hackovanie Aigo samošifrovacieho externého HDD. Časť 1: Rozoberanie častí

iba:

  • LCD indikátor neznámeho pôvodu (pravdepodobne s čínskym písmom); so sekvenčným ovládaním;
  • Pásový konektor pre dosku klávesnice.

2.3. Doska s klávesnicou

Pri skúmaní dosky klávesnice veci naberú zaujímavejší spád.

Reverzovanie a hackovanie Aigo samošifrovacieho externého HDD. Časť 1: Rozoberanie častí

Tu na zadnej strane vidíme páskový konektor, ako aj mikrokontrolér Cypress CY8C21434 PSoC 1 (ďalej ho budeme jednoducho nazývať PSoC)

Reverzovanie a hackovanie Aigo samošifrovacieho externého HDD. Časť 1: Rozoberanie častí

CY8C21434 používa inštrukčnú sadu M8C (pozri dokumentácia). Na [stránke produktu]( (http://www.cypress.com/part/cy8c21434-24ltxi) je uvedené, že podporuje technológiu CapSense (riešenie od Cypress, pre kapacitné klávesnice). Tu môžete vidieť päťpinový konektor, ktorý som spájkoval - ide o štandardný prístup pre pripojenie externého programátora cez rozhranie ISSP.

2.4. Pri pohľade na drôty

Poďme zistiť, čo je tu spojené. Ak to chcete urobiť, stačí otestovať vodiče pomocou multimetra:

Reverzovanie a hackovanie Aigo samošifrovacieho externého HDD. Časť 1: Rozoberanie častí

Vysvetlivky pre tento diagram nakreslený na kolene:

  • PSoC je opísaný v technickej špecifikácii;
  • ďalší konektor, ten vpravo, je rozhranie ISSP, ktoré podľa vôle osudu zodpovedá tomu, čo sa o ňom píše na internete;
  • Konektor úplne vpravo je svorka pre plochý konektor na doske klávesnice;
  • Čierny obdĺžnik je nákres konektora CN1, určený na pripojenie hlavnej dosky k doske LCD. P11, P13 a P4 sú pripojené ku kolíkom PSoC 11, 13 a 4 na doske LCD.

3. Postupnosť krokov útoku

Teraz, keď vieme, z akých komponentov pozostáva tento disk, musíme: 1) uistiť sa, že je skutočne prítomná základná funkcia šifrovania; 2) zistiť, ako sa generujú/ukladajú šifrovacie kľúče; 3) nájdite, kde presne sa bude kontrolovať PIN kód.

Aby som to urobil, urobil som nasledujúce kroky:

  • vzal výpis dát z SPI flash disku;
  • pokúsil sa vypísať údaje z flash disku PSoC;
  • overili, že komunikácia medzi Cypress PSoC a JMS539 skutočne obsahuje stlačenia klávesov;
  • Uistil som sa, že pri zmene hesla sa na flash disku SPI nič neprepíše;
  • bol príliš lenivý na to, aby zvrátil firmvér 8051 z JMS539.

3.1. Prevzatie výpisu dát z SPI flash disku

Tento postup je veľmi jednoduchý:

  • pripojte sondy k nohám flash disku: CLK, MOSI, MISO a (voliteľné) EN;
  • „čuchať“ komunikáciu so snifferom pomocou logického analyzátora (použil som Predám Logic Pro 16);
  • dekódovať protokol SPI a exportovať výsledky do CSV;
  • využiť decode_spi.rbanalyzovať výsledky a získať výpis.

Upozorňujeme, že tento prístup funguje obzvlášť dobre v prípade ovládača JMS539, pretože tento ovládač načíta všetok firmvér z jednotky flash vo fáze inicializácie.

$ 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 odstránení výpisu z flash disku SPI som dospel k záveru, že jeho jedinou úlohou je uložiť firmvér pre riadiace zariadenie JMicron, ktoré je zabudované do mikrokontroléra 8051. Bohužiaľ sa ukázalo, že výpis z flash disku SPI je zbytočný:

  • pri zmene PIN kódu zostane výpis z flash disku rovnaký;
  • Po inicializačnej fáze zariadenie nepristupuje k SPI flash disku.

3.2. Čuchanie komunikácie

Toto je jeden zo spôsobov, ako zistiť, ktorý čip je zodpovedný za kontrolu komunikácie pre čas/obsah záujmu. Ako už vieme, USB-SATA radič je pripojený k Cypress PSoC LCD cez konektor CN1 a dva pásky. Preto pripájame sondy k trom zodpovedajúcim nohám:

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

Reverzovanie a hackovanie Aigo samošifrovacieho externého HDD. Časť 1: Rozoberanie častí

Potom spustíme logický analyzátor Saleae a na klávesnici zadáme: „123456~“. V dôsledku toho vidíme nasledujúci diagram.

Reverzovanie a hackovanie Aigo samošifrovacieho externého HDD. Časť 1: Rozoberanie častí

Na ňom môžeme vidieť tri kanály výmeny údajov:

  • na kanáli P4 je niekoľko krátkych zhlukov;
  • na P11 a P13 - takmer nepretržitá výmena dát.

Pri priblížení prvého hrotu na kanáli P4 (modrý obdĺžnik na predchádzajúcom obrázku) vidíme nasledovné:

Reverzovanie a hackovanie Aigo samošifrovacieho externého HDD. Časť 1: Rozoberanie častí

Tu vidno, že na P4 je takmer 70ms monotónny signál, ktorý sa mi spočiatku zdal hrať úlohu hodinového signálu. Po chvíli kontroly môjho odhadu som však zistil, že nejde o hodinový signál, ale o zvukový tok, ktorý sa po stlačení kláves dostane do výškového reproduktora. Preto táto časť samotného signálu neobsahuje pre nás užitočné informácie. Môže sa však použiť ako indikátor na zistenie, kedy PSoC zaregistruje stlačenie klávesu.

Najnovší audio stream P4 je však trochu iný: je to zvuk pre „neplatný PIN“!

Ak sa vrátime ku grafu stlačenia klávesov, priblížime si posledný graf zvukového toku (pozri opäť modrý obdĺžnik), dostaneme:

Reverzovanie a hackovanie Aigo samošifrovacieho externého HDD. Časť 1: Rozoberanie častí

Tu vidíme monotónne signály na P11. Vyzerá to teda, že toto je hodinový signál. A P13 sú dáta. Všimnite si, ako sa vzor zmení po skončení pípnutia. Bolo by zaujímavé vidieť, čo sa tu stane.

Protokoly, ktoré pracujú s dvoma vodičmi, sú zvyčajne SPI alebo I2C a technická špecifikácia na Cypress uvádza, že tieto kolíky zodpovedajú I2C, čo je v našom prípade pravda:

Reverzovanie a hackovanie Aigo samošifrovacieho externého HDD. Časť 1: Rozoberanie častí

Čipová súprava USB-SATA neustále žiada PSoC, aby prečítal stav kľúča, ktorý je predvolene „0“. Potom, keď stlačíte tlačidlo "1", zmení sa na "1". Konečný prenos ihneď po stlačení „~“ je iný, ak zadáte nesprávny PIN kód. Momentálne však nemám skontrolované, čo sa tam vlastne prenáša. Mám však podozrenie, že je nepravdepodobné, že by to bol šifrovací kľúč. Každopádne, pozrite si nasledujúcu časť, aby ste pochopili, ako som odstránil interný firmvér PSoC.

Zdroj: hab.com

Pridať komentár