Αντιστροφή και παραβίαση αυτοκρυπτογραφούμενης εξωτερικής μονάδας σκληρού δίσκου Aigo. Μέρος 1: Τεμαχισμός σε μέρη

Η αντιστροφή και η παραβίαση εξωτερικών μονάδων αυτοκρυπτογράφησης είναι το παλιό μου χόμπι. Στο παρελθόν, είχα την ευκαιρία να εξασκηθώ με μοντέλα όπως Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500. Μόλις πρόσφατα, ένας συνάδελφος μου έφερε ένα άλλο έκθεμα: το Patriot (Aigo) SK8671, το οποίο είναι κατασκευασμένο σύμφωνα με ένα τυπικό σχέδιο - μια ένδειξη LCD και ένα πληκτρολόγιο για την εισαγωγή ενός κωδικού PIN. Αυτό βγήκε από αυτό…

1. Εισαγωγή
2. Αρχιτεκτονική υλικού
– 2.1. Κύριος πίνακας
– 2.2. Πίνακας ένδειξης LCD
– 2.3. Πίνακας πληκτρολογίου
– 2.4. Κοιτάζοντας τα καλώδια
3. Ακολουθία βημάτων επίθεσης
– 3.1. Λήψη απόρριψης δεδομένων από μονάδα flash SPI
– 3.2. Μυρίζοντας επικοινωνίες

Αντιστροφή και παραβίαση αυτοκρυπτογραφούμενης εξωτερικής μονάδας σκληρού δίσκου Aigo. Μέρος 1: Τεμαχισμός σε μέρη


1. Εισαγωγή

Αντιστροφή και παραβίαση αυτοκρυπτογραφούμενης εξωτερικής μονάδας σκληρού δίσκου Aigo. Μέρος 1: Τεμαχισμός σε μέρη
Корпус

Αντιστροφή και παραβίαση αυτοκρυπτογραφούμενης εξωτερικής μονάδας σκληρού δίσκου Aigo. Μέρος 1: Τεμαχισμός σε μέρη
Συσκευασία

Η πρόσβαση στα δεδομένα που είναι αποθηκευμένα στο δίσκο, τα οποία υποτίθεται ότι είναι κρυπτογραφημένα, πραγματοποιείται μετά την εισαγωγή του κωδικού PIN. Μερικές εισαγωγικές σημειώσεις για αυτήν τη συσκευή:

  • Για να αλλάξετε τον κωδικό PIN, πρέπει να πατήσετε το F1 πριν ξεκλειδώσετε.
  • Ο κωδικός PIN πρέπει να περιέχει από 6 έως 9 ψηφία.
  • Μετά από 15 λανθασμένες προσπάθειες, ο δίσκος διαγράφεται.

2. Αρχιτεκτονική υλικού

Αρχικά, ανατέμνουμε τη συσκευή σε μέρη για να καταλάβουμε από ποια εξαρτήματα αποτελείται. Το πιο κουραστικό έργο είναι το άνοιγμα της θήκης: πολλές μικροσκοπικές βίδες και πλαστικό. Αφού ανοίξαμε τη θήκη, βλέπουμε τα εξής (προσοχή στον σύνδεσμο πέντε ακίδων που κόλλησα):

Αντιστροφή και παραβίαση αυτοκρυπτογραφούμενης εξωτερικής μονάδας σκληρού δίσκου Aigo. Μέρος 1: Τεμαχισμός σε μέρη

2.1. Κύριος πίνακας

Ο κύριος πίνακας είναι αρκετά απλός:

Αντιστροφή και παραβίαση αυτοκρυπτογραφούμενης εξωτερικής μονάδας σκληρού δίσκου Aigo. Μέρος 1: Τεμαχισμός σε μέρη

Τα πιο αξιοσημείωτα μέρη του (δείτε από πάνω προς τα κάτω):

Η μονάδα flash SPI αποθηκεύει το υλικολογισμικό για το JMS539 και ορισμένες ρυθμίσεις.

2.2. Πίνακας ένδειξης LCD

Δεν υπάρχει τίποτα αξιοσημείωτο στην πλακέτα LCD.

Αντιστροφή και παραβίαση αυτοκρυπτογραφούμενης εξωτερικής μονάδας σκληρού δίσκου Aigo. Μέρος 1: Τεμαχισμός σε μέρη
Αντιστροφή και παραβίαση αυτοκρυπτογραφούμενης εξωτερικής μονάδας σκληρού δίσκου Aigo. Μέρος 1: Τεμαχισμός σε μέρη

Μόνο:

  • Ένδειξη LCD άγνωστης προέλευσης (πιθανώς με κινεζική γραμματοσειρά). με διαδοχικό έλεγχο?
  • Κορδέλα υποδοχή για πλακέτα πληκτρολογίου.

2.3. Πίνακας πληκτρολογίου

Όταν εξετάζετε το πληκτρολόγιο, τα πράγματα παίρνουν μια πιο ενδιαφέρουσα τροπή.

Αντιστροφή και παραβίαση αυτοκρυπτογραφούμενης εξωτερικής μονάδας σκληρού δίσκου Aigo. Μέρος 1: Τεμαχισμός σε μέρη

Εδώ, στην πίσω πλευρά, βλέπουμε έναν σύνδεσμο κορδέλας, καθώς και έναν μικροελεγκτή Cypress CY8C21434 PSoC 1 (εφεξής θα τον ονομάζουμε απλά PSoC)

Αντιστροφή και παραβίαση αυτοκρυπτογραφούμενης εξωτερικής μονάδας σκληρού δίσκου Aigo. Μέρος 1: Τεμαχισμός σε μέρη

Το CY8C21434 χρησιμοποιεί το σύνολο εντολών M8C (βλ τεκμηρίωση). Στη [σελίδα προϊόντος]( (http://www.cypress.com/part/cy8c21434-24ltxi) υποδεικνύεται ότι υποστηρίζει την τεχνολογία CapSense (λύση από την Cypress, για χωρητικά πληκτρολόγια). Εδώ μπορείτε να δείτε την υποδοχή πέντε ακίδων που συγκόλλησα - αυτή είναι μια τυπική προσέγγιση για τη σύνδεση ενός εξωτερικού προγραμματιστή μέσω της διεπαφής ISSP.

2.4. Κοιτάζοντας τα καλώδια

Ας καταλάβουμε τι συνδέεται εδώ. Για να το κάνετε αυτό, απλώς δοκιμάστε τα καλώδια με ένα πολύμετρο:

Αντιστροφή και παραβίαση αυτοκρυπτογραφούμενης εξωτερικής μονάδας σκληρού δίσκου Aigo. Μέρος 1: Τεμαχισμός σε μέρη

Επεξηγήσεις για αυτό το διάγραμμα που σχεδιάζεται στο γόνατο:

  • Το PSoC περιγράφεται στις τεχνικές προδιαγραφές.
  • ο επόμενος σύνδεσμος, αυτός στα δεξιά, είναι η διεπαφή ISSP, η οποία, κατά τη θέληση της μοίρας, αντιστοιχεί σε ό,τι γράφεται γι 'αυτό στο Διαδίκτυο.
  • Η πιο δεξιά υποδοχή είναι ο ακροδέκτης για την κορδέλα σύνδεσης στην πλακέτα του πληκτρολογίου.
  • Το μαύρο ορθογώνιο είναι ένα σχέδιο της υποδοχής CN1, σχεδιασμένο να συνδέει την κύρια πλακέτα με την πλακέτα LCD. Τα P11, P13 και P4 συνδέονται με τις ακίδες PSoC 11, 13 και 4, στην πλακέτα LCD.

3. Ακολουθία βημάτων επίθεσης

Τώρα που γνωρίζουμε από ποια στοιχεία αποτελείται αυτή η μονάδα δίσκου, πρέπει: 1) να βεβαιωθούμε ότι η βασική λειτουργία κρυπτογράφησης είναι πραγματικά παρούσα. 2) μάθετε πώς δημιουργούνται/αποθηκεύονται τα κλειδιά κρυπτογράφησης. 3) βρείτε πού ακριβώς θα ελεγχθεί ο κωδικός PIN.

Για να το κάνω αυτό έκανα τα εξής βήματα:

  • πήρε μια ένδειξη δεδομένων από μια μονάδα flash SPI.
  • προσπάθησε να απορρίψει δεδομένα από μια μονάδα flash PSoC.
  • επαλήθευσε ότι η επικοινωνία μεταξύ του Cypress PSoC και του JMS539 περιέχει πραγματικά τα πλήκτρα που έχουν πατηθεί.
  • Βεβαιώθηκα ότι κατά την αλλαγή του κωδικού πρόσβασης, τίποτα δεν αντικαθίσταται στη μονάδα flash SPI.
  • ήταν πολύ τεμπέλης για να αντιστρέψει το υλικολογισμικό 8051 από το JMS539.

3.1. Λήψη απόρριψης δεδομένων από μονάδα flash SPI

Αυτή η διαδικασία είναι πολύ απλή:

  • συνδέστε τους ανιχνευτές στα πόδια της μονάδας flash: CLK, MOSI, MISO και (προαιρετικά) EN.
  • Επικοινωνίες "sniff" με έναν sniffer χρησιμοποιώντας έναν λογικό αναλυτή (χρησιμοποίησα Saleae Logic Pro 16);
  • αποκωδικοποίηση πρωτοκόλλου SPI και εξαγωγή αποτελεσμάτων σε CSV.
  • επωφεληθείτε decode_spi.rbγια να αναλύσετε τα αποτελέσματα και να πάρετε μια χωματερή.

Λάβετε υπόψη ότι αυτή η προσέγγιση λειτουργεί ιδιαίτερα καλά στην περίπτωση του ελεγκτή JMS539, καθώς αυτός ο ελεγκτής φορτώνει όλο το υλικολογισμικό από τη μονάδα flash στο στάδιο της προετοιμασίας.

$ 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

Έχοντας πάρει μια ένδειξη από τη μονάδα flash SPI, κατέληξα στο συμπέρασμα ότι η μόνη της αποστολή είναι να αποθηκεύσει το υλικολογισμικό για τη συσκευή ελέγχου JMicron, η οποία είναι ενσωματωμένη στον μικροελεγκτή 8051. Δυστυχώς, η απόρριψη της μονάδας flash SPI αποδείχθηκε άχρηστη:

  • όταν αλλάξει ο κωδικός PIN, η ένδειξη της μονάδας flash παραμένει η ίδια.
  • Μετά το στάδιο της προετοιμασίας, η συσκευή δεν έχει πρόσβαση στη μονάδα flash SPI.

3.2. Μυρίζοντας επικοινωνίες

Αυτός είναι ένας τρόπος για να βρείτε ποιο τσιπ είναι υπεύθυνο για τον έλεγχο των επικοινωνιών για το χρόνο/το περιεχόμενο που σας ενδιαφέρει. Όπως ήδη γνωρίζουμε, ο ελεγκτής USB-SATA συνδέεται με την οθόνη Cypress PSoC LCD μέσω της υποδοχής CN1 και δύο κορδέλες. Επομένως, συνδέουμε τους ανιχνευτές στα τρία αντίστοιχα σκέλη:

  • P4, γενική είσοδος/έξοδος.
  • P11, I2C SCL;
  • P13, I2C SDA.

Αντιστροφή και παραβίαση αυτοκρυπτογραφούμενης εξωτερικής μονάδας σκληρού δίσκου Aigo. Μέρος 1: Τεμαχισμός σε μέρη

Στη συνέχεια ξεκινάμε τον λογικό αναλυτή Saleae και εισάγουμε στο πληκτρολόγιο: "123456~". Ως αποτέλεσμα, βλέπουμε το παρακάτω διάγραμμα.

Αντιστροφή και παραβίαση αυτοκρυπτογραφούμενης εξωτερικής μονάδας σκληρού δίσκου Aigo. Μέρος 1: Τεμαχισμός σε μέρη

Σε αυτό μπορούμε να δούμε τρία κανάλια ανταλλαγής δεδομένων:

  • υπάρχουν αρκετές σύντομες εκρήξεις στο κανάλι P4.
  • σε P11 και P13 - σχεδόν συνεχής ανταλλαγή δεδομένων.

Μεγεθύνοντας την πρώτη ακίδα στο κανάλι P4 (μπλε ορθογώνιο στο προηγούμενο σχήμα), βλέπουμε τα εξής:

Αντιστροφή και παραβίαση αυτοκρυπτογραφούμενης εξωτερικής μονάδας σκληρού δίσκου Aigo. Μέρος 1: Τεμαχισμός σε μέρη

Εδώ μπορείτε να δείτε ότι στο P4 υπάρχει σχεδόν 70ms ενός μονότονου σήματος, το οποίο στην αρχή μου φάνηκε ότι παίζει το ρόλο ενός σήματος ρολογιού. Ωστόσο, αφού πέρασα λίγο χρόνο ελέγχοντας την εικασία μου, ανακάλυψα ότι δεν πρόκειται για σήμα ρολογιού, αλλά για μια ροή ήχου που εξέρχεται στο tweeter όταν πατηθούν τα πλήκτρα. Επομένως, αυτή η ενότητα του ίδιου του σήματος δεν περιέχει χρήσιμες πληροφορίες για εμάς. Ωστόσο, μπορεί να χρησιμοποιηθεί ως ένδειξη για να γνωρίζετε πότε το PSoC καταγράφει ένα πάτημα πλήκτρου.

Ωστόσο, η τελευταία ροή ήχου P4 είναι λίγο διαφορετική: είναι ο ήχος για το "μη έγκυρο PIN"!

Επιστρέφοντας στο γράφημα πληκτρολόγησης, κάνοντας μεγέθυνση στο γράφημα της τελευταίας ροής ήχου (δείτε ξανά το μπλε ορθογώνιο), παίρνουμε:

Αντιστροφή και παραβίαση αυτοκρυπτογραφούμενης εξωτερικής μονάδας σκληρού δίσκου Aigo. Μέρος 1: Τεμαχισμός σε μέρη

Εδώ βλέπουμε μονότονα σήματα στο P11. Φαίνεται λοιπόν ότι αυτό είναι το σήμα του ρολογιού. Και το P13 είναι δεδομένα. Παρατηρήστε πώς αλλάζει το μοτίβο μετά το τέλος του μπιπ. Θα ήταν ενδιαφέρον να δούμε τι συμβαίνει εδώ.

Τα πρωτόκολλα που λειτουργούν με δύο καλώδια είναι συνήθως SPI ή I2C και οι τεχνικές προδιαγραφές στο Cypress δηλώνουν ότι αυτές οι ακίδες αντιστοιχούν στο I2C, κάτι που βλέπουμε ότι ισχύει στην περίπτωσή μας:

Αντιστροφή και παραβίαση αυτοκρυπτογραφούμενης εξωτερικής μονάδας σκληρού δίσκου Aigo. Μέρος 1: Τεμαχισμός σε μέρη

Το chipset USB-SATA μετράει συνεχώς το PSoC για να διαβάσει την κατάσταση του κλειδιού, η οποία από προεπιλογή είναι "0". Στη συνέχεια, όταν πατήσετε το πλήκτρο "1", αλλάζει σε "1". Η τελική μετάδοση αμέσως μετά το πάτημα του "~" είναι διαφορετική εάν εισαχθεί λάθος κωδικός PIN. Ωστόσο, αυτή τη στιγμή δεν έχω ελέγξει τι πραγματικά μεταδίδεται εκεί. Αλλά υποψιάζομαι ότι αυτό είναι απίθανο να είναι κλειδί κρυπτογράφησης. Τέλος πάντων, δείτε την επόμενη ενότητα για να καταλάβετε πώς αφαίρεσα το εσωτερικό υλικολογισμικό PSoC.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο