Revertir i piratejar la unitat HDD externa autoxifrada d'Aigo. Part 1: dissecció en parts

Revertir i piratejar unitats externes d'autoxifrat és la meva antiga afició. En el passat, vaig tenir l'oportunitat de practicar amb models com Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500. Fa poc, un company em va portar una altra exposició: Patriot (Aigo) SK8671, que es construeix segons un disseny típic: un indicador LCD i un teclat per introduir un codi PIN. Això és el que en va sortir...

1. Introducció
2. Arquitectura de maquinari
– 2.1. Tauler principal
– 2.2. Placa indicadora LCD
– 2.3. Tauler de teclat
– 2.4. Mirant els cables
3. Seqüència de passos d'atac
– 3.1. Fer un bolcat de dades d'una unitat flaix SPI
– 3.2. Ensumant comunicacions

Revertir i piratejar la unitat HDD externa autoxifrada d'Aigo. Part 1: dissecció en parts


1. Introducció

Revertir i piratejar la unitat HDD externa autoxifrada d'Aigo. Part 1: dissecció en parts
Habitatge

Revertir i piratejar la unitat HDD externa autoxifrada d'Aigo. Part 1: dissecció en parts
Упаковка

L'accés a les dades emmagatzemades al disc, que suposadament està encriptat, es realitza després d'introduir el codi PIN. Algunes notes introductòries sobre aquest dispositiu:

  • Per canviar el codi PIN, heu de prémer F1 abans de desbloquejar;
  • El codi PIN ha de contenir de 6 a 9 dígits;
  • Després de 15 intents incorrectes, el disc s'esborra.

2. Arquitectura de maquinari

Primer, disseccionem el dispositiu en parts per entendre de quins components consta. La tasca més tediosa és obrir la caixa: molts cargols microscòpics i plàstic. Un cop obert la caixa, veiem el següent (presteu atenció al connector de cinc pins que vaig soldar):

Revertir i piratejar la unitat HDD externa autoxifrada d'Aigo. Part 1: dissecció en parts

2.1. Tauler principal

La placa principal és bastant senzilla:

Revertir i piratejar la unitat HDD externa autoxifrada d'Aigo. Part 1: dissecció en parts

Les seves parts més destacades (veure de dalt a baix):

  • connector per a indicador LCD (CN1);
  • tweeter (SP1);
  • Pm25LD010 (especificació) Unitat flaix SPI (U2);
  • Controlador Jmicron JMS539 (especificació) per a USB-SATA (U1);
  • Connector USB 3 (J1).

La unitat flaix SPI emmagatzema el microprogramari per a JMS539 i alguns paràmetres.

2.2. Placa indicadora LCD

No hi ha res remarcable a la placa LCD.

Revertir i piratejar la unitat HDD externa autoxifrada d'Aigo. Part 1: dissecció en parts
Revertir i piratejar la unitat HDD externa autoxifrada d'Aigo. Part 1: dissecció en parts

Només:

  • Indicador LCD d'origen desconegut (probablement amb un conjunt de fonts xineses); amb control seqüencial;
  • Connector de cinta per a la placa del teclat.

2.3. Tauler de teclat

Quan examineu el tauler del teclat, les coses prenen un gir més interessant.

Revertir i piratejar la unitat HDD externa autoxifrada d'Aigo. Part 1: dissecció en parts

Aquí, a la part posterior, veiem un connector de cinta, així com un microcontrolador Cypress CY8C21434 PSoC 1 (d'ara endavant simplement l'anomenarem PSoC)

Revertir i piratejar la unitat HDD externa autoxifrada d'Aigo. Part 1: dissecció en parts

CY8C21434 utilitza el conjunt d'instruccions M8C (vegeu documentació). A [pàgina del producte]( (http://www.cypress.com/part/cy8c21434-24ltxi) s'indica que admet la tecnologia CapSense (solució de Cypress, per a teclats capacitius). Aquí podeu veure el connector de cinc pins que vaig soldar: aquest és un enfocament estàndard per connectar un programador extern mitjançant la interfície ISSP.

2.4. Mirant els cables

Anem a esbrinar què hi ha connectat aquí. Per fer-ho, només cal provar els cables amb un multímetre:

Revertir i piratejar la unitat HDD externa autoxifrada d'Aigo. Part 1: dissecció en parts

Explicacions d'aquest diagrama dibuixat al genoll:

  • El PSoC es descriu a l'especificació tècnica;
  • el connector següent, el de la dreta, és la interfície ISSP, que, per voluntat del destí, correspon al que s'escriu sobre ell a Internet;
  • El connector més a la dreta és el terminal per al connector de cinta a la placa del teclat;
  • El rectangle negre és un dibuix del connector CN1, dissenyat per connectar la placa principal a la placa LCD. P11, P13 i P4 estan connectats als pins 11, 13 i 4 del PSoC de la placa LCD.

3. Seqüència de passos d'atac

Ara que sabem de quins components consta aquesta unitat, hem de: 1) assegurar-nos que la funcionalitat bàsica de xifratge està realment present; 2) esbrineu com es generen/desen les claus de xifratge; 3) Trobeu on es comprovarà exactament el codi PIN.

Per fer-ho he fet els següents passos:

  • va fer un bolcat de dades d'una unitat flaix SPI;
  • va intentar bolcar dades d'una unitat flaix PSoC;
  • verificat que la comunicació entre Cypress PSoC i JMS539 realment conté pulsacions de tecles;
  • Em vaig assegurar que en canviar la contrasenya, no es sobreescriu res a la unitat flaix SPI;
  • era massa mandrós per revertir el firmware 8051 de JMS539.

3.1. Fer un bolcat de dades d'una unitat flaix SPI

Aquest procediment és molt senzill:

  • connecteu les sondes a les potes de la unitat flaix: CLK, MOSI, MISO i (opcional) EN;
  • Comunicacions "sniff" amb un sniffer mitjançant un analitzador lògic (he fet servir Saleae Logic Pro 16);
  • descodificar el protocol SPI i exportar els resultats a CSV;
  • aprofitar-se decode_spi.rbper analitzar els resultats i obtenir un abocador.

Tingueu en compte que aquest enfocament funciona especialment bé en el cas del controlador JMS539, ja que aquest controlador carrega tot el microprogramari de la unitat flaix en l'etapa d'inicialització.

$ 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

Després d'haver fet un abocador de la unitat flaix SPI, vaig arribar a la conclusió que la seva única tasca és emmagatzemar el microprogramari per al dispositiu de control JMicron, que està integrat al microcontrolador 8051. Malauradament, fer un abocador de la unitat flaix SPI va resultar inútil:

  • quan es canvia el codi PIN, l'abocament de la unitat flaix continua sent el mateix;
  • Després de l'etapa d'inicialització, el dispositiu no accedeix a la unitat flaix SPI.

3.2. Ensumant comunicacions

Aquesta és una manera de trobar quin xip és responsable de comprovar les comunicacions per a l'hora/contingut d'interès. Com ja sabem, el controlador USB-SATA està connectat a la pantalla LCD Cypress PSoC mitjançant el connector CN1 i dues cintes. Per tant, connectem les sondes a les tres potes corresponents:

  • P4, entrada/sortida general;
  • P11, I2C SCL;
  • P13, I2C SDA.

Revertir i piratejar la unitat HDD externa autoxifrada d'Aigo. Part 1: dissecció en parts

A continuació, iniciem l'analitzador lògic de Saleae i introduïm al teclat: "123456~". Com a resultat, veiem el següent diagrama.

Revertir i piratejar la unitat HDD externa autoxifrada d'Aigo. Part 1: dissecció en parts

Hi podem veure tres canals d'intercanvi de dades:

  • hi ha diverses ràfegues curtes al canal P4;
  • a P11 i P13: intercanvi de dades gairebé continu.

Apropant la primera punta del canal P4 (rectangle blau a la figura anterior), veiem el següent:

Revertir i piratejar la unitat HDD externa autoxifrada d'Aigo. Part 1: dissecció en parts

Aquí podeu veure que a P4 hi ha quasi 70 ms d'un senyal monòton, que al principi em va semblar que feia el paper d'un senyal de rellotge. No obstant això, després de passar una estona comprovant la meva conjectura, vaig descobrir que no es tracta d'un senyal de rellotge, sinó d'un flux d'àudio que s'emet al tweeter quan es prem les tecles. Per tant, aquesta secció del senyal en si no conté informació útil per a nosaltres. Tanmateix, es pot utilitzar com a indicador per saber quan el PSoC registra una pressió de tecla.

Tanmateix, l'última reproducció d'àudio P4 és una mica diferent: és l'àudio del "PIN no vàlid"!

Tornant al gràfic de tecles, fent zoom a l'últim gràfic de flux d'àudio (vegeu de nou el rectangle blau), obtenim:

Revertir i piratejar la unitat HDD externa autoxifrada d'Aigo. Part 1: dissecció en parts

Aquí veiem senyals monòtons a P11. Per tant, sembla que aquest és el senyal del rellotge. I P13 són dades. Observeu com canvia el patró un cop finalitza el bip. Seria interessant veure què passa aquí.

Els protocols que funcionen amb dos cables solen ser SPI o I2C, i l'especificació tècnica de Cypress estableix que aquests pins corresponen a I2C, cosa que veiem que és cert en el nostre cas:

Revertir i piratejar la unitat HDD externa autoxifrada d'Aigo. Part 1: dissecció en parts

El chipset USB-SATA consulta constantment el PSoC per llegir l'estat de la clau, que per defecte és "0". Aleshores, quan premeu la tecla "1", canvia a "1". La transmissió final immediatament després de prémer "~" és diferent si s'introdueix un codi PIN incorrecte. Tanmateix, de moment no he comprovat què s'hi transmet realment. Però sospito que és poc probable que sigui una clau de xifratge. De totes maneres, consulteu la següent secció per entendre com vaig eliminar el microprogramari intern de PSoC.

Font: www.habr.com

Afegeix comentari