Pag-reverse at pag-hack ng Aigo self-encrypting external HDD drive. Bahagi 1: Paghiwa-hiwalayin sa mga bahagi

Ang pag-reverse at pag-hack ng mga external na self-encrypting drive ay ang dati kong libangan. Noong nakaraan, nagkaroon ako ng pagkakataong magsanay kasama ang mga modelo tulad ng Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500. Kamakailan lamang, dinalhan ako ng isang kasamahan ng isa pang eksibit: Patriot (Aigo) SK8671, na binuo ayon sa karaniwang disenyo - isang LCD indicator at isang keyboard para sa pagpasok ng PIN code. Yan ang lumabas...

1. Panimula
2. arkitektura ng hardware
– 2.1. Pangunahing board
– 2.2. LCD indicator board
– 2.3. Keyboard board
– 2.4. Tinitingnan ang mga wire
3. Pagkakasunod-sunod ng mga hakbang sa pag-atake
– 3.1. Pagkuha ng data dump mula sa isang SPI flash drive
– 3.2. Pagsinghot ng mga komunikasyon

Pag-reverse at pag-hack ng Aigo self-encrypting external HDD drive. Bahagi 1: Paghiwa-hiwalayin sa mga bahagi


1. Panimula

Pag-reverse at pag-hack ng Aigo self-encrypting external HDD drive. Bahagi 1: Paghiwa-hiwalayin sa mga bahagi
Pabahay

Pag-reverse at pag-hack ng Aigo self-encrypting external HDD drive. Bahagi 1: Paghiwa-hiwalayin sa mga bahagi
Basta

Ang pag-access sa data na nakaimbak sa disk, na diumano'y naka-encrypt, ay isinasagawa pagkatapos ipasok ang PIN code. Ilang panimulang tala sa device na ito:

  • Upang baguhin ang PIN code, kailangan mong pindutin ang F1 bago i-unlock;
  • Ang PIN code ay dapat maglaman ng mula 6 hanggang 9 na numero;
  • Pagkatapos ng 15 maling pagtatangka, ang disk ay na-clear.

2. arkitektura ng hardware

Una, hinahati namin ang device sa mga bahagi upang maunawaan kung anong mga bahagi ang binubuo nito. Ang pinaka nakakapagod na gawain ay ang pagbubukas ng kaso: maraming microscopic screws at plastic. Sa pagbukas ng kaso, nakita namin ang sumusunod (bigyang-pansin ang limang-pin na konektor na aking ibinebenta):

Pag-reverse at pag-hack ng Aigo self-encrypting external HDD drive. Bahagi 1: Paghiwa-hiwalayin sa mga bahagi

2.1. Pangunahing board

Ang pangunahing board ay medyo simple:

Pag-reverse at pag-hack ng Aigo self-encrypting external HDD drive. Bahagi 1: Paghiwa-hiwalayin sa mga bahagi

Ang pinakakilalang mga bahagi nito (tingnan mula sa itaas hanggang sa ibaba):

  • connector para sa LCD indicator (CN1);
  • tweeter (SP1);
  • Pm25LD010 (espesipikasyon) SPI flash drive (U2);
  • Jmicron JMS539 controller (espesipikasyon) para sa USB-SATA (U1);
  • USB 3 connector (J1).

Ang SPI flash drive ay nag-iimbak ng firmware para sa JMS539 at ilang mga setting.

2.2. LCD indicator board

Walang kapansin-pansin sa LCD board.

Pag-reverse at pag-hack ng Aigo self-encrypting external HDD drive. Bahagi 1: Paghiwa-hiwalayin sa mga bahagi
Pag-reverse at pag-hack ng Aigo self-encrypting external HDD drive. Bahagi 1: Paghiwa-hiwalayin sa mga bahagi

Tanging:

  • LCD indicator ng hindi kilalang pinanggalingan (marahil ay may Chinese font set); may sequential control;
  • Ribbon connector para sa keyboard board.

2.3. Keyboard board

Kapag sinusuri ang keyboard board, nagiging mas kawili-wiling ang mga bagay.

Pag-reverse at pag-hack ng Aigo self-encrypting external HDD drive. Bahagi 1: Paghiwa-hiwalayin sa mga bahagi

Dito, sa likod na bahagi, nakikita namin ang isang ribbon connector, pati na rin ang isang Cypress CY8C21434 microcontroller PSoC 1 (simula dito ay tatawagin lang natin itong PSoC)

Pag-reverse at pag-hack ng Aigo self-encrypting external HDD drive. Bahagi 1: Paghiwa-hiwalayin sa mga bahagi

Ginagamit ng CY8C21434 ang set ng pagtuturo ng M8C (tingnan dokumentasyon). Sa [pahina ng produkto]( (http://www.cypress.com/part/cy8c21434-24ltxi) ito ay ipinahiwatig na ito ay sumusuporta sa teknolohiya CapSense (solusyon mula sa Cypress, para sa mga capacitive na keyboard). Dito makikita mo ang limang-pin na connector na ibinebenta ko - ito ay isang karaniwang diskarte para sa pagkonekta ng isang panlabas na programmer sa pamamagitan ng interface ng ISSP.

2.4. Tinitingnan ang mga wire

Alamin natin kung ano ang konektado dito. Upang gawin ito, subukan lamang ang mga wire gamit ang isang multimeter:

Pag-reverse at pag-hack ng Aigo self-encrypting external HDD drive. Bahagi 1: Paghiwa-hiwalayin sa mga bahagi

Mga paliwanag para sa diagram na ito na iginuhit sa tuhod:

  • Ang PSoC ay inilarawan sa teknikal na detalye;
  • ang susunod na konektor, ang isa sa kanan, ay ang interface ng ISSP, na, sa pamamagitan ng kalooban ng kapalaran, ay tumutugma sa kung ano ang nakasulat tungkol dito sa Internet;
  • Ang pinakakanang connector ay ang terminal para sa ribbon connector sa keyboard board;
  • Ang itim na parihaba ay isang guhit ng CN1 connector, na idinisenyo upang ikonekta ang pangunahing board sa LCD board. Ang P11, P13 at P4 ay konektado sa PSoC pin 11, 13 at 4, sa LCD board.

3. Pagkakasunod-sunod ng mga hakbang sa pag-atake

Ngayong alam na natin kung anong mga bahagi ang drive na ito, kailangan nating: 1) tiyakin na ang pangunahing pag-andar ng pag-encrypt ay aktwal na naroroon; 2) alamin kung paano nabuo/nai-save ang mga susi sa pag-encrypt; 3) hanapin kung saan eksaktong susuriin ang PIN code.

Upang gawin ito, ginawa ko ang mga sumusunod na hakbang:

  • kumuha ng data dump mula sa isang SPI flash drive;
  • sinubukang i-dump ang data mula sa isang PSoC flash drive;
  • na-verify na ang komunikasyon sa pagitan ng Cypress PSoC at ng JMS539 ay talagang naglalaman ng mga pinindot na key;
  • Tiniyak ko na kapag binabago ang password, walang na-overwrite sa SPI flash drive;
  • ay masyadong tamad na i-reverse ang 8051 firmware mula sa JMS539.

3.1. Pagkuha ng data dump mula sa isang SPI flash drive

Ang pamamaraang ito ay napaka-simple:

  • ikonekta ang mga probe sa mga binti ng flash drive: CLK, MOSI, MISO at (opsyonal) EN;
  • "sniff" na mga komunikasyon sa isang sniffer gamit ang logic analyzer (ginamit ko Saleae Logic Pro 16);
  • mag-decode ng SPI protocol at mag-export ng mga resulta sa CSV;
  • samantalahin decode_spi.rbpara i-parse ang mga resulta at makakuha ng dump.

Pakitandaan na ang diskarte na ito ay gumagana lalo na sa kaso ng JMS539 controller, dahil ang controller na ito ay naglo-load ng lahat ng firmware mula sa flash drive sa yugto ng pagsisimula.

$ 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

Ang pagkakaroon ng isang dump mula sa SPI flash drive, dumating ako sa konklusyon na ang tanging gawain nito ay ang pag-imbak ng firmware para sa JMicron control device, na binuo sa 8051 microcontroller. Sa kasamaang palad, ang pagtatapon ng SPI flash drive ay naging walang silbi:

  • kapag ang PIN code ay binago, ang flash drive dump ay nananatiling pareho;
  • Pagkatapos ng yugto ng pagsisimula, hindi naa-access ng device ang SPI flash drive.

3.2. Pagsinghot ng mga komunikasyon

Ito ay isang paraan upang mahanap kung aling chip ang responsable para sa pagsuri sa mga komunikasyon para sa oras/nilalaman ng interes. Tulad ng alam na natin, ang USB-SATA controller ay konektado sa Cypress PSoC LCD sa pamamagitan ng connector CN1 at dalawang ribbons. Samakatuwid, ikinonekta namin ang mga probes sa tatlong kaukulang mga binti:

  • P4, pangkalahatang input/output;
  • P11, I2C SCL;
  • P13, I2C SDA.

Pag-reverse at pag-hack ng Aigo self-encrypting external HDD drive. Bahagi 1: Paghiwa-hiwalayin sa mga bahagi

Pagkatapos ay ilulunsad namin ang Saleae logic analyzer at ipasok sa keyboard: "123456~". Bilang resulta, nakikita natin ang sumusunod na diagram.

Pag-reverse at pag-hack ng Aigo self-encrypting external HDD drive. Bahagi 1: Paghiwa-hiwalayin sa mga bahagi

Dito makikita natin ang tatlong channel ng palitan ng data:

  • mayroong ilang maikling pagsabog sa channel P4;
  • sa P11 at P13 - halos tuloy-tuloy na pagpapalitan ng data.

Ang pag-zoom in sa unang spike sa channel P4 (asul na parihaba sa nakaraang figure), makikita natin ang sumusunod:

Pag-reverse at pag-hack ng Aigo self-encrypting external HDD drive. Bahagi 1: Paghiwa-hiwalayin sa mga bahagi

Dito makikita mo na sa P4 mayroong halos 70ms ng isang monotonous na signal, na sa una ay tila sa akin ay gumaganap ng papel ng isang signal ng orasan. Gayunpaman, pagkatapos gumugol ng ilang oras na suriin ang aking hula, natuklasan ko na ito ay hindi isang signal ng orasan, ngunit isang audio stream na output sa tweeter kapag pinindot ang mga key. Samakatuwid, ang seksyong ito ng signal mismo ay hindi naglalaman ng kapaki-pakinabang na impormasyon para sa amin. Gayunpaman, maaari itong gamitin bilang tagapagpahiwatig upang malaman kung kailan nagrerehistro ang PSoC ng key press.

Gayunpaman, medyo naiiba ang pinakabagong P4 audio stream: ito ang audio para sa "invalid PIN"!

Pagbabalik sa keystroke graph, pag-zoom in sa huling audio stream graph (tingnan muli ang asul na parihaba), makukuha natin ang:

Pag-reverse at pag-hack ng Aigo self-encrypting external HDD drive. Bahagi 1: Paghiwa-hiwalayin sa mga bahagi

Dito makikita natin ang mga monotonous na signal sa P11. Kaya parang ito ang signal ng orasan. At P13 ang data. Pansinin kung paano nagbabago ang pattern pagkatapos ng beep. Ito ay magiging kagiliw-giliw na makita kung ano ang nangyayari dito.

Ang mga protocol na gumagana sa dalawang wire ay karaniwang SPI o I2C, at ang teknikal na detalye sa Cypress ay nagsasaad na ang mga pin na ito ay tumutugma sa I2C, na nakikita naming totoo sa aming kaso:

Pag-reverse at pag-hack ng Aigo self-encrypting external HDD drive. Bahagi 1: Paghiwa-hiwalayin sa mga bahagi

Ang USB-SATA chipset ay patuloy na nag-poll sa PSoC upang basahin ang estado ng key, na bilang default ay "0". Pagkatapos, kapag pinindot mo ang "1" na key, ito ay magiging "1". Ang huling pagpapadala kaagad pagkatapos pindutin ang "~" ay iba kung maling PIN code ang ipinasok. Gayunpaman, sa ngayon ay hindi ko pa nasusuri kung ano ang aktwal na ipinadala doon. Ngunit pinaghihinalaan ko na ito ay malamang na hindi isang encryption key. Anyway, tingnan ang susunod na seksyon para maunawaan kung paano ko inalis ang internal firmware ng PSoC.

Pinagmulan: www.habr.com

Magdagdag ng komento