Xing-PCやゲーム.iPhoneなどの情報サイト。できるだけ素早い更新を心がけています。HEN"と名付け、その開発状況についてを語っていました。HENの開発はどうなっているのか。ENabler)の現状報告をします。2ヶ月程前にも説明しましたが、あれからかなり進展がありました。やっていた訳ではなく10人程のグループで開発していましたし、この2ヶ月時には一日15時間もPS3の最新ファームウェア4.00でHomebrewを復活させるために頑張ってきました。HENには3つの主要パーツがあります。第一にPS3にパッケージをインストールする部分ですが、これは既に終わりました。テストもデバッグも完了です。第二にアプリを起動させる部分ですが、ひとつ大きな問題が残っています。最後の3つ目は今はまだ言えません(サプライズ用です)。それも60%から70%は終わっています。(期待されても困るのでお伝えしますが、peke&pokeとは無関係でバックアップマネージャーなどにも無関係です。今回のHENは違法コピーとは無縁のPS3合法ソリューションです。)この2ヶ月間アプリケーションを起動させることにチャレンジしてきました。最終的に提供を拒否しました。最初私はJailbreakを翌週にでも公開できると踏んでいましたが、今でもまだ作業中です。結局1ヶ月以上付き合わされて頭がパンクしました。我々が導き出した答えにはMathieulh氏が言っていたような3.56ファームウェアにはハッシュアルゴリズムなんて全く存在していない、です。OMACハッシュだ、と言っていました。OMAC関数を使っているものを全部追っかけてた末にハッシュには無関係だったことが分かりました。すると今度はこう言うのです。「ああ、俺が言ってたのはHMACのことだよ。」しょうがないから調べましたが結論は同じでした。appldrには存在しないと確信したのですがそこで彼が言ったのは「あ、ごめん。彼はちゃんと”シェアした”と言い張ってました。ちなみに彼がシェアしたというコードは彼が自分で作ったものではありません。あるファイルで彼はもともとの開発者の名前を削除するのを忘れてそのままにしていたからです。詳細を記載した文書もなにもないゴミコードを読むのに1日費やしてしまいました。ほとんどケンカ状態でしたがそれでもなお彼は”アドバイス”という名のなぞなぞ合戦を仕掛けてくるのは何故なんでしょう。邪魔された上に時間まで費やされたといっても過言ではありません!色々ありましたが、もうMathieulh氏とは関わらないようにしようと決めました。そこで自分達でexploitを探し3.60以上のファームウェアを復号してそこからアルゴリズムを探そうということになったのです。それから数週間経ち、ついに我々は”NPDRMハッシュアルゴリズム”に欠けていた最後の1ピースを特定することができました。皆さんにもご説明します。PS3のゲームは”SELF”ファイルというフォーマットの実行ファイル(Windowsでいう.exeファイル)です。この”SELF”ファイルはデジタル署名され暗号化されています。PSNで販売されているゲーム(ブルーレイディスクから起動するゲームは別です)の場合、”NPDRM”と呼ばれる追加セキュリティレイヤーを持っています。何らかの追加情報を加えた上で更に暗号化されています。SELF”と同じようにできました。そのためPS3での起動になんら支障はありませんでした。いっても完全にオリジナルと同一とまではいきませんでした。SELFファイルはPS3が単に無視していただけの追加情報があったのです。その情報はノーマークでしたのでまったく考慮に入れていませんでした。SELFファイルが別物になってしまいました。それこそが我々に必要だった”NPDRMハッシュアルゴリズム”で、それが分かれば適切にその追加情報を複製することが可能になるからです。SELFファイルをPS3は再び本物だと認識して実行させてくれます。以前にも何度か言っていますがそのファイルが”署名されている”、つまりPS3が確認することができる”ECDSA署名”されたファイルが存在するということです。ECDSA署名によりPS3はそのファイルがモディファイされたかどうかも分かるようになっています。署名を有効にするのは簡単ですが”秘密鍵”なしにそれを作成することは不可能です。3.55ではどうやって署名していたのでしょうか。皆さんに興味があるならそのうちブログで分かりやすく解説してみたいと思います)。その方程式で重要なのは署名生成にランダムな数字を使うことなのですが、ソニーはこともあろうか毎回同じ数字を使っていたのです。そのため秘密鍵を見つけるのは非常に簡単でした。秘密鍵が分かればあとは方程式計算で完全に本物と同じ署名を偽造することができるようになります。”署名ファイル”は通常は入手が不可能な”秘密鍵”がない限り偽造不可能な”ECDSA署名”でデジタル署名されたファイルですが、ソニーがきちんとやっていなかったので”秘密鍵”が分かってしまったということです。SELF”には第2の署名が必要であることがわかりました。NPDRMレイヤーという追加セキュリティレイヤーで”暗号化され署名されたSELFファイル”が再暗号化され再署名されているということです。その第2署名はPS3のファームウェア3.55までは確認されていませんでしたが、3.60から確認されるようになったのです。ひとつ重要なことは、ソニーは二度と署名に関して同じミスは犯さないということです。秘密鍵を見つけることは技術的に不可能となりました。正確に言うとPS3に.pkgをインストールするためにはファームウェアにパッチが必要(要はCFW化ということです)で、.pkgファイルがインストールされるということは.pkgファイルがECDSA署名されているということになりますが、その署名に必要な秘密鍵は誰にも分からないということです。我々が”疑似リテールパッケージ”や”非署名パッケージ”と呼ぶのはそういった理由からです。SELFファイルの署名はECDSAそのものとPS3の.pkgファイルに使われていたものと同じ鍵が使われているため、利用している秘密鍵は誰にも(というか、永遠に)分かりません。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署名アルゴリズムについて興味があるならこの資料に詳細が書いてあります。Fail0verflowのCCCでのプレゼンテーションも見てみると良いでしょう。ソニーの署名ミスについて言及されたのがそのプレゼンテーションです。それが最終的にはカスタムファームウェアに繋がりました。長文失礼いたしました。KaKaRoTo翻訳:大人のためのゲーム講座こんなながい文章をかけるKaKaRoTo氏、そして、翻訳できるmamosuke氏はすごいですね。