今回はiPhoneやiPadのアプリが外部とどのような通信を行なっているか確認する方法を書いてみたいと思います。iPhoneやiPadなどの端末はイーサネットのコネクタがありませんので、間にネットワークキャプチャツールを入れることができません。
iPhoneやiPadが外部サーバと通信している事を確認するためには、SSL対応のプロキシサーバを入れることで、アプリなどがどんなパラメータを送っているのかなど確認することができます。この方法を使うと、iPhoneやiPadだけでなく、Windowsの実行形式のプログラムが外部サーバとSSL通信していたとしても、リクエストの確認などができる事になります。
参考になるのが、「[改訂版] iPhoneアプリのSSL接続をパケットキャプチャする方法」です。少し内容が古いため、補足をしながら書いて行きたいと思います。
1.以下のツールをダウンロードしておきます。ちなみに、iPhone構成ユーティリティはiPadでも使えます。
- iPhone構成ユーティリティ … version 3.6.2
- Burp Suite(Free Edition) … version 1.5
- Firefox … version 22.0
2.Burp Suiteを起動します(ダウンロードしたburpsuite_free_v*.*.jarをダブルクリック)。上記サイトの”1.Burp Proxyの設定”を参考にして下さい。
3.ここからは”2.Burp ProxyのCA証明書の取得”に関する説明です。
Firefoxを起動し、「ツール(T)」メニュー⇒「オプション(O)」メニュー⇒「詳細」タブ⇒「ネットワーク」タブを選択します。以下の画面が表示されるため、「接続」欄にある「接続設定(E)…」をクリックします。
4.「手動でプロキシを設定する(M):」にチェックを入れ、「SSL プロキシ(L):」に「127.0.0.1」、「ポート(O):」に「8080」を入力し、「OK」ボタンをクリックします。
5.FirefoxでSSLのページにアクセスします。「接続の安全性を確認できません」という表示が出ますので「危険性を理解した上で接続するには」をクリックします。
6.説明が表示されますので「例外を追加…」ボタンをクリックします。
7.「セキュリティ例外の追加」画面が表示されますので「表示(V)…」ボタンをクリックします。
8.「詳細(D)」タブを選択し、「証明書の階層」にある「PortSwigger CA」を選択して「エクスポート(X)…」をクリックします。
9.ここからの作業は不要かもしれませんが、iPhoneやiPadへの証明書インストール時に見当たらなかった気がするため、一応インストールしました。
ダウンロードした「PortSwigger CA.crt」をダブルクリックし、「証明書のインストール(I)…」ボタンをクリックします。
10.「保存場所」を「現在のユーザー(C)」にチェックを入れ「次へ(N)」ボタンをクリックします。
11.「証明書の種類に基づいて、自動的に証明書ストアを選択する(U)」にチェックを入れ「次へ(N)」ボタンをクリックします。
次回はiPhone、iPadへCA証明書を転送し、Burp Proxyでパケットをキャプチャするところまで書きたいと思います。
ピンバック:iPhone、iPadのアプリの通信内容を確認する方法(2/2) | 菊地崇仁ブログ「ポイ探社長のブログ」