Umkehren und Hacken des selbstverschlüsselnden externen Festplattenlaufwerks von Aigo. Teil 1: Zerlegen in Teile

Das Rückgängigmachen und Hacken externer selbstverschlüsselnder Laufwerke ist mein altes Hobby. In der Vergangenheit hatte ich Gelegenheit, mit Modellen wie Zalman VE-400, Zalman ZM-SHE500 und Zalman ZM-VE500 zu üben. Erst kürzlich brachte mir ein Kollege ein weiteres Ausstellungsstück mit: Patriot (Aigo) SK8671, das nach einem typischen Design aufgebaut ist – einer LCD-Anzeige und einer Tastatur zur Eingabe eines PIN-Codes. Das ist dabei herausgekommen...

1. Einleitung
2. Hardware-Architektur
– 2.1. Hauptplatine
– 2.2. LCD-Anzeigetafel
– 2.3. Tastaturbrett
– 2.4. Ich schaue mir die Drähte an
3. Reihenfolge der Angriffsschritte
– 3.1. Erstellen eines Datendumps von einem SPI-Flash-Laufwerk
– 3.2. Kommunikation schnüffeln

Umkehren und Hacken des selbstverschlüsselnden externen Festplattenlaufwerks von Aigo. Teil 1: Zerlegen in Teile


1. Einleitung

Umkehren und Hacken des selbstverschlüsselnden externen Festplattenlaufwerks von Aigo. Teil 1: Zerlegen in Teile
Gehäuse

Umkehren und Hacken des selbstverschlüsselnden externen Festplattenlaufwerks von Aigo. Teil 1: Zerlegen in Teile
Verpackung

Der Zugriff auf die auf der Festplatte gespeicherten Daten, die angeblich verschlüsselt sind, erfolgt nach Eingabe des PIN-Codes. Ein paar einleitende Hinweise zu diesem Gerät:

  • Um den PIN-Code zu ändern, müssen Sie vor dem Entsperren F1 drücken;
  • Der PIN-Code muss 6 bis 9 Ziffern enthalten;
  • Nach 15 Fehlversuchen wird die Festplatte gelöscht.

2. Hardware-Architektur

Zuerst zerlegen wir das Gerät in seine Einzelteile, um zu verstehen, aus welchen Komponenten es besteht. Die mühsamste Aufgabe ist das Öffnen des Gehäuses: viele mikroskopisch kleine Schrauben und Plastik. Nachdem wir das Gehäuse geöffnet haben, sehen wir Folgendes (achten Sie auf den fünfpoligen Stecker, den ich angelötet habe):

Umkehren und Hacken des selbstverschlüsselnden externen Festplattenlaufwerks von Aigo. Teil 1: Zerlegen in Teile

2.1. Hauptplatine

Die Hauptplatine ist ganz einfach:

Umkehren und Hacken des selbstverschlüsselnden externen Festplattenlaufwerks von Aigo. Teil 1: Zerlegen in Teile

Seine bemerkenswertesten Teile (siehe von oben nach unten):

  • Anschluss für LCD-Anzeige (CN1);
  • Hochtöner (SP1);
  • Pm25LD010 (Spezifikation) SPI-Flash-Laufwerk (U2);
  • Jmicron JMS539-Controller (Spezifikation) für USB-SATA (U1);
  • USB 3-Anschluss (J1).

Das SPI-Flash-Laufwerk speichert die Firmware für JMS539 und einige Einstellungen.

2.2. LCD-Anzeigetafel

Auf der LCD-Platine gibt es nichts Auffälliges.

Umkehren und Hacken des selbstverschlüsselnden externen Festplattenlaufwerks von Aigo. Teil 1: Zerlegen in Teile
Umkehren und Hacken des selbstverschlüsselnden externen Festplattenlaufwerks von Aigo. Teil 1: Zerlegen in Teile

Nur:

  • LCD-Anzeige unbekannter Herkunft (wahrscheinlich mit chinesischer Schriftart); mit Folgesteuerung;
  • Flachbandstecker für Tastaturplatine.

2.3. Tastaturbrett

Interessanter wird es bei der Betrachtung der Tastaturplatine.

Umkehren und Hacken des selbstverschlüsselnden externen Festplattenlaufwerks von Aigo. Teil 1: Zerlegen in Teile

Hier sehen wir auf der Rückseite einen Flachbandstecker sowie einen Cypress CY8C21434 Mikrocontroller PSoC 1 (im Folgenden nennen wir ihn einfach PSoC).

Umkehren und Hacken des selbstverschlüsselnden externen Festplattenlaufwerks von Aigo. Teil 1: Zerlegen in Teile

CY8C21434 verwendet den M8C-Befehlssatz (siehe Dokumentation). Auf [Produktseite]( (http://www.cypress.com/part/cy8c21434-24ltxi) wird darauf hingewiesen, dass es die Technologie unterstützt CapSense (Lösung von Cypress, für kapazitive Tastaturen). Hier sehen Sie den fünfpoligen Stecker, den ich angelötet habe – dies ist ein Standardansatz zum Anschluss eines externen Programmiergeräts über die ISSP-Schnittstelle.

2.4. Ich schaue mir die Drähte an

Lassen Sie uns herausfinden, was hier zusammenhängt. Testen Sie dazu einfach die Drähte mit einem Multimeter:

Umkehren und Hacken des selbstverschlüsselnden externen Festplattenlaufwerks von Aigo. Teil 1: Zerlegen in Teile

Erläuterungen zu diesem am Knie gezeichneten Diagramm:

  • Der PSoC ist in der technischen Spezifikation beschrieben;
  • der nächste Anschluss, der rechte, ist die ISSP-Schnittstelle, die, wie es das Schicksal will, dem entspricht, was im Internet darüber geschrieben wird;
  • Der Anschluss ganz rechts ist der Anschluss für den Flachbandstecker zur Tastaturplatine.
  • Das schwarze Rechteck ist eine Zeichnung des CN1-Anschlusses, der die Hauptplatine mit der LCD-Platine verbindet. P11, P13 und P4 sind mit den PSoC-Pins 11, 13 und 4 auf der LCD-Platine verbunden.

3. Reihenfolge der Angriffsschritte

Nachdem wir nun wissen, aus welchen Komponenten dieses Laufwerk besteht, müssen wir: 1) sicherstellen, dass die grundlegende Verschlüsselungsfunktionalität tatsächlich vorhanden ist; 2) Finden Sie heraus, wie Verschlüsselungsschlüssel generiert/gespeichert werden; 3) Finden Sie heraus, wo genau der PIN-Code überprüft wird.

Dazu habe ich folgende Schritte durchgeführt:

  • hat einen Datendump von einem SPI-Flash-Laufwerk erstellt;
  • versucht, Daten von einem PSoC-Flash-Laufwerk zu sichern;
  • überprüft, ob die Kommunikation zwischen Cypress PSoC und JMS539 tatsächlich Tastenanschläge enthält;
  • Ich habe darauf geachtet, dass beim Ändern des Passworts nichts im SPI-Flash-Laufwerk überschrieben wird;
  • war zu faul, die 8051-Firmware von JMS539 umzukehren.

3.1. Erstellen eines Datendumps von einem SPI-Flash-Laufwerk

Dieses Verfahren ist sehr einfach:

  • Schließen Sie Sonden an die Beine des Flash-Laufwerks an: CLK, MOSI, MISO und (optional) EN;
  • „Sniff“-Kommunikation mit einem Sniffer mithilfe eines Logikanalysators (ich habe verwendet). Saleae Logic Pro 16);
  • SPI-Protokoll dekodieren und Ergebnisse in CSV exportieren;
  • nimm Vorteil decode_spi.rbum die Ergebnisse zu analysieren und einen Dump zu erhalten.

Bitte beachten Sie, dass dieser Ansatz besonders gut im Fall des JMS539-Controllers funktioniert, da dieser Controller in der Initialisierungsphase die gesamte Firmware vom Flash-Laufwerk lädt.

$ 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

Nachdem ich einen Speicherauszug vom SPI-Flash-Laufwerk erstellt hatte, kam ich zu dem Schluss, dass seine einzige Aufgabe darin besteht, die Firmware für das JMicron-Steuergerät zu speichern, das im 8051-Mikrocontroller integriert ist. Leider erwies es sich als nutzlos, einen Dump des SPI-Flash-Laufwerks zu erstellen:

  • Wenn der PIN-Code geändert wird, bleibt der Speicherauszug des Flash-Laufwerks derselbe.
  • Nach der Initialisierungsphase greift das Gerät nicht auf das SPI-Flash-Laufwerk zu.

3.2. Kommunikation schnüffeln

Dies ist eine Möglichkeit herauszufinden, welcher Chip für die Überprüfung der Kommunikation auf den interessierenden Zeitpunkt/Inhalt verantwortlich ist. Wie wir bereits wissen, ist der USB-SATA-Controller über den Stecker CN1 und zwei Bänder mit dem Cypress PSoC LCD verbunden. Deshalb verbinden wir die Sonden mit den drei entsprechenden Beinen:

  • P4, allgemeiner Eingang/Ausgang;
  • P11, I2C SCL;
  • P13, I2C SDA.

Umkehren und Hacken des selbstverschlüsselnden externen Festplattenlaufwerks von Aigo. Teil 1: Zerlegen in Teile

Dann starten wir den Saleae-Logikanalysator und geben auf der Tastatur ein: „123456~“. Als Ergebnis sehen wir das folgende Diagramm.

Umkehren und Hacken des selbstverschlüsselnden externen Festplattenlaufwerks von Aigo. Teil 1: Zerlegen in Teile

Darauf sehen wir drei Datenaustauschkanäle:

  • es gibt mehrere kurze Bursts auf Kanal P4;
  • auf P11 und P13 - nahezu kontinuierlicher Datenaustausch.

Wenn wir die erste Spitze auf Kanal P4 (blaues Rechteck in der vorherigen Abbildung) vergrößern, sehen wir Folgendes:

Umkehren und Hacken des selbstverschlüsselnden externen Festplattenlaufwerks von Aigo. Teil 1: Zerlegen in Teile

Hier sieht man, dass auf P4 ein fast 70ms langes monotones Signal anliegt, das mir zunächst die Rolle eines Taktsignals zu spielen schien. Nachdem ich jedoch einige Zeit damit verbracht hatte, meine Vermutung zu überprüfen, stellte ich fest, dass es sich hierbei nicht um ein Taktsignal handelte, sondern um einen Audiostream, der beim Drücken der Tasten an den Hochtöner ausgegeben wird. Daher enthält dieser Abschnitt des Signals selbst keine nützlichen Informationen für uns. Es kann jedoch als Indikator verwendet werden, um zu wissen, wann der PSoC einen Tastendruck registriert.

Der neueste P4-Audiostream ist jedoch etwas anders: Es handelt sich um den Ton für die „ungültige PIN“!

Wenn wir zum Tastendruckdiagramm zurückkehren und das letzte Audiostream-Diagramm vergrößern (siehe erneut das blaue Rechteck), erhalten wir:

Umkehren und Hacken des selbstverschlüsselnden externen Festplattenlaufwerks von Aigo. Teil 1: Zerlegen in Teile

Hier sehen wir monotone Signale auf P11. Es sieht also so aus, als wäre dies das Taktsignal. Und P13 sind Daten. Beachten Sie, wie sich das Muster ändert, nachdem der Piepton endet. Es wäre interessant zu sehen, was hier passiert.

Protokolle, die mit zwei Drähten funktionieren, sind normalerweise SPI oder I2C, und die technische Spezifikation von Cypress besagt, dass diese Pins I2C entsprechen, was unserer Meinung nach in unserem Fall zutrifft:

Umkehren und Hacken des selbstverschlüsselnden externen Festplattenlaufwerks von Aigo. Teil 1: Zerlegen in Teile

Der USB-SATA-Chipsatz fragt ständig den PSoC ab, um den Status des Schlüssels zu lesen, der standardmäßig „0“ ist. Wenn Sie dann die Taste „1“ drücken, ändert sich die Anzeige auf „1“. Die endgültige Übertragung unmittelbar nach dem Drücken von „~“ unterscheidet sich, wenn der falsche PIN-Code eingegeben wird. Allerdings habe ich im Moment noch nicht überprüft, was dort tatsächlich übertragen wird. Aber ich vermute, dass es sich hierbei wahrscheinlich nicht um einen Verschlüsselungsschlüssel handelt. Lesen Sie auf jeden Fall den nächsten Abschnitt, um zu verstehen, wie ich die interne PSoC-Firmware entfernt habe.

Source: habr.com

Kommentar hinzufügen