SHSHブロブ

Appleが生成し使用するデジタル署名を指す非公式用語

コンピューティングにおいてSHSH BLOB(署名ハッシュBLOBの略)は、Appleが生成し、ユーザーがiOSデバイスにインストールできるiOSバージョンを制御するために使用するデジタル署名であり、通常は最新のiOSバージョンのみがインストール可能となっている。Appleはこのプロセスをシステムソフトウェア認証(iOS 7より前はシステムソフトウェアパーソナライゼーション)と正式に呼んでいる[ 1 ] SHSH BLOBという用語は非公式であり、署名付きハッシュバイナリラージオブジェクトの略語に基づいている。別の用語であるECID SHSHは、デバイスのECID(ハードウェアに埋め込まれた一意の識別番号)を指す。[2]

このプロセスはTATSU(「TSS」)署名サーバ(gs.apple.com)によって制御されており、iOSのバージョンが署名されている場合にのみiTunesでアップデートと復元が完了できます。iOSのジェイルブレイクに関心のある開発者は、この署名システムを回避し、Appleによって署名されていないジェイルブレイク可能な古いiOSバージョンをインストールするためのツールを開発しています。[3] [4]

技術的な詳細

SHSH BLOBは、デバイスの種類、署名されているiOSのバージョン、デバイスのECIDなど、複数のキーを持つハッシュ式によって作成されます。 [5] [非一次ソースが必要] Appleがユーザーがデバイスを特定のiOSバージョンに復元する機能を制限したい場合、Appleは復元の試行中にこのハッシュの生成を拒否することができ、復元は成功しません(または少なくともシステムの本来の機能をバイパスする必要があります)。[6] [7]

このプロトコルはiPhone 3GS以降のデバイスの一部です。[8]

TATSU 署名サーバー

iTunesがiOSファームウェアを復元またはアップデートする際、AppleはiOSバージョンがインストールされ、デバイス上での統合が始まる前に、多くのチェックポイントを追加しています。最初の「iPhoneソフトウェアを検証しています」では、iTunesは「gs.apple.com」と通信し、提供されたIPSWファイルがまだ署名されていることを確認します。TATSUサーバーは署名されているバージョンのリストを返します。バージョンが署名されていない場合、iBECとiBootはイメージを拒否し、「エラー3194」または「イメージの認証を拒否しました」というエラーを表示します。

iTunesはアップデートまたは復元のプロセス全体を通してiBootと通信し、ファームウェアがカスタムファームウェア(「CFW」)に変更されていないことを確認します。ファイルが変更されている疑いがある場合、iTunesはデバイスのアップデートまたは復元を行いません。

これは連鎖的なプロセスであり、ファームウェアをインストールする前に、インストール済みのiBootがインストール先のiBootを検証するなど、様々な処理が行われます。署名されていないiOSバージョンをインストールできるのは、1) SHSH2 blobを所有し、ナンスを設定している場合(エクスプロイトが必要)、または2) 連鎖的なプロセスを悪用した場合のみです。

脆弱性と対策

署名されていない iOS バージョンにインストールするために SHSH BLOB が必要であるという要件は、リプレイ攻撃を使用してバイパスできます。つまり、iOS ファームウェアがまだ署名されている間に BLOB を保存し、後でファームウェアのインストール時にそれらを使用することで回避できます。新しい iOS バージョンでは、SHSH BLOB を保存する際に、有効な nonce などの追加の要素が必要になります。A12 SoC以降を使用するデバイスの BLOB を保存するには、後で復元時に使用できる有効な BLOB を保存するために、デバイスからジェネレーターに一致する nonce を取得する必要もあります。SHSH BLOB を正しく保存しても、バージョン間の SEP (Secure Enclave) の非互換性により、特定の iOS バージョンにジャンプできない場合があります。

新しい iOS バージョンの SHSH BLOB を保存するためのツールには、アプリケーション blobsaver とコマンド ライン ツール tsschecker などがあります。

SHSH BLOB を使用してデバイスに署名されていない iOS バージョンをインストールするには、futurerestore (idevicerestore ベース) などのツールやその GUI を使用できます。これにより、復元で使用する iOS ファームウェア ファイルと SHSH BLOB を指定できます。

以前のバイパス方法

iOS 3および4では、SHSH BLOBは静的キー(デバイスタイプ、iOSバージョン、ECIDなど)で構成されていたため、特定のiOSバージョンおよびデバイスのSHSH BLOBは復元のたびに同じものになります。中間者攻撃を用いてこのシステムを破壊するために、脱獄されたデバイスに対するAppleからの固有のSHSH BLOBに対するサーバー応答がキャッシュされます。そのため、ユーザーがコンピューター上のhostsファイルを変更して、SHSH BLOBのチェックをAppleのサーバーではなくキャッシュにリダイレクトすると、 iTunesはキャッシュされたSHSH BLOBをチェックしてしまい、デバイスをそのバージョンに復元できるようになります。[8] [9]

iOS 5以降のiOSでは、このシステムに追加機能が追加され、 「APTicket」に乱数(暗号ノンス)が含まれるようになったため、 [10]、単純なリプレイ攻撃はもはや有効ではなくなりました。[11] [12]

2009 年に初めてリリースされた[13] [自費出版ソース? ] [14] [疑わしい議論] TinyUmbrella は、サードパーティのサーバーに保存された SHSH blob に関する情報を検索し、SHSH blob をローカルに保存し、[15]ローカルサーバーを実行して SHSH blob を再生し、iTunes を騙して古いデバイスを iOS 3 および 4 に復元するためのツールです。[16] [信頼できないソース? ] [17] 2011 年 6 月、iH8sn0w は、現在インストールされている iOS バージョン ( iPhone 4およびそれ以前のデバイスに限定) のデバイスから部分的な SHSH blob を取得できるツールである iFaith をリリースしました。 [18] [19] 2011 年後半、iPhone Dev チームはredsn0wに機能を追加しました。これには、APTickets で SHSH blob を保存し、それをカスタムファームウェアにつなぎ合わせてデバイスを iOS 5 以降に復元する機能が含まれます。[20]

新しいデバイス(Apple A12以降)では、SHSH BLOBの再生が必ずしも可能とは限りません。これは、これらのデバイス向けのブートROM(ハードウェアレベル)のエクスプロイトが存在しないためです。2012年10月現在、redsn0wにはiOS 5の異なるバージョン間で新しいデバイスを復元する機能が含まれていますが[21] 、 iOS 6からiOS 5にダウングレードすることはできません。[22] [23]

参照

参考文献

  1. ^ Apple Inc. (2012年5月). 「iOSセキュリティ」(PDF) . Apple Inc. 2012年10月21日時点のオリジナル(PDF)からアーカイブ。 2012年12月3日閲覧
  2. ^ Stern, Zack (2010年7月5日). 「iPadを脱獄してすぐにマルチタスクを開始する方法」. ITBusiness.ca . 2012年12月30日閲覧
  3. ^ Nat Futterman (2010年5月25日). 「iPadの脱獄:知っておくべきこと」. Geek Tech . PCWorld. 2012年9月5日時点のオリジナルよりアーカイブ。 2011年8月2日閲覧
  4. ^ Kumparak, Greg (2011年6月27日). 「Apple、iOS 5でゲームを強化、脱獄がより困難に」TechCrunch . 2012年12月30日閲覧
  5. ^ Stefan Esser (2012年3月). 「iOS 5: エクスプロイトの悪夢?」(PDF) . CanSecWest Vancouver. 2012年5月8日時点のオリジナル(PDF)からアーカイブ。 2012年12月3日閲覧
  6. ^ Adam Dachis (2011年4月25日). 「脱獄できない状態を避けるために、iDeviceのSHSHを保存しましょう」Lifehacker . 2011年8月2日閲覧
  7. ^ Smith, Gina (2012年9月27日). 「Apple iOS 6の苦悩:ダウングレードが必要な場合はBLOBを保存しよう」. Apple in the Enterprise . TechRepublic . 2012年12月30日閲覧
  8. ^ ab Jay Freeman (saurik) (2009年9月). 「Appleの署名サーバのキャッシュ」Saurik.com . 2012年12月3日閲覧
  9. ^ Hoog, Andrew; Strzempka, Katie (2011). iPhone and iOS Forensics: Investigation, Analysis and Mobile Security for Apple iPhone, iPad and iOS Devices. Elsevier. pp.  47– 50. ISBN 9781597496599. 2012年12月3日閲覧
  10. ^ Cheng, Jacqui (2011年6月27日). 「iOS 5 beta hobbles OS downgrades, untethered jailbreaks」. Infinite Loop . Ars Technica . 2012年12月30日閲覧
  11. ^ Oliver Haslam (2011年6月27日). 「iOS 5はiPhone、iPad、iPod touchのSHSHファームウェアのダウングレードを停止します」. Redmond Pie . 2011年11月12日閲覧
  12. ^ レビン、ジョナサン (2012). 『Mac OS XとiOSの内部構造:Appleの核心へ』John Wiley & Sons. p. 214. ISBN 9781118222256. 2012年12月29日閲覧
  13. ^ notcom (2009年9月19日). 「TinyTSS - すべてのiPhoneの復元はあなたに帰属します」. The Firmware Umbrella . 2012年12月3日閲覧
  14. ^ notcom (2010年5月20日). 「TinyUmbrella - TinyTSSとThe Firmware Umbrellaを1つに統合!」The Firmware Umbrella . 2013年1月1日閲覧
  15. ^ Brownlee, John (2011年11月15日). 「TinyUmbrellaがiPhone 4SとiOS 5.0.1のSHSH BLOBのバックアップに対応」Cult of Mac . 2012年12月30日閲覧
  16. ^ Sayam Aggarwal (2010年7月26日). 「脱獄前にUmbrellaでiPhoneのSHSHファイルを抽出しよう」. Cult of Mac . 2012年12月3日閲覧
  17. ^ Landau, Ted (2011年4月22日). 「TinyUmbrellaとiTunesの1013エラーが再び発生」. MacWorld . PCWorld . 2012年12月30日閲覧[リンク切れ]
  18. ^ Goncalo Ribeiro (2011年6月3日). 「iFaithを使ってiPhone、iPad、iPod touchで実行されている古いファームウェアのSHSH BLOBを保存する方法」. Redmond Pie . 2012年12月3日閲覧
  19. ^ Morris, Paul (2011年12月24日). 「CydiaがiOS 5.0.1ファームウェア用にSHSH BLOBを保存」Redmond Pie . 2012年12月30日閲覧
  20. ^ Jeff Benjamin (2011年9月27日). 「RedSn0wを使用してSHSH BLOBをステッチし、いつでもダウングレード可能なファームウェアを作成する方法」. iDownloadBlog . 2012年12月3日閲覧
  21. ^ iPhone Dev Team (2012年10月). 「Restoration reinvigoration」. Dev Team Blog. 2012年10月15日時点のオリジナルよりアーカイブ。 2012年12月3日閲覧
  22. ^ iPhone Dev Team (2012年9月). 「Blob-o-riffic」. Dev Team Blog. 2012年9月21日時点のオリジナルよりアーカイブ。 2012年12月3日閲覧
  23. ^ Morris, Paul (2012年10月14日). 「Redsn0wを使ってiPhone 4S、iPad 3、iPad 2、iPod touchをiOS 5.xからiOS 5.xに復元する方法」Redmond Pie . 2012年12月30日閲覧
「https://en.wikipedia.org/w/index.php?title=SHSH_blob&oldid=1327874819」から取得