Inversione è pirate di l'unità HDD esterna autocifrata di Aigo. Parte 1: Dissezzione in parti

Inversione è pirate di unità di autocifrazione esterne hè u mo vechju hobby. In u passatu, aghju avutu l'uppurtunità di praticà cù mudelli cum'è Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500. Recentemente, un cumpagnu m'hà purtatu una altra mostra: Patriot (Aigo) SK8671, chì hè custruitu secondu un disignu tipicu - un indicatore LCD è un teclatu per inserisce un codice PIN. Hè ciò chì hè surtitu da questu...

1. Introduzione
2. Architettura di hardware
– 2.1. Cunsigliu principale
– 2.2. Scheda indicatore LCD
– 2.3. Tastiera di tastiera
– 2.4. Fighjendu i fili
3. Sequenza di passi d'attaccu
– 3.1. Pigliate un dump di dati da una unità flash SPI
– 3.2. Sniffing cumunicazioni

Inversione è pirate di l'unità HDD esterna autocifrata di Aigo. Parte 1: Dissezzione in parti


1. Introduzione

Inversione è pirate di l'unità HDD esterna autocifrata di Aigo. Parte 1: Dissezzione in parti
Housing

Inversione è pirate di l'unità HDD esterna autocifrata di Aigo. Parte 1: Dissezzione in parti
Packing

L'accessu à i dati guardati nantu à u discu, chì hè suppostamente criptatu, hè realizatu dopu à inserisce u codice PIN. Uni pochi note introduttive nantu à stu dispusitivu:

  • Per cambià u codice PIN, deve appughjà F1 prima di unlocking;
  • U codice PIN deve cuntene da 6 à 9 cifre;
  • Dopu à 15 tentativi sbagliati, u discu hè sguassatu.

2. Architettura di hardware

Prima, dissecemu u dispusitivu in parti per capiscenu di quali cumpunenti hè custituitu. U compitu più tedious hè di apre u casu: assai viti microscòpichi è plastica. Dopu avè apertu u casu, vedemu i seguenti (prestate attenzione à u connettore di cinque pin chì aghju soldatu):

Inversione è pirate di l'unità HDD esterna autocifrata di Aigo. Parte 1: Dissezzione in parti

2.1. Cunsigliu principale

A scheda principale hè abbastanza sèmplice:

Inversione è pirate di l'unità HDD esterna autocifrata di Aigo. Parte 1: Dissezzione in parti

E so parti più notevuli (vede da cima à fondu):

  • connettore per l'indicatore LCD (CN1);
  • tweeter (SP1);
  • Pm25LD010 (specificazione) Unità flash SPI (U2);
  • Controller Jmicron JMS539 (specificazione) per USB-SATA (U1);
  • Connettore USB 3 (J1).

L'unità flash SPI guarda u firmware per JMS539 è certi paràmetri.

2.2. Scheda indicatore LCD

Ùn ci hè nunda di notevule nantu à u LCD.

Inversione è pirate di l'unità HDD esterna autocifrata di Aigo. Parte 1: Dissezzione in parti
Inversione è pirate di l'unità HDD esterna autocifrata di Aigo. Parte 1: Dissezzione in parti

Solu:

  • Indicatore LCD d'origine scunnisciuta (probabilmente cù un set di fonti cinese); cun cuntrollu sequenziale;
  • Connettore di nastri per a tastiera.

2.3. Tastiera di tastiera

Quandu esaminendu u tavulinu, e cose piglianu una volta più interessante.

Inversione è pirate di l'unità HDD esterna autocifrata di Aigo. Parte 1: Dissezzione in parti

Quì, nantu à a parte posteriore, vedemu un connettore di nastri, è ancu un microcontroller Cypress CY8C21434 PSoC 1 (da quì in seguitu chjameremu solu PSoC)

Inversione è pirate di l'unità HDD esterna autocifrata di Aigo. Parte 1: Dissezzione in parti

CY8C21434 usa u set di struzzioni M8C (vede documentazione). In [pagina di u produttu]( (http://www.cypress.com/part/cy8c21434-24ltxi) hè indicatu chì sustene a tecnulugia CapSense (soluzione da Cypress, per tastiere capacitive). Quì pudete vede u connettore di cinque pin chì aghju soldatu - questu hè un approcciu standard per cunnette un programatore esternu via l'interfaccia ISSP.

2.4. Fighjendu i fili

Scuprite ciò chì hè cunnessu quì. Per fà questu, basta à pruvà i fili cù un multimetru:

Inversione è pirate di l'unità HDD esterna autocifrata di Aigo. Parte 1: Dissezzione in parti

Spiegazioni per stu diagramma tracciatu nantu à u ghjinochju:

  • U PSoC hè descrittu in a specificazione tecnica;
  • u prossimu connector, quellu à a diritta, hè l'interfaccia ISSP, chì, da a vulintà di u destinu, currisponde à ciò chì hè scrittu annantu à Internet;
  • U cunnessu rightmost hè u terminal per u connector ribbon à u tavulinu;
  • U rectangulu neru hè un disegnu di u connettore CN1, cuncepitu per cunnette a scheda principale à u LCD. P11, P13 è P4 sò cunnessi à i pins PSoC 11, 13 è 4, nantu à u LCD.

3. Sequenza di passi d'attaccu

Avà chì sapemu di quali cumpunenti si compone di sta unità, avemu bisognu di: 1) assicurà chì a funziunalità di criptografia di basa hè veramente presente; 2) scopre cumu e chjave di criptografia sò generate / salvate; 3) truvà induve esattamente u codice PIN sarà verificatu.

Per fà questu, aghju fattu i seguenti passi:

  • hà pigliatu un dump di dati da una unità flash SPI;
  • pruvatu à dump data da una unità flash PSoC;
  • verificatu chì a cumunicazione trà Cypress PSoC è JMS539 cuntene in realtà keystrokes;
  • Aghju assicuratu chì quandu cambiassi a password, nunda ùn hè soprascritta in u SPI flash drive;
  • era troppu pigro per annunzià u firmware 8051 da JMS539.

3.1. Pigliate un dump di dati da una unità flash SPI

Sta prucedura hè assai sèmplice:

  • cunnette sonde à e gambe di u flash drive: CLK, MOSI, MISO è (opcional) EN;
  • "sniff" cumunicazioni cù un sniffer utilizendu un analizzatore logicu (aghju utilizatu Saleae Logic Pro 16);
  • decodifica u protocolu SPI è esporta i risultati in CSV;
  • prufiteghjanu decode_spi.rbper analizà i risultati è uttene un dump.

Per piacè nutate chì questu approcciu funziona soprattuttu bè in u casu di u controller JMS539, postu chì questu controller carica tuttu u firmware da u flash drive in u stadiu di inizializazione.

$ 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

Dopu avè pigliatu un dump da u SPI flash drive, aghju ghjuntu à a cunclusione chì u so solu compitu hè di almacenà u firmware per u dispusitivu di cuntrollu JMicron, chì hè custruitu in u microcontroller 8051. Sfortunatamente, piglià un dump di l'unità flash SPI hè stata inutile:

  • quandu u codice PIN hè cambiatu, u dump drive flash resta u listessu;
  • Dopu à u stadiu di inizializazione, u dispusitivu ùn accede à u SPI flash drive.

3.2. Sniffing cumunicazioni

Questu hè un modu per truvà quale chip hè rispunsevule per verificà e cumunicazioni per u tempu / cuntenutu di interessu. Comu sapemu digià, u controller USB-SATA hè cunnessu à u Cypress PSoC LCD via u connector CN1 è dui ribbons. Dunque, cunnettamu e sonde à e trè gambe currispondenti:

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

Inversione è pirate di l'unità HDD esterna autocifrata di Aigo. Parte 1: Dissezzione in parti

Allora lanciamu l'analizzatore di logica Saleae è entre in u teclatu: "123456~". In u risultatu, vedemu u schema seguente.

Inversione è pirate di l'unità HDD esterna autocifrata di Aigo. Parte 1: Dissezzione in parti

In questu pudemu vede trè canali di scambiu di dati:

  • ci sò parechji brevi brevi nantu à u canali P4;
  • nantu à P11 è P13 - scambiu di dati quasi cuntinuu.

Zooming in u primu spike in u canali P4 (rettangulu blu in a figura precedente), vedemu i seguenti:

Inversione è pirate di l'unità HDD esterna autocifrata di Aigo. Parte 1: Dissezzione in parti

Quì pudete vede chì nantu à P4 ci hè quasi 70ms di un signalu monotonu, chì prima mi pareva di ghjucà u rolu di un signalu di clock. In ogni casu, dopu avè passatu un pocu di tempu à cuntrollà a mo supposizione, aghju scupertu chì questu ùn hè micca un signalu di clock, ma un flussu audio chì hè uscita à u tweeter quandu i chjavi sò pressati. Dunque, sta sezione di u signale stessu ùn cuntene micca infurmazioni utili per noi. Tuttavia, pò esse usatu cum'è un indicatore per sapè quandu u PSoC registra una pressa chjave.

Tuttavia, l'ultimu flussu audio P4 hè un pocu sfarente: hè l'audio per u "PIN invalidu"!

Riturnendu à u graficu di tastu, ingrandendu l'ultimu graficu di flussu audio (vede u rettangulu blu di novu), avemu:

Inversione è pirate di l'unità HDD esterna autocifrata di Aigo. Parte 1: Dissezzione in parti

Quì vedemu signali monotoni nantu à P11. Dunque pare chì questu hè u signalu di u clock. È P13 hè dati. Avvisate cumu u mudellu cambia dopu à a fine di u bip. Saria interessante per vede ciò chì succede quì.

I protokolli chì travaglianu cù dui fili sò generalmente SPI o I2C, è a specificazione tecnica di Cypress dice chì questi pins currispondenu à I2C, chì vedemu hè veru in u nostru casu:

Inversione è pirate di l'unità HDD esterna autocifrata di Aigo. Parte 1: Dissezzione in parti

U chipset USB-SATA sonda constantemente u PSoC per leghje u statu di a chjave, chì per automaticamente hè "0". Allora, quandu pressu a chjave "1", cambia in "1". A trasmissioni finali subitu dopu à appughjà "~" hè diversu se u codice PIN sbagliatu hè inseritu. Tuttavia, per u mumentu ùn aghju micca verificatu ciò chì hè veramente trasmessu quì. Ma suspettu chì questu hè improbabile di esse una chjave di criptografia. In ogni casu, vede a sezione dopu per capiscenu cumu sguassate u firmware internu PSoC.

Source: www.habr.com

Add a comment