Omkeren en hacken van Aigo zelfversleutelende externe harde schijf. Deel 1: Ontleden in delen

Het omkeren en hacken van externe zelfversleutelende schijven is mijn oude hobby. In het verleden heb ik de kans gehad om te oefenen met modellen als Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500. Onlangs bracht een collega me nog een tentoonstelling: Patriot (Aigo) SK8671, die is gebouwd volgens een typisch ontwerp: een LCD-indicator en een toetsenbord voor het invoeren van een pincode. Dat is wat er uit voortkwam...

1. Inleiding
2. Hardware-architectuur
– 2.1. Hoofdbord
– 2.2. LCD-indicatorbord
– 2.3. Toetsenbordbord
– 2.4. Kijkend naar de draden
3. Volgorde van aanvalsstappen
– 3.1. Een gegevensdump nemen van een SPI-flashdrive
– 3.2. Communicatie snuiven

Omkeren en hacken van Aigo zelfversleutelende externe harde schijf. Deel 1: Ontleden in delen


1. Inleiding

Omkeren en hacken van Aigo zelfversleutelende externe harde schijf. Deel 1: Ontleden in delen
behuizing

Omkeren en hacken van Aigo zelfversleutelende externe harde schijf. Deel 1: Ontleden in delen
Verpakking

Toegang tot de gegevens die op de schijf zijn opgeslagen, die zogenaamd gecodeerd zijn, wordt uitgevoerd na het invoeren van de pincode. Een paar inleidende opmerkingen over dit apparaat:

  • Om de pincode te wijzigen, moet u op F1 drukken voordat u ontgrendelt;
  • De pincode moet 6 tot 9 cijfers bevatten;
  • Na 15 foutieve pogingen wordt de schijf gewist.

2. Hardware-architectuur

Eerst ontleden we het apparaat in onderdelen om te begrijpen uit welke componenten het bestaat. De meest vervelende taak is het openen van de behuizing: veel microscopisch kleine schroeven en plastic. Nadat we de behuizing hebben geopend, zien we het volgende (let op de vijfpolige connector die ik heb gesoldeerd):

Omkeren en hacken van Aigo zelfversleutelende externe harde schijf. Deel 1: Ontleden in delen

2.1. Hoofdbord

Het moederbord is vrij eenvoudig:

Omkeren en hacken van Aigo zelfversleutelende externe harde schijf. Deel 1: Ontleden in delen

De meest opvallende delen (zie van boven naar beneden):

  • connector voor LCD-indicator (CN1);
  • tweeter (SP1);
  • Pm25LD010 (specificatie) SPI-flashdrive (U2);
  • Jmicron JMS539-controller (specificatie) voor USB-SATA (U1);
  • USB 3-connector (J1).

De SPI-flashdrive slaat de firmware voor JMS539 en enkele instellingen op.

2.2. LCD-indicatorbord

Er is niets opmerkelijks op het LCD-bord.

Omkeren en hacken van Aigo zelfversleutelende externe harde schijf. Deel 1: Ontleden in delen
Omkeren en hacken van Aigo zelfversleutelende externe harde schijf. Deel 1: Ontleden in delen

Alleen:

  • LCD-indicator van onbekende oorsprong (waarschijnlijk met een Chinese lettertypeset); met sequentiële besturing;
  • Lintconnector voor toetsenbordbord.

2.3. Toetsenbordbord

Bij het onderzoeken van het toetsenbord nemen de zaken een interessantere wending.

Omkeren en hacken van Aigo zelfversleutelende externe harde schijf. Deel 1: Ontleden in delen

Hier zien we aan de achterkant een lintconnector, evenals een Cypress CY8C21434-microcontroller PSoC 1 (hierna zullen we deze eenvoudigweg PSoC noemen)

Omkeren en hacken van Aigo zelfversleutelende externe harde schijf. Deel 1: Ontleden in delen

CY8C21434 gebruikt de M8C-instructieset (zie de documentatie). Op [productpagina]( (http://www.cypress.com/part/cy8c21434-24ltxi) wordt aangegeven dat het de technologie ondersteunt CapSense (oplossing van Cypress, voor capacitieve toetsenborden). Hier kun je de vijf-pins connector zien die ik heb gesoldeerd - dit is een standaardaanpak voor het aansluiten van een externe programmeur via de ISSP-interface.

2.4. Kijkend naar de draden

Laten we uitzoeken wat hier met elkaar verbonden is. Om dit te doen, test u gewoon de draden met een multimeter:

Omkeren en hacken van Aigo zelfversleutelende externe harde schijf. Deel 1: Ontleden in delen

Uitleg voor dit diagram getekend op de knie:

  • De PSoC wordt beschreven in de technische specificatie;
  • de volgende connector, die aan de rechterkant, is de ISSP-interface, die, door de wil van het lot, overeenkomt met wat erover op internet staat;
  • De meest rechtse connector is de aansluiting voor de lintconnector op het toetsenbordbord;
  • De zwarte rechthoek is een tekening van de CN1-connector, ontworpen om het moederbord op het LCD-bord aan te sluiten. P11, P13 en P4 zijn verbonden met PSoC-pinnen 11, 13 en 4 op het LCD-bord.

3. Volgorde van aanvalsstappen

Nu we weten uit welke componenten deze schijf bestaat, moeten we: 1) ervoor zorgen dat de basiscoderingsfunctionaliteit daadwerkelijk aanwezig is; 2) ontdek hoe encryptiesleutels worden gegenereerd/opgeslagen; 3) Zoek waar de pincode precies wordt gecontroleerd.

Om dit te doen heb ik de volgende stappen uitgevoerd:

  • nam een ​​datadump van een SPI-flashdrive;
  • geprobeerd gegevens van een PSoC-flashstation te dumpen;
  • geverifieerd dat de communicatie tussen Cypress PSoC en JMS539 daadwerkelijk toetsaanslagen bevat;
  • Ik heb ervoor gezorgd dat er bij het wijzigen van het wachtwoord niets op de SPI-flashdrive wordt overschreven;
  • was te lui om de 8051-firmware van JMS539 terug te draaien.

3.1. Een gegevensdump nemen van een SPI-flashdrive

Deze procedure is heel eenvoudig:

  • sluit sondes aan op de poten van de flashdrive: CLK, MOSI, MISO en (optioneel) EN;
  • "sniff" -communicatie met een sniffer met behulp van een logische analysator (ik gebruikte Saleae Logic Pro 16);
  • decodeer het SPI-protocol en exporteer resultaten naar CSV;
  • profiteer ervan decode_spi.rbom de resultaten te parseren en een dump te krijgen.

Houd er rekening mee dat deze aanpak vooral goed werkt in het geval van de JMS539-controller, omdat deze controller tijdens de initialisatiefase alle firmware van de flashdrive laadt.

$ 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 ik een dump van de SPI-flashdrive had genomen, kwam ik tot de conclusie dat het de enige taak is om de firmware op te slaan voor het JMicron-besturingsapparaat, dat in de 8051-microcontroller is ingebouwd. Helaas bleek het nutteloos om een ​​dump van de SPI-flashdrive te maken:

  • wanneer de pincode wordt gewijzigd, blijft de dump van de flashdrive hetzelfde;
  • Na de initialisatiefase heeft het apparaat geen toegang tot de SPI-flashdrive.

3.2. Communicatie snuiven

Dit is een manier om erachter te komen welke chip verantwoordelijk is voor het controleren van de communicatie op het tijdstip/de inhoud van interesse. Zoals we al weten, is de USB-SATA-controller via connector CN1 en twee linten verbonden met de Cypress PSoC LCD. Daarom verbinden we de sondes met de drie overeenkomstige poten:

  • P4, algemene invoer/uitvoer;
  • P11, I2C-SCL;
  • P13, I2C SDA.

Omkeren en hacken van Aigo zelfversleutelende externe harde schijf. Deel 1: Ontleden in delen

Vervolgens starten we de Saleae-logica-analysator en voeren op het toetsenbord in: "123456~". Als resultaat zien we het volgende diagram.

Omkeren en hacken van Aigo zelfversleutelende externe harde schijf. Deel 1: Ontleden in delen

Daarop kunnen we drie kanalen voor gegevensuitwisseling zien:

  • er zijn verschillende korte bursts op kanaal P4;
  • op P11 en P13 - vrijwel continue gegevensuitwisseling.

Als we inzoomen op de eerste piek op kanaal P4 (blauwe rechthoek in de vorige figuur), zien we het volgende:

Omkeren en hacken van Aigo zelfversleutelende externe harde schijf. Deel 1: Ontleden in delen

Hier kun je zien dat er op P4 bijna 70 ms een monotoon signaal is, dat in eerste instantie de rol van een kloksignaal leek te spelen. Nadat ik echter wat tijd had besteed aan het controleren van mijn gok, ontdekte ik dat dit geen kloksignaal is, maar een audiostream die naar de tweeter wordt gestuurd wanneer de toetsen worden ingedrukt. Daarom bevat dit gedeelte van het signaal zelf geen nuttige informatie voor ons. Het kan echter worden gebruikt als indicator om te weten wanneer de PSoC een toetsaanslag registreert.

De nieuwste P4-audiostream is echter een beetje anders: het is de audio voor de "ongeldige pincode"!

Terugkerend naar de toetsaanslaggrafiek, inzoomend op de laatste audiostreamgrafiek (zie opnieuw de blauwe rechthoek), krijgen we:

Omkeren en hacken van Aigo zelfversleutelende externe harde schijf. Deel 1: Ontleden in delen

Hier zien we monotone signalen op P11. Het lijkt er dus op dat dit het kloksignaal is. En P13 zijn gegevens. Merk op hoe het patroon verandert nadat de pieptoon is afgelopen. Het zou interessant zijn om te zien wat hier gebeurt.

Protocollen die met twee draden werken zijn meestal SPI of I2C, en de technische specificatie op Cypress stelt dat deze pinnen overeenkomen met I2C, wat in ons geval waar is:

Omkeren en hacken van Aigo zelfversleutelende externe harde schijf. Deel 1: Ontleden in delen

De USB-SATA-chipset ondervraagt ​​voortdurend de PSoC om de status van de sleutel te lezen, die standaard “0” is. Wanneer u vervolgens op de toets "1" drukt, verandert deze in "1". De uiteindelijke verzending onmiddellijk na het indrukken van “~” is anders als de verkeerde pincode wordt ingevoerd. Op dit moment heb ik echter niet gecontroleerd wat daar daadwerkelijk wordt uitgezonden. Maar ik vermoed dat het onwaarschijnlijk is dat dit een encryptiesleutel is. Hoe dan ook, zie het volgende gedeelte om te begrijpen hoe ik de interne PSoC-firmware heb verwijderd.

Bron: www.habr.com

Voeg een reactie