トップページへ
| HOME | 質問掲示板 | 壁紙掲示板 | 用語集 | FAQ | リンク集 | うpろだ |

スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | トラックバック(-) | コメント(-)

なぜ TA-088 v3 基板は"まだ"ハックできないのか 


Dark-alex.org のフォーラムで 「なぜ TA-088 v3 基板は"まだ"ハックできないのか」について Dark_AleX 氏が言及されています。

その内容を以下に適当に意訳しました。
尚、難解な単語については文末に注釈を加えてあります。




Why TA88v3 cannot be hacked "yet"

   なぜ TA-088 v3 基板は"まだ"ハックできないのか



これは、TA-088 v3 基板で加えられ、PSP-3000 でも適応されるであろうセキュリティについての解説です。


PSP を起動する時、ブートコード ( 別名、Pre-IPL ないし IPL Loader ) は、IPL を NAND または メモリースティック から読み込みます。

その IPL は 0x1000 バイトごとのブロックに分割されています。


各ブロックの初めの 0xA0 バイトは KIRK ハードウェアコマンド 1 のためのヘッダーとなっています。
それはキー、暗号データのサイズ、2 つのハッシュを含んでいます。1 つは一部のヘッダー、もう 1 つはプログラム本体です。

残りの 0xF60 バイトは暗号化されたプログラム本体です。
これは、そのハッシュが KIRK ハードウェアによってチェックされます。これを通過すれば、復号化されます。復号化したときのサイズも同様に 0xF60 バイトであると考えられます。


TA-088 v3 以前の基板ではこの暗号化されたプログラム部分が 0xF60 バイトより小さかった場合、残りの部分は無視されていました。
そのため、タイミング攻撃によって、KIRK ハッシュのセキュリティを破壊して、IPL のプロテクトを解除することが可能でした。


では、SONY はこれにどのような修正を加えたのでしょうか?


その答えは FW4.00 で単純化された IPL にあります。

IPL の各ブロック ( オフセット値 0xFE0 ) の最後に 0x20 バイトを残すために、暗号化されたデータ本体のサイズを 0xF40 バイトに減らしました。

前述のように、TA-088 v3 以前の基板の Pre IPL では残りの部分は無視されるので、タイミング攻撃によって IPL のプロテクトを解除することができましたが、最新の Pre IPL は、この残りの 0x20 バイトに意味を持たせているのです。


最初の 0x10 バイトは、復号化されたブロックから計算されたハッシュですが、内容が不明です。

FW4.01 と 4.05 でこの 0x10 バイトに関して比較すると、復号化された形では多くの共通したブロックを持ちますが、暗号化された形ではまったく異なることがわかりました。

それ故に、最初の 0x10 バイトは、複合化されたブロックから計算されたハッシュであり、暗号化されたブロックのハッシュではないという推測になりました。

図のように、これらの IPL ブロックのハッシュは同じです。



次の 0x10 バイトは復号化されたプログラム本体に依存しているように見えます。( 最初の 0x10 バイトもおそらくそうでしょう。)
図から、このブロックは FW4.01 と 4.05 で内容が異なることがわかります。しかし、この内容は入れ替えることが出来ます。

実際に 0x10 バイトの内容を 4.05 の IPL から 4.01 の IPL に移植してみると、まだ起動しました。しかし、IPL のプロテクトを無効化することはできません。


このプロテクトのため、新しい CPU を搭載した PSP では、4.00 以前の FW の IPL では起動することが出来ません。故に、4.00 以前の FW にダウングレードするという可能性も絶たれました。


<要約>
基本的に、新しい CPU を搭載した PSP のセキュリティは、この 0x20 バイトの計算の秘密に依存していると考えられます。もし、どうにかして Pre IPL をダンプ出来れば、このセキュリティを破ることが出来るかもしれません。



【図解】
拡大



*1 IPL

Initial Program Load の略。PSP を起動する時に一番最初に起動するプログラムで、NAND から OS ( FW ) を読み込んでメモリに展開し、復号化して、起動する役目を果たす。
IPL はそれ自体も暗号化されているため、KIRK エンジンによって復号化され、読み込まれる。
通常は、NAND に格納されている IPL を読み込むことによって起動するのだが、CFW の場合は、サイドチャネル攻撃によってこれを無効化してオリジナルの IPL を読み込む。


*2 復号化

暗号化されたプログラムやデータを平文にもどす処理のこと。


*3 KIRK

PRX / EBOOT を復号化するための主要なエンジン。


*4 ハッシュ

プログラミング言語における連想配列のことで、キーとそれに対応した値の対が集まったデータ構造のこと。


*5 タイミング攻撃

サイド・チャネル攻撃の一種。暗号化処理もしくは復号処理を実行するのに必要な時間を測定することで、用いられた鍵を推測する攻撃方法。


*6 オフセット値

あるデータの位置を基準点からの差 ( 距離 ) で表した値。





現状ではセキュリティの打破は難しいようです。しかし、Pre IPL をダンプできれば、解決の糸口を掴めそうです。今後の動向に注目ですね。

[ 2008/10/05 22:37 ] ニュース | TB(0) | CM(5)
むずいけどこういうことが出来れば楽しくハッキングできそうですねwwしないけど
[ 2008/11/23 19:37 ] [ 編集 ]
psp3000も改造できるようになったら、3000かおうかな・・・。今使っているのは1000だから、新しいのがほしくて。だから、ハッカーさんにはがんばってほしいですね。
[ 2008/11/29 10:41 ] [ 編集 ]
とても分かりやすい解説、素晴らしいです。
とても勉強になりました。

そう簡単にはPSP-3000はハックできないということですね^^;
しかし、ALEX氏や他のハッカーの方たちも頑張っていますし、プログラムにセキュリティホールは付き物ですからね。
これからの活躍に期待です。

記事には関係ありませんが、DSi用のマジコンも出たようですね。任天堂さんには大打撃でしょうね~。

では、これからも更新頑張ってください。
[ 2008/12/03 20:00 ] [ 編集 ]
記事を参考にさせてもらっていいですか??
[ 2009/01/04 17:51 ] [ 編集 ]
一応セキュリティホールは見つかってるんですけどねぇ
[ 2009/04/06 10:57 ] [ 編集 ]
コメントの投稿













管理者にだけ表示を許可する
About
必ずお読みください

ようこそ。
当ブログでは、PSP を有効に活用するための方法を紹介しています。
"わかりやすく簡単である" をモットーに運営しています。


■プロフィール
【管理人】take
【職業】学生
【所有PSP】
・PSP-1000 TA-079
・PSP-1000 TA-080
・PSP-1000 TA-086
・PSP-2000 TA-085
・PSP-3000 FW 4.20
・PSP-3000 FW 5.03
【所有PC】
・Windows vista


■ブログランキングについて
当サイトはブログランキングに参加しています。
記事が参考になりましたら、一切費用はかかりませんので、バナーをクリックしていただけるとありがたいです。記事の更新意欲と質に反映させます。

■リンクについて
当サイトはリンクフリーです。相互リンクの申請はこちらからお願いします。

■コメントについて
・質問する場合は、環境や行ったことの詳細を明記してください。
・最低限のマナーを守って書き込んでください。
・荒らし、広告、その他不快な内容を書き込まれた場合は削除・制限の対象とします。

■トラッシュバックについて
・トラックバックは無制限ですが、広告目的などの場合は削除・制限の対象とします。

■転載について
無断転載は原則禁止とします。
記事のリンクを貼ることは構いませんが、 リンクした記事の内容に間違いが含まれていたとしても責任は取れません。

■免除事項
ソニー・コンピュータエンタテインメント(株)が推奨する使用法ではありません。
当サイトに記載されている事を実行し、どんな不利益が生じようとも、一切の責任を負いません。

■備考
閲覧に使用するブラウザは Internet Exploer6.0 以上を推奨します。
その他
カスタマイズ

チート関連

ダウングレード
PC 関連
PC 初心者向け解説

Tools


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。