TOP > スポンサー広告 > PS3用CFW:4.00のJailbreakツール「4.00 HEN」についてKaKaRoTo氏が語るTOP > CFW (PS3) > PS3用CFW:4.00のJailbreakツール「4.00 HEN」についてKaKaRoTo氏が語る

スポンサーサイト

この記事をクリップ! このエントリーをはてなブックマークに追加
Google+
web拍手 by FC2 Clip to Evernote

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

この記事をクリップ! このエントリーをはてなブックマークに追加
Google+
web拍手 by FC2 Clip to Evernote
[ --/--/-- --:-- ] スポンサー広告 | TB(-) | CM(-)

PS3用CFW:4.00のJailbreakツール「4.00 HEN」についてKaKaRoTo氏が語る

この記事をクリップ! このエントリーをはてなブックマークに追加
Google+
web拍手 by FC2 Clip to Evernote

ps3-cfw-icon.png

PS3のCFW開発者のKaKaRoTo氏が自身のブログで、CFW 4.00について
"4.00 HEN"と名付け、その開発状況についてを語っていました。

はたして、4.00 HENの開発はどうなっているのか。

詳細は以下より。

PS3 4.00 HENの現状報告

とりあえずPS3の4.00 HEN (Homebrew ENabler)の現状報告をします。

2ヶ月程前にも説明しましたが、あれからかなり進展がありました。
のんびりやっていた訳ではなく10人程のグループで開発していましたし、
この2ヶ月時には一日15時間もPS3の最新ファームウェア4.00で
Homebrewを復活させるために頑張ってきました。

HENには3つの主要パーツがあります。

まず第一にPS3にパッケージをインストールする部分ですが、これは既に終わりました。
テストもデバッグも完了です。

第二にアプリを起動させる部分ですが、ひとつ大きな問題が残っています。

そして最後の3つ目は今はまだ言えません(サプライズ用です)。
それも60%から70%は終わっています。

(期待されても困るのでお伝えしますが、peke&pokeとは無関係で
バックアップマネージャーなどにも無関係です。
今回のHENは違法コピーとは無縁のPS3合法ソリューションです。)

この2ヶ月間アプリケーションを起動させることにチャレンジしてきました。
もともとMathieulh氏がアプリを起動させるために必要な
”NPDRMハッシュアルゴリズム”
を提供してくれるものと期待していましたが、彼はそれを渋り、
最終的に提供を拒否しました。最初私はJailbreakを翌週にでも公開できると
踏んでいましたが、今でもまだ作業中です。

Mathieulh氏はいつもの通り”なぞなぞ”を出しておいて
「わかる奴には助けになるだろ」
的態度でしたね。

彼は問題の解決には3.56のappldrを探してみることだと言っていましたが、
lv1がハッシュチェックのベリファイだなんだかんだとなって、
結局1ヶ月以上付き合わされて頭がパンクしました。

その後自分達で1ヶ月かけてアセンブルコードを解読して
チェックにチェックを重ね、
我々が導き出した答えにはMathieulh氏が言っていたような
3.56ファームウェアにはハッシュアルゴリズムなんて全く存在していない、です。

彼はそれはAES OMACハッシュだ、と言っていました。
でもOMAC関数を使っているものを全部追っかけてた末にハッシュには
無関係だったことが分かりました。すると今度はこう言うのです。
「ああ、俺が言ってたのはHMACのことだよ。」
しょうがないから調べましたが結論は同じでした。
もうappldrには存在しないと確信したのですがそこで
彼が言ったのは
「あ、ごめん。lv1だった。」

そのあたりの話は彼とツイッターで横暴な態度の彼とやりあった後でしたが、
彼はちゃんと”シェアした”と言い張ってました。

ちなみに彼がシェアしたというコードは彼が自分で作ったものではありません。
あるファイルで彼はもともとの開発者の名前を削除するのを忘れて
そのままにしていたからです。

といってもそのファイルは全く使い道がなく、
詳細を記載した文書もなにもないゴミコードを読むのに1日費やしてしまいました。
ほとんどケンカ状態でしたがそれでもなお彼は”アドバイス”という名の
なぞなぞ合戦を仕掛けてくるのは何故なんでしょう。

邪魔された上に時間まで費やされたといっても過言ではありません!

色々ありましたが、もうMathieulh氏とは関わらないようにしようと決めました。
そこで自分達でexploitを探し3.60以上のファームウェアを復号して
そこからアルゴリズムを探そうということになったのです。

それから数週間経ち、ついに我々は”NPDRMハッシュアルゴリズム”に
欠けていた最後の1ピースを特定することができました。皆さんにもご説明します。

PS3のゲームは”SELF”ファイルというフォーマットの実行ファイル
(Windowsでいう.exeファイル)です。

この”SELF”ファイルはデジタル署名され暗号化されています。
PSNで販売されているゲーム(ブルーレイディスクから起動するゲームは別です)の
場合、”NPDRM”と呼ばれる追加セキュリティレイヤーを持っています。

”NPDRM SELF”となると暗号化と署名が加えられた実行ファイルになり、
何らかの追加情報を加えた上で更に暗号化されています。

3.55やそれ以前のファームウェアの場合にはユーザー自身で暗号化も署名も
まるでソニーのオリジナル”NPDRM SELF”と同じようにできました。
そのためPS3での起動になんら支障はありませんでした。

とはいっても完全にオリジナルと同一とまではいきませんでした。

本物のNPDRM SELFファイルはPS3が単に無視していただけの追加情報があったのです。
その情報はノーマークでしたのでまったく考慮に入れていませんでした。

3.60以降でPS3はその追加情報を有効にしたためソニーのNPDRM SELFファイルと
Homebrew起動のためのNPDRM SELFファイルが別物になってしまいました。

それこそが我々に必要だった”NPDRMハッシュアルゴリズム”で、
それが分かれば適切にその追加情報を複製することが可能になるからです。
追加情報を加えればNPDRM SELFファイルをPS3は再び本物だと認識して実行させてくれます。

もうひとつ、説明しておかなければならない重要な点は、
以前にも何度か言っていますがそのファイルが”署名されている”、
つまりPS3が確認することができる”ECDSA署名”されたファイルが
存在するということです。

ECDSA署名によりPS3はそのファイルがモディファイされたかどうかも
分かるようになっています。

署名を有効にするのは簡単ですが”秘密鍵”なしにそれを作成することは不可能です。

では3.55ではどうやって署名していたのでしょうか。

それはECDSA署名が複雑な方程式で導き出せるものだからです
(考えようとすると頭痛に襲われるため理解できていませんが、
皆さんに興味があるならそのうちブログで分かりやすく解説してみたいと思います)。

その方程式で重要なのは署名生成にランダムな数字を使うことなのですが、
ソニーはこともあろうか毎回同じ数字を使っていたのです。

そのため秘密鍵を見つけるのは非常に簡単でした。
秘密鍵が分かればあとは方程式計算で完全に本物と同じ署名を
偽造することができるようになります。

つまり、”署名ファイル”は通常は入手が不可能な”秘密鍵”がない限り
偽造不可能な”ECDSA署名”でデジタル署名されたファイルですが、
ソニーがきちんとやっていなかったので”秘密鍵”が分かってしまったということです。

さて、本題に戻りましょう。

必要だった”NPDRMハッシュアルゴリズム”に欠けていたものは?”

NPDRM SELF”には第2の署名が必要であることがわかりました。
つまりNPDRMレイヤーという追加セキュリティレイヤーで
”暗号化され署名されたSELFファイル”
が再暗号化され再署名されているということです。

その第2署名はPS3のファームウェア3.55までは確認されていませんでしたが、
3.60から確認されるようになったのです。

もうひとつ重要なことは、ソニーは二度と署名に関して同じミスは
犯さないということです。

ソニーは必ず常にランダムな数字を使うようになったため、
秘密鍵を見つけることは技術的に不可能となりました。
もっと正確に言うとPS3に.pkgをインストールするためにはファームウェアに
パッチが必要(要はCFW化ということです)で、.pkgファイルがインストールされると
いうことは.pkgファイルがECDSA署名されているということになりますが、
その署名に必要な秘密鍵は誰にも分からないということです。
我々が”疑似リテールパッケージ”や”非署名パッケージ”
と呼ぶのはそういった理由からです。

NPDRM SELFファイルの署名はECDSAそのものとPS3の.pkgファイルに
使われていたものと同じ鍵が使われているため、利用している秘密鍵は
誰にも(というか、永遠に)分かりません。どういうことかと言うと、
最後の1ピースを見つけてNPDRM SELFのビルド方法が分かったとしても
単純に複製しても使えないということです。

最初にJailbreakを発表してから2ヶ月も費やしたのはMathieulh氏が
できると言っていた嘘に振り回されていたせいです。

4.00が公開された時に”4.00でも有効だった”と言ったのを覚えていますか?
その時彼は”NPDRMハッシュアルゴリズム”も有効だったよと言っていましたか?

そう、彼は何も確認していないのです。それが単なる嘘だったからで、
そもそも秘密鍵なんて持っていないから確認のしようがないのです。

彼の発言を並べれば、いかに嘘の上塗りを続けていたのかが分かります。
Mathieulh氏は我々が確認できないような範囲で嘘をついたりできるような賢さは
持ち合わせていなかったということです。彼は嘘つきですから
もう誰にも信用されないでしょう。

それはさておき、4.00HENの話に戻りましょう。

次の一手は?署名ができないことははっきりしました。
そのため3.60以降でHomebrew起動はできません(3.56でなら可能ですが)ので
当然別の方法を探すことになります。

PS3で起動するファイルをインストールすることができるような新たなexploitが
必要です。
また同時に”署名コリジョン”の可能性も模索するべくコミュニティの
協力が必要になります。
ランダムな数字を2回使うようなことがあったとするなら
秘密鍵を計算できます。

もしそうなれば4.00HENリリースに向けて大きく前進するでしょう。

“Jialbreak”のリリース時期はいつになるのでしょうか。
もし分かっているのなら発表しますが、分からないというのが実情です。
昨年の段階で11月だ、12月だ、クリスマス前だ、年明けまでには…と
言っていましたが、ご存知の通り今ではいつになるかの予測すらできない状態です。

運が良ければ数日後にでもリリースできますがそうでなければ何ヶ月か
先になるかもしれません。皆さんがすべきこと、それは「焦らずしばし待つ」。
(予定日を教えてくれなんていう質問はしないでくださいね!)

私はチームのメンバーや協力してくれた皆さんに感謝しています。
我々は知識は等しくオープンにすべきだとの信念に基づき
情報を世界中に公開しています。

情報公開により将来ソニーにブロックされる可能性があると思われる方も
いるでしょうが、署名に使われている公開鍵を発見しましたので情報共有しても
問題ありません。

透明性と情報公開、自由が大切だと我々は信じています。皆さんにも協力をお願いします。

もしECDSA署名アルゴリズムについて興味があるなら
この資料に詳細が書いてあります。

Team Fail0verflowのCCCでのプレゼンテーションも見てみると良いでしょう。

初めてソニーの署名ミスについて言及されたのがそのプレゼンテーションです。
それが最終的にはカスタムファームウェアに繋がりました。

長文失礼いたしました。

KaKaRoTo
翻訳:大人のためのゲーム講座

こんなながい文章をかけるKaKaRoTo氏、そして、翻訳できるmamosuke氏は
すごいですね。(苦笑
この記事をクリップ! このエントリーをはてなブックマークに追加
Google+
web拍手 by FC2 Clip to Evernote
[ 2012/01/21 11:43 ] ソニー CFW (PS3) | TB(0) | CM(0)
コメントの投稿











管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL

検索フォーム

Gimp講座
●Gimp講座
導入編
ちょっと大きいタグクラウド


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