2010年2月4日木曜日

新たなjailbreakの方法?

Appleによって、jailbreak(脱獄)に使われる既知のexploit(抜け穴)がどんどんふさがれている。
つぎのようなやり方はできないものだろうか?
  1. 起動時にSHA-1ハードウエアによる認証(シグネチャチェック)をしているのは、/ partitionのみと思われる。/private/var は、user mobileのルートでもあり、追加アプリや音楽がおかれているので、ここは認証対象にはできないはずである。
  2. そこで、/ partitionには、bootに必要な最低限のもののみをおき、他のファイルやdirectoryを/private/varの下に移し、/からはsymbolic linkをはる。これにより、/からは、脱獄したあとに変更必要なものがほとんどなくなるはずである。
  3. unixと/のイメージに対して、正規の認証を行い。iTune等で正規のOSとして書き込む。どうじに、改造した/private/varも書き込む。問題は、unixと/のイメージに対して正規の認証を行う鍵の入手である。これは、unixと/からなるイメージに対して、順番にいろいろなSHA-1の鍵を選んで、iPhoneのSHA-1ハードウエアで実験するスクリプトを作成し、OKとでるものを探す方法がありそう。SHA-1のシグネチャは、160bitなので、ある程度あてをつけてやらないと、途方もない時間がかかる可能性はある。SHA-1の脆弱性は各所で報告されているので、解読の仕方で効率のいいものがあるかもしれない。たとえば、チェックをする対象をallゼロとか、all 1とかいろいろなものを選んで、予測するとか。。
  4. openibootをみると、SHA-1のアルゴリズムは、公開されているようであり、keyは特に無いようである。だとすると、認証されたコードを作成するのは簡単に思える。
http://theiphonewiki.com/wiki/index.php?title=IPSW_File_Format  などに、jailbreakに関する各種情報が出ている。
これをみると、面倒なことをしなくてもほしい版のfirmwareのipswのextensionを.zipに変えてunzipすれば iBEC.n88ap.RELEASE.dfuや iBSS.n88ap.RELEASE.dfuを手に入れることができることがわかる。
kernelのイメージはどれなのだろう。
blog comments powered by Disqus