Jailbreak(脱獄)用語集

目次

【参考文献】
The iPhone WikiDev-Team BlogWikipediaWoggieeee

 

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とは限らない点に注意。

iOSで利用される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(テザード)目次に戻る

Tethered (テザード・紐付き) とは、再起動の度に母艦にケーブル接続し、Jailbreakツールでexploitを 送り込む作業を必要とするJailbreak環境。Tethered、tethered Jailbreakなどと表記される。一方、母艦への接続が必要でない通常のJailbreak環境を区別して、untethered (アンテザード・ 紐なし) と呼ぶ場合もある。

例えば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(シュシュ)目次に戻る

SHSH (Signature HaSH 署名されたハッシュ)は、 iPod Touch 3G/iPhone 3GS以降で、iTunesが復元時に、公式に許可された最新バージョンのファームウェアを復元しているか、確認するための認証プロセスの一部で使われ る。iTunesでファームウェアのアップデート時、以下のダイアログが表示される。

この裏ではiTunesが、接続されたiDeviceのECIDと、アップデートしようとするファームウェアの情報を、Appleの認証サーバに送信し、チャレンジ・レスポンス認証を行っている。

    • ファームウェアの情報が、Appleが許可しているバージョンの正規ファームウェアかどうか確認。
    • 確認できれば、送信されたECIDとファームウェア情報をキーにして署名(ECID SHSH) をしたファイル群 (ECID blobs) をiTunesに返す。
    • 署名されたECID blobsを受け取って初めて、iTunesはファームウェアとECID blobsをiDeviceにアップロードする。
    • iDeviceのブートROMは、自分のECIDの署名があるかどうかを確認し、復元作業に入る。

新しいファームウェアが出ると、古いファームウェアに復元できなくなるのは、Appleが古いファームウェアへの署名を停止するからだ。iTunesとApple認証サーバ間は、驚いたことに暗号化がされていない。ただし、ECID SHSHは128ビットのRSA署名がされているため、改造や加工をすることはできない。

*SHSHの読みに関して確証はない。ハッシュのシュにSH、シュシュ、でいいんじゃないだろうか。

参考エントリ:

OS 3.2のECIDをCydiaにファイルする

iTunesのiOSアップデート・バージョン制限と対策 【まとめ】

 

[activation, activation mode]アクティベーション、アクティベーション・モード 

 

アクティベーションと は、iDeviceの購入時、または新しいファームウェアに新規復元した際に、Appleのサーバと最終的な認証を行うプロセス。3Gを搭載した iDeviceの場合、同時にその個体に対応したキャリアSIMが挿入されているかどうかを、iTunes経由で認証する。(キャリア・アクティベーショ ン)

国内品であれば、ソフトバンクの黒SIMが挿入されている必要がある。この認証が完了しないと、アクティベーション・モード画面から先に進むことができない。
▼アクティベーション・モードのiPhoneの画面。
リカバリ・モードの画面と非常に似ているが、画面下部に”Emergency Call/緊急電話”のスライダーが表示される。
また、iPod Touchなどでは、画面上部にバッテリーインジケータなどが表示されることで区別できる。
アンロック(SIMロックフリー)版iPhoneに関しても、SIMが入った状態でのアクティベーションが必要だが、この場合SIMさえ入っていれば、どのキャリアのものでも問題はない
SIMロック版iPhoneで、対応したSIMが手持ちにない状態でアンロックを行う場合、Appleによるアクティベーションを回避する、hactivationを行う必要がある。

 

[hactivation] ハクティベーション

hactivation とは、iTunesのアクティベーションプロセスを回避する方法。ソフトウェア・アンロックの利用を前提としたpwnagetoolには、hactivation機能が搭載されている。

▼PwnageToolの設定項目にある、”Activate the phone” をチェックすると、hactivationが有効になる。
hactivationを有効にして作成したCFW(カスタム・ファームウェア)を利用して、iTunesから復元すると、 iDeviceはアクティベーション・モードをスキップして復元が完了する。hactivationしたiDeviceは、実際にはアクティベーションが されていない状態になる。従って、ultrasn0wなどのアンロックツールを使わないと、純正SIMも利用できなくなるので注意。

 

起動シーケンス関連

 

[boot ROM] ブートロム

ブートROMは、iDeviceの読み出し専用領域に格納されている。起動時に最初にブートROMからLLB(Low Level Bootloader)がロードされ、2次レベルブートローダのiBootの署名を確認し、制御を移す。ブートROMのLLBにはDFUモードが含まれる。一方、リカバリ・モードはiBootに含まれている。
Touch 第二世代、iPhone 3GS以降では、ファームウェアの更新時に、正規のものかどうか認証を行うプロセスが、ブートROMによって行われている。このため、ブートROMの脆弱性を利用したexploitを 作成することが、iPhone 3GS以降のJailbreakに取って不可避なものになっている。一方、ブートROM自体が書き込み不可能なため、脆弱性が発見されても、Appleに よる対策には時間がかかる。また、一度出荷してしまったiDeviceに関しては修正は不可能であるため、ブートROM exploitはしばしば『pwned for life』= そのデバイスが壊れるまではJB可能、と呼ばれることがある。iPhone 3GS/Touch 第二世代で、最初に発見されたブートROM exploitとしては、24kpwnが有名。24kpwnの開発により、Appleのファームウェア認証を突破して、Jailbreakすることが可能 になった。
後 に、Appleから24kpwn対策済みブートROMを搭載した3GS/Touchが出荷されるようになったが、出荷済みのものについては、当然対策はで きなかった。24kpwn対策済かどうかによって、『旧ブートROM 3GS』または『新ブートROM 3GS』と呼称される事が多かった。iPhone 4世代のブートROMについては、24kpwnが利用できる脆弱性は存在しない。iPhone 4ではブートROM exploitとしては、limera1n exploitが最初に利用され、その対策をしたiPhone 4のブートROMをさして新ブートROMと呼ぶ。

[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からの復元、ファームウェアアップデートにより、更新することができる。


復元シーケンス関連 

▼各デバイス・ステートとブート・復元シーケンスの関係

[recovery mode] リカバリ・モード

リカバリ・モードは、 iOSの二次ブートローダ、iBootのステートの1つ。導入済みのOSがダメージを受けた際の復旧用に自動的に起動されたり、iTunesでのファーム ウェア復元時に利用される。リカバリ・モードはMobileDevice ライブラリから呼び出す事が可能で、直接Jailbreak型のツールが、自動的にiPhoneをリカバリ・モードに移行するために利用されることがあ る。

▼リカバリ・モード時のiPhoneの画面。
アクティベーション・モードの画面と非常に似ている。

リカバリ・モードにする方法:

  1. 母艦に接続していない状態で、iDeviceの電源を落とす。
  2. ホームボタンを押しながら、母艦にUSBケーブルで接続
  3. iDeviceの電源が入りアップルロゴ→リカバリ・モード画面に
  4. iTunesがiDeviceを認識し、『iTunesはリカバリ・モードのxxxを見つけました』のダイアログを出す。

 

リカバリ・モードから、ノーマル・モードに戻すには、電源ボタンを押し続けながら、同時にホームボタンを、アップルロゴが出るまで押し続ける。

 

[DFU mode] DFUモード

DFU (Device Firmware Upgrade) モー ド は、いかなる状態からもiDeviceを復元できるモード。 DFUモードへソフトから移行する方法はなく、手作業でiDeviceをDFUモードで起動する必要がある。iDeviceのもっとも低レベルなステート であり、Appleロゴのまま先に進まない、画面が真っ暗、などの大トラブルの際にも、たいがい起動できる頼もしい存在。

▼DFUモード時のiPhone 4画面。

見て分かるように、画面は真っ暗で、外見からは電源が切れた状態と、全く区別がつかない。
だが、この状態でiTunesやデバイスマネージャで、DFUモード・デバイスとして認識される。

なお、iTunesの表示ではDFUモードとリカバリ・モードを区別せず、どちらの状態で接続されても『リカバリモードのxxxを見つけました』と表示される点に注意。

iDevice(Apple TVを除く)をDFUモードにする方法

    1. USBケーブルでiDeviceを母艦と接続、iDeviceをシャットダウン(電源オフ)する。
    2. Appleロゴが表示されるまで、iDeviceの電源ボタンを3秒ほど押す。
    3. 電源ボタンを押し続けながら、同時にホームボタンを押す
    4. 10秒ほどしたら、ホームボタンは押したまま、電源ボタンだけ放す。
    5. iTunesがiDeviceを認識し、『iTunesはリカバリモードのxxxを見つけました』のダイアログを出す。

DFU モードへの移行は、電源・ホームボタンをオンオフするタイミングがシビアで、しばしば失敗してリカバリ・モードになってしまう。実際のところ、3-4の電 源ボタンを放すまでは、3秒程度でよい場合が多い。DFUモードから、ノーマル・モードに戻すには、電源ボタンを押し続けながら、同時にホームボタンを、 アップルロゴが出るまで押し続ける。

Apple TV2をDFUモードにする方法

  1. 電源プラグを抜き、母艦とマイクロUSBケーブルで接続する。
  2. MENUと▼を同時に押し続け、AppleTV2をリブートする。
  3. すぐに、MENUとPLAYを同時に押し、iTunesがリカバリ・モードのApple TV2を認識するのを待つ

[restore mode] レストア・モード

レストア(復元)・モードは、 iTunesによる復元、ファームウェア・アップデートなどの際に利用される。iTunesの『復元』と、『バックアップからの復元』は、混同しやすいが 全く別物であることに注意。復元の際には、対象となるIPSWに含まれるベースバンド・ファームウェア、iOSなどのシステム関連ファイルが更新される。 『バックアップからの復元』は、ユーザ情報や、アプリケーションのユーザデータなどを復元し、システムファイルの更新は一切行われない。

▼復元作業中のiPhoneのレストア・モード画面。
ややこしい事に、この画面は『バックアップから復元』の作業途中でも表示される。

 

アンロック関連

 

[baseband] ベースバンド

ベースバンド(ベースバンド・モデム)は、携 帯電話機器において、アンテナへの出力をコントロールする、音声・データ通信を含む全ての機能を掌る回路。最近の携帯電話機器の場合、ベースバンドは通常 ワンチップ化されており、iPhone 4の場合はInfineon社のX-Gold 618が使われている。
ベースバンドを動作させる低レベルソフトウェアを、ベースバンド・ファームウェアと呼ぶ。ベースバンド・チップ内には、アプリケーション・プロセッサ(=CPU)が搭載され、ベースバンド・ファームウェアはこの上で独立して動作する。
ベースバンドを搭載するiDevice向けのIPSWには、最新のベースバンド・ファームウェアが含まれ、復元時に強制的にアップデートが行われる。
ベースバンド・ファームウェアは上位バージョンへのみ書き換え可能であり、旧バージョンへ戻す方法は確立されていない。(iPhone 3Gの一部ロットと、初代iPhoneを除く)
また、ベースバンド・ファームウェアは、ベー スバンド・チップごとに異なる。例えば、iPhone4とiPhone 3GSでは、X-Gold 618とX-Gold 608で異なるので、ベースバンド・ファームウェアに互換性はない。また、X-Gold 618からは、ファームウェアアップグレード時に、Appleサーバによる署名認証(SHSH)が必要になり、ソフトウェア・アンロックへの対策が強固に なっている。
Ultrasn0wなどのアンロック・ツールは、ベースバンド・ファームウェアの脆弱性を利用して、ソフトウェアによるSIMアンロックを実現している。
▼Infineon社のベースバンドチップ、 X-Gold 618。iPhone4、iPad 3Gで使われている。

 

[unlock] アンロック

アンロックは、携帯電話が特定のキャリアに紐づけられた状態(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] シディア ( sɪdi.ə )


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が表示できる。

 

Leave a Reply