diosra2’s blog

iOSのJailbreak、ダウングレード

Nudaoaddu - A7/A8デバイスを将来的にダウングレードできるようにする。


これは何ですか??

A7 / A8でDFU ApNonce衝突を含むshsh2を取得するためのスクリプトです。

理論はこれです

利用可能なデバイス

A7(X)/A8(X??) デバイス

もし、A7/A8デバイスでも、デバイスがApNonce衝突を引き起こさない場合は使用できません。

詳細な情報

デバイスによる違い

A7デバイス間では、同じApNonceが異なるデバイスで生成されることがあります。 (おそらくA8も)。

要するに、わざわざApNonceを自分で探す面倒な作業をしなくても、大量のデータを用意できればある程度の信頼性が確保できるということです。

ただし、A7とA8の間には共通点はありません。

A7デバイスのデータはかなり集まりましたが、A8はまだ不十分です。

 

結局これ何なの?

A7/A8デバイスで、このスクリプト使ってshsh2を取得すればiOS 12.1.1, 12.1.2で脱獄できるようになった時に、Appleがshsh切っても復元できるから役に立つ。というものです。テストデバイスように1台用意しておくと強いかもしれませんね。

 

これはDFU Modeが生成するnonceが生きてない(ランダムになってない)ことを利用したものです。

iOSデバイスでは、復元時にTatsu Signing Server(TSS)からブートローダーに署名(shsh)をもらって、TSSから署名されたファームウェアをブートして復元プロセスを動かしてます。

iOS復元モードを起動する署名には、デバイス側で生成されるnonce(number used once)が含まれていて、署名のための証明書を保存しておいたとしても後で使用することはできません。

 

でも、A7/A8デバイスのDFU(SecureROM)が生成するnonceは先述の通りバグってるので、この繰り返し出てくるnonceを保存しておけばAppleが署名打ち切ってもいつでも復元モード起動してiOSを復元できるって感じですね。

問題はbasebandなどです。こいつらは復元モードの起動とは別で、常にTSSから署名を貰わないとならないので厄介です。(BBは復元時にappleから署名(shsh)をもらって対処しています。)

64-bitデバイスにはSEP(Secure Enclave Processor)と呼ばれるものが存在してます。詳しいことは省略しますがこいつも、別で復元時に常にTSSから署名を貰わないとならないので、現在署名されているSEPと復元したいiOSのSEPがうまく働かないとデバイスは使えなくなります。

現在では、例えばiPhone 5sがiOS 10.2-10.3.3, iOS 11.3-最新バージョンへの復元が理論上可能です。

これはnonceを合致させて正規署名を認証させてるのでpwnedではありません。

 


Copyright (C) 2017-2018 Diosra2. All Rights Reserved.