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