Gwrthdroi a hacio gyriant HDD allanol hunan-amgryptio Aigo. Rhan 1: Dyrannu'n rhannau

Gwrthdroi a hacio gyriannau hunan-amgryptio allanol yw fy hen hobi. Yn y gorffennol, cefais y cyfle i ymarfer gyda modelau o'r fath fel Zalman VE-400, Zalman ZM-SHE500, Zalman ZM-VE500. Yn ddiweddar, daeth cydweithiwr ag arddangosfa arall i mi: Patriot (Aigo) SK8671, sydd wedi'i adeiladu yn ôl dyluniad nodweddiadol - dangosydd LCD a bysellfwrdd ar gyfer mynd i mewn i god PIN. Dyna beth ddaeth allan ohono…

1. Cyflwyniad
2. pensaernïaeth caledwedd
– 2.1. Prif fwrdd
– 2.2. Bwrdd dangosydd LCD
– 2.3. Bwrdd bysellfwrdd
– 2.4. Edrych ar y gwifrau
3. Dilyniant o gamau ymosodiad
– 3.1. Cymryd dympio data o yriant fflach SPI
– 3.2. Cyfathrebiadau siffrwd

Gwrthdroi a hacio gyriant HDD allanol hunan-amgryptio Aigo. Rhan 1: Dyrannu'n rhannau


1. Cyflwyniad

Gwrthdroi a hacio gyriant HDD allanol hunan-amgryptio Aigo. Rhan 1: Dyrannu'n rhannau
Tai

Gwrthdroi a hacio gyriant HDD allanol hunan-amgryptio Aigo. Rhan 1: Dyrannu'n rhannau
Pacio

Mae mynediad i'r data sydd wedi'i storio ar y ddisg, sydd i fod wedi'i amgryptio, yn cael ei wneud ar ôl mynd i mewn i'r cod PIN. Ychydig o nodiadau rhagarweiniol ar y ddyfais hon:

  • I newid y cod PIN, rhaid i chi bwyso F1 cyn datgloi;
  • Rhaid i'r cod PIN gynnwys rhwng 6 a 9 digid;
  • Ar ôl 15 ymgais anghywir, caiff y ddisg ei chlirio.

2. pensaernïaeth caledwedd

Yn gyntaf, rydym yn rhannu'r ddyfais yn rhannau i ddeall pa gydrannau y mae'n eu cynnwys. Y dasg fwyaf diflas yw agor yr achos: llawer o sgriwiau microsgopig a phlastig. Ar ôl agor yr achos, fe welwn y canlynol (rhowch sylw i'r cysylltydd pum pin y gwnes i ei sodro):

Gwrthdroi a hacio gyriant HDD allanol hunan-amgryptio Aigo. Rhan 1: Dyrannu'n rhannau

2.1. Prif fwrdd

Mae'r prif fwrdd yn eithaf syml:

Gwrthdroi a hacio gyriant HDD allanol hunan-amgryptio Aigo. Rhan 1: Dyrannu'n rhannau

Ei rannau mwyaf nodedig (gweler o'r top i'r gwaelod):

  • cysylltydd ar gyfer dangosydd LCD (CN1);
  • trydarwr (SP1);
  • Pm25LD010 (manyleb) Gyriant fflach SPI (U2);
  • Rheolydd Jmicron JMS539 (manyleb) ar gyfer USB-SATA (U1);
  • Cysylltydd USB 3 (J1).

Mae gyriant fflach SPI yn storio'r firmware ar gyfer JMS539 a rhai gosodiadau.

2.2. Bwrdd dangosydd LCD

Nid oes unrhyw beth rhyfeddol ar y bwrdd LCD.

Gwrthdroi a hacio gyriant HDD allanol hunan-amgryptio Aigo. Rhan 1: Dyrannu'n rhannau
Gwrthdroi a hacio gyriant HDD allanol hunan-amgryptio Aigo. Rhan 1: Dyrannu'n rhannau

Dim ond:

  • Dangosydd LCD o darddiad anhysbys (yn ôl pob tebyg gyda set ffont Tsieineaidd); gyda rheolaeth ddilyniannol;
  • Cysylltydd rhuban ar gyfer bwrdd bysellfwrdd.

2.3. Bwrdd bysellfwrdd

Wrth archwilio'r bwrdd bysellfwrdd, mae pethau'n cymryd tro mwy diddorol.

Gwrthdroi a hacio gyriant HDD allanol hunan-amgryptio Aigo. Rhan 1: Dyrannu'n rhannau

Yma, ar yr ochr gefn, rydym yn gweld cysylltydd rhuban, yn ogystal â microcontroller Cypress CY8C21434 PSoC 1 (o hyn ymlaen byddwn yn ei alw'n PSoC yn syml)

Gwrthdroi a hacio gyriant HDD allanol hunan-amgryptio Aigo. Rhan 1: Dyrannu'n rhannau

Mae CY8C21434 yn defnyddio set gyfarwyddiadau M8C (gweler dogfennaeth). Ar [dudalen cynnyrch]( (http://www.cypress.com/part/cy8c21434-24ltxi) nodir ei fod yn cefnogi'r dechnoleg CapSense (ateb gan Cypress, ar gyfer bysellfyrddau capacitive). Yma gallwch weld y cysylltydd pum pin y gwnes i ei sodro - mae hwn yn ddull safonol ar gyfer cysylltu rhaglennydd allanol trwy ryngwyneb ISSP.

2.4. Edrych ar y gwifrau

Gadewch i ni ddarganfod beth sy'n gysylltiedig yma. I wneud hyn, profwch y gwifrau gyda multimedr:

Gwrthdroi a hacio gyriant HDD allanol hunan-amgryptio Aigo. Rhan 1: Dyrannu'n rhannau

Esboniadau ar gyfer y diagram hwn ar y pen-glin:

  • Disgrifir y PSoC yn y fanyleb dechnegol;
  • y cysylltydd nesaf, yr un ar y dde, yw'r rhyngwyneb ISSP, sydd, yn ôl ewyllys tynged, yn cyfateb i'r hyn sydd wedi'i ysgrifennu amdano ar y Rhyngrwyd;
  • Y cysylltydd mwyaf cywir yw'r derfynell ar gyfer y cysylltydd rhuban i'r bwrdd bysellfwrdd;
  • Mae'r petryal du yn ddarlun o'r cysylltydd CN1, wedi'i gynllunio i gysylltu'r prif fwrdd â'r bwrdd LCD. Mae P11, P13 a P4 wedi'u cysylltu â phinnau PSoC 11, 13 a 4, ar y bwrdd LCD.

3. Dilyniant o gamau ymosodiad

Nawr ein bod ni'n gwybod pa gydrannau mae'r gyriant hwn yn eu cynnwys, mae angen i ni: 1) sicrhau bod y swyddogaeth amgryptio sylfaenol yn bresennol mewn gwirionedd; 2) darganfod sut mae allweddi amgryptio yn cael eu cynhyrchu/cadw; 3) darganfyddwch ble yn union y bydd y cod PIN yn cael ei wirio.

I wneud hyn, fe wnes i'r camau canlynol:

  • cymerodd dymp data o yriant fflach SPI;
  • ceisio dympio data o yriant fflach PSoC;
  • gwirio bod y cyfathrebu rhwng Cypress PSoC a JMS539 mewn gwirionedd yn cynnwys trawiadau bysell;
  • Fe wnes i'n siŵr, wrth newid y cyfrinair, nad oes dim yn cael ei drosysgrifo yn y gyriant fflach SPI;
  • yn rhy ddiog i wrthdroi'r cadarnwedd 8051 o JMS539.

3.1. Cymryd dympio data o yriant fflach SPI

Mae'r weithdrefn hon yn syml iawn:

  • cysylltu stilwyr â choesau'r gyriant fflach: CLK, MOSI, MISO a (dewisol) EN;
  • cyfathrebu “sniff” gyda synhwyro gan ddefnyddio dadansoddwr rhesymeg (defnyddiais Saleae Logic Pro 16);
  • dadgodio protocol SPI ac allforio canlyniadau i CSV;
  • manteisiwch arno datgod_spi.rbi ddosrannu'r canlyniadau a chael dymp.

Sylwch fod y dull hwn yn gweithio'n arbennig o dda yn achos y rheolydd JMS539, gan fod y rheolydd hwn yn llwytho'r holl firmware o'r gyriant fflach yn y cam cychwynnol.

$ 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

Ar ôl cymryd dymp o'r gyriant fflach SPI, deuthum i'r casgliad mai ei unig dasg yw storio'r firmware ar gyfer y ddyfais reoli JMicron, sydd wedi'i ymgorffori yn y microreolydd 8051. Yn anffodus, roedd cymryd dymp o'r gyriant fflach SPI yn ddiwerth:

  • pan fydd y cod PIN yn cael ei newid, mae'r dymp gyriant fflach yn aros yr un fath;
  • Ar ôl y cam cychwynnol, nid yw'r ddyfais yn cyrchu'r gyriant fflach SPI.

3.2. Cyfathrebu sniffian

Dyma un ffordd o ddarganfod pa sglodyn sy'n gyfrifol am wirio cyfathrebiadau am yr amser/cynnwys o ddiddordeb. Fel y gwyddom eisoes, mae'r rheolydd USB-SATA wedi'i gysylltu â'r Cypress PSoC LCD trwy gysylltydd CN1 a dau ruban. Felly, rydym yn cysylltu'r stilwyr â'r tair coes gyfatebol:

  • Ll4, mewnbwn/allbwn cyffredinol;
  • P11, I2C SCL;
  • P13, I2C SDA.

Gwrthdroi a hacio gyriant HDD allanol hunan-amgryptio Aigo. Rhan 1: Dyrannu'n rhannau

Yna rydyn ni'n lansio'r dadansoddwr rhesymeg Saleae ac yn nodi ar y bysellfwrdd: “123456 ~”. O ganlyniad, gwelwn y diagram canlynol.

Gwrthdroi a hacio gyriant HDD allanol hunan-amgryptio Aigo. Rhan 1: Dyrannu'n rhannau

Arddo gallwn weld tair sianel cyfnewid data:

  • mae sawl pyliau byr ar sianel P4;
  • ar Ll11 a P13 - cyfnewid data bron yn barhaus.

Gan chwyddo i mewn ar y pigyn cyntaf ar sianel P4 (petryal glas yn y ffigur blaenorol), gwelwn y canlynol:

Gwrthdroi a hacio gyriant HDD allanol hunan-amgryptio Aigo. Rhan 1: Dyrannu'n rhannau

Yma gallwch weld bod bron i 4ms o signal undonog ar P70, a oedd yn ymddangos i mi ar y dechrau yn chwarae rôl signal cloc. Fodd bynnag, ar ôl treulio peth amser yn gwirio fy nyfaliad, darganfyddais nad signal cloc yw hwn, ond ffrwd sain sy'n cael ei allbwn i'r trydarwr pan fydd yr allweddi'n cael eu pwyso. Felly, nid yw'r adran hon o'r signal ei hun yn cynnwys gwybodaeth ddefnyddiol i ni. Fodd bynnag, gellir ei ddefnyddio fel dangosydd i wybod pryd mae'r PSoC yn cofrestru gwasg allweddol.

Fodd bynnag, mae'r ffrwd sain P4 ddiweddaraf ychydig yn wahanol: dyma'r sain ar gyfer y "PIN annilys"!

Gan ddychwelyd i'r graff trawiad bysell, gan chwyddo i mewn ar y graff llif sain olaf (gweler y petryal glas eto), cawn:

Gwrthdroi a hacio gyriant HDD allanol hunan-amgryptio Aigo. Rhan 1: Dyrannu'n rhannau

Yma gwelwn signalau undonog ar P11. Felly mae'n edrych fel mai dyma'r signal cloc. Ac mae P13 yn ddata. Sylwch sut mae'r patrwm yn newid ar ôl i'r bîp ddod i ben. Byddai'n ddiddorol gweld beth sy'n digwydd yma.

Mae protocolau sy'n gweithio gyda dwy wifren fel arfer yn SPI neu I2C, ac mae'r fanyleb dechnegol ar Cypress yn nodi bod y pinnau hyn yn cyfateb i I2C, a welwn sy'n wir yn ein hachos ni:

Gwrthdroi a hacio gyriant HDD allanol hunan-amgryptio Aigo. Rhan 1: Dyrannu'n rhannau

Mae'r chipset USB-SATA yn pleidleisio'r PSoC yn gyson i ddarllen cyflwr yr allwedd, sef “0” yn ddiofyn. Yna, pan fyddwch chi'n pwyso'r allwedd "1", mae'n newid i "1". Mae'r trosglwyddiad terfynol yn syth ar ôl pwyso "~" yn wahanol os yw'r cod PIN anghywir yn cael ei nodi. Fodd bynnag, ar hyn o bryd nid wyf wedi gwirio’r hyn sy’n cael ei drosglwyddo yno mewn gwirionedd. Ond rwy'n amau ​​​​nad yw hyn yn debygol o fod yn allwedd amgryptio. Beth bynnag, gweler yr adran nesaf i ddeall sut yr wyf yn cael gwared ar y firmware mewnol PSoC.

Ffynhonnell: hab.com

Ychwanegu sylw