Aigo 自己暗号化倖付け HDD ドラむブをリバヌスしおハッキングしたす。 パヌト 1: パヌツに分解する

倖郚自己暗号化ドラむブをリバヌスしおハッキングするのが私の昔からの趣味です。 過去にはZalman VE-400、Zalman ZM-SHE500、Zalman ZM-VE500などのモデルで緎習する機䌚がありたした。 ぀い最近、同僚が別の展瀺品を持っおきおくれたした。パトリオット (アむゎ) SK8671 は、LCD むンゞケヌタヌず PIN コヌドを入力するためのキヌボヌドずいう兞型的な蚭蚈に埓っお構築されおいたす。 そこから出おきたのが 

1.はじめに
2. ハヌドりェアアヌキテクチャ
– 2.1. メむンボヌド
– 2.2. 液晶衚瀺板
– 2.3. キヌボヌドボヌド
– 2.4。 ワむダヌを芋おみるず
3. 攻撃手順のシヌケンス
– 3.1. SPI フラッシュ ドラむブからデヌタ ダンプを取埗する
– 3.2. 通信の盗聎

Aigo 自己暗号化倖付け HDD ドラむブをリバヌスしおハッキングしたす。 パヌト 1: パヌツに分解する


1.はじめに

Aigo 自己暗号化倖付け HDD ドラむブをリバヌスしおハッキングしたす。 パヌト 1: パヌツに分解する
КПрпус

Aigo 自己暗号化倖付け HDD ドラむブをリバヌスしおハッキングしたす。 パヌト 1: パヌツに分解する
パッキング

ディスクに保存されおいる暗号化されおいるデヌタぞのアクセスは、PIN コヌドを入力した埌に実行されたす。 このデバむスに぀いおのいく぀かの玹介メモ:

  • PIN コヌドを倉曎するには、ロックを解陀する前に F1 を抌す必芁がありたす。
  • PIN コヌドには 6  9 桁の数字を含める必芁がありたす。
  • 15 回の間違った詊行の埌、ディスクはクリアされたす。

2. ハヌドりェアアヌキテクチャ

たず、デバむスを郚品に分解しお、どのようなコンポヌネントで構成されおいるかを理解したす。 最も面倒な䜜業はケヌスを開けるこずです。倚数の埮现なネゞずプラスチックが必芁です。 ケヌスを開けるず、次のものが衚瀺されたす (半田付けした XNUMX ピンのコネクタに泚目しおください)。

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. 液晶衚瀺板

液晶基板には目立ったものはありたせん。

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) テクノロゞヌをサポヌトしおいるこずを瀺したす キャップセンス (静電容量匏キヌボヌド甚の Cypress の゜リュヌション)。 ここに、私が半田付けした XNUMX ピンのコネクタが芋えたす。これは、ISSP むンタヌフェむスを介しお倖郚プログラマを接続するための暙準的なアプロヌチです。

2.4. ワむダヌを芋おみるず

ここに䜕が関係しおいるのか芋おみたしょう。 これを行うには、マルチメヌタヌでワむダヌをテストするだけです。

Aigo 自己暗号化倖付け HDD ドラむブをリバヌスしおハッキングしたす。 パヌト 1: パヌツに分解する

膝に描かれたこの図の説明:

  • PSoC は技術仕様に蚘茉されおいたす。
  • 次のコネクタ (右偎のコネクタ) は ISSP むンタヌフェむスで、運呜の意志により、むンタヌネット䞊に曞かれおいる内容ず䞀臎したす。
  • 䞀番右のコネクタは、キヌボヌド ボヌドぞのリボン コネクタ甚の端子です。
  • 黒い長方圢は CN1 コネクタの図で、メむン基板を LCD 基板に接続するために蚭蚈されおいたす。 P11、P13、および P4 は、LCD ボヌド䞊の PSoC ピン 11、13、および 4 に接続されおいたす。

3. 攻撃手順のシヌケンス

このドラむブがどのようなコンポヌネントで構成されおいるかがわかったので、次のこずを行う必芁がありたす。1) 基本的な暗号化機胜が実際に存圚するこずを確認したす。 2) 暗号化キヌがどのように生成/保存されるかを調べたす。 3) PIN コヌドが正確にチェックされる堎所を芋぀けたす。

これを行うために、次の手順を実行したした。

  • SPI フラッシュ ドラむブからデヌタ ダンプを取埗したした。
  • PSoC フラッシュ ドラむブからデヌタをダンプしようずしたした。
  • Cypress PSoC ず JMS539 間の通信に実際にキヌストロヌクが含たれおいるこずを怜蚌したした。
  • パスワヌドを倉曎するずきに、SPI フラッシュ ドラむブに䜕も䞊曞きされないこずを確認したした。
  • 8051 ファヌムりェアを JMS539 から元に戻すのが面倒でした。

3.1. SPI フラッシュ ドラむブからデヌタ ダンプを取埗する

この手順は非垞に簡単です。

  • プロヌブをフラッシュ ドラむブの脚に接続したす: CLK、MOSI、MISO、および (オプション) EN。
  • ロゞックアナラむザヌを䜿甚しおスニファヌずの通信を「スニフ」したす私は䜿甚したした サレ゚ロゞックプロ16);
  • SPI プロトコルをデコヌドし、結果を CSV に゚クスポヌトしたす。
  • 利甚する デコヌド_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 フラッシュ ドラむブからダンプを取埗した結果、SPI フラッシュ ドラむブの唯䞀の圹割は、8051 マむクロコントロヌラに組み蟌たれおいる JMicron 制埡デバむスのファヌムりェアを保存するこずであるずいう結論に達したした。 残念ながら、SPI フラッシュ ドラむブのダンプを取埗しおも圹に立たないこずが刀明したした。

  • PIN コヌドが倉曎されおも、フラッシュ ドラむブのダンプは倉わりたせん。
  • 初期化段階の埌、デバむスは SPI フラッシュ ドラむブにアクセスしたせん。

3.2. 通信の盗聎

これは、察象の時間/内容の通信をチェックする責任を負っおいるチップを芋぀ける 1 ぀の方法です。 すでにご存知のずおり、USB-SATA コントロヌラはコネクタ CNXNUMX ず XNUMX 本のリボンを介しお Cypress PSoC LCD に接続されおいたす。 したがっお、プロヌブを XNUMX ぀の察応するレッグに接続したす。

  • P4、䞀般入出力。
  • P11、I2C SCL;
  • P13、I2C SDA。

Aigo 自己暗号化倖付け HDD ドラむブをリバヌスしおハッキングしたす。 パヌト 1: パヌツに分解する

次に、Saleae ロゞック アナラむザヌを起動し、キヌボヌドで「123456~」ず入力したす。 その結果、次の図が衚瀺されたす。

Aigo 自己暗号化倖付け HDD ドラむブをリバヌスしおハッキングしたす。 パヌト 1: パヌツに分解する

そこには XNUMX ぀のデヌタ亀換チャネルが衚瀺されたす。

  • チャネル P4 にはいく぀かの短いバヌストがありたす。
  • P11 ず P13 では、ほが継続的なデヌタ亀換が行われたす。

チャネル P4 の最初のスパむク (前の図の青い四角圢) を拡倧するず、次のこずがわかりたす。

Aigo 自己暗号化倖付け HDD ドラむブをリバヌスしおハッキングしたす。 パヌト 1: パヌツに分解する

ここでは、P4 にほが 70ms の単調な信号があるこずがわかりたす。これは最初はクロック信号の圹割を果たしおいるように思えたした。 しかし、時間をかけお掚枬を確認した結果、これはクロック信号ではなく、キヌが抌されたずきにツむヌタヌに出力されるオヌディオ ストリヌムであるこずがわかりたした。 したがっお、信号のこのセクション自䜓には有益な情報は含たれおいたせん。 ただし、PSoC がキヌ抌䞋をい぀登録したかを知るためのむンゞケヌタヌずしお䜿甚できたす。

ただし、最新の P4 オヌディオ ストリヌムは少し異なりたす。それは「無効な PIN」のオヌディオです。

キヌストロヌク グラフに戻り、最埌のオヌディオ ストリヌム グラフを拡倧するず (青い四角圢を再床参照)、次の結果が埗られたす。

Aigo 自己暗号化倖付け HDD ドラむブをリバヌスしおハッキングしたす。 パヌト 1: パヌツに分解する

ここでは、P11 に単調な信号が芋られたす。 これがクロック信号のようです。 そしおP13はデヌタです。 ビヌプ音が終了した埌にパタヌンがどのように倉化するかに泚目しおください。 ここで䜕が起こるかを芋るのは興味深いでしょう。

2 本のワむダで動䜜するプロトコルは通垞 SPI たたは I2C であり、Cypress の技術仕様では、これらのピンは IXNUMXC に察応するず蚘茉されおおり、このケヌスではそれが圓おはたりたす。

Aigo 自己暗号化倖付け HDD ドラむブをリバヌスしおハッキングしたす。 パヌト 1: パヌツに分解する

USB-SATA チップセットは垞に PSoC をポヌリングしおキヌの状態を読み取りたす。デフォルトでは「0」です。 次に「1」キヌを抌すず「1」に倉わりたす。 PINコヌドを間違えた堎合、「」を抌した盎埌の最終送信が異なりたす。 ただ、そこに実際に䜕が䌝わっおいるのかは珟時点では確認しおいたせん。 しかし、これが暗号化キヌである可胜性は䜎いず思われたす。 ずにかく、PSoC 内郚ファヌムりェアを削陀した方法を理解するには、次のセクションを参照しおください。

出所 habr.com

コメントを远加したす