Omkeer en inbraak Aigo self-enkripteer eksterne HDD drive. Deel 1: Dissekteer in dele

Omkeer en hack eksterne self-enkripteer dryf is my ou stokperdjie. In die verlede het ek die geleentheid gehad om met modelle soos Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500 te oefen. Net onlangs het 'n kollega vir my nog 'n uitstalling gebring: Patriot (Aigo) SK8671, wat volgens 'n tipiese ontwerp gebou is - 'n LCD-aanwyser en 'n sleutelbord om 'n PIN-kode in te voer. Dit is wat daaruit gekom het...

1. inleiding
2. Hardeware-argitektuur
– 2.1. Hoofbord
– 2.2. LCD-aanwyserbord
– 2.3. Sleutelbordbord
– 2.4. Kyk na die drade
3. Volgorde van aanvalstappe
– 3.1. Neem 'n datastorting vanaf 'n SPI-flitsskyf
– 3.2. Snuif kommunikasie

Omkeer en inbraak Aigo self-enkripteer eksterne HDD drive. Deel 1: Dissekteer in dele


1. inleiding

Omkeer en inbraak Aigo self-enkripteer eksterne HDD drive. Deel 1: Dissekteer in dele
behuising

Omkeer en inbraak Aigo self-enkripteer eksterne HDD drive. Deel 1: Dissekteer in dele
Packing

Toegang tot die data wat op die skyf gestoor is, wat vermoedelik geïnkripteer is, word uitgevoer nadat die PIN-kode ingevoer is. 'n Paar inleidende notas oor hierdie toestel:

  • Om die PIN-kode te verander, moet jy F1 druk voordat jy ontsluit;
  • Die PIN-kode moet van 6 tot 9 syfers bevat;
  • Na 15 verkeerde pogings word die skyf skoongemaak.

2. Hardeware-argitektuur

Eerstens ontleed ons die toestel in dele om te verstaan ​​uit watter komponente dit bestaan. Die verveligste taak is om die kas oop te maak: baie mikroskopiese skroewe en plastiek. Nadat ons die omhulsel oopgemaak het, sien ons die volgende (let op die vyfpen-aansluiting wat ek gesoldeer het):

Omkeer en inbraak Aigo self-enkripteer eksterne HDD drive. Deel 1: Dissekteer in dele

2.1. Hoofbord

Die hoofbord is redelik eenvoudig:

Omkeer en inbraak Aigo self-enkripteer eksterne HDD drive. Deel 1: Dissekteer in dele

Sy mees noemenswaardige dele (sien van bo na onder):

  • aansluiting vir LCD-aanwyser (CN1);
  • tweeter (SP1);
  • Pm25LD010 (spesifikasie) SPI flash drive (U2);
  • Jmicron JMS539 kontroleerder (spesifikasie) vir USB-SATA (U1);
  • USB 3-aansluiting (J1).

Die SPI-flitsskyf stoor die firmware vir JMS539 en sommige instellings.

2.2. LCD-aanwyserbord

Daar is niks merkwaardig op die LCD-bord nie.

Omkeer en inbraak Aigo self-enkripteer eksterne HDD drive. Deel 1: Dissekteer in dele
Omkeer en inbraak Aigo self-enkripteer eksterne HDD drive. Deel 1: Dissekteer in dele

Enigste:

  • LCD-aanwyser van onbekende oorsprong (waarskynlik met 'n Chinese fontstel); met opeenvolgende beheer;
  • Lintverbinding vir sleutelbordbord.

2.3. Sleutelbordbord

Wanneer die sleutelbordbord ondersoek word, neem dinge 'n meer interessante wending.

Omkeer en inbraak Aigo self-enkripteer eksterne HDD drive. Deel 1: Dissekteer in dele

Hier, aan die agterkant, sien ons 'n lintverbinding, sowel as 'n Cypress CY8C21434 mikrobeheerder PSoC 1 (hierna sal ons dit bloot PSoC noem)

Omkeer en inbraak Aigo self-enkripteer eksterne HDD drive. Deel 1: Dissekteer in dele

CY8C21434 gebruik die M8C-instruksiestel (sien dokumentasie). Op [produkbladsy]((http://www.cypress.com/part/cy8c21434-24ltxi) word aangedui dat dit die tegnologie ondersteun CapSense (oplossing van Cypress, vir kapasitiewe sleutelborde). Hier kan jy die vyfpen-aansluiting sien wat ek gesoldeer het - dit is 'n standaardbenadering om 'n eksterne programmeerder via die ISSP-koppelvlak te koppel.

2.4. Kyk na die drade

Kom ons vind uit wat hier verband hou. Om dit te doen, toets net die drade met 'n multimeter:

Omkeer en inbraak Aigo self-enkripteer eksterne HDD drive. Deel 1: Dissekteer in dele

Verduidelikings vir hierdie diagram wat op die knie geteken is:

  • Die PSoC word in die tegniese spesifikasie beskryf;
  • die volgende aansluiting, die een aan die regterkant, is die ISSP-koppelvlak, wat, volgens die wil van die noodlot, ooreenstem met wat daaroor op die internet geskryf is;
  • Die aansluiting heel regs is die terminaal vir die lintverbinding met die sleutelbordbord;
  • Die swart reghoek is 'n tekening van die CN1-aansluiting, ontwerp om die hoofbord aan die LCD-bord te koppel. P11, P13 en P4 is gekoppel aan PSoC-penne 11, 13 en 4, op die LCD-bord.

3. Volgorde van aanvalstappe

Noudat ons weet uit watter komponente hierdie aandrywer bestaan, moet ons: 1) seker maak dat die basiese enkripsiefunksie werklik teenwoordig is; 2) vind uit hoe enkripsiesleutels gegenereer/gestoor word; 3) vind waar presies die PIN-kode nagegaan sal word.

Om dit te doen het ek die volgende stappe gedoen:

  • het 'n datastorting vanaf 'n SPI-flitsskyf geneem;
  • het probeer om data vanaf 'n PSoC-flitsskyf te stort;
  • geverifieer dat die kommunikasie tussen die Cypress PSoC en die JMS539 eintlik die sleutels bevat wat gedruk is;
  • Ek het seker gemaak dat wanneer die wagwoord verander word, niks in die SPI-flitsskyf oorgeskryf word nie;
  • was te lui om die 8051-firmware van JMS539 om te keer.

3.1. Neem 'n datastorting vanaf 'n SPI-flitsskyf

Hierdie prosedure is baie eenvoudig:

  • koppel probes aan die bene van die flash drive: CLK, MOSI, MISO en (opsioneel) EN;
  • "snuif" kommunikasie met 'n snuffel met behulp van 'n logiese ontleder (ek het Saleae Logic Pro 16);
  • dekodeer SPI protokol en voer resultate uit na CSV;
  • neem voordeel decode_spi.rbom die resultate te ontleed en 'n storting te kry.

Neem asseblief kennis dat hierdie benadering veral goed werk in die geval van die JMS539 kontroleerder, aangesien hierdie kontroleerder al die firmware vanaf die flash drive laai tydens die inisialisering stadium.

$ 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

Nadat ek 'n storting van die SPI-flitsskyf geneem het, het ek tot die gevolgtrekking gekom dat sy enigste taak is om die firmware vir die JMicron-beheertoestel te stoor, wat in die 8051-mikrobeheerder ingebou is. Ongelukkig was dit nutteloos om die SPI-flash drive te stort:

  • wanneer die PIN-kode verander word, bly die flash drive dump dieselfde;
  • Na die inisialiseringstadium het die toestel nie toegang tot die SPI-flitsskyf nie.

3.2. Snuif kommunikasie

Dit is een manier om uit te vind watter skyfie verantwoordelik is vir die kontrolering van kommunikasie vir die tyd/inhoud van belang. Soos ons reeds weet, is die USB-SATA-beheerder gekoppel aan die Cypress PSoC LCD via aansluiting CN1 en twee linte. Daarom verbind ons die probes aan die drie ooreenstemmende bene:

  • P4, algemene toevoer/afvoer;
  • P11, I2C SCL;
  • P13, I2C SDA.

Omkeer en inbraak Aigo self-enkripteer eksterne HDD drive. Deel 1: Dissekteer in dele

Dan begin ons die Saleae-logika-ontleder en voer op die sleutelbord in: "123456~". As gevolg hiervan, sien ons die volgende diagram.

Omkeer en inbraak Aigo self-enkripteer eksterne HDD drive. Deel 1: Dissekteer in dele

Daarop kan ons drie data-uitruilkanale sien:

  • daar is verskeie kort sarsies op kanaal P4;
  • op P11 en P13 - byna deurlopende data-uitruiling.

Deur in te zoem op die eerste piek op kanaal P4 (blou reghoek in die vorige figuur), sien ons die volgende:

Omkeer en inbraak Aigo self-enkripteer eksterne HDD drive. Deel 1: Dissekteer in dele

Hier kan jy sien dat daar op P4 amper 70ms van 'n eentonige sein is, wat vir my eers gelyk het of dit die rol van 'n kloksein speel. Nadat ek egter 'n rukkie spandeer het om my raaiskoot na te gaan, het ek ontdek dat dit nie 'n kloksein is nie, maar 'n klankstroom wat na die tweeter uitgestuur word wanneer die sleutels gedruk word. Daarom bevat hierdie gedeelte van die sein self nie nuttige inligting vir ons nie. Dit kan egter as 'n aanwyser gebruik word om te weet wanneer die PSoC 'n sleuteldruk registreer.

Die nuutste P4-klankstroom is egter 'n bietjie anders: dit is die klank vir die "ongeldige PIN"!

Om terug te keer na die toetsaanslaggrafiek, inzoom op die laaste oudiostroomgrafiek (sien weer die blou reghoek), kry ons:

Omkeer en inbraak Aigo self-enkripteer eksterne HDD drive. Deel 1: Dissekteer in dele

Hier sien ons eentonige seine op P11. Dit lyk dus of dit die kloksein is. En P13 is data. Let op hoe die patroon verander nadat die piep geëindig het. Dit sal interessant wees om te sien wat hier gebeur.

Protokolle wat met twee drade werk, is gewoonlik SPI of I2C, en die tegniese spesifikasie op Cypress verklaar dat hierdie penne ooreenstem met I2C, wat ons sien is waar in ons geval:

Omkeer en inbraak Aigo self-enkripteer eksterne HDD drive. Deel 1: Dissekteer in dele

Die USB-SATA-skyfiestel ondersoek voortdurend die PSoC om die toestand van die sleutel te lees, wat by verstek "0" is. Dan, wanneer jy die "1" sleutel druk, verander dit na "1". Die finale versending onmiddellik nadat "~" gedruk is, is anders as die verkeerde PIN-kode ingevoer word. Ek het egter nie op die oomblik nagegaan wat werklik daar oorgedra word nie. Maar ek vermoed dat dit onwaarskynlik is dat dit 'n enkripsiesleutel sal wees. In elk geval, sien die volgende afdeling om te verstaan ​​hoe ek die interne PSoC-firmware verwyder het.

Bron: will.com

Voeg 'n opmerking