Pebble's Diary

プログラマーの作業メモ

iOSでHTTPS通信の内容をキャプチャする方法のメモ

iOSHTTPS通信の内容をキャプチャする方法のメモです。
実デバイスでもiOSSimulator(MacOSX)でもできますが、ここでは、
iOS実デバイスがHTTPS通信をキャプチャされる側、MacOSX 10.8をプロキシとして使用します。
以下の記事を参考にさせて頂きました。

https通信の内容をモニタして解析する(フリーソフトBurpSuite(Port Swigger社)でキャプチャ)

iOS実機のSSL通信をプロキシによって傍受したり改ざんする方法

1) プロキシとしてburp suite free edition(.jarファイル) をダウンロードします。.jarファイルをクリックして起動するとプロキシとして動作している状態になります。
2) Proxy-Intercept-Intercept is onをクリックし、Intercept is offにします。
3) Proxy-Options-Proxy ListenersでEditを押し、BindingタブのBind to addressをLoopback onlyから All interfacesに変更します。
4) Safari 6.1.2 で 環境設定-詳細-プロキシ-設定を変更を押し、「保護されたWebプロキシ(HTTPS)」をチェックし、「localhost」「8080」を設定します。
5) httpsプロトコルのサイト(例えばhttps://github.com)Safariでアクセスすると、「Webサイト(github.com)の識別情報を識別できません。」と表示されるので、そのまま証明書を表示します。
6) Port Swigger CAを選択し、Port Swigger CAを常に信頼するにチェックを入れて続行します。
7) キーチェーンアクセス(/アプリケーション/ユーティリティ/の中にあります。)を開きPort Swigger CAを選択し、右クリックで「Port Swigger CAを書き出す」を選択します。 拡張子(.cer)でデスクトップに保存します。書き出し後はPort Swigger CAをキーチェーンから削除しておきます。
Safariのプロキシ設定もOffにします。

8) Port Swigger CA.cerをiOSデバイスに設定したメールアドレスに送信し、iPhone標準のメーラーで開いて登録します。

9) iOSデバイスのWi-Fi設定でプロキシにMacOSXIPアドレスを設定し、ポートに8080を設定します。
10) httpsの通信内容はProxy-Historyに表示されます。

なお、プロキシとしてはBurp以外にもpython製のものなどいろいろあるようです。