Превртување наназад и хакирање на Aigo само-шифрирачки надворешен HDD-диск. Дел 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. Земање депонија на податоци од SPI флеш-уред
– 3.2. Шмркање комуникации

Превртување наназад и хакирање на Aigo само-шифрирачки надворешен HDD-диск. Дел 1: Дисекција на делови


1. Вовед

Превртување наназад и хакирање на Aigo само-шифрирачки надворешен HDD-диск. Дел 1: Дисекција на делови
Домување

Превртување наназад и хакирање на Aigo само-шифрирачки надворешен HDD-диск. Дел 1: Дисекција на делови
Пакување

Пристапот до податоците зачувани на дискот, кои наводно се шифрирани, се врши по внесување на PIN-кодот. Неколку воведни белешки за овој уред:

  • За да го промените PIN-кодот, мора да притиснете F1 пред да го отклучите;
  • ПИН-кодот мора да содржи од 6 до 9 цифри;
  • По 15 погрешни обиди, дискот се брише.

2. Хардверска архитектура

Прво, го сецираме уредот на делови за да разбереме од кои компоненти се состои. Најдосадна задача е отворањето на куќиштето: многу микроскопски завртки и пластика. Откако го отворивме случајот, го гледаме следново (обрнете внимание на конекторот со пет пинови што го залемив):

Превртување наназад и хакирање на Aigo само-шифрирачки надворешен HDD-диск. Дел 1: Дисекција на делови

2.1. Главна табла

Главната табла е прилично едноставна:

Превртување наназад и хакирање на Aigo само-шифрирачки надворешен HDD-диск. Дел 1: Дисекција на делови

Неговите најзабележителни делови (видете од врвот до дното):

  • конектор за LCD индикатор (CN1);
  • високотонец (SP1);
  • Pm25LD010 (спецификација) SPI флеш-уред (U2);
  • Jmicron JMS539 контролер (спецификација) за USB-SATA (U1);
  • USB 3 конектор (J1).

Флеш-уредот SPI го складира фирмверот за JMS539 и некои поставки.

2.2. LCD индикаторска табла

Нема ништо извонредно на LCD-таблата.

Превртување наназад и хакирање на Aigo само-шифрирачки надворешен HDD-диск. Дел 1: Дисекција на делови
Превртување наназад и хакирање на Aigo само-шифрирачки надворешен HDD-диск. Дел 1: Дисекција на делови

Само:

  • LCD индикатор од непознато потекло (најверојатно со кинески фонтови); со секвенцијална контрола;
  • Приклучок за лента за тастатура.

2.3. Табла за тастатура

При испитување на таблата со тастатура, работите добиваат поинтересен тек.

Превртување наназад и хакирање на Aigo само-шифрирачки надворешен HDD-диск. Дел 1: Дисекција на делови

Овде, на задната страна, гледаме конектор со лента, како и микроконтролер Cypress CY8C21434 PSoC 1 (во натамошниот текст ние едноставно ќе го нарекуваме PSoC)

Превртување наназад и хакирање на Aigo само-шифрирачки надворешен HDD-диск. Дел 1: Дисекција на делови

CY8C21434 го користи множеството инструкции M8C (види документација). На [страница на производот]( (http://www.cypress.com/part/cy8c21434-24ltxi) се означува дека ја поддржува технологијата CapSense (решение од Cypress, за капацитивни тастатури). Овде можете да го видите пет-пинскиот конектор што го залемив - ова е стандарден пристап за поврзување надворешен програмер преку интерфејсот ISSP.

2.4. Гледајќи ги жиците

Ајде да откриеме што е поврзано овде. За да го направите ова, само тестирајте ги жиците со мултиметар:

Превртување наназад и хакирање на Aigo само-шифрирачки надворешен HDD-диск. Дел 1: Дисекција на делови

Објаснувања за овој дијаграм нацртан на коленото:

  • PSoC е опишан во техничката спецификација;
  • следниот конектор, оној десно, е интерфејсот ISSP, кој, по волја на судбината, одговара на она што е напишано за него на Интернет;
  • Најдесниот конектор е терминалот за приклучокот за лента со таблата на тастатурата;
  • Црниот правоаголник е цртеж на конекторот CN1, дизајниран да ја поврзе главната плоча со LCD плочата. P11, P13 и P4 се поврзани со PSoC пиновите 11, 13 и 4, на LCD-таблата.

3. Редоследот на чекорите за напад

Сега кога знаеме од кои компоненти се состои овој диск, треба: 1) да се увериме дека основната функционалност за шифрирање е навистина присутна; 2) дознајте како се генерираат/зачувуваат клучевите за шифрирање; 3) најдете каде точно ќе се провери PIN-кодот.

За да го направам ова, ги направив следните чекори:

  • зеде депонија на податоци од SPI флеш-уред;
  • се обиде да исфрли податоци од флеш драјв PSoC;
  • потврди дека комуникацијата помеѓу Cypress PSoC и JMS539 всушност содржи притискање на копчињата;
  • Се уверив дека при промена на лозинката, ништо не е препишано во флеш-уредот SPI;
  • беше премногу мрзлив да го промени фирмверот 8051 од JMS539.

3.1. Земање депонија на податоци од SPI флеш-уред

Оваа постапка е многу едноставна:

  • поврзете сонди со нозете на флеш-уредот: CLK, MOSI, MISO и (опционално) EN;
  • „шмркаат“ комуникации со трагач со помош на логички анализатор (јас користев Saleae Logic Pro 16);
  • декодирај SPI протокол и извезувај резултати во CSV;
  • искористете ја предноста decode_spi.rbда ги анализирате резултатите и да добиете депонија.

Забележете дека овој пристап особено добро функционира во случајот со контролерот JMS539, бидејќи овој контролер го вчитува целиот фирмвер од флеш-уредот во фазата на иницијализација.

$ 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

Откако зедов депонија од флеш-уредот SPI, дојдов до заклучок дека неговата единствена задача е да го складира фирмверот за контролниот уред JMicron, кој е вграден во микроконтролерот 8051. За жал, земањето ѓубре на флеш-уредот SPI се покажа како бескорисно:

  • кога се менува PIN-кодот, депонијата на флеш-уредот останува иста;
  • По фазата на иницијализација, уредот не пристапува до флеш-уредот SPI.

3.2. Шмркање комуникации

Ова е еден начин да се најде кој чип е одговорен за проверка на комуникациите за времето/содржината од интерес. Како што веќе знаеме, USB-SATA контролерот е поврзан со Cypress PSoC LCD преку конектор CN1 и две ленти. Затоа, ги поврзуваме сондите со трите соодветни крака:

  • P4, општ влез/излез;
  • P11, I2C SCL;
  • P13, I2C SDA.

Превртување наназад и хакирање на Aigo само-шифрирачки надворешен HDD-диск. Дел 1: Дисекција на делови

Потоа го стартуваме логичкиот анализатор Saleae и внесуваме на тастатурата: „123456~“. Како резултат на тоа, го гледаме следниот дијаграм.

Превртување наназад и хакирање на Aigo само-шифрирачки надворешен HDD-диск. Дел 1: Дисекција на делови

На него можеме да видиме три канали за размена на податоци:

  • има неколку кратки рафали на каналот P4;
  • на P11 и P13 - речиси континуирана размена на податоци.

Зумирање на првиот скок на каналот P4 (синиот правоаголник на претходната слика), го гледаме следново:

Превртување наназад и хакирање на Aigo само-шифрирачки надворешен HDD-диск. Дел 1: Дисекција на делови

Овде можете да видите дека на P4 има скоро 70ms монотон сигнал, што на почетокот ми се чинеше дека игра улога на сигнал на часовникот. Меѓутоа, откако поминав извесно време проверувајќи ја мојата претпоставка, открив дека ова не е сигнал на часовникот, туку аудио пренос што се емитува на високотонецот кога ќе се притиснат копчињата. Затоа, овој дел од самиот сигнал не содржи корисни информации за нас. Сепак, може да се користи како индикатор за да се знае кога PSoC регистрира притискање на копче.

Сепак, најновиот аудио пренос на P4 е малку поинаков: тоа е аудио за „неважечкиот ПИН“!

Враќајќи се на графикот со притискање на тастатурата, зумирајќи го последниот графикон за аудио пренос (повторно видете го синиот правоаголник), добиваме:

Превртување наназад и хакирање на Aigo само-шифрирачки надворешен HDD-диск. Дел 1: Дисекција на делови

Овде гледаме монотони сигнали на P11. Значи, изгледа ова е сигналот на часовникот. И P13 е податок. Забележете како се менува шемата по завршувањето на звучниот сигнал. Би било интересно да се види што се случува овде.

Протоколите што работат со две жици се обично SPI или I2C, а техничката спецификација на Cypress наведува дека овие пинови одговараат на I2C, што гледаме дека е точно во нашиот случај:

Превртување наназад и хакирање на Aigo само-шифрирачки надворешен HDD-диск. Дел 1: Дисекција на делови

Чипсетот USB-SATA постојано го испитува PSoC за да ја прочита состојбата на клучот, кој стандардно е „0“. Потоа, кога ќе го притиснете копчето „1“, се менува во „1“. Конечниот пренос веднаш по притискање на „~“ е различен доколку се внесе погрешен ПИН-код. Меѓутоа, во моментов не сум проверил што всушност се пренесува таму. Но, се сомневам дека ова е малку веројатно да биде клуч за шифрирање. Како и да е, видете го следниот дел за да разберете како го отстранив внатрешниот фирмвер PSoC.

Извор: www.habr.com

Додадете коментар