Ārējo paššifrējošo disku apgriešana un uzlaušana ir mans vecais hobijs. Agrāk man bija iespēja praktizēt ar tādiem modeļiem kā Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500. Pavisam nesen kolēģis man atveda vēl vienu eksponātu: Patriot (Aigo) SK8671, kas ir uzbūvēts pēc tipiska dizaina - LCD indikators un tastatūra PIN koda ievadīšanai. Tas ir tas, kas no tā iznāca…
Piekļuve diskā saglabātajiem datiem, kas it kā ir šifrēti, tiek veikta pēc PIN koda ievadīšanas. Dažas ievada piezīmes par šo ierīci:
Lai mainītu PIN kodu, pirms atbloķēšanas jānospiež F1;
PIN kodā jābūt no 6 līdz 9 cipariem;
Pēc 15 nepareiziem mēģinājumiem disks tiek notīrīts.
2. Aparatūras arhitektūra
Pirmkārt, mēs sadalām ierīci daļās, lai saprastu, no kādiem komponentiem tā sastāv. Nogurdinošākais uzdevums ir korpusa atvēršana: daudz mikroskopisku skrūvju un plastmasas. Atverot korpusu, mēs redzam sekojošo (pievērsiet uzmanību piecu kontaktu savienotājam, kuru pielodēju):
2.1. Galvenā plate
Galvenā plate ir pavisam vienkārša:
Tās ievērojamākās daļas (skatīt no augšas uz leju):
SPI zibatmiņas disks saglabā JMS539 programmaparatūru un dažus iestatījumus.
2.2. LCD indikatoru panelis
LCD panelī nav nekā ievērības cienīga.
Tikai:
Nezināmas izcelsmes LCD indikators (iespējams, ar ķīniešu fontu komplektu); ar secīgu vadību;
Lentes savienotājs tastatūras platei.
2.3. Tastatūras dēlis
Izpētot tastatūru, lietas iegūst interesantāku pagriezienu.
Šeit, aizmugurē, mēs redzam lentes savienotāju, kā arī Cypress CY8C21434 mikrokontrolleri PSoC 1 (turpmāk mēs to vienkārši sauksim par PSoC)
CY8C21434 izmanto M8C instrukciju kopu (sk dokumentācija). [produkta lapā]( (http://www.cypress.com/part/cy8c21434-24ltxi) ir norādīts, ka tas atbalsta tehnoloģiju CapSense (risinājums no Cypress, kapacitatīvām tastatūrām). Šeit jūs varat redzēt piecu kontaktu savienotāju, kuru es pielodēju - tā ir standarta pieeja ārējā programmētāja pievienošanai, izmantojot ISSP interfeisu.
2.4. Skatoties uz vadiem
Noskaidrosim, kas šeit ir saistīts. Lai to izdarītu, vienkārši pārbaudiet vadus ar multimetru:
Paskaidrojumi šai diagrammai, kas uzzīmēta uz ceļa:
PSoC ir aprakstīts tehniskajā specifikācijā;
nākamais savienotājs, pa labi, ir ISSP interfeiss, kas pēc likteņa gribas atbilst tam, kas par to rakstīts internetā;
Galējais labais savienotājs ir tastatūras plates lentes savienotāja spaile;
Melnais taisnstūris ir CN1 savienotāja zīmējums, kas paredzēts galvenās plates savienošanai ar LCD paneli. P11, P13 un P4 ir savienoti ar PSoC tapām 11, 13 un 4 LCD panelī.
3. Uzbrukuma soļu secība
Tagad, kad mēs zinām, no kādiem komponentiem šis disks sastāv, mums ir: 1) jāpārliecinās, ka pamata šifrēšanas funkcionalitāte patiešām ir pieejama; 2) noskaidrot, kā tiek ģenerētas/saglabātas šifrēšanas atslēgas; 3) atrodiet, kur tieši tiks pārbaudīts PIN kods.
Lai to izdarītu, es veicu šādas darbības:
paņēma datu izgāztuvi no SPI zibatmiņas diska;
mēģinājis izmest datus no PSoC zibatmiņas diska;
pārbaudīja, vai saziņa starp Cypress PSoC un JMS539 patiešām satur taustiņu nospiešanu;
Pārliecinājos, ka, mainot paroli, SPI zibatmiņas diskā nekas netiek pārrakstīts;
bija pārāk slinks, lai mainītu 8051 programmaparatūru no JMS539.
3.1. Datu izgāztuves noņemšana no SPI zibatmiņas diska
Šī procedūra ir ļoti vienkārša:
pievienojiet zondes zibatmiņas diska kājām: CLK, MOSI, MISO un (pēc izvēles) EN;
“nosaukt” sakarus ar šņaukšanas ierīci, izmantojot loģisko analizatoru (es izmantoju Saleae Logic Pro 16);
atšifrēt SPI protokolu un eksportēt rezultātus uz CSV;
izmantot priekšrocības decode_spi.rblai parsētu rezultātus un iegūtu izgāztuvi.
Lūdzu, ņemiet vērā, ka šī pieeja īpaši labi darbojas JMS539 kontrollera gadījumā, jo šis kontrolleris inicializācijas stadijā ielādē visu programmaparatūru no zibatmiņas diska.
Izņemot SPI zibatmiņas disku, es nonācu pie secinājuma, ka tā vienīgais uzdevums ir saglabāt programmaparatūru JMicron vadības ierīcei, kas ir iebūvēta mikrokontrollerī 8051. Diemžēl SPI zibatmiņas diska izņemšana izrādījās bezjēdzīga:
mainot PIN kodu, zibatmiņas diska izgāztuve paliek nemainīga;
Pēc inicializācijas posma ierīce nepiekļūst SPI zibatmiņas diskam.
3.2. Sakaru šņaukšana
Šis ir viens no veidiem, kā noskaidrot, kura mikroshēma ir atbildīga par saziņas pārbaudi interesējošo laiku/saturu. Kā jau zinām, USB-SATA kontrolleris ir savienots ar Cypress PSoC LCD, izmantojot savienotāju CN1 un divas lentes. Tāpēc mēs savienojam zondes ar trim atbilstošajām kājām:
P4, vispārējā ievade/izvade;
P11, I2C SCL;
P13, I2C SDA.
Pēc tam palaižam Saleae loģisko analizatoru un tastatūrā ievadām: “123456~”. Rezultātā mēs redzam šādu diagrammu.
Tajā mēs redzam trīs datu apmaiņas kanālus:
kanālā P4 ir vairāki īsi pārrāvumi;
uz P11 un P13 - gandrīz nepārtraukta datu apmaiņa.
Tuvinot pirmo smaili kanālā P4 (zils taisnstūris iepriekšējā attēlā), mēs redzam sekojošo:
Šeit var redzēt, ka uz P4 ir gandrīz 70ms monotons signāls, kas man sākumā likās pulksteņa signāla lomu. Tomēr pēc tam, kad pavadīju kādu laiku, pārbaudot savu minējumu, es atklāju, ka tas nav pulksteņa signāls, bet gan audio straume, kas tiek izvadīta uz tweeter, kad tiek nospiesti taustiņi. Tāpēc šī signāla sadaļa mums nesatur noderīgu informāciju. Tomēr to var izmantot kā indikatoru, lai uzzinātu, kad PSoC reģistrē taustiņu nospiešanu.
Tomēr jaunākā P4 audio straume ir nedaudz atšķirīga: tā ir "nederīga PIN" skaņa!
Atgriežoties pie taustiņsitiena grafika, tuvinot pēdējo audio straumes grafiku (atkal skatiet zilo taisnstūri), iegūstam:
Šeit mēs redzam monotonus signālus uz P11. Tātad izskatās, ka tas ir pulksteņa signāls. Un P13 ir dati. Ievērojiet, kā modelis mainās pēc pīkstiena beigām. Būtu interesanti redzēt, kas šeit notiek.
Protokoli, kas darbojas ar diviem vadiem, parasti ir SPI vai I2C, un Cypress tehniskajā specifikācijā ir norādīts, ka šīs tapas atbilst I2C, kas mūsu gadījumā ir taisnība:
USB-SATA mikroshēmojums pastāvīgi aptauj PSoC, lai nolasītu atslēgas stāvokli, kas pēc noklusējuma ir “0”. Pēc tam, nospiežot taustiņu "1", tas mainās uz "1". Pēdējā pārraide uzreiz pēc “~” nospiešanas atšķiras, ja tiek ievadīts nepareizs PIN kods. Taču šobrīd neesmu pārbaudījis, kas tur īsti tiek pārraidīts. Bet man ir aizdomas, ka šī, visticamāk, nebūs šifrēšanas atslēga. Jebkurā gadījumā skatiet nākamo sadaļu, lai saprastu, kā es noņēmu PSoC iekšējo programmaparatūru.