Преокретање и хаковање Аиго екстерног ХДД-а који се самошифрује. Део 1: Сецирање делова

Преокретање и хаковање екстерних самошифрујућих дискова је мој стари хоби. У прошлости сам имао прилику да вежбам са таквим моделима као што су Залман ВЕ-400, Залман ЗМ-СХЕ500, Залман ЗМ-ВЕ500. Недавно ми је колега донео још један експонат: Патриот (Аиго) СК8671, који је направљен по типичном дизајну – ЛЦД индикатор и тастатура за унос ПИН кода. Ето шта је из тога произашло…

1. Представљање
2. Архитектура хардвера
– 2.1. Главна плоча
– 2.2. ЛЦД индикаторска табла
– 2.3. Табла са тастатуром
– 2.4. Гледајући жице
3. Редослед корака напада
– 3.1. Узимање депоније података са СПИ флеш диска
– 3.2. Њушкање комуникација

Преокретање и хаковање Аиго екстерног ХДД-а који се самошифрује. Део 1: Сецирање делова


1. Представљање

Преокретање и хаковање Аиго екстерног ХДД-а који се самошифрује. Део 1: Сецирање делова
Корпус

Преокретање и хаковање Аиго екстерног ХДД-а који се самошифрује. Део 1: Сецирање делова
Паковање

Приступ подацима сачуваним на диску, који су наводно шифровани, врши се након уноса ПИН кода. Неколико уводних напомена о овом уређају:

  • Да бисте променили ПИН код, морате притиснути Ф1 пре откључавања;
  • ПИН код мора да садржи од 6 до 9 цифара;
  • Након 15 нетачних покушаја, диск се брише.

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

Прво, сецирамо уређај на делове да бисмо разумели од којих се компоненти састоји. Најзаморнији задатак је отварање кућишта: пуно микроскопских шрафова и пластике. Након отварања кућишта, видимо следеће (обратите пажњу на петопински конектор који сам залемио):

Преокретање и хаковање Аиго екстерног ХДД-а који се самошифрује. Део 1: Сецирање делова

2.1. Главна плоча

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

Преокретање и хаковање Аиго екстерног ХДД-а који се самошифрује. Део 1: Сецирање делова

Његови најзначајнији делови (погледајте од врха до дна):

  • конектор за ЛЦД индикатор (ЦН1);
  • високотонац (СП1);
  • Пм25ЛД010 (спецификација) СПИ флеш диск (У2);
  • Јмицрон ЈМС539 контролер (спецификација) за УСБ-САТА (У1);
  • УСБ 3 конектор (Ј1).

СПИ флеш диск чува фирмвер за ЈМС539 и нека подешавања.

2.2. ЛЦД индикаторска табла

На ЛЦД плочи нема ничег значајног.

Преокретање и хаковање Аиго екстерног ХДД-а који се самошифрује. Део 1: Сецирање делова
Преокретање и хаковање Аиго екстерног ХДД-а који се самошифрује. Део 1: Сецирање делова

само:

  • ЛЦД индикатор непознатог порекла (вероватно са постављеним кинеским фонтом); са секвенцијалном контролом;
  • Тракасти конектор за тастатуру.

2.3. Табла са тастатуром

Када се испитује тастатура, ствари добијају занимљивији обрт.

Преокретање и хаковање Аиго екстерног ХДД-а који се самошифрује. Део 1: Сецирање делова

Овде, на задњој страни, видимо риббон ​​конектор, као и Ципресс ЦИ8Ц21434 микроконтролер ПСоЦ 1 (у даљем тексту ћемо га једноставно звати ПСоЦ)

Преокретање и хаковање Аиго екстерног ХДД-а који се самошифрује. Део 1: Сецирање делова

ЦИ8Ц21434 користи М8Ц скуп инструкција (види документација). На [страници производа]( (http://www.cypress.com/part/cy8c21434-24ltxi) назначено је да подржава технологију ЦапСенсе (решење компаније Ципресс, за капацитивне тастатуре). Овде можете видети петопински конектор који сам залемио - ово је стандардни приступ за повезивање екстерног програматора преко ИССП интерфејса.

2.4. Гледајући жице

Хајде да схватимо шта је овде повезано. Да бисте то урадили, само тестирајте жице мултиметром:

Преокретање и хаковање Аиго екстерног ХДД-а који се самошифрује. Део 1: Сецирање делова

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

  • ПСоЦ је описан у техничкој спецификацији;
  • следећи конектор, онај са десне стране, је ИССП интерфејс, који вољом судбине одговара ономе што о њему пише на интернету;
  • Крајњи десни конектор је терминал за врпцу конектор на тастатури;
  • Црни правоугаоник је цртеж ЦН1 конектора, дизајниран да повеже главну плочу са ЛЦД плочом. П11, П13 и П4 су повезани на ПСоЦ пинове 11, 13 и 4, на ЛЦД плочи.

3. Редослед корака напада

Сада када знамо од којих компоненти се састоји овај драјв, морамо: 1) да се уверимо да је основна функционалност шифровања заиста присутна; 2) сазнати како се генеришу/чувају кључеви за шифровање; 3) пронађите где ће тачно ПИН код бити проверен.

Да бих то урадио, урадио сам следеће кораке:

  • преузео депонију података са СПИ флеш диска;
  • покушао да избаци податке са ПСоЦ флеш диска;
  • верификовано да комуникација између Ципресс ПСоЦ и ЈМС539 заправо садржи притиске на тастере;
  • Уверио сам се да се приликом промене лозинке ништа не преписује у СПИ флеш диск;
  • био превише лењ да поништи фирмвер 8051 са ЈМС539.

3.1. Узимање депоније података са СПИ флеш диска

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

  • повежите сонде на ноге флеш диска: ЦЛК, МОСИ, МИСО и (опционо) ЕН;
  • „њушити“ комуникацију са њушкачем помоћу логичког анализатора (користио сам Салеае Логиц Про 16);
  • декодирање СПИ протокола и извоз резултата у ЦСВ;
  • искористите децоде_спи.рбда рашчланите резултате и добијете дамп.

Имајте на уму да овај приступ посебно добро функционише у случају ЈМС539 контролера, пошто овај контролер учитава сав фирмвер са флеш диска у фази иницијализације.

$ 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

Узевши дамп са СПИ флеш диска, дошао сам до закључка да је његов једини задатак да чува фирмвер за ЈМицрон контролни уређај, који је уграђен у микроконтролер 8051. Нажалост, узимање думп-а СПИ флеш диска показало се бескорисним:

  • када се ПИН код промени, думп флеш диска остаје исти;
  • Након фазе иницијализације, уређај не приступа СПИ флеш диску.

3.2. Њушкање комуникација

Ово је један од начина да пронађете који чип је одговоран за проверу комуникације за време/садржај од интереса. Као што већ знамо, УСБ-САТА контролер је повезан са Ципресс ПСоЦ ЛЦД преко конектора ЦН1 и две траке. Због тога повезујемо сонде са три одговарајуће ноге:

  • П4, општи улаз/излаз;
  • П11, И2Ц СЦЛ;
  • П13, И2Ц СДА.

Преокретање и хаковање Аиго екстерног ХДД-а који се самошифрује. Део 1: Сецирање делова

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

Преокретање и хаковање Аиго екстерног ХДД-а који се самошифрује. Део 1: Сецирање делова

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

  • постоји неколико кратких рафала на каналу П4;
  • на П11 и П13 - скоро континуирана размена података.

Увећавајући први шиљак на каналу П4 (плави правоугаоник на претходној слици), видимо следеће:

Преокретање и хаковање Аиго екстерног ХДД-а који се самошифрује. Део 1: Сецирање делова

Овде можете видети да на П4 постоји скоро 70мс монотоног сигнала, што ми се у почетку чинило да игра улогу тактног сигнала. Међутим, након што сам провео неко време проверавајући своју претпоставку, открио сам да ово није сигнал сата, већ аудио ток који се емитује на високотонац када се притисну тастери. Дакле, овај одељак самог сигнала не садржи корисне информације за нас. Међутим, може се користити као индикатор да се зна када ПСоЦ региструје притисак на тастер.

Међутим, најновији П4 аудио стреам је мало другачији: то је звук за „неважећи ПИН“!

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

Преокретање и хаковање Аиго екстерног ХДД-а који се самошифрује. Део 1: Сецирање делова

Овде видимо монотоне сигнале на П11. Дакле, изгледа да је ово сигнал сата. А П13 је податак. Обратите пажњу на то како се образац мења након завршетка звучног сигнала. Било би занимљиво видети шта се овде дешава.

Протоколи који раде са две жице су обично СПИ или И2Ц, а техничка спецификација на Ципресс-у наводи да ови пинови одговарају И2Ц, што видимо да је тачно у нашем случају:

Преокретање и хаковање Аиго екстерног ХДД-а који се самошифрује. Део 1: Сецирање делова

УСБ-САТА чипсет стално испитује ПСоЦ да би прочитао стање кључа, које је подразумевано „0“. Затим, када притиснете тастер "1", мења се у "1". Коначни пренос одмах након притиска на „~” је другачији ако се унесе погрешан ПИН код. Међутим, тренутно нисам проверио шта се заправо тамо преноси. Али сумњам да је мало вероватно да је ово кључ за шифровање. У сваком случају, погледајте следећи одељак да бисте разумели како сам уклонио ПСоЦ интерни фирмвер.

Извор: ввв.хабр.цом

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