Jailbreak(脱獄)用語集
- Jailbreak(脱獄)とは?
- Exploit(エクスプロイト)
- Tethered(テザード)
- pwn, pwned(オウン、オウンド)
- leet(リート)
- iBEC/iBSS(アイベック・アイビーエスエス)
- IPSW(アイピーエスダブリュー)
- ECID(イーシーアイディー)
- SHSH(シュシュ)
【参考文献】
The iPhone Wiki 、Dev-Team Blog、Wikipedia、Woggieeee
Jailbreak(脱獄)とは?目次に戻る
Jailbreakとは、iDeviceのOSであるiOSの脆弱性(≒セキュリティホール)を利用して、App Store以外で提供される非正規アプリケーション等のインストールが可能な環境を構築すること。Androidでの『rootを取る』とほぼ同義。
JailbreakはAppleが発行する、正規の証明書で署名した実行ファイルかどうかを判定する機構を無効にし、Appleが審査をしていないアプリケーションであっても、実行できるようにする。Apple が厳重に管理するiOS環境のjail(監獄)をbreakする意味合いで、Jailbreak(JB、ジェイルブレーク、脱獄)と呼ばれる。 Jailbreakをすると、App Storeと似た働きをするCydiaというアプリケーションを使って、Appleが審査していないアプリケーションをダウンロード、導入することができるようになる。
このため、AppleではJailbreakを行ったiDeviceについては、サポートや保証を行わないとしている。Jailbreakを行うことは『自己責任』と言われるが、実行前にJailbreakをすることによるリスクについて、十分に理解する必要がある。
Jailbreakツールには、iDeviceを母艦に接続して直接Jailbreakするタイプのものと、カスタム・ファームウェア(CFW-Custom FirmWare)と呼ばれる、Jailbreak済みのIPSWを生成しiTunesで復元するタイプの2つがある。後者は、ベースバンド・ファームウェアの更新を防ぐ事ができ、アンロックを目的とする場合に多く利用される。
- 直接Jailbreak型: redsn0w、limera1n、greenpois0n、Jailbreakme
- カスタム・ファームウェア型: pwnagetool、sn0wbreeze
Exploit(エクスプロイト)目次に戻る
Exploitとは、脆弱 性(システムクラッシュなど、外部コード侵入の原因となるセキュリティホール)を利用し、Jailbreak実行コードを侵入させるプログラムと手法。 ぶっちゃけ技術的にはJailbreakコードはウィルス、exploitはウィルスを侵入させるプログラムみたいなもんと考えれば分かりやすい。
実際のところ、exploitはコンピュータウィルス用語でもある。iPhone hackersのコメントによく出てくる “can’t make it exploitable” という説明は、発見された脆弱性に対して侵入手法を確立できないこと。よって、脆弱性=exploitとは限らない点に注意。
- iBoot Exploit: iOSのブートローダ、iBootの脆弱性を利用する。iPhone 3GS以降では、ブートROM/LLBからiBootの署名認証がされるため、iBoot exploit単体でのJailbreakはできなくなっている。
- Boot ROM Exploit: LLBによるiBootの署名認証を回避するため、ブートROMの脆弱性を利用して侵入するexploit。最初に発見されたものは、iPod Touch 3rd/ iPhone 3GSで利用された、24kpwn。
- Userland Exploit: iOSシステム起動後の脆弱性を利用したexploit。有名なモノはpdfの脆弱性を利用したStar Exploit(Jailbreakme 2.0)
- Kernel Patch: 通常、untether JBの手法として、補助的に使われていることから、単体でuntetherできないブートROM exploitから、Darwin カーネルにパッチを当てるために利用しているのではないかと思う。
Tethered(テザード)目次に戻る
例えばredsn0w 0.9.6では、iPhone4などのtethered対応機種では、再起動して母艦につながないと、非JB環境で起動する。母艦に接続して redsn0wのjust boot tethered nowを使うと、Jailbreak環境でブートができる。このため、semi-tethered (セミ・テザード) とも呼ばれている。
▼redsn0w 0.9.6のメインメニュー。
tetheredのみ対応のiDeviceの場合、母艦につなぎ、redsn0w 0.9.6から”just boot tethered right now”を選んでリブートをする必要がある。
母艦が手元になく、iDeviceでリブートをした場合は、非JB環境で起動するsemi-tethered対応になる。
携帯電話をPCにつないでモデム代わりにすることをtethering (テザリング) と呼ぶが、これも語源は一緒である。(ケーブルで母艦につなぐことから)
pwn, pwned(オウン、オウンド)目次に戻る
pwnとは、ハッカーのスラング(leet)で、『所有権を取り戻す』の意味で、もともとは”own” から転じているらしい。pを発音せず、もとの言葉のownと同様に『オウン』と読む*のが一般的なようだ。(*出典: wikipedia/pwn)
iDevice関連では、 pwn/pwnedはJailbreakする、された状態を示す事が多い。Pwned iPhone=JBされたiPhone、のように表現される。iPhone用のカスタム・ファームウェアを作成するpwnage tool (オーネッジ・ツール) も、この言葉から来ている。
leet(リート)目次に戻る
leetとは、ultrasn0w(ultrasnow)、blackra1n(blackrain) 、greenpois0nなど、特定の英単語のアルファベットを、数字や別の文字で置き換えて表現する手法。ハッカーなどが好んで利用する。leet自体をleet表現すると、『1337』* って読めない罠。
(*出典: Wikipedia/leet)
iDevice認証
iBEC/iBSS(アイベック・アイビーエスエス)目次に戻る
iBEC/iBSSはiBootの一部であり、DFUモードか らの復元を行う際に、IPSWから取り出されてiDeviceにアップロード、実行される。iBEC/iBSSはLLBと同じルーチンを持っており、起動 時にiBootが正規な物か署名チェックを行い、問題がなければiBootをロード、起動して復元モードに制御を移す。問題があった場合iDeviceは 復元モードには移行せず、DFUモードのままとなる。
iDeviceの読み出し専用領域に格納されている、ブートROMもiBootと呼ばれる事があるため、しばしば混同しやすい。ブートROM中のLLB(Low Level Bootloader)が起動されると、iBootの署名を確認し、制御を移す。
IPSW(アイピーエスダブリュー)目次に戻る
IPSW (IPhone/ IPod Touch/ IPad SoftWare) は、iDeviceファームウェア更新のためのフォーマットで、通常iTunesからiDeviceに必要なファイルが順次ロードされることによって、 ファームウェア更新が行われる。圧縮フォーマットとしてzipが使われており、一般的なzip/unzipツールで圧縮、解凍が可能。内部には、復元・ アップデート作業時にRAM Diskとしてマウントするdmgファイル、DFUモードからの復元用LLBのiBEC/iBSS、ファームウェア本体などが含まれる。
▼IPSWファイルの構造
ECID(イーシーアイディー)目次に戻る
ECID (Exclusive Chip ID)と は、iDevice1台ごとに固有な16桁のhex数列。iDeviceをリカバリーモードにして接続した状態で、WindowsのUSBviewや、 MacのSystem Profilerを使用すれば、ECID自体は簡単に読み出すことができる。また、Tiny Umbrellaなどのツールではそのまま読み出すことも可能だ。AppleはiTunesからのファームウェア更新にあたり、不正なファームウェア (ハックしたものや、Appleが復元を許可していない古いバージョン)への復元を防ぐために、ECIDを利用した署名 (SHSH) ・認証プロセスを使用している。
SHSH(シュシュ)目次に戻る
この裏ではiTunesが、接続されたiDeviceのECIDと、アップデートしようとするファームウェアの情報を、Appleの認証サーバに送信し、チャレンジ・レスポンス認証を行っている。
[activation, activation mode]アクティベーション、アクティベーション・モード
アクティベーションと は、iDeviceの購入時、または新しいファームウェアに新規復元した際に、Appleのサーバと最終的な認証を行うプロセス。3Gを搭載した iDeviceの場合、同時にその個体に対応したキャリアSIMが挿入されているかどうかを、iTunes経由で認証する。(キャリア・アクティベーショ ン)
リカバリ・モードの画面と非常に似ているが、画面下部に”Emergency Call/緊急電話”のスライダーが表示される。
また、iPod Touchなどでは、画面上部にバッテリーインジケータなどが表示されることで区別できる。
hactivation とは、iTunesのアクティベーションプロセスを回避する方法。ソフトウェア・アンロックの利用を前提としたpwnagetoolには、hactivation機能が搭載されている。
▼PwnageToolの設定項目にある、”Activate the phone” をチェックすると、hactivationが有効になる。
hactivationを有効にして作成したCFW(カスタム・ファームウェア)を利用して、iTunesから復元すると、 iDeviceはアクティベーション・モードをスキップして復元が完了する。hactivationしたiDeviceは、実際にはアクティベーションが されていない状態になる。従って、ultrasn0wなどのアンロックツールを使わないと、純正SIMも利用できなくなるので注意。
[low level bootloader] ローレベル・ブートローダ
LLB (Low Level Boot)は、ブートROMに含まれる、iDeviceの一次レベルブートローダで、実行されると、iBootの署名を確認して、問題がなければ制御をiBootに移す。
[iBoot] アイブート
iBootは、 iDeviceの2次レベルブートローダで、ブートROMのlow level bootがiBootの署名を確認した後、起動される。iBootはiDeviceのNAND flash領域に格納されており、iTunesからの復元、ファームウェアアップデートにより、更新することができる。
復元シーケンス関連
▼各デバイス・ステートとブート・復元シーケンスの関係
リカバリ・モードは、 iOSの二次ブートローダ、iBootのステートの1つ。導入済みのOSがダメージを受けた際の復旧用に自動的に起動されたり、iTunesでのファーム ウェア復元時に利用される。リカバリ・モードはMobileDevice ライブラリから呼び出す事が可能で、直接Jailbreak型のツールが、自動的にiPhoneをリカバリ・モードに移行するために利用されることがあ る。
▼リカバリ・モード時のiPhoneの画面。
アクティベーション・モードの画面と非常に似ている。
リカバリ・モードにする方法:
- 母艦に接続していない状態で、iDeviceの電源を落とす。
- ホームボタンを押しながら、母艦にUSBケーブルで接続
- iDeviceの電源が入りアップルロゴ→リカバリ・モード画面に
- iTunesがiDeviceを認識し、『iTunesはリカバリ・モードのxxxを見つけました』のダイアログを出す。
リカバリ・モードから、ノーマル・モードに戻すには、電源ボタンを押し続けながら、同時にホームボタンを、アップルロゴが出るまで押し続ける。
DFU (Device Firmware Upgrade) モー ド は、いかなる状態からもiDeviceを復元できるモード。 DFUモードへソフトから移行する方法はなく、手作業でiDeviceをDFUモードで起動する必要がある。iDeviceのもっとも低レベルなステート であり、Appleロゴのまま先に進まない、画面が真っ暗、などの大トラブルの際にも、たいがい起動できる頼もしい存在。
▼DFUモード時のiPhone 4画面。
見て分かるように、画面は真っ暗で、外見からは電源が切れた状態と、全く区別がつかない。
だが、この状態でiTunesやデバイスマネージャで、DFUモード・デバイスとして認識される。
なお、iTunesの表示ではDFUモードとリカバリ・モードを区別せず、どちらの状態で接続されても『リカバリモードのxxxを見つけました』と表示される点に注意。
iDevice(Apple TVを除く)をDFUモードにする方法
-
- USBケーブルでiDeviceを母艦と接続、iDeviceをシャットダウン(電源オフ)する。
- Appleロゴが表示されるまで、iDeviceの電源ボタンを3秒ほど押す。
- 電源ボタンを押し続けながら、同時にホームボタンを押す
- 10秒ほどしたら、ホームボタンは押したまま、電源ボタンだけ放す。
- iTunesがiDeviceを認識し、『iTunesはリカバリモードのxxxを見つけました』のダイアログを出す。
DFU モードへの移行は、電源・ホームボタンをオンオフするタイミングがシビアで、しばしば失敗してリカバリ・モードになってしまう。実際のところ、3-4の電 源ボタンを放すまでは、3秒程度でよい場合が多い。DFUモードから、ノーマル・モードに戻すには、電源ボタンを押し続けながら、同時にホームボタンを、 アップルロゴが出るまで押し続ける。
Apple TV2をDFUモードにする方法
- 電源プラグを抜き、母艦とマイクロUSBケーブルで接続する。
- MENUと▼を同時に押し続け、AppleTV2をリブートする。
- すぐに、MENUとPLAYを同時に押し、iTunesがリカバリ・モードのApple TV2を認識するのを待つ
レストア(復元)・モードは、 iTunesによる復元、ファームウェア・アップデートなどの際に利用される。iTunesの『復元』と、『バックアップからの復元』は、混同しやすいが 全く別物であることに注意。復元の際には、対象となるIPSWに含まれるベースバンド・ファームウェア、iOSなどのシステム関連ファイルが更新される。 『バックアップからの復元』は、ユーザ情報や、アプリケーションのユーザデータなどを復元し、システムファイルの更新は一切行われない。
▼復元作業中のiPhoneのレストア・モード画面。
ややこしい事に、この画面は『バックアップから復元』の作業途中でも表示される。
アンロックは、携帯電話が特定のキャリアに紐づけられた状態(SIMロック)を、なんらかの方法で解除すること。
ソ フトバンク経由で販売されているiPhoneは、通常ソフトバンクのiPhone専用SIM(通称黒SIM)でしか利用できない。また、アメリカを含む多 くの国で販売されるiPhoneにも、SIMロックが掛かっている。SIMロックの掛かったiPhoneに、対応しているキャリア以外のSIMを入れる と、『不正なSIMです』というメッセージが現れ、利用することができない。このSIMロックを何らかの方法で解除することを、アンロックと呼ぶ。
若 干脱線するが、国内品の場合、黒SIM以外のソフトバンクSIMも利用することが出来ない、専用SIM以外へのロックまで掛かっており、不便この上ない。 アメリカならAT&Tが販売するiPhoneは、AT&TプリペイドSIMのGoPhoneでも認識する。
iPhone の場合、アクティベーション・プロセスの過程で、固有の端末がSIMロックが掛かっている個体かどうか、Appleのサーバと照合を行う。予めSIMロッ クフリーiPhoneとして登録されていれば、iPhoneをアンロックする。そうでなければ、挿入されているSIMが、登録されたキャリアのものか照合 されるまで、アクティベートは許可されない。
Jailbreakをする目的の一つとして、このSIMロック機構を解除し、あらゆるキャリアのSIMを使えるようにする、ソフトウェア・アンロックがある。現行のiPhone用アンロック・ソフトウェアとしてはultrasn0wがある。ultrasn0wはベースバンド・ファームウェアの脆弱性を利用したexploitにより、iPhoneのSIMロック機構を無効にする。このため、ベースバンド・ファームウェアのバージョンへの依存がある。ultrasn0wをはじめとする、ソフトウェア・アンロックを利用するためには、ベースバンド・ファームウェアを間違ってアップデートしないよう、PwnageToolなどのベースバンドのアップデートを行わないツールを利用するなど、慎重な運用が必要だ。
安 定したアンロック環境を利用するためには、香港やイタリアなど、一部の国で販売されている、Apple純正アンロック版(SIMロックフリー 版)iPhoneを利用するのが確実だ。これらのアンロック版では、特定キャリアのSIMへのロックがされておらず、Jailbreak不要であらゆる SIMを利用することができる。純正アンロック版iPhoneは、Appleのサーバに固有情報が予め登録されており、アクティベーションのプロセスでそれが確認されると、端末のアンロックが行われるという仕組みになっている。
▼純正アンロック版iPhoneをアクティベートすると、『お使いのiPhoneは正常にロック解除されました』という、普通のユーザーが見ることが少ないメッセージがiTunesに表示される。
Jailbreakシステム関連
Cydiaは、JailbreakアプリケーションのリポジトリとGUIフロントエンド、言ってみれば Jailbreak App Storeのようなもの。以前はInstaller.appや、Rock.app などの、Cydia以外のJailbreak App Storeが存在したが、現在はCydiaが唯一のメジャーなもの。
Cydiaはシンクイガ (codling moth) の学名 (Cydia pomonella) から名付けられた。シンクイガはリンゴの実を食べる害虫として有名。(出典: Wikipedia)
redsn0w、PwnageToolなどのJailbreakツールには、Cydiaが含まれているため、JB作業が終了すればspringboardにCydiaアイコンが現れる。
Cydiaの作者は、Saurik (Jay Freeman)、iPhone Dev-Teamの旧来からのメンバーだが、Saurikは主にJailbreak後の利用・開発環境を提供するのが主な役割のようだ。
余り知られてないと思うが、cydia.saurik.com にアクセスすれば、ブラウザからCydiaが表示できる。